<?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>96060</bug_id>
          
          <creation_ts>2012-09-06 20:59:29 -0700</creation_ts>
          <short_desc>Trigger node active state with touch gesture events</short_desc>
          <delta_ts>2012-09-17 12:39:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>UI Events</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>96183</dependson>
    
    <dependson>96788</dependson>
          <blocked>96677</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Rick Byers">rbyers</reporter>
          <assigned_to name="Rick Byers">rbyers</assigned_to>
          <cc>abarth</cc>
    
    <cc>aelias</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>rjkroege</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>714055</commentid>
    <comment_count>0</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-06 20:59:29 -0700</bug_when>
    <thetext>Today elements can be marked active (i.e. :active CSS pseudo-class) by mouse events and by touch events.  However, not all ports send touch events by default (eg. chrome sends them only when there are touch listeners on the document, since supporting low-level touch events can significantly hurt scroll performance).  For ports that support GESTURE_EVENTS, we should let the appropriate gesture events trigger the active state instead.

In particular, GestureTapDown should trigger active, and we should add a new GestureTapCancel (in addition to GestureTap) that removes the active state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715394</commentid>
    <comment_count>1</comment_count>
      <attachid>162974</attachid>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-08 19:17:15 -0700</bug_when>
    <thetext>Created attachment 162974
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715395</commentid>
    <comment_count>2</comment_count>
      <attachid>162975</attachid>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-08 19:18:59 -0700</bug_when>
    <thetext>Created attachment 162975
Combined with 96183 for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715396</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-08 19:20:24 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715402</commentid>
    <comment_count>4</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-08 20:35:17 -0700</bug_when>
    <thetext>aelias: I still need to add LayoutTests for this, but they should be pretty straight forward - I&apos;ll get them in early next week.  No non-chromium port appears to use GestureTapDown, so I believe it&apos;s only desktop and android chrome we need to worry about here.

I hope to have the desktop (Windows/ChromeOS) side landed early next week (it&apos;s mostly up for review here: http://codereview.chromium.org/10928066/, one more small piece once bug 96183 lands).  Do you want me to block on Android support for GestureTapCancel?  Without it, I believe nodes would get stuck in the &apos;active&apos; state when you send tapDown but not tap (but they&apos;d be cleared as soon as there was another tapDown or mousemove/mousedown event).  Definitely not what you want, but not a disaster.  As we&apos;ve discussed, we&apos;d really like this in Windows/ChromeOS for M23 (a week from now).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715466</commentid>
    <comment_count>5</comment_count>
      <attachid>162975</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-09 03:34:47 -0700</bug_when>
    <thetext>Comment on attachment 162975
Combined with 96183 for EWS

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

New failing tests:
fast/events/touch/touch-active-state.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715630</commentid>
    <comment_count>6</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-09 16:24:13 -0700</bug_when>
    <thetext>Does this also mean that touch events won&apos;t change active state, at least on ports that send GestureTap*?  If not, how do we deal with the touch and gesture events on pages that do listen to some touch events?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715648</commentid>
    <comment_count>7</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-09 18:01:55 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Does this also mean that touch events won&apos;t change active state, at least on ports that send GestureTap*?  If not, how do we deal with the touch and gesture events on pages that do listen to some touch events?

Yes, that was my intention - it doesn&apos;t make sense to do it on both touch and gesture events (eg. pinch would be even more bizarre).  However, I don&apos;t have any good way to tell if a port sends GestureTapDown (AFAIK), so at the  moment this is implemented to turn of touch-based active states on any port that uses ENABLE(GESTURE_EVENTS).  This is probably wrong for the Qt port (which I believe uses touch and GESTURE_EVENTS, but not TapDown/TapCancel).  I was thinking I need to add a new ENABLE condition here (&quot;GESTURE_EVENTS_TRIGGER_ACTIVE&quot; or something), what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717551</commentid>
    <comment_count>8</comment_count>
      <attachid>163438</attachid>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-11 14:27:01 -0700</bug_when>
    <thetext>Created attachment 163438
Add new layout test and updated expectations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717689</commentid>
    <comment_count>9</comment_count>
      <attachid>163438</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-11 16:13:58 -0700</bug_when>
    <thetext>Comment on attachment 163438
Add new layout test and updated expectations

Attachment 163438 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13806932</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717711</commentid>
    <comment_count>10</comment_count>
      <attachid>163476</attachid>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-11 16:33:58 -0700</bug_when>
    <thetext>Created attachment 163476
Fixes, and opt-in using platform ifdefs per jamesr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717829</commentid>
    <comment_count>11</comment_count>
      <attachid>163498</attachid>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-11 19:25:47 -0700</bug_when>
    <thetext>Created attachment 163498
Add iframe-based layout test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718974</commentid>
    <comment_count>12</comment_count>
      <attachid>163498</attachid>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-12 18:53:15 -0700</bug_when>
    <thetext>Comment on attachment 163498
Add iframe-based layout test

Ping - who is the right person to review this change?  ABarth perhaps?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719711</commentid>
    <comment_count>13</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-13 11:22:52 -0700</bug_when>
    <thetext>CC allan.jensen since he&apos;s actively changing related code (updateHoverActiveState, hit testing)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719996</commentid>
    <comment_count>14</comment_count>
      <attachid>163498</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-13 15:07:21 -0700</bug_when>
    <thetext>Comment on attachment 163498
Add iframe-based layout test

I looked at this patch, but I don&apos;t feel like I understand this topic well enough to review it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720023</commentid>
    <comment_count>15</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-13 15:25:17 -0700</bug_when>
    <thetext>I could make at least an honest effort at this, but it&apos;ll probably be early next week - I&apos;m gardening today and tomorrow.  Perhaps you could take a look through the svn logs and see who else has reviewed code in this area lately?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720051</commentid>
    <comment_count>16</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-09-13 15:52:54 -0700</bug_when>
    <thetext>If you want to go in this direction, I would like propose something more bold. Basically create a new pseudo-class maybe called -webkit-touched, and set that on tap-down and use it to replace link highlighting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720068</commentid>
    <comment_count>17</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-13 16:04:04 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; I could make at least an honest effort at this, but it&apos;ll probably be early next week - I&apos;m gardening today and tomorrow.  Perhaps you could take a look through the svn logs and see who else has reviewed code in this area lately?

Thanks guys.  Antonio, it looks like you&apos;ve reviewed related patches lately, can you take a look please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720080</commentid>
    <comment_count>18</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-13 16:11:43 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; If you want to go in this direction, I would like propose something more bold. Basically create a new pseudo-class maybe called -webkit-touched, and set that on tap-down and use it to replace link highlighting.

Thanks Allen.  I agree, the idea of implementing link highlighting with this is very appealing.  The link highlighting work we&apos;ve (wjmaclean) been doing for chromium shares the gestures (TapDown/TapCancel), but perhaps there is an opportunity to share more - but there are some non-trivial constraints (eg. to ensure GPU acceleration on Android).

Regardless of any new pseudo-class, we&apos;d still want to set :active via touch though (eg. lots of sites have buttons that look depressed on :active).  Note that :active is already set on touch events, but has some problems (see my ChangeLog), so this just provides an alternate / improved mechanism for the existing functionality.

Any objections to this change as a first step here?  I&apos;m anxious to get this working (provided the approach is sound of course).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720587</commentid>
    <comment_count>19</comment_count>
      <attachid>163498</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-09-14 04:47:17 -0700</bug_when>
    <thetext>Comment on attachment 163498
Add iframe-based layout test

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

The patch looks solid enough. I only have a few comments.

&gt; Source/WebCore/dom/GestureEvent.cpp:61
&gt; +    case PlatformEvent::GestureTapCancel:

You can not cancel a Tap, so perhaps TapDownCancel, or CancelTapDown would be a more accurate name.

&gt; Source/WebCore/page/EventHandler.cpp:2402
&gt; +        IntPoint hitTestPoint = m_frame-&gt;view()-&gt;windowToContents(gestureEvent.position());

This looks new, why is this change necessary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720588</commentid>
    <comment_count>20</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-09-14 04:48:28 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; Any objections to this change as a first step here?  I&apos;m anxious to get this working (provided the approach is sound of course).

No, I just wanted to put the idea in your head while you were thinking about this logic already :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720619</commentid>
    <comment_count>21</comment_count>
      <attachid>163498</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-09-14 05:25:40 -0700</bug_when>
    <thetext>Comment on attachment 163498
Add iframe-based layout test

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

Looks good. Some questions ...

&gt;&gt; Source/WebCore/dom/GestureEvent.cpp:61
&gt;&gt; +    case PlatformEvent::GestureTapCancel:
&gt; 
&gt; You can not cancel a Tap, so perhaps TapDownCancel, or CancelTapDown would be a more accurate name.

Agreed: &quot;Tap&quot; is the action of finger down + finger up with a minimum radio movement.

&gt; Source/WebCore/page/EventHandler.cpp:2367
&gt; +bool EventHandler::shouldGesturesTriggerActive()

would shouldTouchEventsTriggerActive be more accurate?

&gt;&gt; Source/WebCore/page/EventHandler.cpp:2402
&gt;&gt; +        IntPoint hitTestPoint = m_frame-&gt;view()-&gt;windowToContents(gestureEvent.position());
&gt; 
&gt; This looks new, why is this change necessary?

Please answer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720731</commentid>
    <comment_count>22</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-14 07:16:44 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 163498 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=163498&amp;action=review
&gt; 
&gt; The patch looks solid enough. I only have a few comments.
&gt; 
&gt; &gt; Source/WebCore/dom/GestureEvent.cpp:61
&gt; &gt; +    case PlatformEvent::GestureTapCancel:
&gt; 
&gt; You can not cancel a Tap, so perhaps TapDownCancel, or CancelTapDown would be a more accurate name.

Sure.  I&apos;ll change PlatformGestureEvent here, but do chromium&apos;s WebGestureEvent separately since it&apos;s a breaking change to chromium that&apos;ll require a 3-step change.
 
&gt; &gt; Source/WebCore/page/EventHandler.cpp:2402
&gt; &gt; +        IntPoint hitTestPoint = m_frame-&gt;view()-&gt;windowToContents(gestureEvent.position());
&gt; 
&gt; This looks new, why is this change necessary?

There was a pre-existing bug here that had gone unnoticed - when the page is scrolled gestures get targeted at the wrong node.  I considered splitting this out into it&apos;s own bug/fix, but I thought the code wasn&apos;t being used for much else in practice (we hadn&apos;t seen an issue).  I cover this case in my iframe layout test (although the issues isn&apos;t specific just to iframes).

Digging into it deeper now, I think I should be able to provoke the bug with scrolling on the software path (in chromium we mostly try to do scrolling via our GPU compositor).  I&apos;ll work on creating an independent repro for it.  Should I block this CL on that, or is it OK to submit the fix here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720735</commentid>
    <comment_count>23</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-14 07:19:06 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 163498 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=163498&amp;action=review
&gt; 
&gt; Looks good. Some questions ...
&gt; 
&gt; &gt;&gt; Source/WebCore/dom/GestureEvent.cpp:61
&gt; &gt;&gt; +    case PlatformEvent::GestureTapCancel:
&gt; &gt; 
&gt; &gt; You can not cancel a Tap, so perhaps TapDownCancel, or CancelTapDown would be a more accurate name.
&gt; 
&gt; Agreed: &quot;Tap&quot; is the action of finger down + finger up with a minimum radio movement.
&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.cpp:2367
&gt; &gt; +bool EventHandler::shouldGesturesTriggerActive()
&gt; 
&gt; would shouldTouchEventsTriggerActive be more accurate?

No, here we&apos;re deciding to use gesture events (TapDown,TapDownCancel,Tap) to trigger the active stead INSTEAD of touch events (touchstart/touchend).  I could invert the semantics though and then that name would be OK (I prefer to think of this as opting into gesture-based activation though).

&gt; &gt;&gt; Source/WebCore/page/EventHandler.cpp:2402
&gt; &gt;&gt; +        IntPoint hitTestPoint = m_frame-&gt;view()-&gt;windowToContents(gestureEvent.position());
&gt; &gt; 
&gt; &gt; This looks new, why is this change necessary?
&gt; 
&gt; Please answer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720773</commentid>
    <comment_count>24</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-14 08:04:07 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; &gt; 
&gt; &gt; This looks new, why is this change necessary?
&gt; 
&gt; There was a pre-existing bug here that had gone unnoticed - when the page is scrolled gestures get targeted at the wrong node.  I considered splitting this out into it&apos;s own bug/fix, but I thought the code wasn&apos;t being used for much else in practice (we hadn&apos;t seen an issue).  I cover this case in my iframe layout test (although the issues isn&apos;t specific just to iframes).
&gt; 
&gt; Digging into it deeper now, I think I should be able to provoke the bug with scrolling on the software path (in chromium we mostly try to do scrolling via our GPU compositor).  I&apos;ll work on creating an independent repro for it.  Should I block this CL on that, or is it OK to submit the fix here?

Sending gesture events to DOM nodes was added (in bug 92281) just for chromium plugins, and it looks like that&apos;s still the only place it&apos;s exposed.  So I can&apos;t repro any issue here with scrolling.

Still, I&apos;ve forked that issue and fix, and plugin-specific test out into bug 96788 (hopefully I can still get both landed today).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720795</commentid>
    <comment_count>25</comment_count>
      <attachid>164162</attachid>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-14 08:36:31 -0700</bug_when>
    <thetext>Created attachment 164162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720801</commentid>
    <comment_count>26</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-14 08:38:22 -0700</bug_when>
    <thetext>Updated patch that includes the rename and doesn&apos;t include the fix for bug 96788.  As a result gesture-tap-active-state-iframe fails here.  As soon as bug 96788 lands (it&apos;s in the CQ now), I&apos;ll merge with it and the test will pass again.

Any other suggestions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720910</commentid>
    <comment_count>27</comment_count>
      <attachid>164183</attachid>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-14 10:25:33 -0700</bug_when>
    <thetext>Created attachment 164183
Merge with trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720916</commentid>
    <comment_count>28</comment_count>
      <attachid>164183</attachid>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-14 10:28:42 -0700</bug_when>
    <thetext>Comment on attachment 164183
Merge with trunk

This has been merged with the fix for 96788.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721642</commentid>
    <comment_count>29</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-16 16:58:52 -0700</bug_when>
    <thetext>Ping - Antonio, any other concerns/questions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721815</commentid>
    <comment_count>30</comment_count>
      <attachid>164183</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-09-17 05:10:54 -0700</bug_when>
    <thetext>Comment on attachment 164183
Merge with trunk

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

It looks good to me. Before r+ I would have a question:

&gt; Source/WebCore/page/EventHandler.cpp:2377
&gt; +#if PLATFORM(CHROMIUM) &amp;&amp; !OS(ANDROID)

I thought you actually wanted this for Androis: the tap down gesture to &quot;activate&quot;  an element. while tapdowncancel cleared the active state.

&gt; Source/WebCore/page/EventHandler.cpp:2401
&gt; +    else
&gt; +        hitType |= HitTestRequest::Move | HitTestRequest::ReadOnly;

the &quot;::Move&quot; here is an unrelated behavior change?

&gt; Source/WebCore/page/EventHandler.h:362
&gt; +    static bool shouldGesturesTriggerActive();

can this be a local static helper instead of a public static class method? Or you thinking of using it from outside?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721982</commentid>
    <comment_count>31</comment_count>
      <attachid>164183</attachid>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-17 09:16:33 -0700</bug_when>
    <thetext>Comment on attachment 164183
Merge with trunk

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

&gt;&gt; Source/WebCore/page/EventHandler.cpp:2377
&gt;&gt; +#if PLATFORM(CHROMIUM) &amp;&amp; !OS(ANDROID)
&gt; 
&gt; I thought you actually wanted this for Androis: the tap down gesture to &quot;activate&quot;  an element. while tapdowncancel cleared the active state.

Nope, this is Chrome Desktop (Win8 and ChromeOS) only at the moment.  Android wants it too, but their gesture recognizer hasn&apos;t been updated to send a GestureTapDownCancel yet, so that&apos;ll come later once they update their GR.  They say it should be easy, so I expect this code will soon be simply &apos;#if PLATFORM(CHROMIUM)&apos;.

&gt;&gt; Source/WebCore/page/EventHandler.cpp:2401
&gt;&gt; +        hitType |= HitTestRequest::Move | HitTestRequest::ReadOnly;
&gt; 
&gt; the &quot;::Move&quot; here is an unrelated behavior change?

From my analysis of the code, it seemed that Move|ReadOnly would have the same behavior here as Active|ReadOnly, did I miss something?  Regardless, saying &apos;Active&apos; for all gestures seemed wrong (eg. pinch updates) - seemed more correct to me to opt into to using Active specifically on TapDown and nowhere else (it&apos;s really the only gesture, combined with Tap, that is explicitly about activating an element).

&gt;&gt; Source/WebCore/page/EventHandler.h:362
&gt;&gt; +    static bool shouldGesturesTriggerActive();
&gt; 
&gt; can this be a local static helper instead of a public static class method? Or you thinking of using it from outside?

Yes, a local helper would be sufficient - I&apos;ll do that now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721991</commentid>
    <comment_count>32</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-09-17 09:22:39 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; From my analysis of the code, it seemed that Move|ReadOnly would have the same behavior here as Active|ReadOnly, did I miss something?  Regardless, saying &apos;Active&apos; for all gestures seemed wrong (eg. pinch updates) - seemed more correct to me to opt into to using Active specifically on TapDown and nowhere else (it&apos;s really the only gesture, combined with Tap, that is explicitly about activating an element).
&gt; 
They are all the same when ReadOnly is set, but usually we use Active|ReadOnly as the default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721998</commentid>
    <comment_count>33</comment_count>
      <attachid>164183</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-17 09:32:28 -0700</bug_when>
    <thetext>Comment on attachment 164183
Merge with trunk

Rejecting attachment 164183 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

ERROR: /mnt/git/webkit-commit-queue/Source/WebKit/chromium/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/13878355</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721999</commentid>
    <comment_count>34</comment_count>
      <attachid>164408</attachid>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-17 09:33:26 -0700</bug_when>
    <thetext>Created attachment 164408
Tweaks based on CR feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722000</commentid>
    <comment_count>35</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-17 09:35:13 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; (In reply to comment #31)
&gt; &gt; From my analysis of the code, it seemed that Move|ReadOnly would have the same behavior here as Active|ReadOnly, did I miss something?  Regardless, saying &apos;Active&apos; for all gestures seemed wrong (eg. pinch updates) - seemed more correct to me to opt into to using Active specifically on TapDown and nowhere else (it&apos;s really the only gesture, combined with Tap, that is explicitly about activating an element).
&gt; &gt; 
&gt; They are all the same when ReadOnly is set, but usually we use Active|ReadOnly as the default.

Ah, glad my understanding of the code was correct.  If that&apos;s the convention then I should use it here too, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722007</commentid>
    <comment_count>36</comment_count>
      <attachid>164408</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-17 09:38:53 -0700</bug_when>
    <thetext>Comment on attachment 164408
Tweaks based on CR feedback

Rejecting attachment 164408 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

ERROR: /mnt/git/webkit-commit-queue/Source/WebKit/chromium/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/13863877</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722016</commentid>
    <comment_count>37</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-17 10:05:09 -0700</bug_when>
    <thetext>(In reply to comment #36)
&gt; (From update of attachment 164408 [details])
&gt; Rejecting attachment 164408 [details] from commit-queue.
&gt; 
&gt; Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1
&gt; 
&gt; ERROR: /mnt/git/webkit-commit-queue/Source/WebKit/chromium/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).
&gt; 
&gt; Full output: http://queues.webkit.org/results/13863877

abarth@ can you please review the tiny change in chromium/ here?  This is just plumbing the TapCancel event through to WebCore (you previously approved the CL that added it to WebKit/chromium).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722064</commentid>
    <comment_count>38</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-17 11:01:57 -0700</bug_when>
    <thetext>The commit queue is complaining because your ChangeLog entry in Source/WebKit/chromium/ChangeLog is malformed, not because you&apos;re lacking a reviewer.  Add back the &quot;Reviewed by NOBODY (OOPS!).&quot; line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722135</commentid>
    <comment_count>39</comment_count>
      <attachid>164432</attachid>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-17 12:02:13 -0700</bug_when>
    <thetext>Created attachment 164432
Fix ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722140</commentid>
    <comment_count>40</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-09-17 12:04:47 -0700</bug_when>
    <thetext>(In reply to comment #38)
&gt; The commit queue is complaining because your ChangeLog entry in Source/WebKit/chromium/ChangeLog is malformed, not because you&apos;re lacking a reviewer.  Add back the &quot;Reviewed by NOBODY (OOPS!).&quot; line

Dammit - I must have dropped that merging changes between branches.  Thanks for catching it.  Can I get a cq+ again please?  Only change is adding that line to the Changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722176</commentid>
    <comment_count>41</comment_count>
      <attachid>164432</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-17 12:39:17 -0700</bug_when>
    <thetext>Comment on attachment 164432
Fix ChangeLog

Clearing flags on attachment: 164432

Committed r128794: &lt;http://trac.webkit.org/changeset/128794&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722178</commentid>
    <comment_count>42</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-17 12:39:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162974</attachid>
            <date>2012-09-08 19:17:15 -0700</date>
            <delta_ts>2012-09-11 14:26:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96060-20120908221653.patch</filename>
            <type>text/plain</type>
            <size>8739</size>
            <attacher name="Rick Byers">rbyers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3ODc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTZjNmFmNTFlNmZiZmU0
Y2Q5ZjRkMTY5NDk2OTg5NGFiMmQwMTE1ZC4uZTdmMDEwNTE1YzEyNDM5OGE3ODg5NmJiNGFjYmQw
MWJhNTM4ZDc0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA5LTA4ICBSaWNr
IEJ5ZXJzICA8cmJ5ZXJzQGNocm9taXVtLm9yZz4KKworICAgICAgICBBbGxvdyBnZXN0dXJlIGV2
ZW50cyB0byBzZXQgYWN0aXZlL2hvdmVyIHN0YXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIEdlc3R1cmVUYXBDYW5jZWwgYXMgYSBuZXcgUGxh
dGZvcm1HZXN0dXJlRXZlbnQgdHlwZS4gIE9uIHBvcnRzCisgICAgICAgIHRoYXQgc3VwcG9ydCBn
ZXN0dXJlIGV2ZW50cywgdXNlIEdlc3R1cmVUYXBEb3duIHRvIHRyaWdnZXIgYWN0aXZlL2hvdmVy
CisgICAgICAgIHN0YXRlcywgYW5kIEdlc3R1cmVUYXAvR2VzdHVyZVRhcENhbmNlbCB0byBjbGVh
ciB0aGVtLiAgVGhpcyBpcworICAgICAgICBzdXBlcmlvciB0byB1c2luZyB0b3VjaCBldmVudHMg
Zm9yIGEgbnVtYmVyIG9mIHJlYXNvbnM6CisgICAgICAgICAgMSkgc29tZSBwb3J0cyAoY2hyb21p
dW0pIGF2b2lkIHNlbmRpbmcgdG91Y2ggZXZlbnRzIHVubGVzcyBhYnNvbHV0ZWx5CisgICAgICAg
ICAgbmVjZXNzYXJ5LCBzaW5jZSB0aGV5IGh1cnQgc2Nyb2xsIHBlcmZvcm1hbmNlIGJ5IGJsb2Nr
aW5nIHRocmVhZGVkCisgICAgICAgICAgc2Nyb2xsaW5nLgorICAgICAgICAgIDIpIHdpdGggdG91
Y2gsIGFuZCBlbGVtZW50IHJlYWxseSBzaG91bGRuJ3QgYmUgJ2FjdGl2ZScgd2hlbiB0aGUgdXNl
cgorICAgICAgICAgIGhhcHBlbnMgdG8gYmUgdG91Y2hpbmcgaXQgd2hpbGUgc2Nyb2xsaW5nLiAg
SW4gdGhhdCBjYXNlIHRoZXkgYXJlbid0CisgICAgICAgICAgJ21hbmlwdWxhdGluZyB0aGUgZWxl
bWVudCcsIHRoZXkncmUgbWFuaXB1bGF0aW5nIHRoZSBwYWdlIG9yIGRpdiB0aGF0CisgICAgICAg
ICAgaXMgc2Nyb2xsaW5nLgorICAgICAgICAgIDMpIHNpbWlsYXJseSwgdGhlcmUgbWF5IGJlIG90
aGVyIGdlc3R1cmVzIHRoYXQgaW52b2x2ZSB0b3VjaGluZyB0aGUKKyAgICAgICAgICBlbGVtZW50
IHdoaWNoIGFyZW4ndCByZWFsbHkgYWJvdXQgbWFuaXB1bGF0aW5nIHRoYXQgZWxlbWVudCAoZWcu
CisgICAgICAgICAgcGluY2ggdG8gem9vbSkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BT
ISkuCisgICAgICAgIFRPRE86IHRlc3RzIGJlaW5nIGFkZGVkLgorCisgICAgICAgICogZG9tL0dl
c3R1cmVFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJlRXZlbnQ6OmNyZWF0ZSk6
CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybUV2
ZW50Lmg6CisKIDIwMTItMDktMDcgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9r
aWEuY29tPgogCiAgICAgICAgIFtRdF0gQWRkIGFub3RoZXIgYWxsLWluLW9uZSBzb3VyY2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZmM5MDJlODQ1NjdmZWI4MTU4ZDlhMWE1MzkyODhh
NWEyYTA0NTNlYi4uYjU5ZWNjMTZhYjg5ZjAwMWViMzdkMmIwMTJiYmU1NDMxMzc4ZjM5MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wOS0wOCAgUmlj
ayBCeWVycyAgPHJieWVyc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU2VuZCBHZXN0dXJlVGFw
Q2FuY2VsIHRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk2MDYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBzcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXI6OlBsYXRmb3JtR2VzdHVyZUV2ZW50QnVp
bGRlcik6CisgICAgICAgICogc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KToKKyAgICAgICAgKiBzcmMv
V2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aGFuZGxlR2Vz
dHVyZUV2ZW50KToKKwogMjAxMi0wOS0wNiAgUmljayBCeWVycyAgPHJieWVyc0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBBZGQgdW51c2VkIEdlc3R1cmVUYXBDYW5jZWwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9HZXN0dXJlRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0dlc3R1cmVFdmVudC5jcHAKaW5kZXggZDc1Y2RhYTA5NjY5ZWYzYTcxNTZjOWQ1
NTYxNDE0NzNlMDY2OGJjMi4uZjA0N2IyNGY1YWFmN2MyYWFkNmU4ZWE5YTlkNzQ1ZmMzZmQ2NTk1
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5jcHAKQEAgLTU4LDYgKzU4LDcgQEAgUGFz
c1JlZlB0cjxHZXN0dXJlRXZlbnQ+IEdlc3R1cmVFdmVudDo6Y3JlYXRlKFBhc3NSZWZQdHI8QWJz
dHJhY3RWaWV3PiB2aWV3LCBjb24KICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVQaW5j
aEJlZ2luOgogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVBpbmNoRW5kOgogICAgIGNh
c2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVBpbmNoVXBkYXRlOgorICAgIGNhc2UgUGxhdGZvcm1F
dmVudDo6R2VzdHVyZVRhcENhbmNlbDoKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gMDsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggMzgwN2M1NTk3Mjhj
ZjU2Y2U1MWVjNjMwYzdhNjliZDBkNzNmMGRiNC4uZjYxZTJmODg3ZThjYjY5ZWM1MzFlNTYxNDNh
MzFhMjhmMDUxMGNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjM3
NSw4ICsyMzc1LDE3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZlbnQoY29u
c3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCkKICAgICBpZiAoZ2VzdHVyZUV2
ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlU2Nyb2xsRW5kIHx8IGdlc3R1cmVF
dmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZVNjcm9sbFVwZGF0ZSkKICAgICAg
ICAgZXZlbnRUYXJnZXQgPSBtX3Njcm9sbEdlc3R1cmVIYW5kbGluZ05vZGUuZ2V0KCk7CiAKLSAg
ICBpZiAoIWV2ZW50VGFyZ2V0KSB7Ci0gICAgICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0ID0gaGl0
VGVzdFJlc3VsdEF0UG9pbnQoZ2VzdHVyZUV2ZW50LnBvc2l0aW9uKCkpOworICAgIEhpdFRlc3RS
ZXF1ZXN0OjpIaXRUZXN0UmVxdWVzdFR5cGUgaGl0VHlwZSA9IEhpdFRlc3RSZXF1ZXN0OjpUb3Vj
aEV2ZW50OworICAgIGlmIChnZXN0dXJlRXZlbnQudHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6Okdl
c3R1cmVUYXBEb3duKQorICAgICAgICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmU7
CisgICAgZWxzZSBpZiAoZ2VzdHVyZUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpHZXN0
dXJlVGFwIHx8IGdlc3R1cmVFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZVRh
cENhbmNlbCkKKyAgICAgICAgaGl0VHlwZSB8PSBIaXRUZXN0UmVxdWVzdDo6UmVsZWFzZTsKKyAg
ICBlbHNlCisgICAgICAgIGhpdFR5cGUgfD0gSGl0VGVzdFJlcXVlc3Q6Ok1vdmUgfCBIaXRUZXN0
UmVxdWVzdDo6UmVhZE9ubHk7CisKKyAgICBpZiAoIWV2ZW50VGFyZ2V0IHx8ICEoaGl0VHlwZSAm
IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSkpIHsKKyAgICAgICAgSW50UG9pbnQgaGl0VGVzdFBv
aW50ID0gbV9mcmFtZS0+dmlldygpLT53aW5kb3dUb0NvbnRlbnRzKGdlc3R1cmVFdmVudC5wb3Np
dGlvbigpKTsKKyAgICAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQgPSBoaXRUZXN0UmVzdWx0QXRQ
b2ludChoaXRUZXN0UG9pbnQsIGhpdFR5cGUpOwogICAgICAgICBldmVudFRhcmdldCA9IHJlc3Vs
dC50YXJnZXROb2RlKCk7CiAgICAgfQogCkBAIC0yNDE0LDYgKzI0MjMsNyBAQCBib29sIEV2ZW50
SGFuZGxlcjo6aGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBn
ZXN0dXJlRXZlbnQpCiAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlUGluY2hCZWdpbjoK
ICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVQaW5jaEVuZDoKICAgICBjYXNlIFBsYXRm
b3JtRXZlbnQ6Okdlc3R1cmVQaW5jaFVwZGF0ZToKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdl
c3R1cmVUYXBDYW5jZWw6CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzU0NSw2ICszNTU1LDEwIEBAIGJvb2wgRXZlbnRIYW5k
bGVyOjpoYW5kbGVUb3VjaEV2ZW50KGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYgZXZlbnQpCiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCisjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRT
KQorICAgICAgaGl0VHlwZSB8PSBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHk7CisjZW5kaWYKKwog
ICAgICAgICAvLyBJbmNyZW1lbnQgdGhlIHBsYXRmb3JtIHRvdWNoIGlkIGJ5IDEgdG8gYXZvaWQg
c3RvcmluZyBhIGtleSBvZiAwIGluIHRoZSBoYXNobWFwLgogICAgICAgICB1bnNpZ25lZCB0b3Vj
aFBvaW50VGFyZ2V0S2V5ID0gcG9pbnQuaWQoKSArIDE7CiAgICAgICAgIFJlZlB0cjxFdmVudFRh
cmdldD4gdG91Y2hUYXJnZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgK
aW5kZXggNTJjNjQ4OGI2YjI2NGM5YWUwZjM0MjJmZjBlODJlYjA5MTg3NmRmMC4uNGI2YTQzYzdl
MGE0MDZhYWM3MDg0OGRiODFjZDZiNjUxZDQxNzIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtRXZlbnQuaApAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAgICAgICAgIEdlc3R1
cmVTY3JvbGxVcGRhdGUsCiAgICAgICAgIEdlc3R1cmVUYXAsCiAgICAgICAgIEdlc3R1cmVUYXBE
b3duLAorICAgICAgICBHZXN0dXJlVGFwQ2FuY2VsLAogICAgICAgICBHZXN0dXJlRG91YmxlVGFw
LAogICAgICAgICBHZXN0dXJlVHdvRmluZ2VyVGFwLAogICAgICAgICBHZXN0dXJlTG9uZ1ByZXNz
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENv
bnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENv
bnZlcnNpb24uY3BwCmluZGV4IDJhZmM3ZGNmZTc5OTVjMjg0M2MxYzI0YTBlNzc4NzYyNjcxYjc3
NDQuLmUyMThiMmMzOWI1ZGM1ZDU0YTJhNGQ0NGMwMjMxODM0YWI0MTBlNmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5j
cHAKQEAgLTE2MSw2ICsxNjEsOSBAQCBQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXI6OlBsYXRm
b3JtR2VzdHVyZUV2ZW50QnVpbGRlcihXaWRnZXQqIHdpZGdldCwgY29uc3QgVwogICAgIGNhc2Ug
V2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcERvd246CiAgICAgICAgIG1fdHlwZSA9IFBsYXRmb3Jt
RXZlbnQ6Okdlc3R1cmVUYXBEb3duOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYklucHV0
RXZlbnQ6Okdlc3R1cmVUYXBDYW5jZWw6CisgICAgICAgIG1fdHlwZSA9IFBsYXRmb3JtRXZlbnQ6
Okdlc3R1cmVUYXBDYW5jZWw7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViSW5wdXRFdmVu
dDo6R2VzdHVyZURvdWJsZVRhcDoKICAgICAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVudDo6R2Vz
dHVyZURvdWJsZVRhcDsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJQb3B1cE1lbnVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwCmluZGV4IDU4YTI4NTVjZDliMzRkY2ExZGJlMjAx
ZTU3MzZhNjc5ZjE3NmI0ZDMuLjUxMTE0MDIwYmYzYmM1MGViMmVmMmZiNWJjYmNjY2UwNmNjNjJi
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUlt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwu
Y3BwCkBAIC0yNzcsNiArMjc3LDcgQEAgYm9vbCBXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVJbnB1
dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmIGlucHV0RXZlbnQpCiAgICAgY2FzZSBXZWJJbnB1
dEV2ZW50OjpHZXN0dXJlRmxpbmdDYW5jZWw6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0
dXJlVGFwOgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcERvd246CisgICAgY2Fz
ZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwQ2FuY2VsOgogICAgIGNhc2UgV2ViSW5wdXRFdmVu
dDo6R2VzdHVyZURvdWJsZVRhcDoKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUd29G
aW5nZXJUYXA6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlTG9uZ1ByZXNzOgpAQCAt
Mjg4LDcgKzI4OSw2IEBAIGJvb2wgV2ViUG9wdXBNZW51SW1wbDo6aGFuZGxlSW5wdXRFdmVudChj
b25zdCBXZWJJbnB1dEV2ZW50JiBpbnB1dEV2ZW50KQogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6
VW5kZWZpbmVkOgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6TW91c2VFbnRlcjoKICAgICBjYXNl
IFdlYklucHV0RXZlbnQ6OkNvbnRleHRNZW51OgotICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2Vz
dHVyZVRhcENhbmNlbDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXgg
ZTc0MTlhOWVhOWI2NGIwZWY2MzhiNjU2MWUxZjYxYzZiODFjYjc1Zi4uYzFhOTI1ZmE1MjU1NWVk
NDRjMWQ3NzY4MDA1ZmRlOTQxNGRkZDAzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcApAQCAtNzYzLDE1ICs3NjMsMTIgQEAgYm9vbCBXZWJWaWV3SW1wbDo6
aGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IFdlYkdlc3R1cmVFdmVudCYgZXZlbnQpCiAgICAgICAg
IG1fY2xpZW50LT5jYW5jZWxTY2hlZHVsZWRDb250ZW50SW50ZW50cygpOwogICAgIGNhc2UgV2Vi
SW5wdXRFdmVudDo6R2VzdHVyZVNjcm9sbEVuZDoKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdl
c3R1cmVTY3JvbGxVcGRhdGU6CisgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwQ2Fu
Y2VsOgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVBpbmNoRW5kOgogICAgIGNhc2Ug
V2ViSW5wdXRFdmVudDo6R2VzdHVyZVBpbmNoVXBkYXRlOiB7CiAgICAgICAgIFBsYXRmb3JtR2Vz
dHVyZUV2ZW50QnVpbGRlciBwbGF0Zm9ybUV2ZW50KG1haW5GcmFtZUltcGwoKS0+ZnJhbWVWaWV3
KCksIGV2ZW50KTsKICAgICAgICAgcmV0dXJuIG1haW5GcmFtZUltcGwoKS0+ZnJhbWUoKS0+ZXZl
bnRIYW5kbGVyKCktPmhhbmRsZUdlc3R1cmVFdmVudChwbGF0Zm9ybUV2ZW50KTsKICAgICB9Ci0g
ICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwQ2FuY2VsOgotICAgICAgICAvLyBGSVhN
RTogVXBkYXRlIFdlYkNvcmUgdG8gaGFuZGxlIHRoaXMgZXZlbnQgYWZ0ZXIgY2hyb21pdW0gaGFz
IGJlZW4gdXBkYXRlZCB0byBzZW5kIGl0Ci0gICAgICAgIC8vIGh0dHA6Ly93a2IudWcvOTYwNjAK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162975</attachid>
            <date>2012-09-08 19:18:59 -0700</date>
            <delta_ts>2012-09-11 14:26:58 -0700</delta_ts>
            <desc>Combined with 96183 for EWS</desc>
            <filename>bug-96060-20120908221837.patch</filename>
            <type>text/plain</type>
            <size>12193</size>
            <attacher name="Rick Byers">rbyers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3ODc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTZjNmFmNTFlNmZiZmU0
Y2Q5ZjRkMTY5NDk2OTg5NGFiMmQwMTE1ZC4uZTdmMDEwNTE1YzEyNDM5OGE3ODg5NmJiNGFjYmQw
MWJhNTM4ZDc0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA5LTA4ICBSaWNr
IEJ5ZXJzICA8cmJ5ZXJzQGNocm9taXVtLm9yZz4KKworICAgICAgICBBbGxvdyBnZXN0dXJlIGV2
ZW50cyB0byBzZXQgYWN0aXZlL2hvdmVyIHN0YXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIEdlc3R1cmVUYXBDYW5jZWwgYXMgYSBuZXcgUGxh
dGZvcm1HZXN0dXJlRXZlbnQgdHlwZS4gIE9uIHBvcnRzCisgICAgICAgIHRoYXQgc3VwcG9ydCBn
ZXN0dXJlIGV2ZW50cywgdXNlIEdlc3R1cmVUYXBEb3duIHRvIHRyaWdnZXIgYWN0aXZlL2hvdmVy
CisgICAgICAgIHN0YXRlcywgYW5kIEdlc3R1cmVUYXAvR2VzdHVyZVRhcENhbmNlbCB0byBjbGVh
ciB0aGVtLiAgVGhpcyBpcworICAgICAgICBzdXBlcmlvciB0byB1c2luZyB0b3VjaCBldmVudHMg
Zm9yIGEgbnVtYmVyIG9mIHJlYXNvbnM6CisgICAgICAgICAgMSkgc29tZSBwb3J0cyAoY2hyb21p
dW0pIGF2b2lkIHNlbmRpbmcgdG91Y2ggZXZlbnRzIHVubGVzcyBhYnNvbHV0ZWx5CisgICAgICAg
ICAgbmVjZXNzYXJ5LCBzaW5jZSB0aGV5IGh1cnQgc2Nyb2xsIHBlcmZvcm1hbmNlIGJ5IGJsb2Nr
aW5nIHRocmVhZGVkCisgICAgICAgICAgc2Nyb2xsaW5nLgorICAgICAgICAgIDIpIHdpdGggdG91
Y2gsIGFuZCBlbGVtZW50IHJlYWxseSBzaG91bGRuJ3QgYmUgJ2FjdGl2ZScgd2hlbiB0aGUgdXNl
cgorICAgICAgICAgIGhhcHBlbnMgdG8gYmUgdG91Y2hpbmcgaXQgd2hpbGUgc2Nyb2xsaW5nLiAg
SW4gdGhhdCBjYXNlIHRoZXkgYXJlbid0CisgICAgICAgICAgJ21hbmlwdWxhdGluZyB0aGUgZWxl
bWVudCcsIHRoZXkncmUgbWFuaXB1bGF0aW5nIHRoZSBwYWdlIG9yIGRpdiB0aGF0CisgICAgICAg
ICAgaXMgc2Nyb2xsaW5nLgorICAgICAgICAgIDMpIHNpbWlsYXJseSwgdGhlcmUgbWF5IGJlIG90
aGVyIGdlc3R1cmVzIHRoYXQgaW52b2x2ZSB0b3VjaGluZyB0aGUKKyAgICAgICAgICBlbGVtZW50
IHdoaWNoIGFyZW4ndCByZWFsbHkgYWJvdXQgbWFuaXB1bGF0aW5nIHRoYXQgZWxlbWVudCAoZWcu
CisgICAgICAgICAgcGluY2ggdG8gem9vbSkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BT
ISkuCisgICAgICAgIFRPRE86IHRlc3RzIGJlaW5nIGFkZGVkLgorCisgICAgICAgICogZG9tL0dl
c3R1cmVFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJlRXZlbnQ6OmNyZWF0ZSk6
CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybUV2
ZW50Lmg6CisKIDIwMTItMDktMDcgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9r
aWEuY29tPgogCiAgICAgICAgIFtRdF0gQWRkIGFub3RoZXIgYWxsLWluLW9uZSBzb3VyY2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYjI2OWRkOWNkZTkxNWIxM2I0MzNiYTc1MTRmNmQ4
MTlkMTNkNGQ2NS4uYjU5ZWNjMTZhYjg5ZjAwMWViMzdkMmIwMTJiYmU1NDMxMzc4ZjM5MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMi0wOS0wOCAgUmlj
ayBCeWVycyAgPHJieWVyc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU2VuZCBHZXN0dXJlVGFw
Q2FuY2VsIHRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk2MDYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBzcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXI6OlBsYXRmb3JtR2VzdHVyZUV2ZW50QnVp
bGRlcik6CisgICAgICAgICogc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KToKKyAgICAgICAgKiBzcmMv
V2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aGFuZGxlR2Vz
dHVyZUV2ZW50KToKKworMjAxMi0wOS0wNiAgUmljayBCeWVycyAgPHJieWVyc0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgdW51c2VkIEdlc3R1cmVUYXBDYW5jZWwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MTgzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBhZGRzIGEg
bmV3ICd0YXAgY2FuY2VsJyBnZXN0dXJlIHR5cGUuICBUaGlzIGlzIHRlbXBvcmFyaWx5IHVudXNl
ZCwKKyAgICAgICAgc28gdGhhdCB3ZSBjYW4gY2hhbmdlIGNocm9taXVtIHRvIHN0YXJ0IHNlbmRp
bmcgdGhlIGdlc3R1cmUgdHlwZQorICAgICAgICB3aXRob3V0IGJyZWFraW5nIGFueXRoaW5nLgor
CisgICAgICAgICogcHVibGljL1dlYklucHV0RXZlbnQuaDoKKyAgICAgICAgKiBzcmMvUGFnZVdp
ZGdldERlbGVnYXRlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFnZVdpZGdldERlbGVnYXRlOjpo
YW5kbGVJbnB1dEV2ZW50KToKKyAgICAgICAgKiBzcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24u
Y3BwOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXI6OlBsYXRm
b3JtR2VzdHVyZUV2ZW50QnVpbGRlcik6CisgICAgICAgICogc3JjL1dlYlBvcHVwTWVudUltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVJbnB1dEV2ZW50
KToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6aGFuZGxlR2VzdHVyZUV2ZW50KToKKwogMjAxMi0wOS0wNyAgQWxsYW4gU2FuZGZl
bGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQG5va2lhLmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBo
aXRUZXN0UmVzdWx0QXRQb2ludCBhbmQgbm9kZXNGcm9tUmVjdCBBUElzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vR2VzdHVyZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9H
ZXN0dXJlRXZlbnQuY3BwCmluZGV4IGQ3NWNkYWEwOTY2OWVmM2E3MTU2YzlkNTU2MTQxNDczZTA2
NjhiYzIuLmYwNDdiMjRmNWFhZjdjMmFhZDZlOGVhOWE5ZDc0NWZjM2ZkNjU5NTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9HZXN0dXJlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9HZXN0dXJlRXZlbnQuY3BwCkBAIC01OCw2ICs1OCw3IEBAIFBhc3NSZWZQdHI8R2Vz
dHVyZUV2ZW50PiBHZXN0dXJlRXZlbnQ6OmNyZWF0ZShQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4g
dmlldywgY29uCiAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlUGluY2hCZWdpbjoKICAg
ICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVQaW5jaEVuZDoKICAgICBjYXNlIFBsYXRmb3Jt
RXZlbnQ6Okdlc3R1cmVQaW5jaFVwZGF0ZToKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1
cmVUYXBDYW5jZWw6CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDM4MDdjNTU5NzI4Y2Y1NmNlNTFlYzYz
MGM3YTY5YmQwZDczZjBkYjQuLmY2MWUyZjg4N2U4Y2I2OWVjNTMxZTU2MTQzYTMxYTI4ZjA1MTBj
YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTIzNzUsOCArMjM3NSwx
NyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IFBsYXRmb3Jt
R2VzdHVyZUV2ZW50JiBnZXN0dXJlRXZlbnQpCiAgICAgaWYgKGdlc3R1cmVFdmVudC50eXBlKCkg
PT0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZVNjcm9sbEVuZCB8fCBnZXN0dXJlRXZlbnQudHlwZSgp
ID09IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVTY3JvbGxVcGRhdGUpCiAgICAgICAgIGV2ZW50VGFy
Z2V0ID0gbV9zY3JvbGxHZXN0dXJlSGFuZGxpbmdOb2RlLmdldCgpOwogCi0gICAgaWYgKCFldmVu
dFRhcmdldCkgewotICAgICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCA9IGhpdFRlc3RSZXN1bHRB
dFBvaW50KGdlc3R1cmVFdmVudC5wb3NpdGlvbigpKTsKKyAgICBIaXRUZXN0UmVxdWVzdDo6SGl0
VGVzdFJlcXVlc3RUeXBlIGhpdFR5cGUgPSBIaXRUZXN0UmVxdWVzdDo6VG91Y2hFdmVudDsKKyAg
ICBpZiAoZ2VzdHVyZUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlVGFwRG93
bikKKyAgICAgICAgaGl0VHlwZSB8PSBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlOworICAgIGVsc2Ug
aWYgKGdlc3R1cmVFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZVRhcCB8fCBn
ZXN0dXJlRXZlbnQudHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVUYXBDYW5jZWwpCisg
ICAgICAgIGhpdFR5cGUgfD0gSGl0VGVzdFJlcXVlc3Q6OlJlbGVhc2U7CisgICAgZWxzZQorICAg
ICAgICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpNb3ZlIHwgSGl0VGVzdFJlcXVlc3Q6OlJl
YWRPbmx5OworCisgICAgaWYgKCFldmVudFRhcmdldCB8fCAhKGhpdFR5cGUgJiBIaXRUZXN0UmVx
dWVzdDo6UmVhZE9ubHkpKSB7CisgICAgICAgIEludFBvaW50IGhpdFRlc3RQb2ludCA9IG1fZnJh
bWUtPnZpZXcoKS0+d2luZG93VG9Db250ZW50cyhnZXN0dXJlRXZlbnQucG9zaXRpb24oKSk7Cisg
ICAgICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0ID0gaGl0VGVzdFJlc3VsdEF0UG9pbnQoaGl0VGVz
dFBvaW50LCBoaXRUeXBlKTsKICAgICAgICAgZXZlbnRUYXJnZXQgPSByZXN1bHQudGFyZ2V0Tm9k
ZSgpOwogICAgIH0KIApAQCAtMjQxNCw2ICsyNDIzLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6Omhh
bmRsZUdlc3R1cmVFdmVudChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50
KQogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVBpbmNoQmVnaW46CiAgICAgY2FzZSBQ
bGF0Zm9ybUV2ZW50OjpHZXN0dXJlUGluY2hFbmQ6CiAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpH
ZXN0dXJlUGluY2hVcGRhdGU6CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlVGFwQ2Fu
Y2VsOgogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTM1NDUsNiArMzU1NSwxMCBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxl
VG91Y2hFdmVudChjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmIGV2ZW50KQogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KIAorI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKKyAgICAgIGhp
dFR5cGUgfD0gSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5OworI2VuZGlmCisKICAgICAgICAgLy8g
SW5jcmVtZW50IHRoZSBwbGF0Zm9ybSB0b3VjaCBpZCBieSAxIHRvIGF2b2lkIHN0b3JpbmcgYSBr
ZXkgb2YgMCBpbiB0aGUgaGFzaG1hcC4KICAgICAgICAgdW5zaWduZWQgdG91Y2hQb2ludFRhcmdl
dEtleSA9IHBvaW50LmlkKCkgKyAxOwogICAgICAgICBSZWZQdHI8RXZlbnRUYXJnZXQ+IHRvdWNo
VGFyZ2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oCmluZGV4IDUyYzY0
ODhiNmIyNjRjOWFlMGYzNDIyZmYwZTgyZWIwOTE4NzZkZjAuLjRiNmE0M2M3ZTBhNDA2YWFjNzA4
NDhkYjgxY2Q2YjY1MWQ0MTcyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2
ZW50LmgKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgogICAgICAgICBHZXN0dXJlU2Nyb2xsVXBk
YXRlLAogICAgICAgICBHZXN0dXJlVGFwLAogICAgICAgICBHZXN0dXJlVGFwRG93biwKKyAgICAg
ICAgR2VzdHVyZVRhcENhbmNlbCwKICAgICAgICAgR2VzdHVyZURvdWJsZVRhcCwKICAgICAgICAg
R2VzdHVyZVR3b0ZpbmdlclRhcCwKICAgICAgICAgR2VzdHVyZUxvbmdQcmVzcywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklucHV0RXZlbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklucHV0RXZlbnQuaAppbmRleCA2M2NlNzEzMWNk
YzAyMWQwMzYzYTJkYzFkNjkwMTM4MzFkZTRmOTQzLi45MTY2MjIxOTQ0MTFjNGIyMTBlZDBmNDNl
MWZjOWM1YmNjYzNiNWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJJbnB1dEV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
SW5wdXRFdmVudC5oCkBAIC0xMTYsNiArMTE2LDcgQEAgcHVibGljOgogICAgICAgICBHZXN0dXJl
RmxpbmdDYW5jZWwsCiAgICAgICAgIEdlc3R1cmVUYXAsCiAgICAgICAgIEdlc3R1cmVUYXBEb3du
LAorICAgICAgICBHZXN0dXJlVGFwQ2FuY2VsLAogICAgICAgICBHZXN0dXJlRG91YmxlVGFwLAog
ICAgICAgICBHZXN0dXJlVHdvRmluZ2VyVGFwLAogICAgICAgICBHZXN0dXJlTG9uZ1ByZXNzLApA
QCAtMjE2LDYgKzIxNyw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHx8IHR5cGUgPT0gR2VzdHVy
ZVBpbmNoVXBkYXRlCiAgICAgICAgICAgICB8fCB0eXBlID09IEdlc3R1cmVUYXAKICAgICAgICAg
ICAgIHx8IHR5cGUgPT0gR2VzdHVyZVRhcERvd24KKyAgICAgICAgICAgIHx8IHR5cGUgPT0gR2Vz
dHVyZVRhcENhbmNlbAogICAgICAgICAgICAgfHwgdHlwZSA9PSBHZXN0dXJlRG91YmxlVGFwCiAg
ICAgICAgICAgICB8fCB0eXBlID09IEdlc3R1cmVUd29GaW5nZXJUYXAKICAgICAgICAgICAgIHx8
IHR5cGUgPT0gR2VzdHVyZUxvbmdQcmVzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvUGFnZVdpZGdldERlbGVnYXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1BhZ2VXaWRnZXREZWxlZ2F0ZS5jcHAKaW5kZXggMzQwZTZmMWE5MDI1MmFkNWVlNjZkYjNi
YzJjOWZjOWZmMzY1MjRlYy4uNmFkMjVkOTUzNjFhM2M1N2ZjYzI2MDU1OWQxMmI3MTUxNzM3MTZl
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGFnZVdpZGdldERlbGVn
YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QYWdlV2lkZ2V0RGVsZWdh
dGUuY3BwCkBAIC0xNTQsNiArMTU0LDcgQEAgYm9vbCBQYWdlV2lkZ2V0RGVsZWdhdGU6OmhhbmRs
ZUlucHV0RXZlbnQoUGFnZSogcGFnZSwgUGFnZVdpZGdldEV2ZW50SGFuZGxlciYgaGEKICAgICBj
YXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVGbGluZ0NhbmNlbDoKICAgICBjYXNlIFdlYklucHV0
RXZlbnQ6Okdlc3R1cmVUYXA6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwRG93
bjoKKyAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXBDYW5jZWw6CiAgICAgY2FzZSBX
ZWJJbnB1dEV2ZW50OjpHZXN0dXJlRG91YmxlVGFwOgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6
R2VzdHVyZVR3b0ZpbmdlclRhcDoKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVMb25n
UHJlc3M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2
ZW50Q29udmVyc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2
ZW50Q29udmVyc2lvbi5jcHAKaW5kZXggMmFmYzdkY2ZlNzk5NWMyODQzYzFjMjRhMGU3Nzg3NjI2
NzFiNzc0NC4uZTIxOGIyYzM5YjVkYzVkNTRhMmE0ZDQ0YzAyMzE4MzRhYjQxMGU2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJz
aW9uLmNwcApAQCAtMTYxLDYgKzE2MSw5IEBAIFBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRlcjo6
UGxhdGZvcm1HZXN0dXJlRXZlbnRCdWlsZGVyKFdpZGdldCogd2lkZ2V0LCBjb25zdCBXCiAgICAg
Y2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwRG93bjoKICAgICAgICAgbV90eXBlID0gUGxh
dGZvcm1FdmVudDo6R2VzdHVyZVRhcERvd247CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2Vi
SW5wdXRFdmVudDo6R2VzdHVyZVRhcENhbmNlbDoKKyAgICAgICAgbV90eXBlID0gUGxhdGZvcm1F
dmVudDo6R2VzdHVyZVRhcENhbmNlbDsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJJbnB1
dEV2ZW50OjpHZXN0dXJlRG91YmxlVGFwOgogICAgICAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50
OjpHZXN0dXJlRG91YmxlVGFwOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51SW1wbC5jcHAKaW5kZXggMTk0ZGVlNTUwY2YwZGQ0OTk0
ZDYzYjBhNjkxM2QxMWQ0NzQ3ZjU1Ny4uNTExMTQwMjBiZjNiYzUwZWIyZWYyZmI1YmNiY2NjZTA2
Y2M2MmJiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBN
ZW51SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51
SW1wbC5jcHAKQEAgLTI3Nyw2ICsyNzcsNyBAQCBib29sIFdlYlBvcHVwTWVudUltcGw6OmhhbmRs
ZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYgaW5wdXRFdmVudCkKICAgICBjYXNlIFdl
YklucHV0RXZlbnQ6Okdlc3R1cmVGbGluZ0NhbmNlbDoKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6
Okdlc3R1cmVUYXA6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwRG93bjoKKyAg
ICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXBDYW5jZWw6CiAgICAgY2FzZSBXZWJJbnB1
dEV2ZW50OjpHZXN0dXJlRG91YmxlVGFwOgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVy
ZVR3b0ZpbmdlclRhcDoKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVMb25nUHJlc3M6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggOGQ1M2U5
NTMwNDU3Y2RiMWFlMzRlYjZjZGJhNjdiZTFhZmM4YmFlZS4uYzFhOTI1ZmE1MjU1NWVkNDRjMWQ3
NzY4MDA1ZmRlOTQxNGRkZDAzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcApAQCAtNzYzLDYgKzc2Myw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OmhhbmRsZUdl
c3R1cmVFdmVudChjb25zdCBXZWJHZXN0dXJlRXZlbnQmIGV2ZW50KQogICAgICAgICBtX2NsaWVu
dC0+Y2FuY2VsU2NoZWR1bGVkQ29udGVudEludGVudHMoKTsKICAgICBjYXNlIFdlYklucHV0RXZl
bnQ6Okdlc3R1cmVTY3JvbGxFbmQ6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlU2Ny
b2xsVXBkYXRlOgorICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcENhbmNlbDoKICAg
ICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVQaW5jaEVuZDoKICAgICBjYXNlIFdlYklucHV0
RXZlbnQ6Okdlc3R1cmVQaW5jaFVwZGF0ZTogewogICAgICAgICBQbGF0Zm9ybUdlc3R1cmVFdmVu
dEJ1aWxkZXIgcGxhdGZvcm1FdmVudChtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpLCBldmVu
dCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
YjBiZTBlZWQ3NWZkMzBjYzgzMzdlNDZlZjYxZTJlOThmZDM4NmM2NS4uMDQ0OTI3ZDE1NTRhYjA4
MDVjNTAwMDEyODYwMTY1M2U5NjViZGMzNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA5LTA4ICBSaWNrIEJ5
ZXJzICA8cmJ5ZXJzQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgaGFuZGxpbmcgb2YgbmV3
IEdlc3R1cmVUYXBDYW5jZWwgaW4gRFJUCisgICAgICAgIAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYxODMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RX
ZWJQbHVnaW4uY3BwOgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6aGFuZGxlSW5wdXRFdmVudCk6
CisKIDIwMTItMDktMDcgIFBldGVyIEJldmVybG9vICA8cGV0ZXJAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIEFkZCB0aGUgZ29vZ2xlLWFuZHJvaWQtdGVzdHMgYnVpbGQgc2xhdmUgdG8gdGhlIG1h
c3RlcidzIGNvbmZpZwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFdlYlBsdWdpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2Vi
UGx1Z2luLmNwcAppbmRleCBiYmViYTZmOWI3MWQ2ZTlmYWVjODNkMGU5MGE5YTExYWRlYjgxNWJl
Li5jNzhjOWVkMTI1MTk5ZWU1NTNjNDFlMWIzMTRhNDJmMzkzYzM3YjAyIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmNwcApAQCAtMzkyLDYgKzM5
Miw3IEBAIGJvb2wgVGVzdFdlYlBsdWdpbjo6aGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJLaXQ6
OldlYklucHV0RXZlbnQmIGV2ZW50LCBXZWJLaXQ6CiAgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0
RXZlbnQ6Okdlc3R1cmVGbGluZ0NhbmNlbDogIGV2ZW50TmFtZSA9ICJHZXN0dXJlRmxpbmdDYW5j
ZWwiOyBicmVhazsKICAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcDog
ICAgICAgICAgZXZlbnROYW1lID0gIkdlc3R1cmVUYXAiOyBicmVhazsKICAgICBjYXNlIFdlYktp
dDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcERvd246ICAgICAgZXZlbnROYW1lID0gIkdlc3R1
cmVUYXBEb3duIjsgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1
cmVUYXBDYW5jZWw6ICAgIGV2ZW50TmFtZSA9ICJHZXN0dXJlVGFwQ2FuY2VsIjsgYnJlYWs7CiAg
ICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1cmVEb3VibGVUYXA6ICAgIGV2ZW50
TmFtZSA9ICJHZXN0dXJlRG91YmxlVGFwIjsgYnJlYWs7CiAgICAgY2FzZSBXZWJLaXQ6OldlYklu
cHV0RXZlbnQ6Okdlc3R1cmVUd29GaW5nZXJUYXA6IGV2ZW50TmFtZSA9ICJHZXN0dXJlVHdvRmlu
Z2VyVGFwIjsgYnJlYWs7CiAgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1cmVM
b25nUHJlc3M6ICAgIGV2ZW50TmFtZSA9ICJHZXN0dXJlTG9uZ1ByZXNzIjsgYnJlYWs7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163438</attachid>
            <date>2012-09-11 14:27:01 -0700</date>
            <delta_ts>2012-09-11 16:33:54 -0700</delta_ts>
            <desc>Add new layout test and updated expectations</desc>
            <filename>bug-96060-20120911172636.patch</filename>
            <type>text/plain</type>
            <size>17582</size>
            <attacher name="Rick Byers">rbyers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTc1NGZlZGNjNTlkOGIz
OGE5MDExYTdlZGVlYjE0MTI4Nzg0NTU4Ni4uOTU0YzQ3ZTQwZDA1NDZiNzM0ZTBkMWJkY2NiMmZi
ZGMzZjA0ZjFkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA5LTA4ICBSaWNr
IEJ5ZXJzICA8cmJ5ZXJzQGNocm9taXVtLm9yZz4KKworICAgICAgICBBbGxvdyBnZXN0dXJlIGV2
ZW50cyB0byBzZXQgYWN0aXZlL2hvdmVyIHN0YXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIEdlc3R1cmVUYXBDYW5jZWwgYXMgYSBuZXcgUGxh
dGZvcm1HZXN0dXJlRXZlbnQgdHlwZS4gIE9uIHBvcnRzCisgICAgICAgIHRoYXQgc3VwcG9ydCBn
ZXN0dXJlIGV2ZW50cywgdXNlIEdlc3R1cmVUYXBEb3duIHRvIHRyaWdnZXIgYWN0aXZlL2hvdmVy
CisgICAgICAgIHN0YXRlcywgYW5kIEdlc3R1cmVUYXAvR2VzdHVyZVRhcENhbmNlbCB0byBjbGVh
ciB0aGVtLiAgVGhpcyBpcworICAgICAgICBzdXBlcmlvciB0byB1c2luZyB0b3VjaCBldmVudHMg
Zm9yIGEgbnVtYmVyIG9mIHJlYXNvbnM6CisgICAgICAgICAgMSkgc29tZSBwb3J0cyAoY2hyb21p
dW0pIGF2b2lkIHNlbmRpbmcgdG91Y2ggZXZlbnRzIHVubGVzcyBhYnNvbHV0ZWx5CisgICAgICAg
ICAgbmVjZXNzYXJ5LCBzaW5jZSB0aGV5IGh1cnQgc2Nyb2xsIHBlcmZvcm1hbmNlIGJ5IGJsb2Nr
aW5nIHRocmVhZGVkCisgICAgICAgICAgc2Nyb2xsaW5nLgorICAgICAgICAgIDIpIHdpdGggdG91
Y2gsIGFuZCBlbGVtZW50IHJlYWxseSBzaG91bGRuJ3QgYmUgJ2FjdGl2ZScgd2hlbiB0aGUgdXNl
cgorICAgICAgICAgIGhhcHBlbnMgdG8gYmUgdG91Y2hpbmcgaXQgd2hpbGUgc2Nyb2xsaW5nLiAg
SW4gdGhhdCBjYXNlIHRoZXkgYXJlbid0CisgICAgICAgICAgJ21hbmlwdWxhdGluZyB0aGUgZWxl
bWVudCcsIHRoZXkncmUgbWFuaXB1bGF0aW5nIHRoZSBwYWdlIG9yIGRpdiB0aGF0CisgICAgICAg
ICAgaXMgc2Nyb2xsaW5nLgorICAgICAgICAgIDMpIHNpbWlsYXJseSwgdGhlcmUgbWF5IGJlIG90
aGVyIGdlc3R1cmVzIHRoYXQgaW52b2x2ZSB0b3VjaGluZyB0aGUKKyAgICAgICAgICBlbGVtZW50
IHdoaWNoIGFyZW4ndCByZWFsbHkgYWJvdXQgbWFuaXB1bGF0aW5nIHRoYXQgZWxlbWVudCAoZWcu
CisgICAgICAgICAgcGluY2ggdG8gem9vbSkuCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMv
dG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtZXhwZWN0ZWQuaHRtbAorICAg
ICAgICAqIGRvbS9HZXN0dXJlRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2
ZW50OjpjcmVhdGUpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZUV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlVG91Y2hFdmVudCk6CisgICAgICAgICogcGxhdGZv
cm0vUGxhdGZvcm1FdmVudC5oOgorCiAyMDEyLTA5LTExICBTZXJnaW8gVmlsbGFyIFNlbmluICA8
c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYktpdEd0aysgY3Jhc2hlcyB3
aXRoIG5vbi1VVEY4IEhUVFAgaGVhZGVyIG5hbWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmlu
ZGV4IDA2MDI2OTkzNjQyZDVlNDMxM2NiMTdlMjdjOWM2ZGU5ZmViMDY1NDguLjYwZjNhYjUxZGVm
NzEwNDA2YzU5OWUyYjA5YzUyMzkzZDhmNjFiMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDktMDggIFJpY2sgQnllcnMgIDxyYnllcnNAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFNlbmQgR2VzdHVyZVRhcENhbmNlbCB0byBXZWJDb3JlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA2MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL1dlYklucHV0
RXZlbnRDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1HZXN0dXJlRXZl
bnRCdWlsZGVyOjpQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHNyYy9X
ZWJQb3B1cE1lbnVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51SW1wbDo6
aGFuZGxlSW5wdXRFdmVudCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZUdlc3R1cmVFdmVudCk6CisKIDIwMTItMDkt
MTEgIFBldGVyIEJldmVybG9vICA8cGV0ZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQuICBSb2xsZWQgREVQUy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9HZXN0
dXJlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5jcHAKaW5kZXgg
ZDc1Y2RhYTA5NjY5ZWYzYTcxNTZjOWQ1NTYxNDE0NzNlMDY2OGJjMi4uZjA0N2IyNGY1YWFmN2My
YWFkNmU4ZWE5YTlkNzQ1ZmMzZmQ2NTk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0dlc3R1cmVFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5j
cHAKQEAgLTU4LDYgKzU4LDcgQEAgUGFzc1JlZlB0cjxHZXN0dXJlRXZlbnQ+IEdlc3R1cmVFdmVu
dDo6Y3JlYXRlKFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBjb24KICAgICBjYXNlIFBs
YXRmb3JtRXZlbnQ6Okdlc3R1cmVQaW5jaEJlZ2luOgogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6
R2VzdHVyZVBpbmNoRW5kOgogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVBpbmNoVXBk
YXRlOgorICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVRhcENhbmNlbDoKICAgICBkZWZh
dWx0OgogICAgICAgICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAKaW5kZXggMzgwN2M1NTk3MjhjZjU2Y2U1MWVjNjMwYzdhNjliZDBkNzNmMGRiNC4uZjYx
ZTJmODg3ZThjYjY5ZWM1MzFlNTYxNDNhMzFhMjhmMDUxMGNhYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcApAQCAtMjM3NSw4ICsyMzc1LDE3IEBAIGJvb2wgRXZlbnRIYW5kbGVy
OjpoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVF
dmVudCkKICAgICBpZiAoZ2VzdHVyZUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpHZXN0
dXJlU2Nyb2xsRW5kIHx8IGdlc3R1cmVFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6R2Vz
dHVyZVNjcm9sbFVwZGF0ZSkKICAgICAgICAgZXZlbnRUYXJnZXQgPSBtX3Njcm9sbEdlc3R1cmVI
YW5kbGluZ05vZGUuZ2V0KCk7CiAKLSAgICBpZiAoIWV2ZW50VGFyZ2V0KSB7Ci0gICAgICAgIEhp
dFRlc3RSZXN1bHQgcmVzdWx0ID0gaGl0VGVzdFJlc3VsdEF0UG9pbnQoZ2VzdHVyZUV2ZW50LnBv
c2l0aW9uKCkpOworICAgIEhpdFRlc3RSZXF1ZXN0OjpIaXRUZXN0UmVxdWVzdFR5cGUgaGl0VHlw
ZSA9IEhpdFRlc3RSZXF1ZXN0OjpUb3VjaEV2ZW50OworICAgIGlmIChnZXN0dXJlRXZlbnQudHlw
ZSgpID09IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVUYXBEb3duKQorICAgICAgICBoaXRUeXBlIHw9
IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmU7CisgICAgZWxzZSBpZiAoZ2VzdHVyZUV2ZW50LnR5cGUo
KSA9PSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlVGFwIHx8IGdlc3R1cmVFdmVudC50eXBlKCkgPT0g
UGxhdGZvcm1FdmVudDo6R2VzdHVyZVRhcENhbmNlbCkKKyAgICAgICAgaGl0VHlwZSB8PSBIaXRU
ZXN0UmVxdWVzdDo6UmVsZWFzZTsKKyAgICBlbHNlCisgICAgICAgIGhpdFR5cGUgfD0gSGl0VGVz
dFJlcXVlc3Q6Ok1vdmUgfCBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHk7CisKKyAgICBpZiAoIWV2
ZW50VGFyZ2V0IHx8ICEoaGl0VHlwZSAmIEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSkpIHsKKyAg
ICAgICAgSW50UG9pbnQgaGl0VGVzdFBvaW50ID0gbV9mcmFtZS0+dmlldygpLT53aW5kb3dUb0Nv
bnRlbnRzKGdlc3R1cmVFdmVudC5wb3NpdGlvbigpKTsKKyAgICAgICAgSGl0VGVzdFJlc3VsdCBy
ZXN1bHQgPSBoaXRUZXN0UmVzdWx0QXRQb2ludChoaXRUZXN0UG9pbnQsIGhpdFR5cGUpOwogICAg
ICAgICBldmVudFRhcmdldCA9IHJlc3VsdC50YXJnZXROb2RlKCk7CiAgICAgfQogCkBAIC0yNDE0
LDYgKzI0MjMsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0
IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBnZXN0dXJlRXZlbnQpCiAgICAgY2FzZSBQbGF0Zm9ybUV2
ZW50OjpHZXN0dXJlUGluY2hCZWdpbjoKICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVQ
aW5jaEVuZDoKICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVQaW5jaFVwZGF0ZToKKyAg
ICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVUYXBDYW5jZWw6CiAgICAgICAgIGJyZWFrOwog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzU0NSw2ICsz
NTU1LDEwIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50KGNvbnN0IFBsYXRm
b3JtVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCisj
aWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorICAgICAgaGl0VHlwZSB8PSBIaXRUZXN0UmVxdWVz
dDo6UmVhZE9ubHk7CisjZW5kaWYKKwogICAgICAgICAvLyBJbmNyZW1lbnQgdGhlIHBsYXRmb3Jt
IHRvdWNoIGlkIGJ5IDEgdG8gYXZvaWQgc3RvcmluZyBhIGtleSBvZiAwIGluIHRoZSBoYXNobWFw
LgogICAgICAgICB1bnNpZ25lZCB0b3VjaFBvaW50VGFyZ2V0S2V5ID0gcG9pbnQuaWQoKSArIDE7
CiAgICAgICAgIFJlZlB0cjxFdmVudFRhcmdldD4gdG91Y2hUYXJnZXQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKaW5kZXggNTJjNjQ4OGI2YjI2NGM5YWUwZjM0MjJmZjBl
ODJlYjA5MTg3NmRmMC4uNGI2YTQzYzdlMGE0MDZhYWM3MDg0OGRiODFjZDZiNjUxZDQxNzIxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaApAQCAtNTQsNiArNTQsNyBA
QCBwdWJsaWM6CiAgICAgICAgIEdlc3R1cmVTY3JvbGxVcGRhdGUsCiAgICAgICAgIEdlc3R1cmVU
YXAsCiAgICAgICAgIEdlc3R1cmVUYXBEb3duLAorICAgICAgICBHZXN0dXJlVGFwQ2FuY2VsLAog
ICAgICAgICBHZXN0dXJlRG91YmxlVGFwLAogICAgICAgICBHZXN0dXJlVHdvRmluZ2VyVGFwLAog
ICAgICAgICBHZXN0dXJlTG9uZ1ByZXNzLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCmluZGV4IDJhZmM3ZGNmZTc5OTVj
Mjg0M2MxYzI0YTBlNzc4NzYyNjcxYjc3NDQuLmUyMThiMmMzOWI1ZGM1ZDU0YTJhNGQ0NGMwMjMx
ODM0YWI0MTBlNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklu
cHV0RXZlbnRDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAKQEAgLTE2MSw2ICsxNjEsOSBAQCBQbGF0Zm9ybUdl
c3R1cmVFdmVudEJ1aWxkZXI6OlBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRlcihXaWRnZXQqIHdp
ZGdldCwgY29uc3QgVwogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcERvd246CiAg
ICAgICAgIG1fdHlwZSA9IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVUYXBEb3duOwogICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXBDYW5jZWw6CisgICAgICAg
IG1fdHlwZSA9IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVUYXBDYW5jZWw7CisgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZURvdWJsZVRhcDoKICAgICAgICAgbV90
eXBlID0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZURvdWJsZVRhcDsKICAgICAgICAgYnJlYWs7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQb3B1cE1lbnVJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwCmluZGV4
IDU4YTI4NTVjZDliMzRkY2ExZGJlMjAxZTU3MzZhNjc5ZjE3NmI0ZDMuLjI1YjdmNGI1MDNmNzhh
ZjcxOWE2ODQ4OWU3ZjFjOTE5MDhjODVhNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwCkBAIC0yNzcsNiArMjc3LDcgQEAgYm9vbCBXZWJQ
b3B1cE1lbnVJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmIGlucHV0
RXZlbnQpCiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlRmxpbmdDYW5jZWw6CiAgICAg
Y2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwOgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6
R2VzdHVyZVRhcERvd246CisgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwQ2FuY2Vs
OgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZURvdWJsZVRhcDoKICAgICBjYXNlIFdl
YklucHV0RXZlbnQ6Okdlc3R1cmVUd29GaW5nZXJUYXA6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50
OjpHZXN0dXJlTG9uZ1ByZXNzOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCmluZGV4IDIzOGIyZjkyMDVlODgwYWVlN2Q4YmFlY2M5MDQ0Zjk3MjEzY2Y2NDEuLjYz
M2U2NDBkMTZiZGY1MmYxNzMzZDlhZGE1M2EwNDBmOGE1YjI3NDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTc2Niw2ICs3NjYsNyBAQCBib29sIFdl
YlZpZXdJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVyZUV2ZW50JiBldmVu
dCkKICAgICAgICAgbV9jbGllbnQtPmNhbmNlbFNjaGVkdWxlZENvbnRlbnRJbnRlbnRzKCk7CiAg
ICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlU2Nyb2xsRW5kOgogICAgIGNhc2UgV2ViSW5w
dXRFdmVudDo6R2VzdHVyZVNjcm9sbFVwZGF0ZToKKyAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdl
c3R1cmVUYXBDYW5jZWw6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlUGluY2hFbmQ6
CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlUGluY2hVcGRhdGU6IHsKICAgICAgICAg
UGxhdGZvcm1HZXN0dXJlRXZlbnRCdWlsZGVyIHBsYXRmb3JtRXZlbnQobWFpbkZyYW1lSW1wbCgp
LT5mcmFtZVZpZXcoKSwgZXZlbnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IDM4ZTQyYzU1Njk1MzE0OTI3NjRmN2Q3MWU3OTk5ZTdmMDYzMGNh
NGEuLjMxZjAzMDUzMWQ5YmIxMDBmMzc5YzlhODUzZmE2NzYyZWVmNTU1NTQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAxMi0wOS0wOCAgUmljayBCeWVycyAgPHJieWVyc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
QWRkIGhhbmRsaW5nIG9mIG5ldyBHZXN0dXJlVGFwQ2FuY2VsIGluIERSVAorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjE4MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFdlYlBsdWdpbi5jcHA6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjpoYW5kbGVJ
bnB1dEV2ZW50KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9FdmVudFNlbmRl
ci5jcHA6CisgICAgICAgIChFdmVudFNlbmRlcjo6Z2VzdHVyZVRhcENhbmNlbCk6CisKIDIwMTIt
MDktMTEgIFRvciBBcm5lIFZlc3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgogCiAg
ICAgICAgIFtRdF0gRml4IC0tcXQgb3B0aW9uIHRvIGJ1aWxkLXdlYmtpdApkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9FdmVudFNlbmRlci5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2ZW50U2VuZGVyLmNw
cAppbmRleCBkNWVhYWM0YWRhMWRkZTU5NmMwOGE4NjBkOTM1YWYyMmU2YmI5ZWZjLi4yMzYwMTI4
NjUxYzYwZjk5ZmYyNWM3ZGViZTYwNzc1Mjk1MTY5MzdjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2ZW50U2VuZGVyLmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2ZW50U2VuZGVyLmNwcApAQCAt
Mjg3LDYgKzI4Nyw3IEBAIEV2ZW50U2VuZGVyOjpFdmVudFNlbmRlcigpCiAgICAgYmluZE1ldGhv
ZCgiZ2VzdHVyZVNjcm9sbFVwZGF0ZSIsICZFdmVudFNlbmRlcjo6Z2VzdHVyZVNjcm9sbFVwZGF0
ZSk7CiAgICAgYmluZE1ldGhvZCgiZ2VzdHVyZVRhcCIsICZFdmVudFNlbmRlcjo6Z2VzdHVyZVRh
cCk7CiAgICAgYmluZE1ldGhvZCgiZ2VzdHVyZVRhcERvd24iLCAmRXZlbnRTZW5kZXI6Omdlc3R1
cmVUYXBEb3duKTsKKyAgICBiaW5kTWV0aG9kKCJnZXN0dXJlVGFwQ2FuY2VsIiwgJkV2ZW50U2Vu
ZGVyOjpnZXN0dXJlVGFwQ2FuY2VsKTsKICAgICBiaW5kTWV0aG9kKCJnZXN0dXJlTG9uZ1ByZXNz
IiwgJkV2ZW50U2VuZGVyOjpnZXN0dXJlTG9uZ1ByZXNzKTsKICAgICBiaW5kTWV0aG9kKCJnZXN0
dXJlVHdvRmluZ2VyVGFwIiwgJkV2ZW50U2VuZGVyOjpnZXN0dXJlVHdvRmluZ2VyVGFwKTsKICAg
ICBiaW5kTWV0aG9kKCJ6b29tUGFnZUluIiwgJkV2ZW50U2VuZGVyOjp6b29tUGFnZUluKTsKQEAg
LTExMTksNiArMTEyMCwxMiBAQCB2b2lkIEV2ZW50U2VuZGVyOjpnZXN0dXJlVGFwRG93bihjb25z
dCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcgogICAgIGdlc3R1cmVF
dmVudChXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwRG93biwgYXJndW1lbnRzKTsKIH0KIAordm9p
ZCBFdmVudFNlbmRlcjo6Z2VzdHVyZVRhcENhbmNlbChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFy
Z3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0TnVsbCgpOwor
ICAgIGdlc3R1cmVFdmVudChXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwQ2FuY2VsLCBhcmd1bWVu
dHMpOworfQorCiB2b2lkIEV2ZW50U2VuZGVyOjpnZXN0dXJlTG9uZ1ByZXNzKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgcmVzdWx0
LT5zZXROdWxsKCk7CkBAIC0xMTgyLDYgKzExODksMTAgQEAgdm9pZCBFdmVudFNlbmRlcjo6Z2Vz
dHVyZUV2ZW50KFdlYklucHV0RXZlbnQ6OlR5cGUgdHlwZSwgY29uc3QgQ3BwQXJndW1lbnRMaXN0
JgogICAgICAgICBldmVudC54ID0gcG9pbnQueDsKICAgICAgICAgZXZlbnQueSA9IHBvaW50Lnk7
CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcENhbmNl
bDoKKyAgICAgICAgZXZlbnQueCA9IHBvaW50Lng7CisgICAgICAgIGV2ZW50LnkgPSBwb2ludC55
OworICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVMb25nUHJl
c3M6CiAgICAgICAgIGV2ZW50LnggPSBwb2ludC54OwogICAgICAgICBldmVudC55ID0gcG9pbnQu
eTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
RXZlbnRTZW5kZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
RXZlbnRTZW5kZXIuaAppbmRleCA4MjhlN2M4NDI2Mzc1OTE0ZDhjMWZhZWYwYzMwN2M0YzVhZTA5
OWI1Li5lNjc5NGEwNzcwYmQ4OGY3NGZlNTBjYTJmNzE2NjIxZDQxOTg3OWNjIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2ZW50U2VuZGVyLmgK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9FdmVudFNlbmRl
ci5oCkBAIC0xMDYsNiArMTA2LDcgQEAgcHVibGljOgogICAgIHZvaWQgZ2VzdHVyZVNjcm9sbFVw
ZGF0ZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBnZXN0
dXJlVGFwKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIGdl
c3R1cmVUYXBEb3duKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2
b2lkIGdlc3R1cmVUYXBDYW5jZWwoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCop
OwogICAgIHZvaWQgZ2VzdHVyZUxvbmdQcmVzcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBW
YXJpYW50Kik7CiAgICAgdm9pZCBnZXN0dXJlVHdvRmluZ2VyVGFwKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIGdlc3R1cmVFdmVudChXZWJLaXQ6OldlYklu
cHV0RXZlbnQ6OlR5cGUsIGNvbnN0IENwcEFyZ3VtZW50TGlzdCYpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3Rh
dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9n
ZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5OTllYmNk
MWRmZDEzM2EwN2I0MjYzMTI4ZTliMmEzMGE4MzFjMzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorR2VzdHVyZXMgZ28gaGVyZQorVGVzdHMg
dGhhdCB0YXAgZ2VzdHVyZSBldmVudHMgc2V0IGFuZCBjbGVhciB0aGUgYWN0aXZlIHN0YXRlIG9m
IGVsZW1lbnRzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU2VlIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA2MCBmb3IgZGV0YWlscworCitHZXN0
dXJlVGFwRG93biBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgcGxhdGZvcm0KK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0
ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRh
cC1hY3RpdmUtc3RhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGQ1OWRjZTkzNDk0NzM5NTFjM2NhNzk3
MWY5ZDI5M2ZlYjZhYWU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUuaHRtbApAQCAtMCwwICsx
LDEwNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlIHR5cGU9InRleHQv
Y3NzIj4KKyNib3ggeworICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgd2lkdGg6IDMw
MHB4OworICAgIGhlaWdodDogMTAwcHg7Cit9CisKKyNib3g6YWN0aXZlIHsKKyAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiByZWQ7Cit9CisKKzwvc3R5bGU+Cis8Ym9keT4KKzxkaXYgaWQ9ImJveCIiPkdl
c3R1cmVzIGdvIGhlcmU8L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8cD5TZWUg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDYwIGZvciBkZXRhaWxz
PC9wPgorCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK3ZhciBjb2xvcjsK
K2Z1bmN0aW9uIGlzQm94QWN0aXZlKCkKK3sKKyAgICAvLyBUaGVzZSBuZWVkIHRvIG1hdGNoIHRo
ZSBiYWNrZ3JvdW5kLWNvbG9yIHVzZWQgYWJvdmUsIGFmdGVyIHJvdW5kLXRyaXBwaW5nLgorICAg
IHZhciBkZWZhdWx0Q29sb3IgPSAicmdiKDAsIDAsIDI1NSkiOworICAgIHZhciBhY3RpdmVDb2xv
ciA9ICJyZ2IoMjU1LCAwLCAwKSI7CisKKyAgICB2YXIgYiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdib3gnKTsKKyAgICBjb2xvciA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGIpLmJhY2tn
cm91bmRDb2xvcjsKKyAgICBpZiAoY29sb3IgPT0gYWN0aXZlQ29sb3IpCisgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICBpZiAoY29sb3IgIT0gZGVmYXVsdENvbG9yKQorICAgICAgdGVzdEZhaWxlZCgn
R290IHVuZXhwZWN0ZWQgYmFja2dyb3VuZENvbG9yOiAnICsgY29sb3IpOworICAgIHJldHVybiBm
YWxzZTsKK30KKworZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdGFwIGdlc3R1cmUgZXZlbnRzIHNl
dCBhbmQgY2xlYXIgdGhlIGFjdGl2ZSBzdGF0ZSBvZiBlbGVtZW50cy4iKTsKKworZnVuY3Rpb24g
cnVuVGVzdHMoKQoreworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIGRl
YnVnKCdUaGlzIHRlc3QgcmVxdWlyZXMgRFJULicpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgaWYgKCFldmVudFNlbmRlci5nZXN0dXJlVGFwRG93bikgeworICAgICAgICBkZWJ1Zygn
R2VzdHVyZVRhcERvd24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIHBsYXRmb3JtJyk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkZWJ1ZygiVmVyaWZ5IGFjdGl2ZSBpc24ndCBpbml0
aWFsbHkgc2V0Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiaXNCb3hBY3RpdmUoKSIpOworCisgICAg
ZGVidWcoIlZlcmlmeSB0YXBkb3duLHRhcCBzZXRzIGFuZCBjbGVhcnMgYWN0aXZlIik7CisgICAg
ZXZlbnRTZW5kZXIuZ2VzdHVyZVRhcERvd24oNTAsIDUwKTsKKyAgICBzaG91bGRCZVRydWUoImlz
Qm94QWN0aXZlKCkiKTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlVGFwKDUwLCA1MCk7CisgICAg
c2hvdWxkQmVGYWxzZSgiaXNCb3hBY3RpdmUoKSIpOworCisgICAgZGVidWcoIlZlcmlmeSB0YXBk
b3duLHRhcGNhbmNlbCBvbiB0aGUgZWxlbWVudCBzZXRzIGFuZCBjbGVhcnMgYWN0aXZlIik7Cisg
ICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVRhcERvd24oNTAsIDUwKTsKKyAgICBzaG91bGRCZVRydWUo
ImlzQm94QWN0aXZlKCkiKTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlVGFwQ2FuY2VsKDUwLCA1
MCk7CisgICAgc2hvdWxkQmVGYWxzZSgiaXNCb3hBY3RpdmUoKSIpOworCisgICAgZGVidWcoIlZl
cmlmeSB0YXAgZWxzZXdoZXJlIHN0aWxsIGNsZWFycyBhY3RpdmUiKTsKKyAgICBldmVudFNlbmRl
ci5nZXN0dXJlVGFwRG93big1MCwgNTApOworICAgIHNob3VsZEJlVHJ1ZSgiaXNCb3hBY3RpdmUo
KSIpOworICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVUYXAoNDAwLCAyNTApOworICAgIHNob3VsZEJl
RmFsc2UoImlzQm94QWN0aXZlKCkiKTsKKworICAgIGRlYnVnKCJWZXJpZnkgdGFwQ2FuY2VsIGVs
c2V3aGVyZSBzdGlsbCBjbGVhcnMgYWN0aXZlIik7CisgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVRh
cERvd24oNTAsIDUwKTsKKyAgICBzaG91bGRCZVRydWUoImlzQm94QWN0aXZlKCkiKTsKKyAgICBl
dmVudFNlbmRlci5nZXN0dXJlVGFwQ2FuY2VsKDQwMCwgMjUwKTsKKyAgICBzaG91bGRCZUZhbHNl
KCJpc0JveEFjdGl2ZSgpIik7CisKKyAgICBkZWJ1ZygiVmVyaWZ5IHRoYXQgdG91Y2hzdGFydCBk
b2Vzbid0IHRyaWdnZXIgYWN0aXZlIHN0YXRlIik7CisgICAgZXZlbnRTZW5kZXIuYWRkVG91Y2hQ
b2ludCg1MCwgNTApOworICAgIGV2ZW50U2VuZGVyLnRvdWNoU3RhcnQoKTsKKyAgICBzaG91bGRC
ZUZhbHNlKCJpc0JveEFjdGl2ZSgpIik7CisgICAgZXZlbnRTZW5kZXIucmVsZWFzZVRvdWNoUG9p
bnQoMCk7CisgICAgZXZlbnRTZW5kZXIudG91Y2hFbmQoKTsKKworICAgIGRlYnVnKCJWZXJpZnkg
dGhhdCB0b3VjaHN0YXJ0L3RvdWNoZW5kIGRvZXNuJ3QgY2FuY2VsIGFjdGl2ZSIpOworICAgIGV2
ZW50U2VuZGVyLmdlc3R1cmVUYXBEb3duKDUwLCA1MCk7CisgICAgc2hvdWxkQmVUcnVlKCJpc0Jv
eEFjdGl2ZSgpIik7CisgICAgZXZlbnRTZW5kZXIuYWRkVG91Y2hQb2ludCg1MCwgNTApOworICAg
IGV2ZW50U2VuZGVyLnRvdWNoU3RhcnQoKTsKKyAgICBzaG91bGRCZVRydWUoImlzQm94QWN0aXZl
KCkiKTsKKyAgICBldmVudFNlbmRlci5yZWxlYXNlVG91Y2hQb2ludCgwKTsKKyAgICBldmVudFNl
bmRlci50b3VjaEVuZCgpOworICAgIHNob3VsZEJlVHJ1ZSgiaXNCb3hBY3RpdmUoKSIpOworICAg
IGV2ZW50U2VuZGVyLmdlc3R1cmVUYXAoNTAsIDUwKTsKKyAgICBzaG91bGRCZUZhbHNlKCJpc0Jv
eEFjdGl2ZSgpIik7Cit9CisKK3J1blRlc3RzKCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3Qv
ZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1
cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMzM5
YzA4YmNhMzQzZWQ0NTkwMjhjYzhiNmRlNWEyMDUxYzJlMjc3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9n
ZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzMgQEAKK0dl
c3R1cmVzIGdvIGhlcmUKK1Rlc3RzIHRoYXQgdGFwIGdlc3R1cmUgZXZlbnRzIHNldCBhbmQgY2xl
YXIgdGhlIGFjdGl2ZSBzdGF0ZSBvZiBlbGVtZW50cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1NlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYw
NjAgZm9yIGRldGFpbHMKKworVmVyaWZ5IGFjdGl2ZSBpc24ndCBpbml0aWFsbHkgc2V0CitQQVNT
IGlzQm94QWN0aXZlKCkgaXMgZmFsc2UKK1ZlcmlmeSB0YXBkb3duLHRhcCBzZXRzIGFuZCBjbGVh
cnMgYWN0aXZlCitQQVNTIGlzQm94QWN0aXZlKCkgaXMgdHJ1ZQorUEFTUyBpc0JveEFjdGl2ZSgp
IGlzIGZhbHNlCitWZXJpZnkgdGFwZG93bix0YXBjYW5jZWwgb24gdGhlIGVsZW1lbnQgc2V0cyBh
bmQgY2xlYXJzIGFjdGl2ZQorUEFTUyBpc0JveEFjdGl2ZSgpIGlzIHRydWUKK1BBU1MgaXNCb3hB
Y3RpdmUoKSBpcyBmYWxzZQorVmVyaWZ5IHRhcCBlbHNld2hlcmUgc3RpbGwgY2xlYXJzIGFjdGl2
ZQorUEFTUyBpc0JveEFjdGl2ZSgpIGlzIHRydWUKK1BBU1MgaXNCb3hBY3RpdmUoKSBpcyBmYWxz
ZQorVmVyaWZ5IHRhcENhbmNlbCBlbHNld2hlcmUgc3RpbGwgY2xlYXJzIGFjdGl2ZQorUEFTUyBp
c0JveEFjdGl2ZSgpIGlzIHRydWUKK1BBU1MgaXNCb3hBY3RpdmUoKSBpcyBmYWxzZQorVmVyaWZ5
IHRoYXQgdG91Y2hzdGFydCBkb2Vzbid0IHRyaWdnZXIgYWN0aXZlIHN0YXRlCitQQVNTIGlzQm94
QWN0aXZlKCkgaXMgZmFsc2UKK1ZlcmlmeSB0aGF0IHRvdWNoc3RhcnQvdG91Y2hlbmQgZG9lc24n
dCBjYW5jZWwgYWN0aXZlCitQQVNTIGlzQm94QWN0aXZlKCkgaXMgdHJ1ZQorUEFTUyBpc0JveEFj
dGl2ZSgpIGlzIHRydWUKK1BBU1MgaXNCb3hBY3RpdmUoKSBpcyB0cnVlCitQQVNTIGlzQm94QWN0
aXZlKCkgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0
L2V2ZW50cy90b3VjaC90b3VjaC1hY3RpdmUtc3RhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvdG91Y2gtYWN0aXZlLXN0YXRl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YzhmNmFmNGE1ZTkzMGUxOWY5NzM3MjUxYzEwNDc5
YzMzYzk3MDUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9ldmVudHMvdG91Y2gvdG91Y2gtYWN0aXZlLXN0YXRlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEwIEBACitGQUlMCitUZXN0IHRvdWNoZXMgc2V0IHRoZSBhY3RpdmUgc3RhdGUuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163476</attachid>
            <date>2012-09-11 16:33:58 -0700</date>
            <delta_ts>2012-09-11 19:25:43 -0700</delta_ts>
            <desc>Fixes, and opt-in using platform ifdefs per jamesr</desc>
            <filename>bug-96060-20120911193332.patch</filename>
            <type>text/plain</type>
            <size>19568</size>
            <attacher name="Rick Byers">rbyers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTc1NGZlZGNjNTlkOGIz
OGE5MDExYTdlZGVlYjE0MTI4Nzg0NTU4Ni4uOTU0YzQ3ZTQwZDA1NDZiNzM0ZTBkMWJkY2NiMmZi
ZGMzZjA0ZjFkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA5LTA4ICBSaWNr
IEJ5ZXJzICA8cmJ5ZXJzQGNocm9taXVtLm9yZz4KKworICAgICAgICBBbGxvdyBnZXN0dXJlIGV2
ZW50cyB0byBzZXQgYWN0aXZlL2hvdmVyIHN0YXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIEdlc3R1cmVUYXBDYW5jZWwgYXMgYSBuZXcgUGxh
dGZvcm1HZXN0dXJlRXZlbnQgdHlwZS4gIE9uIHBvcnRzCisgICAgICAgIHRoYXQgc3VwcG9ydCBn
ZXN0dXJlIGV2ZW50cywgdXNlIEdlc3R1cmVUYXBEb3duIHRvIHRyaWdnZXIgYWN0aXZlL2hvdmVy
CisgICAgICAgIHN0YXRlcywgYW5kIEdlc3R1cmVUYXAvR2VzdHVyZVRhcENhbmNlbCB0byBjbGVh
ciB0aGVtLiAgVGhpcyBpcworICAgICAgICBzdXBlcmlvciB0byB1c2luZyB0b3VjaCBldmVudHMg
Zm9yIGEgbnVtYmVyIG9mIHJlYXNvbnM6CisgICAgICAgICAgMSkgc29tZSBwb3J0cyAoY2hyb21p
dW0pIGF2b2lkIHNlbmRpbmcgdG91Y2ggZXZlbnRzIHVubGVzcyBhYnNvbHV0ZWx5CisgICAgICAg
ICAgbmVjZXNzYXJ5LCBzaW5jZSB0aGV5IGh1cnQgc2Nyb2xsIHBlcmZvcm1hbmNlIGJ5IGJsb2Nr
aW5nIHRocmVhZGVkCisgICAgICAgICAgc2Nyb2xsaW5nLgorICAgICAgICAgIDIpIHdpdGggdG91
Y2gsIGFuZCBlbGVtZW50IHJlYWxseSBzaG91bGRuJ3QgYmUgJ2FjdGl2ZScgd2hlbiB0aGUgdXNl
cgorICAgICAgICAgIGhhcHBlbnMgdG8gYmUgdG91Y2hpbmcgaXQgd2hpbGUgc2Nyb2xsaW5nLiAg
SW4gdGhhdCBjYXNlIHRoZXkgYXJlbid0CisgICAgICAgICAgJ21hbmlwdWxhdGluZyB0aGUgZWxl
bWVudCcsIHRoZXkncmUgbWFuaXB1bGF0aW5nIHRoZSBwYWdlIG9yIGRpdiB0aGF0CisgICAgICAg
ICAgaXMgc2Nyb2xsaW5nLgorICAgICAgICAgIDMpIHNpbWlsYXJseSwgdGhlcmUgbWF5IGJlIG90
aGVyIGdlc3R1cmVzIHRoYXQgaW52b2x2ZSB0b3VjaGluZyB0aGUKKyAgICAgICAgICBlbGVtZW50
IHdoaWNoIGFyZW4ndCByZWFsbHkgYWJvdXQgbWFuaXB1bGF0aW5nIHRoYXQgZWxlbWVudCAoZWcu
CisgICAgICAgICAgcGluY2ggdG8gem9vbSkuCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMv
dG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtZXhwZWN0ZWQuaHRtbAorICAg
ICAgICAqIGRvbS9HZXN0dXJlRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2
ZW50OjpjcmVhdGUpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZUV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlVG91Y2hFdmVudCk6CisgICAgICAgICogcGxhdGZv
cm0vUGxhdGZvcm1FdmVudC5oOgorCiAyMDEyLTA5LTExICBTZXJnaW8gVmlsbGFyIFNlbmluICA8
c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYktpdEd0aysgY3Jhc2hlcyB3
aXRoIG5vbi1VVEY4IEhUVFAgaGVhZGVyIG5hbWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmlu
ZGV4IDA2MDI2OTkzNjQyZDVlNDMxM2NiMTdlMjdjOWM2ZGU5ZmViMDY1NDguLjYwZjNhYjUxZGVm
NzEwNDA2YzU5OWUyYjA5YzUyMzkzZDhmNjFiMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDktMDggIFJpY2sgQnllcnMgIDxyYnllcnNAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFNlbmQgR2VzdHVyZVRhcENhbmNlbCB0byBXZWJDb3JlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA2MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL1dlYklucHV0
RXZlbnRDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1HZXN0dXJlRXZl
bnRCdWlsZGVyOjpQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHNyYy9X
ZWJQb3B1cE1lbnVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51SW1wbDo6
aGFuZGxlSW5wdXRFdmVudCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZUdlc3R1cmVFdmVudCk6CisKIDIwMTItMDkt
MTEgIFBldGVyIEJldmVybG9vICA8cGV0ZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQuICBSb2xsZWQgREVQUy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9HZXN0
dXJlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5jcHAKaW5kZXgg
ZDc1Y2RhYTA5NjY5ZWYzYTcxNTZjOWQ1NTYxNDE0NzNlMDY2OGJjMi4uZjA0N2IyNGY1YWFmN2My
YWFkNmU4ZWE5YTlkNzQ1ZmMzZmQ2NTk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0dlc3R1cmVFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5j
cHAKQEAgLTU4LDYgKzU4LDcgQEAgUGFzc1JlZlB0cjxHZXN0dXJlRXZlbnQ+IEdlc3R1cmVFdmVu
dDo6Y3JlYXRlKFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBjb24KICAgICBjYXNlIFBs
YXRmb3JtRXZlbnQ6Okdlc3R1cmVQaW5jaEJlZ2luOgogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6
R2VzdHVyZVBpbmNoRW5kOgogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVBpbmNoVXBk
YXRlOgorICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVRhcENhbmNlbDoKICAgICBkZWZh
dWx0OgogICAgICAgICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAKaW5kZXggMzgwN2M1NTk3MjhjZjU2Y2U1MWVjNjMwYzdhNjliZDBkNzNmMGRiNC4uNTM1
YzJjOWRkMDUzYWE0MTRkYWVhYWZiZTQ3YzdiNTQ3YWI3NDE0YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcApAQCAtMjM2NCw2ICsyMzY0LDE4IEBAIGJvb2wgRXZlbnRIYW5kbGVy
OjpoYW5kbGVHZXN0dXJlVGFwRG93bigpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIEV2
ZW50SGFuZGxlcjo6c2hvdWxkR2VzdHVyZXNUcmlnZ2VyQWN0aXZlKCkKK3sKKyAgICAvLyBJZiB0
aGUgcGxhdGZvcm0gd2UncmUgb24gc3VwcG9ydHMgR2VzdHVyZVRhcERvd24gYW5kIEdlc3R1cmVU
YXBDYW5jZWwgdGhlbiB3ZSdsbAorICAgIC8vIHJlbHkgb24gdGhlbSB0byBzZXQgdGhlIGFjdGl2
ZSBzdGF0ZS4gVW5mb3J0dW5hdGVseSB0aGVyZSdzIG5vIGdlbmVyaWMgd2F5IHRvCisgICAgLy8g
a25vdyBpbiBhZHZhbmNlIHdoYXQgZXZlbnQgdHlwZXMgYXJlIHN1cHBvcnRlZC4KKyNpZiBQTEFU
Rk9STShDSFJPTUlVTSkgJiYgIU9TKEFORFJPSUQpCisgICAgcmV0dXJuIHRydWU7CisjZWxzZQor
ICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxl
R2VzdHVyZUV2ZW50KGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBnZXN0dXJlRXZlbnQpCiB7
CiAgICAgLy8gV2UgZG9uJ3QgdXNlIERvdWJsZVRhcCBhdCB0aGUgbW9tZW50LCBpdCdzIG1vc3Rs
eSByZWR1bmRhbnQgd2l0aCB0YXAgc2luY2UgdGFwIG5vdyBjb250YWlucwpAQCAtMjM3NSw4ICsy
Mzg3LDIwIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgUGxh
dGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCkKICAgICBpZiAoZ2VzdHVyZUV2ZW50LnR5
cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlU2Nyb2xsRW5kIHx8IGdlc3R1cmVFdmVudC50
eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZVNjcm9sbFVwZGF0ZSkKICAgICAgICAgZXZl
bnRUYXJnZXQgPSBtX3Njcm9sbEdlc3R1cmVIYW5kbGluZ05vZGUuZ2V0KCk7CiAKLSAgICBpZiAo
IWV2ZW50VGFyZ2V0KSB7Ci0gICAgICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0ID0gaGl0VGVzdFJl
c3VsdEF0UG9pbnQoZ2VzdHVyZUV2ZW50LnBvc2l0aW9uKCkpOworICAgIEhpdFRlc3RSZXF1ZXN0
OjpIaXRUZXN0UmVxdWVzdFR5cGUgaGl0VHlwZSA9IEhpdFRlc3RSZXF1ZXN0OjpUb3VjaEV2ZW50
OworICAgIGlmIChnZXN0dXJlRXZlbnQudHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVU
YXBEb3duKQorICAgICAgICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmU7CisgICAg
ZWxzZSBpZiAoZ2VzdHVyZUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlVGFw
IHx8IGdlc3R1cmVFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZVRhcENhbmNl
bCkKKyAgICAgICAgaGl0VHlwZSB8PSBIaXRUZXN0UmVxdWVzdDo6UmVsZWFzZTsKKyAgICBlbHNl
CisgICAgICAgIGhpdFR5cGUgfD0gSGl0VGVzdFJlcXVlc3Q6Ok1vdmUgfCBIaXRUZXN0UmVxdWVz
dDo6UmVhZE9ubHk7CisKKyAgICBpZiAoIXNob3VsZEdlc3R1cmVzVHJpZ2dlckFjdGl2ZSgpKQor
ICAgICAgICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seTsKKworICAgIGlmICgh
ZXZlbnRUYXJnZXQgfHwgIShoaXRUeXBlICYgSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5KSkgewor
ICAgICAgICBJbnRQb2ludCBoaXRUZXN0UG9pbnQgPSBtX2ZyYW1lLT52aWV3KCktPndpbmRvd1Rv
Q29udGVudHMoZ2VzdHVyZUV2ZW50LnBvc2l0aW9uKCkpOworICAgICAgICBIaXRUZXN0UmVzdWx0
IHJlc3VsdCA9IGhpdFRlc3RSZXN1bHRBdFBvaW50KGhpdFRlc3RQb2ludCwgaGl0VHlwZSk7CiAg
ICAgICAgIGV2ZW50VGFyZ2V0ID0gcmVzdWx0LnRhcmdldE5vZGUoKTsKICAgICB9CiAKQEAgLTI0
MTQsNiArMjQzOCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZlbnQoY29u
c3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCkKICAgICBjYXNlIFBsYXRmb3Jt
RXZlbnQ6Okdlc3R1cmVQaW5jaEJlZ2luOgogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVy
ZVBpbmNoRW5kOgogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVBpbmNoVXBkYXRlOgor
ICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVRhcENhbmNlbDoKICAgICAgICAgYnJlYWs7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zNTQ1LDYg
KzM1NzAsMTEgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxh
dGZvcm1Ub3VjaEV2ZW50JiBldmVudCkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAK
KyNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCisgICAgICAgIGlmIChzaG91bGRHZXN0dXJlc1Ry
aWdnZXJBY3RpdmUoKSkKKyAgICAgICAgICAgIGhpdFR5cGUgfD0gSGl0VGVzdFJlcXVlc3Q6OlJl
YWRPbmx5OworI2VuZGlmCisKICAgICAgICAgLy8gSW5jcmVtZW50IHRoZSBwbGF0Zm9ybSB0b3Vj
aCBpZCBieSAxIHRvIGF2b2lkIHN0b3JpbmcgYSBrZXkgb2YgMCBpbiB0aGUgaGFzaG1hcC4KICAg
ICAgICAgdW5zaWduZWQgdG91Y2hQb2ludFRhcmdldEtleSA9IHBvaW50LmlkKCkgKyAxOwogICAg
ICAgICBSZWZQdHI8RXZlbnRUYXJnZXQ+IHRvdWNoVGFyZ2V0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmgKaW5kZXggOTdkMGJkMDNmMDYxYjVhODhkZmRlMGQ2OTdmYjFhOTljMDMxMDRhMi4u
ZDQzNGQ0ZjAxOTc2YzRhZjhiNzQ1Y2I3NmQ4MjhlMDVkNjk5MzY4ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5oCkBAIC0zNTUsNiArMzU1LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUo
R0VTVFVSRV9FVkVOVFMpCiAgICAgYm9vbCBoYW5kbGVHZXN0dXJlU2Nyb2xsQ29yZShjb25zdCBQ
bGF0Zm9ybUdlc3R1cmVFdmVudCYsIFBsYXRmb3JtV2hlZWxFdmVudEdyYW51bGFyaXR5LCBib29s
IGxhdGNoZWRXaGVlbCk7CiAgICAgYm9vbCBoYW5kbGVHZXN0dXJlVGFwRG93bigpOworICAgIHN0
YXRpYyBib29sIHNob3VsZEdlc3R1cmVzVHJpZ2dlckFjdGl2ZSgpOwogI2VuZGlmCiAKICAgICBG
cmFtZSogbV9mcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaAppbmRl
eCA1MmM2NDg4YjZiMjY0YzlhZTBmMzQyMmZmMGU4MmViMDkxODc2ZGYwLi40YjZhNDNjN2UwYTQw
NmFhYzcwODQ4ZGI4MWNkNmI2NTFkNDE3MjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1FdmVudC5oCkBAIC01NCw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICAgICAgR2VzdHVyZVNj
cm9sbFVwZGF0ZSwKICAgICAgICAgR2VzdHVyZVRhcCwKICAgICAgICAgR2VzdHVyZVRhcERvd24s
CisgICAgICAgIEdlc3R1cmVUYXBDYW5jZWwsCiAgICAgICAgIEdlc3R1cmVEb3VibGVUYXAsCiAg
ICAgICAgIEdlc3R1cmVUd29GaW5nZXJUYXAsCiAgICAgICAgIEdlc3R1cmVMb25nUHJlc3MsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVy
c2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVy
c2lvbi5jcHAKaW5kZXggMmFmYzdkY2ZlNzk5NWMyODQzYzFjMjRhMGU3Nzg3NjI2NzFiNzc0NC4u
ZTIxOGIyYzM5YjVkYzVkNTRhMmE0ZDQ0YzAyMzE4MzRhYjQxMGU2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcApA
QCAtMTYxLDYgKzE2MSw5IEBAIFBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRlcjo6UGxhdGZvcm1H
ZXN0dXJlRXZlbnRCdWlsZGVyKFdpZGdldCogd2lkZ2V0LCBjb25zdCBXCiAgICAgY2FzZSBXZWJJ
bnB1dEV2ZW50OjpHZXN0dXJlVGFwRG93bjoKICAgICAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVu
dDo6R2VzdHVyZVRhcERvd247CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViSW5wdXRFdmVu
dDo6R2VzdHVyZVRhcENhbmNlbDoKKyAgICAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVudDo6R2Vz
dHVyZVRhcENhbmNlbDsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpH
ZXN0dXJlRG91YmxlVGFwOgogICAgICAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJl
RG91YmxlVGFwOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViUG9wdXBNZW51SW1wbC5jcHAKaW5kZXggNThhMjg1NWNkOWIzNGRjYTFkYmUyMDFlNTcz
NmE2NzlmMTc2YjRkMy4uNTExMTQwMjBiZjNiYzUwZWIyZWYyZmI1YmNiY2NjZTA2Y2M2MmJiZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51SW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51SW1wbC5jcHAK
QEAgLTI3Nyw2ICsyNzcsNyBAQCBib29sIFdlYlBvcHVwTWVudUltcGw6OmhhbmRsZUlucHV0RXZl
bnQoY29uc3QgV2ViSW5wdXRFdmVudCYgaW5wdXRFdmVudCkKICAgICBjYXNlIFdlYklucHV0RXZl
bnQ6Okdlc3R1cmVGbGluZ0NhbmNlbDoKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVU
YXA6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwRG93bjoKKyAgICBjYXNlIFdl
YklucHV0RXZlbnQ6Okdlc3R1cmVUYXBDYW5jZWw6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpH
ZXN0dXJlRG91YmxlVGFwOgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVR3b0Zpbmdl
clRhcDoKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVMb25nUHJlc3M6CkBAIC0yODgs
NyArMjg5LDYgQEAgYm9vbCBXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KGNvbnN0
IFdlYklucHV0RXZlbnQmIGlucHV0RXZlbnQpCiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpVbmRl
ZmluZWQ6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpNb3VzZUVudGVyOgogICAgIGNhc2UgV2Vi
SW5wdXRFdmVudDo6Q29udGV4dE1lbnU6Ci0gICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJl
VGFwQ2FuY2VsOgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCAyMzhi
MmY5MjA1ZTg4MGFlZTdkOGJhZWNjOTA0NGY5NzIxM2NmNjQxLi44NDg4NjM4MmE1N2ZjOGEwYmVi
M2FmYmMxYmE0NTdhMDJiMWIxMjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwCkBAIC03NjYsMTUgKzc2NiwxMiBAQCBib29sIFdlYlZpZXdJbXBsOjpoYW5k
bGVHZXN0dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVyZUV2ZW50JiBldmVudCkKICAgICAgICAgbV9j
bGllbnQtPmNhbmNlbFNjaGVkdWxlZENvbnRlbnRJbnRlbnRzKCk7CiAgICAgY2FzZSBXZWJJbnB1
dEV2ZW50OjpHZXN0dXJlU2Nyb2xsRW5kOgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVy
ZVNjcm9sbFVwZGF0ZToKKyAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXBDYW5jZWw6
CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlUGluY2hFbmQ6CiAgICAgY2FzZSBXZWJJ
bnB1dEV2ZW50OjpHZXN0dXJlUGluY2hVcGRhdGU6IHsKICAgICAgICAgUGxhdGZvcm1HZXN0dXJl
RXZlbnRCdWlsZGVyIHBsYXRmb3JtRXZlbnQobWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKSwg
ZXZlbnQpOwogICAgICAgICByZXR1cm4gbWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpLT5ldmVudEhh
bmRsZXIoKS0+aGFuZGxlR2VzdHVyZUV2ZW50KHBsYXRmb3JtRXZlbnQpOwogICAgIH0KLSAgICBj
YXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXBDYW5jZWw6Ci0gICAgICAgIC8vIEZJWE1FOiBV
cGRhdGUgV2ViQ29yZSB0byBoYW5kbGUgdGhpcyBldmVudCBhZnRlciBjaHJvbWl1bSBoYXMgYmVl
biB1cGRhdGVkIHRvIHNlbmQgaXQKLSAgICAgICAgLy8gaHR0cDovL3drYi51Zy85NjA2MAotICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDM4ZTQyYzU1Njk1MzE0OTI3NjRmN2Q3MWU3OTk5ZTdmMDYzMGNhNGEuLjMxZjAz
MDUzMWQ5YmIxMDBmMzc5YzlhODUzZmE2NzYyZWVmNTU1NTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wOS0w
OCAgUmljayBCeWVycyAgPHJieWVyc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGhhbmRs
aW5nIG9mIG5ldyBHZXN0dXJlVGFwQ2FuY2VsIGluIERSVAorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjE4MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFdlYlBsdWdpbi5jcHA6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjpoYW5kbGVJbnB1dEV2ZW50
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9FdmVudFNlbmRlci5jcHA6Cisg
ICAgICAgIChFdmVudFNlbmRlcjo6Z2VzdHVyZVRhcENhbmNlbCk6CisKIDIwMTItMDktMTEgIFRv
ciBBcm5lIFZlc3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgogCiAgICAgICAgIFtR
dF0gRml4IC0tcXQgb3B0aW9uIHRvIGJ1aWxkLXdlYmtpdApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9FdmVudFNlbmRlci5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2ZW50U2VuZGVyLmNwcAppbmRleCBk
NWVhYWM0YWRhMWRkZTU5NmMwOGE4NjBkOTM1YWYyMmU2YmI5ZWZjLi4yMzYwMTI4NjUxYzYwZjk5
ZmYyNWM3ZGViZTYwNzc1Mjk1MTY5MzdjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2ZW50U2VuZGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2ZW50U2VuZGVyLmNwcApAQCAtMjg3LDYgKzI4
Nyw3IEBAIEV2ZW50U2VuZGVyOjpFdmVudFNlbmRlcigpCiAgICAgYmluZE1ldGhvZCgiZ2VzdHVy
ZVNjcm9sbFVwZGF0ZSIsICZFdmVudFNlbmRlcjo6Z2VzdHVyZVNjcm9sbFVwZGF0ZSk7CiAgICAg
YmluZE1ldGhvZCgiZ2VzdHVyZVRhcCIsICZFdmVudFNlbmRlcjo6Z2VzdHVyZVRhcCk7CiAgICAg
YmluZE1ldGhvZCgiZ2VzdHVyZVRhcERvd24iLCAmRXZlbnRTZW5kZXI6Omdlc3R1cmVUYXBEb3du
KTsKKyAgICBiaW5kTWV0aG9kKCJnZXN0dXJlVGFwQ2FuY2VsIiwgJkV2ZW50U2VuZGVyOjpnZXN0
dXJlVGFwQ2FuY2VsKTsKICAgICBiaW5kTWV0aG9kKCJnZXN0dXJlTG9uZ1ByZXNzIiwgJkV2ZW50
U2VuZGVyOjpnZXN0dXJlTG9uZ1ByZXNzKTsKICAgICBiaW5kTWV0aG9kKCJnZXN0dXJlVHdvRmlu
Z2VyVGFwIiwgJkV2ZW50U2VuZGVyOjpnZXN0dXJlVHdvRmluZ2VyVGFwKTsKICAgICBiaW5kTWV0
aG9kKCJ6b29tUGFnZUluIiwgJkV2ZW50U2VuZGVyOjp6b29tUGFnZUluKTsKQEAgLTExMTksNiAr
MTEyMCwxMiBAQCB2b2lkIEV2ZW50U2VuZGVyOjpnZXN0dXJlVGFwRG93bihjb25zdCBDcHBBcmd1
bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcgogICAgIGdlc3R1cmVFdmVudChXZWJJ
bnB1dEV2ZW50OjpHZXN0dXJlVGFwRG93biwgYXJndW1lbnRzKTsKIH0KIAordm9pZCBFdmVudFNl
bmRlcjo6Z2VzdHVyZVRhcENhbmNlbChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywg
Q3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0TnVsbCgpOworICAgIGdlc3R1
cmVFdmVudChXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwQ2FuY2VsLCBhcmd1bWVudHMpOworfQor
CiB2b2lkIEV2ZW50U2VuZGVyOjpnZXN0dXJlTG9uZ1ByZXNzKGNvbnN0IENwcEFyZ3VtZW50TGlz
dCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgcmVzdWx0LT5zZXROdWxs
KCk7CkBAIC0xMTgyLDYgKzExODksMTAgQEAgdm9pZCBFdmVudFNlbmRlcjo6Z2VzdHVyZUV2ZW50
KFdlYklucHV0RXZlbnQ6OlR5cGUgdHlwZSwgY29uc3QgQ3BwQXJndW1lbnRMaXN0JgogICAgICAg
ICBldmVudC54ID0gcG9pbnQueDsKICAgICAgICAgZXZlbnQueSA9IHBvaW50Lnk7CiAgICAgICAg
IGJyZWFrOworICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcENhbmNlbDoKKyAgICAg
ICAgZXZlbnQueCA9IHBvaW50Lng7CisgICAgICAgIGV2ZW50LnkgPSBwb2ludC55OworICAgICAg
ICBicmVhazsKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVMb25nUHJlc3M6CiAgICAg
ICAgIGV2ZW50LnggPSBwb2ludC54OwogICAgICAgICBldmVudC55ID0gcG9pbnQueTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvRXZlbnRTZW5k
ZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvRXZlbnRTZW5k
ZXIuaAppbmRleCA4MjhlN2M4NDI2Mzc1OTE0ZDhjMWZhZWYwYzMwN2M0YzVhZTA5OWI1Li5lNjc5
NGEwNzcwYmQ4OGY3NGZlNTBjYTJmNzE2NjIxZDQxOTg3OWNjIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2ZW50U2VuZGVyLmgKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9FdmVudFNlbmRlci5oCkBAIC0x
MDYsNiArMTA2LDcgQEAgcHVibGljOgogICAgIHZvaWQgZ2VzdHVyZVNjcm9sbFVwZGF0ZShjb25z
dCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBnZXN0dXJlVGFwKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIGdlc3R1cmVUYXBE
b3duKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGdlc3R1
cmVUYXBDYW5jZWwoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZv
aWQgZ2VzdHVyZUxvbmdQcmVzcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7
CiAgICAgdm9pZCBnZXN0dXJlVHdvRmluZ2VyVGFwKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENw
cFZhcmlhbnQqKTsKICAgICB2b2lkIGdlc3R1cmVFdmVudChXZWJLaXQ6OldlYklucHV0RXZlbnQ6
OlR5cGUsIGNvbnN0IENwcEFyZ3VtZW50TGlzdCYpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRh
cC1hY3RpdmUtc3RhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5OTllYmNkMWRmZDEzM2Ew
N2I0MjYzMTI4ZTliMmEzMGE4MzFjMzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMyBAQAorR2VzdHVyZXMgZ28gaGVyZQorVGVzdHMgdGhhdCB0YXAg
Z2VzdHVyZSBldmVudHMgc2V0IGFuZCBjbGVhciB0aGUgYWN0aXZlIHN0YXRlIG9mIGVsZW1lbnRz
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU2VlIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA2MCBmb3IgZGV0YWlscworCitHZXN0dXJlVGFwRG93
biBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgcGxhdGZvcm0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUt
c3RhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGQ1OWRjZTkzNDk0NzM5NTFjM2NhNzk3MWY5ZDI5M2Zl
YjZhYWU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
Z2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUuaHRtbApAQCAtMCwwICsxLDEwNiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyNi
b3ggeworICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgd2lkdGg6IDMwMHB4OworICAg
IGhlaWdodDogMTAwcHg7Cit9CisKKyNib3g6YWN0aXZlIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9y
OiByZWQ7Cit9CisKKzwvc3R5bGU+Cis8Ym9keT4KKzxkaXYgaWQ9ImJveCIiPkdlc3R1cmVzIGdv
IGhlcmU8L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8cD5TZWUgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDYwIGZvciBkZXRhaWxzPC9wPgorCis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK3ZhciBjb2xvcjsKK2Z1bmN0aW9u
IGlzQm94QWN0aXZlKCkKK3sKKyAgICAvLyBUaGVzZSBuZWVkIHRvIG1hdGNoIHRoZSBiYWNrZ3Jv
dW5kLWNvbG9yIHVzZWQgYWJvdmUsIGFmdGVyIHJvdW5kLXRyaXBwaW5nLgorICAgIHZhciBkZWZh
dWx0Q29sb3IgPSAicmdiKDAsIDAsIDI1NSkiOworICAgIHZhciBhY3RpdmVDb2xvciA9ICJyZ2Io
MjU1LCAwLCAwKSI7CisKKyAgICB2YXIgYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gn
KTsKKyAgICBjb2xvciA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGIpLmJhY2tncm91bmRDb2xv
cjsKKyAgICBpZiAoY29sb3IgPT0gYWN0aXZlQ29sb3IpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICBpZiAoY29sb3IgIT0gZGVmYXVsdENvbG9yKQorICAgICAgdGVzdEZhaWxlZCgnR290IHVuZXhw
ZWN0ZWQgYmFja2dyb3VuZENvbG9yOiAnICsgY29sb3IpOworICAgIHJldHVybiBmYWxzZTsKK30K
KworZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdGFwIGdlc3R1cmUgZXZlbnRzIHNldCBhbmQgY2xl
YXIgdGhlIGFjdGl2ZSBzdGF0ZSBvZiBlbGVtZW50cy4iKTsKKworZnVuY3Rpb24gcnVuVGVzdHMo
KQoreworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIGRlYnVnKCdUaGlz
IHRlc3QgcmVxdWlyZXMgRFJULicpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYg
KCFldmVudFNlbmRlci5nZXN0dXJlVGFwRG93bikgeworICAgICAgICBkZWJ1ZygnR2VzdHVyZVRh
cERvd24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIHBsYXRmb3JtJyk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBkZWJ1ZygiVmVyaWZ5IGFjdGl2ZSBpc24ndCBpbml0aWFsbHkgc2V0
Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiaXNCb3hBY3RpdmUoKSIpOworCisgICAgZGVidWcoIlZl
cmlmeSB0YXBkb3duLHRhcCBzZXRzIGFuZCBjbGVhcnMgYWN0aXZlIik7CisgICAgZXZlbnRTZW5k
ZXIuZ2VzdHVyZVRhcERvd24oNTAsIDUwKTsKKyAgICBzaG91bGRCZVRydWUoImlzQm94QWN0aXZl
KCkiKTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlVGFwKDUwLCA1MCk7CisgICAgc2hvdWxkQmVG
YWxzZSgiaXNCb3hBY3RpdmUoKSIpOworCisgICAgZGVidWcoIlZlcmlmeSB0YXBkb3duLHRhcGNh
bmNlbCBvbiB0aGUgZWxlbWVudCBzZXRzIGFuZCBjbGVhcnMgYWN0aXZlIik7CisgICAgZXZlbnRT
ZW5kZXIuZ2VzdHVyZVRhcERvd24oNTAsIDUwKTsKKyAgICBzaG91bGRCZVRydWUoImlzQm94QWN0
aXZlKCkiKTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlVGFwQ2FuY2VsKDUwLCA1MCk7CisgICAg
c2hvdWxkQmVGYWxzZSgiaXNCb3hBY3RpdmUoKSIpOworCisgICAgZGVidWcoIlZlcmlmeSB0YXAg
ZWxzZXdoZXJlIHN0aWxsIGNsZWFycyBhY3RpdmUiKTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJl
VGFwRG93big1MCwgNTApOworICAgIHNob3VsZEJlVHJ1ZSgiaXNCb3hBY3RpdmUoKSIpOworICAg
IGV2ZW50U2VuZGVyLmdlc3R1cmVUYXAoNDAwLCAyNTApOworICAgIHNob3VsZEJlRmFsc2UoImlz
Qm94QWN0aXZlKCkiKTsKKworICAgIGRlYnVnKCJWZXJpZnkgdGFwQ2FuY2VsIGVsc2V3aGVyZSBz
dGlsbCBjbGVhcnMgYWN0aXZlIik7CisgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVRhcERvd24oNTAs
IDUwKTsKKyAgICBzaG91bGRCZVRydWUoImlzQm94QWN0aXZlKCkiKTsKKyAgICBldmVudFNlbmRl
ci5nZXN0dXJlVGFwQ2FuY2VsKDQwMCwgMjUwKTsKKyAgICBzaG91bGRCZUZhbHNlKCJpc0JveEFj
dGl2ZSgpIik7CisKKyAgICBkZWJ1ZygiVmVyaWZ5IHRoYXQgdG91Y2hzdGFydCBkb2Vzbid0IHRy
aWdnZXIgYWN0aXZlIHN0YXRlIik7CisgICAgZXZlbnRTZW5kZXIuYWRkVG91Y2hQb2ludCg1MCwg
NTApOworICAgIGV2ZW50U2VuZGVyLnRvdWNoU3RhcnQoKTsKKyAgICBzaG91bGRCZUZhbHNlKCJp
c0JveEFjdGl2ZSgpIik7CisgICAgZXZlbnRTZW5kZXIucmVsZWFzZVRvdWNoUG9pbnQoMCk7Cisg
ICAgZXZlbnRTZW5kZXIudG91Y2hFbmQoKTsKKworICAgIGRlYnVnKCJWZXJpZnkgdGhhdCB0b3Vj
aHN0YXJ0L3RvdWNoZW5kIGRvZXNuJ3QgY2FuY2VsIGFjdGl2ZSIpOworICAgIGV2ZW50U2VuZGVy
Lmdlc3R1cmVUYXBEb3duKDUwLCA1MCk7CisgICAgc2hvdWxkQmVUcnVlKCJpc0JveEFjdGl2ZSgp
Iik7CisgICAgZXZlbnRTZW5kZXIuYWRkVG91Y2hQb2ludCg1MCwgNTApOworICAgIGV2ZW50U2Vu
ZGVyLnRvdWNoU3RhcnQoKTsKKyAgICBzaG91bGRCZVRydWUoImlzQm94QWN0aXZlKCkiKTsKKyAg
ICBldmVudFNlbmRlci5yZWxlYXNlVG91Y2hQb2ludCgwKTsKKyAgICBldmVudFNlbmRlci50b3Vj
aEVuZCgpOworICAgIHNob3VsZEJlVHJ1ZSgiaXNCb3hBY3RpdmUoKSIpOworICAgIGV2ZW50U2Vu
ZGVyLmdlc3R1cmVUYXAoNTAsIDUwKTsKKyAgICBzaG91bGRCZUZhbHNlKCJpc0JveEFjdGl2ZSgp
Iik7Cit9CisKK3J1blRlc3RzKCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3Rv
dWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVy
ZS10YXAtYWN0aXZlLXN0YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMzM5YzA4YmNhMzQz
ZWQ0NTkwMjhjYzhiNmRlNWEyMDUxYzJlMjc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRh
cC1hY3RpdmUtc3RhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzMgQEAKK0dlc3R1cmVzIGdv
IGhlcmUKK1Rlc3RzIHRoYXQgdGFwIGdlc3R1cmUgZXZlbnRzIHNldCBhbmQgY2xlYXIgdGhlIGFj
dGl2ZSBzdGF0ZSBvZiBlbGVtZW50cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1NlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwNjAgZm9yIGRl
dGFpbHMKKworVmVyaWZ5IGFjdGl2ZSBpc24ndCBpbml0aWFsbHkgc2V0CitQQVNTIGlzQm94QWN0
aXZlKCkgaXMgZmFsc2UKK1ZlcmlmeSB0YXBkb3duLHRhcCBzZXRzIGFuZCBjbGVhcnMgYWN0aXZl
CitQQVNTIGlzQm94QWN0aXZlKCkgaXMgdHJ1ZQorUEFTUyBpc0JveEFjdGl2ZSgpIGlzIGZhbHNl
CitWZXJpZnkgdGFwZG93bix0YXBjYW5jZWwgb24gdGhlIGVsZW1lbnQgc2V0cyBhbmQgY2xlYXJz
IGFjdGl2ZQorUEFTUyBpc0JveEFjdGl2ZSgpIGlzIHRydWUKK1BBU1MgaXNCb3hBY3RpdmUoKSBp
cyBmYWxzZQorVmVyaWZ5IHRhcCBlbHNld2hlcmUgc3RpbGwgY2xlYXJzIGFjdGl2ZQorUEFTUyBp
c0JveEFjdGl2ZSgpIGlzIHRydWUKK1BBU1MgaXNCb3hBY3RpdmUoKSBpcyBmYWxzZQorVmVyaWZ5
IHRhcENhbmNlbCBlbHNld2hlcmUgc3RpbGwgY2xlYXJzIGFjdGl2ZQorUEFTUyBpc0JveEFjdGl2
ZSgpIGlzIHRydWUKK1BBU1MgaXNCb3hBY3RpdmUoKSBpcyBmYWxzZQorVmVyaWZ5IHRoYXQgdG91
Y2hzdGFydCBkb2Vzbid0IHRyaWdnZXIgYWN0aXZlIHN0YXRlCitQQVNTIGlzQm94QWN0aXZlKCkg
aXMgZmFsc2UKK1ZlcmlmeSB0aGF0IHRvdWNoc3RhcnQvdG91Y2hlbmQgZG9lc24ndCBjYW5jZWwg
YWN0aXZlCitQQVNTIGlzQm94QWN0aXZlKCkgaXMgdHJ1ZQorUEFTUyBpc0JveEFjdGl2ZSgpIGlz
IHRydWUKK1BBU1MgaXNCb3hBY3RpdmUoKSBpcyB0cnVlCitQQVNTIGlzQm94QWN0aXZlKCkgaXMg
ZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy90
b3VjaC90b3VjaC1hY3RpdmUtc3RhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvdG91Y2gtYWN0aXZlLXN0YXRlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41YzhmNmFmNGE1ZTkzMGUxOWY5NzM3MjUxYzEwNDc5YzMzYzk3MDUw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9l
dmVudHMvdG91Y2gvdG91Y2gtYWN0aXZlLXN0YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACitGQUlMCitUZXN0IHRvdWNoZXMgc2V0IHRoZSBhY3RpdmUgc3RhdGUuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163498</attachid>
            <date>2012-09-11 19:25:47 -0700</date>
            <delta_ts>2012-09-14 08:36:26 -0700</delta_ts>
            <desc>Add iframe-based layout test</desc>
            <filename>bug-96060-20120911222521.patch</filename>
            <type>text/plain</type>
            <size>26123</size>
            <attacher name="Rick Byers">rbyers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTc1NGZlZGNjNTlkOGIz
OGE5MDExYTdlZGVlYjE0MTI4Nzg0NTU4Ni4uOTU0YzQ3ZTQwZDA1NDZiNzM0ZTBkMWJkY2NiMmZi
ZGMzZjA0ZjFkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA5LTA4ICBSaWNr
IEJ5ZXJzICA8cmJ5ZXJzQGNocm9taXVtLm9yZz4KKworICAgICAgICBBbGxvdyBnZXN0dXJlIGV2
ZW50cyB0byBzZXQgYWN0aXZlL2hvdmVyIHN0YXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIEdlc3R1cmVUYXBDYW5jZWwgYXMgYSBuZXcgUGxh
dGZvcm1HZXN0dXJlRXZlbnQgdHlwZS4gIE9uIHBvcnRzCisgICAgICAgIHRoYXQgc3VwcG9ydCBn
ZXN0dXJlIGV2ZW50cywgdXNlIEdlc3R1cmVUYXBEb3duIHRvIHRyaWdnZXIgYWN0aXZlL2hvdmVy
CisgICAgICAgIHN0YXRlcywgYW5kIEdlc3R1cmVUYXAvR2VzdHVyZVRhcENhbmNlbCB0byBjbGVh
ciB0aGVtLiAgVGhpcyBpcworICAgICAgICBzdXBlcmlvciB0byB1c2luZyB0b3VjaCBldmVudHMg
Zm9yIGEgbnVtYmVyIG9mIHJlYXNvbnM6CisgICAgICAgICAgMSkgc29tZSBwb3J0cyAoY2hyb21p
dW0pIGF2b2lkIHNlbmRpbmcgdG91Y2ggZXZlbnRzIHVubGVzcyBhYnNvbHV0ZWx5CisgICAgICAg
ICAgbmVjZXNzYXJ5LCBzaW5jZSB0aGV5IGh1cnQgc2Nyb2xsIHBlcmZvcm1hbmNlIGJ5IGJsb2Nr
aW5nIHRocmVhZGVkCisgICAgICAgICAgc2Nyb2xsaW5nLgorICAgICAgICAgIDIpIHdpdGggdG91
Y2gsIGFuZCBlbGVtZW50IHJlYWxseSBzaG91bGRuJ3QgYmUgJ2FjdGl2ZScgd2hlbiB0aGUgdXNl
cgorICAgICAgICAgIGhhcHBlbnMgdG8gYmUgdG91Y2hpbmcgaXQgd2hpbGUgc2Nyb2xsaW5nLiAg
SW4gdGhhdCBjYXNlIHRoZXkgYXJlbid0CisgICAgICAgICAgJ21hbmlwdWxhdGluZyB0aGUgZWxl
bWVudCcsIHRoZXkncmUgbWFuaXB1bGF0aW5nIHRoZSBwYWdlIG9yIGRpdiB0aGF0CisgICAgICAg
ICAgaXMgc2Nyb2xsaW5nLgorICAgICAgICAgIDMpIHNpbWlsYXJseSwgdGhlcmUgbWF5IGJlIG90
aGVyIGdlc3R1cmVzIHRoYXQgaW52b2x2ZSB0b3VjaGluZyB0aGUKKyAgICAgICAgICBlbGVtZW50
IHdoaWNoIGFyZW4ndCByZWFsbHkgYWJvdXQgbWFuaXB1bGF0aW5nIHRoYXQgZWxlbWVudCAoZWcu
CisgICAgICAgICAgcGluY2ggdG8gem9vbSkuCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMv
dG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtZXhwZWN0ZWQuaHRtbAorICAg
ICAgICAqIGRvbS9HZXN0dXJlRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2
ZW50OjpjcmVhdGUpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZUV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlVG91Y2hFdmVudCk6CisgICAgICAgICogcGxhdGZv
cm0vUGxhdGZvcm1FdmVudC5oOgorCiAyMDEyLTA5LTExICBTZXJnaW8gVmlsbGFyIFNlbmluICA8
c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYktpdEd0aysgY3Jhc2hlcyB3
aXRoIG5vbi1VVEY4IEhUVFAgaGVhZGVyIG5hbWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmlu
ZGV4IDA2MDI2OTkzNjQyZDVlNDMxM2NiMTdlMjdjOWM2ZGU5ZmViMDY1NDguLjYwZjNhYjUxZGVm
NzEwNDA2YzU5OWUyYjA5YzUyMzkzZDhmNjFiMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDktMDggIFJpY2sgQnllcnMgIDxyYnllcnNAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFNlbmQgR2VzdHVyZVRhcENhbmNlbCB0byBXZWJDb3JlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA2MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL1dlYklucHV0
RXZlbnRDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1HZXN0dXJlRXZl
bnRCdWlsZGVyOjpQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHNyYy9X
ZWJQb3B1cE1lbnVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51SW1wbDo6
aGFuZGxlSW5wdXRFdmVudCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZUdlc3R1cmVFdmVudCk6CisKIDIwMTItMDkt
MTEgIFBldGVyIEJldmVybG9vICA8cGV0ZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQuICBSb2xsZWQgREVQUy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9HZXN0
dXJlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5jcHAKaW5kZXgg
ZDc1Y2RhYTA5NjY5ZWYzYTcxNTZjOWQ1NTYxNDE0NzNlMDY2OGJjMi4uZjA0N2IyNGY1YWFmN2My
YWFkNmU4ZWE5YTlkNzQ1ZmMzZmQ2NTk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0dlc3R1cmVFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5j
cHAKQEAgLTU4LDYgKzU4LDcgQEAgUGFzc1JlZlB0cjxHZXN0dXJlRXZlbnQ+IEdlc3R1cmVFdmVu
dDo6Y3JlYXRlKFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBjb24KICAgICBjYXNlIFBs
YXRmb3JtRXZlbnQ6Okdlc3R1cmVQaW5jaEJlZ2luOgogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6
R2VzdHVyZVBpbmNoRW5kOgogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVBpbmNoVXBk
YXRlOgorICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVRhcENhbmNlbDoKICAgICBkZWZh
dWx0OgogICAgICAgICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAKaW5kZXggMzgwN2M1NTk3MjhjZjU2Y2U1MWVjNjMwYzdhNjliZDBkNzNmMGRiNC4uNTM1
YzJjOWRkMDUzYWE0MTRkYWVhYWZiZTQ3YzdiNTQ3YWI3NDE0YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcApAQCAtMjM2NCw2ICsyMzY0LDE4IEBAIGJvb2wgRXZlbnRIYW5kbGVy
OjpoYW5kbGVHZXN0dXJlVGFwRG93bigpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIEV2
ZW50SGFuZGxlcjo6c2hvdWxkR2VzdHVyZXNUcmlnZ2VyQWN0aXZlKCkKK3sKKyAgICAvLyBJZiB0
aGUgcGxhdGZvcm0gd2UncmUgb24gc3VwcG9ydHMgR2VzdHVyZVRhcERvd24gYW5kIEdlc3R1cmVU
YXBDYW5jZWwgdGhlbiB3ZSdsbAorICAgIC8vIHJlbHkgb24gdGhlbSB0byBzZXQgdGhlIGFjdGl2
ZSBzdGF0ZS4gVW5mb3J0dW5hdGVseSB0aGVyZSdzIG5vIGdlbmVyaWMgd2F5IHRvCisgICAgLy8g
a25vdyBpbiBhZHZhbmNlIHdoYXQgZXZlbnQgdHlwZXMgYXJlIHN1cHBvcnRlZC4KKyNpZiBQTEFU
Rk9STShDSFJPTUlVTSkgJiYgIU9TKEFORFJPSUQpCisgICAgcmV0dXJuIHRydWU7CisjZWxzZQor
ICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxl
R2VzdHVyZUV2ZW50KGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBnZXN0dXJlRXZlbnQpCiB7
CiAgICAgLy8gV2UgZG9uJ3QgdXNlIERvdWJsZVRhcCBhdCB0aGUgbW9tZW50LCBpdCdzIG1vc3Rs
eSByZWR1bmRhbnQgd2l0aCB0YXAgc2luY2UgdGFwIG5vdyBjb250YWlucwpAQCAtMjM3NSw4ICsy
Mzg3LDIwIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgUGxh
dGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCkKICAgICBpZiAoZ2VzdHVyZUV2ZW50LnR5
cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlU2Nyb2xsRW5kIHx8IGdlc3R1cmVFdmVudC50
eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZVNjcm9sbFVwZGF0ZSkKICAgICAgICAgZXZl
bnRUYXJnZXQgPSBtX3Njcm9sbEdlc3R1cmVIYW5kbGluZ05vZGUuZ2V0KCk7CiAKLSAgICBpZiAo
IWV2ZW50VGFyZ2V0KSB7Ci0gICAgICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0ID0gaGl0VGVzdFJl
c3VsdEF0UG9pbnQoZ2VzdHVyZUV2ZW50LnBvc2l0aW9uKCkpOworICAgIEhpdFRlc3RSZXF1ZXN0
OjpIaXRUZXN0UmVxdWVzdFR5cGUgaGl0VHlwZSA9IEhpdFRlc3RSZXF1ZXN0OjpUb3VjaEV2ZW50
OworICAgIGlmIChnZXN0dXJlRXZlbnQudHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVU
YXBEb3duKQorICAgICAgICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmU7CisgICAg
ZWxzZSBpZiAoZ2VzdHVyZUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlVGFw
IHx8IGdlc3R1cmVFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZVRhcENhbmNl
bCkKKyAgICAgICAgaGl0VHlwZSB8PSBIaXRUZXN0UmVxdWVzdDo6UmVsZWFzZTsKKyAgICBlbHNl
CisgICAgICAgIGhpdFR5cGUgfD0gSGl0VGVzdFJlcXVlc3Q6Ok1vdmUgfCBIaXRUZXN0UmVxdWVz
dDo6UmVhZE9ubHk7CisKKyAgICBpZiAoIXNob3VsZEdlc3R1cmVzVHJpZ2dlckFjdGl2ZSgpKQor
ICAgICAgICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seTsKKworICAgIGlmICgh
ZXZlbnRUYXJnZXQgfHwgIShoaXRUeXBlICYgSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5KSkgewor
ICAgICAgICBJbnRQb2ludCBoaXRUZXN0UG9pbnQgPSBtX2ZyYW1lLT52aWV3KCktPndpbmRvd1Rv
Q29udGVudHMoZ2VzdHVyZUV2ZW50LnBvc2l0aW9uKCkpOworICAgICAgICBIaXRUZXN0UmVzdWx0
IHJlc3VsdCA9IGhpdFRlc3RSZXN1bHRBdFBvaW50KGhpdFRlc3RQb2ludCwgaGl0VHlwZSk7CiAg
ICAgICAgIGV2ZW50VGFyZ2V0ID0gcmVzdWx0LnRhcmdldE5vZGUoKTsKICAgICB9CiAKQEAgLTI0
MTQsNiArMjQzOCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZlbnQoY29u
c3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCkKICAgICBjYXNlIFBsYXRmb3Jt
RXZlbnQ6Okdlc3R1cmVQaW5jaEJlZ2luOgogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVy
ZVBpbmNoRW5kOgogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVBpbmNoVXBkYXRlOgor
ICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVRhcENhbmNlbDoKICAgICAgICAgYnJlYWs7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zNTQ1LDYg
KzM1NzAsMTEgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxh
dGZvcm1Ub3VjaEV2ZW50JiBldmVudCkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAK
KyNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCisgICAgICAgIGlmIChzaG91bGRHZXN0dXJlc1Ry
aWdnZXJBY3RpdmUoKSkKKyAgICAgICAgICAgIGhpdFR5cGUgfD0gSGl0VGVzdFJlcXVlc3Q6OlJl
YWRPbmx5OworI2VuZGlmCisKICAgICAgICAgLy8gSW5jcmVtZW50IHRoZSBwbGF0Zm9ybSB0b3Vj
aCBpZCBieSAxIHRvIGF2b2lkIHN0b3JpbmcgYSBrZXkgb2YgMCBpbiB0aGUgaGFzaG1hcC4KICAg
ICAgICAgdW5zaWduZWQgdG91Y2hQb2ludFRhcmdldEtleSA9IHBvaW50LmlkKCkgKyAxOwogICAg
ICAgICBSZWZQdHI8RXZlbnRUYXJnZXQ+IHRvdWNoVGFyZ2V0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmgKaW5kZXggOTdkMGJkMDNmMDYxYjVhODhkZmRlMGQ2OTdmYjFhOTljMDMxMDRhMi4u
ZDQzNGQ0ZjAxOTc2YzRhZjhiNzQ1Y2I3NmQ4MjhlMDVkNjk5MzY4ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5oCkBAIC0zNTUsNiArMzU1LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUo
R0VTVFVSRV9FVkVOVFMpCiAgICAgYm9vbCBoYW5kbGVHZXN0dXJlU2Nyb2xsQ29yZShjb25zdCBQ
bGF0Zm9ybUdlc3R1cmVFdmVudCYsIFBsYXRmb3JtV2hlZWxFdmVudEdyYW51bGFyaXR5LCBib29s
IGxhdGNoZWRXaGVlbCk7CiAgICAgYm9vbCBoYW5kbGVHZXN0dXJlVGFwRG93bigpOworICAgIHN0
YXRpYyBib29sIHNob3VsZEdlc3R1cmVzVHJpZ2dlckFjdGl2ZSgpOwogI2VuZGlmCiAKICAgICBG
cmFtZSogbV9mcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaAppbmRl
eCA1MmM2NDg4YjZiMjY0YzlhZTBmMzQyMmZmMGU4MmViMDkxODc2ZGYwLi40YjZhNDNjN2UwYTQw
NmFhYzcwODQ4ZGI4MWNkNmI2NTFkNDE3MjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1FdmVudC5oCkBAIC01NCw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICAgICAgR2VzdHVyZVNj
cm9sbFVwZGF0ZSwKICAgICAgICAgR2VzdHVyZVRhcCwKICAgICAgICAgR2VzdHVyZVRhcERvd24s
CisgICAgICAgIEdlc3R1cmVUYXBDYW5jZWwsCiAgICAgICAgIEdlc3R1cmVEb3VibGVUYXAsCiAg
ICAgICAgIEdlc3R1cmVUd29GaW5nZXJUYXAsCiAgICAgICAgIEdlc3R1cmVMb25nUHJlc3MsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVy
c2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVy
c2lvbi5jcHAKaW5kZXggMmFmYzdkY2ZlNzk5NWMyODQzYzFjMjRhMGU3Nzg3NjI2NzFiNzc0NC4u
ZTIxOGIyYzM5YjVkYzVkNTRhMmE0ZDQ0YzAyMzE4MzRhYjQxMGU2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcApA
QCAtMTYxLDYgKzE2MSw5IEBAIFBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRlcjo6UGxhdGZvcm1H
ZXN0dXJlRXZlbnRCdWlsZGVyKFdpZGdldCogd2lkZ2V0LCBjb25zdCBXCiAgICAgY2FzZSBXZWJJ
bnB1dEV2ZW50OjpHZXN0dXJlVGFwRG93bjoKICAgICAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVu
dDo6R2VzdHVyZVRhcERvd247CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViSW5wdXRFdmVu
dDo6R2VzdHVyZVRhcENhbmNlbDoKKyAgICAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVudDo6R2Vz
dHVyZVRhcENhbmNlbDsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpH
ZXN0dXJlRG91YmxlVGFwOgogICAgICAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJl
RG91YmxlVGFwOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViUG9wdXBNZW51SW1wbC5jcHAKaW5kZXggNThhMjg1NWNkOWIzNGRjYTFkYmUyMDFlNTcz
NmE2NzlmMTc2YjRkMy4uNTExMTQwMjBiZjNiYzUwZWIyZWYyZmI1YmNiY2NjZTA2Y2M2MmJiZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51SW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51SW1wbC5jcHAK
QEAgLTI3Nyw2ICsyNzcsNyBAQCBib29sIFdlYlBvcHVwTWVudUltcGw6OmhhbmRsZUlucHV0RXZl
bnQoY29uc3QgV2ViSW5wdXRFdmVudCYgaW5wdXRFdmVudCkKICAgICBjYXNlIFdlYklucHV0RXZl
bnQ6Okdlc3R1cmVGbGluZ0NhbmNlbDoKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVU
YXA6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwRG93bjoKKyAgICBjYXNlIFdl
YklucHV0RXZlbnQ6Okdlc3R1cmVUYXBDYW5jZWw6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpH
ZXN0dXJlRG91YmxlVGFwOgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVR3b0Zpbmdl
clRhcDoKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVMb25nUHJlc3M6CkBAIC0yODgs
NyArMjg5LDYgQEAgYm9vbCBXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KGNvbnN0
IFdlYklucHV0RXZlbnQmIGlucHV0RXZlbnQpCiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpVbmRl
ZmluZWQ6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpNb3VzZUVudGVyOgogICAgIGNhc2UgV2Vi
SW5wdXRFdmVudDo6Q29udGV4dE1lbnU6Ci0gICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJl
VGFwQ2FuY2VsOgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCAyMzhi
MmY5MjA1ZTg4MGFlZTdkOGJhZWNjOTA0NGY5NzIxM2NmNjQxLi44NDg4NjM4MmE1N2ZjOGEwYmVi
M2FmYmMxYmE0NTdhMDJiMWIxMjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwCkBAIC03NjYsMTUgKzc2NiwxMiBAQCBib29sIFdlYlZpZXdJbXBsOjpoYW5k
bGVHZXN0dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVyZUV2ZW50JiBldmVudCkKICAgICAgICAgbV9j
bGllbnQtPmNhbmNlbFNjaGVkdWxlZENvbnRlbnRJbnRlbnRzKCk7CiAgICAgY2FzZSBXZWJJbnB1
dEV2ZW50OjpHZXN0dXJlU2Nyb2xsRW5kOgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVy
ZVNjcm9sbFVwZGF0ZToKKyAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXBDYW5jZWw6
CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlUGluY2hFbmQ6CiAgICAgY2FzZSBXZWJJ
bnB1dEV2ZW50OjpHZXN0dXJlUGluY2hVcGRhdGU6IHsKICAgICAgICAgUGxhdGZvcm1HZXN0dXJl
RXZlbnRCdWlsZGVyIHBsYXRmb3JtRXZlbnQobWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKSwg
ZXZlbnQpOwogICAgICAgICByZXR1cm4gbWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpLT5ldmVudEhh
bmRsZXIoKS0+aGFuZGxlR2VzdHVyZUV2ZW50KHBsYXRmb3JtRXZlbnQpOwogICAgIH0KLSAgICBj
YXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXBDYW5jZWw6Ci0gICAgICAgIC8vIEZJWE1FOiBV
cGRhdGUgV2ViQ29yZSB0byBoYW5kbGUgdGhpcyBldmVudCBhZnRlciBjaHJvbWl1bSBoYXMgYmVl
biB1cGRhdGVkIHRvIHNlbmQgaXQKLSAgICAgICAgLy8gaHR0cDovL3drYi51Zy85NjA2MAotICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDM4ZTQyYzU1Njk1MzE0OTI3NjRmN2Q3MWU3OTk5ZTdmMDYzMGNhNGEuLjMxZjAz
MDUzMWQ5YmIxMDBmMzc5YzlhODUzZmE2NzYyZWVmNTU1NTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wOS0w
OCAgUmljayBCeWVycyAgPHJieWVyc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGhhbmRs
aW5nIG9mIG5ldyBHZXN0dXJlVGFwQ2FuY2VsIGluIERSVAorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjE4MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFdlYlBsdWdpbi5jcHA6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjpoYW5kbGVJbnB1dEV2ZW50
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9FdmVudFNlbmRlci5jcHA6Cisg
ICAgICAgIChFdmVudFNlbmRlcjo6Z2VzdHVyZVRhcENhbmNlbCk6CisKIDIwMTItMDktMTEgIFRv
ciBBcm5lIFZlc3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgogCiAgICAgICAgIFtR
dF0gRml4IC0tcXQgb3B0aW9uIHRvIGJ1aWxkLXdlYmtpdApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9FdmVudFNlbmRlci5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2ZW50U2VuZGVyLmNwcAppbmRleCBk
NWVhYWM0YWRhMWRkZTU5NmMwOGE4NjBkOTM1YWYyMmU2YmI5ZWZjLi4yMzYwMTI4NjUxYzYwZjk5
ZmYyNWM3ZGViZTYwNzc1Mjk1MTY5MzdjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2ZW50U2VuZGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2ZW50U2VuZGVyLmNwcApAQCAtMjg3LDYgKzI4
Nyw3IEBAIEV2ZW50U2VuZGVyOjpFdmVudFNlbmRlcigpCiAgICAgYmluZE1ldGhvZCgiZ2VzdHVy
ZVNjcm9sbFVwZGF0ZSIsICZFdmVudFNlbmRlcjo6Z2VzdHVyZVNjcm9sbFVwZGF0ZSk7CiAgICAg
YmluZE1ldGhvZCgiZ2VzdHVyZVRhcCIsICZFdmVudFNlbmRlcjo6Z2VzdHVyZVRhcCk7CiAgICAg
YmluZE1ldGhvZCgiZ2VzdHVyZVRhcERvd24iLCAmRXZlbnRTZW5kZXI6Omdlc3R1cmVUYXBEb3du
KTsKKyAgICBiaW5kTWV0aG9kKCJnZXN0dXJlVGFwQ2FuY2VsIiwgJkV2ZW50U2VuZGVyOjpnZXN0
dXJlVGFwQ2FuY2VsKTsKICAgICBiaW5kTWV0aG9kKCJnZXN0dXJlTG9uZ1ByZXNzIiwgJkV2ZW50
U2VuZGVyOjpnZXN0dXJlTG9uZ1ByZXNzKTsKICAgICBiaW5kTWV0aG9kKCJnZXN0dXJlVHdvRmlu
Z2VyVGFwIiwgJkV2ZW50U2VuZGVyOjpnZXN0dXJlVHdvRmluZ2VyVGFwKTsKICAgICBiaW5kTWV0
aG9kKCJ6b29tUGFnZUluIiwgJkV2ZW50U2VuZGVyOjp6b29tUGFnZUluKTsKQEAgLTExMTksNiAr
MTEyMCwxMiBAQCB2b2lkIEV2ZW50U2VuZGVyOjpnZXN0dXJlVGFwRG93bihjb25zdCBDcHBBcmd1
bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcgogICAgIGdlc3R1cmVFdmVudChXZWJJ
bnB1dEV2ZW50OjpHZXN0dXJlVGFwRG93biwgYXJndW1lbnRzKTsKIH0KIAordm9pZCBFdmVudFNl
bmRlcjo6Z2VzdHVyZVRhcENhbmNlbChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywg
Q3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0TnVsbCgpOworICAgIGdlc3R1
cmVFdmVudChXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwQ2FuY2VsLCBhcmd1bWVudHMpOworfQor
CiB2b2lkIEV2ZW50U2VuZGVyOjpnZXN0dXJlTG9uZ1ByZXNzKGNvbnN0IENwcEFyZ3VtZW50TGlz
dCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgcmVzdWx0LT5zZXROdWxs
KCk7CkBAIC0xMTgyLDYgKzExODksMTAgQEAgdm9pZCBFdmVudFNlbmRlcjo6Z2VzdHVyZUV2ZW50
KFdlYklucHV0RXZlbnQ6OlR5cGUgdHlwZSwgY29uc3QgQ3BwQXJndW1lbnRMaXN0JgogICAgICAg
ICBldmVudC54ID0gcG9pbnQueDsKICAgICAgICAgZXZlbnQueSA9IHBvaW50Lnk7CiAgICAgICAg
IGJyZWFrOworICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcENhbmNlbDoKKyAgICAg
ICAgZXZlbnQueCA9IHBvaW50Lng7CisgICAgICAgIGV2ZW50LnkgPSBwb2ludC55OworICAgICAg
ICBicmVhazsKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVMb25nUHJlc3M6CiAgICAg
ICAgIGV2ZW50LnggPSBwb2ludC54OwogICAgICAgICBldmVudC55ID0gcG9pbnQueTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvRXZlbnRTZW5k
ZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvRXZlbnRTZW5k
ZXIuaAppbmRleCA4MjhlN2M4NDI2Mzc1OTE0ZDhjMWZhZWYwYzMwN2M0YzVhZTA5OWI1Li5lNjc5
NGEwNzcwYmQ4OGY3NGZlNTBjYTJmNzE2NjIxZDQxOTg3OWNjIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2ZW50U2VuZGVyLmgKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9FdmVudFNlbmRlci5oCkBAIC0x
MDYsNiArMTA2LDcgQEAgcHVibGljOgogICAgIHZvaWQgZ2VzdHVyZVNjcm9sbFVwZGF0ZShjb25z
dCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBnZXN0dXJlVGFwKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIGdlc3R1cmVUYXBE
b3duKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGdlc3R1
cmVUYXBDYW5jZWwoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZv
aWQgZ2VzdHVyZUxvbmdQcmVzcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7
CiAgICAgdm9pZCBnZXN0dXJlVHdvRmluZ2VyVGFwKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENw
cFZhcmlhbnQqKTsKICAgICB2b2lkIGdlc3R1cmVFdmVudChXZWJLaXQ6OldlYklucHV0RXZlbnQ6
OlR5cGUsIGNvbnN0IENwcEFyZ3VtZW50TGlzdCYpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRh
cC1hY3RpdmUtc3RhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5OTllYmNkMWRmZDEzM2Ew
N2I0MjYzMTI4ZTliMmEzMGE4MzFjMzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMyBAQAorR2VzdHVyZXMgZ28gaGVyZQorVGVzdHMgdGhhdCB0YXAg
Z2VzdHVyZSBldmVudHMgc2V0IGFuZCBjbGVhciB0aGUgYWN0aXZlIHN0YXRlIG9mIGVsZW1lbnRz
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU2VlIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA2MCBmb3IgZGV0YWlscworCitHZXN0dXJlVGFwRG93
biBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgcGxhdGZvcm0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1pZnJhbWUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0
dXJlLXRhcC1hY3RpdmUtc3RhdGUtaWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNzcy
YmU3ZmM0NWVmNzkxZjIwZTQ5Yzg1MGMzNTNiMmUzMmE4MDY3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUt
c3RhdGUtaWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACisKK1Rlc3RzIHRoYXQg
dGFwIGdlc3R1cmUgZXZlbnRzIHNldCBhbmQgY2xlYXIgdGhlIGFjdGl2ZSBzdGF0ZSBvZiBlbGVt
ZW50cywgZXZlbiB3aGVuIGluc2lkZSBhbiBpZnJhbWUgYW5kIHRoZSBkb2N1bWVudCBpcyBzY3Jv
bGxlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1NlZSBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwNjAgZm9yIGRldGFpbHMKKworR2VzdHVyZVRh
cERvd24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIHBsYXRmb3JtCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtaWZy
YW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUt
dGFwLWFjdGl2ZS1zdGF0ZS1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYmVmYjQyZmI0OWQ3NTQ1
YjQzOTZlMzU4M2ZjMGUyOGI3MGJjMWUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtaWZyYW1l
Lmh0bWwKQEAgLTAsMCArMSw2MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0
eWxlIHR5cGU9InRleHQvY3NzIj4KKyNmcmFtZSB7CisgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgIHRvcDogMzAwcHg7CisgICAgbGVmdDogNDAwcHg7CisgICAgaGVpZ2h0OiAzMDAwcHg7Cit9
CisKKzwvc3R5bGU+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSdyZXNvdXJjZXMvZ2VzdHVyZS10YXAt
YWN0aXZlLXN0YXRlLWlmcmFtZS1pbm5lci5odG1sJyBpZD0nZnJhbWUnPgorPC9pZnJhbWU+CisK
KzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPHA+U2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NjA2MCBmb3IgZGV0YWlsczwvcD4KKworPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+CisKKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRhcCBnZXN0
dXJlIGV2ZW50cyBzZXQgYW5kIGNsZWFyIHRoZSBhY3RpdmUgc3RhdGUgb2YgZWxlbWVudHMsIGV2
ZW4gd2hlbiBpbnNpZGUgYW4gaWZyYW1lIGFuZCB0aGUgZG9jdW1lbnQgaXMgc2Nyb2xsZWQuIik7
CisKK3ZhciBpc0JveEFjdGl2ZTsKK2Z1bmN0aW9uIHJ1blRlc3RzKGJhKQoreworICAgIGlzQm94
QWN0aXZlID0gYmE7CisKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICBk
ZWJ1ZygnVGhpcyB0ZXN0IHJlcXVpcmVzIERSVC4nKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGlmICghZXZlbnRTZW5kZXIuZ2VzdHVyZVRhcERvd24pIHsKKyAgICAgICAgZGVidWco
J0dlc3R1cmVUYXBEb3duIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBwbGF0Zm9ybScpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIC8vIFNjcm9sbCBzbyB0aGUgYm94IGlzIGF0
IHRoZSB0b3AKKyAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgNDAwKTsKKworICAgIGRlYnVnKCJWZXJp
ZnkgYWN0aXZlIGlzbid0IGluaXRpYWxseSBzZXQiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJpc0Jv
eEFjdGl2ZSgpIik7CisKKyAgICBkZWJ1ZygiVmVyaWZ5IHRhcGRvd24sdGFwIHNldHMgYW5kIGNs
ZWFycyBhY3RpdmUiKTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlVGFwRG93big0NTAsIDUwKTsK
KyAgICBzaG91bGRCZVRydWUoImlzQm94QWN0aXZlKCkiKTsKKyAgICBldmVudFNlbmRlci5nZXN0
dXJlVGFwKDQ1MCwgNTApOworICAgIHNob3VsZEJlRmFsc2UoImlzQm94QWN0aXZlKCkiKTsKKwor
ICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
Cit9CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0
YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUt
dGFwLWFjdGl2ZS1zdGF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4NjVlOWRmNDFlNjQxOGFjMzM1ZWQ3
OWY3NGM3Y2U2ZjUyNzgxNTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS5odG1sCkBAIC0wLDAg
KzEsMTA2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGUgdHlwZT0idGV4
dC9jc3MiPgorI2JveCB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICB3aWR0aDog
MzAwcHg7CisgICAgaGVpZ2h0OiAxMDBweDsKK30KKworI2JveDphY3RpdmUgeworICAgIGJhY2tn
cm91bmQtY29sb3I6IHJlZDsKK30KKworPC9zdHlsZT4KKzxib2R5PgorPGRpdiBpZD0iYm94Ij5H
ZXN0dXJlcyBnbyBoZXJlPC9kaXY+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPHA+U2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA2MCBmb3IgZGV0YWls
czwvcD4KKworPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+Cit2YXIgY29sb3I7
CitmdW5jdGlvbiBpc0JveEFjdGl2ZSgpCit7CisgICAgLy8gVGhlc2UgbmVlZCB0byBtYXRjaCB0
aGUgYmFja2dyb3VuZC1jb2xvciB1c2VkIGFib3ZlLCBhZnRlciByb3VuZC10cmlwcGluZy4KKyAg
ICB2YXIgZGVmYXVsdENvbG9yID0gInJnYigwLCAwLCAyNTUpIjsKKyAgICB2YXIgYWN0aXZlQ29s
b3IgPSAicmdiKDI1NSwgMCwgMCkiOworCisgICAgdmFyIGIgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnYm94Jyk7CisgICAgY29sb3IgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShiKS5iYWNr
Z3JvdW5kQ29sb3I7CisgICAgaWYgKGNvbG9yID09IGFjdGl2ZUNvbG9yKQorICAgICAgcmV0dXJu
IHRydWU7CisgICAgaWYgKGNvbG9yICE9IGRlZmF1bHRDb2xvcikKKyAgICAgIHRlc3RGYWlsZWQo
J0dvdCB1bmV4cGVjdGVkIGJhY2tncm91bmRDb2xvcjogJyArIGNvbG9yKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRhcCBnZXN0dXJlIGV2ZW50cyBz
ZXQgYW5kIGNsZWFyIHRoZSBhY3RpdmUgc3RhdGUgb2YgZWxlbWVudHMuIik7CisKK2Z1bmN0aW9u
IHJ1blRlc3RzKCkKK3sKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICBk
ZWJ1ZygnVGhpcyB0ZXN0IHJlcXVpcmVzIERSVC4nKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGlmICghZXZlbnRTZW5kZXIuZ2VzdHVyZVRhcERvd24pIHsKKyAgICAgICAgZGVidWco
J0dlc3R1cmVUYXBEb3duIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBwbGF0Zm9ybScpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgZGVidWcoIlZlcmlmeSBhY3RpdmUgaXNuJ3QgaW5p
dGlhbGx5IHNldCIpOworICAgIHNob3VsZEJlRmFsc2UoImlzQm94QWN0aXZlKCkiKTsKKworICAg
IGRlYnVnKCJWZXJpZnkgdGFwZG93bix0YXAgc2V0cyBhbmQgY2xlYXJzIGFjdGl2ZSIpOworICAg
IGV2ZW50U2VuZGVyLmdlc3R1cmVUYXBEb3duKDUwLCA1MCk7CisgICAgc2hvdWxkQmVUcnVlKCJp
c0JveEFjdGl2ZSgpIik7CisgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVRhcCg1MCwgNTApOworICAg
IHNob3VsZEJlRmFsc2UoImlzQm94QWN0aXZlKCkiKTsKKworICAgIGRlYnVnKCJWZXJpZnkgdGFw
ZG93bix0YXBjYW5jZWwgb24gdGhlIGVsZW1lbnQgc2V0cyBhbmQgY2xlYXJzIGFjdGl2ZSIpOwor
ICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVUYXBEb3duKDUwLCA1MCk7CisgICAgc2hvdWxkQmVUcnVl
KCJpc0JveEFjdGl2ZSgpIik7CisgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVRhcENhbmNlbCg1MCwg
NTApOworICAgIHNob3VsZEJlRmFsc2UoImlzQm94QWN0aXZlKCkiKTsKKworICAgIGRlYnVnKCJW
ZXJpZnkgdGFwIGVsc2V3aGVyZSBzdGlsbCBjbGVhcnMgYWN0aXZlIik7CisgICAgZXZlbnRTZW5k
ZXIuZ2VzdHVyZVRhcERvd24oNTAsIDUwKTsKKyAgICBzaG91bGRCZVRydWUoImlzQm94QWN0aXZl
KCkiKTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlVGFwKDQwMCwgMjUwKTsKKyAgICBzaG91bGRC
ZUZhbHNlKCJpc0JveEFjdGl2ZSgpIik7CisKKyAgICBkZWJ1ZygiVmVyaWZ5IHRhcENhbmNlbCBl
bHNld2hlcmUgc3RpbGwgY2xlYXJzIGFjdGl2ZSIpOworICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVU
YXBEb3duKDUwLCA1MCk7CisgICAgc2hvdWxkQmVUcnVlKCJpc0JveEFjdGl2ZSgpIik7CisgICAg
ZXZlbnRTZW5kZXIuZ2VzdHVyZVRhcENhbmNlbCg0MDAsIDI1MCk7CisgICAgc2hvdWxkQmVGYWxz
ZSgiaXNCb3hBY3RpdmUoKSIpOworCisgICAgZGVidWcoIlZlcmlmeSB0aGF0IHRvdWNoc3RhcnQg
ZG9lc24ndCB0cmlnZ2VyIGFjdGl2ZSBzdGF0ZSIpOworICAgIGV2ZW50U2VuZGVyLmFkZFRvdWNo
UG9pbnQoNTAsIDUwKTsKKyAgICBldmVudFNlbmRlci50b3VjaFN0YXJ0KCk7CisgICAgc2hvdWxk
QmVGYWxzZSgiaXNCb3hBY3RpdmUoKSIpOworICAgIGV2ZW50U2VuZGVyLnJlbGVhc2VUb3VjaFBv
aW50KDApOworICAgIGV2ZW50U2VuZGVyLnRvdWNoRW5kKCk7CisKKyAgICBkZWJ1ZygiVmVyaWZ5
IHRoYXQgdG91Y2hzdGFydC90b3VjaGVuZCBkb2Vzbid0IGNhbmNlbCBhY3RpdmUiKTsKKyAgICBl
dmVudFNlbmRlci5nZXN0dXJlVGFwRG93big1MCwgNTApOworICAgIHNob3VsZEJlVHJ1ZSgiaXNC
b3hBY3RpdmUoKSIpOworICAgIGV2ZW50U2VuZGVyLmFkZFRvdWNoUG9pbnQoNTAsIDUwKTsKKyAg
ICBldmVudFNlbmRlci50b3VjaFN0YXJ0KCk7CisgICAgc2hvdWxkQmVUcnVlKCJpc0JveEFjdGl2
ZSgpIik7CisgICAgZXZlbnRTZW5kZXIucmVsZWFzZVRvdWNoUG9pbnQoMCk7CisgICAgZXZlbnRT
ZW5kZXIudG91Y2hFbmQoKTsKKyAgICBzaG91bGRCZVRydWUoImlzQm94QWN0aXZlKCkiKTsKKyAg
ICBldmVudFNlbmRlci5nZXN0dXJlVGFwKDUwLCA1MCk7CisgICAgc2hvdWxkQmVGYWxzZSgiaXNC
b3hBY3RpdmUoKSIpOworfQorCitydW5UZXN0cygpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0
dXJlL3Jlc291cmNlcy9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtaWZyYW1lLWlubmVyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3Jlc291cmNlcy9nZXN0dXJl
LXRhcC1hY3RpdmUtc3RhdGUtaWZyYW1lLWlubmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODAxZjlkYWZj
Y2Y4YWI1M2U2MGEyMDQ2MjE5OWUzOTcwNDcwODUxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcmVzb3VyY2VzL2dlc3R1cmUtdGFwLWFj
dGl2ZS1zdGF0ZS1pZnJhbWUtaW5uZXIuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyNib3ggeworICAgIHBvc2l0
aW9uOiBhYnNvbHV0ZTsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgIHdpZHRoOiAz
MDBweDsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIHRvcDogMTAwcHg7Cit9CisKKyNib3g6YWN0
aXZlIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Cit9CisKKzwvc3R5bGU+Cis8c2NyaXB0
PgordmFyIGNvbG9yOworZnVuY3Rpb24gaXNCb3hBY3RpdmUoKQoreworICAgIC8vIFRoZXNlIG5l
ZWQgdG8gbWF0Y2ggdGhlIGJhY2tncm91bmQtY29sb3IgdXNlZCBhYm92ZSwgYWZ0ZXIgcm91bmQt
dHJpcHBpbmcuCisgICAgdmFyIGRlZmF1bHRDb2xvciA9ICJyZ2IoMCwgMCwgMjU1KSI7CisgICAg
dmFyIGFjdGl2ZUNvbG9yID0gInJnYigyNTUsIDAsIDApIjsKKworICAgIHZhciBiID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpOworICAgIGNvbG9yID0gZ2V0Q29tcHV0ZWRTdHlsZShi
KS5iYWNrZ3JvdW5kQ29sb3I7CisgICAgaWYgKGNvbG9yID09IGFjdGl2ZUNvbG9yKQorICAgICAg
cmV0dXJuIHRydWU7CisgICAgaWYgKGNvbG9yICE9IGRlZmF1bHRDb2xvcikKKyAgICAgIHRocm93
ICJHb3QgdW5leHBlY3RlZCBiYWNrZ3JvdW5kQ29sb3I6ICIgKyBjb2xvcjsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSdwYXJlbnQucnVuVGVzdHMoaXNC
b3hBY3RpdmUpJz4KKzxkaXYgaWQ9J2JveCc+R2VzdHVyZXMgZ28gaGVyZTwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tYW5k
cm9pZC9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1hbmRyb2lkL2Zhc3Qv
ZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lOTk5ZWJjZDFkZmQxMzNhMDdiNDI2MzEyOGU5YjJhMzBhODMxYzM3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tYW5kcm9pZC9m
YXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMyBAQAorR2VzdHVyZXMgZ28gaGVyZQorVGVzdHMgdGhhdCB0YXAg
Z2VzdHVyZSBldmVudHMgc2V0IGFuZCBjbGVhciB0aGUgYWN0aXZlIHN0YXRlIG9mIGVsZW1lbnRz
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU2VlIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA2MCBmb3IgZGV0YWlscworCitHZXN0dXJlVGFwRG93
biBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgcGxhdGZvcm0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1hbmRyb2lkL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVy
ZS10YXAtYWN0aXZlLXN0YXRlLWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1hbmRyb2lkL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10
YXAtYWN0aXZlLXN0YXRlLWlmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc3MmJlN2Zj
NDVlZjc5MWYyMGU0OWM4NTBjMzUzYjJlMzJhODA2NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWFuZHJvaWQvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVy
ZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtaWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEzIEBACisKK1Rlc3RzIHRoYXQgdGFwIGdlc3R1cmUgZXZlbnRzIHNldCBhbmQgY2xlYXIgdGhl
IGFjdGl2ZSBzdGF0ZSBvZiBlbGVtZW50cywgZXZlbiB3aGVuIGluc2lkZSBhbiBpZnJhbWUgYW5k
IHRoZSBkb2N1bWVudCBpcyBzY3JvbGxlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1NlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwNjAgZm9y
IGRldGFpbHMKKworR2VzdHVyZVRhcERvd24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIHBsYXRm
b3JtCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91
Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJl
LXRhcC1hY3RpdmUtc3RhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzMzljMDhiY2EzNDNl
ZDQ1OTAyOGNjOGI2ZGU1YTIwNTFjMmUyNzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFw
LWFjdGl2ZS1zdGF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMyBAQAorR2VzdHVyZXMgZ28g
aGVyZQorVGVzdHMgdGhhdCB0YXAgZ2VzdHVyZSBldmVudHMgc2V0IGFuZCBjbGVhciB0aGUgYWN0
aXZlIHN0YXRlIG9mIGVsZW1lbnRzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
U2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA2MCBmb3IgZGV0
YWlscworCitWZXJpZnkgYWN0aXZlIGlzbid0IGluaXRpYWxseSBzZXQKK1BBU1MgaXNCb3hBY3Rp
dmUoKSBpcyBmYWxzZQorVmVyaWZ5IHRhcGRvd24sdGFwIHNldHMgYW5kIGNsZWFycyBhY3RpdmUK
K1BBU1MgaXNCb3hBY3RpdmUoKSBpcyB0cnVlCitQQVNTIGlzQm94QWN0aXZlKCkgaXMgZmFsc2UK
K1ZlcmlmeSB0YXBkb3duLHRhcGNhbmNlbCBvbiB0aGUgZWxlbWVudCBzZXRzIGFuZCBjbGVhcnMg
YWN0aXZlCitQQVNTIGlzQm94QWN0aXZlKCkgaXMgdHJ1ZQorUEFTUyBpc0JveEFjdGl2ZSgpIGlz
IGZhbHNlCitWZXJpZnkgdGFwIGVsc2V3aGVyZSBzdGlsbCBjbGVhcnMgYWN0aXZlCitQQVNTIGlz
Qm94QWN0aXZlKCkgaXMgdHJ1ZQorUEFTUyBpc0JveEFjdGl2ZSgpIGlzIGZhbHNlCitWZXJpZnkg
dGFwQ2FuY2VsIGVsc2V3aGVyZSBzdGlsbCBjbGVhcnMgYWN0aXZlCitQQVNTIGlzQm94QWN0aXZl
KCkgaXMgdHJ1ZQorUEFTUyBpc0JveEFjdGl2ZSgpIGlzIGZhbHNlCitWZXJpZnkgdGhhdCB0b3Vj
aHN0YXJ0IGRvZXNuJ3QgdHJpZ2dlciBhY3RpdmUgc3RhdGUKK1BBU1MgaXNCb3hBY3RpdmUoKSBp
cyBmYWxzZQorVmVyaWZ5IHRoYXQgdG91Y2hzdGFydC90b3VjaGVuZCBkb2Vzbid0IGNhbmNlbCBh
Y3RpdmUKK1BBU1MgaXNCb3hBY3RpdmUoKSBpcyB0cnVlCitQQVNTIGlzQm94QWN0aXZlKCkgaXMg
dHJ1ZQorUEFTUyBpc0JveEFjdGl2ZSgpIGlzIHRydWUKK1BBU1MgaXNCb3hBY3RpdmUoKSBpcyBm
YWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3Rv
dWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWlmcmFtZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJl
L2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1pZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmMwNDgxZTA2NzY2MmQxOGI3YjQzYmIxZDlmZmM0M2Y5YTkzMGUyMGEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy90b3VjaC9nZXN0
dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1pZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTcgQEAKKworVGVzdHMgdGhhdCB0YXAgZ2VzdHVyZSBldmVudHMgc2V0IGFuZCBjbGVhciB0
aGUgYWN0aXZlIHN0YXRlIG9mIGVsZW1lbnRzLCBldmVuIHdoZW4gaW5zaWRlIGFuIGlmcmFtZSBh
bmQgdGhlIGRvY3VtZW50IGlzIHNjcm9sbGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA2MCBm
b3IgZGV0YWlscworCitWZXJpZnkgYWN0aXZlIGlzbid0IGluaXRpYWxseSBzZXQKK1BBU1MgaXNC
b3hBY3RpdmUoKSBpcyBmYWxzZQorVmVyaWZ5IHRhcGRvd24sdGFwIHNldHMgYW5kIGNsZWFycyBh
Y3RpdmUKK1BBU1MgaXNCb3hBY3RpdmUoKSBpcyB0cnVlCitQQVNTIGlzQm94QWN0aXZlKCkgaXMg
ZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy90
b3VjaC90b3VjaC1hY3RpdmUtc3RhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvdG91Y2gtYWN0aXZlLXN0YXRlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41YzhmNmFmNGE1ZTkzMGUxOWY5NzM3MjUxYzEwNDc5YzMzYzk3MDUw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9l
dmVudHMvdG91Y2gvdG91Y2gtYWN0aXZlLXN0YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACitGQUlMCitUZXN0IHRvdWNoZXMgc2V0IHRoZSBhY3RpdmUgc3RhdGUuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164162</attachid>
            <date>2012-09-14 08:36:31 -0700</date>
            <delta_ts>2012-09-14 10:25:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96060-20120914113602.patch</filename>
            <type>text/plain</type>
            <size>26748</size>
            <attacher name="Rick Byers">rbyers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWIyMzhkZTlmMmYzYmQ4
MTExNDA4OTE4Nzk1MDNmNTg3ODgzNjhkZC4uZDk2YmRmMWU0OTE3MDE3NWI2YjY4ZTg1N2YxOWY0
Y2Q5NjlmYzRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA5LTA4ICBSaWNr
IEJ5ZXJzICA8cmJ5ZXJzQGNocm9taXVtLm9yZz4KKworICAgICAgICBBbGxvdyBnZXN0dXJlIGV2
ZW50cyB0byBzZXQgYWN0aXZlL2hvdmVyIHN0YXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIEdlc3R1cmVUYXBEb3duQ2FuY2VsIGFzIGEgbmV3
IFBsYXRmb3JtR2VzdHVyZUV2ZW50IHR5cGUuICBPbiBwb3J0cworICAgICAgICB0aGF0IHN1cHBv
cnQgZ2VzdHVyZSBldmVudHMsIHVzZSBHZXN0dXJlVGFwRG93biB0byB0cmlnZ2VyIGFjdGl2ZS9o
b3ZlcgorICAgICAgICBzdGF0ZXMsIGFuZCBHZXN0dXJlVGFwL0dlc3R1cmVUYXBEb3duQ2FuY2Vs
IHRvIGNsZWFyIHRoZW0uICBUaGlzIGlzCisgICAgICAgIHN1cGVyaW9yIHRvIHVzaW5nIHRvdWNo
IGV2ZW50cyBmb3IgYSBudW1iZXIgb2YgcmVhc29uczoKKyAgICAgICAgICAxKSBzb21lIHBvcnRz
IChjaHJvbWl1bSkgYXZvaWQgc2VuZGluZyB0b3VjaCBldmVudHMgdW5sZXNzIGFic29sdXRlbHkK
KyAgICAgICAgICBuZWNlc3NhcnksIHNpbmNlIHRoZXkgaHVydCBzY3JvbGwgcGVyZm9ybWFuY2Ug
YnkgYmxvY2tpbmcgdGhyZWFkZWQKKyAgICAgICAgICBzY3JvbGxpbmcuCisgICAgICAgICAgMikg
d2l0aCB0b3VjaCwgYW5kIGVsZW1lbnQgcmVhbGx5IHNob3VsZG4ndCBiZSAnYWN0aXZlJyB3aGVu
IHRoZSB1c2VyCisgICAgICAgICAgaGFwcGVucyB0byBiZSB0b3VjaGluZyBpdCB3aGlsZSBzY3Jv
bGxpbmcuICBJbiB0aGF0IGNhc2UgdGhleSBhcmVuJ3QKKyAgICAgICAgICAnbWFuaXB1bGF0aW5n
IHRoZSBlbGVtZW50JywgdGhleSdyZSBtYW5pcHVsYXRpbmcgdGhlIHBhZ2Ugb3IgZGl2IHRoYXQK
KyAgICAgICAgICBpcyBzY3JvbGxpbmcuCisgICAgICAgICAgMykgc2ltaWxhcmx5LCB0aGVyZSBt
YXkgYmUgb3RoZXIgZ2VzdHVyZXMgdGhhdCBpbnZvbHZlIHRvdWNoaW5nIHRoZQorICAgICAgICAg
IGVsZW1lbnQgd2hpY2ggYXJlbid0IHJlYWxseSBhYm91dCBtYW5pcHVsYXRpbmcgdGhhdCBlbGVt
ZW50IChlZy4KKyAgICAgICAgICBwaW5jaCB0byB6b29tKS4KKworICAgICAgICBUZXN0OiBmYXN0
L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS5odG1sCisgICAg
ICAgIFRlc3Q6IGZhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0
YXRlLWlmcmFtZS5odG1sCisgICAgICAgICogZG9tL0dlc3R1cmVFdmVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHZXN0dXJlRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogcGFnZS9FdmVudEhh
bmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJl
RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50Lmg6CisKIDIwMTItMDktMTQgIE1p
a2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAg
ICAgW0VGTF0gQXR0ZW1wdCB0byBjcmVhdGUgYSB0aGVtZSBmb3IgMCBzaXplZCBlbGVtZW50IGxl
YWRzIHRvIGFzc2VydGlvbiBoaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZGY2MDUx
ZmIzOGVhMTYyZjhmYTFkNmRhMDhiNTNmYmMxMWM0NTg3Ni4uYjQzNzI3YzAyMjkyNmE2NzY1ZTFm
ODkzOTFiMjI3NWJiZDJhODU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMSBAQAorMjAxMi0wOS0wOCAgUmljayBCeWVycyAgPHJieWVyc0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgU2VuZCBHZXN0dXJlVGFwRG93bkNhbmNlbCB0byBXZWJDb3JlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA2MAorCisgICAgICAgIFBs
dW1iIFdlYklucHV0RXZlbnQ6OkdldHN1cmVUYXBDYW5jZWwgdG8KKyAgICAgICAgUGxhdGZvcm1J
bnB1dEV2ZW50OjpHZXN0dXJlVGFwRG93bkNhbmNlbC4gIEFmdGVyIGFsbCB0aGUgY2hyb21pdW0g
Y29kZQorICAgICAgICB3YXMgbGFuZGVkLCBpdCB3YXMgc3VnZ2VzdGVkIHRoYXQgJ1RhcERvd25D
YW5jZWwnIHdhcyBhIGJldHRlciBuYW1lCisgICAgICAgIHRoYW4gJ1RhcENhbmNlbCcgc2luY2Ug
eW91IGNhbid0IGNhbmNlbCBhIFRhcC4gIEknbSBub3QgY2hhbmdpbmcgdGhlCisgICAgICAgIFdl
YklucHV0RXZlbnQgZGVmaW5pdGlvbiBoZXJlIGJlY2F1c2UgdGhhdCB3b3VsZCBiZSBhIGJyZWFr
aW5nIGNoYW5nZQorICAgICAgICB0byBjaHJvbWl1bSwgYnV0IEkgY2FuIGRvIHRoYXQgYXMgYSBz
ZXJpZXMgb2YgZm9sbG93LXVwIENMcy4KKyAgICAgICAgKiBzcmMvV2ViSW5wdXRFdmVudENvbnZl
cnNpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXI6
OlBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRlcik6CisgICAgICAgICogc3JjL1dlYlBvcHVwTWVu
dUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVJbnB1
dEV2ZW50KToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6aGFuZGxlR2VzdHVyZUV2ZW50KToKKwogMjAxMi0wOS0xNCAgS2Vpc2hp
IEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KIAogICAgICAgICBNYWtlIHRpbWUgaW5wdXQg
bGFuZyBhdHRyaWJ1dGUgYXdhcmUgZm9yIHRlc3RpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9HZXN0dXJlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVu
dC5jcHAKaW5kZXggZDc1Y2RhYTA5NjY5ZWYzYTcxNTZjOWQ1NTYxNDE0NzNlMDY2OGJjMi4uMWU3
Yjg3ZTdhZjJhNWZjZTc0YmZlZTU2OGY3ZDNjNGU4NzM1YWM3NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0dl
c3R1cmVFdmVudC5jcHAKQEAgLTU4LDYgKzU4LDcgQEAgUGFzc1JlZlB0cjxHZXN0dXJlRXZlbnQ+
IEdlc3R1cmVFdmVudDo6Y3JlYXRlKFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBjb24K
ICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVQaW5jaEJlZ2luOgogICAgIGNhc2UgUGxh
dGZvcm1FdmVudDo6R2VzdHVyZVBpbmNoRW5kOgogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2Vz
dHVyZVBpbmNoVXBkYXRlOgorICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVRhcERvd25D
YW5jZWw6CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IGYxMDJlODU2ZGMyOTU0MmU0MzQ4YWNiYzc3MWEx
NDAxZGJmZTYzZTMuLjk0OTIxZTBiODc5ZjkzMmI3YzdhZjMxMWIxNjdlNjlkZjJhM2NmODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTIzNjksNiArMjM2OSwxOCBAQCBi
b29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZVRhcERvd24oKQogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAorYm9vbCBFdmVudEhhbmRsZXI6OnNob3VsZEdlc3R1cmVzVHJpZ2dlckFjdGl2ZSgp
Cit7CisgICAgLy8gSWYgdGhlIHBsYXRmb3JtIHdlJ3JlIG9uIHN1cHBvcnRzIEdlc3R1cmVUYXBE
b3duIGFuZCBHZXN0dXJlVGFwQ2FuY2VsIHRoZW4gd2UnbGwKKyAgICAvLyByZWx5IG9uIHRoZW0g
dG8gc2V0IHRoZSBhY3RpdmUgc3RhdGUuIFVuZm9ydHVuYXRlbHkgdGhlcmUncyBubyBnZW5lcmlj
IHdheSB0bworICAgIC8vIGtub3cgaW4gYWR2YW5jZSB3aGF0IGV2ZW50IHR5cGVzIGFyZSBzdXBw
b3J0ZWQuCisjaWYgUExBVEZPUk0oQ0hST01JVU0pICYmICFPUyhBTkRST0lEKQorICAgIHJldHVy
biB0cnVlOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogYm9vbCBFdmVu
dEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVFdmVudChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYg
Z2VzdHVyZUV2ZW50KQogewogICAgIC8vIFdlIGRvbid0IHVzZSBEb3VibGVUYXAgYXQgdGhlIG1v
bWVudCwgaXQncyBtb3N0bHkgcmVkdW5kYW50IHdpdGggdGFwIHNpbmNlIHRhcCBub3cgY29udGFp
bnMKQEAgLTIzODAsOCArMjM5MiwxOSBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVy
ZUV2ZW50KGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBnZXN0dXJlRXZlbnQpCiAgICAgaWYg
KGdlc3R1cmVFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZVNjcm9sbEVuZCB8
fCBnZXN0dXJlRXZlbnQudHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVTY3JvbGxVcGRh
dGUpCiAgICAgICAgIGV2ZW50VGFyZ2V0ID0gbV9zY3JvbGxHZXN0dXJlSGFuZGxpbmdOb2RlLmdl
dCgpOwogCi0gICAgaWYgKCFldmVudFRhcmdldCkgewotICAgICAgICBIaXRUZXN0UmVzdWx0IHJl
c3VsdCA9IGhpdFRlc3RSZXN1bHRBdFBvaW50KGdlc3R1cmVFdmVudC5wb3NpdGlvbigpLCBmYWxz
ZSwgZmFsc2UsIERvbnRIaXRUZXN0U2Nyb2xsYmFycywgSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5
IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSk7CisgICAgSGl0VGVzdFJlcXVlc3Q6OkhpdFRlc3RS
ZXF1ZXN0VHlwZSBoaXRUeXBlID0gSGl0VGVzdFJlcXVlc3Q6OlRvdWNoRXZlbnQ7CisgICAgaWYg
KGdlc3R1cmVFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZVRhcERvd24pCisg
ICAgICAgIGhpdFR5cGUgfD0gSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZTsKKyAgICBlbHNlIGlmIChn
ZXN0dXJlRXZlbnQudHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVUYXAgfHwgZ2VzdHVy
ZUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlVGFwRG93bkNhbmNlbCkKKyAg
ICAgICAgaGl0VHlwZSB8PSBIaXRUZXN0UmVxdWVzdDo6UmVsZWFzZTsKKyAgICBlbHNlCisgICAg
ICAgIGhpdFR5cGUgfD0gSGl0VGVzdFJlcXVlc3Q6Ok1vdmUgfCBIaXRUZXN0UmVxdWVzdDo6UmVh
ZE9ubHk7CisKKyAgICBpZiAoIXNob3VsZEdlc3R1cmVzVHJpZ2dlckFjdGl2ZSgpKQorICAgICAg
ICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seTsKKworICAgIGlmICghZXZlbnRU
YXJnZXQgfHwgIShoaXRUeXBlICYgSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5KSkgeworICAgICAg
ICBIaXRUZXN0UmVzdWx0IHJlc3VsdCA9IGhpdFRlc3RSZXN1bHRBdFBvaW50KGdlc3R1cmVFdmVu
dC5wb3NpdGlvbigpLCBmYWxzZSwgZmFsc2UsIERvbnRIaXRUZXN0U2Nyb2xsYmFycywgaGl0VHlw
ZSk7CiAgICAgICAgIGV2ZW50VGFyZ2V0ID0gcmVzdWx0LnRhcmdldE5vZGUoKTsKICAgICB9CiAK
QEAgLTI0MTksNiArMjQ0Miw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZl
bnQoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCkKICAgICBjYXNlIFBs
YXRmb3JtRXZlbnQ6Okdlc3R1cmVQaW5jaEJlZ2luOgogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6
R2VzdHVyZVBpbmNoRW5kOgogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVBpbmNoVXBk
YXRlOgorICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVRhcERvd25DYW5jZWw6CiAgICAg
ICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpA
QCAtMzU1Myw2ICszNTc3LDExIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50
KGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogCisjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorICAgICAgICBpZiAoc2hvdWxk
R2VzdHVyZXNUcmlnZ2VyQWN0aXZlKCkpCisgICAgICAgICAgICBoaXRUeXBlIHw9IEhpdFRlc3RS
ZXF1ZXN0OjpSZWFkT25seTsKKyNlbmRpZgorCiAgICAgICAgIC8vIEluY3JlbWVudCB0aGUgcGxh
dGZvcm0gdG91Y2ggaWQgYnkgMSB0byBhdm9pZCBzdG9yaW5nIGEga2V5IG9mIDAgaW4gdGhlIGhh
c2htYXAuCiAgICAgICAgIHVuc2lnbmVkIHRvdWNoUG9pbnRUYXJnZXRLZXkgPSBwb2ludC5pZCgp
ICsgMTsKICAgICAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiB0b3VjaFRhcmdldDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IDZkOGEwYWI3NjczYThjOGZkZmI0YzlhOTVkYmZjMWFh
ZDk1NWQ0ODcuLmI4NGExOTU5MTNjZDg0ODk2ZWY3YmMyMGE2NGQyZDdhZjZjMGUzZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMzU5LDYgKzM1OSw3IEBAIHByaXZhdGU6CiAj
aWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQogICAgIGJvb2wgaGFuZGxlR2VzdHVyZVNjcm9sbENv
cmUoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmLCBQbGF0Zm9ybVdoZWVsRXZlbnRHcmFudWxh
cml0eSwgYm9vbCBsYXRjaGVkV2hlZWwpOwogICAgIGJvb2wgaGFuZGxlR2VzdHVyZVRhcERvd24o
KTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRHZXN0dXJlc1RyaWdnZXJBY3RpdmUoKTsKICNlbmRp
ZgogCiAgICAgRnJhbWUqIG1fZnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2
ZW50LmgKaW5kZXggNTJjNjQ4OGI2YjI2NGM5YWUwZjM0MjJmZjBlODJlYjA5MTg3NmRmMC4uMTc4
MmI2MzRhNWQ0ZGQ0MWMyYjBmY2E3ZDQyMmI5MDNhODAyZGNhNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtRXZlbnQuaApAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAgICAgICAg
IEdlc3R1cmVTY3JvbGxVcGRhdGUsCiAgICAgICAgIEdlc3R1cmVUYXAsCiAgICAgICAgIEdlc3R1
cmVUYXBEb3duLAorICAgICAgICBHZXN0dXJlVGFwRG93bkNhbmNlbCwKICAgICAgICAgR2VzdHVy
ZURvdWJsZVRhcCwKICAgICAgICAgR2VzdHVyZVR3b0ZpbmdlclRhcCwKICAgICAgICAgR2VzdHVy
ZUxvbmdQcmVzcywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklu
cHV0RXZlbnRDb252ZXJzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklu
cHV0RXZlbnRDb252ZXJzaW9uLmNwcAppbmRleCAyYWZjN2RjZmU3OTk1YzI4NDNjMWMyNGEwZTc3
ODc2MjY3MWI3NzQ0Li5kZWJlM2VlMmVlZTkwYjU2YWQ4MWJlNGJiN2YxYWFkOWVjY2RkZThhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVy
c2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENv
bnZlcnNpb24uY3BwCkBAIC0xNjEsNiArMTYxLDkgQEAgUGxhdGZvcm1HZXN0dXJlRXZlbnRCdWls
ZGVyOjpQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXIoV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IFcK
ICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXBEb3duOgogICAgICAgICBtX3R5cGUg
PSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlVGFwRG93bjsKICAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwQ2FuY2VsOgorICAgICAgICBtX3R5cGUgPSBQbGF0
Zm9ybUV2ZW50OjpHZXN0dXJlVGFwRG93bkNhbmNlbDsKKyAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlRG91YmxlVGFwOgogICAgICAgICBtX3R5cGUgPSBQbGF0
Zm9ybUV2ZW50OjpHZXN0dXJlRG91YmxlVGFwOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51SW1wbC5jcHAKaW5kZXggNThhMjg1NWNk
OWIzNGRjYTFkYmUyMDFlNTczNmE2NzlmMTc2YjRkMy4uNTExMTQwMjBiZjNiYzUwZWIyZWYyZmI1
YmNiY2NjZTA2Y2M2MmJiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViUG9wdXBNZW51SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
UG9wdXBNZW51SW1wbC5jcHAKQEAgLTI3Nyw2ICsyNzcsNyBAQCBib29sIFdlYlBvcHVwTWVudUlt
cGw6OmhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYgaW5wdXRFdmVudCkKICAg
ICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVGbGluZ0NhbmNlbDoKICAgICBjYXNlIFdlYklu
cHV0RXZlbnQ6Okdlc3R1cmVUYXA6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFw
RG93bjoKKyAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXBDYW5jZWw6CiAgICAgY2Fz
ZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlRG91YmxlVGFwOgogICAgIGNhc2UgV2ViSW5wdXRFdmVu
dDo6R2VzdHVyZVR3b0ZpbmdlclRhcDoKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVM
b25nUHJlc3M6CkBAIC0yODgsNyArMjg5LDYgQEAgYm9vbCBXZWJQb3B1cE1lbnVJbXBsOjpoYW5k
bGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmIGlucHV0RXZlbnQpCiAgICAgY2FzZSBX
ZWJJbnB1dEV2ZW50OjpVbmRlZmluZWQ6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpNb3VzZUVu
dGVyOgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6Q29udGV4dE1lbnU6Ci0gICAgY2FzZSBXZWJJ
bnB1dEV2ZW50OjpHZXN0dXJlVGFwQ2FuY2VsOgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcAppbmRleCBkMThjZDIzNmNlZDQ5MmQzNWY3MTMwMmIxODM2MDZjYzI1ZDU5NDMzLi45
NzQxNmUwMjQwMzI4ZjM2NzVkNGQxZmIxZjBhMjRjZDY3YmU3Mjc2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC03NjUsMTUgKzc2NSwxMiBAQCBib29s
IFdlYlZpZXdJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVyZUV2ZW50JiBl
dmVudCkKICAgICAgICAgbV9jbGllbnQtPmNhbmNlbFNjaGVkdWxlZENvbnRlbnRJbnRlbnRzKCk7
CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlU2Nyb2xsRW5kOgogICAgIGNhc2UgV2Vi
SW5wdXRFdmVudDo6R2VzdHVyZVNjcm9sbFVwZGF0ZToKKyAgICBjYXNlIFdlYklucHV0RXZlbnQ6
Okdlc3R1cmVUYXBDYW5jZWw6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlUGluY2hF
bmQ6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlUGluY2hVcGRhdGU6IHsKICAgICAg
ICAgUGxhdGZvcm1HZXN0dXJlRXZlbnRCdWlsZGVyIHBsYXRmb3JtRXZlbnQobWFpbkZyYW1lSW1w
bCgpLT5mcmFtZVZpZXcoKSwgZXZlbnQpOwogICAgICAgICByZXR1cm4gbWFpbkZyYW1lSW1wbCgp
LT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlR2VzdHVyZUV2ZW50KHBsYXRmb3JtRXZl
bnQpOwogICAgIH0KLSAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXBDYW5jZWw6Ci0g
ICAgICAgIC8vIEZJWE1FOiBVcGRhdGUgV2ViQ29yZSB0byBoYW5kbGUgdGhpcyBldmVudCBhZnRl
ciBjaHJvbWl1bSBoYXMgYmVlbiB1cGRhdGVkIHRvIHNlbmQgaXQKLSAgICAgICAgLy8gaHR0cDov
L3drYi51Zy85NjA2MAotICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGRjNDg4M2YyYzk4NzA5MzQ3NTdlZTgyNTlmZWVj
MDg4NzMxYTk4NTYuLjlhMjFkNDVlMmU0OGQ3MjJlN2ZkYTg3Mjc5MDk3NmIxNTJlZjVmNmUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAxMi0wOS0wOCAgUmljayBCeWVycyAgPHJieWVyc0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgQWRkIGhhbmRsaW5nIG9mIG5ldyBHZXN0dXJlVGFwQ2FuY2VsIGluIERSVAorCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjE4MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHA6CisgICAgICAgIChUZXN0V2ViUGx1Z2lu
OjpoYW5kbGVJbnB1dEV2ZW50KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9F
dmVudFNlbmRlci5jcHA6CisgICAgICAgIChFdmVudFNlbmRlcjo6Z2VzdHVyZVRhcENhbmNlbCk6
CisKIDIwMTItMDktMTQgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KIAogICAgICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9s
bGVyLnNldFN0b3BQcm92aXNpb25hbEZyYW1lTG9hZHMKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvRXZlbnRTZW5kZXIuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9FdmVudFNlbmRlci5jcHAKaW5kZXggZDVl
YWFjNGFkYTFkZGU1OTZjMDhhODYwZDkzNWFmMjJlNmJiOWVmYy4uMjM2MDEyODY1MWM2MGY5OWZm
MjVjN2RlYmU2MDc3NTI5NTE2OTM3YyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9FdmVudFNlbmRlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9FdmVudFNlbmRlci5jcHAKQEAgLTI4Nyw2ICsyODcs
NyBAQCBFdmVudFNlbmRlcjo6RXZlbnRTZW5kZXIoKQogICAgIGJpbmRNZXRob2QoImdlc3R1cmVT
Y3JvbGxVcGRhdGUiLCAmRXZlbnRTZW5kZXI6Omdlc3R1cmVTY3JvbGxVcGRhdGUpOwogICAgIGJp
bmRNZXRob2QoImdlc3R1cmVUYXAiLCAmRXZlbnRTZW5kZXI6Omdlc3R1cmVUYXApOwogICAgIGJp
bmRNZXRob2QoImdlc3R1cmVUYXBEb3duIiwgJkV2ZW50U2VuZGVyOjpnZXN0dXJlVGFwRG93bik7
CisgICAgYmluZE1ldGhvZCgiZ2VzdHVyZVRhcENhbmNlbCIsICZFdmVudFNlbmRlcjo6Z2VzdHVy
ZVRhcENhbmNlbCk7CiAgICAgYmluZE1ldGhvZCgiZ2VzdHVyZUxvbmdQcmVzcyIsICZFdmVudFNl
bmRlcjo6Z2VzdHVyZUxvbmdQcmVzcyk7CiAgICAgYmluZE1ldGhvZCgiZ2VzdHVyZVR3b0Zpbmdl
clRhcCIsICZFdmVudFNlbmRlcjo6Z2VzdHVyZVR3b0ZpbmdlclRhcCk7CiAgICAgYmluZE1ldGhv
ZCgiem9vbVBhZ2VJbiIsICZFdmVudFNlbmRlcjo6em9vbVBhZ2VJbik7CkBAIC0xMTE5LDYgKzEx
MjAsMTIgQEAgdm9pZCBFdmVudFNlbmRlcjo6Z2VzdHVyZVRhcERvd24oY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHIKICAgICBnZXN0dXJlRXZlbnQoV2ViSW5w
dXRFdmVudDo6R2VzdHVyZVRhcERvd24sIGFyZ3VtZW50cyk7CiB9CiAKK3ZvaWQgRXZlbnRTZW5k
ZXI6Omdlc3R1cmVUYXBDYW5jZWwoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENw
cFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICByZXN1bHQtPnNldE51bGwoKTsKKyAgICBnZXN0dXJl
RXZlbnQoV2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcENhbmNlbCwgYXJndW1lbnRzKTsKK30KKwog
dm9pZCBFdmVudFNlbmRlcjo6Z2VzdHVyZUxvbmdQcmVzcyhjb25zdCBDcHBBcmd1bWVudExpc3Qm
IGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIHJlc3VsdC0+c2V0TnVsbCgp
OwpAQCAtMTE4Miw2ICsxMTg5LDEwIEBAIHZvaWQgRXZlbnRTZW5kZXI6Omdlc3R1cmVFdmVudChX
ZWJJbnB1dEV2ZW50OjpUeXBlIHR5cGUsIGNvbnN0IENwcEFyZ3VtZW50TGlzdCYKICAgICAgICAg
ZXZlbnQueCA9IHBvaW50Lng7CiAgICAgICAgIGV2ZW50LnkgPSBwb2ludC55OwogICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXBDYW5jZWw6CisgICAgICAg
IGV2ZW50LnggPSBwb2ludC54OworICAgICAgICBldmVudC55ID0gcG9pbnQueTsKKyAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlTG9uZ1ByZXNzOgogICAgICAg
ICBldmVudC54ID0gcG9pbnQueDsKICAgICAgICAgZXZlbnQueSA9IHBvaW50Lnk7CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2ZW50U2VuZGVy
LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2ZW50U2VuZGVy
LmgKaW5kZXggODI4ZTdjODQyNjM3NTkxNGQ4YzFmYWVmMGMzMDdjNGM1YWUwOTliNS4uZTY3OTRh
MDc3MGJkODhmNzRmZTUwY2EyZjcxNjYyMWQ0MTk4NzljYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9FdmVudFNlbmRlci5oCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvRXZlbnRTZW5kZXIuaApAQCAtMTA2
LDYgKzEwNiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdlc3R1cmVTY3JvbGxVcGRhdGUoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgZ2VzdHVyZVRhcChjb25z
dCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBnZXN0dXJlVGFwRG93
bihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBnZXN0dXJl
VGFwQ2FuY2VsKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lk
IGdlc3R1cmVMb25nUHJlc3MoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwog
ICAgIHZvaWQgZ2VzdHVyZVR3b0ZpbmdlclRhcChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBW
YXJpYW50Kik7CiAgICAgdm9pZCBnZXN0dXJlRXZlbnQoV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpU
eXBlLCBjb25zdCBDcHBBcmd1bWVudExpc3QmKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAt
YWN0aXZlLXN0YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOTk5ZWJjZDFkZmQxMzNhMDdi
NDI2MzEyOGU5YjJhMzBhODMxYzM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTMgQEAKK0dlc3R1cmVzIGdvIGhlcmUKK1Rlc3RzIHRoYXQgdGFwIGdl
c3R1cmUgZXZlbnRzIHNldCBhbmQgY2xlYXIgdGhlIGFjdGl2ZSBzdGF0ZSBvZiBlbGVtZW50cy4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1NlZSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwNjAgZm9yIGRldGFpbHMKKworR2VzdHVyZVRhcERvd24g
aXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIHBsYXRmb3JtCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtaWZyYW1lLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVy
ZS10YXAtYWN0aXZlLXN0YXRlLWlmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc3MmJl
N2ZjNDVlZjc5MWYyMGU0OWM4NTBjMzUzYjJlMzJhODA2NwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0
YXRlLWlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorCitUZXN0cyB0aGF0IHRh
cCBnZXN0dXJlIGV2ZW50cyBzZXQgYW5kIGNsZWFyIHRoZSBhY3RpdmUgc3RhdGUgb2YgZWxlbWVu
dHMsIGV2ZW4gd2hlbiBpbnNpZGUgYW4gaWZyYW1lIGFuZCB0aGUgZG9jdW1lbnQgaXMgc2Nyb2xs
ZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTZWUgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDYwIGZvciBkZXRhaWxzCisKK0dlc3R1cmVUYXBE
b3duIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBwbGF0Zm9ybQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWlmcmFt
ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRh
cC1hY3RpdmUtc3RhdGUtaWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmJlZmI0MmZiNDlkNzU0NWI0
Mzk2ZTM1ODNmYzBlMjhiNzBiYzFlMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWlmcmFtZS5o
dG1sCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHls
ZSB0eXBlPSJ0ZXh0L2NzcyI+CisjZnJhbWUgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAg
ICB0b3A6IDMwMHB4OworICAgIGxlZnQ6IDQwMHB4OworICAgIGhlaWdodDogMzAwMHB4OworfQor
Cis8L3N0eWxlPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0ncmVzb3VyY2VzL2dlc3R1cmUtdGFwLWFj
dGl2ZS1zdGF0ZS1pZnJhbWUtaW5uZXIuaHRtbCcgaWQ9J2ZyYW1lJz4KKzwvaWZyYW1lPgorCis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxwPlNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTYwNjAgZm9yIGRldGFpbHM8L3A+CisKKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorCis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB0YXAgZ2VzdHVy
ZSBldmVudHMgc2V0IGFuZCBjbGVhciB0aGUgYWN0aXZlIHN0YXRlIG9mIGVsZW1lbnRzLCBldmVu
IHdoZW4gaW5zaWRlIGFuIGlmcmFtZSBhbmQgdGhlIGRvY3VtZW50IGlzIHNjcm9sbGVkLiIpOwor
Cit2YXIgaXNCb3hBY3RpdmU7CitmdW5jdGlvbiBydW5UZXN0cyhiYSkKK3sKKyAgICBpc0JveEFj
dGl2ZSA9IGJhOworCisgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgZGVi
dWcoJ1RoaXMgdGVzdCByZXF1aXJlcyBEUlQuJyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBpZiAoIWV2ZW50U2VuZGVyLmdlc3R1cmVUYXBEb3duKSB7CisgICAgICAgIGRlYnVnKCdH
ZXN0dXJlVGFwRG93biBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgcGxhdGZvcm0nKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICAvLyBTY3JvbGwgc28gdGhlIGJveCBpcyBhdCB0
aGUgdG9wCisgICAgd2luZG93LnNjcm9sbFRvKDAsIDQwMCk7CisKKyAgICBkZWJ1ZygiVmVyaWZ5
IGFjdGl2ZSBpc24ndCBpbml0aWFsbHkgc2V0Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiaXNCb3hB
Y3RpdmUoKSIpOworCisgICAgZGVidWcoIlZlcmlmeSB0YXBkb3duLHRhcCBzZXRzIGFuZCBjbGVh
cnMgYWN0aXZlIik7CisgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVRhcERvd24oNDUwLCA1MCk7Cisg
ICAgc2hvdWxkQmVUcnVlKCJpc0JveEFjdGl2ZSgpIik7CisgICAgZXZlbnRTZW5kZXIuZ2VzdHVy
ZVRhcCg0NTAsIDUwKTsKKyAgICBzaG91bGRCZUZhbHNlKCJpc0JveEFjdGl2ZSgpIik7CisKKyAg
ICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
fQorCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKK30KKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0
ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRh
cC1hY3RpdmUtc3RhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODY1ZTlkZjQxZTY0MThhYzMzNWVkNzlm
NzRjN2NlNmY1Mjc4MTUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUuaHRtbApAQCAtMCwwICsx
LDEwNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlIHR5cGU9InRleHQv
Y3NzIj4KKyNib3ggeworICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgd2lkdGg6IDMw
MHB4OworICAgIGhlaWdodDogMTAwcHg7Cit9CisKKyNib3g6YWN0aXZlIHsKKyAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiByZWQ7Cit9CisKKzwvc3R5bGU+Cis8Ym9keT4KKzxkaXYgaWQ9ImJveCI+R2Vz
dHVyZXMgZ28gaGVyZTwvZGl2PgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxwPlNlZSBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwNjAgZm9yIGRldGFpbHM8
L3A+CisKKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgordmFyIGNvbG9yOwor
ZnVuY3Rpb24gaXNCb3hBY3RpdmUoKQoreworICAgIC8vIFRoZXNlIG5lZWQgdG8gbWF0Y2ggdGhl
IGJhY2tncm91bmQtY29sb3IgdXNlZCBhYm92ZSwgYWZ0ZXIgcm91bmQtdHJpcHBpbmcuCisgICAg
dmFyIGRlZmF1bHRDb2xvciA9ICJyZ2IoMCwgMCwgMjU1KSI7CisgICAgdmFyIGFjdGl2ZUNvbG9y
ID0gInJnYigyNTUsIDAsIDApIjsKKworICAgIHZhciBiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2JveCcpOworICAgIGNvbG9yID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoYikuYmFja2dy
b3VuZENvbG9yOworICAgIGlmIChjb2xvciA9PSBhY3RpdmVDb2xvcikKKyAgICAgIHJldHVybiB0
cnVlOworICAgIGlmIChjb2xvciAhPSBkZWZhdWx0Q29sb3IpCisgICAgICB0ZXN0RmFpbGVkKCdH
b3QgdW5leHBlY3RlZCBiYWNrZ3JvdW5kQ29sb3I6ICcgKyBjb2xvcik7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB0YXAgZ2VzdHVyZSBldmVudHMgc2V0
IGFuZCBjbGVhciB0aGUgYWN0aXZlIHN0YXRlIG9mIGVsZW1lbnRzLiIpOworCitmdW5jdGlvbiBy
dW5UZXN0cygpCit7CisgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgZGVi
dWcoJ1RoaXMgdGVzdCByZXF1aXJlcyBEUlQuJyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBpZiAoIWV2ZW50U2VuZGVyLmdlc3R1cmVUYXBEb3duKSB7CisgICAgICAgIGRlYnVnKCdH
ZXN0dXJlVGFwRG93biBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgcGxhdGZvcm0nKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGRlYnVnKCJWZXJpZnkgYWN0aXZlIGlzbid0IGluaXRp
YWxseSBzZXQiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJpc0JveEFjdGl2ZSgpIik7CisKKyAgICBk
ZWJ1ZygiVmVyaWZ5IHRhcGRvd24sdGFwIHNldHMgYW5kIGNsZWFycyBhY3RpdmUiKTsKKyAgICBl
dmVudFNlbmRlci5nZXN0dXJlVGFwRG93big1MCwgNTApOworICAgIHNob3VsZEJlVHJ1ZSgiaXNC
b3hBY3RpdmUoKSIpOworICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVUYXAoNTAsIDUwKTsKKyAgICBz
aG91bGRCZUZhbHNlKCJpc0JveEFjdGl2ZSgpIik7CisKKyAgICBkZWJ1ZygiVmVyaWZ5IHRhcGRv
d24sdGFwY2FuY2VsIG9uIHRoZSBlbGVtZW50IHNldHMgYW5kIGNsZWFycyBhY3RpdmUiKTsKKyAg
ICBldmVudFNlbmRlci5nZXN0dXJlVGFwRG93big1MCwgNTApOworICAgIHNob3VsZEJlVHJ1ZSgi
aXNCb3hBY3RpdmUoKSIpOworICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVUYXBDYW5jZWwoNTAsIDUw
KTsKKyAgICBzaG91bGRCZUZhbHNlKCJpc0JveEFjdGl2ZSgpIik7CisKKyAgICBkZWJ1ZygiVmVy
aWZ5IHRhcCBlbHNld2hlcmUgc3RpbGwgY2xlYXJzIGFjdGl2ZSIpOworICAgIGV2ZW50U2VuZGVy
Lmdlc3R1cmVUYXBEb3duKDUwLCA1MCk7CisgICAgc2hvdWxkQmVUcnVlKCJpc0JveEFjdGl2ZSgp
Iik7CisgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVRhcCg0MDAsIDI1MCk7CisgICAgc2hvdWxkQmVG
YWxzZSgiaXNCb3hBY3RpdmUoKSIpOworCisgICAgZGVidWcoIlZlcmlmeSB0YXBDYW5jZWwgZWxz
ZXdoZXJlIHN0aWxsIGNsZWFycyBhY3RpdmUiKTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlVGFw
RG93big1MCwgNTApOworICAgIHNob3VsZEJlVHJ1ZSgiaXNCb3hBY3RpdmUoKSIpOworICAgIGV2
ZW50U2VuZGVyLmdlc3R1cmVUYXBDYW5jZWwoNDAwLCAyNTApOworICAgIHNob3VsZEJlRmFsc2Uo
ImlzQm94QWN0aXZlKCkiKTsKKworICAgIGRlYnVnKCJWZXJpZnkgdGhhdCB0b3VjaHN0YXJ0IGRv
ZXNuJ3QgdHJpZ2dlciBhY3RpdmUgc3RhdGUiKTsKKyAgICBldmVudFNlbmRlci5hZGRUb3VjaFBv
aW50KDUwLCA1MCk7CisgICAgZXZlbnRTZW5kZXIudG91Y2hTdGFydCgpOworICAgIHNob3VsZEJl
RmFsc2UoImlzQm94QWN0aXZlKCkiKTsKKyAgICBldmVudFNlbmRlci5yZWxlYXNlVG91Y2hQb2lu
dCgwKTsKKyAgICBldmVudFNlbmRlci50b3VjaEVuZCgpOworCisgICAgZGVidWcoIlZlcmlmeSB0
aGF0IHRvdWNoc3RhcnQvdG91Y2hlbmQgZG9lc24ndCBjYW5jZWwgYWN0aXZlIik7CisgICAgZXZl
bnRTZW5kZXIuZ2VzdHVyZVRhcERvd24oNTAsIDUwKTsKKyAgICBzaG91bGRCZVRydWUoImlzQm94
QWN0aXZlKCkiKTsKKyAgICBldmVudFNlbmRlci5hZGRUb3VjaFBvaW50KDUwLCA1MCk7CisgICAg
ZXZlbnRTZW5kZXIudG91Y2hTdGFydCgpOworICAgIHNob3VsZEJlVHJ1ZSgiaXNCb3hBY3RpdmUo
KSIpOworICAgIGV2ZW50U2VuZGVyLnJlbGVhc2VUb3VjaFBvaW50KDApOworICAgIGV2ZW50U2Vu
ZGVyLnRvdWNoRW5kKCk7CisgICAgc2hvdWxkQmVUcnVlKCJpc0JveEFjdGl2ZSgpIik7CisgICAg
ZXZlbnRTZW5kZXIuZ2VzdHVyZVRhcCg1MCwgNTApOworICAgIHNob3VsZEJlRmFsc2UoImlzQm94
QWN0aXZlKCkiKTsKK30KKworcnVuVGVzdHMoKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVy
ZS9yZXNvdXJjZXMvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWlmcmFtZS1pbm5lci5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9yZXNvdXJjZXMvZ2VzdHVyZS10
YXAtYWN0aXZlLXN0YXRlLWlmcmFtZS1pbm5lci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwMWY5ZGFmY2Nm
OGFiNTNlNjBhMjA0NjIxOTllMzk3MDQ3MDg1MTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3Jlc291cmNlcy9nZXN0dXJlLXRhcC1hY3Rp
dmUtc3RhdGUtaWZyYW1lLWlubmVyLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjYm94IHsKKyAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CisgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICB3aWR0aDogMzAw
cHg7CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB0b3A6IDEwMHB4OworfQorCisjYm94OmFjdGl2
ZSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworfQorCis8L3N0eWxlPgorPHNjcmlwdD4K
K3ZhciBjb2xvcjsKK2Z1bmN0aW9uIGlzQm94QWN0aXZlKCkKK3sKKyAgICAvLyBUaGVzZSBuZWVk
IHRvIG1hdGNoIHRoZSBiYWNrZ3JvdW5kLWNvbG9yIHVzZWQgYWJvdmUsIGFmdGVyIHJvdW5kLXRy
aXBwaW5nLgorICAgIHZhciBkZWZhdWx0Q29sb3IgPSAicmdiKDAsIDAsIDI1NSkiOworICAgIHZh
ciBhY3RpdmVDb2xvciA9ICJyZ2IoMjU1LCAwLCAwKSI7CisKKyAgICB2YXIgYiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdib3gnKTsKKyAgICBjb2xvciA9IGdldENvbXB1dGVkU3R5bGUoYiku
YmFja2dyb3VuZENvbG9yOworICAgIGlmIChjb2xvciA9PSBhY3RpdmVDb2xvcikKKyAgICAgIHJl
dHVybiB0cnVlOworICAgIGlmIChjb2xvciAhPSBkZWZhdWx0Q29sb3IpCisgICAgICB0aHJvdyAi
R290IHVuZXhwZWN0ZWQgYmFja2dyb3VuZENvbG9yOiAiICsgY29sb3I7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0ncGFyZW50LnJ1blRlc3RzKGlzQm94
QWN0aXZlKSc+Cis8ZGl2IGlkPSdib3gnPkdlc3R1cmVzIGdvIGhlcmU8L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWFuZHJv
aWQvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tYW5kcm9pZC9mYXN0L2V2
ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTk5OWViY2QxZGZkMTMzYTA3YjQyNjMxMjhlOWIyYTMwYTgzMWMzNwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWFuZHJvaWQvZmFz
dC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTMgQEAKK0dlc3R1cmVzIGdvIGhlcmUKK1Rlc3RzIHRoYXQgdGFwIGdl
c3R1cmUgZXZlbnRzIHNldCBhbmQgY2xlYXIgdGhlIGFjdGl2ZSBzdGF0ZSBvZiBlbGVtZW50cy4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1NlZSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwNjAgZm9yIGRldGFpbHMKKworR2VzdHVyZVRhcERvd24g
aXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIHBsYXRmb3JtCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tYW5kcm9pZC9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUt
dGFwLWFjdGl2ZS1zdGF0ZS1pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tYW5kcm9pZC9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFw
LWFjdGl2ZS1zdGF0ZS1pZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3NzJiZTdmYzQ1
ZWY3OTFmMjBlNDljODUwYzM1M2IyZTMyYTgwNjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1hbmRyb2lkL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUv
Z2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MyBAQAorCitUZXN0cyB0aGF0IHRhcCBnZXN0dXJlIGV2ZW50cyBzZXQgYW5kIGNsZWFyIHRoZSBh
Y3RpdmUgc3RhdGUgb2YgZWxlbWVudHMsIGV2ZW4gd2hlbiBpbnNpZGUgYW4gaWZyYW1lIGFuZCB0
aGUgZG9jdW1lbnQgaXMgc2Nyb2xsZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDYwIGZvciBk
ZXRhaWxzCisKK0dlc3R1cmVUYXBEb3duIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBwbGF0Zm9y
bQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNo
L2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10
YXAtYWN0aXZlLXN0YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMzM5YzA4YmNhMzQzZWQ0
NTkwMjhjYzhiNmRlNWEyMDUxYzJlMjc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1h
Y3RpdmUtc3RhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzMgQEAKK0dlc3R1cmVzIGdvIGhl
cmUKK1Rlc3RzIHRoYXQgdGFwIGdlc3R1cmUgZXZlbnRzIHNldCBhbmQgY2xlYXIgdGhlIGFjdGl2
ZSBzdGF0ZSBvZiBlbGVtZW50cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Nl
ZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwNjAgZm9yIGRldGFp
bHMKKworVmVyaWZ5IGFjdGl2ZSBpc24ndCBpbml0aWFsbHkgc2V0CitQQVNTIGlzQm94QWN0aXZl
KCkgaXMgZmFsc2UKK1ZlcmlmeSB0YXBkb3duLHRhcCBzZXRzIGFuZCBjbGVhcnMgYWN0aXZlCitQ
QVNTIGlzQm94QWN0aXZlKCkgaXMgdHJ1ZQorUEFTUyBpc0JveEFjdGl2ZSgpIGlzIGZhbHNlCitW
ZXJpZnkgdGFwZG93bix0YXBjYW5jZWwgb24gdGhlIGVsZW1lbnQgc2V0cyBhbmQgY2xlYXJzIGFj
dGl2ZQorUEFTUyBpc0JveEFjdGl2ZSgpIGlzIHRydWUKK1BBU1MgaXNCb3hBY3RpdmUoKSBpcyBm
YWxzZQorVmVyaWZ5IHRhcCBlbHNld2hlcmUgc3RpbGwgY2xlYXJzIGFjdGl2ZQorUEFTUyBpc0Jv
eEFjdGl2ZSgpIGlzIHRydWUKK1BBU1MgaXNCb3hBY3RpdmUoKSBpcyBmYWxzZQorVmVyaWZ5IHRh
cENhbmNlbCBlbHNld2hlcmUgc3RpbGwgY2xlYXJzIGFjdGl2ZQorUEFTUyBpc0JveEFjdGl2ZSgp
IGlzIHRydWUKK1BBU1MgaXNCb3hBY3RpdmUoKSBpcyBmYWxzZQorVmVyaWZ5IHRoYXQgdG91Y2hz
dGFydCBkb2Vzbid0IHRyaWdnZXIgYWN0aXZlIHN0YXRlCitQQVNTIGlzQm94QWN0aXZlKCkgaXMg
ZmFsc2UKK1ZlcmlmeSB0aGF0IHRvdWNoc3RhcnQvdG91Y2hlbmQgZG9lc24ndCBjYW5jZWwgYWN0
aXZlCitQQVNTIGlzQm94QWN0aXZlKCkgaXMgdHJ1ZQorUEFTUyBpc0JveEFjdGl2ZSgpIGlzIHRy
dWUKK1BBU1MgaXNCb3hBY3RpdmUoKSBpcyB0cnVlCitQQVNTIGlzQm94QWN0aXZlKCkgaXMgZmFs
c2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy90b3Vj
aC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1pZnJhbWUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9n
ZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtaWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
MDQ4MWUwNjc2NjJkMThiN2I0M2JiMWQ5ZmZjNDNmOWE5MzBlMjBhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVy
ZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtaWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE3IEBACisKK1Rlc3RzIHRoYXQgdGFwIGdlc3R1cmUgZXZlbnRzIHNldCBhbmQgY2xlYXIgdGhl
IGFjdGl2ZSBzdGF0ZSBvZiBlbGVtZW50cywgZXZlbiB3aGVuIGluc2lkZSBhbiBpZnJhbWUgYW5k
IHRoZSBkb2N1bWVudCBpcyBzY3JvbGxlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1NlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwNjAgZm9y
IGRldGFpbHMKKworVmVyaWZ5IGFjdGl2ZSBpc24ndCBpbml0aWFsbHkgc2V0CitQQVNTIGlzQm94
QWN0aXZlKCkgaXMgZmFsc2UKK1ZlcmlmeSB0YXBkb3duLHRhcCBzZXRzIGFuZCBjbGVhcnMgYWN0
aXZlCitQQVNTIGlzQm94QWN0aXZlKCkgaXMgdHJ1ZQorUEFTUyBpc0JveEFjdGl2ZSgpIGlzIGZh
bHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91
Y2gvdG91Y2gtYWN0aXZlLXN0YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNoL3RvdWNoLWFjdGl2ZS1zdGF0ZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNWM4ZjZhZjRhNWU5MzBlMTlmOTczNzI1MWMxMDQ3OWMzM2M5NzA1MAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZl
bnRzL3RvdWNoL3RvdWNoLWFjdGl2ZS1zdGF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBA
QAorRkFJTAorVGVzdCB0b3VjaGVzIHNldCB0aGUgYWN0aXZlIHN0YXRlLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164183</attachid>
            <date>2012-09-14 10:25:33 -0700</date>
            <delta_ts>2012-09-17 09:33:21 -0700</delta_ts>
            <desc>Merge with trunk</desc>
            <filename>bug-96060-20120914132504.patch</filename>
            <type>text/plain</type>
            <size>26765</size>
            <attacher name="Rick Byers">rbyers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NjI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTE5YmE2NDFmMmJmZTNh
ZTJmNmJjMDg4NzhjNGE0M2IxNTExZDdlMy4uNGNhMmZiNjliYTA5NTUwM2Q5Y2UyNWExOWFlYThi
ZGQ2Yzc4YzMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA5LTA4ICBSaWNr
IEJ5ZXJzICA8cmJ5ZXJzQGNocm9taXVtLm9yZz4KKworICAgICAgICBBbGxvdyBnZXN0dXJlIGV2
ZW50cyB0byBzZXQgYWN0aXZlL2hvdmVyIHN0YXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIEdlc3R1cmVUYXBEb3duQ2FuY2VsIGFzIGEgbmV3
IFBsYXRmb3JtR2VzdHVyZUV2ZW50IHR5cGUuICBPbiBwb3J0cworICAgICAgICB0aGF0IHN1cHBv
cnQgZ2VzdHVyZSBldmVudHMsIHVzZSBHZXN0dXJlVGFwRG93biB0byB0cmlnZ2VyIGFjdGl2ZS9o
b3ZlcgorICAgICAgICBzdGF0ZXMsIGFuZCBHZXN0dXJlVGFwL0dlc3R1cmVUYXBEb3duQ2FuY2Vs
IHRvIGNsZWFyIHRoZW0uICBUaGlzIGlzCisgICAgICAgIHN1cGVyaW9yIHRvIHVzaW5nIHRvdWNo
IGV2ZW50cyBmb3IgYSBudW1iZXIgb2YgcmVhc29uczoKKyAgICAgICAgICAxKSBzb21lIHBvcnRz
IChjaHJvbWl1bSkgYXZvaWQgc2VuZGluZyB0b3VjaCBldmVudHMgdW5sZXNzIGFic29sdXRlbHkK
KyAgICAgICAgICBuZWNlc3NhcnksIHNpbmNlIHRoZXkgaHVydCBzY3JvbGwgcGVyZm9ybWFuY2Ug
YnkgYmxvY2tpbmcgdGhyZWFkZWQKKyAgICAgICAgICBzY3JvbGxpbmcuCisgICAgICAgICAgMikg
d2l0aCB0b3VjaCwgYW5kIGVsZW1lbnQgcmVhbGx5IHNob3VsZG4ndCBiZSAnYWN0aXZlJyB3aGVu
IHRoZSB1c2VyCisgICAgICAgICAgaGFwcGVucyB0byBiZSB0b3VjaGluZyBpdCB3aGlsZSBzY3Jv
bGxpbmcuICBJbiB0aGF0IGNhc2UgdGhleSBhcmVuJ3QKKyAgICAgICAgICAnbWFuaXB1bGF0aW5n
IHRoZSBlbGVtZW50JywgdGhleSdyZSBtYW5pcHVsYXRpbmcgdGhlIHBhZ2Ugb3IgZGl2IHRoYXQK
KyAgICAgICAgICBpcyBzY3JvbGxpbmcuCisgICAgICAgICAgMykgc2ltaWxhcmx5LCB0aGVyZSBt
YXkgYmUgb3RoZXIgZ2VzdHVyZXMgdGhhdCBpbnZvbHZlIHRvdWNoaW5nIHRoZQorICAgICAgICAg
IGVsZW1lbnQgd2hpY2ggYXJlbid0IHJlYWxseSBhYm91dCBtYW5pcHVsYXRpbmcgdGhhdCBlbGVt
ZW50IChlZy4KKyAgICAgICAgICBwaW5jaCB0byB6b29tKS4KKworICAgICAgICBUZXN0OiBmYXN0
L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS5odG1sCisgICAg
ICAgIFRlc3Q6IGZhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0
YXRlLWlmcmFtZS5odG1sCisgICAgICAgICogZG9tL0dlc3R1cmVFdmVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHZXN0dXJlRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogcGFnZS9FdmVudEhh
bmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJl
RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50Lmg6CisKIDIwMTItMDktMTQgIE1p
Y2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNoZWxhbmdlbG9Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBVc2UgYXJyYXlzIGluIHNoYWRlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZGY2
MDUxZmIzOGVhMTYyZjhmYTFkNmRhMDhiNTNmYmMxMWM0NTg3Ni4uYjQzNzI3YzAyMjkyNmE2NzY1
ZTFmODkzOTFiMjI3NWJiZDJhODU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxMi0wOS0wOCAgUmljayBCeWVycyAgPHJieWVyc0BjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgU2VuZCBHZXN0dXJlVGFwRG93bkNhbmNlbCB0byBXZWJDb3JlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA2MAorCisgICAgICAg
IFBsdW1iIFdlYklucHV0RXZlbnQ6OkdldHN1cmVUYXBDYW5jZWwgdG8KKyAgICAgICAgUGxhdGZv
cm1JbnB1dEV2ZW50OjpHZXN0dXJlVGFwRG93bkNhbmNlbC4gIEFmdGVyIGFsbCB0aGUgY2hyb21p
dW0gY29kZQorICAgICAgICB3YXMgbGFuZGVkLCBpdCB3YXMgc3VnZ2VzdGVkIHRoYXQgJ1RhcERv
d25DYW5jZWwnIHdhcyBhIGJldHRlciBuYW1lCisgICAgICAgIHRoYW4gJ1RhcENhbmNlbCcgc2lu
Y2UgeW91IGNhbid0IGNhbmNlbCBhIFRhcC4gIEknbSBub3QgY2hhbmdpbmcgdGhlCisgICAgICAg
IFdlYklucHV0RXZlbnQgZGVmaW5pdGlvbiBoZXJlIGJlY2F1c2UgdGhhdCB3b3VsZCBiZSBhIGJy
ZWFraW5nIGNoYW5nZQorICAgICAgICB0byBjaHJvbWl1bSwgYnV0IEkgY2FuIGRvIHRoYXQgYXMg
YSBzZXJpZXMgb2YgZm9sbG93LXVwIENMcy4KKyAgICAgICAgKiBzcmMvV2ViSW5wdXRFdmVudENv
bnZlcnNpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxk
ZXI6OlBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRlcik6CisgICAgICAgICogc3JjL1dlYlBvcHVw
TWVudUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVJ
bnB1dEV2ZW50KToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6aGFuZGxlR2VzdHVyZUV2ZW50KToKKwogMjAxMi0wOS0xNCAgS2Vp
c2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KIAogICAgICAgICBNYWtlIHRpbWUgaW5w
dXQgbGFuZyBhdHRyaWJ1dGUgYXdhcmUgZm9yIHRlc3RpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9HZXN0dXJlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVF
dmVudC5jcHAKaW5kZXggZDc1Y2RhYTA5NjY5ZWYzYTcxNTZjOWQ1NTYxNDE0NzNlMDY2OGJjMi4u
MWU3Yjg3ZTdhZjJhNWZjZTc0YmZlZTU2OGY3ZDNjNGU4NzM1YWM3NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0dlc3R1cmVFdmVudC5jcHAKQEAgLTU4LDYgKzU4LDcgQEAgUGFzc1JlZlB0cjxHZXN0dXJlRXZl
bnQ+IEdlc3R1cmVFdmVudDo6Y3JlYXRlKFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBj
b24KICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVQaW5jaEJlZ2luOgogICAgIGNhc2Ug
UGxhdGZvcm1FdmVudDo6R2VzdHVyZVBpbmNoRW5kOgogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6
R2VzdHVyZVBpbmNoVXBkYXRlOgorICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVRhcERv
d25DYW5jZWw6CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDQ4ZDA3OWUyMmI3MWM0MWE1ZDkzMDRkOGJl
MjFiYTI2YjhiMzg5MjEuLmM5YmU5ZjQ5OTFkOTBhMGMyM2EyMTMzMjg3NGM0ZDY5MWJjZDhhMTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTIzNjksNiArMjM2OSwxOCBA
QCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZVRhcERvd24oKQogICAgIHJldHVybiBm
YWxzZTsKIH0KIAorYm9vbCBFdmVudEhhbmRsZXI6OnNob3VsZEdlc3R1cmVzVHJpZ2dlckFjdGl2
ZSgpCit7CisgICAgLy8gSWYgdGhlIHBsYXRmb3JtIHdlJ3JlIG9uIHN1cHBvcnRzIEdlc3R1cmVU
YXBEb3duIGFuZCBHZXN0dXJlVGFwQ2FuY2VsIHRoZW4gd2UnbGwKKyAgICAvLyByZWx5IG9uIHRo
ZW0gdG8gc2V0IHRoZSBhY3RpdmUgc3RhdGUuIFVuZm9ydHVuYXRlbHkgdGhlcmUncyBubyBnZW5l
cmljIHdheSB0bworICAgIC8vIGtub3cgaW4gYWR2YW5jZSB3aGF0IGV2ZW50IHR5cGVzIGFyZSBz
dXBwb3J0ZWQuCisjaWYgUExBVEZPUk0oQ0hST01JVU0pICYmICFPUyhBTkRST0lEKQorICAgIHJl
dHVybiB0cnVlOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogYm9vbCBF
dmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVFdmVudChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVu
dCYgZ2VzdHVyZUV2ZW50KQogewogICAgIC8vIFdlIGRvbid0IHVzZSBEb3VibGVUYXAgYXQgdGhl
IG1vbWVudCwgaXQncyBtb3N0bHkgcmVkdW5kYW50IHdpdGggdGFwIHNpbmNlIHRhcCBub3cgY29u
dGFpbnMKQEAgLTIzODAsOSArMjM5MiwyMCBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlR2Vz
dHVyZUV2ZW50KGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBnZXN0dXJlRXZlbnQpCiAgICAg
aWYgKGdlc3R1cmVFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZVNjcm9sbEVu
ZCB8fCBnZXN0dXJlRXZlbnQudHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVTY3JvbGxV
cGRhdGUpCiAgICAgICAgIGV2ZW50VGFyZ2V0ID0gbV9zY3JvbGxHZXN0dXJlSGFuZGxpbmdOb2Rl
LmdldCgpOwogCi0gICAgaWYgKCFldmVudFRhcmdldCkgeworICAgIEhpdFRlc3RSZXF1ZXN0OjpI
aXRUZXN0UmVxdWVzdFR5cGUgaGl0VHlwZSA9IEhpdFRlc3RSZXF1ZXN0OjpUb3VjaEV2ZW50Owor
ICAgIGlmIChnZXN0dXJlRXZlbnQudHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVUYXBE
b3duKQorICAgICAgICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmU7CisgICAgZWxz
ZSBpZiAoZ2VzdHVyZUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlVGFwIHx8
IGdlc3R1cmVFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZVRhcERvd25DYW5j
ZWwpCisgICAgICAgIGhpdFR5cGUgfD0gSGl0VGVzdFJlcXVlc3Q6OlJlbGVhc2U7CisgICAgZWxz
ZQorICAgICAgICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpNb3ZlIHwgSGl0VGVzdFJlcXVl
c3Q6OlJlYWRPbmx5OworCisgICAgaWYgKCFzaG91bGRHZXN0dXJlc1RyaWdnZXJBY3RpdmUoKSkK
KyAgICAgICAgaGl0VHlwZSB8PSBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHk7CisKKyAgICBpZiAo
IWV2ZW50VGFyZ2V0IHx8ICEoaGl0VHlwZSAmIEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSkpIHsK
ICAgICAgICAgSW50UG9pbnQgaGl0VGVzdFBvaW50ID0gbV9mcmFtZS0+dmlldygpLT53aW5kb3dU
b0NvbnRlbnRzKGdlc3R1cmVFdmVudC5wb3NpdGlvbigpKTsKLSAgICAgICAgSGl0VGVzdFJlc3Vs
dCByZXN1bHQgPSBoaXRUZXN0UmVzdWx0QXRQb2ludChoaXRUZXN0UG9pbnQsIGZhbHNlLCBmYWxz
ZSwgRG9udEhpdFRlc3RTY3JvbGxiYXJzLCBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRU
ZXN0UmVxdWVzdDo6QWN0aXZlKTsKKyAgICAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQgPSBoaXRU
ZXN0UmVzdWx0QXRQb2ludChoaXRUZXN0UG9pbnQsIGZhbHNlLCBmYWxzZSwgRG9udEhpdFRlc3RT
Y3JvbGxiYXJzLCBoaXRUeXBlKTsKICAgICAgICAgZXZlbnRUYXJnZXQgPSByZXN1bHQudGFyZ2V0
Tm9kZSgpOwogICAgIH0KIApAQCAtMjQyMCw2ICsyNDQzLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6
OmhhbmRsZUdlc3R1cmVFdmVudChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2
ZW50KQogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVBpbmNoQmVnaW46CiAgICAgY2Fz
ZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlUGluY2hFbmQ6CiAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50
OjpHZXN0dXJlUGluY2hVcGRhdGU6CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlVGFw
RG93bkNhbmNlbDoKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CkBAIC0zNTU0LDYgKzM1NzgsMTEgQEAgYm9vbCBFdmVudEhhbmRsZXI6
OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiBldmVudCkKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKKyNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCisg
ICAgICAgIGlmIChzaG91bGRHZXN0dXJlc1RyaWdnZXJBY3RpdmUoKSkKKyAgICAgICAgICAgIGhp
dFR5cGUgfD0gSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5OworI2VuZGlmCisKICAgICAgICAgLy8g
SW5jcmVtZW50IHRoZSBwbGF0Zm9ybSB0b3VjaCBpZCBieSAxIHRvIGF2b2lkIHN0b3JpbmcgYSBr
ZXkgb2YgMCBpbiB0aGUgaGFzaG1hcC4KICAgICAgICAgdW5zaWduZWQgdG91Y2hQb2ludFRhcmdl
dEtleSA9IHBvaW50LmlkKCkgKyAxOwogICAgICAgICBSZWZQdHI8RXZlbnRUYXJnZXQ+IHRvdWNo
VGFyZ2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggNmQ4YTBhYjc2NzNhOGM4
ZmRmYjRjOWE5NWRiZmMxYWFkOTU1ZDQ4Ny4uYjg0YTE5NTkxM2NkODQ4OTZlZjdiYzIwYTY0ZDJk
N2FmNmMwZTNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0zNTksNiArMzU5
LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCiAgICAgYm9vbCBoYW5k
bGVHZXN0dXJlU2Nyb2xsQ29yZShjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYsIFBsYXRmb3Jt
V2hlZWxFdmVudEdyYW51bGFyaXR5LCBib29sIGxhdGNoZWRXaGVlbCk7CiAgICAgYm9vbCBoYW5k
bGVHZXN0dXJlVGFwRG93bigpOworICAgIHN0YXRpYyBib29sIHNob3VsZEdlc3R1cmVzVHJpZ2dl
ckFjdGl2ZSgpOwogI2VuZGlmCiAKICAgICBGcmFtZSogbV9mcmFtZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtRXZlbnQuaAppbmRleCA1MmM2NDg4YjZiMjY0YzlhZTBmMzQyMmZmMGU4
MmViMDkxODc2ZGYwLi4xNzgyYjYzNGE1ZDRkZDQxYzJiMGZjYTdkNDIyYjkwM2E4MDJkY2E3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oCkBAIC01NCw2ICs1NCw3IEBA
IHB1YmxpYzoKICAgICAgICAgR2VzdHVyZVNjcm9sbFVwZGF0ZSwKICAgICAgICAgR2VzdHVyZVRh
cCwKICAgICAgICAgR2VzdHVyZVRhcERvd24sCisgICAgICAgIEdlc3R1cmVUYXBEb3duQ2FuY2Vs
LAogICAgICAgICBHZXN0dXJlRG91YmxlVGFwLAogICAgICAgICBHZXN0dXJlVHdvRmluZ2VyVGFw
LAogICAgICAgICBHZXN0dXJlTG9uZ1ByZXNzLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCmluZGV4IDJhZmM3ZGNmZTc5
OTVjMjg0M2MxYzI0YTBlNzc4NzYyNjcxYjc3NDQuLmRlYmUzZWUyZWVlOTBiNTZhZDgxYmU0YmI3
ZjFhYWQ5ZWNjZGRlOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklucHV0RXZlbnRDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAKQEAgLTE2MSw2ICsxNjEsOSBAQCBQbGF0Zm9y
bUdlc3R1cmVFdmVudEJ1aWxkZXI6OlBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRlcihXaWRnZXQq
IHdpZGdldCwgY29uc3QgVwogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcERvd246
CiAgICAgICAgIG1fdHlwZSA9IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVUYXBEb3duOwogICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXBDYW5jZWw6CisgICAg
ICAgIG1fdHlwZSA9IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVUYXBEb3duQ2FuY2VsOworICAgICAg
ICBicmVhazsKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVEb3VibGVUYXA6CiAgICAg
ICAgIG1fdHlwZSA9IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVEb3VibGVUYXA7CiAgICAgICAgIGJy
ZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQb3B1cE1lbnVJbXBsLmNw
cAppbmRleCA1OGEyODU1Y2Q5YjM0ZGNhMWRiZTIwMWU1NzM2YTY3OWYxNzZiNGQzLi41MTExNDAy
MGJmM2JjNTBlYjJlZjJmYjViY2JjY2NlMDZjYzYyYmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJQb3B1cE1lbnVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJQb3B1cE1lbnVJbXBsLmNwcApAQCAtMjc3LDYgKzI3Nyw3IEBAIGJv
b2wgV2ViUG9wdXBNZW51SW1wbDo6aGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50
JiBpbnB1dEV2ZW50KQogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZUZsaW5nQ2FuY2Vs
OgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcDoKICAgICBjYXNlIFdlYklucHV0
RXZlbnQ6Okdlc3R1cmVUYXBEb3duOgorICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVRh
cENhbmNlbDoKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVEb3VibGVUYXA6CiAgICAg
Y2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVHdvRmluZ2VyVGFwOgogICAgIGNhc2UgV2ViSW5w
dXRFdmVudDo6R2VzdHVyZUxvbmdQcmVzczoKQEAgLTI4OCw3ICsyODksNiBAQCBib29sIFdlYlBv
cHVwTWVudUltcGw6OmhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYgaW5wdXRF
dmVudCkKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6OlVuZGVmaW5lZDoKICAgICBjYXNlIFdlYklu
cHV0RXZlbnQ6Ok1vdXNlRW50ZXI6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpDb250ZXh0TWVu
dToKLSAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXBDYW5jZWw6CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGQxOGNkMjM2Y2VkNDkyZDM1ZjcxMzAyYjE4
MzYwNmNjMjVkNTk0MzMuLjk3NDE2ZTAyNDAzMjhmMzY3NWQ0ZDFmYjFmMGEyNGNkNjdiZTcyNzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTc2NSwx
NSArNzY1LDEyIEBAIGJvb2wgV2ViVmlld0ltcGw6OmhhbmRsZUdlc3R1cmVFdmVudChjb25zdCBX
ZWJHZXN0dXJlRXZlbnQmIGV2ZW50KQogICAgICAgICBtX2NsaWVudC0+Y2FuY2VsU2NoZWR1bGVk
Q29udGVudEludGVudHMoKTsKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxF
bmQ6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlU2Nyb2xsVXBkYXRlOgorICAgIGNh
c2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcENhbmNlbDoKICAgICBjYXNlIFdlYklucHV0RXZl
bnQ6Okdlc3R1cmVQaW5jaEVuZDoKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVQaW5j
aFVwZGF0ZTogewogICAgICAgICBQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXIgcGxhdGZvcm1F
dmVudChtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpLCBldmVudCk7CiAgICAgICAgIHJldHVy
biBtYWluRnJhbWVJbXBsKCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVHZXN0dXJl
RXZlbnQocGxhdGZvcm1FdmVudCk7CiAgICAgfQotICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2Vz
dHVyZVRhcENhbmNlbDoKLSAgICAgICAgLy8gRklYTUU6IFVwZGF0ZSBXZWJDb3JlIHRvIGhhbmRs
ZSB0aGlzIGV2ZW50IGFmdGVyIGNocm9taXVtIGhhcyBiZWVuIHVwZGF0ZWQgdG8gc2VuZCBpdAot
ICAgICAgICAvLyBodHRwOi8vd2tiLnVnLzk2MDYwCi0gICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTZhOWNmYzU5NmU2
MWRlY2EwODc5MmQ2NzRlYzUzMmI2ZTU0OTIzYS4uMTQzMzgzNjZkOGQxN2Y1Njg3NzM2NTYxNzQ2
Yjk1ODMwY2JiZWY4OCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA5LTA4ICBSaWNrIEJ5ZXJzICA8cmJ5ZXJz
QGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgaGFuZGxpbmcgb2YgbmV3IEdlc3R1cmVUYXBD
YW5jZWwgaW4gRFJUCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk2MTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJQbHVnaW46OmhhbmRsZUlucHV0RXZlbnQpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0V2ZW50U2VuZGVyLmNwcDoKKyAgICAgICAgKEV2ZW50U2VuZGVyOjpn
ZXN0dXJlVGFwQ2FuY2VsKToKKwogMjAxMi0wOS0xNCAgWm9sdGFuIEhvcnZhdGggIDx6b2x0YW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBjaGVjay13ZWJraXQtc3R5bGUgc2hvdWxkIG5vdCB3YXJu
IGluIGNhc2Ugb2YgTk9OQ09QWUFCTEUgYW5kIEZBU1RfQUxMT0NBVEVEIG1hY3JvcwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9FdmVudFNlbmRl
ci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2ZW50U2Vu
ZGVyLmNwcAppbmRleCBkNWVhYWM0YWRhMWRkZTU5NmMwOGE4NjBkOTM1YWYyMmU2YmI5ZWZjLi4y
MzYwMTI4NjUxYzYwZjk5ZmYyNWM3ZGViZTYwNzc1Mjk1MTY5MzdjIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2ZW50U2VuZGVyLmNwcAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2ZW50U2VuZGVyLmNw
cApAQCAtMjg3LDYgKzI4Nyw3IEBAIEV2ZW50U2VuZGVyOjpFdmVudFNlbmRlcigpCiAgICAgYmlu
ZE1ldGhvZCgiZ2VzdHVyZVNjcm9sbFVwZGF0ZSIsICZFdmVudFNlbmRlcjo6Z2VzdHVyZVNjcm9s
bFVwZGF0ZSk7CiAgICAgYmluZE1ldGhvZCgiZ2VzdHVyZVRhcCIsICZFdmVudFNlbmRlcjo6Z2Vz
dHVyZVRhcCk7CiAgICAgYmluZE1ldGhvZCgiZ2VzdHVyZVRhcERvd24iLCAmRXZlbnRTZW5kZXI6
Omdlc3R1cmVUYXBEb3duKTsKKyAgICBiaW5kTWV0aG9kKCJnZXN0dXJlVGFwQ2FuY2VsIiwgJkV2
ZW50U2VuZGVyOjpnZXN0dXJlVGFwQ2FuY2VsKTsKICAgICBiaW5kTWV0aG9kKCJnZXN0dXJlTG9u
Z1ByZXNzIiwgJkV2ZW50U2VuZGVyOjpnZXN0dXJlTG9uZ1ByZXNzKTsKICAgICBiaW5kTWV0aG9k
KCJnZXN0dXJlVHdvRmluZ2VyVGFwIiwgJkV2ZW50U2VuZGVyOjpnZXN0dXJlVHdvRmluZ2VyVGFw
KTsKICAgICBiaW5kTWV0aG9kKCJ6b29tUGFnZUluIiwgJkV2ZW50U2VuZGVyOjp6b29tUGFnZUlu
KTsKQEAgLTExMTksNiArMTEyMCwxMiBAQCB2b2lkIEV2ZW50U2VuZGVyOjpnZXN0dXJlVGFwRG93
bihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcgogICAgIGdl
c3R1cmVFdmVudChXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwRG93biwgYXJndW1lbnRzKTsKIH0K
IAordm9pZCBFdmVudFNlbmRlcjo6Z2VzdHVyZVRhcENhbmNlbChjb25zdCBDcHBBcmd1bWVudExp
c3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0TnVs
bCgpOworICAgIGdlc3R1cmVFdmVudChXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwQ2FuY2VsLCBh
cmd1bWVudHMpOworfQorCiB2b2lkIEV2ZW50U2VuZGVyOjpnZXN0dXJlTG9uZ1ByZXNzKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAg
cmVzdWx0LT5zZXROdWxsKCk7CkBAIC0xMTgyLDYgKzExODksMTAgQEAgdm9pZCBFdmVudFNlbmRl
cjo6Z2VzdHVyZUV2ZW50KFdlYklucHV0RXZlbnQ6OlR5cGUgdHlwZSwgY29uc3QgQ3BwQXJndW1l
bnRMaXN0JgogICAgICAgICBldmVudC54ID0gcG9pbnQueDsKICAgICAgICAgZXZlbnQueSA9IHBv
aW50Lnk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVRh
cENhbmNlbDoKKyAgICAgICAgZXZlbnQueCA9IHBvaW50Lng7CisgICAgICAgIGV2ZW50LnkgPSBw
b2ludC55OworICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVM
b25nUHJlc3M6CiAgICAgICAgIGV2ZW50LnggPSBwb2ludC54OwogICAgICAgICBldmVudC55ID0g
cG9pbnQueTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvRXZlbnRTZW5kZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvRXZlbnRTZW5kZXIuaAppbmRleCA4MjhlN2M4NDI2Mzc1OTE0ZDhjMWZhZWYwYzMwN2M0
YzVhZTA5OWI1Li5lNjc5NGEwNzcwYmQ4OGY3NGZlNTBjYTJmNzE2NjIxZDQxOTg3OWNjIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2ZW50U2Vu
ZGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9FdmVu
dFNlbmRlci5oCkBAIC0xMDYsNiArMTA2LDcgQEAgcHVibGljOgogICAgIHZvaWQgZ2VzdHVyZVNj
cm9sbFVwZGF0ZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9p
ZCBnZXN0dXJlVGFwKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2
b2lkIGdlc3R1cmVUYXBEb3duKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsK
KyAgICB2b2lkIGdlc3R1cmVUYXBDYW5jZWwoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFy
aWFudCopOwogICAgIHZvaWQgZ2VzdHVyZUxvbmdQcmVzcyhjb25zdCBDcHBBcmd1bWVudExpc3Qm
LCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBnZXN0dXJlVHdvRmluZ2VyVGFwKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIGdlc3R1cmVFdmVudChXZWJLaXQ6
OldlYklucHV0RXZlbnQ6OlR5cGUsIGNvbnN0IENwcEFyZ3VtZW50TGlzdCYpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3Rp
dmUtc3RhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2Vz
dHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5
OTllYmNkMWRmZDEzM2EwN2I0MjYzMTI4ZTliMmEzMGE4MzFjMzcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2
ZS1zdGF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorR2VzdHVyZXMgZ28gaGVyZQor
VGVzdHMgdGhhdCB0YXAgZ2VzdHVyZSBldmVudHMgc2V0IGFuZCBjbGVhciB0aGUgYWN0aXZlIHN0
YXRlIG9mIGVsZW1lbnRzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU2VlIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA2MCBmb3IgZGV0YWlscwor
CitHZXN0dXJlVGFwRG93biBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgcGxhdGZvcm0KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2
ZS1zdGF0ZS1pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtaWZyYW1lLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zNzcyYmU3ZmM0NWVmNzkxZjIwZTQ5Yzg1MGMzNTNiMmUzMmE4MDY3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0
dXJlLXRhcC1hY3RpdmUtc3RhdGUtaWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBA
CisKK1Rlc3RzIHRoYXQgdGFwIGdlc3R1cmUgZXZlbnRzIHNldCBhbmQgY2xlYXIgdGhlIGFjdGl2
ZSBzdGF0ZSBvZiBlbGVtZW50cywgZXZlbiB3aGVuIGluc2lkZSBhbiBpZnJhbWUgYW5kIHRoZSBk
b2N1bWVudCBpcyBzY3JvbGxlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Nl
ZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwNjAgZm9yIGRldGFp
bHMKKworR2VzdHVyZVRhcERvd24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIHBsYXRmb3JtCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1h
Y3RpdmUtc3RhdGUtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9n
ZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
YmVmYjQyZmI0OWQ3NTQ1YjQzOTZlMzU4M2ZjMGUyOGI3MGJjMWUyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3Rp
dmUtc3RhdGUtaWZyYW1lLmh0bWwKQEAgLTAsMCArMSw2MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyNmcmFtZSB7CisgICAgcG9zaXRp
b246IGFic29sdXRlOworICAgIHRvcDogMzAwcHg7CisgICAgbGVmdDogNDAwcHg7CisgICAgaGVp
Z2h0OiAzMDAwcHg7Cit9CisKKzwvc3R5bGU+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSdyZXNvdXJj
ZXMvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWlmcmFtZS1pbm5lci5odG1sJyBpZD0nZnJhbWUn
PgorPC9pZnJhbWU+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPHA+U2VlIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA2MCBmb3IgZGV0YWlsczwvcD4KKwor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUZXN0
cyB0aGF0IHRhcCBnZXN0dXJlIGV2ZW50cyBzZXQgYW5kIGNsZWFyIHRoZSBhY3RpdmUgc3RhdGUg
b2YgZWxlbWVudHMsIGV2ZW4gd2hlbiBpbnNpZGUgYW4gaWZyYW1lIGFuZCB0aGUgZG9jdW1lbnQg
aXMgc2Nyb2xsZWQuIik7CisKK3ZhciBpc0JveEFjdGl2ZTsKK2Z1bmN0aW9uIHJ1blRlc3RzKGJh
KQoreworICAgIGlzQm94QWN0aXZlID0gYmE7CisKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRl
cikgeworICAgICAgICBkZWJ1ZygnVGhpcyB0ZXN0IHJlcXVpcmVzIERSVC4nKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGlmICghZXZlbnRTZW5kZXIuZ2VzdHVyZVRhcERvd24pIHsK
KyAgICAgICAgZGVidWcoJ0dlc3R1cmVUYXBEb3duIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBw
bGF0Zm9ybScpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIC8vIFNjcm9sbCBz
byB0aGUgYm94IGlzIGF0IHRoZSB0b3AKKyAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgNDAwKTsKKwor
ICAgIGRlYnVnKCJWZXJpZnkgYWN0aXZlIGlzbid0IGluaXRpYWxseSBzZXQiKTsKKyAgICBzaG91
bGRCZUZhbHNlKCJpc0JveEFjdGl2ZSgpIik7CisKKyAgICBkZWJ1ZygiVmVyaWZ5IHRhcGRvd24s
dGFwIHNldHMgYW5kIGNsZWFycyBhY3RpdmUiKTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlVGFw
RG93big0NTAsIDUwKTsKKyAgICBzaG91bGRCZVRydWUoImlzQm94QWN0aXZlKCkiKTsKKyAgICBl
dmVudFNlbmRlci5nZXN0dXJlVGFwKDQ1MCwgNTApOworICAgIHNob3VsZEJlRmFsc2UoImlzQm94
QWN0aXZlKCkiKTsKKworICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7Cit9CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVy
ZS10YXAtYWN0aXZlLXN0YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9n
ZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4NjVlOWRm
NDFlNjQxOGFjMzM1ZWQ3OWY3NGM3Y2U2ZjUyNzgxNTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0
ZS5odG1sCkBAIC0wLDAgKzEsMTA2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI2JveCB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1
ZTsKKyAgICB3aWR0aDogMzAwcHg7CisgICAgaGVpZ2h0OiAxMDBweDsKK30KKworI2JveDphY3Rp
dmUgeworICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKK30KKworPC9zdHlsZT4KKzxib2R5Pgor
PGRpdiBpZD0iYm94Ij5HZXN0dXJlcyBnbyBoZXJlPC9kaXY+CisKKzxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgorPHA+U2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NjA2MCBmb3IgZGV0YWlsczwvcD4KKworPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3Jp
cHQ+Cit2YXIgY29sb3I7CitmdW5jdGlvbiBpc0JveEFjdGl2ZSgpCit7CisgICAgLy8gVGhlc2Ug
bmVlZCB0byBtYXRjaCB0aGUgYmFja2dyb3VuZC1jb2xvciB1c2VkIGFib3ZlLCBhZnRlciByb3Vu
ZC10cmlwcGluZy4KKyAgICB2YXIgZGVmYXVsdENvbG9yID0gInJnYigwLCAwLCAyNTUpIjsKKyAg
ICB2YXIgYWN0aXZlQ29sb3IgPSAicmdiKDI1NSwgMCwgMCkiOworCisgICAgdmFyIGIgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnYm94Jyk7CisgICAgY29sb3IgPSB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShiKS5iYWNrZ3JvdW5kQ29sb3I7CisgICAgaWYgKGNvbG9yID09IGFjdGl2ZUNvbG9y
KQorICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKGNvbG9yICE9IGRlZmF1bHRDb2xvcikKKyAg
ICAgIHRlc3RGYWlsZWQoJ0dvdCB1bmV4cGVjdGVkIGJhY2tncm91bmRDb2xvcjogJyArIGNvbG9y
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRhcCBn
ZXN0dXJlIGV2ZW50cyBzZXQgYW5kIGNsZWFyIHRoZSBhY3RpdmUgc3RhdGUgb2YgZWxlbWVudHMu
Iik7CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkKK3sKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRl
cikgeworICAgICAgICBkZWJ1ZygnVGhpcyB0ZXN0IHJlcXVpcmVzIERSVC4nKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGlmICghZXZlbnRTZW5kZXIuZ2VzdHVyZVRhcERvd24pIHsK
KyAgICAgICAgZGVidWcoJ0dlc3R1cmVUYXBEb3duIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBw
bGF0Zm9ybScpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZGVidWcoIlZlcmlmeSBh
Y3RpdmUgaXNuJ3QgaW5pdGlhbGx5IHNldCIpOworICAgIHNob3VsZEJlRmFsc2UoImlzQm94QWN0
aXZlKCkiKTsKKworICAgIGRlYnVnKCJWZXJpZnkgdGFwZG93bix0YXAgc2V0cyBhbmQgY2xlYXJz
IGFjdGl2ZSIpOworICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVUYXBEb3duKDUwLCA1MCk7CisgICAg
c2hvdWxkQmVUcnVlKCJpc0JveEFjdGl2ZSgpIik7CisgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVRh
cCg1MCwgNTApOworICAgIHNob3VsZEJlRmFsc2UoImlzQm94QWN0aXZlKCkiKTsKKworICAgIGRl
YnVnKCJWZXJpZnkgdGFwZG93bix0YXBjYW5jZWwgb24gdGhlIGVsZW1lbnQgc2V0cyBhbmQgY2xl
YXJzIGFjdGl2ZSIpOworICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVUYXBEb3duKDUwLCA1MCk7Cisg
ICAgc2hvdWxkQmVUcnVlKCJpc0JveEFjdGl2ZSgpIik7CisgICAgZXZlbnRTZW5kZXIuZ2VzdHVy
ZVRhcENhbmNlbCg1MCwgNTApOworICAgIHNob3VsZEJlRmFsc2UoImlzQm94QWN0aXZlKCkiKTsK
KworICAgIGRlYnVnKCJWZXJpZnkgdGFwIGVsc2V3aGVyZSBzdGlsbCBjbGVhcnMgYWN0aXZlIik7
CisgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVRhcERvd24oNTAsIDUwKTsKKyAgICBzaG91bGRCZVRy
dWUoImlzQm94QWN0aXZlKCkiKTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlVGFwKDQwMCwgMjUw
KTsKKyAgICBzaG91bGRCZUZhbHNlKCJpc0JveEFjdGl2ZSgpIik7CisKKyAgICBkZWJ1ZygiVmVy
aWZ5IHRhcENhbmNlbCBlbHNld2hlcmUgc3RpbGwgY2xlYXJzIGFjdGl2ZSIpOworICAgIGV2ZW50
U2VuZGVyLmdlc3R1cmVUYXBEb3duKDUwLCA1MCk7CisgICAgc2hvdWxkQmVUcnVlKCJpc0JveEFj
dGl2ZSgpIik7CisgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVRhcENhbmNlbCg0MDAsIDI1MCk7Cisg
ICAgc2hvdWxkQmVGYWxzZSgiaXNCb3hBY3RpdmUoKSIpOworCisgICAgZGVidWcoIlZlcmlmeSB0
aGF0IHRvdWNoc3RhcnQgZG9lc24ndCB0cmlnZ2VyIGFjdGl2ZSBzdGF0ZSIpOworICAgIGV2ZW50
U2VuZGVyLmFkZFRvdWNoUG9pbnQoNTAsIDUwKTsKKyAgICBldmVudFNlbmRlci50b3VjaFN0YXJ0
KCk7CisgICAgc2hvdWxkQmVGYWxzZSgiaXNCb3hBY3RpdmUoKSIpOworICAgIGV2ZW50U2VuZGVy
LnJlbGVhc2VUb3VjaFBvaW50KDApOworICAgIGV2ZW50U2VuZGVyLnRvdWNoRW5kKCk7CisKKyAg
ICBkZWJ1ZygiVmVyaWZ5IHRoYXQgdG91Y2hzdGFydC90b3VjaGVuZCBkb2Vzbid0IGNhbmNlbCBh
Y3RpdmUiKTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlVGFwRG93big1MCwgNTApOworICAgIHNo
b3VsZEJlVHJ1ZSgiaXNCb3hBY3RpdmUoKSIpOworICAgIGV2ZW50U2VuZGVyLmFkZFRvdWNoUG9p
bnQoNTAsIDUwKTsKKyAgICBldmVudFNlbmRlci50b3VjaFN0YXJ0KCk7CisgICAgc2hvdWxkQmVU
cnVlKCJpc0JveEFjdGl2ZSgpIik7CisgICAgZXZlbnRTZW5kZXIucmVsZWFzZVRvdWNoUG9pbnQo
MCk7CisgICAgZXZlbnRTZW5kZXIudG91Y2hFbmQoKTsKKyAgICBzaG91bGRCZVRydWUoImlzQm94
QWN0aXZlKCkiKTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlVGFwKDUwLCA1MCk7CisgICAgc2hv
dWxkQmVGYWxzZSgiaXNCb3hBY3RpdmUoKSIpOworfQorCitydW5UZXN0cygpOworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9nZXN0dXJlL3Jlc291cmNlcy9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtaWZy
YW1lLWlubmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3Jl
c291cmNlcy9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtaWZyYW1lLWlubmVyLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODAxZjlkYWZjY2Y4YWI1M2U2MGEyMDQ2MjE5OWUzOTcwNDcwODUxOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcmVzb3VyY2Vz
L2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1pZnJhbWUtaW5uZXIuaHRtbApAQCAtMCwwICsxLDM4
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyNi
b3ggeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVl
OworICAgIHdpZHRoOiAzMDBweDsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIHRvcDogMTAwcHg7
Cit9CisKKyNib3g6YWN0aXZlIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Cit9CisKKzwv
c3R5bGU+Cis8c2NyaXB0PgordmFyIGNvbG9yOworZnVuY3Rpb24gaXNCb3hBY3RpdmUoKQorewor
ICAgIC8vIFRoZXNlIG5lZWQgdG8gbWF0Y2ggdGhlIGJhY2tncm91bmQtY29sb3IgdXNlZCBhYm92
ZSwgYWZ0ZXIgcm91bmQtdHJpcHBpbmcuCisgICAgdmFyIGRlZmF1bHRDb2xvciA9ICJyZ2IoMCwg
MCwgMjU1KSI7CisgICAgdmFyIGFjdGl2ZUNvbG9yID0gInJnYigyNTUsIDAsIDApIjsKKworICAg
IHZhciBiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpOworICAgIGNvbG9yID0gZ2V0
Q29tcHV0ZWRTdHlsZShiKS5iYWNrZ3JvdW5kQ29sb3I7CisgICAgaWYgKGNvbG9yID09IGFjdGl2
ZUNvbG9yKQorICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKGNvbG9yICE9IGRlZmF1bHRDb2xv
cikKKyAgICAgIHRocm93ICJHb3QgdW5leHBlY3RlZCBiYWNrZ3JvdW5kQ29sb3I6ICIgKyBjb2xv
cjsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSdwYXJl
bnQucnVuVGVzdHMoaXNCb3hBY3RpdmUpJz4KKzxkaXYgaWQ9J2JveCc+R2VzdHVyZXMgZ28gaGVy
ZTwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tYW5kcm9pZC9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFw
LWFjdGl2ZS1zdGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1hbmRyb2lkL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0
YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOTk5ZWJjZDFkZmQxMzNhMDdiNDI2MzEyOGU5
YjJhMzBhODMxYzM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tYW5kcm9pZC9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2
ZS1zdGF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorR2VzdHVyZXMgZ28gaGVyZQor
VGVzdHMgdGhhdCB0YXAgZ2VzdHVyZSBldmVudHMgc2V0IGFuZCBjbGVhciB0aGUgYWN0aXZlIHN0
YXRlIG9mIGVsZW1lbnRzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU2VlIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA2MCBmb3IgZGV0YWlscwor
CitHZXN0dXJlVGFwRG93biBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgcGxhdGZvcm0KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1hbmRyb2lkL2Zhc3QvZXZlbnRzL3RvdWNo
L2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWlmcmFtZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1hbmRyb2lkL2Zhc3QvZXZlbnRzL3RvdWNoL2dl
c3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWlmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzc3MmJlN2ZjNDVlZjc5MWYyMGU0OWM4NTBjMzUzYjJlMzJhODA2NwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWFuZHJvaWQvZmFzdC9ldmVu
dHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtaWZyYW1lLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEzIEBACisKK1Rlc3RzIHRoYXQgdGFwIGdlc3R1cmUgZXZlbnRzIHNl
dCBhbmQgY2xlYXIgdGhlIGFjdGl2ZSBzdGF0ZSBvZiBlbGVtZW50cywgZXZlbiB3aGVuIGluc2lk
ZSBhbiBpZnJhbWUgYW5kIHRoZSBkb2N1bWVudCBpcyBzY3JvbGxlZC4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1NlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTYwNjAgZm9yIGRldGFpbHMKKworR2VzdHVyZVRhcERvd24gaXMgbm90IHN1cHBvcnRl
ZCBieSB0aGlzIHBsYXRmb3JtCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
ZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gv
Z2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmMzMzljMDhiY2EzNDNlZDQ1OTAyOGNjOGI2ZGU1YTIwNTFjMmUyNzcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy90b3VjaC9nZXN0
dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMyBA
QAorR2VzdHVyZXMgZ28gaGVyZQorVGVzdHMgdGhhdCB0YXAgZ2VzdHVyZSBldmVudHMgc2V0IGFu
ZCBjbGVhciB0aGUgYWN0aXZlIHN0YXRlIG9mIGVsZW1lbnRzLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NjA2MCBmb3IgZGV0YWlscworCitWZXJpZnkgYWN0aXZlIGlzbid0IGluaXRpYWxseSBzZXQK
K1BBU1MgaXNCb3hBY3RpdmUoKSBpcyBmYWxzZQorVmVyaWZ5IHRhcGRvd24sdGFwIHNldHMgYW5k
IGNsZWFycyBhY3RpdmUKK1BBU1MgaXNCb3hBY3RpdmUoKSBpcyB0cnVlCitQQVNTIGlzQm94QWN0
aXZlKCkgaXMgZmFsc2UKK1ZlcmlmeSB0YXBkb3duLHRhcGNhbmNlbCBvbiB0aGUgZWxlbWVudCBz
ZXRzIGFuZCBjbGVhcnMgYWN0aXZlCitQQVNTIGlzQm94QWN0aXZlKCkgaXMgdHJ1ZQorUEFTUyBp
c0JveEFjdGl2ZSgpIGlzIGZhbHNlCitWZXJpZnkgdGFwIGVsc2V3aGVyZSBzdGlsbCBjbGVhcnMg
YWN0aXZlCitQQVNTIGlzQm94QWN0aXZlKCkgaXMgdHJ1ZQorUEFTUyBpc0JveEFjdGl2ZSgpIGlz
IGZhbHNlCitWZXJpZnkgdGFwQ2FuY2VsIGVsc2V3aGVyZSBzdGlsbCBjbGVhcnMgYWN0aXZlCitQ
QVNTIGlzQm94QWN0aXZlKCkgaXMgdHJ1ZQorUEFTUyBpc0JveEFjdGl2ZSgpIGlzIGZhbHNlCitW
ZXJpZnkgdGhhdCB0b3VjaHN0YXJ0IGRvZXNuJ3QgdHJpZ2dlciBhY3RpdmUgc3RhdGUKK1BBU1Mg
aXNCb3hBY3RpdmUoKSBpcyBmYWxzZQorVmVyaWZ5IHRoYXQgdG91Y2hzdGFydC90b3VjaGVuZCBk
b2Vzbid0IGNhbmNlbCBhY3RpdmUKK1BBU1MgaXNCb3hBY3RpdmUoKSBpcyB0cnVlCitQQVNTIGlz
Qm94QWN0aXZlKCkgaXMgdHJ1ZQorUEFTUyBpc0JveEFjdGl2ZSgpIGlzIHRydWUKK1BBU1MgaXNC
b3hBY3RpdmUoKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWlmcmFt
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50
cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1pZnJhbWUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmMwNDgxZTA2NzY2MmQxOGI3YjQzYmIxZDlmZmM0M2Y5YTkzMGUyMGEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2
ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1pZnJhbWUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKKworVGVzdHMgdGhhdCB0YXAgZ2VzdHVyZSBldmVudHMg
c2V0IGFuZCBjbGVhciB0aGUgYWN0aXZlIHN0YXRlIG9mIGVsZW1lbnRzLCBldmVuIHdoZW4gaW5z
aWRlIGFuIGlmcmFtZSBhbmQgdGhlIGRvY3VtZW50IGlzIHNjcm9sbGVkLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05NjA2MCBmb3IgZGV0YWlscworCitWZXJpZnkgYWN0aXZlIGlzbid0IGluaXRpYWxs
eSBzZXQKK1BBU1MgaXNCb3hBY3RpdmUoKSBpcyBmYWxzZQorVmVyaWZ5IHRhcGRvd24sdGFwIHNl
dHMgYW5kIGNsZWFycyBhY3RpdmUKK1BBU1MgaXNCb3hBY3RpdmUoKSBpcyB0cnVlCitQQVNTIGlz
Qm94QWN0aXZlKCkgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC1hY3RpdmUtc3RhdGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvdG91Y2gtYWN0aXZl
LXN0YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YzhmNmFmNGE1ZTkzMGUxOWY5NzM3MjUx
YzEwNDc5YzMzYzk3MDUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvdG91Y2gtYWN0aXZlLXN0YXRlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACitGQUlMCitUZXN0IHRvdWNoZXMgc2V0IHRoZSBhY3RpdmUgc3Rh
dGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164408</attachid>
            <date>2012-09-17 09:33:26 -0700</date>
            <delta_ts>2012-09-17 12:02:07 -0700</delta_ts>
            <desc>Tweaks based on CR feedback</desc>
            <filename>bug-96060-20120917123254.patch</filename>
            <type>text/plain</type>
            <size>26317</size>
            <attacher name="Rick Byers">rbyers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NjI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTE5YmE2NDFmMmJmZTNh
ZTJmNmJjMDg4NzhjNGE0M2IxNTExZDdlMy4uNGNhMmZiNjliYTA5NTUwM2Q5Y2UyNWExOWFlYThi
ZGQ2Yzc4YzMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA5LTA4ICBSaWNr
IEJ5ZXJzICA8cmJ5ZXJzQGNocm9taXVtLm9yZz4KKworICAgICAgICBBbGxvdyBnZXN0dXJlIGV2
ZW50cyB0byBzZXQgYWN0aXZlL2hvdmVyIHN0YXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIEdlc3R1cmVUYXBEb3duQ2FuY2VsIGFzIGEgbmV3
IFBsYXRmb3JtR2VzdHVyZUV2ZW50IHR5cGUuICBPbiBwb3J0cworICAgICAgICB0aGF0IHN1cHBv
cnQgZ2VzdHVyZSBldmVudHMsIHVzZSBHZXN0dXJlVGFwRG93biB0byB0cmlnZ2VyIGFjdGl2ZS9o
b3ZlcgorICAgICAgICBzdGF0ZXMsIGFuZCBHZXN0dXJlVGFwL0dlc3R1cmVUYXBEb3duQ2FuY2Vs
IHRvIGNsZWFyIHRoZW0uICBUaGlzIGlzCisgICAgICAgIHN1cGVyaW9yIHRvIHVzaW5nIHRvdWNo
IGV2ZW50cyBmb3IgYSBudW1iZXIgb2YgcmVhc29uczoKKyAgICAgICAgICAxKSBzb21lIHBvcnRz
IChjaHJvbWl1bSkgYXZvaWQgc2VuZGluZyB0b3VjaCBldmVudHMgdW5sZXNzIGFic29sdXRlbHkK
KyAgICAgICAgICBuZWNlc3NhcnksIHNpbmNlIHRoZXkgaHVydCBzY3JvbGwgcGVyZm9ybWFuY2Ug
YnkgYmxvY2tpbmcgdGhyZWFkZWQKKyAgICAgICAgICBzY3JvbGxpbmcuCisgICAgICAgICAgMikg
d2l0aCB0b3VjaCwgYW5kIGVsZW1lbnQgcmVhbGx5IHNob3VsZG4ndCBiZSAnYWN0aXZlJyB3aGVu
IHRoZSB1c2VyCisgICAgICAgICAgaGFwcGVucyB0byBiZSB0b3VjaGluZyBpdCB3aGlsZSBzY3Jv
bGxpbmcuICBJbiB0aGF0IGNhc2UgdGhleSBhcmVuJ3QKKyAgICAgICAgICAnbWFuaXB1bGF0aW5n
IHRoZSBlbGVtZW50JywgdGhleSdyZSBtYW5pcHVsYXRpbmcgdGhlIHBhZ2Ugb3IgZGl2IHRoYXQK
KyAgICAgICAgICBpcyBzY3JvbGxpbmcuCisgICAgICAgICAgMykgc2ltaWxhcmx5LCB0aGVyZSBt
YXkgYmUgb3RoZXIgZ2VzdHVyZXMgdGhhdCBpbnZvbHZlIHRvdWNoaW5nIHRoZQorICAgICAgICAg
IGVsZW1lbnQgd2hpY2ggYXJlbid0IHJlYWxseSBhYm91dCBtYW5pcHVsYXRpbmcgdGhhdCBlbGVt
ZW50IChlZy4KKyAgICAgICAgICBwaW5jaCB0byB6b29tKS4KKworICAgICAgICBUZXN0OiBmYXN0
L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS5odG1sCisgICAg
ICAgIFRlc3Q6IGZhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0
YXRlLWlmcmFtZS5odG1sCisgICAgICAgICogZG9tL0dlc3R1cmVFdmVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHZXN0dXJlRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogcGFnZS9FdmVudEhh
bmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJl
RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50Lmg6CisKIDIwMTItMDktMTQgIE1p
Y2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNoZWxhbmdlbG9Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBVc2UgYXJyYXlzIGluIHNoYWRlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZGY2
MDUxZmIzOGVhMTYyZjhmYTFkNmRhMDhiNTNmYmMxMWM0NTg3Ni4uYjQzNzI3YzAyMjkyNmE2NzY1
ZTFmODkzOTFiMjI3NWJiZDJhODU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxMi0wOS0wOCAgUmljayBCeWVycyAgPHJieWVyc0BjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgU2VuZCBHZXN0dXJlVGFwRG93bkNhbmNlbCB0byBXZWJDb3JlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA2MAorCisgICAgICAg
IFBsdW1iIFdlYklucHV0RXZlbnQ6OkdldHN1cmVUYXBDYW5jZWwgdG8KKyAgICAgICAgUGxhdGZv
cm1JbnB1dEV2ZW50OjpHZXN0dXJlVGFwRG93bkNhbmNlbC4gIEFmdGVyIGFsbCB0aGUgY2hyb21p
dW0gY29kZQorICAgICAgICB3YXMgbGFuZGVkLCBpdCB3YXMgc3VnZ2VzdGVkIHRoYXQgJ1RhcERv
d25DYW5jZWwnIHdhcyBhIGJldHRlciBuYW1lCisgICAgICAgIHRoYW4gJ1RhcENhbmNlbCcgc2lu
Y2UgeW91IGNhbid0IGNhbmNlbCBhIFRhcC4gIEknbSBub3QgY2hhbmdpbmcgdGhlCisgICAgICAg
IFdlYklucHV0RXZlbnQgZGVmaW5pdGlvbiBoZXJlIGJlY2F1c2UgdGhhdCB3b3VsZCBiZSBhIGJy
ZWFraW5nIGNoYW5nZQorICAgICAgICB0byBjaHJvbWl1bSwgYnV0IEkgY2FuIGRvIHRoYXQgYXMg
YSBzZXJpZXMgb2YgZm9sbG93LXVwIENMcy4KKyAgICAgICAgKiBzcmMvV2ViSW5wdXRFdmVudENv
bnZlcnNpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxk
ZXI6OlBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRlcik6CisgICAgICAgICogc3JjL1dlYlBvcHVw
TWVudUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVJ
bnB1dEV2ZW50KToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6aGFuZGxlR2VzdHVyZUV2ZW50KToKKwogMjAxMi0wOS0xNCAgS2Vp
c2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KIAogICAgICAgICBNYWtlIHRpbWUgaW5w
dXQgbGFuZyBhdHRyaWJ1dGUgYXdhcmUgZm9yIHRlc3RpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9HZXN0dXJlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVF
dmVudC5jcHAKaW5kZXggZDc1Y2RhYTA5NjY5ZWYzYTcxNTZjOWQ1NTYxNDE0NzNlMDY2OGJjMi4u
MWU3Yjg3ZTdhZjJhNWZjZTc0YmZlZTU2OGY3ZDNjNGU4NzM1YWM3NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0dlc3R1cmVFdmVudC5jcHAKQEAgLTU4LDYgKzU4LDcgQEAgUGFzc1JlZlB0cjxHZXN0dXJlRXZl
bnQ+IEdlc3R1cmVFdmVudDo6Y3JlYXRlKFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBj
b24KICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVQaW5jaEJlZ2luOgogICAgIGNhc2Ug
UGxhdGZvcm1FdmVudDo6R2VzdHVyZVBpbmNoRW5kOgogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6
R2VzdHVyZVBpbmNoVXBkYXRlOgorICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVRhcERv
d25DYW5jZWw6CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDQ4ZDA3OWUyMmI3MWM0MWE1ZDkzMDRkOGJl
MjFiYTI2YjhiMzg5MjEuLmFhOThlNjUyMTIzMDczOTgxNjM5YTI1ZDczYjY4MDNkMWU4MTAzMjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTI2NCw2ICsyNjQsMjAgQEAg
c3RhdGljIGlubGluZSBib29sIHNjcm9sbE5vZGUoZmxvYXQgZGVsdGEsIFNjcm9sbEdyYW51bGFy
aXR5IGdyYW51bGFyaXR5LCBTY3JvbGwKICAgICByZXR1cm4gZW5jbG9zaW5nQm94LT5zY3JvbGwo
ZGVsdGEgPCAwID8gbmVnYXRpdmVEaXJlY3Rpb24gOiBwb3NpdGl2ZURpcmVjdGlvbiwgZ3JhbnVs
YXJpdHksIGFic0RlbHRhLCBzdG9wTm9kZSk7CiB9CiAKKyNpZiBFTkFCTEUoR0VTVFVSRV9FVkVO
VFMpCitzdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkR2VzdHVyZXNUcmlnZ2VyQWN0aXZlKCkKK3sK
KyAgICAvLyBJZiB0aGUgcGxhdGZvcm0gd2UncmUgb24gc3VwcG9ydHMgR2VzdHVyZVRhcERvd24g
YW5kIEdlc3R1cmVUYXBDYW5jZWwgdGhlbiB3ZSdsbAorICAgIC8vIHJlbHkgb24gdGhlbSB0byBz
ZXQgdGhlIGFjdGl2ZSBzdGF0ZS4gVW5mb3J0dW5hdGVseSB0aGVyZSdzIG5vIGdlbmVyaWMgd2F5
IHRvCisgICAgLy8ga25vdyBpbiBhZHZhbmNlIHdoYXQgZXZlbnQgdHlwZXMgYXJlIHN1cHBvcnRl
ZC4KKyNpZiBQTEFURk9STShDSFJPTUlVTSkgJiYgIU9TKEFORFJPSUQpCisgICAgcmV0dXJuIHRy
dWU7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorI2VuZGlmCisKICNpZiAh
UExBVEZPUk0oTUFDKQogCiBpbmxpbmUgYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50TG9vcEhhbmRs
ZU1vdXNlVXAoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpCkBAIC0yMzgwLDkg
KzIzOTQsMjAgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVFdmVudChjb25zdCBQ
bGF0Zm9ybUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50KQogICAgIGlmIChnZXN0dXJlRXZlbnQu
dHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVTY3JvbGxFbmQgfHwgZ2VzdHVyZUV2ZW50
LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlU2Nyb2xsVXBkYXRlKQogICAgICAgICBl
dmVudFRhcmdldCA9IG1fc2Nyb2xsR2VzdHVyZUhhbmRsaW5nTm9kZS5nZXQoKTsKIAotICAgIGlm
ICghZXZlbnRUYXJnZXQpIHsKKyAgICBIaXRUZXN0UmVxdWVzdDo6SGl0VGVzdFJlcXVlc3RUeXBl
IGhpdFR5cGUgPSBIaXRUZXN0UmVxdWVzdDo6VG91Y2hFdmVudDsKKyAgICBpZiAoZ2VzdHVyZUV2
ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlVGFwRG93bikKKyAgICAgICAgaGl0
VHlwZSB8PSBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlOworICAgIGVsc2UgaWYgKGdlc3R1cmVFdmVu
dC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZVRhcCB8fCBnZXN0dXJlRXZlbnQudHlw
ZSgpID09IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVUYXBEb3duQ2FuY2VsKQorICAgICAgICBoaXRU
eXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpSZWxlYXNlOworICAgIGVsc2UKKyAgICAgICAgaGl0VHlw
ZSB8PSBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5Owor
CisgICAgaWYgKCFzaG91bGRHZXN0dXJlc1RyaWdnZXJBY3RpdmUoKSkKKyAgICAgICAgaGl0VHlw
ZSB8PSBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHk7CisKKyAgICBpZiAoIWV2ZW50VGFyZ2V0IHx8
ICEoaGl0VHlwZSAmIEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSkpIHsKICAgICAgICAgSW50UG9p
bnQgaGl0VGVzdFBvaW50ID0gbV9mcmFtZS0+dmlldygpLT53aW5kb3dUb0NvbnRlbnRzKGdlc3R1
cmVFdmVudC5wb3NpdGlvbigpKTsKLSAgICAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQgPSBoaXRU
ZXN0UmVzdWx0QXRQb2ludChoaXRUZXN0UG9pbnQsIGZhbHNlLCBmYWxzZSwgRG9udEhpdFRlc3RT
Y3JvbGxiYXJzLCBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVxdWVzdDo6QWN0
aXZlKTsKKyAgICAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQgPSBoaXRUZXN0UmVzdWx0QXRQb2lu
dChoaXRUZXN0UG9pbnQsIGZhbHNlLCBmYWxzZSwgRG9udEhpdFRlc3RTY3JvbGxiYXJzLCBoaXRU
eXBlKTsKICAgICAgICAgZXZlbnRUYXJnZXQgPSByZXN1bHQudGFyZ2V0Tm9kZSgpOwogICAgIH0K
IApAQCAtMjQyMCw2ICsyNDQ1LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVF
dmVudChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50KQogICAgIGNhc2Ug
UGxhdGZvcm1FdmVudDo6R2VzdHVyZVBpbmNoQmVnaW46CiAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50
OjpHZXN0dXJlUGluY2hFbmQ6CiAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlUGluY2hV
cGRhdGU6CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlVGFwRG93bkNhbmNlbDoKICAg
ICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CkBAIC0zNTU0LDYgKzM1ODAsMTEgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZl
bnQoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiBldmVudCkKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAKKyNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCisgICAgICAgIGlmIChzaG91
bGRHZXN0dXJlc1RyaWdnZXJBY3RpdmUoKSkKKyAgICAgICAgICAgIGhpdFR5cGUgfD0gSGl0VGVz
dFJlcXVlc3Q6OlJlYWRPbmx5OworI2VuZGlmCisKICAgICAgICAgLy8gSW5jcmVtZW50IHRoZSBw
bGF0Zm9ybSB0b3VjaCBpZCBieSAxIHRvIGF2b2lkIHN0b3JpbmcgYSBrZXkgb2YgMCBpbiB0aGUg
aGFzaG1hcC4KICAgICAgICAgdW5zaWduZWQgdG91Y2hQb2ludFRhcmdldEtleSA9IHBvaW50Lmlk
KCkgKyAxOwogICAgICAgICBSZWZQdHI8RXZlbnRUYXJnZXQ+IHRvdWNoVGFyZ2V0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oCmluZGV4IDUyYzY0ODhiNmIyNjRjOWFlMGYz
NDIyZmYwZTgyZWIwOTE4NzZkZjAuLjE3ODJiNjM0YTVkNGRkNDFjMmIwZmNhN2Q0MjJiOTAzYTgw
MmRjYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKQEAgLTU0LDYg
KzU0LDcgQEAgcHVibGljOgogICAgICAgICBHZXN0dXJlU2Nyb2xsVXBkYXRlLAogICAgICAgICBH
ZXN0dXJlVGFwLAogICAgICAgICBHZXN0dXJlVGFwRG93biwKKyAgICAgICAgR2VzdHVyZVRhcERv
d25DYW5jZWwsCiAgICAgICAgIEdlc3R1cmVEb3VibGVUYXAsCiAgICAgICAgIEdlc3R1cmVUd29G
aW5nZXJUYXAsCiAgICAgICAgIEdlc3R1cmVMb25nUHJlc3MsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAKaW5kZXggMmFm
YzdkY2ZlNzk5NWMyODQzYzFjMjRhMGU3Nzg3NjI2NzFiNzc0NC4uZGViZTNlZTJlZWU5MGI1NmFk
ODFiZTRiYjdmMWFhZDllY2NkZGU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcApAQCAtMTYxLDYgKzE2MSw5IEBA
IFBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRlcjo6UGxhdGZvcm1HZXN0dXJlRXZlbnRCdWlsZGVy
KFdpZGdldCogd2lkZ2V0LCBjb25zdCBXCiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJl
VGFwRG93bjoKICAgICAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZVRhcERvd247
CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcENhbmNl
bDoKKyAgICAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZVRhcERvd25DYW5jZWw7
CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZURvdWJsZVRh
cDoKICAgICAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZURvdWJsZVRhcDsKICAg
ICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQ
b3B1cE1lbnVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVu
dUltcGwuY3BwCmluZGV4IDU4YTI4NTVjZDliMzRkY2ExZGJlMjAxZTU3MzZhNjc5ZjE3NmI0ZDMu
LjUxMTE0MDIwYmYzYmM1MGViMmVmMmZiNWJjYmNjY2UwNmNjNjJiYmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwCkBAIC0yNzcsNiArMjc3
LDcgQEAgYm9vbCBXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklu
cHV0RXZlbnQmIGlucHV0RXZlbnQpCiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlRmxp
bmdDYW5jZWw6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwOgogICAgIGNhc2Ug
V2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcERvd246CisgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpH
ZXN0dXJlVGFwQ2FuY2VsOgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZURvdWJsZVRh
cDoKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUd29GaW5nZXJUYXA6CiAgICAgY2Fz
ZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlTG9uZ1ByZXNzOgpAQCAtMjg4LDcgKzI4OSw2IEBAIGJv
b2wgV2ViUG9wdXBNZW51SW1wbDo6aGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50
JiBpbnB1dEV2ZW50KQogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6VW5kZWZpbmVkOgogICAgIGNh
c2UgV2ViSW5wdXRFdmVudDo6TW91c2VFbnRlcjoKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6OkNv
bnRleHRNZW51OgotICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcENhbmNlbDoKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggZDE4Y2QyMzZjZWQ0OTJkMzVm
NzEzMDJiMTgzNjA2Y2MyNWQ1OTQzMy4uOTc0MTZlMDI0MDMyOGYzNjc1ZDRkMWZiMWYwYTI0Y2Q2
N2JlNzI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApA
QCAtNzY1LDE1ICs3NjUsMTIgQEAgYm9vbCBXZWJWaWV3SW1wbDo6aGFuZGxlR2VzdHVyZUV2ZW50
KGNvbnN0IFdlYkdlc3R1cmVFdmVudCYgZXZlbnQpCiAgICAgICAgIG1fY2xpZW50LT5jYW5jZWxT
Y2hlZHVsZWRDb250ZW50SW50ZW50cygpOwogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVy
ZVNjcm9sbEVuZDoKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxVcGRhdGU6
CisgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwQ2FuY2VsOgogICAgIGNhc2UgV2Vi
SW5wdXRFdmVudDo6R2VzdHVyZVBpbmNoRW5kOgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2Vz
dHVyZVBpbmNoVXBkYXRlOiB7CiAgICAgICAgIFBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRlciBw
bGF0Zm9ybUV2ZW50KG1haW5GcmFtZUltcGwoKS0+ZnJhbWVWaWV3KCksIGV2ZW50KTsKICAgICAg
ICAgcmV0dXJuIG1haW5GcmFtZUltcGwoKS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRs
ZUdlc3R1cmVFdmVudChwbGF0Zm9ybUV2ZW50KTsKICAgICB9Ci0gICAgY2FzZSBXZWJJbnB1dEV2
ZW50OjpHZXN0dXJlVGFwQ2FuY2VsOgotICAgICAgICAvLyBGSVhNRTogVXBkYXRlIFdlYkNvcmUg
dG8gaGFuZGxlIHRoaXMgZXZlbnQgYWZ0ZXIgY2hyb21pdW0gaGFzIGJlZW4gdXBkYXRlZCB0byBz
ZW5kIGl0Ci0gICAgICAgIC8vIGh0dHA6Ly93a2IudWcvOTYwNjAKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1NmE5
Y2ZjNTk2ZTYxZGVjYTA4NzkyZDY3NGVjNTMyYjZlNTQ5MjNhLi4xNDMzODM2NmQ4ZDE3ZjU2ODc3
MzY1NjE3NDZiOTU4MzBjYmJlZjg4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDktMDggIFJpY2sgQnllcnMg
IDxyYnllcnNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFkZCBoYW5kbGluZyBvZiBuZXcgR2Vz
dHVyZVRhcENhbmNlbCBpbiBEUlQKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTYxODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3Bw
OgorICAgICAgICAoVGVzdFdlYlBsdWdpbjo6aGFuZGxlSW5wdXRFdmVudCk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRXZlbnRTZW5kZXIuY3BwOgorICAgICAgICAoRXZlbnRT
ZW5kZXI6Omdlc3R1cmVUYXBDYW5jZWwpOgorCiAyMDEyLTA5LTE0ICBab2x0YW4gSG9ydmF0aCAg
PHpvbHRhbkB3ZWJraXQub3JnPgogCiAgICAgICAgIGNoZWNrLXdlYmtpdC1zdHlsZSBzaG91bGQg
bm90IHdhcm4gaW4gY2FzZSBvZiBOT05DT1BZQUJMRSBhbmQgRkFTVF9BTExPQ0FURUQgbWFjcm9z
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2
ZW50U2VuZGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
RXZlbnRTZW5kZXIuY3BwCmluZGV4IGQ1ZWFhYzRhZGExZGRlNTk2YzA4YTg2MGQ5MzVhZjIyZTZi
YjllZmMuLjIzNjAxMjg2NTFjNjBmOTlmZjI1YzdkZWJlNjA3NzUyOTUxNjkzN2MgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvRXZlbnRTZW5kZXIu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvRXZlbnRT
ZW5kZXIuY3BwCkBAIC0yODcsNiArMjg3LDcgQEAgRXZlbnRTZW5kZXI6OkV2ZW50U2VuZGVyKCkK
ICAgICBiaW5kTWV0aG9kKCJnZXN0dXJlU2Nyb2xsVXBkYXRlIiwgJkV2ZW50U2VuZGVyOjpnZXN0
dXJlU2Nyb2xsVXBkYXRlKTsKICAgICBiaW5kTWV0aG9kKCJnZXN0dXJlVGFwIiwgJkV2ZW50U2Vu
ZGVyOjpnZXN0dXJlVGFwKTsKICAgICBiaW5kTWV0aG9kKCJnZXN0dXJlVGFwRG93biIsICZFdmVu
dFNlbmRlcjo6Z2VzdHVyZVRhcERvd24pOworICAgIGJpbmRNZXRob2QoImdlc3R1cmVUYXBDYW5j
ZWwiLCAmRXZlbnRTZW5kZXI6Omdlc3R1cmVUYXBDYW5jZWwpOwogICAgIGJpbmRNZXRob2QoImdl
c3R1cmVMb25nUHJlc3MiLCAmRXZlbnRTZW5kZXI6Omdlc3R1cmVMb25nUHJlc3MpOwogICAgIGJp
bmRNZXRob2QoImdlc3R1cmVUd29GaW5nZXJUYXAiLCAmRXZlbnRTZW5kZXI6Omdlc3R1cmVUd29G
aW5nZXJUYXApOwogICAgIGJpbmRNZXRob2QoInpvb21QYWdlSW4iLCAmRXZlbnRTZW5kZXI6Onpv
b21QYWdlSW4pOwpAQCAtMTExOSw2ICsxMTIwLDEyIEBAIHZvaWQgRXZlbnRTZW5kZXI6Omdlc3R1
cmVUYXBEb3duKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiBy
CiAgICAgZ2VzdHVyZUV2ZW50KFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXBEb3duLCBhcmd1bWVu
dHMpOwogfQogCit2b2lkIEV2ZW50U2VuZGVyOjpnZXN0dXJlVGFwQ2FuY2VsKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0
LT5zZXROdWxsKCk7CisgICAgZ2VzdHVyZUV2ZW50KFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXBD
YW5jZWwsIGFyZ3VtZW50cyk7Cit9CisKIHZvaWQgRXZlbnRTZW5kZXI6Omdlc3R1cmVMb25nUHJl
c3MoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkK
IHsKICAgICByZXN1bHQtPnNldE51bGwoKTsKQEAgLTExODIsNiArMTE4OSwxMCBAQCB2b2lkIEV2
ZW50U2VuZGVyOjpnZXN0dXJlRXZlbnQoV2ViSW5wdXRFdmVudDo6VHlwZSB0eXBlLCBjb25zdCBD
cHBBcmd1bWVudExpc3QmCiAgICAgICAgIGV2ZW50LnggPSBwb2ludC54OwogICAgICAgICBldmVu
dC55ID0gcG9pbnQueTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpH
ZXN0dXJlVGFwQ2FuY2VsOgorICAgICAgICBldmVudC54ID0gcG9pbnQueDsKKyAgICAgICAgZXZl
bnQueSA9IHBvaW50Lnk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6
R2VzdHVyZUxvbmdQcmVzczoKICAgICAgICAgZXZlbnQueCA9IHBvaW50Lng7CiAgICAgICAgIGV2
ZW50LnkgPSBwb2ludC55OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9FdmVudFNlbmRlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9FdmVudFNlbmRlci5oCmluZGV4IDgyOGU3Yzg0MjYzNzU5MTRkOGMxZmFl
ZjBjMzA3YzRjNWFlMDk5YjUuLmU2Nzk0YTA3NzBiZDg4Zjc0ZmU1MGNhMmY3MTY2MjFkNDE5ODc5
Y2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
RXZlbnRTZW5kZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL0V2ZW50U2VuZGVyLmgKQEAgLTEwNiw2ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBn
ZXN0dXJlU2Nyb2xsVXBkYXRlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsK
ICAgICB2b2lkIGdlc3R1cmVUYXAoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCop
OwogICAgIHZvaWQgZ2VzdHVyZVRhcERvd24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFy
aWFudCopOworICAgIHZvaWQgZ2VzdHVyZVRhcENhbmNlbChjb25zdCBDcHBBcmd1bWVudExpc3Qm
LCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBnZXN0dXJlTG9uZ1ByZXNzKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIGdlc3R1cmVUd29GaW5nZXJUYXAoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgZ2VzdHVyZUV2ZW50
KFdlYktpdDo6V2ViSW5wdXRFdmVudDo6VHlwZSwgY29uc3QgQ3BwQXJndW1lbnRMaXN0Jik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUt
dGFwLWFjdGl2ZS1zdGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTk5OWViY2QxZGZkMTMzYTA3YjQyNjMxMjhlOWIyYTMwYTgzMWMzNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10
YXAtYWN0aXZlLXN0YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitHZXN0dXJlcyBn
byBoZXJlCitUZXN0cyB0aGF0IHRhcCBnZXN0dXJlIGV2ZW50cyBzZXQgYW5kIGNsZWFyIHRoZSBh
Y3RpdmUgc3RhdGUgb2YgZWxlbWVudHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDYwIGZvciBk
ZXRhaWxzCisKK0dlc3R1cmVUYXBEb3duIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBwbGF0Zm9y
bQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10
YXAtYWN0aXZlLXN0YXRlLWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1pZnJhbWUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjM3NzJiZTdmYzQ1ZWY3OTFmMjBlNDljODUwYzM1M2IyZTMyYTgw
NjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0
dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1pZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTMgQEAKKworVGVzdHMgdGhhdCB0YXAgZ2VzdHVyZSBldmVudHMgc2V0IGFuZCBjbGVhciB0
aGUgYWN0aXZlIHN0YXRlIG9mIGVsZW1lbnRzLCBldmVuIHdoZW4gaW5zaWRlIGFuIGlmcmFtZSBh
bmQgdGhlIGRvY3VtZW50IGlzIHNjcm9sbGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA2MCBm
b3IgZGV0YWlscworCitHZXN0dXJlVGFwRG93biBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgcGxh
dGZvcm0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1
cmUtdGFwLWFjdGl2ZS1zdGF0ZS1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWlmcmFtZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmZiZWZiNDJmYjQ5ZDc1NDViNDM5NmUzNTgzZmMwZTI4YjcwYmMxZTIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUt
dGFwLWFjdGl2ZS1zdGF0ZS1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDYzIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI2ZyYW1lIHsKKyAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAzMDBweDsKKyAgICBsZWZ0OiA0MDBweDsK
KyAgICBoZWlnaHQ6IDMwMDBweDsKK30KKworPC9zdHlsZT4KKzxib2R5PgorPGlmcmFtZSBzcmM9
J3Jlc291cmNlcy9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtaWZyYW1lLWlubmVyLmh0bWwnIGlk
PSdmcmFtZSc+Cis8L2lmcmFtZT4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8cD5TZWUg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDYwIGZvciBkZXRhaWxz
PC9wPgorCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKworZGVzY3JpcHRp
b24oIlRlc3RzIHRoYXQgdGFwIGdlc3R1cmUgZXZlbnRzIHNldCBhbmQgY2xlYXIgdGhlIGFjdGl2
ZSBzdGF0ZSBvZiBlbGVtZW50cywgZXZlbiB3aGVuIGluc2lkZSBhbiBpZnJhbWUgYW5kIHRoZSBk
b2N1bWVudCBpcyBzY3JvbGxlZC4iKTsKKwordmFyIGlzQm94QWN0aXZlOworZnVuY3Rpb24gcnVu
VGVzdHMoYmEpCit7CisgICAgaXNCb3hBY3RpdmUgPSBiYTsKKworICAgIGlmICghd2luZG93LmV2
ZW50U2VuZGVyKSB7CisgICAgICAgIGRlYnVnKCdUaGlzIHRlc3QgcmVxdWlyZXMgRFJULicpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFldmVudFNlbmRlci5nZXN0dXJlVGFw
RG93bikgeworICAgICAgICBkZWJ1ZygnR2VzdHVyZVRhcERvd24gaXMgbm90IHN1cHBvcnRlZCBi
eSB0aGlzIHBsYXRmb3JtJyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgLy8g
U2Nyb2xsIHNvIHRoZSBib3ggaXMgYXQgdGhlIHRvcAorICAgIHdpbmRvdy5zY3JvbGxUbygwLCA0
MDApOworCisgICAgZGVidWcoIlZlcmlmeSBhY3RpdmUgaXNuJ3QgaW5pdGlhbGx5IHNldCIpOwor
ICAgIHNob3VsZEJlRmFsc2UoImlzQm94QWN0aXZlKCkiKTsKKworICAgIGRlYnVnKCJWZXJpZnkg
dGFwZG93bix0YXAgc2V0cyBhbmQgY2xlYXJzIGFjdGl2ZSIpOworICAgIGV2ZW50U2VuZGVyLmdl
c3R1cmVUYXBEb3duKDQ1MCwgNTApOworICAgIHNob3VsZEJlVHJ1ZSgiaXNCb3hBY3RpdmUoKSIp
OworICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVUYXAoNDUwLCA1MCk7CisgICAgc2hvdWxkQmVGYWxz
ZSgiaXNCb3hBY3RpdmUoKSIpOworCisgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVy
ZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Mjg2NWU5ZGY0MWU2NDE4YWMzMzVlZDc5Zjc0YzdjZTZmNTI3ODE1MAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0
aXZlLXN0YXRlLmh0bWwKQEAgLTAsMCArMSwxMDYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjYm94IHsKKyAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBibHVlOworICAgIHdpZHRoOiAzMDBweDsKKyAgICBoZWlnaHQ6IDEwMHB4OworfQorCisj
Ym94OmFjdGl2ZSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworfQorCis8L3N0eWxlPgor
PGJvZHk+Cis8ZGl2IGlkPSJib3giPkdlc3R1cmVzIGdvIGhlcmU8L2Rpdj4KKworPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8cD5TZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk2MDYwIGZvciBkZXRhaWxzPC9wPgorCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KworPHNjcmlwdD4KK3ZhciBjb2xvcjsKK2Z1bmN0aW9uIGlzQm94QWN0aXZlKCkKK3sKKyAgICAv
LyBUaGVzZSBuZWVkIHRvIG1hdGNoIHRoZSBiYWNrZ3JvdW5kLWNvbG9yIHVzZWQgYWJvdmUsIGFm
dGVyIHJvdW5kLXRyaXBwaW5nLgorICAgIHZhciBkZWZhdWx0Q29sb3IgPSAicmdiKDAsIDAsIDI1
NSkiOworICAgIHZhciBhY3RpdmVDb2xvciA9ICJyZ2IoMjU1LCAwLCAwKSI7CisKKyAgICB2YXIg
YiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gnKTsKKyAgICBjb2xvciA9IHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGIpLmJhY2tncm91bmRDb2xvcjsKKyAgICBpZiAoY29sb3IgPT0gYWN0
aXZlQ29sb3IpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoY29sb3IgIT0gZGVmYXVsdENv
bG9yKQorICAgICAgdGVzdEZhaWxlZCgnR290IHVuZXhwZWN0ZWQgYmFja2dyb3VuZENvbG9yOiAn
ICsgY29sb3IpOworICAgIHJldHVybiBmYWxzZTsKK30KKworZGVzY3JpcHRpb24oIlRlc3RzIHRo
YXQgdGFwIGdlc3R1cmUgZXZlbnRzIHNldCBhbmQgY2xlYXIgdGhlIGFjdGl2ZSBzdGF0ZSBvZiBl
bGVtZW50cy4iKTsKKworZnVuY3Rpb24gcnVuVGVzdHMoKQoreworICAgIGlmICghd2luZG93LmV2
ZW50U2VuZGVyKSB7CisgICAgICAgIGRlYnVnKCdUaGlzIHRlc3QgcmVxdWlyZXMgRFJULicpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFldmVudFNlbmRlci5nZXN0dXJlVGFw
RG93bikgeworICAgICAgICBkZWJ1ZygnR2VzdHVyZVRhcERvd24gaXMgbm90IHN1cHBvcnRlZCBi
eSB0aGlzIHBsYXRmb3JtJyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkZWJ1Zygi
VmVyaWZ5IGFjdGl2ZSBpc24ndCBpbml0aWFsbHkgc2V0Iik7CisgICAgc2hvdWxkQmVGYWxzZSgi
aXNCb3hBY3RpdmUoKSIpOworCisgICAgZGVidWcoIlZlcmlmeSB0YXBkb3duLHRhcCBzZXRzIGFu
ZCBjbGVhcnMgYWN0aXZlIik7CisgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVRhcERvd24oNTAsIDUw
KTsKKyAgICBzaG91bGRCZVRydWUoImlzQm94QWN0aXZlKCkiKTsKKyAgICBldmVudFNlbmRlci5n
ZXN0dXJlVGFwKDUwLCA1MCk7CisgICAgc2hvdWxkQmVGYWxzZSgiaXNCb3hBY3RpdmUoKSIpOwor
CisgICAgZGVidWcoIlZlcmlmeSB0YXBkb3duLHRhcGNhbmNlbCBvbiB0aGUgZWxlbWVudCBzZXRz
IGFuZCBjbGVhcnMgYWN0aXZlIik7CisgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVRhcERvd24oNTAs
IDUwKTsKKyAgICBzaG91bGRCZVRydWUoImlzQm94QWN0aXZlKCkiKTsKKyAgICBldmVudFNlbmRl
ci5nZXN0dXJlVGFwQ2FuY2VsKDUwLCA1MCk7CisgICAgc2hvdWxkQmVGYWxzZSgiaXNCb3hBY3Rp
dmUoKSIpOworCisgICAgZGVidWcoIlZlcmlmeSB0YXAgZWxzZXdoZXJlIHN0aWxsIGNsZWFycyBh
Y3RpdmUiKTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlVGFwRG93big1MCwgNTApOworICAgIHNo
b3VsZEJlVHJ1ZSgiaXNCb3hBY3RpdmUoKSIpOworICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVUYXAo
NDAwLCAyNTApOworICAgIHNob3VsZEJlRmFsc2UoImlzQm94QWN0aXZlKCkiKTsKKworICAgIGRl
YnVnKCJWZXJpZnkgdGFwQ2FuY2VsIGVsc2V3aGVyZSBzdGlsbCBjbGVhcnMgYWN0aXZlIik7Cisg
ICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVRhcERvd24oNTAsIDUwKTsKKyAgICBzaG91bGRCZVRydWUo
ImlzQm94QWN0aXZlKCkiKTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlVGFwQ2FuY2VsKDQwMCwg
MjUwKTsKKyAgICBzaG91bGRCZUZhbHNlKCJpc0JveEFjdGl2ZSgpIik7CisKKyAgICBkZWJ1Zygi
VmVyaWZ5IHRoYXQgdG91Y2hzdGFydCBkb2Vzbid0IHRyaWdnZXIgYWN0aXZlIHN0YXRlIik7Cisg
ICAgZXZlbnRTZW5kZXIuYWRkVG91Y2hQb2ludCg1MCwgNTApOworICAgIGV2ZW50U2VuZGVyLnRv
dWNoU3RhcnQoKTsKKyAgICBzaG91bGRCZUZhbHNlKCJpc0JveEFjdGl2ZSgpIik7CisgICAgZXZl
bnRTZW5kZXIucmVsZWFzZVRvdWNoUG9pbnQoMCk7CisgICAgZXZlbnRTZW5kZXIudG91Y2hFbmQo
KTsKKworICAgIGRlYnVnKCJWZXJpZnkgdGhhdCB0b3VjaHN0YXJ0L3RvdWNoZW5kIGRvZXNuJ3Qg
Y2FuY2VsIGFjdGl2ZSIpOworICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVUYXBEb3duKDUwLCA1MCk7
CisgICAgc2hvdWxkQmVUcnVlKCJpc0JveEFjdGl2ZSgpIik7CisgICAgZXZlbnRTZW5kZXIuYWRk
VG91Y2hQb2ludCg1MCwgNTApOworICAgIGV2ZW50U2VuZGVyLnRvdWNoU3RhcnQoKTsKKyAgICBz
aG91bGRCZVRydWUoImlzQm94QWN0aXZlKCkiKTsKKyAgICBldmVudFNlbmRlci5yZWxlYXNlVG91
Y2hQb2ludCgwKTsKKyAgICBldmVudFNlbmRlci50b3VjaEVuZCgpOworICAgIHNob3VsZEJlVHJ1
ZSgiaXNCb3hBY3RpdmUoKSIpOworICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVUYXAoNTAsIDUwKTsK
KyAgICBzaG91bGRCZUZhbHNlKCJpc0JveEFjdGl2ZSgpIik7Cit9CisKK3J1blRlc3RzKCk7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcmVzb3VyY2VzL2dlc3R1cmUtdGFwLWFjdGl2ZS1z
dGF0ZS1pZnJhbWUtaW5uZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dl
c3R1cmUvcmVzb3VyY2VzL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1pZnJhbWUtaW5uZXIuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44MDFmOWRhZmNjZjhhYjUzZTYwYTIwNDYyMTk5ZTM5NzA0NzA4NTE5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9y
ZXNvdXJjZXMvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWlmcmFtZS1pbm5lci5odG1sCkBAIC0w
LDAgKzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8c3R5bGUgdHlwZT0idGV4dC9j
c3MiPgorI2JveCB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGJhY2tncm91bmQtY29s
b3I6IGJsdWU7CisgICAgd2lkdGg6IDMwMHB4OworICAgIGhlaWdodDogMTAwcHg7CisgICAgdG9w
OiAxMDBweDsKK30KKworI2JveDphY3RpdmUgeworICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsK
K30KKworPC9zdHlsZT4KKzxzY3JpcHQ+Cit2YXIgY29sb3I7CitmdW5jdGlvbiBpc0JveEFjdGl2
ZSgpCit7CisgICAgLy8gVGhlc2UgbmVlZCB0byBtYXRjaCB0aGUgYmFja2dyb3VuZC1jb2xvciB1
c2VkIGFib3ZlLCBhZnRlciByb3VuZC10cmlwcGluZy4KKyAgICB2YXIgZGVmYXVsdENvbG9yID0g
InJnYigwLCAwLCAyNTUpIjsKKyAgICB2YXIgYWN0aXZlQ29sb3IgPSAicmdiKDI1NSwgMCwgMCki
OworCisgICAgdmFyIGIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94Jyk7CisgICAgY29s
b3IgPSBnZXRDb21wdXRlZFN0eWxlKGIpLmJhY2tncm91bmRDb2xvcjsKKyAgICBpZiAoY29sb3Ig
PT0gYWN0aXZlQ29sb3IpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoY29sb3IgIT0gZGVm
YXVsdENvbG9yKQorICAgICAgdGhyb3cgIkdvdCB1bmV4cGVjdGVkIGJhY2tncm91bmRDb2xvcjog
IiArIGNvbG9yOworICAgIHJldHVybiBmYWxzZTsKK30KKworPC9zY3JpcHQ+Cis8Ym9keSBvbmxv
YWQ9J3BhcmVudC5ydW5UZXN0cyhpc0JveEFjdGl2ZSknPgorPGRpdiBpZD0nYm94Jz5HZXN0dXJl
cyBnbyBoZXJlPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1hbmRyb2lkL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2Vz
dHVyZS10YXAtYWN0aXZlLXN0YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLWFuZHJvaWQvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1h
Y3RpdmUtc3RhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5OTllYmNkMWRmZDEzM2EwN2I0
MjYzMTI4ZTliMmEzMGE4MzFjMzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1hbmRyb2lkL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10
YXAtYWN0aXZlLXN0YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitHZXN0dXJlcyBn
byBoZXJlCitUZXN0cyB0aGF0IHRhcCBnZXN0dXJlIGV2ZW50cyBzZXQgYW5kIGNsZWFyIHRoZSBh
Y3RpdmUgc3RhdGUgb2YgZWxlbWVudHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDYwIGZvciBk
ZXRhaWxzCisKK0dlc3R1cmVUYXBEb3duIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBwbGF0Zm9y
bQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWFuZHJvaWQvZmFzdC9ldmVu
dHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtaWZyYW1lLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWFuZHJvaWQvZmFzdC9ldmVudHMv
dG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtaWZyYW1lLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zNzcyYmU3ZmM0NWVmNzkxZjIwZTQ5Yzg1MGMzNTNiMmUzMmE4MDY3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tYW5kcm9pZC9m
YXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1pZnJhbWUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKKworVGVzdHMgdGhhdCB0YXAgZ2VzdHVyZSBl
dmVudHMgc2V0IGFuZCBjbGVhciB0aGUgYWN0aXZlIHN0YXRlIG9mIGVsZW1lbnRzLCBldmVuIHdo
ZW4gaW5zaWRlIGFuIGlmcmFtZSBhbmQgdGhlIGRvY3VtZW50IGlzIHNjcm9sbGVkLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05NjA2MCBmb3IgZGV0YWlscworCitHZXN0dXJlVGFwRG93biBpcyBub3Qg
c3VwcG9ydGVkIGJ5IHRoaXMgcGxhdGZvcm0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50
cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzMzOWMwOGJjYTM0M2VkNDU5MDI4Y2M4YjZkZTVhMjA1MWMyZTI3NwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3Rv
dWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMzIEBACitHZXN0dXJlcyBnbyBoZXJlCitUZXN0cyB0aGF0IHRhcCBnZXN0dXJlIGV2ZW50
cyBzZXQgYW5kIGNsZWFyIHRoZSBhY3RpdmUgc3RhdGUgb2YgZWxlbWVudHMuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk2MDYwIGZvciBkZXRhaWxzCisKK1ZlcmlmeSBhY3RpdmUgaXNuJ3QgaW5pdGlh
bGx5IHNldAorUEFTUyBpc0JveEFjdGl2ZSgpIGlzIGZhbHNlCitWZXJpZnkgdGFwZG93bix0YXAg
c2V0cyBhbmQgY2xlYXJzIGFjdGl2ZQorUEFTUyBpc0JveEFjdGl2ZSgpIGlzIHRydWUKK1BBU1Mg
aXNCb3hBY3RpdmUoKSBpcyBmYWxzZQorVmVyaWZ5IHRhcGRvd24sdGFwY2FuY2VsIG9uIHRoZSBl
bGVtZW50IHNldHMgYW5kIGNsZWFycyBhY3RpdmUKK1BBU1MgaXNCb3hBY3RpdmUoKSBpcyB0cnVl
CitQQVNTIGlzQm94QWN0aXZlKCkgaXMgZmFsc2UKK1ZlcmlmeSB0YXAgZWxzZXdoZXJlIHN0aWxs
IGNsZWFycyBhY3RpdmUKK1BBU1MgaXNCb3hBY3RpdmUoKSBpcyB0cnVlCitQQVNTIGlzQm94QWN0
aXZlKCkgaXMgZmFsc2UKK1ZlcmlmeSB0YXBDYW5jZWwgZWxzZXdoZXJlIHN0aWxsIGNsZWFycyBh
Y3RpdmUKK1BBU1MgaXNCb3hBY3RpdmUoKSBpcyB0cnVlCitQQVNTIGlzQm94QWN0aXZlKCkgaXMg
ZmFsc2UKK1ZlcmlmeSB0aGF0IHRvdWNoc3RhcnQgZG9lc24ndCB0cmlnZ2VyIGFjdGl2ZSBzdGF0
ZQorUEFTUyBpc0JveEFjdGl2ZSgpIGlzIGZhbHNlCitWZXJpZnkgdGhhdCB0b3VjaHN0YXJ0L3Rv
dWNoZW5kIGRvZXNuJ3QgY2FuY2VsIGFjdGl2ZQorUEFTUyBpc0JveEFjdGl2ZSgpIGlzIHRydWUK
K1BBU1MgaXNCb3hBY3RpdmUoKSBpcyB0cnVlCitQQVNTIGlzQm94QWN0aXZlKCkgaXMgdHJ1ZQor
UEFTUyBpc0JveEFjdGl2ZSgpIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3Rh
dGUtaWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zh
c3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWlmcmFtZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA0ODFlMDY3NjYyZDE4YjdiNDNiYjFkOWZmYzQzZjlh
OTMwZTIwYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWlmcmFt
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorCitUZXN0cyB0aGF0IHRhcCBnZXN0dXJl
IGV2ZW50cyBzZXQgYW5kIGNsZWFyIHRoZSBhY3RpdmUgc3RhdGUgb2YgZWxlbWVudHMsIGV2ZW4g
d2hlbiBpbnNpZGUgYW4gaWZyYW1lIGFuZCB0aGUgZG9jdW1lbnQgaXMgc2Nyb2xsZWQuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk2MDYwIGZvciBkZXRhaWxzCisKK1ZlcmlmeSBhY3RpdmUgaXNuJ3Qg
aW5pdGlhbGx5IHNldAorUEFTUyBpc0JveEFjdGl2ZSgpIGlzIGZhbHNlCitWZXJpZnkgdGFwZG93
bix0YXAgc2V0cyBhbmQgY2xlYXJzIGFjdGl2ZQorUEFTUyBpc0JveEFjdGl2ZSgpIGlzIHRydWUK
K1BBU1MgaXNCb3hBY3RpdmUoKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNoL3RvdWNoLWFjdGl2ZS1zdGF0ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy90b3VjaC90b3Vj
aC1hY3RpdmUtc3RhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjOGY2YWY0YTVlOTMwZTE5
Zjk3MzcyNTFjMTA0NzljMzNjOTcwNTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC1hY3RpdmUtc3RhdGUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0ZBSUwKK1Rlc3QgdG91Y2hlcyBzZXQgdGhlIGFj
dGl2ZSBzdGF0ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164432</attachid>
            <date>2012-09-17 12:02:13 -0700</date>
            <delta_ts>2012-09-17 12:39:17 -0700</delta_ts>
            <desc>Fix ChangeLog</desc>
            <filename>bug-96060-20120917150141.patch</filename>
            <type>text/plain</type>
            <size>26356</size>
            <attacher name="Rick Byers">rbyers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NjI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTE5YmE2NDFmMmJmZTNh
ZTJmNmJjMDg4NzhjNGE0M2IxNTExZDdlMy4uNGNhMmZiNjliYTA5NTUwM2Q5Y2UyNWExOWFlYThi
ZGQ2Yzc4YzMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA5LTA4ICBSaWNr
IEJ5ZXJzICA8cmJ5ZXJzQGNocm9taXVtLm9yZz4KKworICAgICAgICBBbGxvdyBnZXN0dXJlIGV2
ZW50cyB0byBzZXQgYWN0aXZlL2hvdmVyIHN0YXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIEdlc3R1cmVUYXBEb3duQ2FuY2VsIGFzIGEgbmV3
IFBsYXRmb3JtR2VzdHVyZUV2ZW50IHR5cGUuICBPbiBwb3J0cworICAgICAgICB0aGF0IHN1cHBv
cnQgZ2VzdHVyZSBldmVudHMsIHVzZSBHZXN0dXJlVGFwRG93biB0byB0cmlnZ2VyIGFjdGl2ZS9o
b3ZlcgorICAgICAgICBzdGF0ZXMsIGFuZCBHZXN0dXJlVGFwL0dlc3R1cmVUYXBEb3duQ2FuY2Vs
IHRvIGNsZWFyIHRoZW0uICBUaGlzIGlzCisgICAgICAgIHN1cGVyaW9yIHRvIHVzaW5nIHRvdWNo
IGV2ZW50cyBmb3IgYSBudW1iZXIgb2YgcmVhc29uczoKKyAgICAgICAgICAxKSBzb21lIHBvcnRz
IChjaHJvbWl1bSkgYXZvaWQgc2VuZGluZyB0b3VjaCBldmVudHMgdW5sZXNzIGFic29sdXRlbHkK
KyAgICAgICAgICBuZWNlc3NhcnksIHNpbmNlIHRoZXkgaHVydCBzY3JvbGwgcGVyZm9ybWFuY2Ug
YnkgYmxvY2tpbmcgdGhyZWFkZWQKKyAgICAgICAgICBzY3JvbGxpbmcuCisgICAgICAgICAgMikg
d2l0aCB0b3VjaCwgYW5kIGVsZW1lbnQgcmVhbGx5IHNob3VsZG4ndCBiZSAnYWN0aXZlJyB3aGVu
IHRoZSB1c2VyCisgICAgICAgICAgaGFwcGVucyB0byBiZSB0b3VjaGluZyBpdCB3aGlsZSBzY3Jv
bGxpbmcuICBJbiB0aGF0IGNhc2UgdGhleSBhcmVuJ3QKKyAgICAgICAgICAnbWFuaXB1bGF0aW5n
IHRoZSBlbGVtZW50JywgdGhleSdyZSBtYW5pcHVsYXRpbmcgdGhlIHBhZ2Ugb3IgZGl2IHRoYXQK
KyAgICAgICAgICBpcyBzY3JvbGxpbmcuCisgICAgICAgICAgMykgc2ltaWxhcmx5LCB0aGVyZSBt
YXkgYmUgb3RoZXIgZ2VzdHVyZXMgdGhhdCBpbnZvbHZlIHRvdWNoaW5nIHRoZQorICAgICAgICAg
IGVsZW1lbnQgd2hpY2ggYXJlbid0IHJlYWxseSBhYm91dCBtYW5pcHVsYXRpbmcgdGhhdCBlbGVt
ZW50IChlZy4KKyAgICAgICAgICBwaW5jaCB0byB6b29tKS4KKworICAgICAgICBUZXN0OiBmYXN0
L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS5odG1sCisgICAg
ICAgIFRlc3Q6IGZhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0
YXRlLWlmcmFtZS5odG1sCisgICAgICAgICogZG9tL0dlc3R1cmVFdmVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHZXN0dXJlRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogcGFnZS9FdmVudEhh
bmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJl
RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50Lmg6CisKIDIwMTItMDktMTQgIE1p
Y2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNoZWxhbmdlbG9Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBVc2UgYXJyYXlzIGluIHNoYWRlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZGY2
MDUxZmIzOGVhMTYyZjhmYTFkNmRhMDhiNTNmYmMxMWM0NTg3Ni4uZDZlMzI5NGUwOWU4NmZmZDYz
NTBlYjM3NzBmOTkzMmQxZmFjODkxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxMi0wOS0wOCAgUmljayBCeWVycyAgPHJieWVyc0BjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgU2VuZCBHZXN0dXJlVGFwRG93bkNhbmNlbCB0byBXZWJDb3JlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA2MAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBsdW1iIFdlYklucHV0RXZl
bnQ6OkdldHN1cmVUYXBDYW5jZWwgdG8KKyAgICAgICAgUGxhdGZvcm1JbnB1dEV2ZW50OjpHZXN0
dXJlVGFwRG93bkNhbmNlbC4gIEFmdGVyIGFsbCB0aGUgY2hyb21pdW0gY29kZQorICAgICAgICB3
YXMgbGFuZGVkLCBpdCB3YXMgc3VnZ2VzdGVkIHRoYXQgJ1RhcERvd25DYW5jZWwnIHdhcyBhIGJl
dHRlciBuYW1lCisgICAgICAgIHRoYW4gJ1RhcENhbmNlbCcgc2luY2UgeW91IGNhbid0IGNhbmNl
bCBhIFRhcC4gIEknbSBub3QgY2hhbmdpbmcgdGhlCisgICAgICAgIFdlYklucHV0RXZlbnQgZGVm
aW5pdGlvbiBoZXJlIGJlY2F1c2UgdGhhdCB3b3VsZCBiZSBhIGJyZWFraW5nIGNoYW5nZQorICAg
ICAgICB0byBjaHJvbWl1bSwgYnV0IEkgY2FuIGRvIHRoYXQgYXMgYSBzZXJpZXMgb2YgZm9sbG93
LXVwIENMcy4KKyAgICAgICAgKiBzcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXI6OlBsYXRmb3JtR2VzdHVy
ZUV2ZW50QnVpbGRlcik6CisgICAgICAgICogc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KToKKyAgICAg
ICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
aGFuZGxlR2VzdHVyZUV2ZW50KToKKwogMjAxMi0wOS0xNCAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlz
aGlAd2Via2l0Lm9yZz4KIAogICAgICAgICBNYWtlIHRpbWUgaW5wdXQgbGFuZyBhdHRyaWJ1dGUg
YXdhcmUgZm9yIHRlc3RpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9HZXN0dXJl
RXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5jcHAKaW5kZXggZDc1
Y2RhYTA5NjY5ZWYzYTcxNTZjOWQ1NTYxNDE0NzNlMDY2OGJjMi4uMWU3Yjg3ZTdhZjJhNWZjZTc0
YmZlZTU2OGY3ZDNjNGU4NzM1YWM3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0dl
c3R1cmVFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5jcHAK
QEAgLTU4LDYgKzU4LDcgQEAgUGFzc1JlZlB0cjxHZXN0dXJlRXZlbnQ+IEdlc3R1cmVFdmVudDo6
Y3JlYXRlKFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBjb24KICAgICBjYXNlIFBsYXRm
b3JtRXZlbnQ6Okdlc3R1cmVQaW5jaEJlZ2luOgogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2Vz
dHVyZVBpbmNoRW5kOgogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVBpbmNoVXBkYXRl
OgorICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVRhcERvd25DYW5jZWw6CiAgICAgZGVm
YXVsdDoKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCmluZGV4IDQ4ZDA3OWUyMmI3MWM0MWE1ZDkzMDRkOGJlMjFiYTI2YjhiMzg5MjEuLmFh
OThlNjUyMTIzMDczOTgxNjM5YTI1ZDczYjY4MDNkMWU4MTAzMjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKQEAgLTI2NCw2ICsyNjQsMjAgQEAgc3RhdGljIGlubGluZSBib29s
IHNjcm9sbE5vZGUoZmxvYXQgZGVsdGEsIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBT
Y3JvbGwKICAgICByZXR1cm4gZW5jbG9zaW5nQm94LT5zY3JvbGwoZGVsdGEgPCAwID8gbmVnYXRp
dmVEaXJlY3Rpb24gOiBwb3NpdGl2ZURpcmVjdGlvbiwgZ3JhbnVsYXJpdHksIGFic0RlbHRhLCBz
dG9wTm9kZSk7CiB9CiAKKyNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCitzdGF0aWMgaW5saW5l
IGJvb2wgc2hvdWxkR2VzdHVyZXNUcmlnZ2VyQWN0aXZlKCkKK3sKKyAgICAvLyBJZiB0aGUgcGxh
dGZvcm0gd2UncmUgb24gc3VwcG9ydHMgR2VzdHVyZVRhcERvd24gYW5kIEdlc3R1cmVUYXBDYW5j
ZWwgdGhlbiB3ZSdsbAorICAgIC8vIHJlbHkgb24gdGhlbSB0byBzZXQgdGhlIGFjdGl2ZSBzdGF0
ZS4gVW5mb3J0dW5hdGVseSB0aGVyZSdzIG5vIGdlbmVyaWMgd2F5IHRvCisgICAgLy8ga25vdyBp
biBhZHZhbmNlIHdoYXQgZXZlbnQgdHlwZXMgYXJlIHN1cHBvcnRlZC4KKyNpZiBQTEFURk9STShD
SFJPTUlVTSkgJiYgIU9TKEFORFJPSUQpCisgICAgcmV0dXJuIHRydWU7CisjZWxzZQorICAgIHJl
dHVybiBmYWxzZTsKKyNlbmRpZgorfQorI2VuZGlmCisKICNpZiAhUExBVEZPUk0oTUFDKQogCiBp
bmxpbmUgYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50TG9vcEhhbmRsZU1vdXNlVXAoY29uc3QgTW91
c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpCkBAIC0yMzgwLDkgKzIzOTQsMjAgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVFdmVudChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVu
dCYgZ2VzdHVyZUV2ZW50KQogICAgIGlmIChnZXN0dXJlRXZlbnQudHlwZSgpID09IFBsYXRmb3Jt
RXZlbnQ6Okdlc3R1cmVTY3JvbGxFbmQgfHwgZ2VzdHVyZUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9y
bUV2ZW50OjpHZXN0dXJlU2Nyb2xsVXBkYXRlKQogICAgICAgICBldmVudFRhcmdldCA9IG1fc2Ny
b2xsR2VzdHVyZUhhbmRsaW5nTm9kZS5nZXQoKTsKIAotICAgIGlmICghZXZlbnRUYXJnZXQpIHsK
KyAgICBIaXRUZXN0UmVxdWVzdDo6SGl0VGVzdFJlcXVlc3RUeXBlIGhpdFR5cGUgPSBIaXRUZXN0
UmVxdWVzdDo6VG91Y2hFdmVudDsKKyAgICBpZiAoZ2VzdHVyZUV2ZW50LnR5cGUoKSA9PSBQbGF0
Zm9ybUV2ZW50OjpHZXN0dXJlVGFwRG93bikKKyAgICAgICAgaGl0VHlwZSB8PSBIaXRUZXN0UmVx
dWVzdDo6QWN0aXZlOworICAgIGVsc2UgaWYgKGdlc3R1cmVFdmVudC50eXBlKCkgPT0gUGxhdGZv
cm1FdmVudDo6R2VzdHVyZVRhcCB8fCBnZXN0dXJlRXZlbnQudHlwZSgpID09IFBsYXRmb3JtRXZl
bnQ6Okdlc3R1cmVUYXBEb3duQ2FuY2VsKQorICAgICAgICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1
ZXN0OjpSZWxlYXNlOworICAgIGVsc2UKKyAgICAgICAgaGl0VHlwZSB8PSBIaXRUZXN0UmVxdWVz
dDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5OworCisgICAgaWYgKCFzaG91bGRH
ZXN0dXJlc1RyaWdnZXJBY3RpdmUoKSkKKyAgICAgICAgaGl0VHlwZSB8PSBIaXRUZXN0UmVxdWVz
dDo6UmVhZE9ubHk7CisKKyAgICBpZiAoIWV2ZW50VGFyZ2V0IHx8ICEoaGl0VHlwZSAmIEhpdFRl
c3RSZXF1ZXN0OjpSZWFkT25seSkpIHsKICAgICAgICAgSW50UG9pbnQgaGl0VGVzdFBvaW50ID0g
bV9mcmFtZS0+dmlldygpLT53aW5kb3dUb0NvbnRlbnRzKGdlc3R1cmVFdmVudC5wb3NpdGlvbigp
KTsKLSAgICAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQgPSBoaXRUZXN0UmVzdWx0QXRQb2ludCho
aXRUZXN0UG9pbnQsIGZhbHNlLCBmYWxzZSwgRG9udEhpdFRlc3RTY3JvbGxiYXJzLCBIaXRUZXN0
UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlKTsKKyAgICAgICAgSGl0
VGVzdFJlc3VsdCByZXN1bHQgPSBoaXRUZXN0UmVzdWx0QXRQb2ludChoaXRUZXN0UG9pbnQsIGZh
bHNlLCBmYWxzZSwgRG9udEhpdFRlc3RTY3JvbGxiYXJzLCBoaXRUeXBlKTsKICAgICAgICAgZXZl
bnRUYXJnZXQgPSByZXN1bHQudGFyZ2V0Tm9kZSgpOwogICAgIH0KIApAQCAtMjQyMCw2ICsyNDQ1
LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVFdmVudChjb25zdCBQbGF0Zm9y
bUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50KQogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2Vz
dHVyZVBpbmNoQmVnaW46CiAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlUGluY2hFbmQ6
CiAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlUGluY2hVcGRhdGU6CisgICAgY2FzZSBQ
bGF0Zm9ybUV2ZW50OjpHZXN0dXJlVGFwRG93bkNhbmNlbDoKICAgICAgICAgYnJlYWs7CiAgICAg
ZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zNTU0LDYgKzM1ODAs
MTEgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1U
b3VjaEV2ZW50JiBldmVudCkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKKyNpZiBF
TkFCTEUoR0VTVFVSRV9FVkVOVFMpCisgICAgICAgIGlmIChzaG91bGRHZXN0dXJlc1RyaWdnZXJB
Y3RpdmUoKSkKKyAgICAgICAgICAgIGhpdFR5cGUgfD0gSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5
OworI2VuZGlmCisKICAgICAgICAgLy8gSW5jcmVtZW50IHRoZSBwbGF0Zm9ybSB0b3VjaCBpZCBi
eSAxIHRvIGF2b2lkIHN0b3JpbmcgYSBrZXkgb2YgMCBpbiB0aGUgaGFzaG1hcC4KICAgICAgICAg
dW5zaWduZWQgdG91Y2hQb2ludFRhcmdldEtleSA9IHBvaW50LmlkKCkgKyAxOwogICAgICAgICBS
ZWZQdHI8RXZlbnRUYXJnZXQ+IHRvdWNoVGFyZ2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1FdmVudC5oCmluZGV4IDUyYzY0ODhiNmIyNjRjOWFlMGYzNDIyZmYwZTgyZWIwOTE4NzZk
ZjAuLjE3ODJiNjM0YTVkNGRkNDFjMmIwZmNhN2Q0MjJiOTAzYTgwMmRjYTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgog
ICAgICAgICBHZXN0dXJlU2Nyb2xsVXBkYXRlLAogICAgICAgICBHZXN0dXJlVGFwLAogICAgICAg
ICBHZXN0dXJlVGFwRG93biwKKyAgICAgICAgR2VzdHVyZVRhcERvd25DYW5jZWwsCiAgICAgICAg
IEdlc3R1cmVEb3VibGVUYXAsCiAgICAgICAgIEdlc3R1cmVUd29GaW5nZXJUYXAsCiAgICAgICAg
IEdlc3R1cmVMb25nUHJlc3MsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAKaW5kZXggMmFmYzdkY2ZlNzk5NWMyODQzYzFj
MjRhMGU3Nzg3NjI2NzFiNzc0NC4uZGViZTNlZTJlZWU5MGI1NmFkODFiZTRiYjdmMWFhZDllY2Nk
ZGU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVu
dENvbnZlcnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0
RXZlbnRDb252ZXJzaW9uLmNwcApAQCAtMTYxLDYgKzE2MSw5IEBAIFBsYXRmb3JtR2VzdHVyZUV2
ZW50QnVpbGRlcjo6UGxhdGZvcm1HZXN0dXJlRXZlbnRCdWlsZGVyKFdpZGdldCogd2lkZ2V0LCBj
b25zdCBXCiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwRG93bjoKICAgICAgICAg
bV90eXBlID0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZVRhcERvd247CiAgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcENhbmNlbDoKKyAgICAgICAgbV90eXBl
ID0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZVRhcERvd25DYW5jZWw7CisgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZURvdWJsZVRhcDoKICAgICAgICAgbV90eXBl
ID0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZURvdWJsZVRhcDsKICAgICAgICAgYnJlYWs7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQb3B1cE1lbnVJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwCmluZGV4IDU4
YTI4NTVjZDliMzRkY2ExZGJlMjAxZTU3MzZhNjc5ZjE3NmI0ZDMuLjUxMTE0MDIwYmYzYmM1MGVi
MmVmMmZiNWJjYmNjY2UwNmNjNjJiYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlBvcHVwTWVudUltcGwuY3BwCkBAIC0yNzcsNiArMjc3LDcgQEAgYm9vbCBXZWJQb3B1
cE1lbnVJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmIGlucHV0RXZl
bnQpCiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlRmxpbmdDYW5jZWw6CiAgICAgY2Fz
ZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwOgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2Vz
dHVyZVRhcERvd246CisgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwQ2FuY2VsOgog
ICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZURvdWJsZVRhcDoKICAgICBjYXNlIFdlYklu
cHV0RXZlbnQ6Okdlc3R1cmVUd29GaW5nZXJUYXA6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpH
ZXN0dXJlTG9uZ1ByZXNzOgpAQCAtMjg4LDcgKzI4OSw2IEBAIGJvb2wgV2ViUG9wdXBNZW51SW1w
bDo6aGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50JiBpbnB1dEV2ZW50KQogICAg
IGNhc2UgV2ViSW5wdXRFdmVudDo6VW5kZWZpbmVkOgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6
TW91c2VFbnRlcjoKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6OkNvbnRleHRNZW51OgotICAgIGNh
c2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcENhbmNlbDoKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5jcHAKaW5kZXggZDE4Y2QyMzZjZWQ0OTJkMzVmNzEzMDJiMTgzNjA2Y2MyNWQ1
OTQzMy4uOTc0MTZlMDI0MDMyOGYzNjc1ZDRkMWZiMWYwYTI0Y2Q2N2JlNzI3NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtNzY1LDE1ICs3NjUsMTIg
QEAgYm9vbCBXZWJWaWV3SW1wbDo6aGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IFdlYkdlc3R1cmVF
dmVudCYgZXZlbnQpCiAgICAgICAgIG1fY2xpZW50LT5jYW5jZWxTY2hlZHVsZWRDb250ZW50SW50
ZW50cygpOwogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVNjcm9sbEVuZDoKICAgICBj
YXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxVcGRhdGU6CisgICAgY2FzZSBXZWJJbnB1
dEV2ZW50OjpHZXN0dXJlVGFwQ2FuY2VsOgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVy
ZVBpbmNoRW5kOgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVBpbmNoVXBkYXRlOiB7
CiAgICAgICAgIFBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRlciBwbGF0Zm9ybUV2ZW50KG1haW5G
cmFtZUltcGwoKS0+ZnJhbWVWaWV3KCksIGV2ZW50KTsKICAgICAgICAgcmV0dXJuIG1haW5GcmFt
ZUltcGwoKS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZUdlc3R1cmVFdmVudChwbGF0
Zm9ybUV2ZW50KTsKICAgICB9Ci0gICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwQ2Fu
Y2VsOgotICAgICAgICAvLyBGSVhNRTogVXBkYXRlIFdlYkNvcmUgdG8gaGFuZGxlIHRoaXMgZXZl
bnQgYWZ0ZXIgY2hyb21pdW0gaGFzIGJlZW4gdXBkYXRlZCB0byBzZW5kIGl0Ci0gICAgICAgIC8v
IGh0dHA6Ly93a2IudWcvOTYwNjAKLSAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGRlZmF1bHQ6
CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1NmE5Y2ZjNTk2ZTYxZGVjYTA4Nzky
ZDY3NGVjNTMyYjZlNTQ5MjNhLi4xNDMzODM2NmQ4ZDE3ZjU2ODc3MzY1NjE3NDZiOTU4MzBjYmJl
Zjg4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTItMDktMDggIFJpY2sgQnllcnMgIDxyYnllcnNAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIEFkZCBoYW5kbGluZyBvZiBuZXcgR2VzdHVyZVRhcENhbmNlbCBpbiBE
UlQKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYx
ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwOgorICAgICAgICAoVGVzdFdl
YlBsdWdpbjo6aGFuZGxlSW5wdXRFdmVudCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vRXZlbnRTZW5kZXIuY3BwOgorICAgICAgICAoRXZlbnRTZW5kZXI6Omdlc3R1cmVUYXBD
YW5jZWwpOgorCiAyMDEyLTA5LTE0ICBab2x0YW4gSG9ydmF0aCAgPHpvbHRhbkB3ZWJraXQub3Jn
PgogCiAgICAgICAgIGNoZWNrLXdlYmtpdC1zdHlsZSBzaG91bGQgbm90IHdhcm4gaW4gY2FzZSBv
ZiBOT05DT1BZQUJMRSBhbmQgRkFTVF9BTExPQ0FURUQgbWFjcm9zCmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2ZW50U2VuZGVyLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvRXZlbnRTZW5kZXIuY3BwCmlu
ZGV4IGQ1ZWFhYzRhZGExZGRlNTk2YzA4YTg2MGQ5MzVhZjIyZTZiYjllZmMuLjIzNjAxMjg2NTFj
NjBmOTlmZjI1YzdkZWJlNjA3NzUyOTUxNjkzN2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvRXZlbnRTZW5kZXIuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvRXZlbnRTZW5kZXIuY3BwCkBAIC0yODcs
NiArMjg3LDcgQEAgRXZlbnRTZW5kZXI6OkV2ZW50U2VuZGVyKCkKICAgICBiaW5kTWV0aG9kKCJn
ZXN0dXJlU2Nyb2xsVXBkYXRlIiwgJkV2ZW50U2VuZGVyOjpnZXN0dXJlU2Nyb2xsVXBkYXRlKTsK
ICAgICBiaW5kTWV0aG9kKCJnZXN0dXJlVGFwIiwgJkV2ZW50U2VuZGVyOjpnZXN0dXJlVGFwKTsK
ICAgICBiaW5kTWV0aG9kKCJnZXN0dXJlVGFwRG93biIsICZFdmVudFNlbmRlcjo6Z2VzdHVyZVRh
cERvd24pOworICAgIGJpbmRNZXRob2QoImdlc3R1cmVUYXBDYW5jZWwiLCAmRXZlbnRTZW5kZXI6
Omdlc3R1cmVUYXBDYW5jZWwpOwogICAgIGJpbmRNZXRob2QoImdlc3R1cmVMb25nUHJlc3MiLCAm
RXZlbnRTZW5kZXI6Omdlc3R1cmVMb25nUHJlc3MpOwogICAgIGJpbmRNZXRob2QoImdlc3R1cmVU
d29GaW5nZXJUYXAiLCAmRXZlbnRTZW5kZXI6Omdlc3R1cmVUd29GaW5nZXJUYXApOwogICAgIGJp
bmRNZXRob2QoInpvb21QYWdlSW4iLCAmRXZlbnRTZW5kZXI6Onpvb21QYWdlSW4pOwpAQCAtMTEx
OSw2ICsxMTIwLDEyIEBAIHZvaWQgRXZlbnRTZW5kZXI6Omdlc3R1cmVUYXBEb3duKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByCiAgICAgZ2VzdHVyZUV2ZW50
KFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXBEb3duLCBhcmd1bWVudHMpOwogfQogCit2b2lkIEV2
ZW50U2VuZGVyOjpnZXN0dXJlVGFwQ2FuY2VsKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1l
bnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXROdWxsKCk7CisgICAg
Z2VzdHVyZUV2ZW50KFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXBDYW5jZWwsIGFyZ3VtZW50cyk7
Cit9CisKIHZvaWQgRXZlbnRTZW5kZXI6Omdlc3R1cmVMb25nUHJlc3MoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICByZXN1bHQtPnNl
dE51bGwoKTsKQEAgLTExODIsNiArMTE4OSwxMCBAQCB2b2lkIEV2ZW50U2VuZGVyOjpnZXN0dXJl
RXZlbnQoV2ViSW5wdXRFdmVudDo6VHlwZSB0eXBlLCBjb25zdCBDcHBBcmd1bWVudExpc3QmCiAg
ICAgICAgIGV2ZW50LnggPSBwb2ludC54OwogICAgICAgICBldmVudC55ID0gcG9pbnQueTsKICAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwQ2FuY2VsOgor
ICAgICAgICBldmVudC54ID0gcG9pbnQueDsKKyAgICAgICAgZXZlbnQueSA9IHBvaW50Lnk7Cisg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZUxvbmdQcmVzczoK
ICAgICAgICAgZXZlbnQueCA9IHBvaW50Lng7CiAgICAgICAgIGV2ZW50LnkgPSBwb2ludC55Owpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9FdmVu
dFNlbmRlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9FdmVu
dFNlbmRlci5oCmluZGV4IDgyOGU3Yzg0MjYzNzU5MTRkOGMxZmFlZjBjMzA3YzRjNWFlMDk5YjUu
LmU2Nzk0YTA3NzBiZDg4Zjc0ZmU1MGNhMmY3MTY2MjFkNDE5ODc5Y2MgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvRXZlbnRTZW5kZXIuaAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0V2ZW50U2VuZGVyLmgK
QEAgLTEwNiw2ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXN0dXJlU2Nyb2xsVXBkYXRl
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIGdlc3R1cmVU
YXAoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgZ2VzdHVy
ZVRhcERvd24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQg
Z2VzdHVyZVRhcENhbmNlbChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAg
ICAgdm9pZCBnZXN0dXJlTG9uZ1ByZXNzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlh
bnQqKTsKICAgICB2b2lkIGdlc3R1cmVUd29GaW5nZXJUYXAoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgZ2VzdHVyZUV2ZW50KFdlYktpdDo6V2ViSW5wdXRF
dmVudDo6VHlwZSwgY29uc3QgQ3BwQXJndW1lbnRMaXN0Jik7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1
cmUtdGFwLWFjdGl2ZS1zdGF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTk5OWViY2QxZGZk
MTMzYTA3YjQyNjMxMjhlOWIyYTMwYTgzMWMzNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitHZXN0dXJlcyBnbyBoZXJlCitUZXN0cyB0aGF0
IHRhcCBnZXN0dXJlIGV2ZW50cyBzZXQgYW5kIGNsZWFyIHRoZSBhY3RpdmUgc3RhdGUgb2YgZWxl
bWVudHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTZWUgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDYwIGZvciBkZXRhaWxzCisKK0dlc3R1cmVU
YXBEb3duIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBwbGF0Zm9ybQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWlm
cmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJl
L2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1pZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM3NzJiZTdmYzQ1ZWY3OTFmMjBlNDljODUwYzM1M2IyZTMyYTgwNjcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFj
dGl2ZS1zdGF0ZS1pZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKKworVGVzdHMg
dGhhdCB0YXAgZ2VzdHVyZSBldmVudHMgc2V0IGFuZCBjbGVhciB0aGUgYWN0aXZlIHN0YXRlIG9m
IGVsZW1lbnRzLCBldmVuIHdoZW4gaW5zaWRlIGFuIGlmcmFtZSBhbmQgdGhlIGRvY3VtZW50IGlz
IHNjcm9sbGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU2VlIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA2MCBmb3IgZGV0YWlscworCitHZXN0
dXJlVGFwRG93biBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgcGxhdGZvcm0KK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0
ZS1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2Vz
dHVyZS10YXAtYWN0aXZlLXN0YXRlLWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiZWZiNDJmYjQ5
ZDc1NDViNDM5NmUzNTgzZmMwZTI4YjcwYmMxZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1p
ZnJhbWUuaHRtbApAQCAtMCwwICsxLDYzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI2ZyYW1lIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgdG9wOiAzMDBweDsKKyAgICBsZWZ0OiA0MDBweDsKKyAgICBoZWlnaHQ6IDMwMDBw
eDsKK30KKworPC9zdHlsZT4KKzxib2R5PgorPGlmcmFtZSBzcmM9J3Jlc291cmNlcy9nZXN0dXJl
LXRhcC1hY3RpdmUtc3RhdGUtaWZyYW1lLWlubmVyLmh0bWwnIGlkPSdmcmFtZSc+Cis8L2lmcmFt
ZT4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8cD5TZWUgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDYwIGZvciBkZXRhaWxzPC9wPgorCis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdGFw
IGdlc3R1cmUgZXZlbnRzIHNldCBhbmQgY2xlYXIgdGhlIGFjdGl2ZSBzdGF0ZSBvZiBlbGVtZW50
cywgZXZlbiB3aGVuIGluc2lkZSBhbiBpZnJhbWUgYW5kIHRoZSBkb2N1bWVudCBpcyBzY3JvbGxl
ZC4iKTsKKwordmFyIGlzQm94QWN0aXZlOworZnVuY3Rpb24gcnVuVGVzdHMoYmEpCit7CisgICAg
aXNCb3hBY3RpdmUgPSBiYTsKKworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAg
ICAgIGRlYnVnKCdUaGlzIHRlc3QgcmVxdWlyZXMgRFJULicpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKCFldmVudFNlbmRlci5nZXN0dXJlVGFwRG93bikgeworICAgICAgICBk
ZWJ1ZygnR2VzdHVyZVRhcERvd24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIHBsYXRmb3JtJyk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgLy8gU2Nyb2xsIHNvIHRoZSBib3gg
aXMgYXQgdGhlIHRvcAorICAgIHdpbmRvdy5zY3JvbGxUbygwLCA0MDApOworCisgICAgZGVidWco
IlZlcmlmeSBhY3RpdmUgaXNuJ3QgaW5pdGlhbGx5IHNldCIpOworICAgIHNob3VsZEJlRmFsc2Uo
ImlzQm94QWN0aXZlKCkiKTsKKworICAgIGRlYnVnKCJWZXJpZnkgdGFwZG93bix0YXAgc2V0cyBh
bmQgY2xlYXJzIGFjdGl2ZSIpOworICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVUYXBEb3duKDQ1MCwg
NTApOworICAgIHNob3VsZEJlVHJ1ZSgiaXNCb3hBY3RpdmUoKSIpOworICAgIGV2ZW50U2VuZGVy
Lmdlc3R1cmVUYXAoNDUwLCA1MCk7CisgICAgc2hvdWxkQmVGYWxzZSgiaXNCb3hBY3RpdmUoKSIp
OworCisgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKK30KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7Cit9CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3Rp
dmUtc3RhdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2Vz
dHVyZS10YXAtYWN0aXZlLXN0YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjg2NWU5ZGY0MWU2NDE4YWMz
MzVlZDc5Zjc0YzdjZTZmNTI3ODE1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLmh0bWwKQEAg
LTAsMCArMSwxMDYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZSB0eXBl
PSJ0ZXh0L2NzcyI+CisjYm94IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgIHdp
ZHRoOiAzMDBweDsKKyAgICBoZWlnaHQ6IDEwMHB4OworfQorCisjYm94OmFjdGl2ZSB7CisgICAg
YmFja2dyb3VuZC1jb2xvcjogcmVkOworfQorCis8L3N0eWxlPgorPGJvZHk+Cis8ZGl2IGlkPSJi
b3giPkdlc3R1cmVzIGdvIGhlcmU8L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
cD5TZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDYwIGZvciBk
ZXRhaWxzPC9wPgorCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK3ZhciBj
b2xvcjsKK2Z1bmN0aW9uIGlzQm94QWN0aXZlKCkKK3sKKyAgICAvLyBUaGVzZSBuZWVkIHRvIG1h
dGNoIHRoZSBiYWNrZ3JvdW5kLWNvbG9yIHVzZWQgYWJvdmUsIGFmdGVyIHJvdW5kLXRyaXBwaW5n
LgorICAgIHZhciBkZWZhdWx0Q29sb3IgPSAicmdiKDAsIDAsIDI1NSkiOworICAgIHZhciBhY3Rp
dmVDb2xvciA9ICJyZ2IoMjU1LCAwLCAwKSI7CisKKyAgICB2YXIgYiA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdib3gnKTsKKyAgICBjb2xvciA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGIp
LmJhY2tncm91bmRDb2xvcjsKKyAgICBpZiAoY29sb3IgPT0gYWN0aXZlQ29sb3IpCisgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICBpZiAoY29sb3IgIT0gZGVmYXVsdENvbG9yKQorICAgICAgdGVzdEZh
aWxlZCgnR290IHVuZXhwZWN0ZWQgYmFja2dyb3VuZENvbG9yOiAnICsgY29sb3IpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKworZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdGFwIGdlc3R1cmUgZXZl
bnRzIHNldCBhbmQgY2xlYXIgdGhlIGFjdGl2ZSBzdGF0ZSBvZiBlbGVtZW50cy4iKTsKKworZnVu
Y3Rpb24gcnVuVGVzdHMoKQoreworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAg
ICAgIGRlYnVnKCdUaGlzIHRlc3QgcmVxdWlyZXMgRFJULicpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKCFldmVudFNlbmRlci5nZXN0dXJlVGFwRG93bikgeworICAgICAgICBk
ZWJ1ZygnR2VzdHVyZVRhcERvd24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIHBsYXRmb3JtJyk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkZWJ1ZygiVmVyaWZ5IGFjdGl2ZSBpc24n
dCBpbml0aWFsbHkgc2V0Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiaXNCb3hBY3RpdmUoKSIpOwor
CisgICAgZGVidWcoIlZlcmlmeSB0YXBkb3duLHRhcCBzZXRzIGFuZCBjbGVhcnMgYWN0aXZlIik7
CisgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVRhcERvd24oNTAsIDUwKTsKKyAgICBzaG91bGRCZVRy
dWUoImlzQm94QWN0aXZlKCkiKTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlVGFwKDUwLCA1MCk7
CisgICAgc2hvdWxkQmVGYWxzZSgiaXNCb3hBY3RpdmUoKSIpOworCisgICAgZGVidWcoIlZlcmlm
eSB0YXBkb3duLHRhcGNhbmNlbCBvbiB0aGUgZWxlbWVudCBzZXRzIGFuZCBjbGVhcnMgYWN0aXZl
Iik7CisgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVRhcERvd24oNTAsIDUwKTsKKyAgICBzaG91bGRC
ZVRydWUoImlzQm94QWN0aXZlKCkiKTsKKyAgICBldmVudFNlbmRlci5nZXN0dXJlVGFwQ2FuY2Vs
KDUwLCA1MCk7CisgICAgc2hvdWxkQmVGYWxzZSgiaXNCb3hBY3RpdmUoKSIpOworCisgICAgZGVi
dWcoIlZlcmlmeSB0YXAgZWxzZXdoZXJlIHN0aWxsIGNsZWFycyBhY3RpdmUiKTsKKyAgICBldmVu
dFNlbmRlci5nZXN0dXJlVGFwRG93big1MCwgNTApOworICAgIHNob3VsZEJlVHJ1ZSgiaXNCb3hB
Y3RpdmUoKSIpOworICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVUYXAoNDAwLCAyNTApOworICAgIHNo
b3VsZEJlRmFsc2UoImlzQm94QWN0aXZlKCkiKTsKKworICAgIGRlYnVnKCJWZXJpZnkgdGFwQ2Fu
Y2VsIGVsc2V3aGVyZSBzdGlsbCBjbGVhcnMgYWN0aXZlIik7CisgICAgZXZlbnRTZW5kZXIuZ2Vz
dHVyZVRhcERvd24oNTAsIDUwKTsKKyAgICBzaG91bGRCZVRydWUoImlzQm94QWN0aXZlKCkiKTsK
KyAgICBldmVudFNlbmRlci5nZXN0dXJlVGFwQ2FuY2VsKDQwMCwgMjUwKTsKKyAgICBzaG91bGRC
ZUZhbHNlKCJpc0JveEFjdGl2ZSgpIik7CisKKyAgICBkZWJ1ZygiVmVyaWZ5IHRoYXQgdG91Y2hz
dGFydCBkb2Vzbid0IHRyaWdnZXIgYWN0aXZlIHN0YXRlIik7CisgICAgZXZlbnRTZW5kZXIuYWRk
VG91Y2hQb2ludCg1MCwgNTApOworICAgIGV2ZW50U2VuZGVyLnRvdWNoU3RhcnQoKTsKKyAgICBz
aG91bGRCZUZhbHNlKCJpc0JveEFjdGl2ZSgpIik7CisgICAgZXZlbnRTZW5kZXIucmVsZWFzZVRv
dWNoUG9pbnQoMCk7CisgICAgZXZlbnRTZW5kZXIudG91Y2hFbmQoKTsKKworICAgIGRlYnVnKCJW
ZXJpZnkgdGhhdCB0b3VjaHN0YXJ0L3RvdWNoZW5kIGRvZXNuJ3QgY2FuY2VsIGFjdGl2ZSIpOwor
ICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVUYXBEb3duKDUwLCA1MCk7CisgICAgc2hvdWxkQmVUcnVl
KCJpc0JveEFjdGl2ZSgpIik7CisgICAgZXZlbnRTZW5kZXIuYWRkVG91Y2hQb2ludCg1MCwgNTAp
OworICAgIGV2ZW50U2VuZGVyLnRvdWNoU3RhcnQoKTsKKyAgICBzaG91bGRCZVRydWUoImlzQm94
QWN0aXZlKCkiKTsKKyAgICBldmVudFNlbmRlci5yZWxlYXNlVG91Y2hQb2ludCgwKTsKKyAgICBl
dmVudFNlbmRlci50b3VjaEVuZCgpOworICAgIHNob3VsZEJlVHJ1ZSgiaXNCb3hBY3RpdmUoKSIp
OworICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVUYXAoNTAsIDUwKTsKKyAgICBzaG91bGRCZUZhbHNl
KCJpc0JveEFjdGl2ZSgpIik7Cit9CisKK3J1blRlc3RzKCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNo
L2dlc3R1cmUvcmVzb3VyY2VzL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1pZnJhbWUtaW5uZXIu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcmVzb3VyY2VzL2dl
c3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1pZnJhbWUtaW5uZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MDFm
OWRhZmNjZjhhYjUzZTYwYTIwNDYyMTk5ZTM5NzA0NzA4NTE5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9yZXNvdXJjZXMvZ2VzdHVyZS10
YXAtYWN0aXZlLXN0YXRlLWlmcmFtZS1pbm5lci5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI2JveCB7CisgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgd2lk
dGg6IDMwMHB4OworICAgIGhlaWdodDogMTAwcHg7CisgICAgdG9wOiAxMDBweDsKK30KKworI2Jv
eDphY3RpdmUgeworICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKK30KKworPC9zdHlsZT4KKzxz
Y3JpcHQ+Cit2YXIgY29sb3I7CitmdW5jdGlvbiBpc0JveEFjdGl2ZSgpCit7CisgICAgLy8gVGhl
c2UgbmVlZCB0byBtYXRjaCB0aGUgYmFja2dyb3VuZC1jb2xvciB1c2VkIGFib3ZlLCBhZnRlciBy
b3VuZC10cmlwcGluZy4KKyAgICB2YXIgZGVmYXVsdENvbG9yID0gInJnYigwLCAwLCAyNTUpIjsK
KyAgICB2YXIgYWN0aXZlQ29sb3IgPSAicmdiKDI1NSwgMCwgMCkiOworCisgICAgdmFyIGIgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94Jyk7CisgICAgY29sb3IgPSBnZXRDb21wdXRlZFN0
eWxlKGIpLmJhY2tncm91bmRDb2xvcjsKKyAgICBpZiAoY29sb3IgPT0gYWN0aXZlQ29sb3IpCisg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoY29sb3IgIT0gZGVmYXVsdENvbG9yKQorICAgICAg
dGhyb3cgIkdvdCB1bmV4cGVjdGVkIGJhY2tncm91bmRDb2xvcjogIiArIGNvbG9yOworICAgIHJl
dHVybiBmYWxzZTsKK30KKworPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9J3BhcmVudC5ydW5UZXN0
cyhpc0JveEFjdGl2ZSknPgorPGRpdiBpZD0nYm94Jz5HZXN0dXJlcyBnbyBoZXJlPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1hbmRyb2lkL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0
YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWFuZHJvaWQv
ZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmU5OTllYmNkMWRmZDEzM2EwN2I0MjYzMTI4ZTliMmEzMGE4MzFj
MzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1hbmRy
b2lkL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitHZXN0dXJlcyBnbyBoZXJlCitUZXN0cyB0aGF0
IHRhcCBnZXN0dXJlIGV2ZW50cyBzZXQgYW5kIGNsZWFyIHRoZSBhY3RpdmUgc3RhdGUgb2YgZWxl
bWVudHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTZWUgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDYwIGZvciBkZXRhaWxzCisKK0dlc3R1cmVU
YXBEb3duIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBwbGF0Zm9ybQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWFuZHJvaWQvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9n
ZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtaWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLWFuZHJvaWQvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9nZXN0
dXJlLXRhcC1hY3RpdmUtc3RhdGUtaWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNzcy
YmU3ZmM0NWVmNzkxZjIwZTQ5Yzg1MGMzNTNiMmUzMmE4MDY3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tYW5kcm9pZC9mYXN0L2V2ZW50cy90b3VjaC9n
ZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1pZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTMgQEAKKworVGVzdHMgdGhhdCB0YXAgZ2VzdHVyZSBldmVudHMgc2V0IGFuZCBjbGVh
ciB0aGUgYWN0aXZlIHN0YXRlIG9mIGVsZW1lbnRzLCBldmVuIHdoZW4gaW5zaWRlIGFuIGlmcmFt
ZSBhbmQgdGhlIGRvY3VtZW50IGlzIHNjcm9sbGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjA2
MCBmb3IgZGV0YWlscworCitHZXN0dXJlVGFwRG93biBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMg
cGxhdGZvcm0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50
cy90b3VjaC9nZXN0dXJlL2dlc3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL2dl
c3R1cmUtdGFwLWFjdGl2ZS1zdGF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzMzOWMwOGJj
YTM0M2VkNDU5MDI4Y2M4YjZkZTVhMjA1MWMyZTI3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvZ2VzdHVy
ZS10YXAtYWN0aXZlLXN0YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMzIEBACitHZXN0dXJl
cyBnbyBoZXJlCitUZXN0cyB0aGF0IHRhcCBnZXN0dXJlIGV2ZW50cyBzZXQgYW5kIGNsZWFyIHRo
ZSBhY3RpdmUgc3RhdGUgb2YgZWxlbWVudHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDYwIGZv
ciBkZXRhaWxzCisKK1ZlcmlmeSBhY3RpdmUgaXNuJ3QgaW5pdGlhbGx5IHNldAorUEFTUyBpc0Jv
eEFjdGl2ZSgpIGlzIGZhbHNlCitWZXJpZnkgdGFwZG93bix0YXAgc2V0cyBhbmQgY2xlYXJzIGFj
dGl2ZQorUEFTUyBpc0JveEFjdGl2ZSgpIGlzIHRydWUKK1BBU1MgaXNCb3hBY3RpdmUoKSBpcyBm
YWxzZQorVmVyaWZ5IHRhcGRvd24sdGFwY2FuY2VsIG9uIHRoZSBlbGVtZW50IHNldHMgYW5kIGNs
ZWFycyBhY3RpdmUKK1BBU1MgaXNCb3hBY3RpdmUoKSBpcyB0cnVlCitQQVNTIGlzQm94QWN0aXZl
KCkgaXMgZmFsc2UKK1ZlcmlmeSB0YXAgZWxzZXdoZXJlIHN0aWxsIGNsZWFycyBhY3RpdmUKK1BB
U1MgaXNCb3hBY3RpdmUoKSBpcyB0cnVlCitQQVNTIGlzQm94QWN0aXZlKCkgaXMgZmFsc2UKK1Zl
cmlmeSB0YXBDYW5jZWwgZWxzZXdoZXJlIHN0aWxsIGNsZWFycyBhY3RpdmUKK1BBU1MgaXNCb3hB
Y3RpdmUoKSBpcyB0cnVlCitQQVNTIGlzQm94QWN0aXZlKCkgaXMgZmFsc2UKK1ZlcmlmeSB0aGF0
IHRvdWNoc3RhcnQgZG9lc24ndCB0cmlnZ2VyIGFjdGl2ZSBzdGF0ZQorUEFTUyBpc0JveEFjdGl2
ZSgpIGlzIGZhbHNlCitWZXJpZnkgdGhhdCB0b3VjaHN0YXJ0L3RvdWNoZW5kIGRvZXNuJ3QgY2Fu
Y2VsIGFjdGl2ZQorUEFTUyBpc0JveEFjdGl2ZSgpIGlzIHRydWUKK1BBU1MgaXNCb3hBY3RpdmUo
KSBpcyB0cnVlCitQQVNTIGlzQm94QWN0aXZlKCkgaXMgdHJ1ZQorUEFTUyBpc0JveEFjdGl2ZSgp
IGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVu
dHMvdG91Y2gvZ2VzdHVyZS9nZXN0dXJlLXRhcC1hY3RpdmUtc3RhdGUtaWZyYW1lLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNoL2dl
c3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWlmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzA0ODFlMDY3NjYyZDE4YjdiNDNiYjFkOWZmYzQzZjlhOTMwZTIwYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNo
L2dlc3R1cmUvZ2VzdHVyZS10YXAtYWN0aXZlLXN0YXRlLWlmcmFtZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxNyBAQAorCitUZXN0cyB0aGF0IHRhcCBnZXN0dXJlIGV2ZW50cyBzZXQgYW5kIGNs
ZWFyIHRoZSBhY3RpdmUgc3RhdGUgb2YgZWxlbWVudHMsIGV2ZW4gd2hlbiBpbnNpZGUgYW4gaWZy
YW1lIGFuZCB0aGUgZG9jdW1lbnQgaXMgc2Nyb2xsZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2
MDYwIGZvciBkZXRhaWxzCisKK1ZlcmlmeSBhY3RpdmUgaXNuJ3QgaW5pdGlhbGx5IHNldAorUEFT
UyBpc0JveEFjdGl2ZSgpIGlzIGZhbHNlCitWZXJpZnkgdGFwZG93bix0YXAgc2V0cyBhbmQgY2xl
YXJzIGFjdGl2ZQorUEFTUyBpc0JveEFjdGl2ZSgpIGlzIHRydWUKK1BBU1MgaXNCb3hBY3RpdmUo
KSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZl
bnRzL3RvdWNoL3RvdWNoLWFjdGl2ZS1zdGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC1hY3RpdmUtc3RhdGUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjOGY2YWY0YTVlOTMwZTE5Zjk3MzcyNTFjMTA0NzljMzNj
OTcwNTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2V2ZW50cy90b3VjaC90b3VjaC1hY3RpdmUtc3RhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTAgQEAKK0ZBSUwKK1Rlc3QgdG91Y2hlcyBzZXQgdGhlIGFjdGl2ZSBzdGF0ZS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>