<?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>214946</bug_id>
          
          <creation_ts>2020-07-29 15:41:27 -0700</creation_ts>
          <short_desc>[macOS] Show picker for date and datetime-local input types</short_desc>
          <delta_ts>2020-10-23 18:39:19 -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>Forms</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>119175</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Aditya Keerthi">akeerthi</reporter>
          <assigned_to name="Aditya Keerthi">akeerthi</assigned_to>
          <cc>bdakin</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jsackwild</cc>
    
    <cc>me</cc>
    
    <cc>mifenton</cc>
    
    <cc>m.kurz+webkitbugs</cc>
    
    <cc>sam</cc>
    
    <cc>spamfaenger</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1676194</commentid>
    <comment_count>0</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-07-29 15:41:27 -0700</bug_when>
    <thetext>Both input types should display a calendar when the control is selected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676197</commentid>
    <comment_count>1</comment_count>
    <who name="Jay">jsackwild</who>
    <bug_when>2020-07-29 15:43:44 -0700</bug_when>
    <thetext>I would love for this to be resolved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676287</commentid>
    <comment_count>2</comment_count>
      <attachid>405540</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-07-29 19:16:57 -0700</bug_when>
    <thetext>Created attachment 405540
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676290</commentid>
    <comment_count>3</comment_count>
      <attachid>405541</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-07-29 19:31:08 -0700</bug_when>
    <thetext>Created attachment 405541
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676352</commentid>
    <comment_count>4</comment_count>
    <who name="">m.kurz+webkitbugs</who>
    <bug_when>2020-07-30 05:49:59 -0700</bug_when>
    <thetext>Finally! Please make it happen!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676432</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-07-30 10:04:35 -0700</bug_when>
    <thetext>Aditya, can you add a screen shot of what this looks like to aid review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676447</commentid>
    <comment_count>6</comment_count>
      <attachid>405589</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-07-30 10:41:25 -0700</bug_when>
    <thetext>Created attachment 405589
Screenshot of picker

Note that the work to change the appearance of the control itself will be done in upcoming patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677716</commentid>
    <comment_count>7</comment_count>
      <attachid>405541</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-04 13:45:35 -0700</bug_when>
    <thetext>Comment on attachment 405541
Patch

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

&gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:63
&gt; +    if (Chrome* chrome = this-&gt;chrome()) {

I suggest auto.

&gt; Source/WebCore/loader/EmptyClients.cpp:498
&gt; +    return nullptr;

Why is this OK?

&gt; Source/WebCore/page/Chrome.cpp:455
&gt; +#if PLATFORM(IOS_FAMILY)
&gt; +    UNUSED_PARAM(client);
&gt; +    return nullptr;

Why is this correct?

&gt; Source/WebCore/platform/DateTimeChooserParameters.h:31
&gt; +#include &quot;IntRect.h&quot;
&gt; +#include &lt;wtf/text/WTFString.h&gt;

I think we also need to include Vector.h.

&gt; Source/WebKit/UIProcess/WebPageProxy.h:64
&gt; +#include &quot;WebDateTimePicker.h&quot;

Would be nice to avoid having to add this include, and explore if we can do this with only forward declaration in the header.

&gt; Source/WebKit/UIProcess/WebPageProxy.h:1649
&gt; +    void didChooseDate(const String&amp;);

Same thought about StringView.

&gt; Source/WebKit/UIProcess/mac/WebDateTimePickerMac.h:34
&gt; +OBJC_CLASS WKDateTimePicker;

Since this is an ObjC only header, only included in Objective-C++ files, we can and should write this:

@class WKDateTimePicker;

&gt; Source/WebKit/UIProcess/mac/WebDateTimePickerMac.h:43
&gt; +    void didChooseDate(const String&amp;);

Suggest StringView.

&gt; Source/WebKit/UIProcess/mac/WebDateTimePickerMac.h:46
&gt; +    void endPicker() final;
&gt; +    void showDateTimePicker(WebCore::DateTimeChooserParameters&amp;&amp;) final;

Consider making these functions private.

&gt; Source/WebKit/UIProcess/mac/WebDateTimePickerMac.h:51
&gt; +    NSView *m_view;

What guarantees this reference counted object, WebDateTimePickerMac, will not outlive this other reference counted object, m_view?

&gt; Source/WebKit/UIProcess/mac/WebDateTimePickerMac.mm:38
&gt; +static NSString * const kDateFormatString = @&quot;yyyy-MM-dd&quot;;
&gt; +static NSString * const kDateTimeFormatString = @&quot;yyyy-MM-dd&apos;T&apos;HH:mm&quot;;
&gt; +static NSString * const kDefaultLocaleIdentifier = @&quot;en_US_POSIX&quot;;

Should consider constexpr for these too.

&gt; Source/WebKit/UIProcess/mac/WebDateTimePickerMac.mm:63
&gt; +    if (m_picker) {
&gt; +        [m_picker invalidate];
&gt; +        m_picker = nil;
&gt; +    }

Could just write:

    [m_picker invalidate];

No need to null out a pointer when the object is being destroyed. And no need to check for null since Objective-C does nothing when passed null.

&gt; Source/WebKit/UIProcess/mac/WebDateTimePickerMac.mm:99
&gt; +// TODO: Share this implementation with WKDataListSuggestionWindow.

WebKit project uses FIXME, not TODO.

&gt; Source/WebKit/UIProcess/mac/WebDateTimePickerMac.mm:118
&gt; +    _backdropView = [[NSVisualEffectView alloc] initWithFrame:contentRect];

I believe this is going to leak because it’s missing adoptNS.

&gt; Source/WebKit/UIProcess/mac/WebDateTimePickerMac.mm:178
&gt; +    RetainPtr&lt;NSLocale&gt; englishLocale = adoptNS([[NSLocale alloc] initWithLocaleIdentifier:kDefaultLocaleIdentifier]);

I suggest using auto here

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebDateTimeChooser.h:45
&gt; +    void didChooseDate(const String&amp;);

Would be nicer if this took StringView, I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677977</commentid>
    <comment_count>8</comment_count>
      <attachid>406011</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-05 10:44:54 -0700</bug_when>
    <thetext>Created attachment 406011
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677978</commentid>
    <comment_count>9</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-05 10:47:53 -0700</bug_when>
    <thetext>Thank you for the review! I would appreciate another look to verify my usage of StringView.

(In reply to Darin Adler from comment #7)
&gt; Comment on attachment 405541 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=405541&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/EmptyClients.cpp:498
&gt; &gt; +    return nullptr;
&gt; 
&gt; Why is this OK?

From my understanding, EmptyChromeClient is used for sanitizing web content. There is no need to present attached views in this context. Note that similar methods in this class either return nullptr or an empty implementation. It is safe to return nullptr here since a check is made in BaseChooserOnlyDateAndTimeInputType.cpp:65.

&gt; &gt; Source/WebCore/page/Chrome.cpp:455
&gt; &gt; +#if PLATFORM(IOS_FAMILY)
&gt; &gt; +    UNUSED_PARAM(client);
&gt; &gt; +    return nullptr;
&gt; 
&gt; Why is this correct?

Attached views for form controls on iOS are presented through WKContentViewInteraction, using a different code path. Hence, it is safe to return nullptr here.

&gt; &gt; Source/WebKit/UIProcess/mac/WebDateTimePickerMac.h:51
&gt; &gt; +    NSView *m_view;
&gt; 
&gt; What guarantees this reference counted object, WebDateTimePickerMac, will
&gt; not outlive this other reference counted object, m_view?

m_view is a WKWebView, which maintains a RefPtr to the WebPageProxy (_page). WebDateTimePickerMac is owned by the WebPageProxy (as m_dateTimePicker). Hence, WebDateTimePickerMac cannot outlive m_view.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678008</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-08-05 11:53:41 -0700</bug_when>
    <thetext>(In reply to Aditya Keerthi from comment #9)
&gt; &gt; &gt; Source/WebKit/UIProcess/mac/WebDateTimePickerMac.h:51
&gt; &gt; &gt; +    NSView *m_view;
&gt; &gt; 
&gt; &gt; What guarantees this reference counted object, WebDateTimePickerMac, will
&gt; &gt; not outlive this other reference counted object, m_view?
&gt; 
&gt; m_view is a WKWebView, which maintains a RefPtr to the WebPageProxy (_page).
&gt; WebDateTimePickerMac is owned by the WebPageProxy (as m_dateTimePicker).
&gt; Hence, WebDateTimePickerMac cannot outlive m_view.

I think this logic breaks down because WebDateTimePickerMac is refcounted, and thus could have its lifetime extended arbitrarily, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678009</commentid>
    <comment_count>11</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-08-05 11:54:19 -0700</bug_when>
    <thetext>Anyway, WeakObjCPtr&lt;&gt; is your friend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678018</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-05 12:16:19 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #10)
&gt; (In reply to Aditya Keerthi from comment #9)
&gt; &gt; &gt; &gt; Source/WebKit/UIProcess/mac/WebDateTimePickerMac.h:51
&gt; &gt; &gt; &gt; +    NSView *m_view;
&gt; &gt; &gt; 
&gt; &gt; &gt; What guarantees this reference counted object, WebDateTimePickerMac, will
&gt; &gt; &gt; not outlive this other reference counted object, m_view?
&gt; &gt; 
&gt; &gt; m_view is a WKWebView, which maintains a RefPtr to the WebPageProxy (_page).
&gt; &gt; WebDateTimePickerMac is owned by the WebPageProxy (as m_dateTimePicker).
&gt; &gt; Hence, WebDateTimePickerMac cannot outlive m_view.
&gt; 
&gt; I think this logic breaks down because WebDateTimePickerMac is refcounted,
&gt; and thus could have its lifetime extended arbitrarily, right?

Yes.

(In reply to Tim Horton from comment #11)
&gt; Anyway, WeakObjCPtr&lt;&gt; is your friend.

Seems like a good, practical, solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678120</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-05 15:42:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/66597339&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678145</commentid>
    <comment_count>14</comment_count>
      <attachid>406057</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-05 16:55:23 -0700</bug_when>
    <thetext>Created attachment 406057
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678383</commentid>
    <comment_count>15</comment_count>
      <attachid>406057</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-08-06 13:35:39 -0700</bug_when>
    <thetext>Comment on attachment 406057
Patch

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

&gt; Source/WebKit/UIProcess/mac/WebDateTimePickerMac.mm:161
&gt; +    NSRect windowRect = [[_presentingView window] convertRectToScreen:[_presentingView convertRect:params.anchorRectInRootView toView:nil]];

The `params.anchorRectInRootView` here looks like a use-after-move! I think you meant to use _params instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678391</commentid>
    <comment_count>16</comment_count>
      <attachid>406057</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-06 14:06:35 -0700</bug_when>
    <thetext>Comment on attachment 406057
Patch

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

&gt; Source/WebCore/page/Chrome.cpp:455
&gt; +    UNUSED_PARAM(client);
&gt; +    return nullptr;

I think we should add a &quot;why&quot; comment here at some point, not necessarily in this patch. Both why this will be called for IOS_FAMILY, and why it’s OK that we return nullptr when it is. Comment can be brief, but should say why.

&gt; Source/WebCore/platform/DateTimeChooserParameters.h:41
&gt; +    // Locale name for which the chooser should be localized. This
&gt; +    // might be an invalid name because it comes from HTML lang
&gt; +    // attributes.

Could make this more beautiful but putting the line break at the sentence break, and using only two lines.

&gt; Source/WebCore/platform/DateTimeChooserParameters.h:50
&gt; +    double minimum;
&gt; +    double maximum;
&gt; +    double step;
&gt; +    double stepBase;

We may want to move from &quot;double&quot; to type like &quot;WallTime&quot; and &quot;Seconds&quot; for this in the future. Would make the code a little more clear about units.

&gt; Source/WebCore/platform/DateTimeChooserParameters.h:131
&gt; +    return {{ type, anchorRectInRootView, locale, currentValue, suggestionValues, localizedSuggestionValues, suggestionLabels, minimum, maximum, step, stepBase, required, isAnchorElementRTL }};

WTFMove will make more efficient code for the strings and especially the vectors. There are six of those here.

&gt; Source/WebKit/UIProcess/WebDateTimePicker.h:31
&gt; +#include &lt;wtf/RefPtr.h&gt;

Don’t need this include any more.

&gt; Source/WebKit/UIProcess/mac/WebDateTimePickerMac.mm:38
&gt; +constexpr NSString * const kDateFormatString = @&quot;yyyy-MM-dd&quot;;
&gt; +constexpr NSString * const kDateTimeFormatString = @&quot;yyyy-MM-dd&apos;T&apos;HH:mm&quot;;
&gt; +constexpr NSString * const kDefaultLocaleIdentifier = @&quot;en_US_POSIX&quot;;

Since we used constexpr here, we don’t also need the const after the *.

&gt; Source/WebKit/UIProcess/mac/WebDateTimePickerMac.mm:81
&gt; +    m_picker = adoptNS([[WKDateTimePicker alloc] initWithParams:WTFMove(params) inView:m_view.getAutoreleased()]);

Instead of getAutoreleased() here, which is wasteful, we should use get().get(), which is correct for an argument we are passing to a method as opposed to one we are returning as a return value.

&gt; Tools/TestRunnerShared/UIScriptContext/UIScriptController.h:219
&gt; +    virtual bool isShowingDateTimePicker() const { notImplemented(); return false; }

Not sure that notImplemented() is needed/helpful in this function (or in the other functions in this file).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678435</commentid>
    <comment_count>17</comment_count>
      <attachid>406057</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-08-06 15:34:26 -0700</bug_when>
    <thetext>Comment on attachment 406057
Patch

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

&gt; Source/WebCore/html/MonthInputType.cpp:132
&gt; +void MonthInputType::handleDOMActivateEvent(Event&amp;) { }

You should use the normal style here:

void MonthInputType::handleDOMActivateEvent(Event&amp;)
{ 
}

&gt;&gt; Source/WebCore/page/Chrome.cpp:455
&gt;&gt; +    return nullptr;
&gt; 
&gt; I think we should add a &quot;why&quot; comment here at some point, not necessarily in this patch. Both why this will be called for IOS_FAMILY, and why it’s OK that we return nullptr when it is. Comment can be brief, but should say why.

Seems like this would be a decision that would be made in the WebKit layer anyway.  Also, is this right for catalyst?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678473</commentid>
    <comment_count>18</comment_count>
      <attachid>406137</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-06 17:15:45 -0700</bug_when>
    <thetext>Created attachment 406137
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678477</commentid>
    <comment_count>19</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-06 17:24:19 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #17)
&gt; Comment on attachment 406057 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=406057&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/page/Chrome.cpp:455
&gt; &gt;&gt; +    return nullptr;
&gt; &gt; 
&gt; &gt; I think we should add a &quot;why&quot; comment here at some point, not necessarily in this patch. Both why this will be called for IOS_FAMILY, and why it’s OK that we return nullptr when it is. Comment can be brief, but should say why.
&gt; 
&gt; Seems like this would be a decision that would be made in the WebKit layer
&gt; anyway.  Also, is this right for catalyst?

Catalyst uses iOS form controls, so the behavior should be the same as iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678497</commentid>
    <comment_count>20</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-08-06 18:12:39 -0700</bug_when>
    <thetext>(In reply to Aditya Keerthi from comment #19)
&gt; (In reply to Sam Weinig from comment #17)
&gt; &gt; Comment on attachment 406057 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=406057&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebCore/page/Chrome.cpp:455
&gt; &gt; &gt;&gt; +    return nullptr;
&gt; &gt; &gt; 
&gt; &gt; &gt; I think we should add a &quot;why&quot; comment here at some point, not necessarily in this patch. Both why this will be called for IOS_FAMILY, and why it’s OK that we return nullptr when it is. Comment can be brief, but should say why.
&gt; &gt; 
&gt; &gt; Seems like this would be a decision that would be made in the WebKit layer
&gt; &gt; anyway.  Also, is this right for catalyst?
&gt; 
&gt; Catalyst uses iOS form controls, so the behavior should be the same as iOS.

That doesn&apos;t seem like the right approach to me, but that is likely something we should discuss outside the context of this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678513</commentid>
    <comment_count>21</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2020-08-06 19:43:49 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #20)
&gt; (In reply to Aditya Keerthi from comment #19)
&gt; &gt; (In reply to Sam Weinig from comment #17)
&gt; &gt; &gt; Comment on attachment 406057 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=406057&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt;&gt; Source/WebCore/page/Chrome.cpp:455
&gt; &gt; &gt; &gt;&gt; +    return nullptr;
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I think we should add a &quot;why&quot; comment here at some point, not necessarily in this patch. Both why this will be called for IOS_FAMILY, and why it’s OK that we return nullptr when it is. Comment can be brief, but should say why.
&gt; &gt; &gt; 
&gt; &gt; &gt; Seems like this would be a decision that would be made in the WebKit layer
&gt; &gt; &gt; anyway.  Also, is this right for catalyst?
&gt; &gt; 
&gt; &gt; Catalyst uses iOS form controls, so the behavior should be the same as iOS.
&gt; 
&gt; That doesn&apos;t seem like the right approach to me, but that is likely
&gt; something we should discuss outside the context of this change.

Ideally Catalyst controls would be like Mac controls. But this is its big own project.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682343</commentid>
    <comment_count>22</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-24 09:11:07 -0700</bug_when>
    <thetext>Patch 406137 does not build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682349</commentid>
    <comment_count>23</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-24 09:25:15 -0700</bug_when>
    <thetext>Committed r266063: &lt;https://trac.webkit.org/changeset/266063&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406137.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689409</commentid>
    <comment_count>24</comment_count>
    <who name="Martin Häcker">spamfaenger</who>
    <bug_when>2020-09-17 03:45:20 -0700</bug_when>
    <thetext>I was expecting &lt;input type=date&gt; to work on the technology preview builds by now, but I can&apos;t seem to get it working. Am I missing something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689478</commentid>
    <comment_count>25</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-09-17 09:45:02 -0700</bug_when>
    <thetext>(In reply to Martin Häcker from comment #24)
&gt; I was expecting &lt;input type=date&gt; to work on the technology preview builds
&gt; by now, but I can&apos;t seem to get it working. Am I missing something?

This revision is not in the latest technology preview build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696545</commentid>
    <comment_count>26</comment_count>
    <who name="">m.kurz+webkitbugs</who>
    <bug_when>2020-10-10 13:37:50 -0700</bug_when>
    <thetext>Testing Safari TP 114, the date picker UI still isn&apos;t shown. Why? Or is the UI available starting with macOS 11.0 Big Sur only (testing was done with macOS 10.15.7 Catalina)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700938</commentid>
    <comment_count>27</comment_count>
    <who name="Martin Häcker">spamfaenger</who>
    <bug_when>2020-10-23 00:17:34 -0700</bug_when>
    <thetext>Seeing the datepicker now in TP 115. YAY!

Incidentally, I&apos;ve noticed that this feature seems not yet available on &lt;https://webkit.org/status/&gt;. I had filed a bug about this here: https://bugs.webkit.org/show_bug.cgi?id=195666

Maybe this is the place to get that noticed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701184</commentid>
    <comment_count>28</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-10-23 18:39:19 -0700</bug_when>
    <thetext>(In reply to m.kurz+webkitbugs from comment #26)
&gt; Testing Safari TP 114, the date picker UI still isn&apos;t shown. Why? Or is the
&gt; UI available starting with macOS 11.0 Big Sur only (testing was done with
&gt; macOS 10.15.7 Catalina)?

I think this was because it was behind the flag. And the flag is enabled in STP 115.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405540</attachid>
            <date>2020-07-29 19:16:57 -0700</date>
            <delta_ts>2020-07-29 19:31:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214946-20200729221656.patch</filename>
            <type>text/plain</type>
            <size>84620</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0Njk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGI3ZTQwOWFkNWIyNDJm
YmY2OGE0NTE5MzE5NjhhYTNiOTIyYjM2Ny4uYzA4YmJiYWRmMWJhNjc3MTIyNjNkMWM2NDI5N2Uw
MjA4NDZkNTRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIwLTA3LTI5ICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFNob3cg
cGlja2VyIGZvciBkYXRlIGFuZCBkYXRldGltZS1sb2NhbCBpbnB1dCB0eXBlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0OTQ2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGF0ZSBhbmQgZGF0ZXRpbWUt
bG9jYWwgaW5wdXQgdHlwZXMgcmVxdWlyZSBhIGNhbGVuZGFyIHBpY2tlciB0byBiZSBwcmVzZW50
ZWQgd2hlbiBhY3RpdmF0ZWQuCisgICAgICAgIENvbnNlcXVlbnRseSwgQmFzZUNob29zZXJPbmx5
RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQgd2FzIG1vZGlmaWVk
IHRvCisgICAgICAgIGNyZWF0ZSBhIERhdGVUaW1lQ2hvb3NlciBhbmQgZGlzcGxheSBhIGNhbGVu
ZGFyIHVwb24gYWN0aXZhdGlvbi4gVGhpcyBvYmplY3QgaXMgZGVzdHJveWVkCisgICAgICAgIHdo
ZW4gdGhlIGVsZW1lbnQgaXMgYmx1cnJlZCwgaGlkaW5nIHRoZSBjYWxlbmRhci4KKworICAgICAg
ICBUaGVyZSBpcyBjdXJyZW50bHkgbm8gcGlja2VyIFVJIGZvciBtb250aCwgd2VlaywgYW5kIHRp
bWUgaW5wdXQgdHlwZXMuIEFzIGEgcmVzdWx0LCAKKyAgICAgICAgaGFuZGxlRE9NQWN0aXZhdGVF
dmVudCBpcyBhIG5vLW9wIG9uIHRob3NlIGlucHV0IHR5cGVzLgorCisgICAgICAgIFdyb3RlIGFu
IGVuY29kZXIgYW5kIGRlY29kZXIgZm9yIERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMsIHNvIHRo
YXQgdGhlIHBpY2tlciBjYW4gYmUKKyAgICAgICAgY3JlYXRlZCB3aXRoIHRoZSBjb3JyZWN0IHZh
bHVlcy4KKworICAgICAgICBUZXN0czogZmFzdC9mb3Jtcy9kYXRlL2RhdGUtc2hvdy1oaWRlLXBp
Y2tlci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2RhdGV0aW1lbG9jYWwvZGF0ZXRp
bWVsb2NhbC1zaG93LWhpZGUtcGlja2VyLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0Jhc2VDaG9vc2VyT25seURhdGVB
bmRUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjplbGVtZW50RGlkQmx1
cik6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlw
ZTo6aXNQcmVzZW50aW5nQXR0YWNoZWRWaWV3IGNvbnN0KToKKyAgICAgICAgKiBodG1sL0Jhc2VD
aG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KToKKyAg
ICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2
YXRlRXZlbnQpOgorICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0
bWwvV2Vla0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWVrSW5wdXRUeXBlOjpo
YW5kbGVET01BY3RpdmF0ZUV2ZW50KToKKyAgICAgICAgKiBodG1sL1dlZWtJbnB1dFR5cGUuaDoK
KyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVt
cHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVEYXRlVGltZUNob29zZXIpOgorICAgICAgICAqIGxvYWRl
ci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWU6OmNyZWF0ZURhdGVUaW1lQ2hvb3Nlcik6CisgICAgICAgICogcGFnZS9D
aHJvbWUuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBsYXRm
b3JtL0RhdGVUaW1lQ2hvb3Nlci5oOgorICAgICAgICAqIHBsYXRmb3JtL0RhdGVUaW1lQ2hvb3Nl
clBhcmFtZXRlcnMuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUNob29zZXJQ
YXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVDaG9v
c2VyUGFyYW1ldGVyczo6ZGVjb2RlKToKKwogMjAyMC0wNy0xOSAgRGFyaW4gQWRsZXIgIDxkYXJp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGxpdmUgcmFuZ2VzIGZyb20gRWRpdG9yLmgg
YW5kIEVkaXRvckNsaWVudC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYzN2NiOTRhMTU5NDRmZWE5M2Y0ZWVjNmU5
N2ZlYjM0YjRiOTE3NjUuLjdmNDRmOGQyMGU0YjYzOTM5ZjYyYzk3MGRjMzY3NTY5NDExYzA5N2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNzcgQEAKKzIwMjAtMDctMjkgIEFkaXR5YSBLZWVydGhpICA8
YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gU2hvdyBwaWNrZXIgZm9yIGRh
dGUgYW5kIGRhdGV0aW1lLWxvY2FsIGlucHV0IHR5cGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ5NDYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGVkIFdLRGF0ZVRpbWVQaWNrZXIgYXMgYSB3
cmFwcGVyIGFyb3VuZCBOU0RhdGVQaWNrZXIuIFRoZSBwaWNrZXIgaXMKKyAgICAgICAgZGlzcGxh
eWVkIGluIGl0cyBvd24gTlNXaW5kb3csIGVuc3VyaW5nIHRoZSB2aWV3IGlzIGFsd2F5cyBhYm92
ZSB0aGUgcGFnZS4KKyAgICAgICAgV2ViUGFnZVByb3h5IGFuZCBXS0RhdGVUaW1lUGlja2VyIGNv
bW11bmljYXRlIHRocm91Z2ggV2ViRGF0ZVRpbWVQaWNrZXJNYWMsCisgICAgICAgIGluIG9yZGVy
IGZvciB0aGUgcGlja2VyIHRvIGJlIGluaXRpYWxpemVkIHdpdGggdGhlIGNvcnJlY3QgaW5pdGlh
bCwgbWluaW11bSwKKyAgICAgICAgYW5kIG1heGltdW0gZGF0ZSwgYW5kIHNvIHRoYXQgdGhlIGNo
b3NlbiBkYXRlIGNhbiBiZSBzZW50IGJhY2sgdG8gdGhlCisgICAgICAgIFdlYlByb2Nlc3MuCisK
KyAgICAgICAgQWRkZWQgSVBDIG1lc3NhZ2VzIHRvIGVuYWJsZSBjb21tdW5pY2F0aW9uIGJldHdl
ZW4gdGhlIFVJUHJvY2VzcyBhbmQgdGhlCisgICAgICAgIFdlYlByb2Nlc3MgbmVjZXNzYXJ5IGZv
ciBzaG93aW5nIGFuZCBoaWRpbmcgdGhlIHBpY2tlci4KKworICAgICAgICAqIFNvdXJjZXMudHh0
OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRGF0ZVRpbWVQaWNrZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRGF0ZVRpbWVQaWNrZXI6OldlYkRhdGVUaW1lUGlja2Vy
KToKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0ZVRpbWVQaWNrZXI6On5XZWJEYXRlVGltZVBpY2tl
cik6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGVUaW1lUGlja2VyOjplbmRQaWNrZXIpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJEYXRlVGltZVBpY2tlci5oOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpzaG93RGF0ZVRpbWVQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmVu
ZERhdGVUaW1lUGlja2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDaG9v
c2VEYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRFbmREYXRlVGltZVBp
Y2tlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y2xvc2VPdmVybGF5ZWRWaWV3
cyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudElt
cGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjcmVhdGVEYXRlVGlt
ZVBpY2tlcik6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW06CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjcmVhdGVEYXRlVGltZVBpY2tlcik6CisgICAgICAgICog
VUlQcm9jZXNzL21hYy9XZWJEYXRlVGltZVBpY2tlck1hYy5oOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvbWFjL1dlYkRhdGVUaW1lUGlja2VyTWFjLm1tOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViRGF0ZVRpbWVQaWNrZXJNYWM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkRhdGVUaW1lUGlja2VyTWFjOjp+V2ViRGF0ZVRpbWVQaWNrZXJNYWMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJEYXRlVGltZVBpY2tlck1hYzo6V2ViRGF0ZVRpbWVQaWNrZXJNYWMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJEYXRlVGltZVBpY2tlck1hYzo6ZW5kUGlja2VyKToKKyAgICAgICAgKFdl
YktpdDo6V2ViRGF0ZVRpbWVQaWNrZXJNYWM6OnNob3dEYXRlVGltZVBpY2tlcik6CisgICAgICAg
IChXZWJLaXQ6OldlYkRhdGVUaW1lUGlja2VyTWFjOjpkaWRDaG9vc2VEYXRlKToKKyAgICAgICAg
KC1bV0tEYXRlVGltZVBpY2tlcldpbmRvdyBpbml0V2l0aENvbnRlbnRSZWN0OnN0eWxlTWFzazpi
YWNraW5nOmRlZmVyOl0pOgorICAgICAgICAoLVtXS0RhdGVUaW1lUGlja2VyV2luZG93IGNhbkJl
Y29tZUtleVdpbmRvd10pOgorICAgICAgICAoLVtXS0RhdGVUaW1lUGlja2VyV2luZG93IGhhc0tl
eUFwcGVhcmFuY2VdKToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBpY2tlcldpbmRvdyBzaGFkb3dP
cHRpb25zXSk6CisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIgaW5pdFdpdGhQYXJhbXM6aW5W
aWV3Ol0pOgorICAgICAgICAoLVtXS0RhdGVUaW1lUGlja2VyIHNob3dQaWNrZXI6XSk6CisgICAg
ICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIgaW52YWxpZGF0ZV0pOgorICAgICAgICAoLVtXS0RhdGVU
aW1lUGlja2VyIGRpZENob29zZURhdGU6XSk6CisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIg
ZGF0ZUZvcm1hdFN0cmluZ0ZvclR5cGU6XSk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNyZWF0
ZURhdGVUaW1lQ2hvb3Nlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkRhdGVUaW1lQ2hvb3Nlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRlVGlt
ZUNob29zZXI6OldlYkRhdGVUaW1lQ2hvb3Nlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGVU
aW1lQ2hvb3Nlcjo6ZGlkQ2hvb3NlRGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGVUaW1l
Q2hvb3Nlcjo6ZGlkRW5kQ2hvb3Nlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGVUaW1lQ2hv
b3Nlcjo6ZW5kQ2hvb3Nlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGVUaW1lQ2hvb3Nlcjo6
c2hvd0Nob29zZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0
ZVRpbWVDaG9vc2VyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0QWN0aXZlRGF0ZVRpbWVDaG9v
c2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ2hvb3NlRGF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmRpZEVuZERhdGVUaW1lUGlja2VyKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDIwLTA3LTIyICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVy
dGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIERhdGFsaXN0IGRyb3Bkb3duIHNjcm9s
bGJhciBwb3NpdGlvbiBkb2VzIG5vdCBtYXRjaCB2aXNpYmxlIHJlZ2lvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCmluZGV4IGQzMzFjNzVmOWE1ODA0YmNiNTY5ODg1YTBiNjNiMzVjNTFlN2M4
ZGUuLmE1ODMzYjgwZjMzNTBiOGRmY2FiYzIzMDNlMmYwOWI0OThkYzA4ZGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wNy0yOSAgQWRpdHlhIEtl
ZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBTaG93IHBpY2tl
ciBmb3IgZGF0ZSBhbmQgZGF0ZXRpbWUtbG9jYWwgaW5wdXQgdHlwZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDk0NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFttYWNPU10gU2hvdyBwaWNrZXIgZm9y
IGRhdGUgYW5kIGRhdGV0aW1lLWxvY2FsIGlucHV0IHR5cGVzCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURhdGVUaW1l
Q2hvb3Nlcik6CisKIDIwMjAtMDctMTkgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbW92ZSBsaXZlIHJhbmdlcyBmcm9tIEVkaXRvci5oIGFuZCBFZGl0b3JDbGll
bnQuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGVmODhmODIzMmE0ZGUyODM0Zjc3NDZjYmMzZDcxMzgwOTViYTVlMWEuLjllZmU5
MmYxMGJhNWI3NjhmM2FjNzE0MzhmOWI1ODNiMWU4OWYwOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk5OCw4ICs5OTgsOCBA
QAogCQkzN0M3MzhFQjFFREJEMzg0MDAzRjJCMEIgLyogUGVyZm9ybWFuY2VNZWFzdXJlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0M3MzhFQTFFREJE
MzgxMDAzRjJCMEIgLyogUGVyZm9ybWFuY2VNZWFzdXJlLmggKi87IH07CiAJCTM3QzczOEVEMUVE
QkQ1QkMwMDNGMkIwQiAvKiBTVkdVbmtub3duRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdDNzM4RUMxRURCRDVCNzAwM0YyQjBCIC8qIFNW
R1Vua25vd25FbGVtZW50LmggKi87IH07CiAJCTM3QzczOEVGMUVEQkQ3MUIwMDNGMkIwQiAvKiBN
YXRoTUxVbmtub3duRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzdDNzM4RUUxRURCRDcxODAwM0YyQjBCIC8qIE1hdGhNTFVua25vd25FbGVt
ZW50LmggKi87IH07Ci0JCTM3QzczOEYzMUVEQkRFOEEwMDNGMkIwQiAvKiBEYXRlVGltZUNob29z
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3Qzcz
OEYxMUVEQkRFODcwMDNGMkIwQiAvKiBEYXRlVGltZUNob29zZXIuaCAqLzsgfTsKLQkJMzdDNzM4
RjQxRURCREU4RDAwM0YyQjBCIC8qIERhdGVUaW1lQ2hvb3NlckNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdDNzM4RjIxRURCREU4NzAwM0Yy
QjBCIC8qIERhdGVUaW1lQ2hvb3NlckNsaWVudC5oICovOyB9OworCQkzN0M3MzhGMzFFREJERThB
MDAzRjJCMEIgLyogRGF0ZVRpbWVDaG9vc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzN0M3MzhGMTFFREJERTg3MDAzRjJCMEIgLyogRGF0ZVRpbWVD
aG9vc2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJMzdDNzM4RjQxRURCREU4RDAwM0YyQjBCIC8qIERhdGVUaW1lQ2hvb3NlckNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdDNzM4RjIxRURC
REU4NzAwM0YyQjBCIC8qIERhdGVUaW1lQ2hvb3NlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3RDQ1NkZEMUE5QTUwRDgwMDMzMzBB
MSAvKiBMb2NhbGl6YWJsZVN0cmluZ3MucG0gaW4gQ29weSBTY3JpcHRzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RDQ1NkZCMUE5QTUwQjYwMDMzMzBBMSAvKiBMb2NhbGl6
YWJsZVN0cmluZ3MucG0gKi87IH07CiAJCTM3RTM1MjREMTI0NTBDNjYwMEJBRjVEOSAvKiBJbnB1
dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3
RTM1MjRDMTI0NTBDNjYwMEJBRjVEOSAvKiBJbnB1dFR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzN0Y1NjdDRTE2NTM1OEY0MDBEREU5MkIg
LyogUG9wdXBPcGVuaW5nT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDM3NzJCMDk1MTY1MzU4NTYwMDBBNDlDQSAvKiBQb3B1cE9wZW5pbmdP
YnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC01MDQ4LDYgKzUwNDgsNyBAQAogCQlFNThCNDVCQTIwQUQwN0REMDA5OTEwMjUgLyogRGF0
YUxpc3RCdXR0b25FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNThCNDVCODIwQUQwN0REMDA5OTEwMjUgLyogRGF0YUxpc3RCdXR0b25FbGVt
ZW50LmggKi87IH07CiAJCUU1OURENEI4MjEwOTgyODcwMDNDOEI0NyAvKiBMaXN0QnV0dG9uQXJy
b3cucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NTlERDRCNzIxMDk4Mjg1MDAzQzhCNDcgLyogTGlzdEJ1dHRvbkFycm93LnBuZyAqLzsgfTsKIAkJ
RTVCQTdENjMxNTE0MzdDQTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVCQTdENjIxNTE0MzdDQTAwRkUx
RTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCUU1QzU5QTlBMjREMEUxQUEwMDNCODZFMSAvKiBEYXRlVGltZUNo
b29zZXJQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFNUM1OUE5OTI0RDBFMUFBMDAzQjg2RTEgLyogRGF0ZVRpbWVDaG9vc2VyUGFyYW1l
dGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUU3MTQ2N0IzMjRBQkFFRjIwMEZCMkY1MCAvKiBBdWRpb05vZGVPcHRpb25zLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzE0NjdCMTI0QUJBRUYxMDBG
QjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5oICovOyB9OwogCQlFNzE0NjdCNjI0QUJBRjFEMDBG
QjJGNTAgLyogUGFubmVyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTcxNDY3QjUyNEFCQUYxRDAwRkIyRjUwIC8qIFBhbm5lck9wdGlvbnMu
aCAqLzsgfTsKIAkJRTc4NUQ5MTUyNEI0RDFDQTAwMTREQjIxIC8qIENoYW5uZWxDb3VudE1vZGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU3ODVEOTEx
MjRCNEQxQjEwMDE0REIyMSAvKiBDaGFubmVsQ291bnRNb2RlLmggKi87IH07CkBAIC0xNTgxNyw2
ICsxNTgxOCw3IEBACiAJCUU1OEI0NUI4MjBBRDA3REQwMDk5MTAyNSAvKiBEYXRhTGlzdEJ1dHRv
bkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YUxpc3RCdXR0b25FbGVtZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1OURENEI3MjEwOTgyODUwMDNDOEI0NyAvKiBMaXN0
QnV0dG9uQXJyb3cucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gTGlzdEJ1dHRvbkFycm93LnBuZzsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTVCQTdENjIxNTE0MzdDQTAwRkUxRTNGIC8qIExlbmd0aEZ1
bmN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMZW5ndGhGdW5jdGlv
bnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVDNTlBOTkyNEQwRTFBQTAwM0I4
NkUxIC8qIERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFNzE0NjdCMTI0QUJBRUYxMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9u
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb05vZGVPcHRpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU3MTQ2N0I0MjRBQkFGMEIwMEZCMkY1MCAv
KiBBdWRpb05vZGVPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRpb05vZGVPcHRpb25zLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTcxNDY3QjUyNEFCQUYxRDAwRkIyRjUwIC8qIFBhbm5l
ck9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFubmVyT3B0aW9u
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjY1MTgsNiArMjY1MjAsNyBAQAog
CQkJCUE1NzMyQjA5MTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRlQ29tcG9uZW50cy5oICovLAogCQkJ
CTM3QzczOEYxMUVEQkRFODcwMDNGMkIwQiAvKiBEYXRlVGltZUNob29zZXIuaCAqLywKIAkJCQkz
N0M3MzhGMjFFREJERTg3MDAzRjJCMEIgLyogRGF0ZVRpbWVDaG9vc2VyQ2xpZW50LmggKi8sCisJ
CQkJRTVDNTlBOTkyNEQwRTFBQTAwM0I4NkUxIC8qIERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMu
aCAqLywKIAkJCQk0NUZFQTVDRDE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5jcHAgKi8sCiAJ
CQkJNDVGRUE1Q0UxNTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwuaCAqLywKIAkJCQlDRDgzRDM1
QTIxMTExMDgyMDA3NkUxMUMgLyogRGVmZXJyYWJsZVRhc2suaCAqLywKQEAgLTMwNTAxLDYgKzMw
NTA0LDcgQEAKIAkJCQlGNTVCM0RCNjEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZUlucHV0VHlwZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMzdDNzM4RjMxRURCREU4QTAwM0YyQjBCIC8qIERhdGVUaW1l
Q2hvb3Nlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdDNzM4RjQxRURCREU4RDAwM0YyQjBCIC8q
IERhdGVUaW1lQ2hvb3NlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTVDNTlBOUEyNEQw
RTFBQTAwM0I4NkUxIC8qIERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQ1M0VCNjM3MTU5QzU3MDQwMDAwMUJCNyAvKiBEYXRlVGltZUZvcm1hdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRjU1QjNEQkExMjUxRjEyRDAwM0VGMjY5IC8qIERhdGVUaW1lTG9jYWxJ
bnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNkExMkJFMUEwMDkyMzcwMEM2REU3MiAv
KiBEZWJ1Z1BhZ2VPdmVybGF5cy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3Bw
CmluZGV4IDU0MjFmZGI0YmY2YjgxZGU5ZjU0ZTFiMjE2NjVhOTc1YmQzYTMzMTUuLjc1MDcwYWQz
ZDdmNWUyMzEwMWNmZDNlYzUzZjJmNDcyYWQ1NjRiNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3Bw
CkBAIC0yOSw2ICsyOSw4IEBACiAKICNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBF
UykKIAorI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkRhdGVUaW1lQ2hvb3NlclBhcmFt
ZXRlcnMuaCIKICNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1
dEVsZW1lbnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC01Nyw2ICs1OSwyMiBAQCB2b2lkIEJh
c2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50
KEV2ZW50JikKICAgICBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CiAgICAg
aWYgKCFlbGVtZW50KCktPnNldHVwRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyhwYXJhbWV0ZXJz
KSkKICAgICAgICAgcmV0dXJuOworCisgICAgaWYgKENocm9tZSogY2hyb21lID0gdGhpcy0+Y2hy
b21lKCkpIHsKKyAgICAgICAgbV9kYXRlVGltZUNob29zZXIgPSBjaHJvbWUtPmNyZWF0ZURhdGVU
aW1lQ2hvb3NlcigqdGhpcyk7CisgICAgICAgIGlmIChtX2RhdGVUaW1lQ2hvb3NlcikKKyAgICAg
ICAgICAgIG1fZGF0ZVRpbWVDaG9vc2VyLT5zaG93Q2hvb3NlcihwYXJhbWV0ZXJzKTsKKyAgICB9
Cit9CisKK3ZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmVsZW1lbnRE
aWRCbHVyKCkKK3sKKyAgICBjbG9zZURhdGVUaW1lQ2hvb3NlcigpOworfQorCitib29sIEJhc2VD
aG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjppc1ByZXNlbnRpbmdBdHRhY2hlZFZpZXco
KSBjb25zdAoreworICAgIHJldHVybiAhIW1fZGF0ZVRpbWVDaG9vc2VyOwogfQogCiB2b2lkIEJh
c2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRp
bWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuaAppbmRleCBhM2YxY2Y1YTViMmFjYTBjYThlOTk1MTgxMTY5NTIwMGEz
Mzc4ZjBkLi4wYjE5YWI4N2U3NDBkNGQ1NGQ2MjIxZjg5YzdiMTkzNGZiYjFjZTMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRU
eXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGlt
ZUlucHV0VHlwZS5oCkBAIC00OSwxOCArNDksMjAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRldGFj
aCgpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1
ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIG92ZXJyaWRlOwogICAgIHZvaWQgaGFu
ZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOworICAgIHZvaWQgZWxlbWVudERp
ZEJsdXIoKSBmaW5hbDsKICAgICBTaG91bGRDYWxsQmFzZUV2ZW50SGFuZGxlciBoYW5kbGVLZXlk
b3duRXZlbnQoS2V5Ym9hcmRFdmVudCYpIG92ZXJyaWRlOwogICAgIHZvaWQgaGFuZGxlS2V5cHJl
c3NFdmVudChLZXlib2FyZEV2ZW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBoYW5kbGVLZXl1cEV2
ZW50KEtleWJvYXJkRXZlbnQmKSBvdmVycmlkZTsKICAgICBib29sIGFjY2Vzc0tleUFjdGlvbihi
b29sIHNlbmRNb3VzZUV2ZW50cykgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc01vdXNlRm9jdXNhYmxl
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1ByZXNlbnRpbmdBdHRhY2hlZFZpZXcoKSBj
b25zdCBmaW5hbDsKICAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIG92ZXJyaWRlOwogCiAgICAgLy8gRGF0ZVRpbWVDaG9vc2VyQ2xpZW50IGZ1bmN0aW9uczoK
ICAgICB2b2lkIGRpZENob29zZVZhbHVlKGNvbnN0IFN0cmluZyYpIGZpbmFsOwogICAgIHZvaWQg
ZGlkRW5kQ2hvb3NlcigpIGZpbmFsOwogCi0gICAgUmVmUHRyPERhdGVUaW1lQ2hvb3Nlcj4gbV9k
YXRlVGltZUNob29zZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lQ2hvb3Nlcj4gbV9k
YXRlVGltZUNob29zZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCAxOTM4M2U3YmU0YTVmNTk1ZGNlNGM5
OGE0N2QxNzYyYjM2M2E0MTRjLi4wNDBkODcwYTQwODQwODkxYjdjZTBlMjE5OWJjYjU5NDAwZWQ2
NjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTM3LDYg
KzM3LDcgQEAKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIK
ICNpbmNsdWRlICJEYXRlVGltZUNob29zZXIuaCIKKyNpbmNsdWRlICJEYXRlVGltZUNob29zZXJQ
YXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIK
ICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L01vbnRoSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUu
Y3BwCmluZGV4IDQ5MDI2MGMyOGM3OWYzNTA2NzYyN2M4OWRiMDJmOWI2OWJiMGVlMDQuLmViYWU3
ZDFkMTZlNTk2MWUxN2Y0NzA5MGRiYWVlZTc3YmJmNTU4NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TW9udGhJbnB1dFR5cGUuY3BwCkBAIC0xMjksNiArMTI5LDggQEAgYm9vbCBNb250aElucHV0VHlw
ZTo6aXNNb250aEZpZWxkKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBNb250
aElucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIHsgfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9Nb250aElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5o
CmluZGV4IDBjY2E5MjJhNTNjNDBkZjE1OGRjZmIyYzYwNjFkOGEzOGM4NGFmODQuLjRiYmQxMWRk
MGUwMjc0MDk1OTdiOTEzYWQ5YmEzZDg0OGUwNmY3OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRo
SW5wdXRUeXBlLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHJpdmF0ZToKICAgICBPcHRpb25hbDxEYXRl
Q29tcG9uZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRzKGNvbnN0IFN0cmluZ1ZpZXcmKSBjb25z
dCBvdmVycmlkZTsKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gc2V0TWlsbGlzZWNvbmRU
b0RhdGVDb21wb25lbnRzKGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc01vbnRo
RmllbGQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGhhbmRsZURPTUFjdGl2YXRlRXZlbnQo
RXZlbnQmKSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCmluZGV4IDBiZDJkNGJjZTlhNThlYjc5Njc5N2IzODEx
MDA4NDVhZTVkNjU2ZmQuLjUwOTMzY2FlYzc4ZGQ4MGQwMTg2YTQ5YWU5ZTg3ZDRiZTgzY2Q1MWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcApAQCAtMTA0LDYgKzEwNCw4IEBA
IGJvb2wgVGltZUlucHV0VHlwZTo6aXNUaW1lRmllbGQoKSBjb25zdAogICAgIHJldHVybiB0cnVl
OwogfQogCit2b2lkIFRpbWVJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQm
KSB7IH0KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9U
aW1lSW5wdXRUeXBlLmgKaW5kZXggODQxNjZiMDk1YWYyMTg4Y2E4ZTA3NTZiZTdlNTU3MTFiMTJk
OGVkNC4uMWU4NjBjMzE3ZmZkYzAxYzljZWM2ZmZiNGUzZDM0MDI5YzAzZmZkYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKQEAgLTQ4LDYgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICBP
cHRpb25hbDxEYXRlQ29tcG9uZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRzKGNvbnN0IFN0cmlu
Z1ZpZXcmKSBjb25zdCBvdmVycmlkZTsKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gc2V0
TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
Ym9vbCBpc1RpbWVGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgaGFuZGxlRE9NQWN0
aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKaW5kZXggYjJiYjI0M2I5MDVkODQx
NWIwMzRjOTQwNmU0YmZhMzgyMWIzOWJhMy4uODc0N2I3MzU1YmYzMjA5YTA2ZjUyZjk2NmZiNjk2
YzY1MTAwMTdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwCkBAIC04Miw2
ICs4Miw4IEBAIGJvb2wgV2Vla0lucHV0VHlwZTo6aXNXZWVrRmllbGQoKSBjb25zdAogICAgIHJl
dHVybiB0cnVlOwogfQogCit2b2lkIFdlZWtJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZl
bnQoRXZlbnQmKSB7IH0KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKaW5kZXggZDNiYTE1MTMzZTczNDExZWE4MDU0YzAzM2Nm
MTA2YTVjMzY2YTNhNy4uNTA5ODE3NDRiZmU0ZWJiNzEzYWZlYjg5YjZmMGRhZGE4NjE1YWI4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgcHJpdmF0
ZToKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRzKGNv
bnN0IFN0cmluZ1ZpZXcmKSBjb25zdCBvdmVycmlkZTsKICAgICBPcHRpb25hbDxEYXRlQ29tcG9u
ZW50cz4gc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBpc1dlZWtGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgaGFu
ZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCAwYzE0
YWU2OTBjZDNmNDZhNjNiYWU2MTYwODU0ZjFhMDNiODExYjQxLi4yZThhNGVjNmU3MDJkOGQwYzAx
MzlhNDIzYmZlNGIyYWMwMTMwOGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmNwcApAQCAtNDkxLDYgKzQ5MSwxNSBAQCBzdGQ6OnVuaXF1ZV9wdHI8RGF0YUxpc3RTdWdnZXN0
aW9uUGlja2VyPiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlRGF0YUxpc3RTdWdnZQogCiAjZW5k
aWYKIAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorCitzdGQ6OnVuaXF1
ZV9wdHI8RGF0ZVRpbWVDaG9vc2VyPiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlRGF0ZVRpbWVD
aG9vc2VyKERhdGVUaW1lQ2hvb3NlckNsaWVudCYpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKKyNlbmRpZgorCiB2b2lkIEVtcHR5Q2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUm
LCBGaWxlQ2hvb3NlciYpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5k
ZXggNzFkNGU1NDM5MWI2MDU2MjVjMWVjZGM0ZTk3YTdhMzAxZDAxMzc5My4uM2U5ZGU3ZDI2NmE5
ZGVhNmUxYTAzNDQ2YTU5ZWY3ZjQwMDYwOTk0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaApAQCAtMTM2LDYgKzEzNiwxMCBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1
YmxpYyBDaHJvbWVDbGllbnQgewogICAgIGJvb2wgY2FuU2hvd0RhdGFMaXN0U3VnZ2VzdGlvbkxh
YmVscygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRlVGlt
ZUNob29zZXI+IGNyZWF0ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGltZUNob29zZXJDbGllbnQmKSBm
aW5hbDsKKyNlbmRpZgorCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hvb3Nl
ciYpIGZpbmFsOwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoU2hhcmVEYXRhV2l0aFBhcnNlZFVS
TCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogICAgIHZvaWQgbG9h
ZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyJikgZmlu
YWwgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggNTQ1MzdhZGJlNWRhNmNmNGI5MzIxZjAw
ODNiNThmYWJhNTBmZjA2Zi4uZGIwNzBiY2M3ZTI2NjA0NzdmYzBjNmMyNTgwYTU4YmQxMWVjMTE4
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtNjEsNiArNjEsMTAgQEAKICNpbmNsdWRlICJE
YXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5E
X1RJTUVfSU5QVVRfVFlQRVMpCisjaW5jbHVkZSAiRGF0ZVRpbWVDaG9vc2VyLmgiCisjZW5kaWYK
KwogI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKEdSQVBISUNTX0NPTlRFWFRfR0wpCiAjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgiCiAjZW5kaWYKQEAgLTQ0Miw2
ICs0NDYsMjEgQEAgc3RkOjp1bmlxdWVfcHRyPERhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcj4gQ2hy
b21lOjpjcmVhdGVEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIKIAogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKworc3RkOjp1bmlxdWVfcHRyPERhdGVUaW1l
Q2hvb3Nlcj4gQ2hyb21lOjpjcmVhdGVEYXRlVGltZUNob29zZXIoRGF0ZVRpbWVDaG9vc2VyQ2xp
ZW50JiBjbGllbnQpCit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBVTlVTRURfUEFS
QU0oY2xpZW50KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyNlbHNlCisgICAgbm90aWZ5UG9wdXBP
cGVuaW5nT2JzZXJ2ZXJzKCk7CisgICAgcmV0dXJuIG1fY2xpZW50LmNyZWF0ZURhdGVUaW1lQ2hv
b3NlcihjbGllbnQpOworI2VuZGlmCit9CisKKyNlbmRpZgorCiB2b2lkIENocm9tZTo6cnVuT3Bl
blBhbmVsKEZyYW1lJiBmcmFtZSwgRmlsZUNob29zZXImIGZpbGVDaG9vc2VyKQogewogICAgIG5v
dGlmeVBvcHVwT3BlbmluZ09ic2VydmVycygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggMjA3MzRl
NDFiNTI0ODUwYWJjOWNiNTM1NzQyODA5NjgzMTljYTI1My4uOTRiOTUyZDZlOGYzY2ExOGM5M2Ix
OTEwZTUxM2E3OTI0Yjc0MDZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC0xNTcsNiArMTU3LDEw
IEBAIHB1YmxpYzoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YUxpc3RTdWdnZXN0aW9uUGlja2Vy
PiBjcmVhdGVEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIoRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVu
dCYpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RGF0ZVRpbWVDaG9vc2VyPiBjcmVhdGVEYXRlVGltZUNob29zZXIo
RGF0ZVRpbWVDaG9vc2VyQ2xpZW50Jik7CisjZW5kaWYKKwogICAgIHZvaWQgcnVuT3BlblBhbmVs
KEZyYW1lJiwgRmlsZUNob29zZXImKTsKICAgICB2b2lkIHNob3dTaGFyZVNoZWV0KFNoYXJlRGF0
YVdpdGhQYXJzZWRVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2
b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRl
ciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggYzBhMGQzMGJjZmRmM2Y0MWNm
MGU4ZDdmM2RlNGMyNGMwMWRiNjc5OC4uMTM2NGIzYWVhNmIxMjNiMDYxNDFlZmY0YzFhNWNjNzFj
Y2M5OWYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0yODksNiArMjg5LDEw
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2hvd0RhdGFMaXN0U3VnZ2VzdGlvbkxh
YmVscygpIGNvbnN0ID0gMDsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5Q
VVRfVFlQRVMpCisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8RGF0ZVRpbWVDaG9vc2VyPiBj
cmVhdGVEYXRlVGltZUNob29zZXIoRGF0ZVRpbWVDaG9vc2VyQ2xpZW50JikgPSAwOworI2VuZGlm
CisKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lJiwgRmlsZUNob29zZXImKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNob3dTaGFyZVNoZWV0KFNoYXJlRGF0YVdpdGhQYXJzZWRV
UkwmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spIHsgY2Fs
bGJhY2soZmFsc2UpOyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9EYXRlVGltZUNob29zZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGVUaW1lQ2hv
b3Nlci5oCmluZGV4IDIzYjA1ZDdjODI0ZjU1NjhjOGY4N2Y5Nzg1Mzc0YWJjMTNhMDEwZWIuLjBm
NjdjZTQ4MGFkNjJhOTNmNThkOTRlMTJhNWU5MTI0Njc4YjM2NzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGVUaW1lQ2hvb3Nlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0RhdGVUaW1lQ2hvb3Nlci5oCkBAIC0yOCw0MyArMjgsMjMgQEAKICAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAotI2lmbmRlZiBEYXRlVGltZUNob29zZXJfaAotI2RlZmluZSBEYXRlVGlt
ZUNob29zZXJfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBV
VF9UWVBFUykKLSNpbmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBEYXRlVGltZUNob29zZXJQYXJh
bWV0ZXJzIHsKLSAgICBBdG9tU3RyaW5nIHR5cGU7Ci0gICAgSW50UmVjdCBhbmNob3JSZWN0SW5S
b290VmlldzsKLSAgICAvLyBMb2NhbGUgbmFtZSBmb3Igd2hpY2ggdGhlIGNob29zZXIgc2hvdWxk
IGJlIGxvY2FsaXplZC4gVGhpcwotICAgIC8vIG1pZ2h0IGJlIGFuIGludmFsaWQgbmFtZSBiZWNh
dXNlIGl0IGNvbWVzIGZyb20gSFRNTCBsYW5nCi0gICAgLy8gYXR0cmlidXRlcy4KLSAgICBBdG9t
U3RyaW5nIGxvY2FsZTsKLSAgICBTdHJpbmcgY3VycmVudFZhbHVlOwotICAgIFZlY3RvcjxTdHJp
bmc+IHN1Z2dlc3Rpb25WYWx1ZXM7Ci0gICAgVmVjdG9yPFN0cmluZz4gbG9jYWxpemVkU3VnZ2Vz
dGlvblZhbHVlczsKLSAgICBWZWN0b3I8U3RyaW5nPiBzdWdnZXN0aW9uTGFiZWxzOwotICAgIGRv
dWJsZSBtaW5pbXVtOwotICAgIGRvdWJsZSBtYXhpbXVtOwotICAgIGRvdWJsZSBzdGVwOwotICAg
IGRvdWJsZSBzdGVwQmFzZTsKLSAgICBib29sIHJlcXVpcmVkOwotICAgIGJvb2wgaXNBbmNob3JF
bGVtZW50UlRMOwotfTsKK3N0cnVjdCBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzOwogCi0vLyBG
b3IgcGlja2VycyBsaWtlIGNvbG9yIHBpY2tlcnMgYW5kIGRhdGUgcGlja2Vycy4KLWNsYXNzIERh
dGVUaW1lQ2hvb3NlciA6IHB1YmxpYyBSZWZDb3VudGVkPERhdGVUaW1lQ2hvb3Nlcj4geworY2xh
c3MgRGF0ZVRpbWVDaG9vc2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPERhdGVUaW1lQ2hvb3Nl
cj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHZpcnR1YWwg
fkRhdGVUaW1lQ2hvb3NlcigpID0gZGVmYXVsdDsKIAogICAgIHZpcnR1YWwgdm9pZCBlbmRDaG9v
c2VyKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzaG93Q2hvb3Nlcihjb25zdCBEYXRlVGltZUNo
b29zZXJQYXJhbWV0ZXJzJikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogI2Vu
ZGlmCi0jZW5kaWYgLy8gRGF0ZVRpbWVDaG9vc2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0RhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0RhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YjY4MjNj
NmM1Mzk5MGYzODdmNWQ0YWFlZjFkNmY4OGY3YmMzZGU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycy5oCkBAIC0wLDAg
KzEsMTM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoREFURV9B
TkRfVElNRV9JTlBVVF9UWVBFUykKKworI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgRGF0
ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyB7CisgICAgQXRvbVN0cmluZyB0eXBlOworICAgIEludFJl
Y3QgYW5jaG9yUmVjdEluUm9vdFZpZXc7CisgICAgLy8gTG9jYWxlIG5hbWUgZm9yIHdoaWNoIHRo
ZSBjaG9vc2VyIHNob3VsZCBiZSBsb2NhbGl6ZWQuIFRoaXMKKyAgICAvLyBtaWdodCBiZSBhbiBp
bnZhbGlkIG5hbWUgYmVjYXVzZSBpdCBjb21lcyBmcm9tIEhUTUwgbGFuZworICAgIC8vIGF0dHJp
YnV0ZXMuCisgICAgQXRvbVN0cmluZyBsb2NhbGU7CisgICAgU3RyaW5nIGN1cnJlbnRWYWx1ZTsK
KyAgICBWZWN0b3I8U3RyaW5nPiBzdWdnZXN0aW9uVmFsdWVzOworICAgIFZlY3RvcjxTdHJpbmc+
IGxvY2FsaXplZFN1Z2dlc3Rpb25WYWx1ZXM7CisgICAgVmVjdG9yPFN0cmluZz4gc3VnZ2VzdGlv
bkxhYmVsczsKKyAgICBkb3VibGUgbWluaW11bTsKKyAgICBkb3VibGUgbWF4aW11bTsKKyAgICBk
b3VibGUgc3RlcDsKKyAgICBkb3VibGUgc3RlcEJhc2U7CisgICAgYm9vbCByZXF1aXJlZDsKKyAg
ICBib29sIGlzQW5jaG9yRWxlbWVudFJUTDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgT3B0aW9uYWw8RGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycz4gZGVjb2RlKERlY29k
ZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIERhdGVUaW1lQ2hvb3Nl
clBhcmFtZXRlcnM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29k
ZXIgPDwgdHlwZTsKKyAgICBlbmNvZGVyIDw8IGFuY2hvclJlY3RJblJvb3RWaWV3OworICAgIGVu
Y29kZXIgPDwgbG9jYWxlOworICAgIGVuY29kZXIgPDwgY3VycmVudFZhbHVlOworICAgIGVuY29k
ZXIgPDwgc3VnZ2VzdGlvblZhbHVlczsKKyAgICBlbmNvZGVyIDw8IGxvY2FsaXplZFN1Z2dlc3Rp
b25WYWx1ZXM7CisgICAgZW5jb2RlciA8PCBzdWdnZXN0aW9uTGFiZWxzOworICAgIGVuY29kZXIg
PDwgbWluaW11bTsKKyAgICBlbmNvZGVyIDw8IG1heGltdW07CisgICAgZW5jb2RlciA8PCBzdGVw
OworICAgIGVuY29kZXIgPDwgc3RlcEJhc2U7CisgICAgZW5jb2RlciA8PCByZXF1aXJlZDsKKyAg
ICBlbmNvZGVyIDw8IGlzQW5jaG9yRWxlbWVudFJUTDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4KK09wdGlvbmFsPERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnM+IERhdGVUaW1lQ2hvb3Nl
clBhcmFtZXRlcnM6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIEF0b21TdHJpbmcg
dHlwZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHR5cGUpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgSW50UmVjdCBhbmNob3JSZWN0SW5Sb290VmlldzsKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGFuY2hvclJlY3RJblJvb3RWaWV3KSkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgIEF0b21TdHJpbmcgbG9jYWxlOworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUobG9jYWxlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIFN0cmlu
ZyBjdXJyZW50VmFsdWU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjdXJyZW50VmFsdWUpKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgVmVjdG9yPFN0cmluZz4gc3VnZ2Vz
dGlvblZhbHVlczsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN1Z2dlc3Rpb25WYWx1ZXMpKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgVmVjdG9yPFN0cmluZz4gbG9jYWxp
emVkU3VnZ2VzdGlvblZhbHVlczsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGxvY2FsaXplZFN1
Z2dlc3Rpb25WYWx1ZXMpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgVmVj
dG9yPFN0cmluZz4gc3VnZ2VzdGlvbkxhYmVsczsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN1
Z2dlc3Rpb25MYWJlbHMpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgZG91
YmxlIG1pbmltdW07CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtaW5pbXVtKSkKKyAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGRvdWJsZSBtYXhpbXVtOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUobWF4aW11bSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBkb3VibGUgc3RlcDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0ZXApKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgZG91YmxlIHN0ZXBCYXNlOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoc3RlcEJhc2UpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisg
ICAgYm9vbCByZXF1aXJlZDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlcXVpcmVkKSkKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGJvb2wgaXNBbmNob3JFbGVtZW50UlRM
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaXNBbmNob3JFbGVtZW50UlRMKSkKKyAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiB7eyB0eXBlLCBhbmNob3JSZWN0SW5S
b290VmlldywgbG9jYWxlLCBjdXJyZW50VmFsdWUsIHN1Z2dlc3Rpb25WYWx1ZXMsIGxvY2FsaXpl
ZFN1Z2dlc3Rpb25WYWx1ZXMsIHN1Z2dlc3Rpb25MYWJlbHMsIG1pbmltdW0sIG1heGltdW0sIHN0
ZXAsIHN0ZXBCYXNlLCByZXF1aXJlZCwgaXNBbmNob3JFbGVtZW50UlRMIH19OworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggNWQ2MjBiMWFkMDM5
MjRiM2ZmZDgxZDk1MTA1ZDRiZjE0MzQxZDlkNC4uZTMwY2ExYmYyNDk5MjFkNGQzNjA4ODQwOWQ1
YzhhYzNiZWQ2MWY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0zMDcsNiArMzA3LDcgQEAgVUlQcm9jZXNz
L1dlYkNvbnRleHRNZW51UHJveHkuY3BwCiBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5
LmNwcAogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eUNsaWVudC5jcHAKIFVJUHJvY2Vz
cy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uY3BwCitVSVByb2Nlc3MvV2ViRGF0ZVRp
bWVQaWNrZXIuY3BwCiBVSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHAKIFVJUHJvY2Vz
cy9XZWJGb3JtQ2xpZW50LmNwcAogVUlQcm9jZXNzL1dlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQ
cm94eS5jcHAKQEAgLTYzMiw2ICs2MzMsNyBAQCBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9v
c2VyLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5j
cHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2Vy
LmNwcAorV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRlVGltZUNob29zZXIuY3BwCiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcAog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5k
ZXggYTg4NDA3MTYxZWYwZjkzZDAzMDBjNTFjOGZmMjcxNGQ1N2I0YjYyOS4uM2YwMzBlYTBkMGFm
ZjY2NjdlOWVmMjU1ODcyMmQwNGEwN2VkNzUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAt
NDk2LDYgKzQ5Niw3IEBAIFVJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMubW0KIFVJUHJv
Y2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQogVUlQcm9jZXNzL21hYy9XZWJDb29r
aWVNYW5hZ2VyUHJveHlNYWMubW0KIFVJUHJvY2Vzcy9tYWMvV2ViRGF0YUxpc3RTdWdnZXN0aW9u
c0Ryb3Bkb3duTWFjLm1tCitVSVByb2Nlc3MvbWFjL1dlYkRhdGVUaW1lUGlja2VyTWFjLm1tCiBV
SVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQogVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1l
bnVQcm94eU1hYy5tbQogVUlQcm9jZXNzL21hYy9XZWJQcm9jZXNzUHJveHlNYWMubW0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA1OTQxZjAyMDBhY2JkYjJkYWQzYmJkMDhk
NmVkMDgzMmI2NTUzZTdlLi4yMDYxMGZkYjNkM2M2ZGMyYzE5YmE0NGYyMjRhNWNkOGY4NGY5MWE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0zMCw2ICszMCw3IEBACiAj
aW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXIuaCIK
ICNpbmNsdWRlICJXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uaCIKKyNpbmNsdWRlICJX
ZWJEYXRlVGltZVBpY2tlci5oIgogI2luY2x1ZGUgIldlYlBvcHVwTWVudVByb3h5LmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BbHRlcm5h
dGl2ZVRleHRDbGllbnQuaD4KQEAgLTE1OCw2ICsxNTksMTAgQEAgY2xhc3MgV2ViQ29sb3JQaWNr
ZXI7CiBjbGFzcyBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd247CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorY2xhc3MgV2ViRGF0ZVRpbWVQaWNr
ZXI7CisjZW5kaWYKKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIGNsYXNzIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHlDbGllbnQ7CiAjZW5kaWYKQEAgLTMzOSw2ICszNDQsMTAgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgUmVmUHRyPFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bj4g
Y3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duKFdlYlBhZ2VQcm94eSYpID0gMDsKICNl
bmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisgICAgdmlydHVh
bCBSZWZQdHI8V2ViRGF0ZVRpbWVQaWNrZXI+IGNyZWF0ZURhdGVUaW1lUGlja2VyKFdlYlBhZ2VQ
cm94eSYpID0gMDsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdmlydHVhbCBS
ZWY8V2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZT4gY3JlYXRlVmFsaWRhdGlvbkJ1YmJsZShjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGU6OlNldHRp
bmdzJikgPSAwOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJEYXRlVGltZVBpY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJEYXRlVGlt
ZVBpY2tlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGI4YmRjNWM1N2RjZGYxZWIwODI3ZWU1ZGE2NDMxMDNi
MGIzZmQwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkRh
dGVUaW1lUGlja2VyLmNwcApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkRhdGVUaW1lUGlja2VyLmgiCisKKyNpZiBFTkFCTEUo
REFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKworI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViRGF0ZVRpbWVQaWNrZXI6OldlYkRhdGVUaW1lUGlj
a2VyKFdlYlBhZ2VQcm94eSYgcGFnZSkKKyAgICA6IG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkK
K3sKK30KKworV2ViRGF0ZVRpbWVQaWNrZXI6On5XZWJEYXRlVGltZVBpY2tlcigpCit7Cit9CisK
K3ZvaWQgV2ViRGF0ZVRpbWVQaWNrZXI6OmVuZFBpY2tlcigpCit7CisgICAgaWYgKGF1dG8gcGFn
ZSA9IHN0ZDo6ZXhjaGFuZ2UobV9wYWdlLCBudWxscHRyKSkKKyAgICAgICAgcGFnZS0+ZGlkRW5k
RGF0ZVRpbWVQaWNrZXIoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlja2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJEYXRlVGltZVBpY2tlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5OWZkODgzMDZlZGQ4ZmRmN2M1
ZjI3ZDkzZDIyY2E4YjliOWM3NjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJEYXRlVGltZVBpY2tlci5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQor
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IERh
dGVUaW1lQ2hvb3NlclBhcmFtZXRlcnM7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBXZWJQYWdlUHJveHk7CisKK2NsYXNzIFdlYkRhdGVUaW1lUGlja2VyIDogcHVibGljIFJlZkNv
dW50ZWQ8V2ViRGF0ZVRpbWVQaWNrZXI+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViRGF0ZVRp
bWVQaWNrZXI+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJEYXRlVGltZVBpY2tlcigpOwor
CisgICAgdmlydHVhbCB2b2lkIGVuZFBpY2tlcigpOworICAgIHZpcnR1YWwgdm9pZCBzaG93RGF0
ZVRpbWVQaWNrZXIoV2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyYmKSA9IDA7CisK
K3Byb3RlY3RlZDoKKyAgICBleHBsaWNpdCBXZWJEYXRlVGltZVBpY2tlcihXZWJQYWdlUHJveHkm
KTsKKworICAgIFdlYWtQdHI8V2ViUGFnZVByb3h5PiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZDdmODJmN2Jl
MmZlYjNmNTFlMGZjZmZjMmUwMjZkYWJlODE2NDdmZS4uOWNlZmI3OTFkNzdiOTA0NDkxY2UzMDlj
NmMwNWNjYmFlMDliNDIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC02MTY3LDYgKzYxNjcsNDMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFNlbGVjdE9w
dGlvbihjb25zdCBTdHJpbmcmIHNlbGVjdGVkT3B0aW9uKQogCiAjZW5kaWYKIAorI2lmIEVOQUJM
RShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0Rh
dGVUaW1lUGlja2VyKFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMmJiBwYXJhbXMp
Cit7CisgICAgaWYgKCFtX2RhdGVUaW1lUGlja2VyKQorICAgICAgICBtX2RhdGVUaW1lUGlja2Vy
ID0gcGFnZUNsaWVudCgpLmNyZWF0ZURhdGVUaW1lUGlja2VyKCp0aGlzKTsKKworICAgIG1fZGF0
ZVRpbWVQaWNrZXItPnNob3dEYXRlVGltZVBpY2tlcihXVEZNb3ZlKHBhcmFtcykpOworfQorCit2
b2lkIFdlYlBhZ2VQcm94eTo6ZW5kRGF0ZVRpbWVQaWNrZXIoKQoreworICAgIGlmICghbV9kYXRl
VGltZVBpY2tlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9kYXRlVGltZVBpY2tlci0+ZW5k
UGlja2VyKCk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaG9vc2VEYXRlKGNvbnN0IFN0
cmluZyYgZGF0ZSkKK3sKKyAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZENob29zZURhdGUoZGF0ZSkp
OworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRW5kRGF0ZVRpbWVQaWNrZXIoKQoreworICAg
IG1fZGF0ZVRpbWVQaWNrZXIgPSBudWxscHRyOworICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3Mo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkRW5k
RGF0ZVRpbWVQaWNrZXIoKSk7Cit9CisKKyNlbmRpZgorCiBXZWJJbnNwZWN0b3JQcm94eSogV2Vi
UGFnZVByb3h5OjppbnNwZWN0b3IoKSBjb25zdAogewogICAgIGlmIChpc0Nsb3NlZCgpKQpAQCAt
OTMyNyw2ICs5MzY0LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbG9zZU92ZXJsYXllZFZpZXdz
KCkKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICAgICBlbmRDb2xvclBpY2tlcigpOwog
I2VuZGlmCisKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKyAgICBlbmRE
YXRlVGltZVBpY2tlcigpOworI2VuZGlmCiB9CiAKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAzMGIyNjk3YjBiZjdhY2Vm
ZDQ4NGFhMjY2ODVjN2NjNTUzYzViZTdmLi5lNTM2M2NkMTgyOWFiYmQyYzMzMDk4ZGViNGIzYjBl
MTgzMTQ5MmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNjEs
NiArNjEsNyBAQAogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51SXRlbURhdGEuaCIKICNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJEYXRhTGlzdFN1Z2dlc3Rp
b25zRHJvcGRvd24uaCIKKyNpbmNsdWRlICJXZWJEYXRlVGltZVBpY2tlci5oIgogI2luY2x1ZGUg
IldlYkZyYW1lUHJveHkuaCIKICNpbmNsdWRlICJXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgi
CiAjaW5jbHVkZSAiV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCkBAIC0yNDYsNiAr
MjQ3LDcgQEAgc3RydWN0IEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXI7CiBzdHJ1Y3QgQ29tcG9z
aXRpb25IaWdobGlnaHQ7CiBzdHJ1Y3QgQ29udGVudFJ1bGVMaXN0UmVzdWx0czsKIHN0cnVjdCBE
YXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbjsKK3N0cnVjdCBEYXRlVGltZUNob29zZXJQYXJh
bWV0ZXJzOwogc3RydWN0IERpY3Rpb25hcnlQb3B1cEluZm87CiBzdHJ1Y3QgRHJhZ0l0ZW07CiBz
dHJ1Y3QgRWxlbWVudENvbnRleHQ7CkBAIC0xNjQzLDYgKzE2NDUsMTEgQEAgcHVibGljOgogICAg
IHZvaWQgZGlkQ2xvc2VTdWdnZXN0aW9ucygpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFURV9B
TkRfVElNRV9JTlBVVF9UWVBFUykKKyAgICB2b2lkIGRpZENob29zZURhdGUoY29uc3QgU3RyaW5n
Jik7CisgICAgdm9pZCBkaWRFbmREYXRlVGltZVBpY2tlcigpOworI2VuZGlmCisKICAgICB2b2lk
IHVwZGF0ZUN1cnJlbnRNb2RpZmllclN0YXRlKCk7CiAKICNpZiBIQVZFKFBFTkNJTEtJVCkKQEAg
LTE5OTQsNiArMjAwMSwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgZW5kRGF0YUxpc3RTdWdnZXN0
aW9ucygpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykK
KyAgICB2b2lkIHNob3dEYXRlVGltZVBpY2tlcihXZWJDb3JlOjpEYXRlVGltZUNob29zZXJQYXJh
bWV0ZXJzJiYpOworICAgIHZvaWQgZW5kRGF0ZVRpbWVQaWNrZXIoKTsKKyNlbmRpZgorCiAgICAg
dm9pZCBjbG9zZU92ZXJsYXllZFZpZXdzKCk7CiAKICAgICB2b2lkIGNvbXBvc2l0aW9uV2FzQ2Fu
Y2VsZWQoKTsKQEAgLTI1OTcsNiArMjYwOSw5IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKERBVEFM
SVNUX0VMRU1FTlQpCiAgICAgUmVmUHRyPFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bj4g
bV9kYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd247CiAjZW5kaWYKKyNpZiBFTkFCTEUoREFURV9B
TkRfVElNRV9JTlBVVF9UWVBFUykKKyAgICBSZWZQdHI8V2ViRGF0ZVRpbWVQaWNrZXI+IG1fZGF0
ZVRpbWVQaWNrZXI7CisjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZWZQdHI8V2Vi
Q29yZTo6VmFsaWRhdGlvbkJ1YmJsZT4gbV92YWxpZGF0aW9uQnViYmxlOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXgg
ZGMxZWM4N2Q4MGM0YWRiOGViYmQzOWY5OTM0ZmI4MjdhNjJmOTAyOC4uNTYwNzZiMzQ4ZjcyYmU4
NzMyM2QyZTE3ZDNhMGNlNGQ3ZTA0ZjNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtOTgsNiArOTgsMTEgQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZVByb3h5IHsKICAgICBFbmREYXRhTGlzdFN1Z2dlc3Rpb25zKCk7CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorICAgIFNob3dEYXRlVGlt
ZVBpY2tlcihzdHJ1Y3QgV2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyBwYXJhbXMp
OworICAgIEVuZERhdGVUaW1lUGlja2VyKCk7CisjZW5kaWYKKwogICAgICMgUG9saWN5IG1lc3Nh
Z2VzCiAgICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgU3RyaW5nIGRv
d25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVz
ZXJEYXRhKQogICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBm
cmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFj
dGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0Rh
dGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VQcm94
eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
b3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpG
b3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBy
ZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0
ZW5lcklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MuaAppbmRleCA3NjFlZWY4OWEzYTdiM2Q2NTIyYzY2ZWJkNGExNmM2ZmUzZWJmMzg5Li43NDMy
NTM2ZjcwM2E1MWRlOWU1NjE1ODQ2Mzc2OTY4M2NiOTRkNzZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMTI0LDYgKzEyNCwxMCBA
QCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24+IGNy
ZWF0ZURhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bihXZWJQYWdlUHJveHkmKSBmaW5hbDsKICNl
bmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisgICAgUmVmUHRy
PFdlYkRhdGVUaW1lUGlja2VyPiBjcmVhdGVEYXRlVGltZVBpY2tlcihXZWJQYWdlUHJveHkmKSBm
aW5hbDsKKyNlbmRpZgorCiAgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKSBvdmVy
cmlkZTsKICAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
V2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFRleHRJbmRp
Y2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggOTYxMzEyMjZlNmEx
NjIzYTQyZDM4NThmY2NhODU1MTFkZWEwNTYyYi4uMDc2MDU0ZmI3MWQ5ODg3ODc5YWY5NTA3ZGZk
OTYzNDY5YzlhY2M1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5tbQpAQCAtODU4LDYgKzg1OCwxMyBAQCBSZWZQdHI8V2ViRGF0YUxpc3RT
dWdnZXN0aW9uc0Ryb3Bkb3duPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRGF0YUxpc3RTdWdnZXN0
aW9ucwogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykK
K1JlZlB0cjxXZWJEYXRlVGltZVBpY2tlcj4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZURhdGVUaW1l
UGlja2VyKFdlYlBhZ2VQcm94eSYpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYK
KwogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlk
UGVyZm9ybURyYWdPcGVyYXRpb24oYm9vbCBoYW5kbGVkKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAppbmRleCA1YjBkMzE3MDIwMzZiNmYy
Y2RhNzcyNmI2OTM3MmQ5YWVlODI4NTJjLi5kMTcxYzdhYjVhYjMyNzI4MWNkMjA2MDM1MjRkMTgx
YWU1NGUzMWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGxNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGxNYWMuaApAQCAtMTQzLDYgKzE0MywxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJE
YXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24+IGNyZWF0ZURhdGFMaXN0U3VnZ2VzdGlvbnNEcm9w
ZG93bihXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVf
QU5EX1RJTUVfSU5QVVRfVFlQRVMpCisgICAgUmVmUHRyPFdlYkRhdGVUaW1lUGlja2VyPiBjcmVh
dGVEYXRlVGltZVBpY2tlcihXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKKyNlbmRpZgorCiAgICAg
UmVmPFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGU+IGNyZWF0ZVZhbGlkYXRpb25CdWJibGUoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlOjpTZXR0
aW5ncyYpIGZpbmFsOwogCiAgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50
SW1wbE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5tbQppbmRleCAzNzBiMmZjNTU2M2JkYTBmMWU3ZmFjMzUxMTFlZjdiMzY1MzkwMDIwLi43ODhh
NjQ5MWE4MWYxYzk4N2M3YWMxZjY0YzIxZjc3MjZjNWYzOTZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCkBAIC01Miw2ICs1Miw3IEBA
CiAjaW1wb3J0ICJXZWJDb2xvclBpY2tlck1hYy5oIgogI2ltcG9ydCAiV2ViQ29udGV4dE1lbnVQ
cm94eU1hYy5oIgogI2ltcG9ydCAiV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLmgi
CisjaW1wb3J0ICJXZWJEYXRlVGltZVBpY2tlck1hYy5oIgogI2ltcG9ydCAiV2ViRWRpdENvbW1h
bmRQcm94eS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQb3B1cE1l
bnVQcm94eU1hYy5oIgpAQCAtNDc2LDYgKzQ3NywxMyBAQCBSZWZQdHI8V2ViRGF0YUxpc3RTdWdn
ZXN0aW9uc0Ryb3Bkb3duPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9u
cwogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKK1Jl
ZlB0cjxXZWJEYXRlVGltZVBpY2tlcj4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZURhdGVUaW1lUGlj
a2VyKFdlYlBhZ2VQcm94eSYgcGFnZSkKK3sKKyAgICByZXR1cm4gV2ViRGF0ZVRpbWVQaWNrZXJN
YWM6OmNyZWF0ZShwYWdlLCBtX3ZpZXcpOworfQorI2VuZGlmCisKIFJlZjxWYWxpZGF0aW9uQnVi
YmxlPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlVmFsaWRhdGlvbkJ1YmJsZShjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFZhbGlkYXRpb25CdWJibGU6OlNldHRpbmdzJiBzZXR0aW5ncykKIHsK
ICAgICByZXR1cm4gVmFsaWRhdGlvbkJ1YmJsZTo6Y3JlYXRlKG1fdmlldywgbWVzc2FnZSwgc2V0
dGluZ3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkRhdGVU
aW1lUGlja2VyTWFjLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViRGF0ZVRpbWVQ
aWNrZXJNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTMzODZlYzkyYmMxZGY1MDkwYTE1YjhjM2M3Njc3NmQz
YTIzNWNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dl
YkRhdGVUaW1lUGlja2VyTWFjLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpICYmIFVTRShB
UFBLSVQpCisKKyNpbXBvcnQgIldlYkRhdGVUaW1lUGlja2VyLmgiCisjaW1wb3J0IDxXZWJDb3Jl
L0RhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
KworT0JKQ19DTEFTUyBXS0RhdGVUaW1lUGlja2VyOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Y2xhc3MgV2ViRGF0ZVRpbWVQaWNrZXJNYWMgZmluYWwgOiBwdWJsaWMgV2ViRGF0ZVRpbWVQaWNr
ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViRGF0ZVRpbWVQaWNrZXJNYWM+IGNyZWF0
ZShXZWJQYWdlUHJveHkmLCBOU1ZpZXcgKik7CisgICAgfldlYkRhdGVUaW1lUGlja2VyTWFjKCk7
CisKKyAgICB2b2lkIGRpZENob29zZURhdGUoY29uc3QgU3RyaW5nJik7CisKKyAgICB2b2lkIGVu
ZFBpY2tlcigpIGZpbmFsOworICAgIHZvaWQgc2hvd0RhdGVUaW1lUGlja2VyKFdlYkNvcmU6OkRh
dGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMmJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgV2ViRGF0
ZVRpbWVQaWNrZXJNYWMoV2ViUGFnZVByb3h5JiwgTlNWaWV3ICopOworCisgICAgTlNWaWV3ICpt
X3ZpZXc7CisgICAgUmV0YWluUHRyPFdLRGF0ZVRpbWVQaWNrZXI+IG1fcGlja2VyOworICAgIFdl
YkNvcmU6OkRhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMgbV9wYXJhbXM7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZ
UEVTKSAmJiBVU0UoQVBQS0lUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1dlYkRhdGVUaW1lUGlja2VyTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dlYkRhdGVUaW1lUGlja2VyTWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4NmVhYjNhOWEzNzllYmVmNzQ3
M2QxMTQ2YWVjYWUxMTFkNTRlNzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvV2ViRGF0ZVRpbWVQaWNrZXJNYWMubW0KQEAgLTAsMCArMSwyMzYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViRGF0ZVRpbWVQaWNr
ZXJNYWMuaCIKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBVU0Uo
QVBQS0lUKQorCisjaW1wb3J0ICJBcHBLaXRTUEkuaCIKKyNpbXBvcnQgIldlYlBhZ2VQcm94eS5o
IgorCitjb25zdGV4cHIgQ0dGbG9hdCBrQ2FsZW5kYXJXaWR0aCA9IDEzOTsKK2NvbnN0ZXhwciBD
R0Zsb2F0IGtDYWxlbmRhckhlaWdodCA9IDE0ODsKK3N0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGtE
YXRlRm9ybWF0U3RyaW5nID0gQCJ5eXl5LU1NLWRkIjsKK3N0YXRpYyBOU1N0cmluZyAqIGNvbnN0
IGtEYXRlVGltZUZvcm1hdFN0cmluZyA9IEAieXl5eS1NTS1kZCdUJ0hIOm1tIjsKK3N0YXRpYyBO
U1N0cmluZyAqIGNvbnN0IGtEZWZhdWx0TG9jYWxlSWRlbnRpZmllciA9IEAiZW5fVVNfUE9TSVgi
OworCitAaW50ZXJmYWNlIFdLRGF0ZVRpbWVQaWNrZXIgOiBOU09iamVjdAorCistIChpZClpbml0
V2l0aFBhcmFtczooV2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyYmKXBhcmFtcyBp
blZpZXc6KE5TVmlldyAqKXZpZXc7CistICh2b2lkKXNob3dQaWNrZXI6KFdlYktpdDo6V2ViRGF0
ZVRpbWVQaWNrZXJNYWMmKXBpY2tlcjsKKy0gKHZvaWQpaW52YWxpZGF0ZTsKKworQGVuZAorCitA
aW50ZXJmYWNlIFdLRGF0ZVRpbWVQaWNrZXJXaW5kb3cgOiBOU1dpbmRvdworQGVuZAorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworUmVmPFdlYkRhdGVUaW1lUGlja2VyTWFjPiBXZWJEYXRlVGltZVBp
Y2tlck1hYzo6Y3JlYXRlKFdlYlBhZ2VQcm94eSYgcGFnZSwgTlNWaWV3ICp2aWV3KQoreworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkRhdGVUaW1lUGlja2VyTWFjKHBhZ2UsIHZpZXcpKTsK
K30KKworV2ViRGF0ZVRpbWVQaWNrZXJNYWM6On5XZWJEYXRlVGltZVBpY2tlck1hYygpCit7Cisg
ICAgaWYgKG1fcGlja2VyKSB7CisgICAgICAgIFttX3BpY2tlciBpbnZhbGlkYXRlXTsKKyAgICAg
ICAgbV9waWNrZXIgPSBuaWw7CisgICAgfQorfQorCitXZWJEYXRlVGltZVBpY2tlck1hYzo6V2Vi
RGF0ZVRpbWVQaWNrZXJNYWMoV2ViUGFnZVByb3h5JiBwYWdlLCBOU1ZpZXcgKnZpZXcpCisgICAg
OiBXZWJEYXRlVGltZVBpY2tlcihwYWdlKQorICAgICwgbV92aWV3KHZpZXcpCit7Cit9CisKK3Zv
aWQgV2ViRGF0ZVRpbWVQaWNrZXJNYWM6OmVuZFBpY2tlcigpCit7CisgICAgW21fcGlja2VyIGlu
dmFsaWRhdGVdOworICAgIG1fcGlja2VyID0gbmlsOworICAgIFdlYkRhdGVUaW1lUGlja2VyOjpl
bmRQaWNrZXIoKTsKK30KKwordm9pZCBXZWJEYXRlVGltZVBpY2tlck1hYzo6c2hvd0RhdGVUaW1l
UGlja2VyKFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMmJiBwYXJhbXMpCit7Cisg
ICAgaWYgKG1fcGlja2VyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BpY2tlciA9IGFkb3B0
TlMoW1tXS0RhdGVUaW1lUGlja2VyIGFsbG9jXSBpbml0V2l0aFBhcmFtczpXVEZNb3ZlKHBhcmFt
cykgaW5WaWV3Om1fdmlld10pOworICAgIFttX3BpY2tlciBzaG93UGlja2VyOip0aGlzXTsKK30K
Kwordm9pZCBXZWJEYXRlVGltZVBpY2tlck1hYzo6ZGlkQ2hvb3NlRGF0ZShjb25zdCBTdHJpbmcm
IGRhdGUpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGFn
ZS0+ZGlkQ2hvb3NlRGF0ZShkYXRlKTsKKyAgICBlbmRQaWNrZXIoKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKy8vIFRPRE86IFNoYXJlIHRoaXMgaW1wbGVtZW50YXRpb24gd2l0aCBX
S0RhdGFMaXN0U3VnZ2VzdGlvbldpbmRvdy4KK0BpbXBsZW1lbnRhdGlvbiBXS0RhdGVUaW1lUGlj
a2VyV2luZG93IHsKKyAgICBSZXRhaW5QdHI8TlNWaXN1YWxFZmZlY3RWaWV3PiBfYmFja2Ryb3BW
aWV3OworfQorCistIChpZClpbml0V2l0aENvbnRlbnRSZWN0OihOU1JlY3QpY29udGVudFJlY3Qg
c3R5bGVNYXNrOihOU1VJbnRlZ2VyKXN0eWxlTWFzayBiYWNraW5nOihOU0JhY2tpbmdTdG9yZVR5
cGUpYmFja2luZ1N0b3JlVHlwZSBkZWZlcjooQk9PTClkZWZlcgoreworICAgIHNlbGYgPSBbc3Vw
ZXIgaW5pdFdpdGhDb250ZW50UmVjdDpjb250ZW50UmVjdCBzdHlsZU1hc2s6c3R5bGVNYXNrIGJh
Y2tpbmc6YmFja2luZ1N0b3JlVHlwZSBkZWZlcjpkZWZlcl07CisgICAgaWYgKCFzZWxmKQorICAg
ICAgICByZXR1cm4gbmlsOworCisgICAgc2VsZi5oYXNTaGFkb3cgPSBZRVM7CisgICAgc2VsZi5y
ZWxlYXNlZFdoZW5DbG9zZWQgPSBOTzsKKyAgICBzZWxmLnRpdGxlVmlzaWJpbGl0eSA9IE5TV2lu
ZG93VGl0bGVIaWRkZW47CisgICAgc2VsZi50aXRsZWJhckFwcGVhcnNUcmFuc3BhcmVudCA9IFlF
UzsKKyAgICBzZWxmLm1vdmFibGUgPSBOTzsKKyAgICBzZWxmLmJhY2tncm91bmRDb2xvciA9IFtO
U0NvbG9yIGNsZWFyQ29sb3JdOworICAgIHNlbGYub3BhcXVlID0gTk87CisKKyAgICBfYmFja2Ry
b3BWaWV3ID0gW1tOU1Zpc3VhbEVmZmVjdFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Y29udGVu
dFJlY3RdOworICAgIFtfYmFja2Ryb3BWaWV3IHNldEF1dG9yZXNpemluZ01hc2s6TlNWaWV3V2lk
dGhTaXphYmxlIHwgTlNWaWV3SGVpZ2h0U2l6YWJsZV07CisgICAgW19iYWNrZHJvcFZpZXcgc2V0
TWF0ZXJpYWw6TlNWaXN1YWxFZmZlY3RNYXRlcmlhbE1lbnVdOworICAgIFtfYmFja2Ryb3BWaWV3
IHNldFN0YXRlOk5TVmlzdWFsRWZmZWN0U3RhdGVBY3RpdmVdOworICAgIFtfYmFja2Ryb3BWaWV3
IHNldEJsZW5kaW5nTW9kZTpOU1Zpc3VhbEVmZmVjdEJsZW5kaW5nTW9kZUJlaGluZFdpbmRvd107
CisKKyAgICBbc2VsZiBzZXRDb250ZW50VmlldzpfYmFja2Ryb3BWaWV3LmdldCgpXTsKKworICAg
IHJldHVybiBzZWxmOworfQorCistIChCT09MKWNhbkJlY29tZUtleVdpbmRvdworeworICAgIHJl
dHVybiBOTzsKK30KKworLSAoQk9PTCloYXNLZXlBcHBlYXJhbmNlCit7CisgICAgcmV0dXJuIFlF
UzsKK30KKworLSAoTlNXaW5kb3dTaGFkb3dPcHRpb25zKXNoYWRvd09wdGlvbnMKK3sKKyAgICBy
ZXR1cm4gTlNXaW5kb3dTaGFkb3dTZWNvbmRhcnlXaW5kb3c7Cit9CisKK0BlbmQKKworQGltcGxl
bWVudGF0aW9uIFdLRGF0ZVRpbWVQaWNrZXIgeworICAgIFdlYWtQdHI8V2ViS2l0OjpXZWJEYXRl
VGltZVBpY2tlck1hYz4gX3BpY2tlcjsKKyAgICBXZWJDb3JlOjpEYXRlVGltZUNob29zZXJQYXJh
bWV0ZXJzIF9wYXJhbXM7CisgICAgTlNWaWV3ICpfcHJlc2VudGluZ1ZpZXc7CisKKyAgICBSZXRh
aW5QdHI8V0tEYXRlVGltZVBpY2tlcldpbmRvdz4gX2VuY2xvc2luZ1dpbmRvdzsKKyAgICBSZXRh
aW5QdHI8TlNEYXRlUGlja2VyPiBfZGF0ZVBpY2tlcjsKKyAgICBSZXRhaW5QdHI8TlNEYXRlRm9y
bWF0dGVyPiBfZGF0ZUZvcm1hdHRlcjsKK30KKworLSAoaWQpaW5pdFdpdGhQYXJhbXM6KFdlYkNv
cmU6OkRhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMmJilwYXJhbXMgaW5WaWV3OihOU1ZpZXcgKil2
aWV3Cit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBz
ZWxmOworCisgICAgX3ByZXNlbnRpbmdWaWV3ID0gdmlldzsKKyAgICBfcGFyYW1zID0gV1RGTW92
ZShwYXJhbXMpOworCisgICAgTlNSZWN0IHdpbmRvd1JlY3QgPSBbW19wcmVzZW50aW5nVmlldyB3
aW5kb3ddIGNvbnZlcnRSZWN0VG9TY3JlZW46W19wcmVzZW50aW5nVmlldyBjb252ZXJ0UmVjdDpw
YXJhbXMuYW5jaG9yUmVjdEluUm9vdFZpZXcgdG9WaWV3Om5pbF1dOworICAgIHdpbmRvd1JlY3Qu
b3JpZ2luLnkgPSBOU01pblkod2luZG93UmVjdCkgLSBrQ2FsZW5kYXJIZWlnaHQ7CisgICAgd2lu
ZG93UmVjdC5zaXplLndpZHRoID0ga0NhbGVuZGFyV2lkdGg7CisgICAgd2luZG93UmVjdC5zaXpl
LmhlaWdodCA9IGtDYWxlbmRhckhlaWdodDsKKworICAgIF9lbmNsb3NpbmdXaW5kb3cgPSBhZG9w
dE5TKFtbV0tEYXRlVGltZVBpY2tlcldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpO
U1plcm9SZWN0IHN0eWxlTWFzazooTlNXaW5kb3dTdHlsZU1hc2tUaXRsZWQgfCBOU1dpbmRvd1N0
eWxlTWFza0Z1bGxTaXplQ29udGVudFZpZXcpIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJl
ZCBkZWZlcjpOT10pOworICAgIFtfZW5jbG9zaW5nV2luZG93IHNldEZyYW1lOndpbmRvd1JlY3Qg
ZGlzcGxheTpZRVNdOworCisgICAgX2RhdGVQaWNrZXIgPSBhZG9wdE5TKFtbTlNEYXRlUGlja2Vy
IGFsbG9jXSBpbml0V2l0aEZyYW1lOltfZW5jbG9zaW5nV2luZG93IGNvbnRlbnRWaWV3XS5ib3Vu
ZHNdKTsKKyAgICBbX2RhdGVQaWNrZXIgc2V0RGF0ZVBpY2tlclN0eWxlOk5TRGF0ZVBpY2tlclN0
eWxlQ2xvY2tBbmRDYWxlbmRhcl07CisgICAgW19kYXRlUGlja2VyIHNldERhdGVQaWNrZXJFbGVt
ZW50czpOU0RhdGVQaWNrZXJFbGVtZW50RmxhZ1llYXJNb250aERheV07CisgICAgW19kYXRlUGlj
a2VyIHNldFRhcmdldDpzZWxmXTsKKyAgICBbX2RhdGVQaWNrZXIgc2V0QWN0aW9uOkBzZWxlY3Rv
cihkaWRDaG9vc2VEYXRlOildOworCisgICAgUmV0YWluUHRyPE5TTG9jYWxlPiBlbmdsaXNoTG9j
YWxlID0gYWRvcHROUyhbW05TTG9jYWxlIGFsbG9jXSBpbml0V2l0aExvY2FsZUlkZW50aWZpZXI6
a0RlZmF1bHRMb2NhbGVJZGVudGlmaWVyXSk7CisgICAgX2RhdGVGb3JtYXR0ZXIgPSBhZG9wdE5T
KFtbTlNEYXRlRm9ybWF0dGVyIGFsbG9jXSBpbml0XSk7CisgICAgW19kYXRlRm9ybWF0dGVyIHNl
dERhdGVGb3JtYXQ6W3NlbGYgZGF0ZUZvcm1hdFN0cmluZ0ZvclR5cGU6X3BhcmFtcy50eXBlXV07
CisgICAgW19kYXRlRm9ybWF0dGVyIHNldExvY2FsZTplbmdsaXNoTG9jYWxlLmdldCgpXTsKKwor
ICAgIE5TU3RyaW5nICpjdXJyZW50RGF0ZVZhbHVlU3RyaW5nID0gX3BhcmFtcy5jdXJyZW50VmFs
dWU7CisgICAgaWYgKCFbY3VycmVudERhdGVWYWx1ZVN0cmluZyBsZW5ndGhdKQorICAgICAgICBb
X2RhdGVQaWNrZXIgc2V0RGF0ZVZhbHVlOltOU0RhdGUgZGF0ZV1dOworICAgIGVsc2UKKyAgICAg
ICAgW19kYXRlUGlja2VyIHNldERhdGVWYWx1ZTpbX2RhdGVGb3JtYXR0ZXIgZGF0ZUZyb21TdHJp
bmc6Y3VycmVudERhdGVWYWx1ZVN0cmluZ11dOworCisgICAgW19kYXRlUGlja2VyIHNldE1pbkRh
dGU6W05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlMTk3MDpfcGFyYW1zLm1pbmltdW0g
LyAxMDAwLjBdXTsKKyAgICBbX2RhdGVQaWNrZXIgc2V0TWF4RGF0ZTpbTlNEYXRlIGRhdGVXaXRo
VGltZUludGVydmFsU2luY2UxOTcwOl9wYXJhbXMubWF4aW11bSAvIDEwMDAuMF1dOworCisgICAg
cmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpc2hvd1BpY2tlcjooV2ViS2l0OjpXZWJEYXRlVGlt
ZVBpY2tlck1hYyYpcGlja2VyCit7CisgICAgX3BpY2tlciA9IG1ha2VXZWFrUHRyKHBpY2tlcik7
CisKKyAgICBbW19lbmNsb3NpbmdXaW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZpZXc6X2RhdGVQ
aWNrZXIuZ2V0KCldOworICAgIFtbX3ByZXNlbnRpbmdWaWV3IHdpbmRvd10gYWRkQ2hpbGRXaW5k
b3c6X2VuY2xvc2luZ1dpbmRvdy5nZXQoKSBvcmRlcmVkOk5TV2luZG93QWJvdmVdOworfQorCist
ICh2b2lkKWludmFsaWRhdGUKK3sKKyAgICBbX2RhdGVQaWNrZXIgcmVtb3ZlRnJvbVN1cGVydmll
d1dpdGhvdXROZWVkaW5nRGlzcGxheV07CisgICAgW19kYXRlUGlja2VyIHNldFRhcmdldDpuaWxd
OworICAgIFtfZGF0ZVBpY2tlciBzZXRBY3Rpb246bmlsXTsKKyAgICBfZGF0ZVBpY2tlciA9IG5p
bDsKKworICAgIF9kYXRlRm9ybWF0dGVyID0gbmlsOworCisgICAgW1tfcHJlc2VudGluZ1ZpZXcg
d2luZG93XSByZW1vdmVDaGlsZFdpbmRvdzpfZW5jbG9zaW5nV2luZG93LmdldCgpXTsKKyAgICBb
X2VuY2xvc2luZ1dpbmRvdyBjbG9zZV07CisgICAgX2VuY2xvc2luZ1dpbmRvdyA9IG5pbDsKK30K
KworLSAodm9pZClkaWRDaG9vc2VEYXRlOihpZClzZW5kZXIKK3sKKyAgICBpZiAoc2VuZGVyICE9
IF9kYXRlUGlja2VyKQorICAgICAgICByZXR1cm47CisKKyAgICBOU1N0cmluZyAqZGF0ZVN0cmlu
ZyA9IFtfZGF0ZUZvcm1hdHRlciBzdHJpbmdGcm9tRGF0ZTpbX2RhdGVQaWNrZXIgZGF0ZVZhbHVl
XV07CisgICAgX3BpY2tlci0+ZGlkQ2hvb3NlRGF0ZShkYXRlU3RyaW5nKTsKK30KKworLSAoTlNT
dHJpbmcgKilkYXRlRm9ybWF0U3RyaW5nRm9yVHlwZTooTlNTdHJpbmcgKil0eXBlCit7CisgICAg
aWYgKFt0eXBlIGlzRXF1YWxUb1N0cmluZzpAImRhdGV0aW1lLWxvY2FsIl0pCisgICAgICAgIHJl
dHVybiBrRGF0ZVRpbWVGb3JtYXRTdHJpbmc7CisKKyAgICByZXR1cm4ga0RhdGVGb3JtYXRTdHJp
bmc7Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZ
UEVTKSAmJiBVU0UoQVBQS0lUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggZWJlZGUzMDIwZmQxMmNhYTI5YjQzOTYyNzNlMmM0MzExYjNl
ZWE2MS4uOGE1Zjg4NDZhOTg1ZDVmY2E5MGE5NjY3NzJkZTgzNzQ4ZmQ4OGVmYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xODMyLDYg
KzE4MzIsOSBAQAogCQlFNEU4NjQ5MzFCMTY3NTA3MDBDODJGNDAgLyogVmVyc2lvbkNoZWNrcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRFODY0OEUx
QjE2NzNGQjAwQzgyRjQwIC8qIFZlcnNpb25DaGVja3MuaCAqLzsgfTsKIAkJRTUyQ0Y1NTIyMEEz
NUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTUyQ0Y1NTAyMEEzNUMzQTAwREFE
QTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oICovOyB9OwogCQlFNTQ4RUJEMTIx
MDE1RjBFMDBCRTNDMzIgLyogV0tGb3JtQ29sb3JQaWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1NDhFQkNGMjEwMTVGMEUwMEJFM0MzMiAvKiBX
S0Zvcm1Db2xvclBpY2tlci5oICovOyB9OworCQlFNTVDRDFGNTI0Q0Y3NDdEMDA0MkRCOUMgLyog
V2ViRGF0ZVRpbWVDaG9vc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNTVDRDFGMzI0Q0Y3NDdEMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVDaG9vc2Vy
LmggKi87IH07CisJCUU1NUNEMjAwMjREMDhEOEYwMDQyREI5QyAvKiBXZWJEYXRlVGltZVBpY2tl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU1Q0Qx
RkMyNEQwODgwQjAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lUGlja2VyLmggKi87IH07CisJCUU1NUNE
MjAzMjREMDlGMUYwMDQyREI5QyAvKiBXZWJEYXRlVGltZVBpY2tlck1hYy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU1Q0QyMDEyNEQwOUYxRjAwNDJE
QjlDIC8qIFdlYkRhdGVUaW1lUGlja2VyTWFjLmggKi87IH07CiAJCUU1NjhCOTFGMjBBM0FCMkYw
MEUzQzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1NjhCOTFFMjBBM0FCMkYwMEUzQzg1
NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uaCAqLzsgfTsKIAkJRTU2OEI5MjIy
MEEzQUM2QTAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU2OEI5MjAyMEEz
QUM2QTAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5oICovOyB9
OwogCQlFNUJFRjY4MjIxMzBDNDgwMDBGMzExMTEgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ry
b3Bkb3duSU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNUJFRjY4MDIxMzBDNDdGMDBGMzExMTEgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bk
b3duSU9TLmggKi87IH07CkBAIC01MzYwLDYgKzUzNjMsMTIgQEAKIAkJRTU0OEVCQ0YyMTAxNUYw
RTAwQkUzQzMyIC8qIFdLRm9ybUNvbG9yUGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLRm9ybUNv
bG9yUGlja2VyLmg7IHBhdGggPSBpb3MvZm9ybXMvV0tGb3JtQ29sb3JQaWNrZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTU0OEVCRDAyMTAxNUYwRTAwQkUzQzMyIC8qIFdLRm9y
bUNvbG9yUGlja2VyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tGb3JtQ29sb3JQaWNrZXIu
bW07IHBhdGggPSBpb3MvZm9ybXMvV0tGb3JtQ29sb3JQaWNrZXIubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUU1NEExNENFMjBGQ0ZCN0IwMDdFMTNEOCAvKiBXZWJEYXRhTGlzdFN1
Z2dlc3Rpb25zRHJvcGRvd24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRGF0YUxpc3RTdWdn
ZXN0aW9uc0Ryb3Bkb3duLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTU1Q0Qx
RjMyNENGNzQ3RDAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lQ2hvb3Nlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJEYXRlVGltZUNob29zZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTU1
Q0QxRjQyNENGNzQ3RDAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lQ2hvb3Nlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJEYXRlVGltZUNob29zZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFNTVDRDFGQzI0RDA4ODBCMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNrZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViRGF0ZVRpbWVQaWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTU1Q0QxRkQyNEQwODgwQjAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lUGlja2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkRhdGVUaW1lUGlja2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTU1Q0QyMDEyNEQwOUYxRjAwNDJEQjlDIC8qIFdlYkRhdGVUaW1l
UGlja2VyTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhdGVUaW1lUGlja2VyTWFjLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1NUNEMjAyMjREMDlGMUYwMDQyREI5QyAvKiBXZWJE
YXRlVGltZVBpY2tlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkRhdGVUaW1lUGlj
a2VyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTY4QjkxRTIwQTNBQjJG
MDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFNTY4QjkyMDIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0
aW9uc0Ryb3Bkb3duTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNE
cm9wZG93bk1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTY4QjkyMTIwQTNB
QzZBMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04ODM2LDYgKzg4NDUsOCBAQAogCQkJCUJDMDMy
RDYyMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5oICovLAogCQkJCUU1
MkNGNTUxMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuY3Bw
ICovLAogCQkJCUU1MkNGNTUwMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rp
b25QaWNrZXIuaCAqLywKKwkJCQlFNTVDRDFGNDI0Q0Y3NDdEMDA0MkRCOUMgLyogV2ViRGF0ZVRp
bWVDaG9vc2VyLmNwcCAqLywKKwkJCQlFNTVDRDFGMzI0Q0Y3NDdEMDA0MkRCOUMgLyogV2ViRGF0
ZVRpbWVDaG9vc2VyLmggKi8sCiAJCQkJQ0QxOUEyNjkxQTEzRTgyMDAwOEQ2NTBFIC8qIFdlYkRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAqLywKIAkJCQlDRDE5QTI2QTFBMTNFODIxMDA4RDY1
MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLywKIAkJCQlCQzExMUE1NjExMkY0
RkJCMDAzMzdCQUIgLyogV2ViRHJhZ0NsaWVudC5jcHAgKi8sCkBAIC05MDUyLDYgKzkwNjMsOCBA
QAogCQkJCTMzQUExMDY1MTMxRjA2MDAwMEQ0QTU3NSAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHlD
bGllbnQuaCAqLywKIAkJCQlFNTRBMTRDRTIwRkNGQjdCMDA3RTEzRDggLyogV2ViRGF0YUxpc3RT
dWdnZXN0aW9uc0Ryb3Bkb3duLmNwcCAqLywKIAkJCQlFNTY4QjkxRTIwQTNBQjJGMDBFM0M4NTYg
LyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmggKi8sCisJCQkJRTU1Q0QxRkQyNEQw
ODgwQjAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lUGlja2VyLmNwcCAqLywKKwkJCQlFNTVDRDFGQzI0
RDA4ODBCMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNrZXIuaCAqLywKIAkJCQlCQ0EwRUY5RTEy
MzMyNjQyMDA3RDNDRkIgLyogV2ViRWRpdENvbW1hbmRQcm94eS5jcHAgKi8sCiAJCQkJQkNBMEVG
OUQxMjMzMjY0MjAwN0QzQ0ZCIC8qIFdlYkVkaXRDb21tYW5kUHJveHkuaCAqLywKIAkJCQlCQ0U0
Njk0RjEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9ybUNsaWVudC5jcHAgKi8sCkBAIC05ODQ4LDYg
Kzk4NjEsOCBAQAogCQkJCUY2RDYzMkJBMTMzRDE4MUIwMDc0M0Q3NyAvKiBXZWJDb29raWVNYW5h
Z2VyUHJveHlNYWMubW0gKi8sCiAJCQkJRTU2OEI5MjAyMEEzQUM2QTAwRTNDODU2IC8qIFdlYkRh
dGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5oICovLAogCQkJCUU1NjhCOTIxMjBBM0FDNkEw
MEUzQzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMubW0gKi8sCisJCQkJ
RTU1Q0QyMDEyNEQwOUYxRjAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lUGlja2VyTWFjLmggKi8sCisJ
CQkJRTU1Q0QyMDIyNEQwOUYxRjAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lUGlja2VyTWFjLm1tICov
LAogCQkJCUJDODU3RTg1MTJCNzFFQkIwMEVERUIyRSAvKiBXZWJQYWdlUHJveHlNYWMubW0gKi8s
CiAJCQkJQkM1NzUwOTUxMjY4RjNDNjAwNkYwRjEyIC8qIFdlYlBvcHVwTWVudVByb3h5TWFjLmgg
Ki8sCiAJCQkJQkM1NzUwOTYxMjY4RjNDNjAwNkYwRjEyIC8qIFdlYlBvcHVwTWVudVByb3h5TWFj
Lm1tICovLApAQCAtMTEyODIsNiArMTEyOTcsOSBAQAogCQkJCUU1NjhCOTFGMjBBM0FCMkYwMEUz
Qzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uaCBpbiBIZWFkZXJzICovLAog
CQkJCUU1QkVGNjgyMjEzMEM0ODAwMEYzMTExMSAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJv
cGRvd25JT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCUU1NjhCOTIyMjBBM0FDNkEwMEUzQzg1NiAv
KiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUU1NUNEMUY1MjRDRjc0N0QwMDQyREI5QyAvKiBXZWJEYXRlVGltZUNob29zZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUU1NUNEMjAwMjREMDhEOEYwMDQyREI5QyAvKiBXZWJEYXRlVGltZVBpY2tl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTU1Q0QyMDMyNEQwOUYxRjAwNDJEQjlDIC8qIFdlYkRh
dGVUaW1lUGlja2VyTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkIwNTI0NzIyNjY4RDg1MDAy
NjVCOTcgLyogV2ViRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFMzk2MjhERDIzOTYwQ0M2MDA2NThFQ0QgLyogV2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTM4NjZCMEEy
Mzk5QTJEOTAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJNZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGVmYzAwM2Jk
MDE1OTEwMDA4MmRlM2NlZjFmNjA5ZmE1MjI1MWNhNWEuLmNlNTRmZmY1NDI5ZjljMjYzMmE4OWU1
NWE5MjcxYmRmOGNmNGQ1ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC00NCw2ICs0NCw3
IEBACiAjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmgiCisj
aW5jbHVkZSAiV2ViRGF0ZVRpbWVDaG9vc2VyLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNp
bmNsdWRlICJXZWJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5N
YW5hZ2VyLmgiCkBAIC03NzUsNiArNzc2LDE1IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpjYW5T
aG93RGF0YUxpc3RTdWdnZXN0aW9uTGFiZWxzKCkgY29uc3QKIAogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKworc3RkOjp1bmlxdWVfcHRyPERhdGVUaW1l
Q2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVEYXRlVGltZUNob29zZXIoRGF0ZVRpbWVD
aG9vc2VyQ2xpZW50JiBjbGllbnQpCit7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8V2ViRGF0ZVRp
bWVDaG9vc2VyPihtX3BhZ2UsIGNsaWVudCk7Cit9CisKKyNlbmRpZgorCiB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6cnVuT3BlblBhbmVsKEZyYW1lJiBmcmFtZSwgRmlsZUNob29zZXImIGZpbGVDaG9v
c2VyKQogewogICAgIGlmIChtX3BhZ2UuYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAppbmRleCBlNzVmNDg4NTJiZmEwNmIxYWQ0MGUzYmJhMWZhM2NjM2Uz
ZjQxYThlLi40OTJlMjNiOTM1YzMwMGE1OWYwMmRjZDE5NTQ5N2QxZGZjNjBhOGUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCkBAIC0xNTIsNiArMTUyLDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBjYW5T
aG93RGF0YUxpc3RTdWdnZXN0aW9uTGFiZWxzKCkgY29uc3QgZmluYWw7CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpEYXRlVGltZUNob29zZXI+IGNyZWF0ZURhdGVUaW1lQ2hvb3NlcihXZWJDb3JlOjpE
YXRlVGltZUNob29zZXJDbGllbnQmKSBmaW5hbDsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKElPU19U
T1VDSF9FVkVOVFMpCiAgICAgdm9pZCBkaWRQcmV2ZW50RGVmYXVsdEZvckV2ZW50KCkgZmluYWw7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJEYXRlVGltZUNob29zZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkRhdGVUaW1lQ2hvb3Nlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzk5ZTljYjY5
MzQ2NmU5NDU4OTczZjllOTlmNmY2NDM0ZDI2Yzc4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRlVGltZUNob29zZXIuY3Bw
CkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViRGF0ZVRpbWVDaG9vc2VyLmgiCisKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9J
TlBVVF9UWVBFUykKKworI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJv
eHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0RhdGVUaW1lQ2hvb3NlckNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRGF0ZVRpbWVDaG9v
c2VyUGFyYW1ldGVycy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViRGF0ZVRpbWVDaG9v
c2VyOjpXZWJEYXRlVGltZUNob29zZXIoV2ViUGFnZSYgcGFnZSwgV2ViQ29yZTo6RGF0ZVRpbWVD
aG9vc2VyQ2xpZW50JiBjbGllbnQpCisgICAgOiBtX2NsaWVudChjbGllbnQpCisgICAgLCBtX3Bh
Z2UocGFnZSkKK3sKK30KKwordm9pZCBXZWJEYXRlVGltZUNob29zZXI6OmRpZENob29zZURhdGUo
Y29uc3QgU3RyaW5nJiBkYXRlKQoreworICAgIG1fY2xpZW50LmRpZENob29zZVZhbHVlKGRhdGUp
OworfQorCit2b2lkIFdlYkRhdGVUaW1lQ2hvb3Nlcjo6ZGlkRW5kQ2hvb3NlcigpCit7CisgICAg
bV9jbGllbnQuZGlkRW5kQ2hvb3NlcigpOworfQorCit2b2lkIFdlYkRhdGVUaW1lQ2hvb3Nlcjo6
ZW5kQ2hvb3NlcigpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFbmREYXRlVGltZVBp
Y2tlcigpLCBtX3BhZ2UuaWRlbnRpZmllcigpKTsKK30KKwordm9pZCBXZWJEYXRlVGltZUNob29z
ZXI6OnNob3dDaG9vc2VyKGNvbnN0IFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMm
IHBhcmFtcykKK3sKKyAgICBtX3BhZ2Uuc2V0QWN0aXZlRGF0ZVRpbWVDaG9vc2VyKCp0aGlzKTsK
KyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dEYXRlVGltZVBpY2tlcihwYXJhbXMpLCBt
X3BhZ2UuaWRlbnRpZmllcigpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkRhdGVUaW1lQ2hvb3Nlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkRhdGVUaW1lQ2hvb3Nlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiMjA0NDIyNjRkYjNhMGI5OWRk
YjM3NjI5Zjk3YmI3ODAwNmZhZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0ZVRpbWVDaG9vc2VyLmgKQEAgLTAsMCArMSw1
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJ
TUVfSU5QVVRfVFlQRVMpCisKKyNpbmNsdWRlIDxXZWJDb3JlL0RhdGVUaW1lQ2hvb3Nlci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBEYXRlVGltZUNob29zZXJDbGllbnQ7CitzdHJ1
Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFdlYkRhdGVUaW1lQ2hvb3NlciBmaW5hbCA6IHB1Ymxp
YyBXZWJDb3JlOjpEYXRlVGltZUNob29zZXIgeworcHVibGljOgorICAgIFdlYkRhdGVUaW1lQ2hv
b3NlcihXZWJQYWdlJiwgV2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyQ2xpZW50Jik7CisKKyAgICB2
b2lkIGRpZENob29zZURhdGUoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBkaWRFbmRDaG9vc2Vy
KCk7CisKK3ByaXZhdGU6CisgICAgdm9pZCBlbmRDaG9vc2VyKCkgZmluYWw7CisgICAgdm9pZCBz
aG93Q2hvb3Nlcihjb25zdCBXZWJDb3JlOjpEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzJikgZmlu
YWw7CisKKyAgICBXZWJDb3JlOjpEYXRlVGltZUNob29zZXJDbGllbnQmIG1fY2xpZW50OworICAg
IFdlYlBhZ2UmIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZDI5
YWEwMWQ1YTYwNjI4NDYwNTljM2RkMTk1ZmQzYWQ5ZDVlNTA3OS4uNGUyMTU5ODc4YTcwYjNmM2I1
YWIyNTNhODg0MTI0ZmEyNzgwOGM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTgwLDYgKzgwLDcgQEAKICNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCIK
ICNpbmNsdWRlICJXZWJEYXRhYmFzZVByb3ZpZGVyLmgiCisjaW5jbHVkZSAiV2ViRGF0ZVRpbWVD
aG9vc2VyLmgiCiAjaW5jbHVkZSAiV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNs
dWRlICJXZWJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIldlYkRyYWdDbGllbnQuaCIKQEAg
LTQxOTUsNiArNDE5NiwyNyBAQCB2b2lkIFdlYlBhZ2U6OmRpZENsb3NlU3VnZ2VzdGlvbnMoKQog
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorCit2b2lk
IFdlYlBhZ2U6OnNldEFjdGl2ZURhdGVUaW1lQ2hvb3NlcihXZWJEYXRlVGltZUNob29zZXImIGRh
dGVUaW1lQ2hvb3NlcikKK3sKKyAgICBtX2FjdGl2ZURhdGVUaW1lQ2hvb3NlciA9IG1ha2VXZWFr
UHRyKCZkYXRlVGltZUNob29zZXIpOworfQorCit2b2lkIFdlYlBhZ2U6OmRpZENob29zZURhdGUo
Y29uc3QgU3RyaW5nJiBkYXRlKQoreworICAgIGlmIChtX2FjdGl2ZURhdGVUaW1lQ2hvb3NlcikK
KyAgICAgICAgbV9hY3RpdmVEYXRlVGltZUNob29zZXItPmRpZENob29zZURhdGUoZGF0ZSk7Cit9
CisKK3ZvaWQgV2ViUGFnZTo6ZGlkRW5kRGF0ZVRpbWVQaWNrZXIoKQoreworICAgIGlmIChhdXRv
IGNob29zZXIgPSBzdGQ6OmV4Y2hhbmdlKG1fYWN0aXZlRGF0ZVRpbWVDaG9vc2VyLCBudWxscHRy
KSkKKyAgICAgICAgY2hvb3Nlci0+ZGlkRW5kQ2hvb3NlcigpOworfQorCisjZW5kaWYKKwogdm9p
ZCBXZWJQYWdlOjpzZXRBY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcihSZWY8V2ViT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXI+JiYgb3BlblBhbmVsUmVzdWx0TGlzdGVuZXIpCiB7CiAgICAgbV9h
Y3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IFdURk1vdmUob3BlblBhbmVsUmVzdWx0TGlz
dGVuZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4
IGExNTQ3NmMyNDY5ZTQ4N2NkYjE5OWEwODhhOGQ1YmEwNjE0ODU4ZWIuLmM4YzI4MWJjYTNmNmI3
YTBiNTBmNGZiZjQ2ZTI2M2JkMjg5OWI2YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKQEAgLTI0OSw2ICsyNDksNyBAQCBjbGFzcyBXZWJDb2xvckNob29z
ZXI7CiBjbGFzcyBXZWJDb250ZXh0TWVudTsKIGNsYXNzIFdlYkNvbnRleHRNZW51SXRlbURhdGE7
CiBjbGFzcyBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI7CitjbGFzcyBXZWJEYXRlVGltZUNo
b29zZXI7CiBjbGFzcyBXZWJEb2N1bWVudExvYWRlcjsKIGNsYXNzIFdlYkV2ZW50OwogY2xhc3Mg
UGxheWJhY2tTZXNzaW9uTWFuYWdlcjsKQEAgLTQzOCw2ICs0MzksMTIgQEAgcHVibGljOgogICAg
IHZvaWQgZGlkQ2xvc2VTdWdnZXN0aW9ucygpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFURV9B
TkRfVElNRV9JTlBVVF9UWVBFUykKKyAgICB2b2lkIHNldEFjdGl2ZURhdGVUaW1lQ2hvb3NlcihX
ZWJEYXRlVGltZUNob29zZXImKTsKKyAgICB2b2lkIGRpZENob29zZURhdGUoY29uc3QgU3RyaW5n
Jik7CisgICAgdm9pZCBkaWRFbmREYXRlVGltZVBpY2tlcigpOworI2VuZGlmCisKICAgICBXZWJP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lciogYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIoKSBj
b25zdCB7IHJldHVybiBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmdldCgpOyB9CiAg
ICAgdm9pZCBzZXRBY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcihSZWY8V2ViT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXI+JiYpOwogCkBAIC0xOTA3LDYgKzE5MTQsMTAgQEAgcHJpdmF0ZToKICAg
ICBXZWFrUHRyPFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcj4gbV9hY3RpdmVEYXRhTGlzdFN1
Z2dlc3Rpb25QaWNrZXI7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVU
X1RZUEVTKQorICAgIFdlYWtQdHI8V2ViRGF0ZVRpbWVDaG9vc2VyPiBtX2FjdGl2ZURhdGVUaW1l
Q2hvb3NlcjsKKyNlbmRpZgorCiAgICAgUmVmUHRyPFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVy
PiBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyOwogICAgIFJlZlB0cjxOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+IG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA3MmYwMzg2MTY0ODM4NmZiYzg0MTUwODVjMTUzY2Zl
ZTc1MjY3NmM2Li4yNzc1MGMzMDMyMGZkMDkwZDIyMWRmZTgyOTk0NDBlMmU1NDIzNzFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4KQEAgLTE1OSw2ICsxNTksMTEgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFu
ZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBE
aWRDbG9zZVN1Z2dlc3Rpb25zKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1F
X0lOUFVUX1RZUEVTKQorICAgIERpZENob29zZURhdGUoU3RyaW5nIGRhdGUpOworICAgIERpZEVu
ZERhdGVUaW1lUGlja2VyKCk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQog
ICAgIENvbnRleHRNZW51SGlkZGVuKCkKICAgICBDb250ZXh0TWVudUZvcktleUV2ZW50KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmgKaW5kZXggNDJjNWExNTAzZjVlM2FmOTkwZTgwYzBiY2RhM2E3ZTlhYTExZDA0
My4uOWMwOTVhNzQwMjRkMDZjOWYwYzgwOThlYzRkMmNlOTg5OTRjZTI1NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKQEAgLTE0Nyw2ICsxNDcsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIGNhblNob3dEYXRh
TGlzdFN1Z2dlc3Rpb25MYWJlbHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyPiBjcmVhdGVEYXRlVGltZUNob29zZXIo
V2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyQ2xpZW50JikgZmluYWw7CisjZW5kaWYKKwogI2lmIEVO
QUJMRShQT0lOVEVSX0xPQ0spCiAgICAgYm9vbCByZXF1ZXN0UG9pbnRlckxvY2soKSBmaW5hbDsK
ICAgICB2b2lkIHJlcXVlc3RQb2ludGVyVW5sb2NrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0K
aW5kZXggMGIwOTQ1ZWI2ZDlhNzY5ZDFkOGI0MTY5YTM2NTMwYjk2NmY2YzA2MC4uZjZlMmIxOGU4
MGM1ODkzNjYwZmU3OWFlYWY1ZGFhMzdiNDNjN2Q4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAt
NzMyLDYgKzczMiwxNCBAQCBzdGQ6OnVuaXF1ZV9wdHI8RGF0YUxpc3RTdWdnZXN0aW9uUGlja2Vy
PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURhdGFMaXN0U3VnZ2VzdAogfQogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKK3N0ZDo6dW5pcXVlX3B0cjxEYXRl
VGltZUNob29zZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlRGF0ZVRpbWVDaG9vc2VyKERhdGVU
aW1lQ2hvb3NlckNsaWVudCYpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiBib29s
IFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdFBvaW50ZXJMb2NrKCkKIHsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiZGViMWQ1YTRhZDlhMGU2NmI1
NDM1MmM5NzljYTg2MGVlNmFkM2E5Li5kYTY0MzFjYjExOWMwNjk5MjllMmQ4YTg3Y2I2ODkyMzUz
NWU4ZWU2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMDctMjkgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlA
YXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gU2hvdyBwaWNrZXIgZm9yIGRhdGUgYW5kIGRh
dGV0aW1lLWxvY2FsIGlucHV0IHR5cGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTQ5NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGRlZCBpc1Nob3dpbmdEYXRlVGltZVBpY2tlciB0ZXN0aW5nIGhv
b2sgaW4gb3JkZXIgdG8gZW5hYmxlIHRlc3Rpbmcgb2YgdGhlIHZpc2liaWxpdHkgb2YKKyAgICAg
ICAgdGhlIHBpY2tlci4KKworICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250
ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGw6CisgICAgICAgICogVGVzdFJ1bm5l
clNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgIChX
VFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6aXNTaG93aW5nRGF0ZVRpbWVQaWNrZXIgY29uc3QpOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5oOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbToK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyTWFjOjppc1Nob3dpbmdEYXRlVGltZVBp
Y2tlciBjb25zdCk6CisKIDIwMjAtMDctMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gSVRQOiB1c2UgdGhlIGRhdGFiYXNl
IHN0b3JlIHVuY29uZGl0aW9uYWxseQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJl
ZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbCBiL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJv
bGxlci5pZGwKaW5kZXggMmEzOGM2YWY2OGFkZDNjN2Q5YjNjMTcyNGRmNzMyNmQ3MWM2NzQ0MC4u
ZDZhZDU1ZjQ3Nzk3OGY4N2JiZTFkMTk2OWM0MDlhM2Y0YmY5MTYyYyAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250
cm9sbGVyLmlkbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9C
aW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCkBAIC0yMjIsNiArMjIyLDggQEAgaW50ZXJm
YWNlIFVJU2NyaXB0Q29udHJvbGxlciB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSB0
aW1lUGlja2VyVmFsdWVIb3VyOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgdGltZVBp
Y2tlclZhbHVlTWludXRlOwogCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNTaG93
aW5nRGF0ZVRpbWVQaWNrZXI7CisKICAgICAvLyBTaGFyZSBzaGVldAogICAgIHZvaWQgc2V0U2hh
cmVTaGVldENvbXBsZXRlc0ltbWVkaWF0ZWx5V2l0aFJlc29sdXRpb24oYm9vbGVhbiByZXNvbHZl
ZCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0
L1VJU2NyaXB0Q29udHJvbGxlci5oIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENv
bnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKaW5kZXggZDU2MmJhYjBhYzI3OGVjZjE5NTZhNGRi
ZWQwNWRhODA5MjBiYjQ1Yy4uMDZhZmEwMDZlMDg5OWRiNTZmODY1MjgxYWYyNDUxOGQzNmZiMjgx
MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlT
Y3JpcHRDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENv
bnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKQEAgLTIxNiw2ICsyMTYsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHNldFRpbWVQaWNrZXJWYWx1ZShsb25nIGhvdXIsIGxvbmcgbWludXRl
KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KICAgICB2aXJ0dWFsIGRvdWJsZSB0aW1lUGlja2VyVmFs
dWVIb3VyKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gLTE7IH0KICAgICB2aXJ0
dWFsIGRvdWJsZSB0aW1lUGlja2VyVmFsdWVNaW51dGUoKSBjb25zdCB7IG5vdEltcGxlbWVudGVk
KCk7IHJldHVybiAtMTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1Nob3dpbmdEYXRlVGltZVBpY2tl
cigpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIGlzU2hvd2luZ0RhdGFMaXN0U3VnZ2VzdGlvbnMoKSBjb25zdCB7IG5vdEltcGxlbWVu
dGVkKCk7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgSlNPYmplY3RSZWYgY2FsZW5kYXJU
eXBlKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZp
cnR1YWwgdm9pZCBzZXREZWZhdWx0Q2FsZW5kYXJUeXBlKEpTU3RyaW5nUmVmIGNhbGVuZGFySWRl
bnRpZmllciwgSlNTdHJpbmdSZWYgbG9jYWxlSWRlbnRpZmllcikgeyBub3RJbXBsZW1lbnRlZCgp
OyB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRy
b2xsZXJNYWMuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxl
ck1hYy5oCmluZGV4IDYxMjE1OTJmMmQ3ZGYwZDgzMTE4ODY3NWRiNWFhYjIyNTJmNjc0YWEuLjU0
ZDkwZDljZjZjMzc3ZDkxOTJhNmJkYzc1MWUwNjg3NTg1NjYyNjYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5oCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5oCkBAIC00Miw2ICs0
Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHpvb21Ub1NjYWxlKGRvdWJsZSwgSlNWYWx1ZVJlZikg
b3ZlcnJpZGU7CiAgICAgZG91YmxlIHpvb21TY2FsZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZv
aWQgc2ltdWxhdGVBY2Nlc3NpYmlsaXR5U2V0dGluZ3NDaGFuZ2VOb3RpZmljYXRpb24oSlNWYWx1
ZVJlZikgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1Nob3dpbmdEYXRlVGltZVBpY2tlcigpIGNvbnN0
IG92ZXJyaWRlOwogICAgIGJvb2wgaXNTaG93aW5nRGF0YUxpc3RTdWdnZXN0aW9ucygpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZvaWQgYWN0aXZhdGVEYXRhTGlzdFN1Z2dlc3Rpb24odW5zaWduZWQg
aW5kZXgsIEpTVmFsdWVSZWYgY2FsbGJhY2spIG92ZXJyaWRlOwogICAgIHZvaWQgYmVnaW5CYWNr
U3dpcGUoSlNWYWx1ZVJlZikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KaW5kZXggZTk1NmVlZDkyYTBhNTg3ODM2
NmVjNTMwMDk3MjI0MTY5ODg1Njc5Yy4uMmUxMjMwYzU4YzNhZmJkMzg4ODFlZjczZWFjMzE3MzFk
ZWViZDViNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRD
b250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0
Q29udHJvbGxlck1hYy5tbQpAQCAtOTYsNiArOTYsMTUgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xs
ZXJNYWM6OnNpbXVsYXRlQWNjZXNzaWJpbGl0eVNldHRpbmdzQ2hhbmdlTm90aWZpY2F0aW9uKEpT
VmEKICAgICB9KS5nZXQoKV07CiB9CiAKK2Jvb2wgVUlTY3JpcHRDb250cm9sbGVyTWFjOjppc1No
b3dpbmdEYXRlVGltZVBpY2tlcigpIGNvbnN0Cit7CisgICAgZm9yIChOU1dpbmRvdyAqY2hpbGRX
aW5kb3cgaW4gd2ViVmlldygpLndpbmRvdy5jaGlsZFdpbmRvd3MpIHsKKyAgICAgICAgaWYgKFtj
aGlsZFdpbmRvdyBpc0tpbmRPZkNsYXNzOk5TQ2xhc3NGcm9tU3RyaW5nKEAiV0tEYXRlVGltZVBp
Y2tlcldpbmRvdyIpXSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKIGJvb2wgVUlTY3JpcHRDb250cm9sbGVyTWFjOjppc1Nob3dpbmdEYXRh
TGlzdFN1Z2dlc3Rpb25zKCkgY29uc3QKIHsKICAgICByZXR1cm4gZGF0YUxpc3RTdWdnZXN0aW9u
c1RhYmxlVmlldygpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDkyMzFhYzlkMzdhNGUzN2YxMTVjZmVlNjU4ZTI2YWNjMzE2
ZmRhZWIuLjczZTBhZmE0NmRiODFmYzFmZTA0ZDE1MTJlMjRmZDc4ODEyNmFlNjMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMSBAQAorMjAyMC0wNy0yOSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBs
ZS5jb20+CisKKyAgICAgICAgW21hY09TXSBTaG93IHBpY2tlciBmb3IgZGF0ZSBhbmQgZGF0ZXRp
bWUtbG9jYWwgaW5wdXQgdHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNDk0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZGVkIHRlc3RzIHRvIHZlcmlmeSB0aGF0IHRoZSBwaWNrZXIgaXMgY29y
cmVjdGx5IHNob3duIGFuZCBoaWRkZW4gZm9yIGRhdGUgYW5kCisgICAgICAgIGRhdGV0aW1lLWxv
Y2FsIGlucHV0IHR5cGVzLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9kYXRlL2RhdGUtc2hvdy1o
aWRlLXBpY2tlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZGF0
ZS9kYXRlLXNob3ctaGlkZS1waWNrZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jt
cy9kYXRldGltZWxvY2FsL2RhdGV0aW1lbG9jYWwtc2hvdy1oaWRlLXBpY2tlci1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZGF0ZXRpbWVsb2NhbC9kYXRldGltZWxv
Y2FsLXNob3ctaGlkZS1waWNrZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9z
L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcmVzb3VyY2VzL3VpLWhlbHBlci5qczoKKyAg
ICAgICAgKHdpbmRvdy5VSUhlbHBlci5pc1Nob3dpbmdEYXRlVGltZVBpY2tlcik6CisKIDIwMjAt
MDctMjIgIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1RLXSBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nLiBVcGRhdGUgdGVzdCBleHBlY3RhdGlvbnMg
YWZ0ZXIgcjI2NDY5NC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9k
YXRlLXNob3ctaGlkZS1waWNrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9kYXRlL2RhdGUtc2hvdy1oaWRlLXBpY2tlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjUy
ZDI0Mjc3Mjk0NzlkMmFmODM4YTk0ZjFkNGY3ZGI4NDAxMTExYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLXNob3ctaGlkZS1waWNrZXItZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCisxLiBJcyBzaG93aW5nIGRhdGUgcGlja2VyPyB0cnVl
CisyLiBJcyBzaG93aW5nIGRhdGUgcGlja2VyPyBmYWxzZQorCitUaGlzIHRlc3QgdmVyaWZpZXMg
dGhhdCBhIGRhdGUgcGlja2VyIGlzIHByZXNlbnRlZCB3aGVuIGNsaWNraW5nIG9uIGEgZGF0ZSBp
bnB1dC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLXNob3ct
aGlkZS1waWNrZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLXNob3ct
aGlkZS1waWNrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZDYyYjIwMGI3ZGY0MDA1YzlkNDU5ZGYxN2U1
Mjg1OTI4OTFmOGJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9k
YXRlL2RhdGUtc2hvdy1oaWRlLXBpY2tlci5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3
aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8
c3R5bGU+CitpbnB1dCB7CisgICAgd2lkdGg6IDMwMHB4OworICAgIGhlaWdodDogNTBweDsKK30K
KworYm9keSB7CisgICAgbWFyZ2luOiAwOworfQorPC9zdHlsZT4KKzxoZWFkPgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgorPGlucHV0IGlkPSJpbnB1dCIgdHlwZT0iZGF0ZSIvPgorPHByZT4x
LiBJcyBzaG93aW5nIGRhdGUgcGlja2VyPyA8c3BhbiBpZD0iYmVmb3JlIj48L3NwYW4+PC9wcmU+
Cis8cHJlPjIuIElzIHNob3dpbmcgZGF0ZSBwaWNrZXI/IDxzcGFuIGlkPSJhZnRlciI+PC9zcGFu
PjwvcHJlPgorPGJyPgorPGRpdj5UaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBhIGRhdGUgcGlja2Vy
IGlzIHByZXNlbnRlZCB3aGVuIGNsaWNraW5nIG9uIGEgZGF0ZSBpbnB1dC48L2Rpdj4KKzwvYm9k
eT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKK30KKworYXN5bmMg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUFuZFdhaXRG
b3JJbnB1dFNlc3Npb25BdCgxNTAsIDI1KTsKKworICAgIGJlZm9yZS50ZXh0Q29udGVudCA9IGF3
YWl0IFVJSGVscGVyLmlzU2hvd2luZ0RhdGVUaW1lUGlja2VyKCk7CisgICAgaW5wdXQuYmx1cigp
OworICAgIGFmdGVyLnRleHRDb250ZW50ID0gYXdhaXQgVUlIZWxwZXIuaXNTaG93aW5nRGF0ZVRp
bWVQaWNrZXIoKTsKKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGV0aW1lbG9j
YWwvZGF0ZXRpbWVsb2NhbC1zaG93LWhpZGUtcGlja2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvZGF0ZXRpbWVsb2NhbC9kYXRldGltZWxvY2FsLXNob3ctaGlkZS1waWNr
ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwMWZmM2Q4NWI4YWQ0YTQ3YTllYmQ1YjM3ZWQ5
MzRkMjY4NzZjMGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Rh
dGV0aW1lbG9jYWwvZGF0ZXRpbWVsb2NhbC1zaG93LWhpZGUtcGlja2VyLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDUgQEAKKworMS4gSXMgc2hvd2luZyBkYXRlIHBpY2tlcj8gdHJ1ZQorMi4gSXMg
c2hvd2luZyBkYXRlIHBpY2tlcj8gZmFsc2UKKworVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgYSBk
YXRlIHBpY2tlciBpcyBwcmVzZW50ZWQgd2hlbiBjbGlja2luZyBvbiBhIGRhdGV0aW1lLWxvY2Fs
IGlucHV0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRldGltZWxvY2Fs
L2RhdGV0aW1lbG9jYWwtc2hvdy1oaWRlLXBpY2tlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9kYXRldGltZWxvY2FsL2RhdGV0aW1lbG9jYWwtc2hvdy1oaWRlLXBpY2tlci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjNkNTBmM2YxMjlmMDk3NmI1MjZhOWQ5MTUxMzU4MzQyNjNmMjI3MWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGV0aW1lbG9jYWwvZGF0ZXRp
bWVsb2NhbC1zaG93LWhpZGUtcGlja2VyLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9Indp
ZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxz
dHlsZT4KK2lucHV0IHsKKyAgICB3aWR0aDogMzAwcHg7CisgICAgaGVpZ2h0OiA1MHB4OworfQor
Citib2R5IHsKKyAgICBtYXJnaW46IDA7Cit9Cis8L3N0eWxlPgorPGhlYWQ+Cis8Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Cis8aW5wdXQgaWQ9ImlucHV0IiB0eXBlPSJkYXRldGltZS1sb2NhbCIv
PgorPHByZT4xLiBJcyBzaG93aW5nIGRhdGUgcGlja2VyPyA8c3BhbiBpZD0iYmVmb3JlIj48L3Nw
YW4+PC9wcmU+Cis8cHJlPjIuIElzIHNob3dpbmcgZGF0ZSBwaWNrZXI/IDxzcGFuIGlkPSJhZnRl
ciI+PC9zcGFuPjwvcHJlPgorPGJyPgorPGRpdj5UaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBhIGRh
dGUgcGlja2VyIGlzIHByZXNlbnRlZCB3aGVuIGNsaWNraW5nIG9uIGEgZGF0ZXRpbWUtbG9jYWwg
aW5wdXQuPC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgYXdhaXQgVUlIZWxw
ZXIuYWN0aXZhdGVBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uQXQoMTUwLCAyNSk7CisKKyAgICBiZWZv
cmUudGV4dENvbnRlbnQgPSBhd2FpdCBVSUhlbHBlci5pc1Nob3dpbmdEYXRlVGltZVBpY2tlcigp
OworICAgIGlucHV0LmJsdXIoKTsKKyAgICBhZnRlci50ZXh0Q29udGVudCA9IGF3YWl0IFVJSGVs
cGVyLmlzU2hvd2luZ0RhdGVUaW1lUGlja2VyKCk7CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKK30KKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCA2MmU3ZTc2YWQyZDRkNzczNTU3NjI4N2YyMmY3MDI1NDVjMjk1
OTA2Li4xMDMxMzQ1MTEwNmFiMWExMjQ2NzcyMmNlY2VlNmQwNTUxZmQ2MDY4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzQ3OCwzICszNDc4LDcgQEAg
d2Via2l0Lm9yZy9iLzIxNDI5OSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtdWkvb3V0bGluZS13aXRoLXBhZGQKIHdlYmtpdC5vcmcvYi8yMTQ0OTggaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jb3JzL3JlbW90ZS1vcmlnaW4uaHRtIFsgUGFzcyBdCiAKIGZh
c3QvdGV4dC9zZWxlY3Rpb24taXMtcHJldmVudC1kZWZhdWx0ZWQuaHRtbCBbIEZhaWx1cmUgXQor
CisjIEZJWE1FOiBUaGVzZSB0ZXN0cyByZXF1aXJlIFVJU2NyaXB0Q29udHJvbGxlcklPUyBhZGRp
dGlvbnMgdG8ga25vdyB3aGVuIGEgZGF0ZS90aW1lIHBpY2tlciBpcyBwcmVzZW50ZWQKK2Zhc3Qv
Zm9ybXMvZGF0ZS9kYXRlLXNob3ctaGlkZS1waWNrZXIuaHRtbCBbIFNraXAgXQorZmFzdC9mb3Jt
cy9kYXRldGltZWxvY2FsL2RhdGV0aW1lbG9jYWwtc2hvdy1oaWRlLXBpY2tlci5odG1sIFsgU2tp
cCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzIGIvTGF5
b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwppbmRleCBlZDczOWMxYzM1ZGI5ZGM1ZDky
ODkyNzM4N2U5YjU0Y2NhMjA4ZDUwLi5lM2RmNDM4N2JhNGQwYWVmMGJlYTNmYmZhODZlYWM4M2Fh
OWZlOTcyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCisr
KyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKQEAgLTg0Nyw2ICs4NDcsMTUg
QEAgd2luZG93LlVJSGVscGVyID0gY2xhc3MgVUlIZWxwZXIgewogICAgICAgICB9KTsKICAgICB9
CiAKKyAgICBzdGF0aWMgaXNTaG93aW5nRGF0ZVRpbWVQaWNrZXIoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAgICAgdGVzdFJ1bm5lci5y
dW5VSVNjcmlwdChgKCgpID0+IHsKKyAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3Jp
cHRDb21wbGV0ZSh1aUNvbnRyb2xsZXIuaXNTaG93aW5nRGF0ZVRpbWVQaWNrZXIpOworICAgICAg
ICAgICAgfSkoKWAsIHJlc3VsdCA9PiByZXNvbHZlKHJlc3VsdCA9PT0gInRydWUiKSk7CisgICAg
ICAgIH0pOworICAgIH0KKwogICAgIHN0YXRpYyB6b29tU2NhbGUoKQogICAgIHsKICAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405541</attachid>
            <date>2020-07-29 19:31:08 -0700</date>
            <delta_ts>2020-08-05 10:44:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214946-20200729223107.patch</filename>
            <type>text/plain</type>
            <size>84931</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MDczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTY4MjMwNjliOTBlZTlj
Y2NmNDc2M2E5Y2EzMmNkOWVkNmVjYzZmYy4uODk0ZTUxYWE4ZDM1OWE5NTBhMTM1NzM3NTc4NGY1
YTJiYzEyNTNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIwLTA3LTI5ICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFNob3cg
cGlja2VyIGZvciBkYXRlIGFuZCBkYXRldGltZS1sb2NhbCBpbnB1dCB0eXBlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0OTQ2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGF0ZSBhbmQgZGF0ZXRpbWUt
bG9jYWwgaW5wdXQgdHlwZXMgcmVxdWlyZSBhIGNhbGVuZGFyIHBpY2tlciB0byBiZSBwcmVzZW50
ZWQgd2hlbiBhY3RpdmF0ZWQuCisgICAgICAgIENvbnNlcXVlbnRseSwgQmFzZUNob29zZXJPbmx5
RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQgd2FzIG1vZGlmaWVk
IHRvCisgICAgICAgIGNyZWF0ZSBhIERhdGVUaW1lQ2hvb3NlciBhbmQgZGlzcGxheSBhIGNhbGVu
ZGFyIHVwb24gYWN0aXZhdGlvbi4gVGhpcyBvYmplY3QgaXMgZGVzdHJveWVkCisgICAgICAgIHdo
ZW4gdGhlIGVsZW1lbnQgaXMgYmx1cnJlZCwgaGlkaW5nIHRoZSBjYWxlbmRhci4KKworICAgICAg
ICBUaGVyZSBpcyBjdXJyZW50bHkgbm8gcGlja2VyIFVJIGZvciBtb250aCwgd2VlaywgYW5kIHRp
bWUgaW5wdXQgdHlwZXMuIEFzIGEgcmVzdWx0LCAKKyAgICAgICAgaGFuZGxlRE9NQWN0aXZhdGVF
dmVudCBpcyBhIG5vLW9wIG9uIHRob3NlIGlucHV0IHR5cGVzLgorCisgICAgICAgIFdyb3RlIGFu
IGVuY29kZXIgYW5kIGRlY29kZXIgZm9yIERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMsIHNvIHRo
YXQgdGhlIHBpY2tlciBjYW4gYmUKKyAgICAgICAgY3JlYXRlZCB3aXRoIHRoZSBjb3JyZWN0IHZh
bHVlcy4KKworICAgICAgICBUZXN0czogZmFzdC9mb3Jtcy9kYXRlL2RhdGUtc2hvdy1oaWRlLXBp
Y2tlci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2RhdGV0aW1lbG9jYWwvZGF0ZXRp
bWVsb2NhbC1zaG93LWhpZGUtcGlja2VyLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0Jhc2VDaG9vc2VyT25seURhdGVB
bmRUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjplbGVtZW50RGlkQmx1
cik6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlw
ZTo6aXNQcmVzZW50aW5nQXR0YWNoZWRWaWV3IGNvbnN0KToKKyAgICAgICAgKiBodG1sL0Jhc2VD
aG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KToKKyAg
ICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2
YXRlRXZlbnQpOgorICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0
bWwvV2Vla0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWVrSW5wdXRUeXBlOjpo
YW5kbGVET01BY3RpdmF0ZUV2ZW50KToKKyAgICAgICAgKiBodG1sL1dlZWtJbnB1dFR5cGUuaDoK
KyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVt
cHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVEYXRlVGltZUNob29zZXIpOgorICAgICAgICAqIGxvYWRl
ci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWU6OmNyZWF0ZURhdGVUaW1lQ2hvb3Nlcik6CisgICAgICAgICogcGFnZS9D
aHJvbWUuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBsYXRm
b3JtL0RhdGVUaW1lQ2hvb3Nlci5oOgorICAgICAgICAqIHBsYXRmb3JtL0RhdGVUaW1lQ2hvb3Nl
clBhcmFtZXRlcnMuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUNob29zZXJQ
YXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVDaG9v
c2VyUGFyYW1ldGVyczo6ZGVjb2RlKToKKwogMjAyMC0wNy0yOSAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0IEhEUiBkZWNvZGUgaW4gU1cgVlA5CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDgxMWEyMDhmNzVlMTAxZDk1MzEwMDFjOTRmMDU5YzhkOTA3ODBiY2IuLjAwZmYw
NDFiN2Q1OGY1ZjhiM2EwODRhZmZiODYwYmRhNzVhNWVmZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NzcgQEAKKzIwMjAtMDctMjkgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgor
CisgICAgICAgIFttYWNPU10gU2hvdyBwaWNrZXIgZm9yIGRhdGUgYW5kIGRhdGV0aW1lLWxvY2Fs
IGlucHV0IHR5cGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTQ5NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBDcmVhdGVkIFdLRGF0ZVRpbWVQaWNrZXIgYXMgYSB3cmFwcGVyIGFyb3VuZCBOU0RhdGVQ
aWNrZXIuIFRoZSBwaWNrZXIgaXMKKyAgICAgICAgZGlzcGxheWVkIGluIGl0cyBvd24gTlNXaW5k
b3csIGVuc3VyaW5nIHRoZSB2aWV3IGlzIGFsd2F5cyBhYm92ZSB0aGUgcGFnZS4KKyAgICAgICAg
V2ViUGFnZVByb3h5IGFuZCBXS0RhdGVUaW1lUGlja2VyIGNvbW11bmljYXRlIHRocm91Z2ggV2Vi
RGF0ZVRpbWVQaWNrZXJNYWMsCisgICAgICAgIGluIG9yZGVyIGZvciB0aGUgcGlja2VyIHRvIGJl
IGluaXRpYWxpemVkIHdpdGggdGhlIGNvcnJlY3QgaW5pdGlhbCwgbWluaW11bSwKKyAgICAgICAg
YW5kIG1heGltdW0gZGF0ZSwgYW5kIHNvIHRoYXQgdGhlIGNob3NlbiBkYXRlIGNhbiBiZSBzZW50
IGJhY2sgdG8gdGhlCisgICAgICAgIFdlYlByb2Nlc3MuCisKKyAgICAgICAgQWRkZWQgSVBDIG1l
c3NhZ2VzIHRvIGVuYWJsZSBjb21tdW5pY2F0aW9uIGJldHdlZW4gdGhlIFVJUHJvY2VzcyBhbmQg
dGhlCisgICAgICAgIFdlYlByb2Nlc3MgbmVjZXNzYXJ5IGZvciBzaG93aW5nIGFuZCBoaWRpbmcg
dGhlIHBpY2tlci4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXND
b2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViRGF0ZVRpbWVQaWNrZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViRGF0ZVRpbWVQaWNrZXI6OldlYkRhdGVUaW1lUGlja2VyKToKKyAgICAgICAgKFdlYktpdDo6
V2ViRGF0ZVRpbWVQaWNrZXI6On5XZWJEYXRlVGltZVBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6
OldlYkRhdGVUaW1lUGlja2VyOjplbmRQaWNrZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJE
YXRlVGltZVBpY2tlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzaG93RGF0ZVRpbWVQaWNrZXIp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmVuZERhdGVUaW1lUGlja2VyKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDaG9vc2VEYXRlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpkaWRFbmREYXRlVGltZVBpY2tlcik6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6Y2xvc2VPdmVybGF5ZWRWaWV3cyk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjcmVhdGVEYXRlVGltZVBpY2tlcik6CisgICAgICAgICog
VUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGxNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBs
OjpjcmVhdGVEYXRlVGltZVBpY2tlcik6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJEYXRl
VGltZVBpY2tlck1hYy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkRhdGVU
aW1lUGlja2VyTWFjLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRGF0ZVRpbWVQaWNr
ZXJNYWM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGVUaW1lUGlja2VyTWFjOjp+
V2ViRGF0ZVRpbWVQaWNrZXJNYWMpOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRlVGltZVBpY2tl
ck1hYzo6V2ViRGF0ZVRpbWVQaWNrZXJNYWMpOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRlVGlt
ZVBpY2tlck1hYzo6ZW5kUGlja2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0ZVRpbWVQaWNr
ZXJNYWM6OnNob3dEYXRlVGltZVBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGVUaW1l
UGlja2VyTWFjOjpkaWRDaG9vc2VEYXRlKToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBpY2tlcldp
bmRvdyBpbml0V2l0aENvbnRlbnRSZWN0OnN0eWxlTWFzazpiYWNraW5nOmRlZmVyOl0pOgorICAg
ICAgICAoLVtXS0RhdGVUaW1lUGlja2VyV2luZG93IGNhbkJlY29tZUtleVdpbmRvd10pOgorICAg
ICAgICAoLVtXS0RhdGVUaW1lUGlja2VyV2luZG93IGhhc0tleUFwcGVhcmFuY2VdKToKKyAgICAg
ICAgKC1bV0tEYXRlVGltZVBpY2tlcldpbmRvdyBzaGFkb3dPcHRpb25zXSk6CisgICAgICAgICgt
W1dLRGF0ZVRpbWVQaWNrZXIgaW5pdFdpdGhQYXJhbXM6aW5WaWV3Ol0pOgorICAgICAgICAoLVtX
S0RhdGVUaW1lUGlja2VyIHNob3dQaWNrZXI6XSk6CisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNr
ZXIgaW52YWxpZGF0ZV0pOgorICAgICAgICAoLVtXS0RhdGVUaW1lUGlja2VyIGRpZENob29zZURh
dGU6XSk6CisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIgZGF0ZUZvcm1hdFN0cmluZ0ZvclR5
cGU6XSk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURhdGVUaW1lQ2hvb3Nlcik6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGVUaW1lQ2hvb3Nlci5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRlVGltZUNob29zZXI6OldlYkRhdGVUaW1l
Q2hvb3Nlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGVUaW1lQ2hvb3Nlcjo6ZGlkQ2hvb3Nl
RGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGVUaW1lQ2hvb3Nlcjo6ZGlkRW5kQ2hvb3Nl
cik6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGVUaW1lQ2hvb3Nlcjo6ZW5kQ2hvb3Nlcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkRhdGVUaW1lQ2hvb3Nlcjo6c2hvd0Nob29zZXIpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0ZVRpbWVDaG9vc2VyLmg6IEFkZGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c2V0QWN0aXZlRGF0ZVRpbWVDaG9vc2VyKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6ZGlkQ2hvb3NlRGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRp
ZEVuZERhdGVUaW1lUGlja2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgor
CiAyMDIwLTA3LTI5ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAK
ICAgICAgICAgSGlnaGxpZ2h0IGNvbG9yIGRvZXMgbm90IHN3aXRjaCBhZnRlciBiZWluZyBzZXQg
aXQgc3lzdGVtIHByZWZlcmVuY2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDE5
ZjNiZDdmMWI3NzdhOTMxNjQwYjIwMDE4YWQ5ZDFmMzRlNDY3NDAuLjZjN2I2ZmEyY2FlNmRlMDZh
MjVkNTRlZmZmNDM0N2FiYmQ1Njg1NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAyMC0wNy0yOSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBs
ZS5jb20+CisKKyAgICAgICAgW21hY09TXSBTaG93IHBpY2tlciBmb3IgZGF0ZSBhbmQgZGF0ZXRp
bWUtbG9jYWwgaW5wdXQgdHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNDk0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFttYWNPU10gU2hvdyBwaWNrZXIgZm9yIGRhdGUgYW5kIGRhdGV0aW1lLWxv
Y2FsIGlucHV0IHR5cGVzCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURhdGVUaW1lQ2hvb3Nlcik6CisKIDIwMjAtMDct
MjkgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcHJvdmUgcmFu
Z2UgaWRpb21zIGFuZCBvdGhlciBjaGFuZ2VzIHRvIHByZXBhcmUgdGhlIHdheSBmb3IgbW9yZSBy
ZWR1Y3Rpb24gaW4gbGl2ZSByYW5nZSB1c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1YzJiYTA4NmY5NjQ1N2I0YmVjMjhkMjcx
MjI3YTFhNzU2ZmY5ZjNkLi5mODRiZTQ3NWQ2MWMzZmU0MTFlM2YyMjhjZmQ1ZTBkOWQyN2NmYzc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMDAwLDggKzEwMDAsOCBAQAogCQkzN0M3MzhFQjFFREJEMzg0MDAzRjJCMEIgLyog
UGVyZm9ybWFuY2VNZWFzdXJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzN0M3MzhFQTFFREJEMzgxMDAzRjJCMEIgLyogUGVyZm9ybWFuY2VNZWFzdXJl
LmggKi87IH07CiAJCTM3QzczOEVEMUVEQkQ1QkMwMDNGMkIwQiAvKiBTVkdVbmtub3duRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdDNzM4
RUMxRURCRDVCNzAwM0YyQjBCIC8qIFNWR1Vua25vd25FbGVtZW50LmggKi87IH07CiAJCTM3Qzcz
OEVGMUVEQkQ3MUIwMDNGMkIwQiAvKiBNYXRoTUxVbmtub3duRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdDNzM4RUUxRURCRDcxODAwM0Yy
QjBCIC8qIE1hdGhNTFVua25vd25FbGVtZW50LmggKi87IH07Ci0JCTM3QzczOEYzMUVEQkRFOEEw
MDNGMkIwQiAvKiBEYXRlVGltZUNob29zZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDM3QzczOEYxMUVEQkRFODcwMDNGMkIwQiAvKiBEYXRlVGltZUNo
b29zZXIuaCAqLzsgfTsKLQkJMzdDNzM4RjQxRURCREU4RDAwM0YyQjBCIC8qIERhdGVUaW1lQ2hv
b3NlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzdDNzM4RjIxRURCREU4NzAwM0YyQjBCIC8qIERhdGVUaW1lQ2hvb3NlckNsaWVudC5oICov
OyB9OworCQkzN0M3MzhGMzFFREJERThBMDAzRjJCMEIgLyogRGF0ZVRpbWVDaG9vc2VyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0M3MzhGMTFFREJE
RTg3MDAzRjJCMEIgLyogRGF0ZVRpbWVDaG9vc2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMzdDNzM4RjQxRURCREU4RDAwM0YyQjBCIC8qIERh
dGVUaW1lQ2hvb3NlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzdDNzM4RjIxRURCREU4NzAwM0YyQjBCIC8qIERhdGVUaW1lQ2hvb3NlckNs
aWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTM3RDQ1NkZEMUE5QTUwRDgwMDMzMzBBMSAvKiBMb2NhbGl6YWJsZVN0cmluZ3MucG0gaW4gQ29w
eSBTY3JpcHRzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RDQ1NkZCMUE5
QTUwQjYwMDMzMzBBMSAvKiBMb2NhbGl6YWJsZVN0cmluZ3MucG0gKi87IH07CiAJCTM3RTM1MjRE
MTI0NTBDNjYwMEJBRjVEOSAvKiBJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RTM1MjRDMTI0NTBDNjYwMEJBRjVEOSAvKiBJbnB1dFR5
cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkz
N0Y1NjdDRTE2NTM1OEY0MDBEREU5MkIgLyogUG9wdXBPcGVuaW5nT2JzZXJ2ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3NzJCMDk1MTY1MzU4NTYw
MDBBNDlDQSAvKiBQb3B1cE9wZW5pbmdPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01MDU1LDYgKzUwNTUsNyBAQAogCQlFNThCNDVC
QTIwQUQwN0REMDA5OTEwMjUgLyogRGF0YUxpc3RCdXR0b25FbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNThCNDVCODIwQUQwN0REMDA5OTEw
MjUgLyogRGF0YUxpc3RCdXR0b25FbGVtZW50LmggKi87IH07CiAJCUU1OURENEI4MjEwOTgyODcw
MDNDOEI0NyAvKiBMaXN0QnV0dG9uQXJyb3cucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTlERDRCNzIxMDk4Mjg1MDAzQzhCNDcgLyogTGlzdEJ1
dHRvbkFycm93LnBuZyAqLzsgfTsKIAkJRTVCQTdENjMxNTE0MzdDQTAwRkUxRTNGIC8qIExlbmd0
aEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTVCQTdENjIxNTE0MzdDQTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUU1QzU5QTlBMjREMEUx
QUEwMDNCODZFMSAvKiBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUM1OUE5OTI0RDBFMUFBMDAzQjg2RTEg
LyogRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU3MTQ2N0IzMjRBQkFFRjIwMEZCMkY1MCAvKiBBdWRp
b05vZGVPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNzE0NjdCMTI0QUJBRUYxMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5oICovOyB9
OwogCQlFNzE0NjdCNjI0QUJBRjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTcxNDY3QjUyNEFCQUYxRDAw
RkIyRjUwIC8qIFBhbm5lck9wdGlvbnMuaCAqLzsgfTsKIAkJRTc1NUU4OTIyNEM3NDM0QjAwOUY3
QzIzIC8qIFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzU1RTg4RjI0Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9k
aWNXYXZlQ29uc3RyYWludHMuaCAqLzsgfTsKQEAgLTE1ODMzLDYgKzE1ODM0LDcgQEAKIAkJRTU4
QjQ1QjgyMEFEMDdERDAwOTkxMDI1IC8qIERhdGFMaXN0QnV0dG9uRWxlbWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEYXRhTGlzdEJ1dHRvbkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTU5REQ0QjcyMTA5ODI4NTAwM0M4QjQ3IC8qIExpc3RCdXR0b25BcnJvdy5wbmcgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7
IHBhdGggPSBMaXN0QnV0dG9uQXJyb3cucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNUJBN0Q2MjE1MTQzN0NBMDBGRTFFM0YgLyogTGVuZ3RoRnVuY3Rpb25zLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlbmd0aEZ1bmN0aW9ucy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFNUM1OUE5OTI0RDBFMUFBMDAzQjg2RTEgLyogRGF0ZVRpbWVDaG9v
c2VyUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRlVGlt
ZUNob29zZXJQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU3MTQ2
N0IxMjRBQkFFRjEwMEZCMkY1MCAvKiBBdWRpb05vZGVPcHRpb25zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvTm9kZU9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTcxNDY3QjQyNEFCQUYwQjAwRkIyRjUwIC8qIEF1ZGlvTm9kZU9wdGlvbnMu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEF1ZGlvTm9kZU9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFNzE0NjdCNTI0QUJBRjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYW5uZXJPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yNjU1OCw2ICsyNjU2MCw3IEBACiAJCQkJQTU3MzJCMDkxMzZBMTYx
RDAwNUM4RDdDIC8qIERhdGVDb21wb25lbnRzLmggKi8sCiAJCQkJMzdDNzM4RjExRURCREU4NzAw
M0YyQjBCIC8qIERhdGVUaW1lQ2hvb3Nlci5oICovLAogCQkJCTM3QzczOEYyMUVEQkRFODcwMDNG
MkIwQiAvKiBEYXRlVGltZUNob29zZXJDbGllbnQuaCAqLywKKwkJCQlFNUM1OUE5OTI0RDBFMUFB
MDAzQjg2RTEgLyogRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycy5oICovLAogCQkJCTQ1RkVBNUNE
MTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmNwcCAqLywKIAkJCQk0NUZFQTVDRTE1NkRERThD
MDA2NTQxMDEgLyogRGVjaW1hbC5oICovLAogCQkJCUNEODNEMzVBMjExMTEwODIwMDc2RTExQyAv
KiBEZWZlcnJhYmxlVGFzay5oICovLApAQCAtMzA1NTQsNiArMzA1NTcsNyBAQAogCQkJCUY1NUIz
REI2MTI1MUYxMkQwMDNFRjI2OSAvKiBEYXRlSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzN0M3MzhGMzFFREJERThBMDAzRjJCMEIgLyogRGF0ZVRpbWVDaG9vc2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzN0M3MzhGNDFFREJERThEMDAzRjJCMEIgLyogRGF0ZVRpbWVDaG9vc2VyQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlFNUM1OUE5QTI0RDBFMUFBMDAzQjg2RTEgLyogRGF0
ZVRpbWVDaG9vc2VyUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDUzRUI2MzcxNTlD
NTcwNDAwMDAxQkI3IC8qIERhdGVUaW1lRm9ybWF0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVC
M0RCQTEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY2QTEyQkUxQTAwOTIzNzAwQzZERTcyIC8qIERlYnVnUGFnZU92ZXJsYXlz
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNo
b29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXggNTQyMWZkYjRiZjZi
ODFkZTlmNTRlMWIyMTY2NWE5NzViZDNhMzMxNS4uNzUwNzBhZDNkN2Y1ZTIzMTAxY2ZkM2VjNTNm
MmY0NzJhZDU2NGI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nl
ck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTI5LDYgKzI5LDggQEAK
IAogI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQogCisjaW5jbHVkZSAiQ2hy
b21lLmgiCisjaW5jbHVkZSAiRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycy5oIgogI2luY2x1ZGUg
IkhUTUxEaXZFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1
ZGUgIlBhZ2UuaCIKQEAgLTU3LDYgKzU5LDIyIEBAIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFu
ZFRpbWVJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmKQogICAgIERhdGVU
aW1lQ2hvb3NlclBhcmFtZXRlcnMgcGFyYW1ldGVyczsKICAgICBpZiAoIWVsZW1lbnQoKS0+c2V0
dXBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzKHBhcmFtZXRlcnMpKQogICAgICAgICByZXR1cm47
CisKKyAgICBpZiAoQ2hyb21lKiBjaHJvbWUgPSB0aGlzLT5jaHJvbWUoKSkgeworICAgICAgICBt
X2RhdGVUaW1lQ2hvb3NlciA9IGNocm9tZS0+Y3JlYXRlRGF0ZVRpbWVDaG9vc2VyKCp0aGlzKTsK
KyAgICAgICAgaWYgKG1fZGF0ZVRpbWVDaG9vc2VyKQorICAgICAgICAgICAgbV9kYXRlVGltZUNo
b29zZXItPnNob3dDaG9vc2VyKHBhcmFtZXRlcnMpOworICAgIH0KK30KKwordm9pZCBCYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZWxlbWVudERpZEJsdXIoKQoreworICAgIGNs
b3NlRGF0ZVRpbWVDaG9vc2VyKCk7Cit9CisKK2Jvb2wgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRp
bWVJbnB1dFR5cGU6OmlzUHJlc2VudGluZ0F0dGFjaGVkVmlldygpIGNvbnN0Cit7CisgICAgcmV0
dXJuICEhbV9kYXRlVGltZUNob29zZXI7CiB9CiAKIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFu
ZFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oCmlu
ZGV4IGEzZjFjZjVhNWIyYWNhMGNhOGU5OTUxODExNjk1MjAwYTMzNzhmMGQuLjBiMTlhYjg3ZTc0
MGQ0ZDU0ZDYyMjFmODljN2IxOTM0ZmJiMWNlMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKQEAgLTQ5
LDE4ICs0OSwyMCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGV0YWNoKCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxk
RXZlbnRCZWhhdmlvcikgb3ZlcnJpZGU7CiAgICAgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50
KEV2ZW50Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBlbGVtZW50RGlkQmx1cigpIGZpbmFsOwogICAg
IFNob3VsZENhbGxCYXNlRXZlbnRIYW5kbGVyIGhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2
ZW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBoYW5kbGVLZXlwcmVzc0V2ZW50KEtleWJvYXJkRXZl
bnQmKSBvdmVycmlkZTsKICAgICB2b2lkIGhhbmRsZUtleXVwRXZlbnQoS2V5Ym9hcmRFdmVudCYp
IG92ZXJyaWRlOwogICAgIGJvb2wgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRz
KSBvdmVycmlkZTsKICAgICBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdCBvdmVycmlkZTsK
KyAgICBib29sIGlzUHJlc2VudGluZ0F0dGFjaGVkVmlldygpIGNvbnN0IGZpbmFsOwogICAgIHZv
aWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAg
ICAvLyBEYXRlVGltZUNob29zZXJDbGllbnQgZnVuY3Rpb25zOgogICAgIHZvaWQgZGlkQ2hvb3Nl
VmFsdWUoY29uc3QgU3RyaW5nJikgZmluYWw7CiAgICAgdm9pZCBkaWRFbmRDaG9vc2VyKCkgZmlu
YWw7CiAKLSAgICBSZWZQdHI8RGF0ZVRpbWVDaG9vc2VyPiBtX2RhdGVUaW1lQ2hvb3NlcjsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RGF0ZVRpbWVDaG9vc2VyPiBtX2RhdGVUaW1lQ2hvb3NlcjsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwCmluZGV4IDE5MzgzZTdiZTRhNWY1OTVkY2U0Yzk4YTQ3ZDE3NjJiMzYzYTQxNGMu
LjA0MGQ4NzBhNDA4NDA4OTFiN2NlMGUyMTk5YmNiNTk0MDBlZDY2OTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUg
IkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRhdGVUaW1l
Q2hvb3Nlci5oIgorI2luY2x1ZGUgIkRhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkV2ZW50TmFt
ZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKaW5kZXggNDkwMjYwYzI4
Yzc5ZjM1MDY3NjI3Yzg5ZGIwMmY5YjY5YmIwZWUwNC4uZWJhZTdkMWQxNmU1OTYxZTE3ZjQ3MDkw
ZGJhZWVlNzdiYmY1NTg2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElu
cHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAK
QEAgLTEyOSw2ICsxMjksOCBAQCBib29sIE1vbnRoSW5wdXRUeXBlOjppc01vbnRoRmllbGQoKSBj
b25zdAogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIE1vbnRoSW5wdXRUeXBlOjpoYW5kbGVE
T01BY3RpdmF0ZUV2ZW50KEV2ZW50JikgeyB9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKaW5kZXggMGNjYTkyMmE1M2M0
MGRmMTU4ZGNmYjJjNjA2MWQ4YTM4Yzg0YWY4NC4uNGJiZDExZGQwZTAyNzQwOTU5N2I5MTNhZDli
YTNkODQ4ZTA2Zjc5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0
VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaApAQCAtNTEs
NiArNTEsNyBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBwYXJzZVRv
RGF0ZUNvbXBvbmVudHMoY29uc3QgU3RyaW5nVmlldyYpIGNvbnN0IG92ZXJyaWRlOwogICAgIE9w
dGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91
YmxlKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzTW9udGhGaWVsZCgpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9UaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlw
ZS5jcHAKaW5kZXggMGJkMmQ0YmNlOWE1OGViNzk2Nzk3YjM4MTEwMDg0NWFlNWQ2NTZmZC4uNTA5
MzNjYWVjNzhkZDgwZDAxODZhNDlhZTllODdkNGJlODNjZDUxYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RpbWVJbnB1dFR5cGUuY3BwCkBAIC0xMDQsNiArMTA0LDggQEAgYm9vbCBUaW1lSW5wdXRUeXBl
Ojppc1RpbWVGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgVGltZUlu
cHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIHsgfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9U
aW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAppbmRl
eCA4NDE2NmIwOTVhZjIxODhjYThlMDc1NmJlN2U1NTcxMWIxMmQ4ZWQ0Li4xZTg2MGMzMTdmZmRj
MDFjOWNlYzZmZmI0ZTNkMzQwMjljMDNmZmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5
cGUuaApAQCAtNDgsNiArNDgsNyBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPERhdGVDb21wb25l
bnRzPiBwYXJzZVRvRGF0ZUNvbXBvbmVudHMoY29uc3QgU3RyaW5nVmlldyYpIGNvbnN0IG92ZXJy
aWRlOwogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNv
bXBvbmVudHMoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzVGltZUZpZWxkKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50Jikg
b3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9X
ZWVrSW5wdXRUeXBlLmNwcAppbmRleCBiMmJiMjQzYjkwNWQ4NDE1YjAzNGM5NDA2ZTRiZmEzODIx
YjM5YmEzLi44NzQ3YjczNTViZjMyMDlhMDZmNTJmOTY2ZmI2OTZjNjUxMDAxN2EyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKQEAgLTgyLDYgKzgyLDggQEAgYm9vbCBXZWVr
SW5wdXRUeXBlOjppc1dlZWtGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3Zv
aWQgV2Vla0lucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIHsgfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9XZWVrSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5
cGUuaAppbmRleCBkM2JhMTUxMzNlNzM0MTFlYTgwNTRjMDMzY2YxMDZhNWMzNjZhM2E3Li41MDk4
MTc0NGJmZTRlYmI3MTNhZmViODliNmYwZGFkYTg2MTVhYjgwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dl
ZWtJbnB1dFR5cGUuaApAQCAtNDcsNiArNDcsNyBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPERh
dGVDb21wb25lbnRzPiBwYXJzZVRvRGF0ZUNvbXBvbmVudHMoY29uc3QgU3RyaW5nVmlldyYpIGNv
bnN0IG92ZXJyaWRlOwogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29u
ZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzV2Vl
a0ZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50
KEV2ZW50Jikgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDBjMTRhZTY5MGNkM2Y0NmE2M2JhZTYx
NjA4NTRmMWEwM2I4MTFiNDEuLjJlOGE0ZWM2ZTcwMmQ4ZDBjMDEzOWE0MjNiZmU0YjJhYzAxMzA4
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC00OTEsNiArNDkx
LDE1IEBAIHN0ZDo6dW5pcXVlX3B0cjxEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI+IEVtcHR5Q2hy
b21lQ2xpZW50OjpjcmVhdGVEYXRhTGlzdFN1Z2dlCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKERB
VEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKK3N0ZDo6dW5pcXVlX3B0cjxEYXRlVGltZUNob29z
ZXI+IEVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVEYXRlVGltZUNob29zZXIoRGF0ZVRpbWVDaG9v
c2VyQ2xpZW50JikKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworI2VuZGlmCisKIHZvaWQg
RW1wdHlDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9vc2VyJikKIHsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCA3MWQ0ZTU0MzkxYjYwNTYy
NWMxZWNkYzRlOTdhN2EzMDFkMDEzNzkzLi4zZTlkZTdkMjY2YTlkZWE2ZTFhMDM0NDZhNTllZjdm
NDAwNjA5OTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0xMzYsNiAr
MTM2LDEwIEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7
CiAgICAgYm9vbCBjYW5TaG93RGF0YUxpc3RTdWdnZXN0aW9uTGFiZWxzKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5Q
VVRfVFlQRVMpCisgICAgc3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lQ2hvb3Nlcj4gY3JlYXRlRGF0
ZVRpbWVDaG9vc2VyKERhdGVUaW1lQ2hvb3NlckNsaWVudCYpIGZpbmFsOworI2VuZGlmCisKICAg
ICB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9vc2VyJikgZmluYWw7CiAgICAgdm9p
ZCBzaG93U2hhcmVTaGVldChTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJikgZmluYWw7CiAgICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXImKSBmaW5hbCB7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmNwcAppbmRleCA1NDUzN2FkYmU1ZGE2Y2Y0YjkzMjFmMDA4M2I1OGZhYmE1MGZmMDZmLi5k
YjA3MGJjYzdlMjY2MDQ3N2ZjMGM2YzI1ODBhNThiZDExZWMxMTg5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWUuY3BwCkBAIC02MSw2ICs2MSwxMCBAQAogI2luY2x1ZGUgIkRhdGFMaXN0U3VnZ2VzdGlvblBp
Y2tlci5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykK
KyNpbmNsdWRlICJEYXRlVGltZUNob29zZXIuaCIKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFD
KSAmJiBFTkFCTEUoR1JBUEhJQ1NfQ09OVEVYVF9HTCkKICNpbmNsdWRlICJHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTE1hbmFnZXIuaCIKICNlbmRpZgpAQCAtNDQyLDYgKzQ0NiwyMSBAQCBzdGQ6OnVu
aXF1ZV9wdHI8RGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyPiBDaHJvbWU6OmNyZWF0ZURhdGFMaXN0
U3VnZ2VzdGlvblBpY2tlcgogCiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lO
UFVUX1RZUEVTKQorCitzdGQ6OnVuaXF1ZV9wdHI8RGF0ZVRpbWVDaG9vc2VyPiBDaHJvbWU6OmNy
ZWF0ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGltZUNob29zZXJDbGllbnQmIGNsaWVudCkKK3sKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFVOVVNFRF9QQVJBTShjbGllbnQpOworICAgIHJl
dHVybiBudWxscHRyOworI2Vsc2UKKyAgICBub3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsK
KyAgICByZXR1cm4gbV9jbGllbnQuY3JlYXRlRGF0ZVRpbWVDaG9vc2VyKGNsaWVudCk7CisjZW5k
aWYKK30KKworI2VuZGlmCisKIHZvaWQgQ2hyb21lOjpydW5PcGVuUGFuZWwoRnJhbWUmIGZyYW1l
LCBGaWxlQ2hvb3NlciYgZmlsZUNob29zZXIpCiB7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5nT2Jz
ZXJ2ZXJzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCAyMDczNGU0MWI1MjQ4NTBhYmM5Y2I1MzU3
NDI4MDk2ODMxOWNhMjUzLi45NGI5NTJkNmU4ZjNjYTE4YzkzYjE5MTBlNTEzYTc5MjRiNzQwNmUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTE1Nyw2ICsxNTcsMTAgQEAgcHVibGljOgogICAgIHN0
ZDo6dW5pcXVlX3B0cjxEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI+IGNyZWF0ZURhdGFMaXN0U3Vn
Z2VzdGlvblBpY2tlcihEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50Jik7CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxE
YXRlVGltZUNob29zZXI+IGNyZWF0ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGltZUNob29zZXJDbGll
bnQmKTsKKyNlbmRpZgorCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hvb3Nl
ciYpOwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoU2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgbG9hZEljb25Gb3JGaWxl
cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWVDbGllbnQuaAppbmRleCBjMGEwZDMwYmNmZGYzZjQxY2YwZThkN2YzZGU0YzI0YzAxZGI2
Nzk4Li4xMzY0YjNhZWE2YjEyM2IwNjE0MWVmZjRjMWE1Y2M3MWNjYzk5ZjNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTI4OSw2ICsyODksMTAgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBjYW5TaG93RGF0YUxpc3RTdWdnZXN0aW9uTGFiZWxzKCkgY29uc3QgPSAwOwog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKyAgICB2aXJ0
dWFsIHN0ZDo6dW5pcXVlX3B0cjxEYXRlVGltZUNob29zZXI+IGNyZWF0ZURhdGVUaW1lQ2hvb3Nl
cihEYXRlVGltZUNob29zZXJDbGllbnQmKSA9IDA7CisjZW5kaWYKKwogICAgIHZpcnR1YWwgdm9p
ZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hvb3NlciYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2hvd1NoYXJlU2hlZXQoU2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIFdURjo6Q29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykgeyBjYWxsYmFjayhmYWxzZSk7IH0KICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGVUaW1lQ2hvb3Nlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZVRpbWVDaG9vc2VyLmgKaW5kZXggMjNiMDVk
N2M4MjRmNTU2OGM4Zjg3Zjk3ODUzNzRhYmMxM2EwMTBlYi4uMGY2N2NlNDgwYWQ2MmE5M2Y1OGQ5
NGUxMmE1ZTkxMjQ2NzhiMzY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RGF0ZVRpbWVDaG9vc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZVRpbWVD
aG9vc2VyLmgKQEAgLTI4LDQzICsyOCwyMyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZu
ZGVmIERhdGVUaW1lQ2hvb3Nlcl9oCi0jZGVmaW5lIERhdGVUaW1lQ2hvb3Nlcl9oCisjcHJhZ21h
IG9uY2UKIAogI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQotI2luY2x1ZGUg
IkludFJlY3QuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotc3RydWN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMgewotICAgIEF0b21T
dHJpbmcgdHlwZTsKLSAgICBJbnRSZWN0IGFuY2hvclJlY3RJblJvb3RWaWV3OwotICAgIC8vIExv
Y2FsZSBuYW1lIGZvciB3aGljaCB0aGUgY2hvb3NlciBzaG91bGQgYmUgbG9jYWxpemVkLiBUaGlz
Ci0gICAgLy8gbWlnaHQgYmUgYW4gaW52YWxpZCBuYW1lIGJlY2F1c2UgaXQgY29tZXMgZnJvbSBI
VE1MIGxhbmcKLSAgICAvLyBhdHRyaWJ1dGVzLgotICAgIEF0b21TdHJpbmcgbG9jYWxlOwotICAg
IFN0cmluZyBjdXJyZW50VmFsdWU7Ci0gICAgVmVjdG9yPFN0cmluZz4gc3VnZ2VzdGlvblZhbHVl
czsKLSAgICBWZWN0b3I8U3RyaW5nPiBsb2NhbGl6ZWRTdWdnZXN0aW9uVmFsdWVzOwotICAgIFZl
Y3RvcjxTdHJpbmc+IHN1Z2dlc3Rpb25MYWJlbHM7Ci0gICAgZG91YmxlIG1pbmltdW07Ci0gICAg
ZG91YmxlIG1heGltdW07Ci0gICAgZG91YmxlIHN0ZXA7Ci0gICAgZG91YmxlIHN0ZXBCYXNlOwot
ICAgIGJvb2wgcmVxdWlyZWQ7Ci0gICAgYm9vbCBpc0FuY2hvckVsZW1lbnRSVEw7Ci19Oworc3Ry
dWN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnM7CiAKLS8vIEZvciBwaWNrZXJzIGxpa2UgY29s
b3IgcGlja2VycyBhbmQgZGF0ZSBwaWNrZXJzLgotY2xhc3MgRGF0ZVRpbWVDaG9vc2VyIDogcHVi
bGljIFJlZkNvdW50ZWQ8RGF0ZVRpbWVDaG9vc2VyPiB7CitjbGFzcyBEYXRlVGltZUNob29zZXIg
OiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8RGF0ZVRpbWVDaG9vc2VyPiB7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RGF0ZVRpbWVDaG9vc2VyKCkg
PSBkZWZhdWx0OwogCiAgICAgdmlydHVhbCB2b2lkIGVuZENob29zZXIoKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHNob3dDaG9vc2VyKGNvbnN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMmKSA9
IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAjZW5kaWYKLSNlbmRpZiAvLyBEYXRl
VGltZUNob29zZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZVRp
bWVDaG9vc2VyUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZVRpbWVD
aG9vc2VyUGFyYW1ldGVycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiNjgyM2M2YzUzOTkwZjM4N2Y1ZDRhYWVm
MWQ2Zjg4ZjdiYzNkZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9EYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzLmgKQEAgLTAsMCArMSwxMzUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVT
KQorCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBEYXRlVGltZUNob29zZXJQYXJhbWV0
ZXJzIHsKKyAgICBBdG9tU3RyaW5nIHR5cGU7CisgICAgSW50UmVjdCBhbmNob3JSZWN0SW5Sb290
VmlldzsKKyAgICAvLyBMb2NhbGUgbmFtZSBmb3Igd2hpY2ggdGhlIGNob29zZXIgc2hvdWxkIGJl
IGxvY2FsaXplZC4gVGhpcworICAgIC8vIG1pZ2h0IGJlIGFuIGludmFsaWQgbmFtZSBiZWNhdXNl
IGl0IGNvbWVzIGZyb20gSFRNTCBsYW5nCisgICAgLy8gYXR0cmlidXRlcy4KKyAgICBBdG9tU3Ry
aW5nIGxvY2FsZTsKKyAgICBTdHJpbmcgY3VycmVudFZhbHVlOworICAgIFZlY3RvcjxTdHJpbmc+
IHN1Z2dlc3Rpb25WYWx1ZXM7CisgICAgVmVjdG9yPFN0cmluZz4gbG9jYWxpemVkU3VnZ2VzdGlv
blZhbHVlczsKKyAgICBWZWN0b3I8U3RyaW5nPiBzdWdnZXN0aW9uTGFiZWxzOworICAgIGRvdWJs
ZSBtaW5pbXVtOworICAgIGRvdWJsZSBtYXhpbXVtOworICAgIGRvdWJsZSBzdGVwOworICAgIGRv
dWJsZSBzdGVwQmFzZTsKKyAgICBib29sIHJlcXVpcmVkOworICAgIGJvb2wgaXNBbmNob3JFbGVt
ZW50UlRMOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxE
YXRlVGltZUNob29zZXJQYXJhbWV0ZXJzPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0eXBlOworICAgIGVu
Y29kZXIgPDwgYW5jaG9yUmVjdEluUm9vdFZpZXc7CisgICAgZW5jb2RlciA8PCBsb2NhbGU7Cisg
ICAgZW5jb2RlciA8PCBjdXJyZW50VmFsdWU7CisgICAgZW5jb2RlciA8PCBzdWdnZXN0aW9uVmFs
dWVzOworICAgIGVuY29kZXIgPDwgbG9jYWxpemVkU3VnZ2VzdGlvblZhbHVlczsKKyAgICBlbmNv
ZGVyIDw8IHN1Z2dlc3Rpb25MYWJlbHM7CisgICAgZW5jb2RlciA8PCBtaW5pbXVtOworICAgIGVu
Y29kZXIgPDwgbWF4aW11bTsKKyAgICBlbmNvZGVyIDw8IHN0ZXA7CisgICAgZW5jb2RlciA8PCBz
dGVwQmFzZTsKKyAgICBlbmNvZGVyIDw8IHJlcXVpcmVkOworICAgIGVuY29kZXIgPDwgaXNBbmNo
b3JFbGVtZW50UlRMOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8RGF0
ZVRpbWVDaG9vc2VyUGFyYW1ldGVycz4gRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCit7CisgICAgQXRvbVN0cmluZyB0eXBlOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUodHlwZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBJ
bnRSZWN0IGFuY2hvclJlY3RJblJvb3RWaWV3OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYW5j
aG9yUmVjdEluUm9vdFZpZXcpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
QXRvbVN0cmluZyBsb2NhbGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShsb2NhbGUpKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgU3RyaW5nIGN1cnJlbnRWYWx1ZTsKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGN1cnJlbnRWYWx1ZSkpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8U3RyaW5nPiBzdWdnZXN0aW9uVmFsdWVzOworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoc3VnZ2VzdGlvblZhbHVlcykpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8U3RyaW5nPiBsb2NhbGl6ZWRTdWdnZXN0aW9uVmFsdWVz
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUobG9jYWxpemVkU3VnZ2VzdGlvblZhbHVlcykpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8U3RyaW5nPiBzdWdnZXN0
aW9uTGFiZWxzOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3VnZ2VzdGlvbkxhYmVscykpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBkb3VibGUgbWluaW11bTsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKG1pbmltdW0pKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgZG91YmxlIG1heGltdW07CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtYXhpbXVt
KSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGRvdWJsZSBzdGVwOworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoc3RlcCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisKKyAgICBkb3VibGUgc3RlcEJhc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGVwQmFz
ZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBib29sIHJlcXVpcmVkOwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVxdWlyZWQpKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgYm9vbCBpc0FuY2hvckVsZW1lbnRSVEw7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShpc0FuY2hvckVsZW1lbnRSVEwpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgcmV0dXJuIHt7IHR5cGUsIGFuY2hvclJlY3RJblJvb3RWaWV3LCBsb2NhbGUsIGN1
cnJlbnRWYWx1ZSwgc3VnZ2VzdGlvblZhbHVlcywgbG9jYWxpemVkU3VnZ2VzdGlvblZhbHVlcywg
c3VnZ2VzdGlvbkxhYmVscywgbWluaW11bSwgbWF4aW11bSwgc3RlcCwgc3RlcEJhc2UsIHJlcXVp
cmVkLCBpc0FuY2hvckVsZW1lbnRSVEwgfX07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA2MmM1NzRiNDc2MTM4MTE4MjNlMTFlYmQzMDY2YTE4
NjZkNDU5N2UyLi4xMTQ2OWM0YWJmZTRlODJkMGEzNDBhMTgxYmEyNDA4ZDdjMTlmNjQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQKQEAgLTMwMyw2ICszMDMsNyBAQCBVSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94
eS5jcHAKIFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCiBVSVByb2Nlc3MvV2Vi
Q29va2llTWFuYWdlclByb3h5Q2xpZW50LmNwcAogVUlQcm9jZXNzL1dlYkRhdGFMaXN0U3VnZ2Vz
dGlvbnNEcm9wZG93bi5jcHAKK1VJUHJvY2Vzcy9XZWJEYXRlVGltZVBpY2tlci5jcHAKIFVJUHJv
Y2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNwcAogVUlQcm9jZXNzL1dlYkZvcm1DbGllbnQuY3Bw
CiBVSVByb2Nlc3MvV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5LmNwcApAQCAtNjI4LDYg
KzYyOSw3IEBAIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIuY3BwCiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuY3BwCitXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkRhdGVUaW1lQ2hvb3Nlci5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4
dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCAwY2IwNDM0NWM0MThlYzE4
ZWU1ZWFjMWQ2ZmExYzcxMGIwOWQzODY5Li4yYzA1YjAyY2FkY2E1MDhiNjZmMTUzN2U0Y2E5YjE2
NmJhOTViMzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysr
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC00OTcsNiArNDk3LDcgQEAgVUlQ
cm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5tbQogVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0
TWVudVByb3h5TWFjLm1tCiBVSVByb2Nlc3MvbWFjL1dlYkNvb2tpZU1hbmFnZXJQcm94eU1hYy5t
bQogVUlQcm9jZXNzL21hYy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMubW0KK1VJ
UHJvY2Vzcy9tYWMvV2ViRGF0ZVRpbWVQaWNrZXJNYWMubW0KIFVJUHJvY2Vzcy9tYWMvV2ViUGFn
ZVByb3h5TWFjLm1tCiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCiBVSVBy
b2Nlc3MvbWFjL1dlYlByb2Nlc3NQcm94eU1hYy5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oCmluZGV4IDU5NDFmMDIwMGFjYmRiMmRhZDNiYmQwOGQ2ZWQwODMyYjY1NTNlN2UuLjIw
NjEwZmRiM2QzYzZkYzJjMTliYTQ0ZjIyNGE1Y2Q4Zjg0ZjkxYTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJTaGFyZWFibGVC
aXRtYXAuaCIKICNpbmNsdWRlICJXZWJDb2xvclBpY2tlci5oIgogI2luY2x1ZGUgIldlYkRhdGFM
aXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5oIgorI2luY2x1ZGUgIldlYkRhdGVUaW1lUGlja2VyLmgi
CiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2
aXR5U3RhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0FsdGVybmF0aXZlVGV4dENsaWVudC5oPgpA
QCAtMTU4LDYgKzE1OSwxMCBAQCBjbGFzcyBXZWJDb2xvclBpY2tlcjsKIGNsYXNzIFdlYkRhdGFM
aXN0U3VnZ2VzdGlvbnNEcm9wZG93bjsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJ
TUVfSU5QVVRfVFlQRVMpCitjbGFzcyBXZWJEYXRlVGltZVBpY2tlcjsKKyNlbmRpZgorCiAjaWYg
RU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogY2xhc3MgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eUNs
aWVudDsKICNlbmRpZgpAQCAtMzM5LDYgKzM0NCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBS
ZWZQdHI8V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duPiBjcmVhdGVEYXRhTGlzdFN1Z2dl
c3Rpb25zRHJvcGRvd24oV2ViUGFnZVByb3h5JikgPSAwOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
REFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKyAgICB2aXJ0dWFsIFJlZlB0cjxXZWJEYXRlVGlt
ZVBpY2tlcj4gY3JlYXRlRGF0ZVRpbWVQaWNrZXIoV2ViUGFnZVByb3h5JikgPSAwOworI2VuZGlm
CisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2aXJ0dWFsIFJlZjxXZWJDb3JlOjpWYWxpZGF0
aW9uQnViYmxlPiBjcmVhdGVWYWxpZGF0aW9uQnViYmxlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZTo6U2V0dGluZ3MmKSA9IDA7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlja2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlja2VyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40YjhiZGM1YzU3ZGNkZjFlYjA4MjdlZTVkYTY0MzEwM2IwYjNmZDAzCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRGF0ZVRpbWVQaWNrZXIuY3BwCkBA
IC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViRGF0ZVRpbWVQaWNrZXIuaCIKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVU
X1RZUEVTKQorCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitXZWJEYXRlVGltZVBpY2tlcjo6V2ViRGF0ZVRpbWVQaWNrZXIoV2ViUGFnZVByb3h5JiBw
YWdlKQorICAgIDogbV9wYWdlKG1ha2VXZWFrUHRyKHBhZ2UpKQoreworfQorCitXZWJEYXRlVGlt
ZVBpY2tlcjo6fldlYkRhdGVUaW1lUGlja2VyKCkKK3sKK30KKwordm9pZCBXZWJEYXRlVGltZVBp
Y2tlcjo6ZW5kUGlja2VyKCkKK3sKKyAgICBpZiAoYXV0byBwYWdlID0gc3RkOjpleGNoYW5nZSht
X3BhZ2UsIG51bGxwdHIpKQorICAgICAgICBwYWdlLT5kaWRFbmREYXRlVGltZVBpY2tlcigpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9U
SU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
RGF0ZVRpbWVQaWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlj
a2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjk5ZmQ4ODMwNmVkZDhmZGY3YzVmMjdkOTNkMjJjYThiOWI5Yzc2
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGVUaW1l
UGlja2VyLmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1l
dGVyczsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKwor
Y2xhc3MgV2ViRGF0ZVRpbWVQaWNrZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJEYXRlVGltZVBp
Y2tlcj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXZWJEYXRlVGltZVBpY2tlcj4geworcHVibGlj
OgorICAgIHZpcnR1YWwgfldlYkRhdGVUaW1lUGlja2VyKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQg
ZW5kUGlja2VyKCk7CisgICAgdmlydHVhbCB2b2lkIHNob3dEYXRlVGltZVBpY2tlcihXZWJDb3Jl
OjpEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzJiYpID0gMDsKKworcHJvdGVjdGVkOgorICAgIGV4
cGxpY2l0IFdlYkRhdGVUaW1lUGlja2VyKFdlYlBhZ2VQcm94eSYpOworCisgICAgV2Vha1B0cjxX
ZWJQYWdlUHJveHk+IG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAwNzcwYjEzMWExMGNjNmQzOTQxM2NhODA1YjJh
MGUxNzM1ZDM4OGY3Li5mMDlhOTZiZDM1ZjQ4YTE0NmFlMWFiNjczYmNmYjE2MDRkMGVmMzY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTYxNzIsNiArNjE3
Miw0MyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU2VsZWN0T3B0aW9uKGNvbnN0IFN0cmluZyYg
c2VsZWN0ZWRPcHRpb24pCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5Q
VVRfVFlQRVMpCisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzaG93RGF0ZVRpbWVQaWNrZXIoV2ViQ29y
ZTo6RGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyYmIHBhcmFtcykKK3sKKyAgICBpZiAoIW1fZGF0
ZVRpbWVQaWNrZXIpCisgICAgICAgIG1fZGF0ZVRpbWVQaWNrZXIgPSBwYWdlQ2xpZW50KCkuY3Jl
YXRlRGF0ZVRpbWVQaWNrZXIoKnRoaXMpOworCisgICAgbV9kYXRlVGltZVBpY2tlci0+c2hvd0Rh
dGVUaW1lUGlja2VyKFdURk1vdmUocGFyYW1zKSk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5Ojpl
bmREYXRlVGltZVBpY2tlcigpCit7CisgICAgaWYgKCFtX2RhdGVUaW1lUGlja2VyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX2RhdGVUaW1lUGlja2VyLT5lbmRQaWNrZXIoKTsKK30KKwordm9p
ZCBXZWJQYWdlUHJveHk6OmRpZENob29zZURhdGUoY29uc3QgU3RyaW5nJiBkYXRlKQoreworICAg
IGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6RGlkQ2hvb3NlRGF0ZShkYXRlKSk7Cit9CisKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRFbmREYXRlVGltZVBpY2tlcigpCit7CisgICAgbV9kYXRlVGltZVBpY2tlciA9
IG51bGxwdHI7CisgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKQorICAgICAgICByZXR1cm47
CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRFbmREYXRlVGltZVBpY2tlcigpKTsK
K30KKworI2VuZGlmCisKIFdlYkluc3BlY3RvclByb3h5KiBXZWJQYWdlUHJveHk6Omluc3BlY3Rv
cigpIGNvbnN0CiB7CiAgICAgaWYgKGlzQ2xvc2VkKCkpCkBAIC05MzQzLDYgKzkzODAsMTAgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmNsb3NlT3ZlcmxheWVkVmlld3MoKQogI2lmIEVOQUJMRShJTlBV
VF9UWVBFX0NPTE9SKQogICAgIGVuZENvbG9yUGlja2VyKCk7CiAjZW5kaWYKKworI2lmIEVOQUJM
RShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorICAgIGVuZERhdGVUaW1lUGlja2VyKCk7Cisj
ZW5kaWYKIH0KIAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IDQwODY4ZmUxMTY4ZjViMWM4NWJlOTNlMjI0ZGUyNzlmNGY0
YWM2YTIuLjJkMzcwMzc5NDY3OTgyZWYxOTNhMzhkODNkYjIwZTRkNzliNjhhYzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC02MSw2ICs2MSw3IEBACiAjaW5jbHVk
ZSAiV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENv
ZGVycy5oIgogI2luY2x1ZGUgIldlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5oIgorI2lu
Y2x1ZGUgIldlYkRhdGVUaW1lUGlja2VyLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVQcm94eS5oIgog
I2luY2x1ZGUgIldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJQYWdl
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKQEAgLTI0Niw2ICsyNDcsNyBAQCBzdHJ1Y3QgQmFj
a0ZvcndhcmRJdGVtSWRlbnRpZmllcjsKIHN0cnVjdCBDb21wb3NpdGlvbkhpZ2hsaWdodDsKIHN0
cnVjdCBDb250ZW50UnVsZUxpc3RSZXN1bHRzOwogc3RydWN0IERhdGFMaXN0U3VnZ2VzdGlvbklu
Zm9ybWF0aW9uOworc3RydWN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnM7CiBzdHJ1Y3QgRGlj
dGlvbmFyeVBvcHVwSW5mbzsKIHN0cnVjdCBEcmFnSXRlbTsKIHN0cnVjdCBFbGVtZW50Q29udGV4
dDsKQEAgLTE2NDMsNiArMTY0NSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRDbG9zZVN1Z2dl
c3Rpb25zKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVT
KQorICAgIHZvaWQgZGlkQ2hvb3NlRGF0ZShjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGRpZEVu
ZERhdGVUaW1lUGlja2VyKCk7CisjZW5kaWYKKwogICAgIHZvaWQgdXBkYXRlQ3VycmVudE1vZGlm
aWVyU3RhdGUoKTsKIAogI2lmIEhBVkUoUEVOQ0lMS0lUKQpAQCAtMTk5NCw2ICsyMDAxLDExIEBA
IHByaXZhdGU6CiAgICAgdm9pZCBlbmREYXRhTGlzdFN1Z2dlc3Rpb25zKCk7CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorICAgIHZvaWQgc2hvd0RhdGVU
aW1lUGlja2VyKFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMmJik7CisgICAgdm9p
ZCBlbmREYXRlVGltZVBpY2tlcigpOworI2VuZGlmCisKICAgICB2b2lkIGNsb3NlT3ZlcmxheWVk
Vmlld3MoKTsKIAogICAgIHZvaWQgY29tcG9zaXRpb25XYXNDYW5jZWxlZCgpOwpAQCAtMjU5Nyw2
ICsyNjA5LDkgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKICAgICBS
ZWZQdHI8V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duPiBtX2RhdGFMaXN0U3VnZ2VzdGlv
bnNEcm9wZG93bjsKICNlbmRpZgorI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVT
KQorICAgIFJlZlB0cjxXZWJEYXRlVGltZVBpY2tlcj4gbV9kYXRlVGltZVBpY2tlcjsKKyNlbmRp
ZgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJlZlB0cjxXZWJDb3JlOjpWYWxpZGF0aW9uQnVi
YmxlPiBtX3ZhbGlkYXRpb25CdWJibGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBkYzFlYzg3ZDgwYzRhZGI4ZWJi
ZDM5Zjk5MzRmYjgyN2E2MmY5MDI4Li41NjA3NmIzNDhmNzJiZTg3MzIzZDJlMTdkM2EwY2U0ZDdl
MDRmM2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluCkBAIC05OCw2ICs5OCwxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewog
ICAgIEVuZERhdGFMaXN0U3VnZ2VzdGlvbnMoKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVf
QU5EX1RJTUVfSU5QVVRfVFlQRVMpCisgICAgU2hvd0RhdGVUaW1lUGlja2VyKHN0cnVjdCBXZWJD
b3JlOjpEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzIHBhcmFtcyk7CisgICAgRW5kRGF0ZVRpbWVQ
aWNrZXIoKTsKKyNlbmRpZgorCiAgICAgIyBQb2xpY3kgbWVzc2FnZXMKICAgICBEZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdl
YktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBTdHJpbmcgZG93bmxvYWRBdHRyaWJ1dGUsIHVp
bnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9u
QWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1l
SW5mb0RhdGEsIE9wdGlvbmFsPFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2lu
YXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJl
cXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdl
YktpdDo6VXNlckRhdGEgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDc2MWVlZjg5
YTNhN2IzZDY1MjJjNjZlYmQ0YTE2YzZmZTNlYmYzODkuLjc0MzI1MzZmNzAzYTUxZGU5ZTU2MTU4
NDYzNzY5NjgzY2I5NGQ3NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oCkBAIC0xMjQsNiArMTI0LDEwIEBAIHByaXZhdGU6CiAgICAgUmVm
UHRyPFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bj4gY3JlYXRlRGF0YUxpc3RTdWdnZXN0
aW9uc0Ryb3Bkb3duKFdlYlBhZ2VQcm94eSYpIGZpbmFsOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
REFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKyAgICBSZWZQdHI8V2ViRGF0ZVRpbWVQaWNrZXI+
IGNyZWF0ZURhdGVUaW1lUGlja2VyKFdlYlBhZ2VQcm94eSYpIGZpbmFsOworI2VuZGlmCisKICAg
ICB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+LCBXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpIG92ZXJyaWRlOwogICAgIHZvaWQgY2xl
YXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmlt
YXRpb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dy
ZXNzKGZsb2F0KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCA5NjEzMTIyNmU2YTE2MjNhNDJkMzg1OGZjY2E4NTUx
MWRlYTA1NjJiLi4wNzYwNTRmYjcxZDk4ODc4NzlhZjk1MDdkZmQ5NjM0NjljOWFjYzUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBA
IC04NTgsNiArODU4LDEzIEBAIFJlZlB0cjxXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24+
IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVEYXRhTGlzdFN1Z2dlc3Rpb25zCiB9CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorUmVmUHRyPFdlYkRhdGVUaW1l
UGlja2VyPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRGF0ZVRpbWVQaWNrZXIoV2ViUGFnZVByb3h5
JikKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKERBVEFf
SU5URVJBQ1RJT04pCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3JtRHJhZ09wZXJhdGlv
bihib29sIGhhbmRsZWQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGxNYWMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbE1hYy5oCmluZGV4IDViMGQzMTcwMjAzNmI2ZjJjZGE3NzI2YjY5MzcyZDlhZWU4
Mjg1MmMuLmQxNzFjN2FiNWFiMzI3MjgxY2QyMDYwMzUyNGQxODFhZTU0ZTMxZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCkBAIC0xNDMs
NiArMTQzLDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNE
cm9wZG93bj4gY3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duKFdlYlBhZ2VQcm94eSYp
IG92ZXJyaWRlOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBF
UykKKyAgICBSZWZQdHI8V2ViRGF0ZVRpbWVQaWNrZXI+IGNyZWF0ZURhdGVUaW1lUGlja2VyKFdl
YlBhZ2VQcm94eSYpIG92ZXJyaWRlOworI2VuZGlmCisKICAgICBSZWY8V2ViQ29yZTo6VmFsaWRh
dGlvbkJ1YmJsZT4gY3JlYXRlVmFsaWRhdGlvbkJ1YmJsZShjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGU6OlNldHRpbmdzJikgZmluYWw7CiAKICAg
ICB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+LCBXZWJD
b3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IDM3MGIyZmM1
NTYzYmRhMGYxZTdmYWMzNTExMWVmN2IzNjUzOTAwMjAuLjc4OGE2NDkxYTgxZjFjOTg3YzdhYzFm
NjRjMjFmNzcyNmM1ZjM5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9QYWdlQ2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
UGFnZUNsaWVudEltcGxNYWMubW0KQEAgLTUyLDYgKzUyLDcgQEAKICNpbXBvcnQgIldlYkNvbG9y
UGlja2VyTWFjLmgiCiAjaW1wb3J0ICJXZWJDb250ZXh0TWVudVByb3h5TWFjLmgiCiAjaW1wb3J0
ICJXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMuaCIKKyNpbXBvcnQgIldlYkRhdGVU
aW1lUGlja2VyTWFjLmgiCiAjaW1wb3J0ICJXZWJFZGl0Q29tbWFuZFByb3h5LmgiCiAjaW1wb3J0
ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgIldlYlBvcHVwTWVudVByb3h5TWFjLmgiCkBAIC00
NzYsNiArNDc3LDEzIEBAIFJlZlB0cjxXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24+IFBh
Z2VDbGllbnRJbXBsOjpjcmVhdGVEYXRhTGlzdFN1Z2dlc3Rpb25zCiB9CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorUmVmUHRyPFdlYkRhdGVUaW1lUGlj
a2VyPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRGF0ZVRpbWVQaWNrZXIoV2ViUGFnZVByb3h5JiBw
YWdlKQoreworICAgIHJldHVybiBXZWJEYXRlVGltZVBpY2tlck1hYzo6Y3JlYXRlKHBhZ2UsIG1f
dmlldyk7Cit9CisjZW5kaWYKKwogUmVmPFZhbGlkYXRpb25CdWJibGU+IFBhZ2VDbGllbnRJbXBs
OjpjcmVhdGVWYWxpZGF0aW9uQnViYmxlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgVmFs
aWRhdGlvbkJ1YmJsZTo6U2V0dGluZ3MmIHNldHRpbmdzKQogewogICAgIHJldHVybiBWYWxpZGF0
aW9uQnViYmxlOjpjcmVhdGUobV92aWV3LCBtZXNzYWdlLCBzZXR0aW5ncyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViRGF0ZVRpbWVQaWNrZXJNYWMuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJEYXRlVGltZVBpY2tlck1hYy5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjI5MzM4NmVjOTJiYzFkZjUwOTBhMTViOGMzYzc2Nzc2ZDNhMjM1Y2MKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViRGF0ZVRpbWVQaWNrZXJNYWMu
aApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykgJiYgVVNFKEFQUEtJVCkKKworI2ltcG9ydCAi
V2ViRGF0ZVRpbWVQaWNrZXIuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRGF0ZVRpbWVDaG9vc2VyUGFy
YW1ldGVycy5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitPQkpDX0NMQVNTIFdLRGF0
ZVRpbWVQaWNrZXI7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJEYXRlVGltZVBp
Y2tlck1hYyBmaW5hbCA6IHB1YmxpYyBXZWJEYXRlVGltZVBpY2tlciB7CitwdWJsaWM6CisgICAg
c3RhdGljIFJlZjxXZWJEYXRlVGltZVBpY2tlck1hYz4gY3JlYXRlKFdlYlBhZ2VQcm94eSYsIE5T
VmlldyAqKTsKKyAgICB+V2ViRGF0ZVRpbWVQaWNrZXJNYWMoKTsKKworICAgIHZvaWQgZGlkQ2hv
b3NlRGF0ZShjb25zdCBTdHJpbmcmKTsKKworICAgIHZvaWQgZW5kUGlja2VyKCkgZmluYWw7Cisg
ICAgdm9pZCBzaG93RGF0ZVRpbWVQaWNrZXIoV2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyUGFyYW1l
dGVycyYmKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBXZWJEYXRlVGltZVBpY2tlck1hYyhXZWJQ
YWdlUHJveHkmLCBOU1ZpZXcgKik7CisKKyAgICBOU1ZpZXcgKm1fdmlldzsKKyAgICBSZXRhaW5Q
dHI8V0tEYXRlVGltZVBpY2tlcj4gbV9waWNrZXI7CisgICAgV2ViQ29yZTo6RGF0ZVRpbWVDaG9v
c2VyUGFyYW1ldGVycyBtX3BhcmFtczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpICYmIFVTRShBUFBLSVQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViRGF0ZVRpbWVQaWNr
ZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViRGF0ZVRpbWVQaWNrZXJN
YWMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjg2ZWFiM2E5YTM3OWViZWY3NDczZDExNDZhZWNhZTExMWQ1NGU3
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJEYXRl
VGltZVBpY2tlck1hYy5tbQpAQCAtMCwwICsxLDIzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJEYXRlVGltZVBpY2tlck1hYy5oIgorCisjaWYgRU5B
QkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpICYmIFVTRShBUFBLSVQpCisKKyNpbXBvcnQg
IkFwcEtpdFNQSS5oIgorI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCisKK2NvbnN0ZXhwciBDR0Zs
b2F0IGtDYWxlbmRhcldpZHRoID0gMTM5OworY29uc3RleHByIENHRmxvYXQga0NhbGVuZGFySGVp
Z2h0ID0gMTQ4Oworc3RhdGljIE5TU3RyaW5nICogY29uc3Qga0RhdGVGb3JtYXRTdHJpbmcgPSBA
Inl5eXktTU0tZGQiOworc3RhdGljIE5TU3RyaW5nICogY29uc3Qga0RhdGVUaW1lRm9ybWF0U3Ry
aW5nID0gQCJ5eXl5LU1NLWRkJ1QnSEg6bW0iOworc3RhdGljIE5TU3RyaW5nICogY29uc3Qga0Rl
ZmF1bHRMb2NhbGVJZGVudGlmaWVyID0gQCJlbl9VU19QT1NJWCI7CisKK0BpbnRlcmZhY2UgV0tE
YXRlVGltZVBpY2tlciA6IE5TT2JqZWN0CisKKy0gKGlkKWluaXRXaXRoUGFyYW1zOihXZWJDb3Jl
OjpEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzJiYpcGFyYW1zIGluVmlldzooTlNWaWV3ICopdmll
dzsKKy0gKHZvaWQpc2hvd1BpY2tlcjooV2ViS2l0OjpXZWJEYXRlVGltZVBpY2tlck1hYyYpcGlj
a2VyOworLSAodm9pZClpbnZhbGlkYXRlOworCitAZW5kCisKK0BpbnRlcmZhY2UgV0tEYXRlVGlt
ZVBpY2tlcldpbmRvdyA6IE5TV2luZG93CitAZW5kCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitS
ZWY8V2ViRGF0ZVRpbWVQaWNrZXJNYWM+IFdlYkRhdGVUaW1lUGlja2VyTWFjOjpjcmVhdGUoV2Vi
UGFnZVByb3h5JiBwYWdlLCBOU1ZpZXcgKnZpZXcpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgV2ViRGF0ZVRpbWVQaWNrZXJNYWMocGFnZSwgdmlldykpOworfQorCitXZWJEYXRlVGltZVBp
Y2tlck1hYzo6fldlYkRhdGVUaW1lUGlja2VyTWFjKCkKK3sKKyAgICBpZiAobV9waWNrZXIpIHsK
KyAgICAgICAgW21fcGlja2VyIGludmFsaWRhdGVdOworICAgICAgICBtX3BpY2tlciA9IG5pbDsK
KyAgICB9Cit9CisKK1dlYkRhdGVUaW1lUGlja2VyTWFjOjpXZWJEYXRlVGltZVBpY2tlck1hYyhX
ZWJQYWdlUHJveHkmIHBhZ2UsIE5TVmlldyAqdmlldykKKyAgICA6IFdlYkRhdGVUaW1lUGlja2Vy
KHBhZ2UpCisgICAgLCBtX3ZpZXcodmlldykKK3sKK30KKwordm9pZCBXZWJEYXRlVGltZVBpY2tl
ck1hYzo6ZW5kUGlja2VyKCkKK3sKKyAgICBbbV9waWNrZXIgaW52YWxpZGF0ZV07CisgICAgbV9w
aWNrZXIgPSBuaWw7CisgICAgV2ViRGF0ZVRpbWVQaWNrZXI6OmVuZFBpY2tlcigpOworfQorCit2
b2lkIFdlYkRhdGVUaW1lUGlja2VyTWFjOjpzaG93RGF0ZVRpbWVQaWNrZXIoV2ViQ29yZTo6RGF0
ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyYmIHBhcmFtcykKK3sKKyAgICBpZiAobV9waWNrZXIpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fcGlja2VyID0gYWRvcHROUyhbW1dLRGF0ZVRpbWVQaWNr
ZXIgYWxsb2NdIGluaXRXaXRoUGFyYW1zOldURk1vdmUocGFyYW1zKSBpblZpZXc6bV92aWV3XSk7
CisgICAgW21fcGlja2VyIHNob3dQaWNrZXI6KnRoaXNdOworfQorCit2b2lkIFdlYkRhdGVUaW1l
UGlja2VyTWFjOjpkaWRDaG9vc2VEYXRlKGNvbnN0IFN0cmluZyYgZGF0ZSkKK3sKKyAgICBpZiAo
IW1fcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wYWdlLT5kaWRDaG9vc2VEYXRlKGRh
dGUpOworICAgIGVuZFBpY2tlcigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworLy8g
VE9ETzogU2hhcmUgdGhpcyBpbXBsZW1lbnRhdGlvbiB3aXRoIFdLRGF0YUxpc3RTdWdnZXN0aW9u
V2luZG93LgorQGltcGxlbWVudGF0aW9uIFdLRGF0ZVRpbWVQaWNrZXJXaW5kb3cgeworICAgIFJl
dGFpblB0cjxOU1Zpc3VhbEVmZmVjdFZpZXc+IF9iYWNrZHJvcFZpZXc7Cit9CisKKy0gKGlkKWlu
aXRXaXRoQ29udGVudFJlY3Q6KE5TUmVjdCljb250ZW50UmVjdCBzdHlsZU1hc2s6KE5TVUludGVn
ZXIpc3R5bGVNYXNrIGJhY2tpbmc6KE5TQmFja2luZ1N0b3JlVHlwZSliYWNraW5nU3RvcmVUeXBl
IGRlZmVyOihCT09MKWRlZmVyCit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aENvbnRlbnRS
ZWN0OmNvbnRlbnRSZWN0IHN0eWxlTWFzazpzdHlsZU1hc2sgYmFja2luZzpiYWNraW5nU3RvcmVU
eXBlIGRlZmVyOmRlZmVyXTsKKyAgICBpZiAoIXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CisK
KyAgICBzZWxmLmhhc1NoYWRvdyA9IFlFUzsKKyAgICBzZWxmLnJlbGVhc2VkV2hlbkNsb3NlZCA9
IE5POworICAgIHNlbGYudGl0bGVWaXNpYmlsaXR5ID0gTlNXaW5kb3dUaXRsZUhpZGRlbjsKKyAg
ICBzZWxmLnRpdGxlYmFyQXBwZWFyc1RyYW5zcGFyZW50ID0gWUVTOworICAgIHNlbGYubW92YWJs
ZSA9IE5POworICAgIHNlbGYuYmFja2dyb3VuZENvbG9yID0gW05TQ29sb3IgY2xlYXJDb2xvcl07
CisgICAgc2VsZi5vcGFxdWUgPSBOTzsKKworICAgIF9iYWNrZHJvcFZpZXcgPSBbW05TVmlzdWFs
RWZmZWN0VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpjb250ZW50UmVjdF07CisgICAgW19iYWNr
ZHJvcFZpZXcgc2V0QXV0b3Jlc2l6aW5nTWFzazpOU1ZpZXdXaWR0aFNpemFibGUgfCBOU1ZpZXdI
ZWlnaHRTaXphYmxlXTsKKyAgICBbX2JhY2tkcm9wVmlldyBzZXRNYXRlcmlhbDpOU1Zpc3VhbEVm
ZmVjdE1hdGVyaWFsTWVudV07CisgICAgW19iYWNrZHJvcFZpZXcgc2V0U3RhdGU6TlNWaXN1YWxF
ZmZlY3RTdGF0ZUFjdGl2ZV07CisgICAgW19iYWNrZHJvcFZpZXcgc2V0QmxlbmRpbmdNb2RlOk5T
VmlzdWFsRWZmZWN0QmxlbmRpbmdNb2RlQmVoaW5kV2luZG93XTsKKworICAgIFtzZWxmIHNldENv
bnRlbnRWaWV3Ol9iYWNrZHJvcFZpZXcuZ2V0KCldOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisK
Ky0gKEJPT0wpY2FuQmVjb21lS2V5V2luZG93Cit7CisgICAgcmV0dXJuIE5POworfQorCistIChC
T09MKWhhc0tleUFwcGVhcmFuY2UKK3sKKyAgICByZXR1cm4gWUVTOworfQorCistIChOU1dpbmRv
d1NoYWRvd09wdGlvbnMpc2hhZG93T3B0aW9ucworeworICAgIHJldHVybiBOU1dpbmRvd1NoYWRv
d1NlY29uZGFyeVdpbmRvdzsKK30KKworQGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tEYXRlVGlt
ZVBpY2tlciB7CisgICAgV2Vha1B0cjxXZWJLaXQ6OldlYkRhdGVUaW1lUGlja2VyTWFjPiBfcGlj
a2VyOworICAgIFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMgX3BhcmFtczsKKyAg
ICBOU1ZpZXcgKl9wcmVzZW50aW5nVmlldzsKKworICAgIFJldGFpblB0cjxXS0RhdGVUaW1lUGlj
a2VyV2luZG93PiBfZW5jbG9zaW5nV2luZG93OworICAgIFJldGFpblB0cjxOU0RhdGVQaWNrZXI+
IF9kYXRlUGlja2VyOworICAgIFJldGFpblB0cjxOU0RhdGVGb3JtYXR0ZXI+IF9kYXRlRm9ybWF0
dGVyOworfQorCistIChpZClpbml0V2l0aFBhcmFtczooV2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2Vy
UGFyYW1ldGVycyYmKXBhcmFtcyBpblZpZXc6KE5TVmlldyAqKXZpZXcKK3sKKyAgICBpZiAoIShz
ZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIHNlbGY7CisKKyAgICBfcHJlc2Vu
dGluZ1ZpZXcgPSB2aWV3OworICAgIF9wYXJhbXMgPSBXVEZNb3ZlKHBhcmFtcyk7CisKKyAgICBO
U1JlY3Qgd2luZG93UmVjdCA9IFtbX3ByZXNlbnRpbmdWaWV3IHdpbmRvd10gY29udmVydFJlY3RU
b1NjcmVlbjpbX3ByZXNlbnRpbmdWaWV3IGNvbnZlcnRSZWN0OnBhcmFtcy5hbmNob3JSZWN0SW5S
b290VmlldyB0b1ZpZXc6bmlsXV07CisgICAgd2luZG93UmVjdC5vcmlnaW4ueSA9IE5TTWluWSh3
aW5kb3dSZWN0KSAtIGtDYWxlbmRhckhlaWdodDsKKyAgICB3aW5kb3dSZWN0LnNpemUud2lkdGgg
PSBrQ2FsZW5kYXJXaWR0aDsKKyAgICB3aW5kb3dSZWN0LnNpemUuaGVpZ2h0ID0ga0NhbGVuZGFy
SGVpZ2h0OworCisgICAgX2VuY2xvc2luZ1dpbmRvdyA9IGFkb3B0TlMoW1tXS0RhdGVUaW1lUGlj
a2VyV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TWmVyb1JlY3Qgc3R5bGVNYXNr
OihOU1dpbmRvd1N0eWxlTWFza1RpdGxlZCB8IE5TV2luZG93U3R5bGVNYXNrRnVsbFNpemVDb250
ZW50VmlldykgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7CisgICAg
W19lbmNsb3NpbmdXaW5kb3cgc2V0RnJhbWU6d2luZG93UmVjdCBkaXNwbGF5OllFU107CisKKyAg
ICBfZGF0ZVBpY2tlciA9IGFkb3B0TlMoW1tOU0RhdGVQaWNrZXIgYWxsb2NdIGluaXRXaXRoRnJh
bWU6W19lbmNsb3NpbmdXaW5kb3cgY29udGVudFZpZXddLmJvdW5kc10pOworICAgIFtfZGF0ZVBp
Y2tlciBzZXREYXRlUGlja2VyU3R5bGU6TlNEYXRlUGlja2VyU3R5bGVDbG9ja0FuZENhbGVuZGFy
XTsKKyAgICBbX2RhdGVQaWNrZXIgc2V0RGF0ZVBpY2tlckVsZW1lbnRzOk5TRGF0ZVBpY2tlckVs
ZW1lbnRGbGFnWWVhck1vbnRoRGF5XTsKKyAgICBbX2RhdGVQaWNrZXIgc2V0VGFyZ2V0OnNlbGZd
OworICAgIFtfZGF0ZVBpY2tlciBzZXRBY3Rpb246QHNlbGVjdG9yKGRpZENob29zZURhdGU6KV07
CisKKyAgICBSZXRhaW5QdHI8TlNMb2NhbGU+IGVuZ2xpc2hMb2NhbGUgPSBhZG9wdE5TKFtbTlNM
b2NhbGUgYWxsb2NdIGluaXRXaXRoTG9jYWxlSWRlbnRpZmllcjprRGVmYXVsdExvY2FsZUlkZW50
aWZpZXJdKTsKKyAgICBfZGF0ZUZvcm1hdHRlciA9IGFkb3B0TlMoW1tOU0RhdGVGb3JtYXR0ZXIg
YWxsb2NdIGluaXRdKTsKKyAgICBbX2RhdGVGb3JtYXR0ZXIgc2V0RGF0ZUZvcm1hdDpbc2VsZiBk
YXRlRm9ybWF0U3RyaW5nRm9yVHlwZTpfcGFyYW1zLnR5cGVdXTsKKyAgICBbX2RhdGVGb3JtYXR0
ZXIgc2V0TG9jYWxlOmVuZ2xpc2hMb2NhbGUuZ2V0KCldOworCisgICAgTlNTdHJpbmcgKmN1cnJl
bnREYXRlVmFsdWVTdHJpbmcgPSBfcGFyYW1zLmN1cnJlbnRWYWx1ZTsKKyAgICBpZiAoIVtjdXJy
ZW50RGF0ZVZhbHVlU3RyaW5nIGxlbmd0aF0pCisgICAgICAgIFtfZGF0ZVBpY2tlciBzZXREYXRl
VmFsdWU6W05TRGF0ZSBkYXRlXV07CisgICAgZWxzZQorICAgICAgICBbX2RhdGVQaWNrZXIgc2V0
RGF0ZVZhbHVlOltfZGF0ZUZvcm1hdHRlciBkYXRlRnJvbVN0cmluZzpjdXJyZW50RGF0ZVZhbHVl
U3RyaW5nXV07CisKKyAgICBbX2RhdGVQaWNrZXIgc2V0TWluRGF0ZTpbTlNEYXRlIGRhdGVXaXRo
VGltZUludGVydmFsU2luY2UxOTcwOl9wYXJhbXMubWluaW11bSAvIDEwMDAuMF1dOworICAgIFtf
ZGF0ZVBpY2tlciBzZXRNYXhEYXRlOltOU0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZTE5
NzA6X3BhcmFtcy5tYXhpbXVtIC8gMTAwMC4wXV07CisKKyAgICByZXR1cm4gc2VsZjsKK30KKwor
LSAodm9pZClzaG93UGlja2VyOihXZWJLaXQ6OldlYkRhdGVUaW1lUGlja2VyTWFjJilwaWNrZXIK
K3sKKyAgICBfcGlja2VyID0gbWFrZVdlYWtQdHIocGlja2VyKTsKKworICAgIFtbX2VuY2xvc2lu
Z1dpbmRvdyBjb250ZW50Vmlld10gYWRkU3VidmlldzpfZGF0ZVBpY2tlci5nZXQoKV07CisgICAg
W1tfcHJlc2VudGluZ1ZpZXcgd2luZG93XSBhZGRDaGlsZFdpbmRvdzpfZW5jbG9zaW5nV2luZG93
LmdldCgpIG9yZGVyZWQ6TlNXaW5kb3dBYm92ZV07Cit9CisKKy0gKHZvaWQpaW52YWxpZGF0ZQor
eworICAgIFtfZGF0ZVBpY2tlciByZW1vdmVGcm9tU3VwZXJ2aWV3V2l0aG91dE5lZWRpbmdEaXNw
bGF5XTsKKyAgICBbX2RhdGVQaWNrZXIgc2V0VGFyZ2V0Om5pbF07CisgICAgW19kYXRlUGlja2Vy
IHNldEFjdGlvbjpuaWxdOworICAgIF9kYXRlUGlja2VyID0gbmlsOworCisgICAgX2RhdGVGb3Jt
YXR0ZXIgPSBuaWw7CisKKyAgICBbW19wcmVzZW50aW5nVmlldyB3aW5kb3ddIHJlbW92ZUNoaWxk
V2luZG93Ol9lbmNsb3NpbmdXaW5kb3cuZ2V0KCldOworICAgIFtfZW5jbG9zaW5nV2luZG93IGNs
b3NlXTsKKyAgICBfZW5jbG9zaW5nV2luZG93ID0gbmlsOworfQorCistICh2b2lkKWRpZENob29z
ZURhdGU6KGlkKXNlbmRlcgoreworICAgIGlmIChzZW5kZXIgIT0gX2RhdGVQaWNrZXIpCisgICAg
ICAgIHJldHVybjsKKworICAgIE5TU3RyaW5nICpkYXRlU3RyaW5nID0gW19kYXRlRm9ybWF0dGVy
IHN0cmluZ0Zyb21EYXRlOltfZGF0ZVBpY2tlciBkYXRlVmFsdWVdXTsKKyAgICBfcGlja2VyLT5k
aWRDaG9vc2VEYXRlKGRhdGVTdHJpbmcpOworfQorCistIChOU1N0cmluZyAqKWRhdGVGb3JtYXRT
dHJpbmdGb3JUeXBlOihOU1N0cmluZyAqKXR5cGUKK3sKKyAgICBpZiAoW3R5cGUgaXNFcXVhbFRv
U3RyaW5nOkAiZGF0ZXRpbWUtbG9jYWwiXSkKKyAgICAgICAgcmV0dXJuIGtEYXRlVGltZUZvcm1h
dFN0cmluZzsKKworICAgIHJldHVybiBrRGF0ZUZvcm1hdFN0cmluZzsKK30KKworQGVuZAorCisj
ZW5kaWYgLy8gRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpICYmIFVTRShBUFBLSVQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBmZTgzYzQyNTJiYmM2MDdlMTY4MjNjOGQ0Y2FiMWE1MGMwZTExZDc3Li43YTUyM2VjNWIxNGRh
MmI2NDE2ZGZhMWI1YWQ1NjA1Y2E0NWZlODdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE4MjksNiArMTgyOSw5IEBACiAJCUU0RTg2
NDkzMUIxNjc1MDcwMEM4MkY0MCAvKiBWZXJzaW9uQ2hlY2tzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEU4NjQ4RTFCMTY3M0ZCMDBDODJGNDAgLyog
VmVyc2lvbkNoZWNrcy5oICovOyB9OwogCQlFNTJDRjU1MjIwQTM1QzNBMDBEQURBMjcgLyogV2Vi
RGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNTJDRjU1MDIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RT
dWdnZXN0aW9uUGlja2VyLmggKi87IH07CiAJCUU1NDhFQkQxMjEwMTVGMEUwMEJFM0MzMiAvKiBX
S0Zvcm1Db2xvclBpY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTU0OEVCQ0YyMTAxNUYwRTAwQkUzQzMyIC8qIFdLRm9ybUNvbG9yUGlja2VyLmgg
Ki87IH07CisJCUU1NUNEMUY1MjRDRjc0N0QwMDQyREI5QyAvKiBXZWJEYXRlVGltZUNob29zZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1NUNEMUYz
MjRDRjc0N0QwMDQyREI5QyAvKiBXZWJEYXRlVGltZUNob29zZXIuaCAqLzsgfTsKKwkJRTU1Q0Qy
MDAyNEQwOEQ4RjAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lUGlja2VyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTVDRDFGQzI0RDA4ODBCMDA0MkRCOUMg
LyogV2ViRGF0ZVRpbWVQaWNrZXIuaCAqLzsgfTsKKwkJRTU1Q0QyMDMyNEQwOUYxRjAwNDJEQjlD
IC8qIFdlYkRhdGVUaW1lUGlja2VyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNTVDRDIwMTI0RDA5RjFGMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQ
aWNrZXJNYWMuaCAqLzsgfTsKIAkJRTU2OEI5MUYyMEEzQUIyRjAwRTNDODU2IC8qIFdlYkRhdGFM
aXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTU2OEI5MUUyMEEzQUIyRjAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3Vn
Z2VzdGlvbnNEcm9wZG93bi5oICovOyB9OwogCQlFNTY4QjkyMjIwQTNBQzZBMDBFM0M4NTYgLyog
V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTY4QjkyMDIwQTNBQzZBMDBFM0M4NTYgLyogV2Vi
RGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLmggKi87IH07CiAJCUU1QkVGNjgyMjEzMEM0
ODAwMEYzMTExMSAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1QkVGNjgwMjEzMEM0N0Yw
MEYzMTExMSAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MuaCAqLzsgfTsKQEAg
LTUzNTIsNiArNTM1NSwxMiBAQAogCQlFNTQ4RUJDRjIxMDE1RjBFMDBCRTNDMzIgLyogV0tGb3Jt
Q29sb3JQaWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tGb3JtQ29sb3JQaWNrZXIuaDsgcGF0aCA9
IGlvcy9mb3Jtcy9XS0Zvcm1Db2xvclBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFNTQ4RUJEMDIxMDE1RjBFMDBCRTNDMzIgLyogV0tGb3JtQ29sb3JQaWNrZXIubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IG5hbWUgPSBXS0Zvcm1Db2xvclBpY2tlci5tbTsgcGF0aCA9IGlvcy9mb3Jt
cy9XS0Zvcm1Db2xvclBpY2tlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTU0
QTE0Q0UyMEZDRkI3QjAwN0UxM0Q4IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNTVDRDFGMzI0Q0Y3NDdEMDA0MkRCOUMg
LyogV2ViRGF0ZVRpbWVDaG9vc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhdGVUaW1lQ2hvb3Nl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNTVDRDFGNDI0Q0Y3NDdEMDA0MkRC
OUMgLyogV2ViRGF0ZVRpbWVDaG9vc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkRhdGVU
aW1lQ2hvb3Nlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1NUNEMUZDMjRE
MDg4MEIwMDQyREI5QyAvKiBXZWJEYXRlVGltZVBpY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJE
YXRlVGltZVBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNTVDRDFGRDI0
RDA4ODBCMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViRGF0ZVRpbWVQaWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
NTVDRDIwMTI0RDA5RjFGMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNrZXJNYWMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViRGF0ZVRpbWVQaWNrZXJNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTU1Q0QyMDIyNEQwOUYxRjAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lUGlja2VyTWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRGF0ZVRpbWVQaWNrZXJNYWMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1NjhCOTFFMjBBM0FCMkYwMEUzQzg1NiAvKiBXZWJEYXRh
TGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGF0YUxpc3RTdWdn
ZXN0aW9uc0Ryb3Bkb3duLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1NjhCOTIw
MjBBM0FDNkEwMEUzQzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1NjhCOTIxMjBBM0FDNkEwMEUzQzg1NiAvKiBXZWJE
YXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdl
YkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTg4MjYsNiArODgzNSw4IEBACiAJCQkJQkMwMzJENjIxMEY0Mzc4RDAwNThDMTVB
IC8qIFdlYkNvbnRleHRNZW51Q2xpZW50LmggKi8sCiAJCQkJRTUyQ0Y1NTEyMEEzNUMzQTAwREFE
QTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHAgKi8sCiAJCQkJRTUyQ0Y1NTAy
MEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oICovLAorCQkJ
CUU1NUNEMUY0MjRDRjc0N0QwMDQyREI5QyAvKiBXZWJEYXRlVGltZUNob29zZXIuY3BwICovLAor
CQkJCUU1NUNEMUYzMjRDRjc0N0QwMDQyREI5QyAvKiBXZWJEYXRlVGltZUNob29zZXIuaCAqLywK
IAkJCQlDRDE5QTI2OTFBMTNFODIwMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuY3BwICovLAogCQkJCUNEMTlBMjZBMUExM0U4MjEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oICovLAogCQkJCUJDMTExQTU2MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJE
cmFnQ2xpZW50LmNwcCAqLywKQEAgLTkwNDIsNiArOTA1Myw4IEBACiAJCQkJMzNBQTEwNjUxMzFG
MDYwMDAwRDRBNTc1IC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eUNsaWVudC5oICovLAogCQkJCUU1
NEExNENFMjBGQ0ZCN0IwMDdFMTNEOCAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24u
Y3BwICovLAogCQkJCUU1NjhCOTFFMjBBM0FCMkYwMEUzQzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dl
c3Rpb25zRHJvcGRvd24uaCAqLywKKwkJCQlFNTVDRDFGRDI0RDA4ODBCMDA0MkRCOUMgLyogV2Vi
RGF0ZVRpbWVQaWNrZXIuY3BwICovLAorCQkJCUU1NUNEMUZDMjREMDg4MEIwMDQyREI5QyAvKiBX
ZWJEYXRlVGltZVBpY2tlci5oICovLAogCQkJCUJDQTBFRjlFMTIzMzI2NDIwMDdEM0NGQiAvKiBX
ZWJFZGl0Q29tbWFuZFByb3h5LmNwcCAqLywKIAkJCQlCQ0EwRUY5RDEyMzMyNjQyMDA3RDNDRkIg
LyogV2ViRWRpdENvbW1hbmRQcm94eS5oICovLAogCQkJCUJDRTQ2OTRGMTIxNEU2Q0IwMDBCOThF
QiAvKiBXZWJGb3JtQ2xpZW50LmNwcCAqLywKQEAgLTk4MzgsNiArOTg1MSw4IEBACiAJCQkJRjZE
NjMyQkExMzNEMTgxQjAwNzQzRDc3IC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eU1hYy5tbSAqLywK
IAkJCQlFNTY4QjkyMDIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ry
b3Bkb3duTWFjLmggKi8sCiAJCQkJRTU2OEI5MjEyMEEzQUM2QTAwRTNDODU2IC8qIFdlYkRhdGFM
aXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5tbSAqLywKKwkJCQlFNTVDRDIwMTI0RDA5RjFGMDA0
MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNrZXJNYWMuaCAqLywKKwkJCQlFNTVDRDIwMjI0RDA5RjFG
MDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNrZXJNYWMubW0gKi8sCiAJCQkJQkM4NTdFODUxMkI3
MUVCQjAwRURFQjJFIC8qIFdlYlBhZ2VQcm94eU1hYy5tbSAqLywKIAkJCQlCQzU3NTA5NTEyNjhG
M0M2MDA2RjBGMTIgLyogV2ViUG9wdXBNZW51UHJveHlNYWMuaCAqLywKIAkJCQlCQzU3NTA5NjEy
NjhGM0M2MDA2RjBGMTIgLyogV2ViUG9wdXBNZW51UHJveHlNYWMubW0gKi8sCkBAIC0xMTI2OCw2
ICsxMTI4Myw5IEBACiAJCQkJRTU2OEI5MUYyMEEzQUIyRjAwRTNDODU2IC8qIFdlYkRhdGFMaXN0
U3VnZ2VzdGlvbnNEcm9wZG93bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTVCRUY2ODIyMTMwQzQ4
MDAwRjMxMTExIC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTU2OEI5MjIyMEEzQUM2QTAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2Vz
dGlvbnNEcm9wZG93bk1hYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTU1Q0QxRjUyNENGNzQ3RDAw
NDJEQjlDIC8qIFdlYkRhdGVUaW1lQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTU1Q0Qy
MDAyNEQwOEQ4RjAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lUGlja2VyLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFNTVDRDIwMzI0RDA5RjFGMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNrZXJNYWMuaCBp
biBIZWFkZXJzICovLAogCQkJCTQ2QjA1MjQ3MjI2NjhEODUwMDI2NUI5NyAvKiBXZWJEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUzOTYyOEREMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzg2NkIwQTIzOTlBMkQ5MDBGODhGRTkgLyog
V2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggZWZjMDAzYmQwMTU5MTAwMDgyZGUzY2VmMWY2
MDlmYTUyMjUxY2E1YS4uY2U1NGZmZjU0MjlmOWMyNjMyYTg5ZTU1YTkyNzFiZGY4Y2Y0ZDVmYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJXZWJD
b2xvckNob29zZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNs
dWRlICJXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCIKKyNpbmNsdWRlICJXZWJEYXRlVGlt
ZUNob29zZXIuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXIuaCIKQEAgLTc3NSw2
ICs3NzYsMTUgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmNhblNob3dEYXRhTGlzdFN1Z2dlc3Rp
b25MYWJlbHMoKSBjb25zdAogCiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lO
UFVUX1RZUEVTKQorCitzdGQ6OnVuaXF1ZV9wdHI8RGF0ZVRpbWVDaG9vc2VyPiBXZWJDaHJvbWVD
bGllbnQ6OmNyZWF0ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGltZUNob29zZXJDbGllbnQmIGNsaWVu
dCkKK3sKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxXZWJEYXRlVGltZUNob29zZXI+KG1fcGFnZSwg
Y2xpZW50KTsKK30KKworI2VuZGlmCisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5PcGVuUGFu
ZWwoRnJhbWUmIGZyYW1lLCBGaWxlQ2hvb3NlciYgZmlsZUNob29zZXIpCiB7CiAgICAgaWYgKG1f
cGFnZS5hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcigpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmlu
ZGV4IGU3NWY0ODg1MmJmYTA2YjFhZDQwZTNiYmExZmEzY2MzZTNmNDFhOGUuLjQ5MmUyM2I5MzVj
MzAwYTU5ZjAyZGNkMTk1NDk3ZDFkZmM2MGE4ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE1
Miw2ICsxNTIsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIGNhblNob3dEYXRhTGlzdFN1Z2dlc3Rp
b25MYWJlbHMoKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJ
TUVfSU5QVVRfVFlQRVMpCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkRhdGVUaW1lQ2hv
b3Nlcj4gY3JlYXRlRGF0ZVRpbWVDaG9vc2VyKFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3NlckNsaWVu
dCYpIGZpbmFsOworI2VuZGlmCisKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICB2
b2lkIGRpZFByZXZlbnREZWZhdWx0Rm9yRXZlbnQoKSBmaW5hbDsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGVUaW1lQ2hv
b3Nlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0
ZVRpbWVDaG9vc2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTllOWNiNjkzNDY2ZTk0NTg5NzNmOWU5OWY2
ZjY0MzRkMjZjNzhjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkRhdGVUaW1lQ2hvb3Nlci5jcHAKQEAgLTAsMCArMSw2OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJEYXRlVGltZUNo
b29zZXIuaCIKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorCisjaW5j
bHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRGF0ZVRpbWVDaG9vc2VyQ2xp
ZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJEYXRlVGltZUNob29zZXI6OldlYkRhdGVUaW1lQ2hv
b3NlcihXZWJQYWdlJiBwYWdlLCBXZWJDb3JlOjpEYXRlVGltZUNob29zZXJDbGllbnQmIGNsaWVu
dCkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICAsIG1fcGFnZShwYWdlKQoreworfQorCit2
b2lkIFdlYkRhdGVUaW1lQ2hvb3Nlcjo6ZGlkQ2hvb3NlRGF0ZShjb25zdCBTdHJpbmcmIGRhdGUp
Cit7CisgICAgbV9jbGllbnQuZGlkQ2hvb3NlVmFsdWUoZGF0ZSk7Cit9CisKK3ZvaWQgV2ViRGF0
ZVRpbWVDaG9vc2VyOjpkaWRFbmRDaG9vc2VyKCkKK3sKKyAgICBtX2NsaWVudC5kaWRFbmRDaG9v
c2VyKCk7Cit9CisKK3ZvaWQgV2ViRGF0ZVRpbWVDaG9vc2VyOjplbmRDaG9vc2VyKCkKK3sKKyAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkVuZERhdGVUaW1lUGlja2VyKCksIG1fcGFnZS5pZGVu
dGlmaWVyKCkpOworfQorCit2b2lkIFdlYkRhdGVUaW1lQ2hvb3Nlcjo6c2hvd0Nob29zZXIoY29u
c3QgV2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyYgcGFyYW1zKQoreworICAgIG1f
cGFnZS5zZXRBY3RpdmVEYXRlVGltZUNob29zZXIoKnRoaXMpOworICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6U2hvd0RhdGVUaW1lUGlja2VyKHBhcmFtcyksIG1fcGFnZS5pZGVudGlmaWVyKCkp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0ZVRpbWVDaG9vc2VyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0ZVRpbWVDaG9v
c2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNmIyMDQ0MjI2NGRiM2EwYjk5ZGRiMzc2MjlmOTdiYjc4MDA2ZmFl
OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJEYXRlVGltZUNob29zZXIuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKwor
I2luY2x1ZGUgPFdlYkNvcmUvRGF0ZVRpbWVDaG9vc2VyLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK2NsYXNzIERhdGVUaW1lQ2hvb3NlckNsaWVudDsKK3N0cnVjdCBEYXRlVGltZUNob29zZXJQ
YXJhbWV0ZXJzOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKwor
Y2xhc3MgV2ViRGF0ZVRpbWVDaG9vc2VyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkRhdGVUaW1l
Q2hvb3NlciB7CitwdWJsaWM6CisgICAgV2ViRGF0ZVRpbWVDaG9vc2VyKFdlYlBhZ2UmLCBXZWJD
b3JlOjpEYXRlVGltZUNob29zZXJDbGllbnQmKTsKKworICAgIHZvaWQgZGlkQ2hvb3NlRGF0ZShj
b25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGRpZEVuZENob29zZXIoKTsKKworcHJpdmF0ZToKKyAg
ICB2b2lkIGVuZENob29zZXIoKSBmaW5hbDsKKyAgICB2b2lkIHNob3dDaG9vc2VyKGNvbnN0IFdl
YkNvcmU6OkRhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMmKSBmaW5hbDsKKworICAgIFdlYkNvcmU6
OkRhdGVUaW1lQ2hvb3NlckNsaWVudCYgbV9jbGllbnQ7CisgICAgV2ViUGFnZSYgbV9wYWdlOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBlZDNiNjNmZGRlM2E3N2I4ZjllYjk4
MzE1ZTVlOGQ5YmI1MWMwZGI3Li45Nzg1Y2ExNGM3YzQyMWNiNzBlNmViZTJmNzlkZWFiOTdjZmRl
NmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApA
QCAtODAsNiArODAsNyBAQAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2lu
Y2x1ZGUgIldlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oIgogI2luY2x1ZGUgIldlYkRhdGFi
YXNlUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJXZWJEYXRlVGltZUNob29zZXIuaCIKICNpbmNsdWRl
ICJXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIldlYkRvY3VtZW50TG9h
ZGVyLmgiCiAjaW5jbHVkZSAiV2ViRHJhZ0NsaWVudC5oIgpAQCAtNDE5Nyw2ICs0MTk4LDI3IEBA
IHZvaWQgV2ViUGFnZTo6ZGlkQ2xvc2VTdWdnZXN0aW9ucygpCiAKICNlbmRpZgogCisjaWYgRU5B
QkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKK3ZvaWQgV2ViUGFnZTo6c2V0QWN0aXZl
RGF0ZVRpbWVDaG9vc2VyKFdlYkRhdGVUaW1lQ2hvb3NlciYgZGF0ZVRpbWVDaG9vc2VyKQorewor
ICAgIG1fYWN0aXZlRGF0ZVRpbWVDaG9vc2VyID0gbWFrZVdlYWtQdHIoJmRhdGVUaW1lQ2hvb3Nl
cik7Cit9CisKK3ZvaWQgV2ViUGFnZTo6ZGlkQ2hvb3NlRGF0ZShjb25zdCBTdHJpbmcmIGRhdGUp
Cit7CisgICAgaWYgKG1fYWN0aXZlRGF0ZVRpbWVDaG9vc2VyKQorICAgICAgICBtX2FjdGl2ZURh
dGVUaW1lQ2hvb3Nlci0+ZGlkQ2hvb3NlRGF0ZShkYXRlKTsKK30KKwordm9pZCBXZWJQYWdlOjpk
aWRFbmREYXRlVGltZVBpY2tlcigpCit7CisgICAgaWYgKGF1dG8gY2hvb3NlciA9IHN0ZDo6ZXhj
aGFuZ2UobV9hY3RpdmVEYXRlVGltZUNob29zZXIsIG51bGxwdHIpKQorICAgICAgICBjaG9vc2Vy
LT5kaWRFbmRDaG9vc2VyKCk7Cit9CisKKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2U6OnNldEFjdGl2
ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyKFJlZjxXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcj4m
JiBvcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcikKIHsKICAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyID0gV1RGTW92ZShvcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMjZkMjQzM2I2MTUxNThlZjc2
OGMxNjY2MjA5ZmVhY2Y5NmZkZTdlZi4uMzRhNGIxYjY0MGJlZDZiMGJiYzM2OTYzYzMxNWRjY2Y3
YmYzNmIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApA
QCAtMjQ5LDYgKzI0OSw3IEBAIGNsYXNzIFdlYkNvbG9yQ2hvb3NlcjsKIGNsYXNzIFdlYkNvbnRl
eHRNZW51OwogY2xhc3MgV2ViQ29udGV4dE1lbnVJdGVtRGF0YTsKIGNsYXNzIFdlYkRhdGFMaXN0
U3VnZ2VzdGlvblBpY2tlcjsKK2NsYXNzIFdlYkRhdGVUaW1lQ2hvb3NlcjsKIGNsYXNzIFdlYkRv
Y3VtZW50TG9hZGVyOwogY2xhc3MgV2ViRXZlbnQ7CiBjbGFzcyBQbGF5YmFja1Nlc3Npb25NYW5h
Z2VyOwpAQCAtNDM4LDYgKzQzOSwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRDbG9zZVN1Z2dl
c3Rpb25zKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVT
KQorICAgIHZvaWQgc2V0QWN0aXZlRGF0ZVRpbWVDaG9vc2VyKFdlYkRhdGVUaW1lQ2hvb3NlciYp
OworICAgIHZvaWQgZGlkQ2hvb3NlRGF0ZShjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGRpZEVu
ZERhdGVUaW1lUGlja2VyKCk7CisjZW5kaWYKKwogICAgIFdlYk9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyKiBhY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcigpIGNvbnN0IHsgcmV0dXJuIG1fYWN0
aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuZ2V0KCk7IH0KICAgICB2b2lkIHNldEFjdGl2ZU9w
ZW5QYW5lbFJlc3VsdExpc3RlbmVyKFJlZjxXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcj4mJik7
CiAKQEAgLTE5MDcsNiArMTkxNCwxMCBAQCBwcml2YXRlOgogICAgIFdlYWtQdHI8V2ViRGF0YUxp
c3RTdWdnZXN0aW9uUGlja2VyPiBtX2FjdGl2ZURhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcjsKICNl
bmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisgICAgV2Vha1B0
cjxXZWJEYXRlVGltZUNob29zZXI+IG1fYWN0aXZlRGF0ZVRpbWVDaG9vc2VyOworI2VuZGlmCisK
ICAgICBSZWZQdHI8V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI+IG1fYWN0aXZlT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXI7CiAgICAgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcj4gbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CmluZGV4IGE1OTVlN2Q5MjEyYjNlZGM4MjkzODlmY2RmZmY5MjQ1MmE1OGQ4MGUuLjBiNjI3YjI2
NmE5ZjE4YTc2M2JhOWQyMTBiNWJmOGZmNzMzYzQ0MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMTU5LDYgKzE1
OSwxMSBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJL
aXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIERpZENsb3NlU3VnZ2VzdGlvbnMo
KTsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisgICAg
RGlkQ2hvb3NlRGF0ZShTdHJpbmcgZGF0ZSk7CisgICAgRGlkRW5kRGF0ZVRpbWVQaWNrZXIoKTsK
KyNlbmRpZgorCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgQ29udGV4dE1lbnVIaWRk
ZW4oKQogICAgIENvbnRleHRNZW51Rm9yS2V5RXZlbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA0
MmM1YTE1MDNmNWUzYWY5OTBlODBjMGJjZGEzYTdlOWFhMTFkMDQzLi45YzA5NWE3NDAyNGQwNmM5
ZjBjODA5OGVjNGQyY2U5ODk5NGNlMjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTQ3LDYgKzE0
NywxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgY2FuU2hvd0RhdGFMaXN0U3VnZ2VzdGlvbkxhYmVs
cygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShE
QVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpE
YXRlVGltZUNob29zZXI+IGNyZWF0ZURhdGVUaW1lQ2hvb3NlcihXZWJDb3JlOjpEYXRlVGltZUNo
b29zZXJDbGllbnQmKSBmaW5hbDsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ICAgICBib29sIHJlcXVlc3RQb2ludGVyTG9jaygpIGZpbmFsOwogICAgIHZvaWQgcmVxdWVzdFBv
aW50ZXJVbmxvY2soKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCAwYjA5NDVlYjZkOWE3
NjlkMWQ4YjQxNjlhMzY1MzBiOTY2ZjZjMDYwLi5mNmUyYjE4ZTgwYzU4OTM2NjBmZTc5YWVhZjVk
YWEzN2I0M2M3ZDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC03MzIsNiArNzMyLDE0IEBAIHN0
ZDo6dW5pcXVlX3B0cjxEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI+IFdlYkNocm9tZUNsaWVudDo6
Y3JlYXRlRGF0YUxpc3RTdWdnZXN0CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRFX0FORF9U
SU1FX0lOUFVUX1RZUEVTKQorc3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lQ2hvb3Nlcj4gV2ViQ2hy
b21lQ2xpZW50OjpjcmVhdGVEYXRlVGltZUNob29zZXIoRGF0ZVRpbWVDaG9vc2VyQ2xpZW50JikK
K3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNl
bmRpZgorCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKIGJvb2wgV2ViQ2hyb21lQ2xpZW50Ojpy
ZXF1ZXN0UG9pbnRlckxvY2soKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGIzOGJkOGJkMTJhN2RjY2JjNWRkYTllYTgxZTA0YjcxNTY0ZGFi
ZmQuLmRjYjQ1YWM2ZDk0M2U1NzlmOGUwNzgxM2RhNmE0OWIwOWViZDc3Y2EgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAor
MjAyMC0wNy0yOSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAg
ICAgW21hY09TXSBTaG93IHBpY2tlciBmb3IgZGF0ZSBhbmQgZGF0ZXRpbWUtbG9jYWwgaW5wdXQg
dHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
NDk0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZGVkIGlzU2hvd2luZ0RhdGVUaW1lUGlja2VyIHRlc3RpbmcgaG9vayBpbiBvcmRlciB0byBlbmFi
bGUgdGVzdGluZyBvZiB0aGUgdmlzaWJpbGl0eSBvZgorICAgICAgICB0aGUgcGlja2VyLgorCisg
ICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3Jp
cHRDb250cm9sbGVyLmlkbDoKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29u
dGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9s
bGVyOjppc1Nob3dpbmdEYXRlVGltZVBpY2tlciBjb25zdCk6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLmg6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV1RSOjpVSVNj
cmlwdENvbnRyb2xsZXJNYWM6OmlzU2hvd2luZ0RhdGVUaW1lUGlja2VyIGNvbnN0KToKKwogMjAy
MC0wNy0yOSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHNj
cmlwdCB0byBoZWxwIHVzIGNvdW50IHVzZXMgb2Ygbm9uLWluY2x1c2l2ZSB0ZXJtcwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlT
Y3JpcHRDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250
ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKaW5kZXggOTNhMTQzZTc0ODM4MDdj
NmVhZmMxZjMzNTRhZTU1ZGJlODFlNjI2ZS4uNWE0MDNmZjIzZjAzOTQyZjhmMjRmMGM5ODFkMWRi
Mzg1YzFkYjgyNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENv
bnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAorKysgYi9Ub29scy9UZXN0UnVu
bmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRs
CkBAIC0yMjIsNiArMjIyLDggQEAgaW50ZXJmYWNlIFVJU2NyaXB0Q29udHJvbGxlciB7CiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSB0aW1lUGlja2VyVmFsdWVIb3VyOwogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBkb3VibGUgdGltZVBpY2tlclZhbHVlTWludXRlOwogCisgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGJvb2xlYW4gaXNTaG93aW5nRGF0ZVRpbWVQaWNrZXI7CisKICAgICAvLyA8
ZGF0YWxpc3Q+CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNTaG93aW5nRGF0YUxp
c3RTdWdnZXN0aW9uczsKICAgICB2b2lkIGFjdGl2YXRlRGF0YUxpc3RTdWdnZXN0aW9uKHVuc2ln
bmVkIGxvbmcgaW5kZXgsIG9iamVjdCBjYWxsYmFjayk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaCBiL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCmlu
ZGV4IDM3ZTM2ZjA0Njc2M2VhMjQ1MTI0YjMyOWY1NDliYTA0NzNhZmZjZTMuLmU1YWRhYjhjN2U1
YTA4ZmYzNzZhMDQzODBkOWJkYTlmZmMxN2I5NDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5u
ZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCkBA
IC0yMTYsNiArMjE2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRUaW1lUGlja2Vy
VmFsdWUobG9uZyBob3VyLCBsb25nIG1pbnV0ZSkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiAgICAg
dmlydHVhbCBkb3VibGUgdGltZVBpY2tlclZhbHVlSG91cigpIGNvbnN0IHsgbm90SW1wbGVtZW50
ZWQoKTsgcmV0dXJuIC0xOyB9CiAgICAgdmlydHVhbCBkb3VibGUgdGltZVBpY2tlclZhbHVlTWlu
dXRlKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gLTE7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgaXNTaG93aW5nRGF0ZVRpbWVQaWNrZXIoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Nob3dpbmdEYXRhTGlzdFN1Z2dl
c3Rpb25zKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIEpTT2JqZWN0UmVmIGNhbGVuZGFyVHlwZSgpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQo
KTsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmYXVsdENhbGVuZGFy
VHlwZShKU1N0cmluZ1JlZiBjYWxlbmRhcklkZW50aWZpZXIsIEpTU3RyaW5nUmVmIGxvY2FsZUlk
ZW50aWZpZXIpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLmggYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMuaAppbmRleCA2MTIxNTkyZjJkN2RmMGQ4
MzExODg2NzVkYjVhYWIyMjUyZjY3NGFhLi41NGQ5MGQ5Y2Y2YzM3N2Q5MTkyYTZiZGM3NTFlMDY4
NzU4NTY2MjY2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlw
dENvbnRyb2xsZXJNYWMuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlw
dENvbnRyb2xsZXJNYWMuaApAQCAtNDIsNiArNDIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB6b29t
VG9TY2FsZShkb3VibGUsIEpTVmFsdWVSZWYpIG92ZXJyaWRlOwogICAgIGRvdWJsZSB6b29tU2Nh
bGUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHNpbXVsYXRlQWNjZXNzaWJpbGl0eVNldHRp
bmdzQ2hhbmdlTm90aWZpY2F0aW9uKEpTVmFsdWVSZWYpIG92ZXJyaWRlOworICAgIGJvb2wgaXNT
aG93aW5nRGF0ZVRpbWVQaWNrZXIoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzU2hvd2lu
Z0RhdGFMaXN0U3VnZ2VzdGlvbnMoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGFjdGl2YXRl
RGF0YUxpc3RTdWdnZXN0aW9uKHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlUmVmIGNhbGxiYWNrKSBv
dmVycmlkZTsKICAgICB2b2lkIGJlZ2luQmFja1N3aXBlKEpTVmFsdWVSZWYpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVy
TWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFj
Lm1tCmluZGV4IGU5NTZlZWQ5MmEwYTU4NzgzNjZlYzUzMDA5NzIyNDE2OTg4NTY3OWMuLjJlMTIz
MGM1OGMzYWZiZDM4ODgxZWY3M2VhYzMxNzMxZGVlYmQ1YjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbQorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KQEAgLTk2LDYgKzk2
LDE1IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyTWFjOjpzaW11bGF0ZUFjY2Vzc2liaWxpdHlT
ZXR0aW5nc0NoYW5nZU5vdGlmaWNhdGlvbihKU1ZhCiAgICAgfSkuZ2V0KCldOwogfQogCitib29s
IFVJU2NyaXB0Q29udHJvbGxlck1hYzo6aXNTaG93aW5nRGF0ZVRpbWVQaWNrZXIoKSBjb25zdAor
eworICAgIGZvciAoTlNXaW5kb3cgKmNoaWxkV2luZG93IGluIHdlYlZpZXcoKS53aW5kb3cuY2hp
bGRXaW5kb3dzKSB7CisgICAgICAgIGlmIChbY2hpbGRXaW5kb3cgaXNLaW5kT2ZDbGFzczpOU0Ns
YXNzRnJvbVN0cmluZyhAIldLRGF0ZVRpbWVQaWNrZXJXaW5kb3ciKV0pCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIFVJU2NyaXB0
Q29udHJvbGxlck1hYzo6aXNTaG93aW5nRGF0YUxpc3RTdWdnZXN0aW9ucygpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIGRhdGFMaXN0U3VnZ2VzdGlvbnNUYWJsZVZpZXcoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyOWJlNTI1
ZmNlZGYxNGJiZWE3OGU5Y2YwMmI4MTA4NTAwMzQxNzcyLi4xMWU0YWRmOWYzN2ZmMmQ4M2ZmM2Y0
MDZjZmEzYTU4YzE0MDVhOGE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMDctMjkgIEFk
aXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gU2hv
dyBwaWNrZXIgZm9yIGRhdGUgYW5kIGRhdGV0aW1lLWxvY2FsIGlucHV0IHR5cGVzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ5NDYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0cyB0byB2
ZXJpZnkgdGhhdCB0aGUgcGlja2VyIGlzIGNvcnJlY3RseSBzaG93biBhbmQgaGlkZGVuIGZvciBk
YXRlIGFuZAorICAgICAgICBkYXRldGltZS1sb2NhbCBpbnB1dCB0eXBlcy4KKworICAgICAgICAq
IGZhc3QvZm9ybXMvZGF0ZS9kYXRlLXNob3ctaGlkZS1waWNrZXItZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2RhdGUvZGF0ZS1zaG93LWhpZGUtcGlja2VyLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZGF0ZXRpbWVsb2NhbC9kYXRldGltZWxvY2Fs
LXNob3ctaGlkZS1waWNrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zv
cm1zL2RhdGV0aW1lbG9jYWwvZGF0ZXRpbWVsb2NhbC1zaG93LWhpZGUtcGlja2VyLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAq
IHJlc291cmNlcy91aS1oZWxwZXIuanM6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIuaXNTaG93
aW5nRGF0ZVRpbWVQaWNrZXIpOgorCiAyMDIwLTA3LTI5ICBLYXRlIENoZW5leSAgPGthdGhlcmlu
ZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIE1pZ3JhdGUgQXBwLUJvdW5kIERvbWFpbnMg
Y29kZSBmcm9tIFdlYktpdCBBZGRpdGlvbnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvZGF0ZS9kYXRlLXNob3ctaGlkZS1waWNrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtc2hvdy1oaWRlLXBpY2tlci1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjUyZDI0Mjc3Mjk0NzlkMmFmODM4YTk0ZjFkNGY3ZGI4NDAxMTExYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLXNob3ctaGlkZS1w
aWNrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCisxLiBJcyBzaG93aW5nIGRhdGUg
cGlja2VyPyB0cnVlCisyLiBJcyBzaG93aW5nIGRhdGUgcGlja2VyPyBmYWxzZQorCitUaGlzIHRl
c3QgdmVyaWZpZXMgdGhhdCBhIGRhdGUgcGlja2VyIGlzIHByZXNlbnRlZCB3aGVuIGNsaWNraW5n
IG9uIGEgZGF0ZSBpbnB1dC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0
ZS9kYXRlLXNob3ctaGlkZS1waWNrZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0
ZS9kYXRlLXNob3ctaGlkZS1waWNrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZDYyYjIwMGI3ZGY0MDA1
YzlkNDU5ZGYxN2U1Mjg1OTI4OTFmOGJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9kYXRlL2RhdGUtc2hvdy1oaWRlLXBpY2tlci5odG1sCkBAIC0wLDAgKzEsNDAg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0
IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2Fs
YWJsZT1ubyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+
PC9zY3JpcHQ+Cis8c3R5bGU+CitpbnB1dCB7CisgICAgd2lkdGg6IDMwMHB4OworICAgIGhlaWdo
dDogNTBweDsKK30KKworYm9keSB7CisgICAgbWFyZ2luOiAwOworfQorPC9zdHlsZT4KKzxoZWFk
PgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGlucHV0IGlkPSJpbnB1dCIgdHlwZT0iZGF0
ZSIvPgorPHByZT4xLiBJcyBzaG93aW5nIGRhdGUgcGlja2VyPyA8c3BhbiBpZD0iYmVmb3JlIj48
L3NwYW4+PC9wcmU+Cis8cHJlPjIuIElzIHNob3dpbmcgZGF0ZSBwaWNrZXI/IDxzcGFuIGlkPSJh
ZnRlciI+PC9zcGFuPjwvcHJlPgorPGJyPgorPGRpdj5UaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBh
IGRhdGUgcGlja2VyIGlzIHByZXNlbnRlZCB3aGVuIGNsaWNraW5nIG9uIGEgZGF0ZSBpbnB1dC48
L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
K30KKworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBhd2FpdCBVSUhlbHBlci5hY3Rp
dmF0ZUFuZFdhaXRGb3JJbnB1dFNlc3Npb25BdCgxNTAsIDI1KTsKKworICAgIGJlZm9yZS50ZXh0
Q29udGVudCA9IGF3YWl0IFVJSGVscGVyLmlzU2hvd2luZ0RhdGVUaW1lUGlja2VyKCk7CisgICAg
aW5wdXQuYmx1cigpOworICAgIGFmdGVyLnRleHRDb250ZW50ID0gYXdhaXQgVUlIZWxwZXIuaXNT
aG93aW5nRGF0ZVRpbWVQaWNrZXIoKTsKKworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
fQorPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2RhdGV0aW1lbG9jYWwvZGF0ZXRpbWVsb2NhbC1zaG93LWhpZGUtcGlja2VyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZXRpbWVsb2NhbC9kYXRldGltZWxvY2FsLXNo
b3ctaGlkZS1waWNrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwMWZmM2Q4NWI4YWQ0YTQ3
YTllYmQ1YjM3ZWQ5MzRkMjY4NzZjMGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2RhdGV0aW1lbG9jYWwvZGF0ZXRpbWVsb2NhbC1zaG93LWhpZGUtcGlja2VyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworMS4gSXMgc2hvd2luZyBkYXRlIHBpY2tlcj8g
dHJ1ZQorMi4gSXMgc2hvd2luZyBkYXRlIHBpY2tlcj8gZmFsc2UKKworVGhpcyB0ZXN0IHZlcmlm
aWVzIHRoYXQgYSBkYXRlIHBpY2tlciBpcyBwcmVzZW50ZWQgd2hlbiBjbGlja2luZyBvbiBhIGRh
dGV0aW1lLWxvY2FsIGlucHV0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9k
YXRldGltZWxvY2FsL2RhdGV0aW1lbG9jYWwtc2hvdy1oaWRlLXBpY2tlci5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9kYXRldGltZWxvY2FsL2RhdGV0aW1lbG9jYWwtc2hvdy1oaWRlLXBp
Y2tlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkNTBmM2YxMjlmMDk3NmI1MjZhOWQ5MTUxMzU4MzQyNjNm
MjI3MWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGV0aW1l
bG9jYWwvZGF0ZXRpbWVsb2NhbC1zaG93LWhpZGUtcGlja2VyLmh0bWwKQEAgLTAsMCArMSw0MCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0idmlld3BvcnQi
IGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxh
YmxlPW5vIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48
L3NjcmlwdD4KKzxzdHlsZT4KK2lucHV0IHsKKyAgICB3aWR0aDogMzAwcHg7CisgICAgaGVpZ2h0
OiA1MHB4OworfQorCitib2R5IHsKKyAgICBtYXJnaW46IDA7Cit9Cis8L3N0eWxlPgorPGhlYWQ+
Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8aW5wdXQgaWQ9ImlucHV0IiB0eXBlPSJkYXRl
dGltZS1sb2NhbCIvPgorPHByZT4xLiBJcyBzaG93aW5nIGRhdGUgcGlja2VyPyA8c3BhbiBpZD0i
YmVmb3JlIj48L3NwYW4+PC9wcmU+Cis8cHJlPjIuIElzIHNob3dpbmcgZGF0ZSBwaWNrZXI/IDxz
cGFuIGlkPSJhZnRlciI+PC9zcGFuPjwvcHJlPgorPGJyPgorPGRpdj5UaGlzIHRlc3QgdmVyaWZp
ZXMgdGhhdCBhIGRhdGUgcGlja2VyIGlzIHByZXNlbnRlZCB3aGVuIGNsaWNraW5nIG9uIGEgZGF0
ZXRpbWUtbG9jYWwgaW5wdXQuPC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAg
YXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uQXQoMTUwLCAyNSk7
CisKKyAgICBiZWZvcmUudGV4dENvbnRlbnQgPSBhd2FpdCBVSUhlbHBlci5pc1Nob3dpbmdEYXRl
VGltZVBpY2tlcigpOworICAgIGlucHV0LmJsdXIoKTsKKyAgICBhZnRlci50ZXh0Q29udGVudCA9
IGF3YWl0IFVJSGVscGVyLmlzU2hvd2luZ0RhdGVUaW1lUGlja2VyKCk7CisKKyAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxNjhjNzkzZTE4N2NlZDk4MTE2ODg4ZTA1
MzgyMjllY2U0MTA3ZmJiLi5iOGMyMzFmNDc1NWU5MTNhMzFkZGU1YzQ1NDQ4YmQ2M2Q3YzZlNTU5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzQ3NSw2
ICszNDc1LDEwIEBAIHdlYmtpdC5vcmcvYi8yMTQ0OTggaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jb3JzL3JlbW90ZS1vcmlnaW4uaHRtIFsgUGFzCiAKIGZhc3QvdGV4dC9zZWxlY3Rp
b24taXMtcHJldmVudC1kZWZhdWx0ZWQuaHRtbCBbIEZhaWx1cmUgXQogCisjIEZJWE1FOiBUaGVz
ZSB0ZXN0cyByZXF1aXJlIFVJU2NyaXB0Q29udHJvbGxlcklPUyBhZGRpdGlvbnMgdG8ga25vdyB3
aGVuIGEgZGF0ZS90aW1lIHBpY2tlciBpcyBwcmVzZW50ZWQKK2Zhc3QvZm9ybXMvZGF0ZS9kYXRl
LXNob3ctaGlkZS1waWNrZXIuaHRtbCBbIFNraXAgXQorZmFzdC9mb3Jtcy9kYXRldGltZWxvY2Fs
L2RhdGV0aW1lbG9jYWwtc2hvdy1oaWRlLXBpY2tlci5odG1sIFsgU2tpcCBdCisKICMgPHJkYXI6
Ly9wcm9ibGVtLzU5NjM2MTE1PiBSRUdSRVNTSU9OOiBbIGlPUyAmIG1hY09TIF0gdHdvIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJIGFyZSBmYWlsaW5nCiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9pbXBvcnRfZXhwb3J0L3Jz
YV9pbXBvcnRLZXkuaHR0cHMud29ya2VyLmh0bWwgWyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2ltcG9ydF9leHBvcnQvdGVzdF9yc2FfaW1w
b3J0S2V5Lmh0dHBzLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jl
c291cmNlcy91aS1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpz
CmluZGV4IDEzNjMzNjlmOWY0NDQ2MTI4YmUwZThjNjcyZGQ1YzI2Zjk5ZmZiNWEuLmVjZWNhZWZi
OWM4ZmJmN2VlODUzNTBiYzkyODYyZDg5M2QzNjA3YTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3Jlc291cmNlcy91aS1oZWxwZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhl
bHBlci5qcwpAQCAtODQxLDYgKzg0MSwxNSBAQCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhl
bHBlciB7CiAgICAgICAgIH0pOwogICAgIH0KIAorICAgIHN0YXRpYyBpc1Nob3dpbmdEYXRlVGlt
ZVBpY2tlcigpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAoKCkgPT4geworICAgICAgICAg
ICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKHVpQ29udHJvbGxlci5pc1Nob3dp
bmdEYXRlVGltZVBpY2tlcik7CisgICAgICAgICAgICB9KSgpYCwgcmVzdWx0ID0+IHJlc29sdmUo
cmVzdWx0ID09PSAidHJ1ZSIpKTsKKyAgICAgICAgfSk7CisgICAgfQorCiAgICAgc3RhdGljIHpv
b21TY2FsZSgpCiAgICAgewogICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>405589</attachid>
            <date>2020-07-30 10:41:25 -0700</date>
            <delta_ts>2020-07-30 10:41:25 -0700</delta_ts>
            <desc>Screenshot of picker</desc>
            <filename>Date Input.png</filename>
            <type>image/png</type>
            <size>58766</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">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
za1HW8+0rrK+Z0O2YdmIbNbZnLP5YGtnm2y7yLbWtt3O0I5rV2BXZffAnmYfaD/FvsL+hgPRgeWQ
7bDJ4aoj6ujpKHIsd7zihDp5OYmdNjm1DCMM8xkmGVYx7LYz1ZntnO9c5fzYheES5VLoUuvyerj1
8NThK4efG/7V1dM1x3WH6/0ReiNGjSgcUT/irZujG9+t3O2GO809zH2Oe537Gw8nD6HHZo87nnTP
0Z6LPJs8v3h5e8m8qr06vK2907w3et9m6bNiWUtZ530IPsE+c3wafD76evnm+R70/dPP2S/bb49f
+0i7kcKRO0Y+9bf05/lv828NYAakBWwNaA20COQFVgQ+CbIKEgTtDHrBdmBnsfeyXwe7BsuCjwR/
4PhyZnEaQ7CQ8JDikOZQvdDE0A2hj8IswzLDqsK6wj3DZ4Q3RhAiIiNWRtzmmnL53Epu1yjvUbNG
nY6kRsZHboh8EuUYJYuqH42OHjV69egH0TbRkujaGBDDjVkd8zDWLnZK7K9jiGNix5SPeR43Im5m
3Ll4evyk+D3x7xOCE5Yn3E+0T1QkNiVpJ41Pqkz6kBySvCq5dezwsbPGXkoxThGn1KWSUpNSd6Z2
jwsdt3Zc23jP8UXjb02wmzBtwoWJxhNzJh6bpD2JN+lQGiEtOW1P2mdeDK+C153OTd+Y3sXn8Nfx
XwmCBGsEHUJ/4Srhiwz/jFUZ7Zn+maszO0SBolJRp5gj3iB+kxWRtSXrQ3ZM9q7svpzknP25Grlp
uUclepJsyenJZpOnTW6ROkmLpK1TfKesndIli5TtlCPyCfK6PH34UX9ZYa9YqHicH5Bfnt8zNWnq
oWm60yTTLk93nL5k+ouCsIKfZ+Az+DOaZlrMnDfz8Sz2rG2zkdnps5vmWM1ZMKdtbvjc3fMo87Ln
/VboWriq8K/5yfPrF5gumLvg6cLwhVVFWkWyotuL/BZtWYwvFi9uXuK+ZP2Sr8WC4oslriWlJZ+X
8pde/GnET2U/9S3LWNa83Gv55hXEFZIVt1YGrty9SndVwaqnq0evrlnDXFO85q+1k9ZeKPUo3bKO
sk6xrrUsqqxuvfX6Fes/bxBtuFkeXL5/o8nGJRs/bBJsurY5aHP1FtMtJVs+bRVvvbMtfFtNhW1F
6Xbi9vztz3ck7Tj3M+vnyp3GO0t2ftkl2dW6O2736Urvyso9JnuWV6FViqqOveP3Xt0Xsq+u2rl6
237G/pID4IDiwMtf0n65dTDyYNMh1qHqwzaHNx6hHymuQWqm13TVimpb61LqWo6OOtpU71d/5FeX
X3c1WDSUHzM4tvw45fiC430nCk50N0obO09mnnzaNKnp/qmxp26cHnO6+UzkmfNnw86eOsc+d+K8
//mGC74Xjl5kXay95HWp5rLn5SO/ef52pNmrueaK95W6qz5X61tGthy/Fnjt5PWQ62dvcG9cuhl9
s+VW4q07t8ffbr0juNN+N+fum3v593rvz31AeFD8UOdh6SOTRxW/O/y+v9Wr9djjkMeXn8Q/uf+U
//TVM/mzz20LntOel74wf1HZ7tbe0BHWcfXluJdtr6SvejuL/tD9Y+Nr+9eH/wz683LX2K62N7I3
fW+XvjN6t+svj7+aumO7H73Pfd/7objHqGf3R9bHc5+SP73onfqZ9Lnsi8OX+q+RXx/05fb1SXky
Xv+nAAYbmpEBwNtd8DshBQA6PLdRxqnOgv2CqM6v/Qj8J6w6L/aLFwDVsFN+xnMaATgAm+1cyA3v
lZ/wCUEAdXcfbGqRZ7i7qbio8CRE6Onre2cKAKkegC+yvr7eTX19X3bAYO8C0DhFdQZVChGeGbaG
KNHd1RPmgh9EdT79Lscfe6CMwAP82P8LuLqQr7SWAHsAAACKZVhJZk1NACoAAAAIAAQBGgAFAAAA
AQAAAD4BGwAFAAAAAQAAAEYBKAADAAAAAQACAACHaQAEAAAAAQAAAE4AAAAAAAAAkAAAAAEAAACQ
AAAAAQADkoYABwAAABIAAAB4oAIABAAAAAEAAAE4oAMABAAAAAEAAAFsAAAAAEFTQ0lJAAAAU2Ny
ZWVuc2hvdNS688UAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAHWaVRYdFhNTDpjb20uYWRvYmUueG1w
AAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29y
ZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8w
Mi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIi
CiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4K
ICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjMxMjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+
CiAgICAgICAgIDxleGlmOlVzZXJDb21tZW50PlNjcmVlbnNob3Q8L2V4aWY6VXNlckNvbW1lbnQ+
CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zNjQ8L2V4aWY6UGl4ZWxZRGltZW5zaW9u
PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KB4El
LgAAABxpRE9UAAAAAgAAAAAAAAC2AAAAKAAAALYAAAC2AABsx3f2V2kAAEAASURBVHgB7J0HoFXF
1bbn0psICCIIShF7713Abiwppn1JjFGTaEyMMb0bY/L96cWYZtQUS2JMM19UVLoiFhAFFJQiHUF6
7/961rnvZu7m3HbuuXAjs2DfaWtmzaw9+z1ryt5Tsc0oJEoaSBpIGngLaqAiAdxb8K6mJiUNJA24
BhLApY6QNJA08JbVQAK4t+ytTQ1LGkgaSACX+kDSQNLAW1YDCeDesrc2NSxpIGkgAVzqA0kDSQNv
WQ0kgHvL3trUsKSBpIGyAdzGzdvCvKVbw3y73li+NazdsC2s27gtEJ8oaSBpoLgGWresCG3sate6
InTv1Cz07Nws7LtXs9CqRUXxDCm2XhpoMMBt2LQtvDJ3i4HblrDQgG29gdqWrfWqQ2JOGkgaMA00
bxZCm1YVoQcg16V5OHjf5gEATFS6BhoEcBNnbQ6vzNscFi5LiFb6LUg5kwaKawCgO3jfFuGI/VsU
Z0ixtWqgJIBbsXZbeGHGpvCSAVyipIGkgcbTQDMz4AC4o/u2DHu2S9ZcfTVdb4BL4FZfFSf+pIGG
a+DISpDr1D6BXH20WS+Aqy+4MaeQ5uPqczsS7+6mgfo8I1hyx5gll0Cu7r2kXgA3YtLGGoelbZpv
Cm22LQkVG94IW9YsDFs2rg5bN6+ve20SZ9LAbqaBZi3ahOatOoTm7fcJ21p3D+squoQNW1pVq4Wj
+rQIZx1WfXq1GXfThDoDHAsKww3gqqNOzRaEbSteDRtXza2OJcUnDSQN1KKBVh17h4qOA8LKbT3C
1iI7rJiTA+DSwkMtiqxMrhPAsRXkX89tKLpa2mzbprDntplh/cLn6iYxcSUNJA3UqIFtoSK03ef4
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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406011</attachid>
            <date>2020-08-05 10:44:54 -0700</date>
            <delta_ts>2020-08-05 16:55:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214946-20200805134453.patch</filename>
            <type>text/plain</type>
            <size>86981</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1Mjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY2NjQ5MGJiZjJjNDc4
NmVlYzU2N2UxOTYzNGIzYjc4YmMzY2M4NS4uNmFjMmQ0YmU4NTA1YTg5M2YyMmM2OTgxMDI4N2Uz
NWJkMjEzZDBiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTA4LTA1ICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFNob3cg
cGlja2VyIGZvciBkYXRlIGFuZCBkYXRldGltZS1sb2NhbCBpbnB1dCB0eXBlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0OTQ2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGF0ZSBhbmQgZGF0ZXRpbWUt
bG9jYWwgaW5wdXQgdHlwZXMgcmVxdWlyZSBhIGNhbGVuZGFyIHBpY2tlciB0byBiZSBwcmVzZW50
ZWQgd2hlbiBhY3RpdmF0ZWQuCisgICAgICAgIENvbnNlcXVlbnRseSwgQmFzZUNob29zZXJPbmx5
RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQgd2FzIG1vZGlmaWVk
IHRvCisgICAgICAgIGNyZWF0ZSBhIERhdGVUaW1lQ2hvb3NlciBhbmQgZGlzcGxheSBhIGNhbGVu
ZGFyIHVwb24gYWN0aXZhdGlvbi4gVGhpcyBvYmplY3QgaXMgZGVzdHJveWVkCisgICAgICAgIHdo
ZW4gdGhlIGVsZW1lbnQgaXMgYmx1cnJlZCwgaGlkaW5nIHRoZSBjYWxlbmRhci4KKworICAgICAg
ICBUaGVyZSBpcyBjdXJyZW50bHkgbm8gcGlja2VyIFVJIGZvciBtb250aCwgd2VlaywgYW5kIHRp
bWUgaW5wdXQgdHlwZXMuIEFzIGEgcmVzdWx0LCAKKyAgICAgICAgaGFuZGxlRE9NQWN0aXZhdGVF
dmVudCBpcyBhIG5vLW9wIG9uIHRob3NlIGlucHV0IHR5cGVzLgorCisgICAgICAgIFdyb3RlIGFu
IGVuY29kZXIgYW5kIGRlY29kZXIgZm9yIERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMsIHNvIHRo
YXQgdGhlIHBpY2tlciBjYW4gYmUKKyAgICAgICAgY3JlYXRlZCB3aXRoIHRoZSBjb3JyZWN0IHZh
bHVlcy4KKworICAgICAgICBUZXN0czogZmFzdC9mb3Jtcy9kYXRlL2RhdGUtc2hvdy1oaWRlLXBp
Y2tlci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2RhdGV0aW1lbG9jYWwvZGF0ZXRp
bWVsb2NhbC1zaG93LWhpZGUtcGlja2VyLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0Jhc2VDaG9vc2VyT25seURhdGVB
bmRUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjplbGVtZW50RGlkQmx1
cik6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlw
ZTo6aXNQcmVzZW50aW5nQXR0YWNoZWRWaWV3IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJh
c2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaWRDaG9vc2VWYWx1ZSk6CisgICAg
ICAgICogaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oOgorICAgICAg
ICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9Nb250aElucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb250aElucHV0VHlwZTo6aGFuZGxlRE9NQWN0
aXZhdGVFdmVudCk6CisgICAgICAgICogaHRtbC9Nb250aElucHV0VHlwZS5oOgorICAgICAgICAq
IGh0bWwvVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBl
OjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KToKKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUu
aDoKKyAgICAgICAgKiBodG1sL1dlZWtJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2Vla0lucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudCk6CisgICAgICAgICogaHRtbC9X
ZWVrSW5wdXRUeXBlLmg6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlRGF0ZVRpbWVDaG9vc2VyKToK
KyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpjcmVhdGVEYXRlVGltZUNob29zZXIpOgor
ICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9EYXRlVGltZUNob29zZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9EYXRlVGltZUNob29zZXJDbGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9EYXRlVGltZUNo
b29zZXJQYXJhbWV0ZXJzLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVDaG9v
c2VyUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
Q2hvb3NlclBhcmFtZXRlcnM6OmRlY29kZSk6CisKIDIwMjAtMDgtMDQgIERldmluIFJvdXNzbyAg
PGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgICJEb3VibGVEb3duIENhc2lubyIgcmVzcGlu
IGJ1dHRvbiBzdG9wcyB3b3JraW5nIHdpdGggdHJhY2twYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTg2OWRmNDRl
YmFiZWIyZDAzYmNjMTE3YmRlZTU1NTFjZGM4YWEzMS4uMjYzZjIwNzg4ODk2OTRkYzg1NjFiNjU5
NjFhMjZhMWU4YzdiZThhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NyBAQAorMjAyMC0wOC0wNSAg
QWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBT
aG93IHBpY2tlciBmb3IgZGF0ZSBhbmQgZGF0ZXRpbWUtbG9jYWwgaW5wdXQgdHlwZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDk0NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0ZWQgV0tEYXRl
VGltZVBpY2tlciBhcyBhIHdyYXBwZXIgYXJvdW5kIE5TRGF0ZVBpY2tlci4gVGhlIHBpY2tlciBp
cworICAgICAgICBkaXNwbGF5ZWQgaW4gaXRzIG93biBOU1dpbmRvdywgZW5zdXJpbmcgdGhlIHZp
ZXcgaXMgYWx3YXlzIGFib3ZlIHRoZSBwYWdlLgorICAgICAgICBXZWJQYWdlUHJveHkgYW5kIFdL
RGF0ZVRpbWVQaWNrZXIgY29tbXVuaWNhdGUgdGhyb3VnaCBXZWJEYXRlVGltZVBpY2tlck1hYywK
KyAgICAgICAgaW4gb3JkZXIgZm9yIHRoZSBwaWNrZXIgdG8gYmUgaW5pdGlhbGl6ZWQgd2l0aCB0
aGUgY29ycmVjdCBpbml0aWFsLCBtaW5pbXVtLAorICAgICAgICBhbmQgbWF4aW11bSBkYXRlLCBh
bmQgc28gdGhhdCB0aGUgY2hvc2VuIGRhdGUgY2FuIGJlIHNlbnQgYmFjayB0byB0aGUKKyAgICAg
ICAgV2ViUHJvY2Vzcy4KKworICAgICAgICBBZGRlZCBJUEMgbWVzc2FnZXMgdG8gZW5hYmxlIGNv
bW11bmljYXRpb24gYmV0d2VlbiB0aGUgVUlQcm9jZXNzIGFuZCB0aGUKKyAgICAgICAgV2ViUHJv
Y2VzcyBuZWNlc3NhcnkgZm9yIHNob3dpbmcgYW5kIGhpZGluZyB0aGUgcGlja2VyLgorCisgICAg
ICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJEYXRlVGlt
ZVBpY2tlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRlVGltZVBpY2tlcjo6
V2ViRGF0ZVRpbWVQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRlVGltZVBpY2tlcjo6
fldlYkRhdGVUaW1lUGlja2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0ZVRpbWVQaWNrZXI6
OmVuZFBpY2tlcik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlja2VyLmg6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnNob3dEYXRlVGltZVBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6ZW5kRGF0ZVRpbWVQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRpZENob29zZURhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmRpZEVuZERhdGVUaW1lUGlja2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpj
bG9zZU92ZXJsYXllZFZpZXdzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudElt
cGw6OmNyZWF0ZURhdGVUaW1lUGlja2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VD
bGllbnRJbXBsTWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmNyZWF0ZURhdGVUaW1lUGlj
a2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkRhdGVUaW1lUGlja2VyTWFjLmg6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViRGF0ZVRpbWVQaWNrZXJNYWMubW06IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRlVGltZVBpY2tlck1hYzo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViRGF0ZVRpbWVQaWNrZXJNYWM6On5XZWJEYXRlVGltZVBpY2tlck1h
Yyk6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGVUaW1lUGlja2VyTWFjOjpXZWJEYXRlVGltZVBp
Y2tlck1hYyk6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGVUaW1lUGlja2VyTWFjOjplbmRQaWNr
ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRlVGltZVBpY2tlck1hYzo6c2hvd0RhdGVUaW1l
UGlja2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0ZVRpbWVQaWNrZXJNYWM6OmRpZENob29z
ZURhdGUpOgorICAgICAgICAoLVtXS0RhdGVUaW1lUGlja2VyV2luZG93IGluaXRXaXRoQ29udGVu
dFJlY3Q6c3R5bGVNYXNrOmJhY2tpbmc6ZGVmZXI6XSk6CisgICAgICAgICgtW1dLRGF0ZVRpbWVQ
aWNrZXJXaW5kb3cgY2FuQmVjb21lS2V5V2luZG93XSk6CisgICAgICAgICgtW1dLRGF0ZVRpbWVQ
aWNrZXJXaW5kb3cgaGFzS2V5QXBwZWFyYW5jZV0pOgorICAgICAgICAoLVtXS0RhdGVUaW1lUGlj
a2VyV2luZG93IHNoYWRvd09wdGlvbnNdKToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBpY2tlciBp
bml0V2l0aFBhcmFtczppblZpZXc6XSk6CisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIgc2hv
d1BpY2tlcjpdKToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBpY2tlciBpbnZhbGlkYXRlXSk6Cisg
ICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIgZGlkQ2hvb3NlRGF0ZTpdKToKKyAgICAgICAgKC1b
V0tEYXRlVGltZVBpY2tlciBkYXRlRm9ybWF0U3RyaW5nRm9yVHlwZTpdKToKKyAgICAgICAgKiBX
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNo
cm9tZUNsaWVudDo6Y3JlYXRlRGF0ZVRpbWVDaG9vc2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRGF0ZVRpbWVDaG9vc2VyLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYkRhdGVUaW1lQ2hvb3Nlcjo6V2ViRGF0ZVRpbWVDaG9vc2VyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViRGF0ZVRpbWVDaG9vc2VyOjpkaWRDaG9vc2VEYXRlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViRGF0ZVRpbWVDaG9vc2VyOjpkaWRFbmRDaG9vc2VyKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRGF0ZVRpbWVDaG9vc2VyOjplbmRDaG9vc2VyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
RGF0ZVRpbWVDaG9vc2VyOjpzaG93Q2hvb3Nlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJEYXRlVGltZUNob29zZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRB
Y3RpdmVEYXRlVGltZUNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDaG9v
c2VEYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkRW5kRGF0ZVRpbWVQaWNrZXIp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjAtMDgtMDQgIEJyZW50
IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWls
ZCBmaXggYWZ0ZXIgcjI2NTI2MwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGNhZmVm
ZTMwNjQ5NzIwMzk0Y2IwODg4MDIyYWE4NjMzNmIzZjJlZWYuLjc0YmNlMTc4NjEwZmYwNGI3NDRk
ZjFlYWYxMzZmMjM1ZWNmMTExYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMC0wOC0wNSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5j
b20+CisKKyAgICAgICAgW21hY09TXSBTaG93IHBpY2tlciBmb3IgZGF0ZSBhbmQgZGF0ZXRpbWUt
bG9jYWwgaW5wdXQgdHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNDk0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFttYWNPU10gU2hvdyBwaWNrZXIgZm9yIGRhdGUgYW5kIGRhdGV0aW1lLWxvY2Fs
IGlucHV0IHR5cGVzCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAg
IChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURhdGVUaW1lQ2hvb3Nlcik6CisKIDIwMjAtMDgtMDMg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgdXNlciBn
ZXN0dXJlIHByb3BhZ2F0aW9uIG92ZXIgcHJvbWlzZSBiZWhpbmQgYSBmZWF0dXJlIGZsYWcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAwMmUxODAyYzQ5ZjA5OGU5Y2NkZThjZDM5OWEzM2UwODI4YmNhMTlmLi5iZDVkODdiZGRkNzhl
YjYxZGI3ZjZmMmRmMjAyYTdjMjYyZmU0MTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDAwLDggKzEwMDAsOCBAQAogCQkz
N0M3MzhFQjFFREJEMzg0MDAzRjJCMEIgLyogUGVyZm9ybWFuY2VNZWFzdXJlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0M3MzhFQTFFREJEMzgxMDAz
RjJCMEIgLyogUGVyZm9ybWFuY2VNZWFzdXJlLmggKi87IH07CiAJCTM3QzczOEVEMUVEQkQ1QkMw
MDNGMkIwQiAvKiBTVkdVbmtub3duRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzdDNzM4RUMxRURCRDVCNzAwM0YyQjBCIC8qIFNWR1Vua25v
d25FbGVtZW50LmggKi87IH07CiAJCTM3QzczOEVGMUVEQkQ3MUIwMDNGMkIwQiAvKiBNYXRoTUxV
bmtub3duRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzdDNzM4RUUxRURCRDcxODAwM0YyQjBCIC8qIE1hdGhNTFVua25vd25FbGVtZW50Lmgg
Ki87IH07Ci0JCTM3QzczOEYzMUVEQkRFOEEwMDNGMkIwQiAvKiBEYXRlVGltZUNob29zZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3QzczOEYxMUVE
QkRFODcwMDNGMkIwQiAvKiBEYXRlVGltZUNob29zZXIuaCAqLzsgfTsKLQkJMzdDNzM4RjQxRURC
REU4RDAwM0YyQjBCIC8qIERhdGVUaW1lQ2hvb3NlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdDNzM4RjIxRURCREU4NzAwM0YyQjBCIC8q
IERhdGVUaW1lQ2hvb3NlckNsaWVudC5oICovOyB9OworCQkzN0M3MzhGMzFFREJERThBMDAzRjJC
MEIgLyogRGF0ZVRpbWVDaG9vc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzN0M3MzhGMTFFREJERTg3MDAzRjJCMEIgLyogRGF0ZVRpbWVDaG9vc2Vy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMzdD
NzM4RjQxRURCREU4RDAwM0YyQjBCIC8qIERhdGVUaW1lQ2hvb3NlckNsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdDNzM4RjIxRURCREU4NzAw
M0YyQjBCIC8qIERhdGVUaW1lQ2hvb3NlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3RDQ1NkZEMUE5QTUwRDgwMDMzMzBBMSAvKiBM
b2NhbGl6YWJsZVN0cmluZ3MucG0gaW4gQ29weSBTY3JpcHRzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDM3RDQ1NkZCMUE5QTUwQjYwMDMzMzBBMSAvKiBMb2NhbGl6YWJsZVN0
cmluZ3MucG0gKi87IH07CiAJCTM3RTM1MjREMTI0NTBDNjYwMEJBRjVEOSAvKiBJbnB1dFR5cGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RTM1MjRD
MTI0NTBDNjYwMEJBRjVEOSAvKiBJbnB1dFR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzN0Y1NjdDRTE2NTM1OEY0MDBEREU5MkIgLyogUG9w
dXBPcGVuaW5nT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDM3NzJCMDk1MTY1MzU4NTYwMDBBNDlDQSAvKiBQb3B1cE9wZW5pbmdPYnNlcnZl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01
MDcxLDYgKzUwNzEsNyBAQAogCQlFNThCNDVCQTIwQUQwN0REMDA5OTEwMjUgLyogRGF0YUxpc3RC
dXR0b25FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNThCNDVCODIwQUQwN0REMDA5OTEwMjUgLyogRGF0YUxpc3RCdXR0b25FbGVtZW50Lmgg
Ki87IH07CiAJCUU1OURENEI4MjEwOTgyODcwMDNDOEI0NyAvKiBMaXN0QnV0dG9uQXJyb3cucG5n
IGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTlERDRC
NzIxMDk4Mjg1MDAzQzhCNDcgLyogTGlzdEJ1dHRvbkFycm93LnBuZyAqLzsgfTsKIAkJRTVCQTdE
NjMxNTE0MzdDQTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVCQTdENjIxNTE0MzdDQTAwRkUxRTNGIC8q
IExlbmd0aEZ1bmN0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCUU1QzU5QTlBMjREMEUxQUEwMDNCODZFMSAvKiBEYXRlVGltZUNob29zZXJQ
YXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNUM1OUE5OTI0RDBFMUFBMDAzQjg2RTEgLyogRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU3MTQ2
N0IzMjRBQkFFRjIwMEZCMkY1MCAvKiBBdWRpb05vZGVPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzE0NjdCMTI0QUJBRUYxMDBGQjJGNTAg
LyogQXVkaW9Ob2RlT3B0aW9ucy5oICovOyB9OwogCQlFNzE0NjdCNjI0QUJBRjFEMDBGQjJGNTAg
LyogUGFubmVyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTcxNDY3QjUyNEFCQUYxRDAwRkIyRjUwIC8qIFBhbm5lck9wdGlvbnMuaCAqLzsg
fTsKIAkJRTc1NUU4OTIyNEM3NDM0QjAwOUY3QzIzIC8qIFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzU1RTg4
RjI0Qzc0MzRCMDA5RjdDMjMgLyogUGVyaW9kaWNXYXZlQ29uc3RyYWludHMuaCAqLzsgfTsKQEAg
LTE1ODg1LDYgKzE1ODg2LDcgQEAKIAkJRTU4QjQ1QjgyMEFEMDdERDAwOTkxMDI1IC8qIERhdGFM
aXN0QnV0dG9uRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhTGlzdEJ1dHRvbkVsZW1lbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTU5REQ0QjcyMTA5ODI4NTAwM0M4QjQ3
IC8qIExpc3RCdXR0b25BcnJvdy5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSBMaXN0QnV0dG9uQXJyb3cucG5nOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNUJBN0Q2MjE1MTQzN0NBMDBGRTFFM0YgLyog
TGVuZ3RoRnVuY3Rpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlbmd0
aEZ1bmN0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNUM1OUE5OTI0RDBF
MUFBMDAzQjg2RTEgLyogRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU3MTQ2N0IxMjRBQkFFRjEwMEZCMkY1MCAvKiBBdWRpb05v
ZGVPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvTm9kZU9w
dGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTcxNDY3QjQyNEFCQUYwQjAw
RkIyRjUwIC8qIEF1ZGlvTm9kZU9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEF1ZGlvTm9kZU9wdGlvbnMuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNzE0NjdCNTI0QUJBRjFEMDBGQjJGNTAg
LyogUGFubmVyT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYW5u
ZXJPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjYzMyw2ICsyNjYz
NSw3IEBACiAJCQkJQTU3MzJCMDkxMzZBMTYxRDAwNUM4RDdDIC8qIERhdGVDb21wb25lbnRzLmgg
Ki8sCiAJCQkJMzdDNzM4RjExRURCREU4NzAwM0YyQjBCIC8qIERhdGVUaW1lQ2hvb3Nlci5oICov
LAogCQkJCTM3QzczOEYyMUVEQkRFODcwMDNGMkIwQiAvKiBEYXRlVGltZUNob29zZXJDbGllbnQu
aCAqLywKKwkJCQlFNUM1OUE5OTI0RDBFMUFBMDAzQjg2RTEgLyogRGF0ZVRpbWVDaG9vc2VyUGFy
YW1ldGVycy5oICovLAogCQkJCTQ1RkVBNUNEMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmNw
cCAqLywKIAkJCQk0NUZFQTVDRTE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5oICovLAogCQkJ
CUNEODNEMzVBMjExMTEwODIwMDc2RTExQyAvKiBEZWZlcnJhYmxlVGFzay5oICovLApAQCAtMzA2
NTEsNiArMzA2NTQsNyBAQAogCQkJCUY1NUIzREI2MTI1MUYxMkQwMDNFRjI2OSAvKiBEYXRlSW5w
dXRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0M3MzhGMzFFREJERThBMDAzRjJCMEIgLyog
RGF0ZVRpbWVDaG9vc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0M3MzhGNDFFREJERThEMDAz
RjJCMEIgLyogRGF0ZVRpbWVDaG9vc2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlFNUM1
OUE5QTI0RDBFMUFBMDAzQjg2RTEgLyogRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDUzRUI2MzcxNTlDNTcwNDAwMDAxQkI3IC8qIERhdGVUaW1lRm9ybWF0
LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RCQTEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZVRp
bWVMb2NhbElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2QTEyQkUxQTAwOTIzNzAw
QzZERTcyIC8qIERlYnVnUGFnZU92ZXJsYXlzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0
VHlwZS5jcHAKaW5kZXggNTQyMWZkYjRiZjZiODFkZTlmNTRlMWIyMTY2NWE5NzViZDNhMzMxNS4u
NDI0YjkyOTQ4YjQzMTg0NDBiYzUxYzU4ZTgwYmVkNGI5Y2NmOGI0NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0
VHlwZS5jcHAKQEAgLTI5LDYgKzI5LDggQEAKIAogI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lO
UFVUX1RZUEVTKQogCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiRGF0ZVRpbWVDaG9v
c2VyUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTU3LDYgKzU5LDIyIEBA
IHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2
YXRlRXZlbnQoRXZlbnQmKQogICAgIERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMgcGFyYW1ldGVy
czsKICAgICBpZiAoIWVsZW1lbnQoKS0+c2V0dXBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzKHBh
cmFtZXRlcnMpKQogICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0byBjaHJvbWUgPSB0aGlz
LT5jaHJvbWUoKSkgeworICAgICAgICBtX2RhdGVUaW1lQ2hvb3NlciA9IGNocm9tZS0+Y3JlYXRl
RGF0ZVRpbWVDaG9vc2VyKCp0aGlzKTsKKyAgICAgICAgaWYgKG1fZGF0ZVRpbWVDaG9vc2VyKQor
ICAgICAgICAgICAgbV9kYXRlVGltZUNob29zZXItPnNob3dDaG9vc2VyKHBhcmFtZXRlcnMpOwor
ICAgIH0KK30KKwordm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZWxl
bWVudERpZEJsdXIoKQoreworICAgIGNsb3NlRGF0ZVRpbWVDaG9vc2VyKCk7Cit9CisKK2Jvb2wg
QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmlzUHJlc2VudGluZ0F0dGFjaGVk
VmlldygpIGNvbnN0Cit7CisgICAgcmV0dXJuICEhbV9kYXRlVGltZUNob29zZXI7CiB9CiAKIHZv
aWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRy
ZWUoKQpAQCAtOTYsMTAgKzExNCwxMCBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1l
SW5wdXRUeXBlOjpkZXRhY2goKQogICAgIGNsb3NlRGF0ZVRpbWVDaG9vc2VyKCk7CiB9CiAKLXZv
aWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmRpZENob29zZVZhbHVlKGNv
bnN0IFN0cmluZyYgdmFsdWUpCit2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRU
eXBlOjpkaWRDaG9vc2VWYWx1ZShTdHJpbmdWaWV3IHZhbHVlKQogewogICAgIEFTU0VSVChlbGVt
ZW50KCkpOwotICAgIGVsZW1lbnQoKS0+c2V0VmFsdWUodmFsdWUsIERpc3BhdGNoSW5wdXRBbmRD
aGFuZ2VFdmVudCk7CisgICAgZWxlbWVudCgpLT5zZXRWYWx1ZSh2YWx1ZS50b1N0cmluZygpLCBE
aXNwYXRjaElucHV0QW5kQ2hhbmdlRXZlbnQpOwogfQogCiB2b2lkIEJhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlOjpkaWRFbmRDaG9vc2VyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAppbmRl
eCBhM2YxY2Y1YTViMmFjYTBjYThlOTk1MTgxMTY5NTIwMGEzMzc4ZjBkLi4xNGExZWUwYjMzMjI1
MDE3OWI4NzcwMDRhZWU5MWNhYmViNTA4MDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oCkBAIC00OSwx
OCArNDksMjAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRldGFjaCgpIG92ZXJyaWRlOwogICAgIHZv
aWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2
ZW50QmVoYXZpb3IpIG92ZXJyaWRlOwogICAgIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChF
dmVudCYpIG92ZXJyaWRlOworICAgIHZvaWQgZWxlbWVudERpZEJsdXIoKSBmaW5hbDsKICAgICBT
aG91bGRDYWxsQmFzZUV2ZW50SGFuZGxlciBoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVu
dCYpIG92ZXJyaWRlOwogICAgIHZvaWQgaGFuZGxlS2V5cHJlc3NFdmVudChLZXlib2FyZEV2ZW50
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBoYW5kbGVLZXl1cEV2ZW50KEtleWJvYXJkRXZlbnQmKSBv
dmVycmlkZTsKICAgICBib29sIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykg
b3ZlcnJpZGU7CiAgICAgYm9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgYm9vbCBpc1ByZXNlbnRpbmdBdHRhY2hlZFZpZXcoKSBjb25zdCBmaW5hbDsKICAgICB2b2lk
IGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAg
Ly8gRGF0ZVRpbWVDaG9vc2VyQ2xpZW50IGZ1bmN0aW9uczoKLSAgICB2b2lkIGRpZENob29zZVZh
bHVlKGNvbnN0IFN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgZGlkQ2hvb3NlVmFsdWUoU3RyaW5n
VmlldykgZmluYWw7CiAgICAgdm9pZCBkaWRFbmRDaG9vc2VyKCkgZmluYWw7CiAKLSAgICBSZWZQ
dHI8RGF0ZVRpbWVDaG9vc2VyPiBtX2RhdGVUaW1lQ2hvb3NlcjsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8RGF0ZVRpbWVDaG9vc2VyPiBtX2RhdGVUaW1lQ2hvb3NlcjsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4
IDE5MzgzZTdiZTRhNWY1OTVkY2U0Yzk4YTQ3ZDE3NjJiMzYzYTQxNGMuLjA0MGQ4NzBhNDA4NDA4
OTFiN2NlMGUyMTk5YmNiNTk0MDBlZDY2OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2lu
Y2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRhdGVUaW1lQ2hvb3Nlci5oIgorI2lu
Y2x1ZGUgIkRhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKaW5kZXggNDkwMjYwYzI4Yzc5ZjM1MDY3NjI3Yzg5
ZGIwMmY5YjY5YmIwZWUwNC4uZWJhZTdkMWQxNmU1OTYxZTE3ZjQ3MDkwZGJhZWVlNzdiYmY1NTg2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKQEAgLTEyOSw2ICsxMjks
OCBAQCBib29sIE1vbnRoSW5wdXRUeXBlOjppc01vbnRoRmllbGQoKSBjb25zdAogICAgIHJldHVy
biB0cnVlOwogfQogCit2b2lkIE1vbnRoSW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50
KEV2ZW50JikgeyB9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKaW5kZXggMGNjYTkyMmE1M2M0MGRmMTU4ZGNmYjJjNjA2
MWQ4YTM4Yzg0YWY4NC4uNGJiZDExZGQwZTAyNzQwOTU5N2I5MTNhZDliYTNkODQ4ZTA2Zjc5NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaApAQCAtNTEsNiArNTEsNyBAQCBwcml2
YXRlOgogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBwYXJzZVRvRGF0ZUNvbXBvbmVudHMo
Y29uc3QgU3RyaW5nVmlldyYpIGNvbnN0IG92ZXJyaWRlOwogICAgIE9wdGlvbmFsPERhdGVDb21w
b25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlKSBjb25zdCBvdmVy
cmlkZTsKICAgICBib29sIGlzTW9udGhGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQg
aGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRU
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKaW5kZXggMGJk
MmQ0YmNlOWE1OGViNzk2Nzk3YjM4MTEwMDg0NWFlNWQ2NTZmZC4uNTA5MzNjYWVjNzhkZDgwZDAx
ODZhNDlhZTllODdkNGJlODNjZDUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9U
aW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUu
Y3BwCkBAIC0xMDQsNiArMTA0LDggQEAgYm9vbCBUaW1lSW5wdXRUeXBlOjppc1RpbWVGaWVsZCgp
IGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgVGltZUlucHV0VHlwZTo6aGFuZGxl
RE9NQWN0aXZhdGVFdmVudChFdmVudCYpIHsgfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAppbmRleCA4NDE2NmIwOTVhZjIx
ODhjYThlMDc1NmJlN2U1NTcxMWIxMmQ4ZWQ0Li4xZTg2MGMzMTdmZmRjMDFjOWNlYzZmZmI0ZTNk
MzQwMjljMDNmZmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaApAQCAtNDgsNiAr
NDgsNyBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBwYXJzZVRvRGF0
ZUNvbXBvbmVudHMoY29uc3QgU3RyaW5nVmlldyYpIGNvbnN0IG92ZXJyaWRlOwogICAgIE9wdGlv
bmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91Ymxl
KSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzVGltZUZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50Jikgb3ZlcnJpZGU7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1dlZWtJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNw
cAppbmRleCBiMmJiMjQzYjkwNWQ4NDE1YjAzNGM5NDA2ZTRiZmEzODIxYjM5YmEzLi44NzQ3Yjcz
NTViZjMyMDlhMDZmNTJmOTY2ZmI2OTZjNjUxMDAxN2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vl
a0lucHV0VHlwZS5jcHAKQEAgLTgyLDYgKzgyLDggQEAgYm9vbCBXZWVrSW5wdXRUeXBlOjppc1dl
ZWtGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgV2Vla0lucHV0VHlw
ZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIHsgfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5w
dXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaAppbmRleCBkM2Jh
MTUxMzNlNzM0MTFlYTgwNTRjMDMzY2YxMDZhNWMzNjZhM2E3Li41MDk4MTc0NGJmZTRlYmI3MTNh
ZmViODliNmYwZGFkYTg2MTVhYjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dl
ZWtJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaApA
QCAtNDcsNiArNDcsNyBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBw
YXJzZVRvRGF0ZUNvbXBvbmVudHMoY29uc3QgU3RyaW5nVmlldyYpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVu
dHMoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzV2Vla0ZpZWxkKCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50Jikgb3ZlcnJp
ZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuY3BwCmluZGV4IDBjMTRhZTY5MGNkM2Y0NmE2M2JhZTYxNjA4NTRmMWEwM2I4MTFi
NDEuLjJlOGE0ZWM2ZTcwMmQ4ZDBjMDEzOWE0MjNiZmU0YjJhYzAxMzA4YzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC00OTEsNiArNDkxLDE1IEBAIHN0ZDo6dW5p
cXVlX3B0cjxEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI+IEVtcHR5Q2hyb21lQ2xpZW50OjpjcmVh
dGVEYXRhTGlzdFN1Z2dlCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5Q
VVRfVFlQRVMpCisKK3N0ZDo6dW5pcXVlX3B0cjxEYXRlVGltZUNob29zZXI+IEVtcHR5Q2hyb21l
Q2xpZW50OjpjcmVhdGVEYXRlVGltZUNob29zZXIoRGF0ZVRpbWVDaG9vc2VyQ2xpZW50JikKK3sK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworI2VuZGlmCisKIHZvaWQgRW1wdHlDaHJvbWVDbGll
bnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9vc2VyJikKIHsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuaAppbmRleCA3MWQ0ZTU0MzkxYjYwNTYyNWMxZWNkYzRlOTdhN2Ez
MDFkMDEzNzkzLi4zZTlkZTdkMjY2YTlkZWE2ZTFhMDM0NDZhNTllZjdmNDAwNjA5OTRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0xMzYsNiArMTM2LDEwIEBAIGNsYXNz
IEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAgICAgYm9vbCBjYW5T
aG93RGF0YUxpc3RTdWdnZXN0aW9uTGFiZWxzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7
IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisgICAg
c3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lQ2hvb3Nlcj4gY3JlYXRlRGF0ZVRpbWVDaG9vc2VyKERh
dGVUaW1lQ2hvb3NlckNsaWVudCYpIGZpbmFsOworI2VuZGlmCisKICAgICB2b2lkIHJ1bk9wZW5Q
YW5lbChGcmFtZSYsIEZpbGVDaG9vc2VyJikgZmluYWw7CiAgICAgdm9pZCBzaG93U2hhcmVTaGVl
dChTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JikgZmluYWw7CiAgICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiwgRmlsZUljb25Mb2FkZXImKSBmaW5hbCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAppbmRleCA1
NDUzN2FkYmU1ZGE2Y2Y0YjkzMjFmMDA4M2I1OGZhYmE1MGZmMDZmLi5kYjA3MGJjYzdlMjY2MDQ3
N2ZjMGM2YzI1ODBhNThiZDExZWMxMTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC02MSw2
ICs2MSwxMCBAQAogI2luY2x1ZGUgIkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oIgogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKyNpbmNsdWRlICJEYXRl
VGltZUNob29zZXIuaCIKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoR1JB
UEhJQ1NfQ09OVEVYVF9HTCkKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFn
ZXIuaCIKICNlbmRpZgpAQCAtNDQyLDYgKzQ0NiwyMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8RGF0YUxp
c3RTdWdnZXN0aW9uUGlja2VyPiBDaHJvbWU6OmNyZWF0ZURhdGFMaXN0U3VnZ2VzdGlvblBpY2tl
cgogCiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorCitz
dGQ6OnVuaXF1ZV9wdHI8RGF0ZVRpbWVDaG9vc2VyPiBDaHJvbWU6OmNyZWF0ZURhdGVUaW1lQ2hv
b3NlcihEYXRlVGltZUNob29zZXJDbGllbnQmIGNsaWVudCkKK3sKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgIFVOVVNFRF9QQVJBTShjbGllbnQpOworICAgIHJldHVybiBudWxscHRyOwor
I2Vsc2UKKyAgICBub3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKKyAgICByZXR1cm4gbV9j
bGllbnQuY3JlYXRlRGF0ZVRpbWVDaG9vc2VyKGNsaWVudCk7CisjZW5kaWYKK30KKworI2VuZGlm
CisKIHZvaWQgQ2hyb21lOjpydW5PcGVuUGFuZWwoRnJhbWUmIGZyYW1lLCBGaWxlQ2hvb3NlciYg
ZmlsZUNob29zZXIpCiB7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWUuaAppbmRleCAyMDczNGU0MWI1MjQ4NTBhYmM5Y2I1MzU3NDI4MDk2ODMxOWNhMjUz
Li45NGI5NTJkNmU4ZjNjYTE4YzkzYjE5MTBlNTEzYTc5MjRiNzQwNmUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmgKQEAgLTE1Nyw2ICsxNTcsMTAgQEAgcHVibGljOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxE
YXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI+IGNyZWF0ZURhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcihE
YXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50Jik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRFX0FO
RF9USU1FX0lOUFVUX1RZUEVTKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRlVGltZUNob29zZXI+
IGNyZWF0ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGltZUNob29zZXJDbGllbnQmKTsKKyNlbmRpZgor
CiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hvb3NlciYpOwogICAgIHZvaWQg
c2hvd1NoYXJlU2hlZXQoU2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApp
bmRleCBjMGEwZDMwYmNmZGYzZjQxY2YwZThkN2YzZGU0YzI0YzAxZGI2Nzk4Li4xMzY0YjNhZWE2
YjEyM2IwNjE0MWVmZjRjMWE1Y2M3MWNjYzk5ZjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKQEAgLTI4OSw2ICsyODksMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjYW5T
aG93RGF0YUxpc3RTdWdnZXN0aW9uTGFiZWxzKCkgY29uc3QgPSAwOwogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVl
X3B0cjxEYXRlVGltZUNob29zZXI+IGNyZWF0ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGltZUNob29z
ZXJDbGllbnQmKSA9IDA7CisjZW5kaWYKKwogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwo
RnJhbWUmLCBGaWxlQ2hvb3NlciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd1NoYXJlU2hl
ZXQoU2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJiBjYWxsYmFjaykgeyBjYWxsYmFjayhmYWxzZSk7IH0KICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGVUaW1lQ2hvb3Nlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRGF0ZVRpbWVDaG9vc2VyLmgKaW5kZXggMjNiMDVkN2M4MjRmNTU2OGM4Zjg3
Zjk3ODUzNzRhYmMxM2EwMTBlYi4uMGY2N2NlNDgwYWQ2MmE5M2Y1OGQ5NGUxMmE1ZTkxMjQ2Nzhi
MzY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZVRpbWVDaG9vc2Vy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZVRpbWVDaG9vc2VyLmgKQEAgLTI4
LDQzICsyOCwyMyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIERhdGVUaW1lQ2hv
b3Nlcl9oCi0jZGVmaW5lIERhdGVUaW1lQ2hvb3Nlcl9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVO
QUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQotI2luY2x1ZGUgIkludFJlY3QuaCIKLSNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3Ry
dWN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMgewotICAgIEF0b21TdHJpbmcgdHlwZTsKLSAg
ICBJbnRSZWN0IGFuY2hvclJlY3RJblJvb3RWaWV3OwotICAgIC8vIExvY2FsZSBuYW1lIGZvciB3
aGljaCB0aGUgY2hvb3NlciBzaG91bGQgYmUgbG9jYWxpemVkLiBUaGlzCi0gICAgLy8gbWlnaHQg
YmUgYW4gaW52YWxpZCBuYW1lIGJlY2F1c2UgaXQgY29tZXMgZnJvbSBIVE1MIGxhbmcKLSAgICAv
LyBhdHRyaWJ1dGVzLgotICAgIEF0b21TdHJpbmcgbG9jYWxlOwotICAgIFN0cmluZyBjdXJyZW50
VmFsdWU7Ci0gICAgVmVjdG9yPFN0cmluZz4gc3VnZ2VzdGlvblZhbHVlczsKLSAgICBWZWN0b3I8
U3RyaW5nPiBsb2NhbGl6ZWRTdWdnZXN0aW9uVmFsdWVzOwotICAgIFZlY3RvcjxTdHJpbmc+IHN1
Z2dlc3Rpb25MYWJlbHM7Ci0gICAgZG91YmxlIG1pbmltdW07Ci0gICAgZG91YmxlIG1heGltdW07
Ci0gICAgZG91YmxlIHN0ZXA7Ci0gICAgZG91YmxlIHN0ZXBCYXNlOwotICAgIGJvb2wgcmVxdWly
ZWQ7Ci0gICAgYm9vbCBpc0FuY2hvckVsZW1lbnRSVEw7Ci19Oworc3RydWN0IERhdGVUaW1lQ2hv
b3NlclBhcmFtZXRlcnM7CiAKLS8vIEZvciBwaWNrZXJzIGxpa2UgY29sb3IgcGlja2VycyBhbmQg
ZGF0ZSBwaWNrZXJzLgotY2xhc3MgRGF0ZVRpbWVDaG9vc2VyIDogcHVibGljIFJlZkNvdW50ZWQ8
RGF0ZVRpbWVDaG9vc2VyPiB7CitjbGFzcyBEYXRlVGltZUNob29zZXIgOiBwdWJsaWMgQ2FuTWFr
ZVdlYWtQdHI8RGF0ZVRpbWVDaG9vc2VyPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RGF0ZVRpbWVDaG9vc2VyKCkgPSBkZWZhdWx0OwogCiAg
ICAgdmlydHVhbCB2b2lkIGVuZENob29zZXIoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNob3dD
aG9vc2VyKGNvbnN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMmKSA9IDA7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAjZW5kaWYKLSNlbmRpZiAvLyBEYXRlVGltZUNob29zZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZVRpbWVDaG9vc2VyQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRlVGltZUNob29zZXJDbGllbnQuaAppbmRl
eCBmMzE5MTRmMzAxNDE4MjRhNWRmZjBmYjY5MmExYWI1ODY0ZjU4NjViLi4xMWQxM2VjZDNmMDA2
MjBiNDdmYThhMDFjNGRmNDIzYzQzNGZkN2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9EYXRlVGltZUNob29zZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9EYXRlVGltZUNob29zZXJDbGllbnQuaApAQCAtMjgsMTAgKzI4LDEwIEBACiAgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogICovCiAKLSNpZm5kZWYgRGF0ZVRpbWVDaG9vc2VyQ2xpZW50X2gKLSNkZWZpbmUg
RGF0ZVRpbWVDaG9vc2VyQ2xpZW50X2gKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKERBVEVf
QU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGF0
ZVRpbWVDaG9vc2VyQ2xpZW50IHsKQEAgLTM5LDExICszOSwxMSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB+RGF0ZVRpbWVDaG9vc2VyQ2xpZW50KCkgPSBkZWZhdWx0OwogCiAgICAgLy8gQ2FsbGVk
IHdoZW4gdXNlciBwaWNrZWQgYSB2YWx1ZS4KLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hvb3NlVmFs
dWUoY29uc3QgU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRDaG9vc2VWYWx1ZShT
dHJpbmdWaWV3KSA9IDA7CiAgICAgLy8gQ2FsbGVkIHdoZW4gY2hvb3NlciBoYXMgZW5kZWQuCiAg
ICAgdmlydHVhbCB2b2lkIGRpZEVuZENob29zZXIoKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0jZW5kaWYKLSNlbmRpZiAvLyBEYXRlVGltZUNob29zZXJDbGllbnRfaAorCisj
ZW5kaWYgLy8gRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODM0YmZmMjk5ZWRmYTU2M2IxZjM5ODcyNDNiMGRjMmViNWIzZjIyMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMu
aApAQCAtMCwwICsxLDEzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJz
IHsKKyAgICBBdG9tU3RyaW5nIHR5cGU7CisgICAgSW50UmVjdCBhbmNob3JSZWN0SW5Sb290Vmll
dzsKKyAgICAvLyBMb2NhbGUgbmFtZSBmb3Igd2hpY2ggdGhlIGNob29zZXIgc2hvdWxkIGJlIGxv
Y2FsaXplZC4gVGhpcworICAgIC8vIG1pZ2h0IGJlIGFuIGludmFsaWQgbmFtZSBiZWNhdXNlIGl0
IGNvbWVzIGZyb20gSFRNTCBsYW5nCisgICAgLy8gYXR0cmlidXRlcy4KKyAgICBBdG9tU3RyaW5n
IGxvY2FsZTsKKyAgICBTdHJpbmcgY3VycmVudFZhbHVlOworICAgIFZlY3RvcjxTdHJpbmc+IHN1
Z2dlc3Rpb25WYWx1ZXM7CisgICAgVmVjdG9yPFN0cmluZz4gbG9jYWxpemVkU3VnZ2VzdGlvblZh
bHVlczsKKyAgICBWZWN0b3I8U3RyaW5nPiBzdWdnZXN0aW9uTGFiZWxzOworICAgIGRvdWJsZSBt
aW5pbXVtOworICAgIGRvdWJsZSBtYXhpbXVtOworICAgIGRvdWJsZSBzdGVwOworICAgIGRvdWJs
ZSBzdGVwQmFzZTsKKyAgICBib29sIHJlcXVpcmVkOworICAgIGJvb2wgaXNBbmNob3JFbGVtZW50
UlRMOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYp
IGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxEYXRl
VGltZUNob29zZXJQYXJhbWV0ZXJzPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0eXBlOworICAgIGVuY29k
ZXIgPDwgYW5jaG9yUmVjdEluUm9vdFZpZXc7CisgICAgZW5jb2RlciA8PCBsb2NhbGU7CisgICAg
ZW5jb2RlciA8PCBjdXJyZW50VmFsdWU7CisgICAgZW5jb2RlciA8PCBzdWdnZXN0aW9uVmFsdWVz
OworICAgIGVuY29kZXIgPDwgbG9jYWxpemVkU3VnZ2VzdGlvblZhbHVlczsKKyAgICBlbmNvZGVy
IDw8IHN1Z2dlc3Rpb25MYWJlbHM7CisgICAgZW5jb2RlciA8PCBtaW5pbXVtOworICAgIGVuY29k
ZXIgPDwgbWF4aW11bTsKKyAgICBlbmNvZGVyIDw8IHN0ZXA7CisgICAgZW5jb2RlciA8PCBzdGVw
QmFzZTsKKyAgICBlbmNvZGVyIDw8IHJlcXVpcmVkOworICAgIGVuY29kZXIgPDwgaXNBbmNob3JF
bGVtZW50UlRMOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8RGF0ZVRp
bWVDaG9vc2VyUGFyYW1ldGVycz4gRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCit7CisgICAgQXRvbVN0cmluZyB0eXBlOworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUodHlwZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBJbnRS
ZWN0IGFuY2hvclJlY3RJblJvb3RWaWV3OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYW5jaG9y
UmVjdEluUm9vdFZpZXcpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgQXRv
bVN0cmluZyBsb2NhbGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShsb2NhbGUpKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgU3RyaW5nIGN1cnJlbnRWYWx1ZTsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKGN1cnJlbnRWYWx1ZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICBWZWN0b3I8U3RyaW5nPiBzdWdnZXN0aW9uVmFsdWVzOworICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoc3VnZ2VzdGlvblZhbHVlcykpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICBWZWN0b3I8U3RyaW5nPiBsb2NhbGl6ZWRTdWdnZXN0aW9uVmFsdWVzOwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUobG9jYWxpemVkU3VnZ2VzdGlvblZhbHVlcykpCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8U3RyaW5nPiBzdWdnZXN0aW9u
TGFiZWxzOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3VnZ2VzdGlvbkxhYmVscykpCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBkb3VibGUgbWluaW11bTsKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKG1pbmltdW0pKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgZG91YmxlIG1heGltdW07CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtYXhpbXVtKSkK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGRvdWJsZSBzdGVwOworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoc3RlcCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyAgICBkb3VibGUgc3RlcEJhc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGVwQmFzZSkp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBib29sIHJlcXVpcmVkOworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmVxdWlyZWQpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworCisgICAgYm9vbCBpc0FuY2hvckVsZW1lbnRSVEw7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShpc0FuY2hvckVsZW1lbnRSVEwpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgcmV0dXJuIHt7IHR5cGUsIGFuY2hvclJlY3RJblJvb3RWaWV3LCBsb2NhbGUsIGN1cnJl
bnRWYWx1ZSwgc3VnZ2VzdGlvblZhbHVlcywgbG9jYWxpemVkU3VnZ2VzdGlvblZhbHVlcywgc3Vn
Z2VzdGlvbkxhYmVscywgbWluaW11bSwgbWF4aW11bSwgc3RlcCwgc3RlcEJhc2UsIHJlcXVpcmVk
LCBpc0FuY2hvckVsZW1lbnRSVEwgfX07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzLnR4dAppbmRleCBhZDc4MmMyZTYyZjcyZjdlZWE4NWMzMWIwMGY3YmEyMDlm
MjJiNDk1Li45MTM4MjVmMmQwMzgwZmZkZGU0MTY0NDg1MmVhNGIyZDE2YjA3M2Q1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNl
cy50eHQKQEAgLTMwNSw2ICszMDUsNyBAQCBVSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5j
cHAKIFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCiBVSVByb2Nlc3MvV2ViQ29v
a2llTWFuYWdlclByb3h5Q2xpZW50LmNwcAogVUlQcm9jZXNzL1dlYkRhdGFMaXN0U3VnZ2VzdGlv
bnNEcm9wZG93bi5jcHAKK1VJUHJvY2Vzcy9XZWJEYXRlVGltZVBpY2tlci5jcHAKIFVJUHJvY2Vz
cy9XZWJFZGl0Q29tbWFuZFByb3h5LmNwcAogVUlQcm9jZXNzL1dlYkZvcm1DbGllbnQuY3BwCiBV
SVByb2Nlc3MvV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5LmNwcApAQCAtNjMwLDYgKzYz
MSw3IEBAIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIuY3BwCiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuY3BwCitXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkRhdGVUaW1lQ2hvb3Nlci5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkRyYWdDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBi
L1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCAwY2IwNDM0NWM0MThlYzE4ZWU1
ZWFjMWQ2ZmExYzcxMGIwOWQzODY5Li4yYzA1YjAyY2FkY2E1MDhiNjZmMTUzN2U0Y2E5YjE2NmJh
OTViMzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC00OTcsNiArNDk3LDcgQEAgVUlQcm9j
ZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5tbQogVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVu
dVByb3h5TWFjLm1tCiBVSVByb2Nlc3MvbWFjL1dlYkNvb2tpZU1hbmFnZXJQcm94eU1hYy5tbQog
VUlQcm9jZXNzL21hYy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMubW0KK1VJUHJv
Y2Vzcy9tYWMvV2ViRGF0ZVRpbWVQaWNrZXJNYWMubW0KIFVJUHJvY2Vzcy9tYWMvV2ViUGFnZVBy
b3h5TWFjLm1tCiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCiBVSVByb2Nl
c3MvbWFjL1dlYlByb2Nlc3NQcm94eU1hYy5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oCmluZGV4IDhjNmM1NzNjZmQ3MzQ5ZDBhMTFhZmI0YjM4Zjk2OTE3M2FkNjBiYjQuLmI1MTE3
MDQ3YWIwYWYzMTM5ZDgyNTM5OTJiNTQ2NmJhODU5MDI5NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJTaGFyZWFibGVCaXRt
YXAuaCIKICNpbmNsdWRlICJXZWJDb2xvclBpY2tlci5oIgogI2luY2x1ZGUgIldlYkRhdGFMaXN0
U3VnZ2VzdGlvbnNEcm9wZG93bi5oIgorI2luY2x1ZGUgIldlYkRhdGVUaW1lUGlja2VyLmgiCiAj
aW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5
U3RhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0FsdGVybmF0aXZlVGV4dENsaWVudC5oPgpAQCAt
MTU4LDYgKzE1OSwxMCBAQCBjbGFzcyBXZWJDb2xvclBpY2tlcjsKIGNsYXNzIFdlYkRhdGFMaXN0
U3VnZ2VzdGlvbnNEcm9wZG93bjsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVf
SU5QVVRfVFlQRVMpCitjbGFzcyBXZWJEYXRlVGltZVBpY2tlcjsKKyNlbmRpZgorCiAjaWYgRU5B
QkxFKEZVTExTQ1JFRU5fQVBJKQogY2xhc3MgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eUNsaWVu
dDsKICNlbmRpZgpAQCAtMzM5LDYgKzM0NCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZWZQ
dHI8V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duPiBjcmVhdGVEYXRhTGlzdFN1Z2dlc3Rp
b25zRHJvcGRvd24oV2ViUGFnZVByb3h5JikgPSAwOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFU
RV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKyAgICB2aXJ0dWFsIFJlZlB0cjxXZWJEYXRlVGltZVBp
Y2tlcj4gY3JlYXRlRGF0ZVRpbWVQaWNrZXIoV2ViUGFnZVByb3h5JikgPSAwOworI2VuZGlmCisK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2aXJ0dWFsIFJlZjxXZWJDb3JlOjpWYWxpZGF0aW9u
QnViYmxlPiBjcmVhdGVWYWxpZGF0aW9uQnViYmxlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZTo6U2V0dGluZ3MmKSA9IDA7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlja2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlja2VyLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40YjhiZGM1YzU3ZGNkZjFlYjA4MjdlZTVkYTY0MzEwM2IwYjNmZDAzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRGF0ZVRpbWVQaWNrZXIuY3BwCkBAIC0w
LDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViRGF0ZVRpbWVQaWNrZXIuaCIKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZ
UEVTKQorCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitXZWJEYXRlVGltZVBpY2tlcjo6V2ViRGF0ZVRpbWVQaWNrZXIoV2ViUGFnZVByb3h5JiBwYWdl
KQorICAgIDogbV9wYWdlKG1ha2VXZWFrUHRyKHBhZ2UpKQoreworfQorCitXZWJEYXRlVGltZVBp
Y2tlcjo6fldlYkRhdGVUaW1lUGlja2VyKCkKK3sKK30KKwordm9pZCBXZWJEYXRlVGltZVBpY2tl
cjo6ZW5kUGlja2VyKCkKK3sKKyAgICBpZiAoYXV0byBwYWdlID0gc3RkOjpleGNoYW5nZShtX3Bh
Z2UsIG51bGxwdHIpKQorICAgICAgICBwYWdlLT5kaWRFbmREYXRlVGltZVBpY2tlcigpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1F
X0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRGF0
ZVRpbWVQaWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlja2Vy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjk5ZmQ4ODMwNmVkZDhmZGY3YzVmMjdkOTNkMjJjYThiOWI5Yzc2Mwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlj
a2VyLmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVy
czsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKworY2xh
c3MgV2ViRGF0ZVRpbWVQaWNrZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJEYXRlVGltZVBpY2tl
cj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXZWJEYXRlVGltZVBpY2tlcj4geworcHVibGljOgor
ICAgIHZpcnR1YWwgfldlYkRhdGVUaW1lUGlja2VyKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgZW5k
UGlja2VyKCk7CisgICAgdmlydHVhbCB2b2lkIHNob3dEYXRlVGltZVBpY2tlcihXZWJDb3JlOjpE
YXRlVGltZUNob29zZXJQYXJhbWV0ZXJzJiYpID0gMDsKKworcHJvdGVjdGVkOgorICAgIGV4cGxp
Y2l0IFdlYkRhdGVUaW1lUGlja2VyKFdlYlBhZ2VQcm94eSYpOworCisgICAgV2Vha1B0cjxXZWJQ
YWdlUHJveHk+IG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAwZWQ3ZmM2NjE1MGE5MjRkMGNhYTRiMGQ5OGQ4ZTZj
YzYyMDhjYTM4Li5lN2QyOGIxMjMyNmU4YmE3YTVkMzk4MTMzYzJiYzBmNTUyMDQ4Yjg3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTI5Myw2ICsyOTMsMTAg
QEAKICNpbmNsdWRlICJEZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5oIgogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKyNpbmNsdWRlICJXZWJEYXRlVGltZVBp
Y2tlci5oIgorI2VuZGlmCisKIC8vIFRoaXMgY29udHJvbHMgd2hhdCBzdHJhdGVneSB3ZSB1c2Ug
Zm9yIG1vdXNlIHdoZWVsIGNvYWxlc2NpbmcuCiAjZGVmaW5lIE1FUkdFX1dIRUVMX0VWRU5UUyAx
CiAKQEAgLTYxNzAsNiArNjE3NCw0MyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU2VsZWN0T3B0
aW9uKGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRPcHRpb24pCiAKICNlbmRpZgogCisjaWYgRU5BQkxF
KERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzaG93RGF0
ZVRpbWVQaWNrZXIoV2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyYmIHBhcmFtcykK
K3sKKyAgICBpZiAoIW1fZGF0ZVRpbWVQaWNrZXIpCisgICAgICAgIG1fZGF0ZVRpbWVQaWNrZXIg
PSBwYWdlQ2xpZW50KCkuY3JlYXRlRGF0ZVRpbWVQaWNrZXIoKnRoaXMpOworCisgICAgbV9kYXRl
VGltZVBpY2tlci0+c2hvd0RhdGVUaW1lUGlja2VyKFdURk1vdmUocGFyYW1zKSk7Cit9CisKK3Zv
aWQgV2ViUGFnZVByb3h5OjplbmREYXRlVGltZVBpY2tlcigpCit7CisgICAgaWYgKCFtX2RhdGVU
aW1lUGlja2VyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2RhdGVUaW1lUGlja2VyLT5lbmRQ
aWNrZXIoKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmRpZENob29zZURhdGUoU3RyaW5nVmll
dyBkYXRlKQoreworICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkQ2hvb3NlRGF0ZShkYXRlLnRvU3Ry
aW5nKCkpKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmRpZEVuZERhdGVUaW1lUGlja2VyKCkK
K3sKKyAgICBtX2RhdGVUaW1lUGlja2VyID0gbnVsbHB0cjsKKyAgICBpZiAoIWhhc1J1bm5pbmdQ
cm9jZXNzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkRpZEVuZERhdGVUaW1lUGlja2VyKCkpOworfQorCisjZW5kaWYKKwogV2ViSW5zcGVjdG9yUHJv
eHkqIFdlYlBhZ2VQcm94eTo6aW5zcGVjdG9yKCkgY29uc3QKIHsKICAgICBpZiAoaXNDbG9zZWQo
KSkKQEAgLTkzNTEsNiArOTM5MiwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xvc2VPdmVybGF5
ZWRWaWV3cygpCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAgICAgZW5kQ29sb3JQaWNr
ZXIoKTsKICNlbmRpZgorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisg
ICAgZW5kRGF0ZVRpbWVQaWNrZXIoKTsKKyNlbmRpZgogfQogCiAjaWYgRU5BQkxFKFBPSU5URVJf
TE9DSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNmFjMDc1NjEw
NjM5NDQzMWNkYjMwYmNkNTNjNTQyZTUxNDk2MTkwNC4uMWUzN2U0NDRlNDA4ZmE4NTc5NGNiMmYz
OTMzNDJjZTYyMjNjYjVhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
QEAgLTI0OSw2ICsyNDksNyBAQCBzdHJ1Y3QgQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcjsKIHN0
cnVjdCBDb21wb3NpdGlvbkhpZ2hsaWdodDsKIHN0cnVjdCBDb250ZW50UnVsZUxpc3RSZXN1bHRz
Owogc3RydWN0IERhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uOworc3RydWN0IERhdGVUaW1l
Q2hvb3NlclBhcmFtZXRlcnM7CiBzdHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbzsKIHN0cnVjdCBE
cmFnSXRlbTsKIHN0cnVjdCBFbGVtZW50Q29udGV4dDsKQEAgLTQxOCw2ICs0MTksMTAgQEAgdXNp
bmcgRHJhd1RvUERGQ2FsbGJhY2sgPSBHZW5lcmljQ2FsbGJhY2s8Y29uc3QgSVBDOjpEYXRhUmVm
ZXJlbmNlJj47CiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxib29sLCBib29sLCBTdHJpbmcsIGRv
dWJsZSwgZG91YmxlLCB1aW50NjRfdD4gTm93UGxheWluZ0luZm9DYWxsYmFjazsKICNlbmRpZgog
CisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCitjbGFzcyBXZWJEYXRlVGlt
ZVBpY2tlcjsKKyNlbmRpZgorCiB1c2luZyBTcGVsbERvY3VtZW50VGFnID0gaW50NjRfdDsKIAog
Y2xhc3MgV2ViUGFnZVByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6
VHlwZTo6UGFnZT4KQEAgLTE2NDcsNiArMTY1MiwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRD
bG9zZVN1Z2dlc3Rpb25zKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lO
UFVUX1RZUEVTKQorICAgIHZvaWQgZGlkQ2hvb3NlRGF0ZShTdHJpbmdWaWV3KTsKKyAgICB2b2lk
IGRpZEVuZERhdGVUaW1lUGlja2VyKCk7CisjZW5kaWYKKwogICAgIHZvaWQgdXBkYXRlQ3VycmVu
dE1vZGlmaWVyU3RhdGUoKTsKIAogI2lmIEhBVkUoUEVOQ0lMS0lUKQpAQCAtMTk5OCw2ICsyMDA4
LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBlbmREYXRhTGlzdFN1Z2dlc3Rpb25zKCk7CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorICAgIHZvaWQgc2hv
d0RhdGVUaW1lUGlja2VyKFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMmJik7Cisg
ICAgdm9pZCBlbmREYXRlVGltZVBpY2tlcigpOworI2VuZGlmCisKICAgICB2b2lkIGNsb3NlT3Zl
cmxheWVkVmlld3MoKTsKIAogICAgIHZvaWQgY29tcG9zaXRpb25XYXNDYW5jZWxlZCgpOwpAQCAt
MjYwNCw2ICsyNjE5LDkgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkK
ICAgICBSZWZQdHI8V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duPiBtX2RhdGFMaXN0U3Vn
Z2VzdGlvbnNEcm9wZG93bjsKICNlbmRpZgorI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVU
X1RZUEVTKQorICAgIFJlZlB0cjxXZWJEYXRlVGltZVBpY2tlcj4gbV9kYXRlVGltZVBpY2tlcjsK
KyNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJlZlB0cjxXZWJDb3JlOjpWYWxpZGF0
aW9uQnViYmxlPiBtX3ZhbGlkYXRpb25CdWJibGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA2ZDhkOGQwYWEzNmRi
YjM2MDg2YmYzZTQxZGQwYjExNTNhNzE4M2VmLi4zYzU1MTY1ZWU3MjRhMWIwYjhlMThhNTI5OTNk
MTEwNjk5YThhMmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC05OCw2ICs5OCwxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJv
eHkgewogICAgIEVuZERhdGFMaXN0U3VnZ2VzdGlvbnMoKTsKICNlbmRpZgogCisjaWYgRU5BQkxF
KERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisgICAgU2hvd0RhdGVUaW1lUGlja2VyKHN0cnVj
dCBXZWJDb3JlOjpEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzIHBhcmFtcyk7CisgICAgRW5kRGF0
ZVRpbWVQaWNrZXIoKTsKKyNlbmRpZgorCiAgICAgIyBQb2xpY3kgbWVzc2FnZXMKICAgICBEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3Ry
dWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBTdHJpbmcgZG93bmxvYWRBdHRyaWJ1
dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAg
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZp
Z2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGlu
Z0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllcj4g
b3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVl
c3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9u
c2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDUw
NmFiMzA3NzJlOWU5OGUxMTFjODdjOGU3ZGJlZjAwMDQ1MGUzYTAuLjg2YTg1YTY3YmYxZjAzMWNj
MDBiMTgzMTczNWI2Y2ZlYzI5Yzc2NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC0xMjQsNiArMTI0LDEwIEBAIHByaXZhdGU6CiAg
ICAgUmVmUHRyPFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bj4gY3JlYXRlRGF0YUxpc3RT
dWdnZXN0aW9uc0Ryb3Bkb3duKFdlYlBhZ2VQcm94eSYpIGZpbmFsOwogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKyAgICBSZWZQdHI8V2ViRGF0ZVRpbWVQ
aWNrZXI+IGNyZWF0ZURhdGVUaW1lUGlja2VyKFdlYlBhZ2VQcm94eSYpIGZpbmFsOworI2VuZGlm
CisKICAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+
LCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpIG92ZXJyaWRlOwogICAgIHZv
aWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNz
YWxBbmltYXRpb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0VGV4dEluZGljYXRvckFuaW1hdGlv
blByb2dyZXNzKGZsb2F0KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCAxNTVmZmUxYTAxYjJmNzQ5ZjQ4NzAzZTlj
MzlkODM3Mjg3Mzc5MTJjLi43YjBhMzE2M2MyOGUzYzIyMzVlOTA1Mjg2MDcxYWJmODYzMzIzNGJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lm1tCkBAIC04NTgsNiArODU4LDEzIEBAIFJlZlB0cjxXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJv
cGRvd24+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVEYXRhTGlzdFN1Z2dlc3Rpb25zCiB9CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorUmVmUHRyPFdlYkRh
dGVUaW1lUGlja2VyPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRGF0ZVRpbWVQaWNrZXIoV2ViUGFn
ZVByb3h5JikKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxF
KERSQUdfU1VQUE9SVCkKIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFBlcmZvcm1EcmFnT3BlcmF0
aW9uKGJvb2wgaGFuZGxlZCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1Bh
Z2VDbGllbnRJbXBsTWFjLmgKaW5kZXggNWIwZDMxNzAyMDM2YjZmMmNkYTc3MjZiNjkzNzJkOWFl
ZTgyODUyYy4uZDE3MWM3YWI1YWIzMjcyODFjZDIwNjAzNTI0ZDE4MWFlNTRlMzFmMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKQEAgLTE0
Myw2ICsxNDMsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViRGF0YUxpc3RTdWdnZXN0aW9u
c0Ryb3Bkb3duPiBjcmVhdGVEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24oV2ViUGFnZVByb3h5
Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZ
UEVTKQorICAgIFJlZlB0cjxXZWJEYXRlVGltZVBpY2tlcj4gY3JlYXRlRGF0ZVRpbWVQaWNrZXIo
V2ViUGFnZVByb3h5Jikgb3ZlcnJpZGU7CisjZW5kaWYKKwogICAgIFJlZjxXZWJDb3JlOjpWYWxp
ZGF0aW9uQnViYmxlPiBjcmVhdGVWYWxpZGF0aW9uQnViYmxlKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZTo6U2V0dGluZ3MmKSBmaW5hbDsKIAog
ICAgIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KaW5kZXggNGQzNjg3
NzEwYzkyMTJiNDc2NGRlZWE1ZWY1ZWFjYTA3ODNkNWRhNC4uZmE3ZDkyZjU5Y2ViZjFlY2ZlZmU3
MjIwYzA5MmEzZmU3ZjA4YzBhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9QYWdlQ2xpZW50SW1wbE1hYy5tbQpAQCAtNTIsNiArNTIsNyBAQAogI2ltcG9ydCAiV2ViQ29s
b3JQaWNrZXJNYWMuaCIKICNpbXBvcnQgIldlYkNvbnRleHRNZW51UHJveHlNYWMuaCIKICNpbXBv
cnQgIldlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5oIgorI2ltcG9ydCAiV2ViRGF0
ZVRpbWVQaWNrZXJNYWMuaCIKICNpbXBvcnQgIldlYkVkaXRDb21tYW5kUHJveHkuaCIKICNpbXBv
cnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCAiV2ViUG9wdXBNZW51UHJveHlNYWMuaCIKQEAg
LTQ3Niw2ICs0NzcsMTMgQEAgUmVmUHRyPFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bj4g
UGFnZUNsaWVudEltcGw6OmNyZWF0ZURhdGFMaXN0U3VnZ2VzdGlvbnMKIH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCitSZWZQdHI8V2ViRGF0ZVRpbWVQ
aWNrZXI+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVEYXRlVGltZVBpY2tlcihXZWJQYWdlUHJveHkm
IHBhZ2UpCit7CisgICAgcmV0dXJuIFdlYkRhdGVUaW1lUGlja2VyTWFjOjpjcmVhdGUocGFnZSwg
bV92aWV3KTsKK30KKyNlbmRpZgorCiBSZWY8VmFsaWRhdGlvbkJ1YmJsZT4gUGFnZUNsaWVudElt
cGw6OmNyZWF0ZVZhbGlkYXRpb25CdWJibGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBW
YWxpZGF0aW9uQnViYmxlOjpTZXR0aW5ncyYgc2V0dGluZ3MpCiB7CiAgICAgcmV0dXJuIFZhbGlk
YXRpb25CdWJibGU6OmNyZWF0ZShtX3ZpZXcsIG1lc3NhZ2UsIHNldHRpbmdzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJEYXRlVGltZVBpY2tlck1hYy5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkRhdGVUaW1lUGlja2VyTWFjLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGFkZjllN2U2NmJlN2Q2ZDMzZWNjNGU5MDllNmUxZDA0MGIyODVhOAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJEYXRlVGltZVBpY2tlck1h
Yy5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBVU0UoQVBQS0lUKQorCisjaW1wb3J0
ICJXZWJEYXRlVGltZVBpY2tlci5oIgorI2ltcG9ydCA8V2ViQ29yZS9EYXRlVGltZUNob29zZXJQ
YXJhbWV0ZXJzLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvdGV4
dC9TdHJpbmdWaWV3Lmg+CisKK0BjbGFzcyBXS0RhdGVUaW1lUGlja2VyOworCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgV2ViRGF0ZVRpbWVQaWNrZXJNYWMgZmluYWwgOiBwdWJsaWMgV2Vi
RGF0ZVRpbWVQaWNrZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViRGF0ZVRpbWVQaWNr
ZXJNYWM+IGNyZWF0ZShXZWJQYWdlUHJveHkmLCBOU1ZpZXcgKik7CisgICAgfldlYkRhdGVUaW1l
UGlja2VyTWFjKCk7CisKKyAgICB2b2lkIGRpZENob29zZURhdGUoU3RyaW5nVmlldyk7CisKK3By
aXZhdGU6CisgICAgV2ViRGF0ZVRpbWVQaWNrZXJNYWMoV2ViUGFnZVByb3h5JiwgTlNWaWV3ICop
OworCisgICAgdm9pZCBlbmRQaWNrZXIoKSBmaW5hbDsKKyAgICB2b2lkIHNob3dEYXRlVGltZVBp
Y2tlcihXZWJDb3JlOjpEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzJiYpIGZpbmFsOworCisgICAg
TlNWaWV3ICptX3ZpZXc7CisgICAgUmV0YWluUHRyPFdLRGF0ZVRpbWVQaWNrZXI+IG1fcGlja2Vy
OworICAgIFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMgbV9wYXJhbXM7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1F
X0lOUFVUX1RZUEVTKSAmJiBVU0UoQVBQS0lUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dlYkRhdGVUaW1lUGlja2VyTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1dlYkRhdGVUaW1lUGlja2VyTWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjZjNlYTQ2MWQ4
YzY4NDJhNTYxZDlhNWJjZjkwNzQ0Y2RkMzNkYjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViRGF0ZVRpbWVQaWNrZXJNYWMubW0KQEAgLTAsMCArMSwy
MzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViRGF0
ZVRpbWVQaWNrZXJNYWMuaCIKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVT
KSAmJiBVU0UoQVBQS0lUKQorCisjaW1wb3J0ICJBcHBLaXRTUEkuaCIKKyNpbXBvcnQgIldlYlBh
Z2VQcm94eS5oIgorCitjb25zdGV4cHIgQ0dGbG9hdCBrQ2FsZW5kYXJXaWR0aCA9IDEzOTsKK2Nv
bnN0ZXhwciBDR0Zsb2F0IGtDYWxlbmRhckhlaWdodCA9IDE0ODsKK2NvbnN0ZXhwciBOU1N0cmlu
ZyAqIGNvbnN0IGtEYXRlRm9ybWF0U3RyaW5nID0gQCJ5eXl5LU1NLWRkIjsKK2NvbnN0ZXhwciBO
U1N0cmluZyAqIGNvbnN0IGtEYXRlVGltZUZvcm1hdFN0cmluZyA9IEAieXl5eS1NTS1kZCdUJ0hI
Om1tIjsKK2NvbnN0ZXhwciBOU1N0cmluZyAqIGNvbnN0IGtEZWZhdWx0TG9jYWxlSWRlbnRpZmll
ciA9IEAiZW5fVVNfUE9TSVgiOworCitAaW50ZXJmYWNlIFdLRGF0ZVRpbWVQaWNrZXIgOiBOU09i
amVjdAorCistIChpZClpbml0V2l0aFBhcmFtczooV2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyUGFy
YW1ldGVycyYmKXBhcmFtcyBpblZpZXc6KE5TVmlldyAqKXZpZXc7CistICh2b2lkKXNob3dQaWNr
ZXI6KFdlYktpdDo6V2ViRGF0ZVRpbWVQaWNrZXJNYWMmKXBpY2tlcjsKKy0gKHZvaWQpaW52YWxp
ZGF0ZTsKKworQGVuZAorCitAaW50ZXJmYWNlIFdLRGF0ZVRpbWVQaWNrZXJXaW5kb3cgOiBOU1dp
bmRvdworQGVuZAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVmPFdlYkRhdGVUaW1lUGlja2Vy
TWFjPiBXZWJEYXRlVGltZVBpY2tlck1hYzo6Y3JlYXRlKFdlYlBhZ2VQcm94eSYgcGFnZSwgTlNW
aWV3ICp2aWV3KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkRhdGVUaW1lUGlja2Vy
TWFjKHBhZ2UsIHZpZXcpKTsKK30KKworV2ViRGF0ZVRpbWVQaWNrZXJNYWM6On5XZWJEYXRlVGlt
ZVBpY2tlck1hYygpCit7CisgICAgW21fcGlja2VyIGludmFsaWRhdGVdOworfQorCitXZWJEYXRl
VGltZVBpY2tlck1hYzo6V2ViRGF0ZVRpbWVQaWNrZXJNYWMoV2ViUGFnZVByb3h5JiBwYWdlLCBO
U1ZpZXcgKnZpZXcpCisgICAgOiBXZWJEYXRlVGltZVBpY2tlcihwYWdlKQorICAgICwgbV92aWV3
KHZpZXcpCit7Cit9CisKK3ZvaWQgV2ViRGF0ZVRpbWVQaWNrZXJNYWM6OmVuZFBpY2tlcigpCit7
CisgICAgW21fcGlja2VyIGludmFsaWRhdGVdOworICAgIG1fcGlja2VyID0gbmlsOworICAgIFdl
YkRhdGVUaW1lUGlja2VyOjplbmRQaWNrZXIoKTsKK30KKwordm9pZCBXZWJEYXRlVGltZVBpY2tl
ck1hYzo6c2hvd0RhdGVUaW1lUGlja2VyKFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3NlclBhcmFtZXRl
cnMmJiBwYXJhbXMpCit7CisgICAgaWYgKG1fcGlja2VyKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX3BpY2tlciA9IGFkb3B0TlMoW1tXS0RhdGVUaW1lUGlja2VyIGFsbG9jXSBpbml0V2l0aFBh
cmFtczpXVEZNb3ZlKHBhcmFtcykgaW5WaWV3Om1fdmlld10pOworICAgIFttX3BpY2tlciBzaG93
UGlja2VyOip0aGlzXTsKK30KKwordm9pZCBXZWJEYXRlVGltZVBpY2tlck1hYzo6ZGlkQ2hvb3Nl
RGF0ZShTdHJpbmdWaWV3IGRhdGUpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fcGFnZS0+ZGlkQ2hvb3NlRGF0ZShkYXRlKTsKKyAgICBlbmRQaWNrZXIoKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKy8vIEZJWE1FOiBTaGFyZSB0aGlzIGltcGxl
bWVudGF0aW9uIHdpdGggV0tEYXRhTGlzdFN1Z2dlc3Rpb25XaW5kb3cuCitAaW1wbGVtZW50YXRp
b24gV0tEYXRlVGltZVBpY2tlcldpbmRvdyB7CisgICAgUmV0YWluUHRyPE5TVmlzdWFsRWZmZWN0
Vmlldz4gX2JhY2tkcm9wVmlldzsKK30KKworLSAoaWQpaW5pdFdpdGhDb250ZW50UmVjdDooTlNS
ZWN0KWNvbnRlbnRSZWN0IHN0eWxlTWFzazooTlNVSW50ZWdlcilzdHlsZU1hc2sgYmFja2luZzoo
TlNCYWNraW5nU3RvcmVUeXBlKWJhY2tpbmdTdG9yZVR5cGUgZGVmZXI6KEJPT0wpZGVmZXIKK3sK
KyAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoQ29udGVudFJlY3Q6Y29udGVudFJlY3Qgc3R5bGVN
YXNrOnN0eWxlTWFzayBiYWNraW5nOmJhY2tpbmdTdG9yZVR5cGUgZGVmZXI6ZGVmZXJdOworICAg
IGlmICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIHNlbGYuaGFzU2hhZG93ID0g
WUVTOworICAgIHNlbGYucmVsZWFzZWRXaGVuQ2xvc2VkID0gTk87CisgICAgc2VsZi50aXRsZVZp
c2liaWxpdHkgPSBOU1dpbmRvd1RpdGxlSGlkZGVuOworICAgIHNlbGYudGl0bGViYXJBcHBlYXJz
VHJhbnNwYXJlbnQgPSBZRVM7CisgICAgc2VsZi5tb3ZhYmxlID0gTk87CisgICAgc2VsZi5iYWNr
Z3JvdW5kQ29sb3IgPSBbTlNDb2xvciBjbGVhckNvbG9yXTsKKyAgICBzZWxmLm9wYXF1ZSA9IE5P
OworCisgICAgX2JhY2tkcm9wVmlldyA9IGFkb3B0TlMoW1tOU1Zpc3VhbEVmZmVjdFZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6Y29udGVudFJlY3RdKTsKKyAgICBbX2JhY2tkcm9wVmlldyBzZXRB
dXRvcmVzaXppbmdNYXNrOk5TVmlld1dpZHRoU2l6YWJsZSB8IE5TVmlld0hlaWdodFNpemFibGVd
OworICAgIFtfYmFja2Ryb3BWaWV3IHNldE1hdGVyaWFsOk5TVmlzdWFsRWZmZWN0TWF0ZXJpYWxN
ZW51XTsKKyAgICBbX2JhY2tkcm9wVmlldyBzZXRTdGF0ZTpOU1Zpc3VhbEVmZmVjdFN0YXRlQWN0
aXZlXTsKKyAgICBbX2JhY2tkcm9wVmlldyBzZXRCbGVuZGluZ01vZGU6TlNWaXN1YWxFZmZlY3RC
bGVuZGluZ01vZGVCZWhpbmRXaW5kb3ddOworCisgICAgW3NlbGYgc2V0Q29udGVudFZpZXc6X2Jh
Y2tkcm9wVmlldy5nZXQoKV07CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAoQk9PTCljYW5C
ZWNvbWVLZXlXaW5kb3cKK3sKKyAgICByZXR1cm4gTk87Cit9CisKKy0gKEJPT0wpaGFzS2V5QXBw
ZWFyYW5jZQoreworICAgIHJldHVybiBZRVM7Cit9CisKKy0gKE5TV2luZG93U2hhZG93T3B0aW9u
cylzaGFkb3dPcHRpb25zCit7CisgICAgcmV0dXJuIE5TV2luZG93U2hhZG93U2Vjb25kYXJ5V2lu
ZG93OworfQorCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS0RhdGVUaW1lUGlja2VyIHsKKyAg
ICBXZWFrUHRyPFdlYktpdDo6V2ViRGF0ZVRpbWVQaWNrZXJNYWM+IF9waWNrZXI7CisgICAgV2Vi
Q29yZTo6RGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyBfcGFyYW1zOworICAgIE5TVmlldyAqX3By
ZXNlbnRpbmdWaWV3OworCisgICAgUmV0YWluUHRyPFdLRGF0ZVRpbWVQaWNrZXJXaW5kb3c+IF9l
bmNsb3NpbmdXaW5kb3c7CisgICAgUmV0YWluUHRyPE5TRGF0ZVBpY2tlcj4gX2RhdGVQaWNrZXI7
CisgICAgUmV0YWluUHRyPE5TRGF0ZUZvcm1hdHRlcj4gX2RhdGVGb3JtYXR0ZXI7Cit9CisKKy0g
KGlkKWluaXRXaXRoUGFyYW1zOihXZWJDb3JlOjpEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzJiYp
cGFyYW1zIGluVmlldzooTlNWaWV3ICopdmlldworeworICAgIGlmICghKHNlbGYgPSBbc3VwZXIg
aW5pdF0pKQorICAgICAgICByZXR1cm4gc2VsZjsKKworICAgIF9wcmVzZW50aW5nVmlldyA9IHZp
ZXc7CisgICAgX3BhcmFtcyA9IFdURk1vdmUocGFyYW1zKTsKKworICAgIE5TUmVjdCB3aW5kb3dS
ZWN0ID0gW1tfcHJlc2VudGluZ1ZpZXcgd2luZG93XSBjb252ZXJ0UmVjdFRvU2NyZWVuOltfcHJl
c2VudGluZ1ZpZXcgY29udmVydFJlY3Q6cGFyYW1zLmFuY2hvclJlY3RJblJvb3RWaWV3IHRvVmll
dzpuaWxdXTsKKyAgICB3aW5kb3dSZWN0Lm9yaWdpbi55ID0gTlNNaW5ZKHdpbmRvd1JlY3QpIC0g
a0NhbGVuZGFySGVpZ2h0OworICAgIHdpbmRvd1JlY3Quc2l6ZS53aWR0aCA9IGtDYWxlbmRhcldp
ZHRoOworICAgIHdpbmRvd1JlY3Quc2l6ZS5oZWlnaHQgPSBrQ2FsZW5kYXJIZWlnaHQ7CisKKyAg
ICBfZW5jbG9zaW5nV2luZG93ID0gYWRvcHROUyhbW1dLRGF0ZVRpbWVQaWNrZXJXaW5kb3cgYWxs
b2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNaZXJvUmVjdCBzdHlsZU1hc2s6KE5TV2luZG93U3R5
bGVNYXNrVGl0bGVkIHwgTlNXaW5kb3dTdHlsZU1hc2tGdWxsU2l6ZUNvbnRlbnRWaWV3KSBiYWNr
aW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKKyAgICBbX2VuY2xvc2luZ1dp
bmRvdyBzZXRGcmFtZTp3aW5kb3dSZWN0IGRpc3BsYXk6WUVTXTsKKworICAgIF9kYXRlUGlja2Vy
ID0gYWRvcHROUyhbW05TRGF0ZVBpY2tlciBhbGxvY10gaW5pdFdpdGhGcmFtZTpbX2VuY2xvc2lu
Z1dpbmRvdyBjb250ZW50Vmlld10uYm91bmRzXSk7CisgICAgW19kYXRlUGlja2VyIHNldERhdGVQ
aWNrZXJTdHlsZTpOU0RhdGVQaWNrZXJTdHlsZUNsb2NrQW5kQ2FsZW5kYXJdOworICAgIFtfZGF0
ZVBpY2tlciBzZXREYXRlUGlja2VyRWxlbWVudHM6TlNEYXRlUGlja2VyRWxlbWVudEZsYWdZZWFy
TW9udGhEYXldOworICAgIFtfZGF0ZVBpY2tlciBzZXRUYXJnZXQ6c2VsZl07CisgICAgW19kYXRl
UGlja2VyIHNldEFjdGlvbjpAc2VsZWN0b3IoZGlkQ2hvb3NlRGF0ZTopXTsKKworICAgIGF1dG8g
ZW5nbGlzaExvY2FsZSA9IGFkb3B0TlMoW1tOU0xvY2FsZSBhbGxvY10gaW5pdFdpdGhMb2NhbGVJ
ZGVudGlmaWVyOmtEZWZhdWx0TG9jYWxlSWRlbnRpZmllcl0pOworICAgIF9kYXRlRm9ybWF0dGVy
ID0gYWRvcHROUyhbW05TRGF0ZUZvcm1hdHRlciBhbGxvY10gaW5pdF0pOworICAgIFtfZGF0ZUZv
cm1hdHRlciBzZXREYXRlRm9ybWF0OltzZWxmIGRhdGVGb3JtYXRTdHJpbmdGb3JUeXBlOl9wYXJh
bXMudHlwZV1dOworICAgIFtfZGF0ZUZvcm1hdHRlciBzZXRMb2NhbGU6ZW5nbGlzaExvY2FsZS5n
ZXQoKV07CisKKyAgICBOU1N0cmluZyAqY3VycmVudERhdGVWYWx1ZVN0cmluZyA9IF9wYXJhbXMu
Y3VycmVudFZhbHVlOworICAgIGlmICghW2N1cnJlbnREYXRlVmFsdWVTdHJpbmcgbGVuZ3RoXSkK
KyAgICAgICAgW19kYXRlUGlja2VyIHNldERhdGVWYWx1ZTpbTlNEYXRlIGRhdGVdXTsKKyAgICBl
bHNlCisgICAgICAgIFtfZGF0ZVBpY2tlciBzZXREYXRlVmFsdWU6W19kYXRlRm9ybWF0dGVyIGRh
dGVGcm9tU3RyaW5nOmN1cnJlbnREYXRlVmFsdWVTdHJpbmddXTsKKworICAgIFtfZGF0ZVBpY2tl
ciBzZXRNaW5EYXRlOltOU0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZTE5NzA6X3BhcmFt
cy5taW5pbXVtIC8gMTAwMC4wXV07CisgICAgW19kYXRlUGlja2VyIHNldE1heERhdGU6W05TRGF0
ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlMTk3MDpfcGFyYW1zLm1heGltdW0gLyAxMDAwLjBd
XTsKKworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKXNob3dQaWNrZXI6KFdlYktpdDo6
V2ViRGF0ZVRpbWVQaWNrZXJNYWMmKXBpY2tlcgoreworICAgIF9waWNrZXIgPSBtYWtlV2Vha1B0
cihwaWNrZXIpOworCisgICAgW1tfZW5jbG9zaW5nV2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2
aWV3Ol9kYXRlUGlja2VyLmdldCgpXTsKKyAgICBbW19wcmVzZW50aW5nVmlldyB3aW5kb3ddIGFk
ZENoaWxkV2luZG93Ol9lbmNsb3NpbmdXaW5kb3cuZ2V0KCkgb3JkZXJlZDpOU1dpbmRvd0Fib3Zl
XTsKK30KKworLSAodm9pZClpbnZhbGlkYXRlCit7CisgICAgW19kYXRlUGlja2VyIHJlbW92ZUZy
b21TdXBlcnZpZXdXaXRob3V0TmVlZGluZ0Rpc3BsYXldOworICAgIFtfZGF0ZVBpY2tlciBzZXRU
YXJnZXQ6bmlsXTsKKyAgICBbX2RhdGVQaWNrZXIgc2V0QWN0aW9uOm5pbF07CisgICAgX2RhdGVQ
aWNrZXIgPSBuaWw7CisKKyAgICBfZGF0ZUZvcm1hdHRlciA9IG5pbDsKKworICAgIFtbX3ByZXNl
bnRpbmdWaWV3IHdpbmRvd10gcmVtb3ZlQ2hpbGRXaW5kb3c6X2VuY2xvc2luZ1dpbmRvdy5nZXQo
KV07CisgICAgW19lbmNsb3NpbmdXaW5kb3cgY2xvc2VdOworICAgIF9lbmNsb3NpbmdXaW5kb3cg
PSBuaWw7Cit9CisKKy0gKHZvaWQpZGlkQ2hvb3NlRGF0ZTooaWQpc2VuZGVyCit7CisgICAgaWYg
KHNlbmRlciAhPSBfZGF0ZVBpY2tlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIGRh
dGVTdHJpbmcgPSBbX2RhdGVGb3JtYXR0ZXIgc3RyaW5nRnJvbURhdGU6W19kYXRlUGlja2VyIGRh
dGVWYWx1ZV1dOworICAgIF9waWNrZXItPmRpZENob29zZURhdGUoU3RyaW5nVmlldyhkYXRlU3Ry
aW5nKSk7Cit9CisKKy0gKE5TU3RyaW5nICopZGF0ZUZvcm1hdFN0cmluZ0ZvclR5cGU6KE5TU3Ry
aW5nICopdHlwZQoreworICAgIGlmIChbdHlwZSBpc0VxdWFsVG9TdHJpbmc6QCJkYXRldGltZS1s
b2NhbCJdKQorICAgICAgICByZXR1cm4ga0RhdGVUaW1lRm9ybWF0U3RyaW5nOworCisgICAgcmV0
dXJuIGtEYXRlRm9ybWF0U3RyaW5nOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBFTkFCTEUoREFU
RV9BTkRfVElNRV9JTlBVVF9UWVBFUykgJiYgVVNFKEFQUEtJVCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGYxNGZjYzM4ZmI5ODI1YjMw
ZDMwMWNkMmMwYjkwZDE0ZDUwMmU1ZmEuLjY2YjZlN2I3MmM2Mjc2YjY0Y2JkMDBiNjhjZDgzZjYy
MjkwZWMyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTgzMSw2ICsxODMxLDkgQEAKIAkJRTRFODY0OTMxQjE2NzUwNzAwQzgyRjQw
IC8qIFZlcnNpb25DaGVja3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU0RTg2NDhFMUIxNjczRkIwMEM4MkY0MCAvKiBWZXJzaW9uQ2hlY2tzLmggKi87
IH07CiAJCUU1MkNGNTUyMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25Q
aWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1
MkNGNTUwMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCAq
LzsgfTsKIAkJRTU0OEVCRDEyMTAxNUYwRTAwQkUzQzMyIC8qIFdLRm9ybUNvbG9yUGlja2VyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTQ4RUJDRjIx
MDE1RjBFMDBCRTNDMzIgLyogV0tGb3JtQ29sb3JQaWNrZXIuaCAqLzsgfTsKKwkJRTU1Q0QxRjUy
NENGNzQ3RDAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU1Q0QxRjMyNENGNzQ3RDAwNDJEQjlDIC8q
IFdlYkRhdGVUaW1lQ2hvb3Nlci5oICovOyB9OworCQlFNTVDRDIwMDI0RDA4RDhGMDA0MkRCOUMg
LyogV2ViRGF0ZVRpbWVQaWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU1NUNEMUZDMjREMDg4MEIwMDQyREI5QyAvKiBXZWJEYXRlVGltZVBpY2tl
ci5oICovOyB9OworCQlFNTVDRDIwMzI0RDA5RjFGMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNr
ZXJNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1
NUNEMjAxMjREMDlGMUYwMDQyREI5QyAvKiBXZWJEYXRlVGltZVBpY2tlck1hYy5oICovOyB9Owog
CQlFNTY4QjkxRjIwQTNBQjJGMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bk
b3duLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTY4
QjkxRTIwQTNBQjJGMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmgg
Ki87IH07CiAJCUU1NjhCOTIyMjBBM0FDNkEwMEUzQzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rp
b25zRHJvcGRvd25NYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU1NjhCOTIwMjBBM0FDNkEwMEUzQzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25z
RHJvcGRvd25NYWMuaCAqLzsgfTsKIAkJRTVCRUY2ODIyMTMwQzQ4MDAwRjMxMTExIC8qIFdlYkRh
dGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTVCRUY2ODAyMTMwQzQ3RjAwRjMxMTExIC8qIFdlYkRhdGFM
aXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5oICovOyB9OwpAQCAtNTM1OCw2ICs1MzYxLDEyIEBA
CiAJCUU1NDhFQkNGMjEwMTVGMEUwMEJFM0MzMiAvKiBXS0Zvcm1Db2xvclBpY2tlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXS0Zvcm1Db2xvclBpY2tlci5oOyBwYXRoID0gaW9zL2Zvcm1zL1dLRm9ybUNv
bG9yUGlja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1NDhFQkQwMjEwMTVG
MEUwMEJFM0MzMiAvKiBXS0Zvcm1Db2xvclBpY2tlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9
IFdLRm9ybUNvbG9yUGlja2VyLm1tOyBwYXRoID0gaW9zL2Zvcm1zL1dLRm9ybUNvbG9yUGlja2Vy
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTRBMTRDRTIwRkNGQjdCMDA3RTEz
RDggLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUU1NUNEMUYzMjRDRjc0N0QwMDQyREI5QyAvKiBXZWJEYXRlVGltZUNob29z
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGF0ZVRpbWVDaG9vc2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUU1NUNEMUY0MjRDRjc0N0QwMDQyREI5QyAvKiBXZWJEYXRlVGltZUNo
b29zZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRGF0ZVRpbWVDaG9vc2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTU1Q0QxRkMyNEQwODgwQjAwNDJEQjlDIC8qIFdl
YkRhdGVUaW1lUGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhdGVUaW1lUGlja2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1NUNEMUZEMjREMDg4MEIwMDQyREI5QyAvKiBX
ZWJEYXRlVGltZVBpY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJEYXRlVGltZVBpY2tl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1NUNEMjAxMjREMDlGMUYwMDQy
REI5QyAvKiBXZWJEYXRlVGltZVBpY2tlck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEYXRlVGlt
ZVBpY2tlck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNTVDRDIwMjI0RDA5
RjFGMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNrZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBXZWJEYXRlVGltZVBpY2tlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTU2OEI5MUUyMEEzQUIyRjAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9w
ZG93bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTU2OEI5MjAyMEEzQUM2QTAwRTNDODU2IC8q
IFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJE
YXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTU2OEI5MjEyMEEzQUM2QTAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNE
cm9wZG93bk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRGF0YUxpc3RTdWdnZXN0aW9u
c0Ryb3Bkb3duTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODgzMiw2ICs4
ODQxLDggQEAKIAkJCQlCQzAzMkQ2MjEwRjQzNzhEMDA1OEMxNUEgLyogV2ViQ29udGV4dE1lbnVD
bGllbnQuaCAqLywKIAkJCQlFNTJDRjU1MTIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RT
dWdnZXN0aW9uUGlja2VyLmNwcCAqLywKIAkJCQlFNTJDRjU1MDIwQTM1QzNBMDBEQURBMjcgLyog
V2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmggKi8sCisJCQkJRTU1Q0QxRjQyNENGNzQ3RDAw
NDJEQjlDIC8qIFdlYkRhdGVUaW1lQ2hvb3Nlci5jcHAgKi8sCisJCQkJRTU1Q0QxRjMyNENGNzQ3
RDAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lQ2hvb3Nlci5oICovLAogCQkJCUNEMTlBMjY5MUExM0U4
MjAwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgKi8sCiAJCQkJQ0Qx
OUEyNkExQTEzRTgyMTAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi8s
CiAJCQkJQkMxMTFBNTYxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkRyYWdDbGllbnQuY3BwICovLApA
QCAtOTA0OCw2ICs5MDU5LDggQEAKIAkJCQkzM0FBMTA2NTEzMUYwNjAwMDBENEE1NzUgLyogV2Vi
Q29va2llTWFuYWdlclByb3h5Q2xpZW50LmggKi8sCiAJCQkJRTU0QTE0Q0UyMEZDRkI3QjAwN0Ux
M0Q4IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5jcHAgKi8sCiAJCQkJRTU2OEI5
MUUyMEEzQUIyRjAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5oICov
LAorCQkJCUU1NUNEMUZEMjREMDg4MEIwMDQyREI5QyAvKiBXZWJEYXRlVGltZVBpY2tlci5jcHAg
Ki8sCisJCQkJRTU1Q0QxRkMyNEQwODgwQjAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lUGlja2VyLmgg
Ki8sCiAJCQkJQkNBMEVGOUUxMjMzMjY0MjAwN0QzQ0ZCIC8qIFdlYkVkaXRDb21tYW5kUHJveHku
Y3BwICovLAogCQkJCUJDQTBFRjlEMTIzMzI2NDIwMDdEM0NGQiAvKiBXZWJFZGl0Q29tbWFuZFBy
b3h5LmggKi8sCiAJCQkJQkNFNDY5NEYxMjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZvcm1DbGllbnQu
Y3BwICovLApAQCAtOTg0NCw2ICs5ODU3LDggQEAKIAkJCQlGNkQ2MzJCQTEzM0QxODFCMDA3NDNE
NzcgLyogV2ViQ29va2llTWFuYWdlclByb3h5TWFjLm1tICovLAogCQkJCUU1NjhCOTIwMjBBM0FD
NkEwMEUzQzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMuaCAqLywKIAkJ
CQlFNTY4QjkyMTIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bk
b3duTWFjLm1tICovLAorCQkJCUU1NUNEMjAxMjREMDlGMUYwMDQyREI5QyAvKiBXZWJEYXRlVGlt
ZVBpY2tlck1hYy5oICovLAorCQkJCUU1NUNEMjAyMjREMDlGMUYwMDQyREI5QyAvKiBXZWJEYXRl
VGltZVBpY2tlck1hYy5tbSAqLywKIAkJCQlCQzg1N0U4NTEyQjcxRUJCMDBFREVCMkUgLyogV2Vi
UGFnZVByb3h5TWFjLm1tICovLAogCQkJCUJDNTc1MDk1MTI2OEYzQzYwMDZGMEYxMiAvKiBXZWJQ
b3B1cE1lbnVQcm94eU1hYy5oICovLAogCQkJCUJDNTc1MDk2MTI2OEYzQzYwMDZGMEYxMiAvKiBX
ZWJQb3B1cE1lbnVQcm94eU1hYy5tbSAqLywKQEAgLTExMjc4LDYgKzExMjkzLDkgQEAKIAkJCQlF
NTY4QjkxRjIwQTNBQjJGMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3du
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNUJFRjY4MjIxMzBDNDgwMDBGMzExMTEgLyogV2ViRGF0
YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNTY4Qjky
MjIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlFNTVDRDFGNTI0Q0Y3NDdEMDA0MkRCOUMgLyogV2ViRGF0ZVRp
bWVDaG9vc2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNTVDRDIwMDI0RDA4RDhGMDA0MkRCOUMg
LyogV2ViRGF0ZVRpbWVQaWNrZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUU1NUNEMjAzMjREMDlG
MUYwMDQyREI5QyAvKiBXZWJEYXRlVGltZVBpY2tlck1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDZCMDUyNDcyMjY2OEQ4NTAwMjY1Qjk3IC8qIFdlYkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTM5NjI4REQyMzk2MENDNjAw
NjU4RUNEIC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUzODY2QjBBMjM5OUEyRDkwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlv
blVwZGF0ZVByb3ZpZGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcAppbmRleCBlZmMwMDNiZDAxNTkxMDAwODJkZTNjZWYxZjYwOWZhNTIyNTFjYTVhLi5jZTU0
ZmZmNTQyOWY5YzI2MzJhODllNTVhOTI3MWJkZjhjZjRkNWZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3Nlci5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkRhdGFMaXN0U3Vn
Z2VzdGlvblBpY2tlci5oIgorI2luY2x1ZGUgIldlYkRhdGVUaW1lQ2hvb3Nlci5oIgogI2luY2x1
ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNs
dWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlci5oIgpAQCAtNzc1LDYgKzc3NiwxNSBAQCBib29sIFdl
YkNocm9tZUNsaWVudDo6Y2FuU2hvd0RhdGFMaXN0U3VnZ2VzdGlvbkxhYmVscygpIGNvbnN0CiAK
ICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKK3N0ZDo6
dW5pcXVlX3B0cjxEYXRlVGltZUNob29zZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlRGF0ZVRp
bWVDaG9vc2VyKERhdGVUaW1lQ2hvb3NlckNsaWVudCYgY2xpZW50KQoreworICAgIHJldHVybiBt
YWtlVW5pcXVlPFdlYkRhdGVUaW1lQ2hvb3Nlcj4obV9wYWdlLCBjbGllbnQpOworfQorCisjZW5k
aWYKKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSYgZnJhbWUsIEZp
bGVDaG9vc2VyJiBmaWxlQ2hvb3NlcikKIHsKICAgICBpZiAobV9wYWdlLmFjdGl2ZU9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZTc1ZjQ4ODUyYmZhMDZi
MWFkNDBlM2JiYTFmYTNjYzNlM2Y0MWE4ZS4uNDkyZTIzYjkzNWMzMDBhNTlmMDJkY2QxOTU0OTdk
MWRmYzYwYThlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTUyLDYgKzE1MiwxMCBAQCBwcml2
YXRlOgogICAgIGJvb2wgY2FuU2hvd0RhdGFMaXN0U3VnZ2VzdGlvbkxhYmVscygpIGNvbnN0IGZp
bmFsOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyPiBjcmVhdGVEYXRlVGlt
ZUNob29zZXIoV2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyQ2xpZW50JikgZmluYWw7CisjZW5kaWYK
KwogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIHZvaWQgZGlkUHJldmVudERlZmF1
bHRGb3JFdmVudCgpIGZpbmFsOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0ZVRpbWVDaG9vc2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRlVGltZUNob29zZXIuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjdiYzdkZDhlZTIxYThmZmEwYzMxNjJkZDc1MjE5MzQ1OGI3NmU0OTQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RGF0ZVRpbWVDaG9vc2VyLmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkRhdGVUaW1lQ2hvb3Nlci5oIgorCisjaWYgRU5B
QkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisj
aW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9EYXRlVGltZUNob29zZXJDbGllbnQuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0RhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK1dlYkRhdGVUaW1lQ2hvb3Nlcjo6V2ViRGF0ZVRpbWVDaG9vc2VyKFdlYlBhZ2UmIHBhZ2Us
IFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3NlckNsaWVudCYgY2xpZW50KQorICAgIDogbV9jbGllbnQo
Y2xpZW50KQorICAgICwgbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQgV2ViRGF0ZVRpbWVDaG9v
c2VyOjpkaWRDaG9vc2VEYXRlKFN0cmluZ1ZpZXcgZGF0ZSkKK3sKKyAgICBtX2NsaWVudC5kaWRD
aG9vc2VWYWx1ZShkYXRlKTsKK30KKwordm9pZCBXZWJEYXRlVGltZUNob29zZXI6OmRpZEVuZENo
b29zZXIoKQoreworICAgIG1fY2xpZW50LmRpZEVuZENob29zZXIoKTsKK30KKwordm9pZCBXZWJE
YXRlVGltZUNob29zZXI6OmVuZENob29zZXIoKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RW5kRGF0ZVRpbWVQaWNrZXIoKSwgbV9wYWdlLmlkZW50aWZpZXIoKSk7Cit9CisKK3ZvaWQg
V2ViRGF0ZVRpbWVDaG9vc2VyOjpzaG93Q2hvb3Nlcihjb25zdCBXZWJDb3JlOjpEYXRlVGltZUNo
b29zZXJQYXJhbWV0ZXJzJiBwYXJhbXMpCit7CisgICAgbV9wYWdlLnNldEFjdGl2ZURhdGVUaW1l
Q2hvb3NlcigqdGhpcyk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93RGF0ZVRpbWVQ
aWNrZXIocGFyYW1zKSwgbV9wYWdlLmlkZW50aWZpZXIoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJEYXRlVGltZUNob29zZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRlVGltZUNob29zZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTJi
MmRiMjkyMzYzYzBjYjM5ZGI5YzgwYWRiNmQ1ZGY0YWVlY2NkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGVUaW1lQ2hvb3Nl
ci5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorCisjaW5jbHVkZSA8V2ViQ29yZS9EYXRl
VGltZUNob29zZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgRGF0ZVRpbWVDaG9v
c2VyQ2xpZW50Oworc3RydWN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnM7Cit9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBXZWJEYXRlVGltZUNob29z
ZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyIHsKK3B1YmxpYzoKKyAg
ICBXZWJEYXRlVGltZUNob29zZXIoV2ViUGFnZSYsIFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3NlckNs
aWVudCYpOworCisgICAgdm9pZCBkaWRDaG9vc2VEYXRlKFN0cmluZ1ZpZXcpOworICAgIHZvaWQg
ZGlkRW5kQ2hvb3NlcigpOworCitwcml2YXRlOgorICAgIHZvaWQgZW5kQ2hvb3NlcigpIGZpbmFs
OworICAgIHZvaWQgc2hvd0Nob29zZXIoY29uc3QgV2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyUGFy
YW1ldGVycyYpIGZpbmFsOworCisgICAgV2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyQ2xpZW50JiBt
X2NsaWVudDsKKyAgICBXZWJQYWdlJiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCmluZGV4IDI3NDJmMTNlY2YzNmQ2MGNjZmQ2N2EzZmQyMTU0NzViMDA2NGY4MzIuLjE4Y2Fk
N2RhYWMxMWVlZmViYjJmYjBhZTc4YzBlODQ4NzdlNTNhNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC04MCw2ICs4MCw3IEBACiAjaW5jbHVk
ZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRGF0YUxpc3RTdWdnZXN0
aW9uUGlja2VyLmgiCiAjaW5jbHVkZSAiV2ViRGF0YWJhc2VQcm92aWRlci5oIgorI2luY2x1ZGUg
IldlYkRhdGVUaW1lQ2hvb3Nlci5oIgogI2luY2x1ZGUgIldlYkRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiV2ViRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJXZWJEcmFn
Q2xpZW50LmgiCkBAIC00MTk3LDYgKzQxOTgsMjcgQEAgdm9pZCBXZWJQYWdlOjpkaWRDbG9zZVN1
Z2dlc3Rpb25zKCkKIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9U
WVBFUykKKwordm9pZCBXZWJQYWdlOjpzZXRBY3RpdmVEYXRlVGltZUNob29zZXIoV2ViRGF0ZVRp
bWVDaG9vc2VyJiBkYXRlVGltZUNob29zZXIpCit7CisgICAgbV9hY3RpdmVEYXRlVGltZUNob29z
ZXIgPSBtYWtlV2Vha1B0cigmZGF0ZVRpbWVDaG9vc2VyKTsKK30KKwordm9pZCBXZWJQYWdlOjpk
aWRDaG9vc2VEYXRlKGNvbnN0IFN0cmluZyYgZGF0ZSkKK3sKKyAgICBpZiAobV9hY3RpdmVEYXRl
VGltZUNob29zZXIpCisgICAgICAgIG1fYWN0aXZlRGF0ZVRpbWVDaG9vc2VyLT5kaWRDaG9vc2VE
YXRlKGRhdGUpOworfQorCit2b2lkIFdlYlBhZ2U6OmRpZEVuZERhdGVUaW1lUGlja2VyKCkKK3sK
KyAgICBpZiAoYXV0byBjaG9vc2VyID0gc3RkOjpleGNoYW5nZShtX2FjdGl2ZURhdGVUaW1lQ2hv
b3NlciwgbnVsbHB0cikpCisgICAgICAgIGNob29zZXItPmRpZEVuZENob29zZXIoKTsKK30KKwor
I2VuZGlmCisKIHZvaWQgV2ViUGFnZTo6c2V0QWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIo
UmVmPFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyPiYmIG9wZW5QYW5lbFJlc3VsdExpc3RlbmVy
KQogewogICAgIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSBXVEZNb3ZlKG9wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCA2MTdlNmFmMmZkMzZjZGI4OTNjMDJjMTIyMDMzZTI4NzE1YmE2NDkwLi41
MzM2MjQzZTI5MTg0YTUyYmRmNTQyY2U4YzA4MTNiYWY5YzMzNTc2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yNDksNiArMjQ5LDcgQEAgY2xhc3Mg
V2ViQ29sb3JDaG9vc2VyOwogY2xhc3MgV2ViQ29udGV4dE1lbnU7CiBjbGFzcyBXZWJDb250ZXh0
TWVudUl0ZW1EYXRhOwogY2xhc3MgV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOworY2xhc3Mg
V2ViRGF0ZVRpbWVDaG9vc2VyOwogY2xhc3MgV2ViRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBXZWJF
dmVudDsKIGNsYXNzIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXI7CkBAIC00MzgsNiArNDM5LDEyIEBA
IHB1YmxpYzoKICAgICB2b2lkIGRpZENsb3NlU3VnZ2VzdGlvbnMoKTsKICNlbmRpZgogCisjaWYg
RU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisgICAgdm9pZCBzZXRBY3RpdmVEYXRl
VGltZUNob29zZXIoV2ViRGF0ZVRpbWVDaG9vc2VyJik7CisgICAgdm9pZCBkaWRDaG9vc2VEYXRl
KGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgZGlkRW5kRGF0ZVRpbWVQaWNrZXIoKTsKKyNlbmRp
ZgorCiAgICAgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIqIGFjdGl2ZU9wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
ci5nZXQoKTsgfQogICAgIHZvaWQgc2V0QWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIoUmVm
PFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyPiYmKTsKIApAQCAtMTkwNyw2ICsxOTE0LDEwIEBA
IHByaXZhdGU6CiAgICAgV2Vha1B0cjxXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI+IG1fYWN0
aXZlRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFURV9B
TkRfVElNRV9JTlBVVF9UWVBFUykKKyAgICBXZWFrUHRyPFdlYkRhdGVUaW1lQ2hvb3Nlcj4gbV9h
Y3RpdmVEYXRlVGltZUNob29zZXI7CisjZW5kaWYKKwogICAgIFJlZlB0cjxXZWJPcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lcj4gbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKICAgICBSZWZQ
dHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiBtX25vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggYTU5NWU3ZDkyMTJiM2VkYzgy
OTM4OWZjZGZmZjkyNDUyYTU4ZDgwZS4uMGI2MjdiMjY2YTlmMThhNzYzYmE5ZDIxMGI1YmY4ZmY3
MzNjNDQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xNTksNiArMTU5LDExIEBAIEdlbmVyYXRlU3ludGhldGlj
RWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1h
bmRUeXBlCiAgICAgRGlkQ2xvc2VTdWdnZXN0aW9ucygpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
REFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKyAgICBEaWRDaG9vc2VEYXRlKFN0cmluZyBkYXRl
KTsKKyAgICBEaWRFbmREYXRlVGltZVBpY2tlcigpOworI2VuZGlmCisKICNpZiBFTkFCTEUoQ09O
VEVYVF9NRU5VUykKICAgICBDb250ZXh0TWVudUhpZGRlbigpCiAgICAgQ29udGV4dE1lbnVGb3JL
ZXlFdmVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDQyYzVhMTUwM2Y1ZTNhZjk5MGU4MGMwYmNk
YTNhN2U5YWExMWQwNDMuLjljMDk1YTc0MDI0ZDA2YzlmMGM4MDk4ZWM0ZDJjZTk4OTk0Y2UyNTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xNDcsNiArMTQ3LDEwIEBAIHByaXZhdGU6CiAgICAgYm9v
bCBjYW5TaG93RGF0YUxpc3RTdWdnZXN0aW9uTGFiZWxzKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
ZmFsc2U7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMp
CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3Nlcj4gY3JlYXRlRGF0
ZVRpbWVDaG9vc2VyKFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3NlckNsaWVudCYpIGZpbmFsOworI2Vu
ZGlmCisKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgIGJvb2wgcmVxdWVzdFBvaW50ZXJM
b2NrKCkgZmluYWw7CiAgICAgdm9pZCByZXF1ZXN0UG9pbnRlclVubG9jaygpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tCmluZGV4IDBiMDk0NWViNmQ5YTc2OWQxZDhiNDE2OWEzNjUzMGI5NjZmNmMw
NjAuLmY2ZTJiMThlODBjNTg5MzY2MGZlNzlhZWFmNWRhYTM3YjQzYzdkODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW0KQEAgLTczMiw2ICs3MzIsMTQgQEAgc3RkOjp1bmlxdWVfcHRyPERhdGFMaXN0U3Vn
Z2VzdGlvblBpY2tlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVEYXRhTGlzdFN1Z2dlc3QKIH0K
ICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCitzdGQ6OnVu
aXF1ZV9wdHI8RGF0ZVRpbWVDaG9vc2VyPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURhdGVUaW1l
Q2hvb3NlcihEYXRlVGltZUNob29zZXJDbGllbnQmKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RQb2ludGVyTG9jaygpCiB7CmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmQ3NzMy
NjE2NmJkZjBhYzFlYjAyMjVmMDdiOGNmNWUyMDRhODE0Mi4uYjkxNTQxNGEzYWViMDc4YjBmYjlh
Y2I3YmE0ZDdmNmIzZjQ5NDVmZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA4LTA1ICBBZGl0eWEgS2VlcnRo
aSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFNob3cgcGlja2VyIGZv
ciBkYXRlIGFuZCBkYXRldGltZS1sb2NhbCBpbnB1dCB0eXBlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0OTQ2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgaXNTaG93aW5nRGF0ZVRpbWVQaWNr
ZXIgdGVzdGluZyBob29rIGluIG9yZGVyIHRvIGVuYWJsZSB0ZXN0aW5nIG9mIHRoZSB2aXNpYmls
aXR5IG9mCisgICAgICAgIHRoZSBwaWNrZXIuCisKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVk
L1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsOgorICAgICAg
ICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5o
OgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmlzU2hvd2luZ0RhdGVUaW1lUGlj
a2VyIGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRy
b2xsZXJNYWMuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRy
b2xsZXJNYWMubW06CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlck1hYzo6aXNTaG93
aW5nRGF0ZVRpbWVQaWNrZXIgY29uc3QpOgorCiAyMDIwLTA4LTA0ICBGdWppaSBIaXJvbm9yaSAg
PEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFt3ZWJraXRjb3JlcHldIFJFR1JF
U1NJT04ocjI2NTI1NCk6IGF1dG9pbnN0YWxsZXIgaXMgZmFpbGluZyB0byBleGVjdXRlIHNldHVw
LnB5IG9uIHdpbjMyIFB5dGhvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxl
ci5pZGwKaW5kZXggOTNhMTQzZTc0ODM4MDdjNmVhZmMxZjMzNTRhZTU1ZGJlODFlNjI2ZS4uNWE0
MDNmZjIzZjAzOTQyZjhmMjRmMGM5ODFkMWRiMzg1YzFkYjgyNSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9s
bGVyLmlkbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5k
aW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCkBAIC0yMjIsNiArMjIyLDggQEAgaW50ZXJmYWNl
IFVJU2NyaXB0Q29udHJvbGxlciB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSB0aW1l
UGlja2VyVmFsdWVIb3VyOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgdGltZVBpY2tl
clZhbHVlTWludXRlOwogCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNTaG93aW5n
RGF0ZVRpbWVQaWNrZXI7CisKICAgICAvLyA8ZGF0YWxpc3Q+CiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gaXNTaG93aW5nRGF0YUxpc3RTdWdnZXN0aW9uczsKICAgICB2b2lkIGFjdGl2
YXRlRGF0YUxpc3RTdWdnZXN0aW9uKHVuc2lnbmVkIGxvbmcgaW5kZXgsIG9iamVjdCBjYWxsYmFj
ayk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9V
SVNjcmlwdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250
ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IDM3ZTM2ZjA0Njc2M2VhMjQ1MTI0YjMyOWY1
NDliYTA0NzNhZmZjZTMuLmU1YWRhYjhjN2U1YTA4ZmYzNzZhMDQzODBkOWJkYTlmZmMxN2I5NDEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2Ny
aXB0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250
ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCkBAIC0yMTYsNiArMjE2LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzZXRUaW1lUGlja2VyVmFsdWUobG9uZyBob3VyLCBsb25nIG1pbnV0ZSkg
eyBub3RJbXBsZW1lbnRlZCgpOyB9CiAgICAgdmlydHVhbCBkb3VibGUgdGltZVBpY2tlclZhbHVl
SG91cigpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIC0xOyB9CiAgICAgdmlydHVh
bCBkb3VibGUgdGltZVBpY2tlclZhbHVlTWludXRlKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgp
OyByZXR1cm4gLTE7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTaG93aW5nRGF0ZVRpbWVQaWNrZXIo
KSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
Ym9vbCBpc1Nob3dpbmdEYXRhTGlzdFN1Z2dlc3Rpb25zKCkgY29uc3QgeyBub3RJbXBsZW1lbnRl
ZCgpOyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIEpTT2JqZWN0UmVmIGNhbGVuZGFyVHlw
ZSgpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0
dWFsIHZvaWQgc2V0RGVmYXVsdENhbGVuZGFyVHlwZShKU1N0cmluZ1JlZiBjYWxlbmRhcklkZW50
aWZpZXIsIEpTU3RyaW5nUmVmIGxvY2FsZUlkZW50aWZpZXIpIHsgbm90SW1wbGVtZW50ZWQoKTsg
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9s
bGVyTWFjLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJN
YWMuaAppbmRleCA2MTIxNTkyZjJkN2RmMGQ4MzExODg2NzVkYjVhYWIyMjUyZjY3NGFhLi41NGQ5
MGQ5Y2Y2YzM3N2Q5MTkyYTZiZGM3NTFlMDY4NzU4NTY2MjY2IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMuaAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMuaApAQCAtNDIsNiArNDIs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCB6b29tVG9TY2FsZShkb3VibGUsIEpTVmFsdWVSZWYpIG92
ZXJyaWRlOwogICAgIGRvdWJsZSB6b29tU2NhbGUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lk
IHNpbXVsYXRlQWNjZXNzaWJpbGl0eVNldHRpbmdzQ2hhbmdlTm90aWZpY2F0aW9uKEpTVmFsdWVS
ZWYpIG92ZXJyaWRlOworICAgIGJvb2wgaXNTaG93aW5nRGF0ZVRpbWVQaWNrZXIoKSBjb25zdCBv
dmVycmlkZTsKICAgICBib29sIGlzU2hvd2luZ0RhdGFMaXN0U3VnZ2VzdGlvbnMoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2b2lkIGFjdGl2YXRlRGF0YUxpc3RTdWdnZXN0aW9uKHVuc2lnbmVkIGlu
ZGV4LCBKU1ZhbHVlUmVmIGNhbGxiYWNrKSBvdmVycmlkZTsKICAgICB2b2lkIGJlZ2luQmFja1N3
aXBlKEpTVmFsdWVSZWYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCmluZGV4IGU5NTZlZWQ5MmEwYTU4NzgzNjZl
YzUzMDA5NzIyNDE2OTg4NTY3OWMuLjJlMTIzMGM1OGMzYWZiZDM4ODgxZWY3M2VhYzMxNzMxZGVl
YmQ1YjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29u
dHJvbGxlck1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENv
bnRyb2xsZXJNYWMubW0KQEAgLTk2LDYgKzk2LDE1IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVy
TWFjOjpzaW11bGF0ZUFjY2Vzc2liaWxpdHlTZXR0aW5nc0NoYW5nZU5vdGlmaWNhdGlvbihKU1Zh
CiAgICAgfSkuZ2V0KCldOwogfQogCitib29sIFVJU2NyaXB0Q29udHJvbGxlck1hYzo6aXNTaG93
aW5nRGF0ZVRpbWVQaWNrZXIoKSBjb25zdAoreworICAgIGZvciAoTlNXaW5kb3cgKmNoaWxkV2lu
ZG93IGluIHdlYlZpZXcoKS53aW5kb3cuY2hpbGRXaW5kb3dzKSB7CisgICAgICAgIGlmIChbY2hp
bGRXaW5kb3cgaXNLaW5kT2ZDbGFzczpOU0NsYXNzRnJvbVN0cmluZyhAIldLRGF0ZVRpbWVQaWNr
ZXJXaW5kb3ciKV0pCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJu
IGZhbHNlOworfQorCiBib29sIFVJU2NyaXB0Q29udHJvbGxlck1hYzo6aXNTaG93aW5nRGF0YUxp
c3RTdWdnZXN0aW9ucygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRhdGFMaXN0U3VnZ2VzdGlvbnNU
YWJsZVZpZXcoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBjNzZlNDI0Njg1Y2Y4MDc2ODUzZmEzZjBlMmVmYzAwOTY5MDZl
NWZkLi5jNTAxMzM4ZTA2YmMxMWVmZmY1Nzc0NzI1N2E5ZjNiZDA2YTUwOWMxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjEgQEAKKzIwMjAtMDgtMDUgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUu
Y29tPgorCisgICAgICAgIFttYWNPU10gU2hvdyBwaWNrZXIgZm9yIGRhdGUgYW5kIGRhdGV0aW1l
LWxvY2FsIGlucHV0IHR5cGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTQ5NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRlZCB0ZXN0cyB0byB2ZXJpZnkgdGhhdCB0aGUgcGlja2VyIGlzIGNvcnJl
Y3RseSBzaG93biBhbmQgaGlkZGVuIGZvciBkYXRlIGFuZAorICAgICAgICBkYXRldGltZS1sb2Nh
bCBpbnB1dCB0eXBlcy4KKworICAgICAgICAqIGZhc3QvZm9ybXMvZGF0ZS9kYXRlLXNob3ctaGlk
ZS1waWNrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2RhdGUv
ZGF0ZS1zaG93LWhpZGUtcGlja2VyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
ZGF0ZXRpbWVsb2NhbC9kYXRldGltZWxvY2FsLXNob3ctaGlkZS1waWNrZXItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2RhdGV0aW1lbG9jYWwvZGF0ZXRpbWVsb2Nh
bC1zaG93LWhpZGUtcGlja2VyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9U
ZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHJlc291cmNlcy91aS1oZWxwZXIuanM6CisgICAg
ICAgICh3aW5kb3cuVUlIZWxwZXIuaXNTaG93aW5nRGF0ZVRpbWVQaWNrZXIpOgorCiAyMDIwLTA4
LTA0ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBE
aXNhYmxlIGlzb2xhdGVkLXRyZWUtbW9kZS1vbi1vZmYuaHRtbCBiZWNhdXNlIGl0IGlzIGNhdXNp
bmcgb3RoZXIgdGVzdCBmYWlsdXJlcy4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2RhdGUvZGF0ZS1zaG93LWhpZGUtcGlja2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLXNob3ctaGlkZS1waWNrZXItZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmY1MmQyNDI3NzI5NDc5ZDJhZjgzOGE5NGYxZDRmN2RiODQwMTExMWIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1zaG93LWhpZGUtcGlj
a2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworMS4gSXMgc2hvd2luZyBkYXRlIHBp
Y2tlcj8gdHJ1ZQorMi4gSXMgc2hvd2luZyBkYXRlIHBpY2tlcj8gZmFsc2UKKworVGhpcyB0ZXN0
IHZlcmlmaWVzIHRoYXQgYSBkYXRlIHBpY2tlciBpcyBwcmVzZW50ZWQgd2hlbiBjbGlja2luZyBv
biBhIGRhdGUgaW5wdXQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGUv
ZGF0ZS1zaG93LWhpZGUtcGlja2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGUv
ZGF0ZS1zaG93LWhpZGUtcGlja2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Q2MmIyMDBiN2RmNDAwNWM5
ZDQ1OWRmMTdlNTI4NTkyODkxZjhiYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvZGF0ZS9kYXRlLXNob3ctaGlkZS1waWNrZXIuaHRtbApAQCAtMCwwICsxLDQwIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg
Y29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFi
bGU9bm8iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwv
c2NyaXB0PgorPHN0eWxlPgoraW5wdXQgeworICAgIHdpZHRoOiAzMDBweDsKKyAgICBoZWlnaHQ6
IDUwcHg7Cit9CisKK2JvZHkgeworICAgIG1hcmdpbjogMDsKK30KKzwvc3R5bGU+Cis8aGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxpbnB1dCBpZD0iaW5wdXQiIHR5cGU9ImRhdGUi
Lz4KKzxwcmU+MS4gSXMgc2hvd2luZyBkYXRlIHBpY2tlcj8gPHNwYW4gaWQ9ImJlZm9yZSI+PC9z
cGFuPjwvcHJlPgorPHByZT4yLiBJcyBzaG93aW5nIGRhdGUgcGlja2VyPyA8c3BhbiBpZD0iYWZ0
ZXIiPjwvc3Bhbj48L3ByZT4KKzxicj4KKzxkaXY+VGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgYSBk
YXRlIHBpY2tlciBpcyBwcmVzZW50ZWQgd2hlbiBjbGlja2luZyBvbiBhIGRhdGUgaW5wdXQuPC9k
aXY+Cis8L2JvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9
CisKK2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZh
dGVBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uQXQoMTUwLCAyNSk7CisKKyAgICBiZWZvcmUudGV4dENv
bnRlbnQgPSBhd2FpdCBVSUhlbHBlci5pc1Nob3dpbmdEYXRlVGltZVBpY2tlcigpOworICAgIGlu
cHV0LmJsdXIoKTsKKyAgICBhZnRlci50ZXh0Q29udGVudCA9IGF3YWl0IFVJSGVscGVyLmlzU2hv
d2luZ0RhdGVUaW1lUGlja2VyKCk7CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30K
Kzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9k
YXRldGltZWxvY2FsL2RhdGV0aW1lbG9jYWwtc2hvdy1oaWRlLXBpY2tlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGV0aW1lbG9jYWwvZGF0ZXRpbWVsb2NhbC1zaG93
LWhpZGUtcGlja2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDFmZjNkODViOGFkNGE0N2E5
ZWJkNWIzN2VkOTM0ZDI2ODc2YzBiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9kYXRldGltZWxvY2FsL2RhdGV0aW1lbG9jYWwtc2hvdy1oaWRlLXBpY2tlci1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKKzEuIElzIHNob3dpbmcgZGF0ZSBwaWNrZXI/IHRy
dWUKKzIuIElzIHNob3dpbmcgZGF0ZSBwaWNrZXI/IGZhbHNlCisKK1RoaXMgdGVzdCB2ZXJpZmll
cyB0aGF0IGEgZGF0ZSBwaWNrZXIgaXMgcHJlc2VudGVkIHdoZW4gY2xpY2tpbmcgb24gYSBkYXRl
dGltZS1sb2NhbCBpbnB1dC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0
ZXRpbWVsb2NhbC9kYXRldGltZWxvY2FsLXNob3ctaGlkZS1waWNrZXIuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvZGF0ZXRpbWVsb2NhbC9kYXRldGltZWxvY2FsLXNob3ctaGlkZS1waWNr
ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zZDUwZjNmMTI5ZjA5NzZiNTI2YTlkOTE1MTM1ODM0MjYzZjIy
NzFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRldGltZWxv
Y2FsL2RhdGV0aW1lbG9jYWwtc2hvdy1oaWRlLXBpY2tlci5odG1sCkBAIC0wLDAgKzEsNDAgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBj
b250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJs
ZT1ubyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+Cis8c3R5bGU+CitpbnB1dCB7CisgICAgd2lkdGg6IDMwMHB4OworICAgIGhlaWdodDog
NTBweDsKK30KKworYm9keSB7CisgICAgbWFyZ2luOiAwOworfQorPC9zdHlsZT4KKzxoZWFkPgor
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGlucHV0IGlkPSJpbnB1dCIgdHlwZT0iZGF0ZXRp
bWUtbG9jYWwiLz4KKzxwcmU+MS4gSXMgc2hvd2luZyBkYXRlIHBpY2tlcj8gPHNwYW4gaWQ9ImJl
Zm9yZSI+PC9zcGFuPjwvcHJlPgorPHByZT4yLiBJcyBzaG93aW5nIGRhdGUgcGlja2VyPyA8c3Bh
biBpZD0iYWZ0ZXIiPjwvc3Bhbj48L3ByZT4KKzxicj4KKzxkaXY+VGhpcyB0ZXN0IHZlcmlmaWVz
IHRoYXQgYSBkYXRlIHBpY2tlciBpcyBwcmVzZW50ZWQgd2hlbiBjbGlja2luZyBvbiBhIGRhdGV0
aW1lLWxvY2FsIGlucHV0LjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworfQorCithc3luYyBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIGF3
YWl0IFVJSGVscGVyLmFjdGl2YXRlQW5kV2FpdEZvcklucHV0U2Vzc2lvbkF0KDE1MCwgMjUpOwor
CisgICAgYmVmb3JlLnRleHRDb250ZW50ID0gYXdhaXQgVUlIZWxwZXIuaXNTaG93aW5nRGF0ZVRp
bWVQaWNrZXIoKTsKKyAgICBpbnB1dC5ibHVyKCk7CisgICAgYWZ0ZXIudGV4dENvbnRlbnQgPSBh
d2FpdCBVSUhlbHBlci5pc1Nob3dpbmdEYXRlVGltZVBpY2tlcigpOworCisgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNTEwNWQ3ZGFkNDNkN2U4MTg4MjY0YjNiODhh
NDI3OGVjOGRkZjA2Mi4uYWEyNGFlYzZiZDFjNDMxNzZlMGFlMGViYmY5YTg0YzQ1NzY1MmIxYyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM0NzMsNiAr
MzQ3MywxMCBAQCB3ZWJraXQub3JnL2IvMjE0NDk4IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY29ycy9yZW1vdGUtb3JpZ2luLmh0bSBbIFBhcwogCiBmYXN0L3RleHQvc2VsZWN0aW9u
LWlzLXByZXZlbnQtZGVmYXVsdGVkLmh0bWwgWyBGYWlsdXJlIF0KIAorIyBGSVhNRTogVGhlc2Ug
dGVzdHMgcmVxdWlyZSBVSVNjcmlwdENvbnRyb2xsZXJJT1MgYWRkaXRpb25zIHRvIGtub3cgd2hl
biBhIGRhdGUvdGltZSBwaWNrZXIgaXMgcHJlc2VudGVkCitmYXN0L2Zvcm1zL2RhdGUvZGF0ZS1z
aG93LWhpZGUtcGlja2VyLmh0bWwgWyBTa2lwIF0KK2Zhc3QvZm9ybXMvZGF0ZXRpbWVsb2NhbC9k
YXRldGltZWxvY2FsLXNob3ctaGlkZS1waWNrZXIuaHRtbCBbIFNraXAgXQorCiAjIDxyZGFyOi8v
cHJvYmxlbS81OTYzNjExNT4gUkVHUkVTU0lPTjogWyBpT1MgJiBtYWNPUyBdIHR3byBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSSBhcmUgZmFpbGluZwogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvaW1wb3J0X2V4cG9ydC9yc2Ff
aW1wb3J0S2V5Lmh0dHBzLndvcmtlci5odG1sIFsgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9pbXBvcnRfZXhwb3J0L3Rlc3RfcnNhX2ltcG9y
dEtleS5odHRwcy5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNv
dXJjZXMvdWktaGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwpp
bmRleCBiMzBjZjgzZjlhYWIzMzdmOWU0OTI2MDExNjk1YzM1ODMwMTM1Y2M5Li5kN2YwMTk0ZTdi
YmI1YWZhZmFmMjY1ZjgzNDZhNGZiOWU2OTE4NDM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9y
ZXNvdXJjZXMvdWktaGVscGVyLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxw
ZXIuanMKQEAgLTg0MSw2ICs4NDEsMTUgQEAgd2luZG93LlVJSGVscGVyID0gY2xhc3MgVUlIZWxw
ZXIgewogICAgICAgICB9KTsKICAgICB9CiAKKyAgICBzdGF0aWMgaXNTaG93aW5nRGF0ZVRpbWVQ
aWNrZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgKCgpID0+IHsKKyAgICAgICAgICAg
ICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSh1aUNvbnRyb2xsZXIuaXNTaG93aW5n
RGF0ZVRpbWVQaWNrZXIpOworICAgICAgICAgICAgfSkoKWAsIHJlc3VsdCA9PiByZXNvbHZlKHJl
c3VsdCA9PT0gInRydWUiKSk7CisgICAgICAgIH0pOworICAgIH0KKwogICAgIHN0YXRpYyB6b29t
U2NhbGUoKQogICAgIHsKICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406057</attachid>
            <date>2020-08-05 16:55:23 -0700</date>
            <delta_ts>2020-08-06 13:35:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214946-20200805195522.patch</filename>
            <type>text/plain</type>
            <size>86981</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1Mjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY2NjQ5MGJiZjJjNDc4
NmVlYzU2N2UxOTYzNGIzYjc4YmMzY2M4NS4uNmFjMmQ0YmU4NTA1YTg5M2YyMmM2OTgxMDI4N2Uz
NWJkMjEzZDBiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTA4LTA1ICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFNob3cg
cGlja2VyIGZvciBkYXRlIGFuZCBkYXRldGltZS1sb2NhbCBpbnB1dCB0eXBlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0OTQ2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGF0ZSBhbmQgZGF0ZXRpbWUt
bG9jYWwgaW5wdXQgdHlwZXMgcmVxdWlyZSBhIGNhbGVuZGFyIHBpY2tlciB0byBiZSBwcmVzZW50
ZWQgd2hlbiBhY3RpdmF0ZWQuCisgICAgICAgIENvbnNlcXVlbnRseSwgQmFzZUNob29zZXJPbmx5
RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQgd2FzIG1vZGlmaWVk
IHRvCisgICAgICAgIGNyZWF0ZSBhIERhdGVUaW1lQ2hvb3NlciBhbmQgZGlzcGxheSBhIGNhbGVu
ZGFyIHVwb24gYWN0aXZhdGlvbi4gVGhpcyBvYmplY3QgaXMgZGVzdHJveWVkCisgICAgICAgIHdo
ZW4gdGhlIGVsZW1lbnQgaXMgYmx1cnJlZCwgaGlkaW5nIHRoZSBjYWxlbmRhci4KKworICAgICAg
ICBUaGVyZSBpcyBjdXJyZW50bHkgbm8gcGlja2VyIFVJIGZvciBtb250aCwgd2VlaywgYW5kIHRp
bWUgaW5wdXQgdHlwZXMuIEFzIGEgcmVzdWx0LCAKKyAgICAgICAgaGFuZGxlRE9NQWN0aXZhdGVF
dmVudCBpcyBhIG5vLW9wIG9uIHRob3NlIGlucHV0IHR5cGVzLgorCisgICAgICAgIFdyb3RlIGFu
IGVuY29kZXIgYW5kIGRlY29kZXIgZm9yIERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMsIHNvIHRo
YXQgdGhlIHBpY2tlciBjYW4gYmUKKyAgICAgICAgY3JlYXRlZCB3aXRoIHRoZSBjb3JyZWN0IHZh
bHVlcy4KKworICAgICAgICBUZXN0czogZmFzdC9mb3Jtcy9kYXRlL2RhdGUtc2hvdy1oaWRlLXBp
Y2tlci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2RhdGV0aW1lbG9jYWwvZGF0ZXRp
bWVsb2NhbC1zaG93LWhpZGUtcGlja2VyLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0Jhc2VDaG9vc2VyT25seURhdGVB
bmRUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjplbGVtZW50RGlkQmx1
cik6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlw
ZTo6aXNQcmVzZW50aW5nQXR0YWNoZWRWaWV3IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJh
c2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaWRDaG9vc2VWYWx1ZSk6CisgICAg
ICAgICogaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oOgorICAgICAg
ICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9Nb250aElucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb250aElucHV0VHlwZTo6aGFuZGxlRE9NQWN0
aXZhdGVFdmVudCk6CisgICAgICAgICogaHRtbC9Nb250aElucHV0VHlwZS5oOgorICAgICAgICAq
IGh0bWwvVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBl
OjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KToKKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUu
aDoKKyAgICAgICAgKiBodG1sL1dlZWtJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2Vla0lucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudCk6CisgICAgICAgICogaHRtbC9X
ZWVrSW5wdXRUeXBlLmg6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlRGF0ZVRpbWVDaG9vc2VyKToK
KyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpjcmVhdGVEYXRlVGltZUNob29zZXIpOgor
ICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9EYXRlVGltZUNob29zZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9EYXRlVGltZUNob29zZXJDbGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9EYXRlVGltZUNo
b29zZXJQYXJhbWV0ZXJzLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVDaG9v
c2VyUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
Q2hvb3NlclBhcmFtZXRlcnM6OmRlY29kZSk6CisKIDIwMjAtMDgtMDQgIERldmluIFJvdXNzbyAg
PGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgICJEb3VibGVEb3duIENhc2lubyIgcmVzcGlu
IGJ1dHRvbiBzdG9wcyB3b3JraW5nIHdpdGggdHJhY2twYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTg2OWRmNDRl
YmFiZWIyZDAzYmNjMTE3YmRlZTU1NTFjZGM4YWEzMS4uMjYzZjIwNzg4ODk2OTRkYzg1NjFiNjU5
NjFhMjZhMWU4YzdiZThhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NyBAQAorMjAyMC0wOC0wNSAg
QWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBT
aG93IHBpY2tlciBmb3IgZGF0ZSBhbmQgZGF0ZXRpbWUtbG9jYWwgaW5wdXQgdHlwZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDk0NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0ZWQgV0tEYXRl
VGltZVBpY2tlciBhcyBhIHdyYXBwZXIgYXJvdW5kIE5TRGF0ZVBpY2tlci4gVGhlIHBpY2tlciBp
cworICAgICAgICBkaXNwbGF5ZWQgaW4gaXRzIG93biBOU1dpbmRvdywgZW5zdXJpbmcgdGhlIHZp
ZXcgaXMgYWx3YXlzIGFib3ZlIHRoZSBwYWdlLgorICAgICAgICBXZWJQYWdlUHJveHkgYW5kIFdL
RGF0ZVRpbWVQaWNrZXIgY29tbXVuaWNhdGUgdGhyb3VnaCBXZWJEYXRlVGltZVBpY2tlck1hYywK
KyAgICAgICAgaW4gb3JkZXIgZm9yIHRoZSBwaWNrZXIgdG8gYmUgaW5pdGlhbGl6ZWQgd2l0aCB0
aGUgY29ycmVjdCBpbml0aWFsLCBtaW5pbXVtLAorICAgICAgICBhbmQgbWF4aW11bSBkYXRlLCBh
bmQgc28gdGhhdCB0aGUgY2hvc2VuIGRhdGUgY2FuIGJlIHNlbnQgYmFjayB0byB0aGUKKyAgICAg
ICAgV2ViUHJvY2Vzcy4KKworICAgICAgICBBZGRlZCBJUEMgbWVzc2FnZXMgdG8gZW5hYmxlIGNv
bW11bmljYXRpb24gYmV0d2VlbiB0aGUgVUlQcm9jZXNzIGFuZCB0aGUKKyAgICAgICAgV2ViUHJv
Y2VzcyBuZWNlc3NhcnkgZm9yIHNob3dpbmcgYW5kIGhpZGluZyB0aGUgcGlja2VyLgorCisgICAg
ICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJEYXRlVGlt
ZVBpY2tlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRlVGltZVBpY2tlcjo6
V2ViRGF0ZVRpbWVQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRlVGltZVBpY2tlcjo6
fldlYkRhdGVUaW1lUGlja2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0ZVRpbWVQaWNrZXI6
OmVuZFBpY2tlcik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlja2VyLmg6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnNob3dEYXRlVGltZVBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6ZW5kRGF0ZVRpbWVQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRpZENob29zZURhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmRpZEVuZERhdGVUaW1lUGlja2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpj
bG9zZU92ZXJsYXllZFZpZXdzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudElt
cGw6OmNyZWF0ZURhdGVUaW1lUGlja2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VD
bGllbnRJbXBsTWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmNyZWF0ZURhdGVUaW1lUGlj
a2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkRhdGVUaW1lUGlja2VyTWFjLmg6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViRGF0ZVRpbWVQaWNrZXJNYWMubW06IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRlVGltZVBpY2tlck1hYzo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViRGF0ZVRpbWVQaWNrZXJNYWM6On5XZWJEYXRlVGltZVBpY2tlck1h
Yyk6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGVUaW1lUGlja2VyTWFjOjpXZWJEYXRlVGltZVBp
Y2tlck1hYyk6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGVUaW1lUGlja2VyTWFjOjplbmRQaWNr
ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRlVGltZVBpY2tlck1hYzo6c2hvd0RhdGVUaW1l
UGlja2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0ZVRpbWVQaWNrZXJNYWM6OmRpZENob29z
ZURhdGUpOgorICAgICAgICAoLVtXS0RhdGVUaW1lUGlja2VyV2luZG93IGluaXRXaXRoQ29udGVu
dFJlY3Q6c3R5bGVNYXNrOmJhY2tpbmc6ZGVmZXI6XSk6CisgICAgICAgICgtW1dLRGF0ZVRpbWVQ
aWNrZXJXaW5kb3cgY2FuQmVjb21lS2V5V2luZG93XSk6CisgICAgICAgICgtW1dLRGF0ZVRpbWVQ
aWNrZXJXaW5kb3cgaGFzS2V5QXBwZWFyYW5jZV0pOgorICAgICAgICAoLVtXS0RhdGVUaW1lUGlj
a2VyV2luZG93IHNoYWRvd09wdGlvbnNdKToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBpY2tlciBp
bml0V2l0aFBhcmFtczppblZpZXc6XSk6CisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIgc2hv
d1BpY2tlcjpdKToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBpY2tlciBpbnZhbGlkYXRlXSk6Cisg
ICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIgZGlkQ2hvb3NlRGF0ZTpdKToKKyAgICAgICAgKC1b
V0tEYXRlVGltZVBpY2tlciBkYXRlRm9ybWF0U3RyaW5nRm9yVHlwZTpdKToKKyAgICAgICAgKiBX
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNo
cm9tZUNsaWVudDo6Y3JlYXRlRGF0ZVRpbWVDaG9vc2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRGF0ZVRpbWVDaG9vc2VyLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYkRhdGVUaW1lQ2hvb3Nlcjo6V2ViRGF0ZVRpbWVDaG9vc2VyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViRGF0ZVRpbWVDaG9vc2VyOjpkaWRDaG9vc2VEYXRlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViRGF0ZVRpbWVDaG9vc2VyOjpkaWRFbmRDaG9vc2VyKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRGF0ZVRpbWVDaG9vc2VyOjplbmRDaG9vc2VyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
RGF0ZVRpbWVDaG9vc2VyOjpzaG93Q2hvb3Nlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJEYXRlVGltZUNob29zZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRB
Y3RpdmVEYXRlVGltZUNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDaG9v
c2VEYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkRW5kRGF0ZVRpbWVQaWNrZXIp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjAtMDgtMDQgIEJyZW50
IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWls
ZCBmaXggYWZ0ZXIgcjI2NTI2MwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGNhZmVm
ZTMwNjQ5NzIwMzk0Y2IwODg4MDIyYWE4NjMzNmIzZjJlZWYuLmE0M2Q5OTdiOGFmZTNhNzBiNmNi
YjVmMDVmNmYyZjM2MGY0MjRkODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMC0wOC0wNSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5j
b20+CisKKyAgICAgICAgW21hY09TXSBTaG93IHBpY2tlciBmb3IgZGF0ZSBhbmQgZGF0ZXRpbWUt
bG9jYWwgaW5wdXQgdHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNDk0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50OjpjcmVhdGVEYXRlVGltZUNob29zZXIpOgorCiAyMDIwLTA4LTAzICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIHVzZXIgZ2VzdHVyZSBwcm9wYWdh
dGlvbiBvdmVyIHByb21pc2UgYmVoaW5kIGEgZmVhdHVyZSBmbGFnCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDJlMTgwMmM0OWYw
OThlOWNjZGU4Y2QzOTlhMzNlMDgyOGJjYTE5Zi4uYmQ1ZDg3YmRkZDc4ZWI2MWRiN2Y2ZjJkZjIw
MmE3YzI2MmZlNDE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTAwMCw4ICsxMDAwLDggQEAKIAkJMzdDNzM4RUIxRURCRDM4
NDAwM0YyQjBCIC8qIFBlcmZvcm1hbmNlTWVhc3VyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdDNzM4RUExRURCRDM4MTAwM0YyQjBCIC8qIFBlcmZv
cm1hbmNlTWVhc3VyZS5oICovOyB9OwogCQkzN0M3MzhFRDFFREJENUJDMDAzRjJCMEIgLyogU1ZH
VW5rbm93bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDM3QzczOEVDMUVEQkQ1QjcwMDNGMkIwQiAvKiBTVkdVbmtub3duRWxlbWVudC5oICov
OyB9OwogCQkzN0M3MzhFRjFFREJENzFCMDAzRjJCMEIgLyogTWF0aE1MVW5rbm93bkVsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3QzczOEVF
MUVEQkQ3MTgwMDNGMkIwQiAvKiBNYXRoTUxVbmtub3duRWxlbWVudC5oICovOyB9OwotCQkzN0M3
MzhGMzFFREJERThBMDAzRjJCMEIgLyogRGF0ZVRpbWVDaG9vc2VyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0M3MzhGMTFFREJERTg3MDAzRjJCMEIg
LyogRGF0ZVRpbWVDaG9vc2VyLmggKi87IH07Ci0JCTM3QzczOEY0MUVEQkRFOEQwMDNGMkIwQiAv
KiBEYXRlVGltZUNob29zZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDM3QzczOEYyMUVEQkRFODcwMDNGMkIwQiAvKiBEYXRlVGltZUNob29z
ZXJDbGllbnQuaCAqLzsgfTsKKwkJMzdDNzM4RjMxRURCREU4QTAwM0YyQjBCIC8qIERhdGVUaW1l
Q2hvb3Nlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzdDNzM4RjExRURCREU4NzAwM0YyQjBCIC8qIERhdGVUaW1lQ2hvb3Nlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTM3QzczOEY0MUVEQkRFOEQw
MDNGMkIwQiAvKiBEYXRlVGltZUNob29zZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3QzczOEYyMUVEQkRFODcwMDNGMkIwQiAvKiBEYXRl
VGltZUNob29zZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkzN0Q0NTZGRDFBOUE1MEQ4MDAzMzMwQTEgLyogTG9jYWxpemFibGVTdHJp
bmdzLnBtIGluIENvcHkgU2NyaXB0cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzN0Q0NTZGQjFBOUE1MEI2MDAzMzMwQTEgLyogTG9jYWxpemFibGVTdHJpbmdzLnBtICovOyB9
OwogCQkzN0UzNTI0RDEyNDUwQzY2MDBCQUY1RDkgLyogSW5wdXRUeXBlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0UzNTI0QzEyNDUwQzY2MDBCQUY1
RDkgLyogSW5wdXRUeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMzdGNTY3Q0UxNjUzNThGNDAwRERFOTJCIC8qIFBvcHVwT3BlbmluZ09ic2Vy
dmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzcy
QjA5NTE2NTM1ODU2MDAwQTQ5Q0EgLyogUG9wdXBPcGVuaW5nT2JzZXJ2ZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNTA3MSw2ICs1MDcxLDcg
QEAKIAkJRTU4QjQ1QkEyMEFEMDdERDAwOTkxMDI1IC8qIERhdGFMaXN0QnV0dG9uRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU4QjQ1Qjgy
MEFEMDdERDAwOTkxMDI1IC8qIERhdGFMaXN0QnV0dG9uRWxlbWVudC5oICovOyB9OwogCQlFNTlE
RDRCODIxMDk4Mjg3MDAzQzhCNDcgLyogTGlzdEJ1dHRvbkFycm93LnBuZyBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU5REQ0QjcyMTA5ODI4NTAwM0M4
QjQ3IC8qIExpc3RCdXR0b25BcnJvdy5wbmcgKi87IH07CiAJCUU1QkE3RDYzMTUxNDM3Q0EwMEZF
MUUzRiAvKiBMZW5ndGhGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU1QkE3RDYyMTUxNDM3Q0EwMEZFMUUzRiAvKiBMZW5ndGhGdW5jdGlv
bnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlF
NUM1OUE5QTI0RDBFMUFBMDAzQjg2RTEgLyogRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVDNTlBOTkyNEQw
RTFBQTAwM0I4NkUxIC8qIERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNzE0NjdCMzI0QUJBRUYyMDBG
QjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTcxNDY3QjEyNEFCQUVGMTAwRkIyRjUwIC8qIEF1ZGlvTm9kZU9w
dGlvbnMuaCAqLzsgfTsKIAkJRTcxNDY3QjYyNEFCQUYxRDAwRkIyRjUwIC8qIFBhbm5lck9wdGlv
bnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU3MTQ2
N0I1MjRBQkFGMUQwMEZCMkY1MCAvKiBQYW5uZXJPcHRpb25zLmggKi87IH07CiAJCUU3NTVFODky
MjRDNzQzNEIwMDlGN0MyMyAvKiBQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTc1NUU4OEYyNEM3NDM0QjAwOUY3
QzIzIC8qIFBlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmggKi87IH07CkBAIC0xNTg4NSw2ICsxNTg4
Niw3IEBACiAJCUU1OEI0NUI4MjBBRDA3REQwMDk5MTAyNSAvKiBEYXRhTGlzdEJ1dHRvbkVsZW1l
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YUxpc3RCdXR0b25FbGVtZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUU1OURENEI3MjEwOTgyODUwMDNDOEI0NyAvKiBMaXN0QnV0dG9u
QXJyb3cucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gaW1hZ2UucG5nOyBwYXRoID0gTGlzdEJ1dHRvbkFycm93LnBuZzsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTVCQTdENjIxNTE0MzdDQTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9u
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMZW5ndGhGdW5jdGlvbnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTVDNTlBOTkyNEQwRTFBQTAwM0I4NkUxIC8q
IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFNzE0NjdCMTI0QUJBRUYxMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb05vZGVPcHRpb25zLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU3MTQ2N0I0MjRBQkFGMEIwMEZCMkY1MCAvKiBBdWRp
b05vZGVPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRpb05vZGVPcHRpb25zLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTcxNDY3QjUyNEFCQUYxRDAwRkIyRjUwIC8qIFBhbm5lck9wdGlv
bnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFubmVyT3B0aW9ucy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjY2MzMsNiArMjY2MzUsNyBAQAogCQkJCUE1
NzMyQjA5MTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRlQ29tcG9uZW50cy5oICovLAogCQkJCTM3Qzcz
OEYxMUVEQkRFODcwMDNGMkIwQiAvKiBEYXRlVGltZUNob29zZXIuaCAqLywKIAkJCQkzN0M3MzhG
MjFFREJERTg3MDAzRjJCMEIgLyogRGF0ZVRpbWVDaG9vc2VyQ2xpZW50LmggKi8sCisJCQkJRTVD
NTlBOTkyNEQwRTFBQTAwM0I4NkUxIC8qIERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMuaCAqLywK
IAkJCQk0NUZFQTVDRDE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5jcHAgKi8sCiAJCQkJNDVG
RUE1Q0UxNTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwuaCAqLywKIAkJCQlDRDgzRDM1QTIxMTEx
MDgyMDA3NkUxMUMgLyogRGVmZXJyYWJsZVRhc2suaCAqLywKQEAgLTMwNjUxLDYgKzMwNjU0LDcg
QEAKIAkJCQlGNTVCM0RCNjEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZUlucHV0VHlwZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzdDNzM4RjMxRURCREU4QTAwM0YyQjBCIC8qIERhdGVUaW1lQ2hvb3Nl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdDNzM4RjQxRURCREU4RDAwM0YyQjBCIC8qIERhdGVU
aW1lQ2hvb3NlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTVDNTlBOUEyNEQwRTFBQTAw
M0I4NkUxIC8qIERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQ1M0VCNjM3MTU5QzU3MDQwMDAwMUJCNyAvKiBEYXRlVGltZUZvcm1hdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRjU1QjNEQkExMjUxRjEyRDAwM0VGMjY5IC8qIERhdGVUaW1lTG9jYWxJbnB1dFR5
cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNkExMkJFMUEwMDkyMzcwMEM2REU3MiAvKiBEZWJ1
Z1BhZ2VPdmVybGF5cy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCmluZGV4
IDU0MjFmZGI0YmY2YjgxZGU5ZjU0ZTFiMjE2NjVhOTc1YmQzYTMzMTUuLjQyNGI5Mjk0OGI0MzE4
NDQwYmM1MWM1OGU4MGJlZDRiOWNjZjhiNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC0y
OSw2ICsyOSw4IEBACiAKICNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKIAor
I2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkRhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMu
aCIKICNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1l
bnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC01Nyw2ICs1OSwyMiBAQCB2b2lkIEJhc2VDaG9v
c2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50
JikKICAgICBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CiAgICAgaWYgKCFl
bGVtZW50KCktPnNldHVwRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyhwYXJhbWV0ZXJzKSkKICAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKGF1dG8gY2hyb21lID0gdGhpcy0+Y2hyb21lKCkpIHsK
KyAgICAgICAgbV9kYXRlVGltZUNob29zZXIgPSBjaHJvbWUtPmNyZWF0ZURhdGVUaW1lQ2hvb3Nl
cigqdGhpcyk7CisgICAgICAgIGlmIChtX2RhdGVUaW1lQ2hvb3NlcikKKyAgICAgICAgICAgIG1f
ZGF0ZVRpbWVDaG9vc2VyLT5zaG93Q2hvb3NlcihwYXJhbWV0ZXJzKTsKKyAgICB9Cit9CisKK3Zv
aWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmVsZW1lbnREaWRCbHVyKCkK
K3sKKyAgICBjbG9zZURhdGVUaW1lQ2hvb3NlcigpOworfQorCitib29sIEJhc2VDaG9vc2VyT25s
eURhdGVBbmRUaW1lSW5wdXRUeXBlOjppc1ByZXNlbnRpbmdBdHRhY2hlZFZpZXcoKSBjb25zdAor
eworICAgIHJldHVybiAhIW1fZGF0ZVRpbWVDaG9vc2VyOwogfQogCiB2b2lkIEJhc2VDaG9vc2Vy
T25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKQEAgLTk2LDEw
ICsxMTQsMTAgQEAgdm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGV0
YWNoKCkKICAgICBjbG9zZURhdGVUaW1lQ2hvb3NlcigpOwogfQogCi12b2lkIEJhc2VDaG9vc2Vy
T25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaWRDaG9vc2VWYWx1ZShjb25zdCBTdHJpbmcmIHZh
bHVlKQordm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGlkQ2hvb3Nl
VmFsdWUoU3RyaW5nVmlldyB2YWx1ZSkKIHsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKLSAgICBl
bGVtZW50KCktPnNldFZhbHVlKHZhbHVlLCBEaXNwYXRjaElucHV0QW5kQ2hhbmdlRXZlbnQpOwor
ICAgIGVsZW1lbnQoKS0+c2V0VmFsdWUodmFsdWUudG9TdHJpbmcoKSwgRGlzcGF0Y2hJbnB1dEFu
ZENoYW5nZUV2ZW50KTsKIH0KIAogdm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0
VHlwZTo6ZGlkRW5kQ2hvb3NlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jh
c2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKaW5kZXggYTNmMWNmNWE1YjJh
Y2EwY2E4ZTk5NTE4MTE2OTUyMDBhMzM3OGYwZC4uMTRhMWVlMGIzMzIyNTAxNzliODc3MDA0YWVl
OTFjYWJlYjUwODAyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nl
ck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuaApAQCAtNDksMTggKzQ5LDIwIEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkZXRhY2goKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZhbHVlKGNv
bnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBv
dmVycmlkZTsKICAgICB2b2lkIGhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGVsZW1lbnREaWRCbHVyKCkgZmluYWw7CiAgICAgU2hvdWxkQ2FsbEJhc2VF
dmVudEhhbmRsZXIgaGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQmKSBvdmVycmlkZTsK
ICAgICB2b2lkIGhhbmRsZUtleXByZXNzRXZlbnQoS2V5Ym9hcmRFdmVudCYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgaGFuZGxlS2V5dXBFdmVudChLZXlib2FyZEV2ZW50Jikgb3ZlcnJpZGU7CiAgICAg
Ym9vbCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIG92ZXJyaWRlOwogICAg
IGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgaXNQcmVz
ZW50aW5nQXR0YWNoZWRWaWV3KCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBhdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIC8vIERhdGVUaW1lQ2hv
b3NlckNsaWVudCBmdW5jdGlvbnM6Ci0gICAgdm9pZCBkaWRDaG9vc2VWYWx1ZShjb25zdCBTdHJp
bmcmKSBmaW5hbDsKKyAgICB2b2lkIGRpZENob29zZVZhbHVlKFN0cmluZ1ZpZXcpIGZpbmFsOwog
ICAgIHZvaWQgZGlkRW5kQ2hvb3NlcigpIGZpbmFsOwogCi0gICAgUmVmUHRyPERhdGVUaW1lQ2hv
b3Nlcj4gbV9kYXRlVGltZUNob29zZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lQ2hv
b3Nlcj4gbV9kYXRlVGltZUNob29zZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCAxOTM4M2U3YmU0YTVm
NTk1ZGNlNGM5OGE0N2QxNzYyYjM2M2E0MTRjLi4wNDBkODcwYTQwODQwODkxYjdjZTBlMjE5OWJj
YjU5NDAwZWQ2NjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAK
QEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVD
bGllbnQuaCIKICNpbmNsdWRlICJEYXRlVGltZUNob29zZXIuaCIKKyNpbmNsdWRlICJEYXRlVGlt
ZUNob29zZXJQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJF
ZGl0b3IuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJ
bnB1dFR5cGUuY3BwCmluZGV4IDQ5MDI2MGMyOGM3OWYzNTA2NzYyN2M4OWRiMDJmOWI2OWJiMGVl
MDQuLmViYWU3ZDFkMTZlNTk2MWUxN2Y0NzA5MGRiYWVlZTc3YmJmNTU4NmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCkBAIC0xMjksNiArMTI5LDggQEAgYm9vbCBNb250
aElucHV0VHlwZTo6aXNNb250aEZpZWxkKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAor
dm9pZCBNb250aElucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIHsgfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElu
cHV0VHlwZS5oCmluZGV4IDBjY2E5MjJhNTNjNDBkZjE1OGRjZmIyYzYwNjFkOGEzOGM4NGFmODQu
LjRiYmQxMWRkMGUwMjc0MDk1OTdiOTEzYWQ5YmEzZDg0OGUwNmY3OTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL01vbnRoSW5wdXRUeXBlLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHJpdmF0ZToKICAgICBPcHRp
b25hbDxEYXRlQ29tcG9uZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRzKGNvbnN0IFN0cmluZ1Zp
ZXcmKSBjb25zdCBvdmVycmlkZTsKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gc2V0TWls
bGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9v
bCBpc01vbnRoRmllbGQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGhhbmRsZURPTUFjdGl2
YXRlRXZlbnQoRXZlbnQmKSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCmluZGV4IDBiZDJkNGJjZTlhNThlYjc5
Njc5N2IzODExMDA4NDVhZTVkNjU2ZmQuLjUwOTMzY2FlYzc4ZGQ4MGQwMTg2YTQ5YWU5ZTg3ZDRi
ZTgzY2Q1MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcApAQCAtMTA0LDYg
KzEwNCw4IEBAIGJvb2wgVGltZUlucHV0VHlwZTo6aXNUaW1lRmllbGQoKSBjb25zdAogICAgIHJl
dHVybiB0cnVlOwogfQogCit2b2lkIFRpbWVJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZl
bnQoRXZlbnQmKSB7IH0KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKaW5kZXggODQxNjZiMDk1YWYyMTg4Y2E4ZTA3NTZiZTdl
NTU3MTFiMTJkOGVkNC4uMWU4NjBjMzE3ZmZkYzAxYzljZWM2ZmZiNGUzZDM0MDI5YzAzZmZkYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKQEAgLTQ4LDYgKzQ4LDcgQEAgcHJpdmF0
ZToKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRzKGNv
bnN0IFN0cmluZ1ZpZXcmKSBjb25zdCBvdmVycmlkZTsKICAgICBPcHRpb25hbDxEYXRlQ29tcG9u
ZW50cz4gc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBpc1RpbWVGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgaGFu
ZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKaW5kZXggYjJiYjI0
M2I5MDVkODQxNWIwMzRjOTQwNmU0YmZhMzgyMWIzOWJhMy4uODc0N2I3MzU1YmYzMjA5YTA2ZjUy
Zjk2NmZiNjk2YzY1MTAwMTdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVr
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3Bw
CkBAIC04Miw2ICs4Miw4IEBAIGJvb2wgV2Vla0lucHV0VHlwZTo6aXNXZWVrRmllbGQoKSBjb25z
dAogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFdlZWtJbnB1dFR5cGU6OmhhbmRsZURPTUFj
dGl2YXRlRXZlbnQoRXZlbnQmKSB7IH0KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKaW5kZXggZDNiYTE1MTMzZTczNDExZWE4
MDU0YzAzM2NmMTA2YTVjMzY2YTNhNy4uNTA5ODE3NDRiZmU0ZWJiNzEzYWZlYjg5YjZmMGRhZGE4
NjE1YWI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKQEAgLTQ3LDYgKzQ3LDcg
QEAgcHJpdmF0ZToKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gcGFyc2VUb0RhdGVDb21w
b25lbnRzKGNvbnN0IFN0cmluZ1ZpZXcmKSBjb25zdCBvdmVycmlkZTsKICAgICBPcHRpb25hbDxE
YXRlQ29tcG9uZW50cz4gc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1dlZWtGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApp
bmRleCAwYzE0YWU2OTBjZDNmNDZhNjNiYWU2MTYwODU0ZjFhMDNiODExYjQxLi4yZThhNGVjNmU3
MDJkOGQwYzAxMzlhNDIzYmZlNGIyYWMwMTMwOGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcApAQCAtNDkxLDYgKzQ5MSwxNSBAQCBzdGQ6OnVuaXF1ZV9wdHI8RGF0YUxp
c3RTdWdnZXN0aW9uUGlja2VyPiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlRGF0YUxpc3RTdWdn
ZQogCiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorCitz
dGQ6OnVuaXF1ZV9wdHI8RGF0ZVRpbWVDaG9vc2VyPiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRl
RGF0ZVRpbWVDaG9vc2VyKERhdGVUaW1lQ2hvb3NlckNsaWVudCYpCit7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKKyNlbmRpZgorCiB2b2lkIEVtcHR5Q2hyb21lQ2xpZW50OjpydW5PcGVuUGFu
ZWwoRnJhbWUmLCBGaWxlQ2hvb3NlciYpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmgKaW5kZXggNzFkNGU1NDM5MWI2MDU2MjVjMWVjZGM0ZTk3YTdhMzAxZDAxMzc5My4uM2U5
ZGU3ZDI2NmE5ZGVhNmUxYTAzNDQ2YTU5ZWY3ZjQwMDYwOTk0ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuaApAQCAtMTM2LDYgKzEzNiwxMCBAQCBjbGFzcyBFbXB0eUNocm9tZUNs
aWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogICAgIGJvb2wgY2FuU2hvd0RhdGFMaXN0U3Vn
Z2VzdGlvbkxhYmVscygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorICAgIHN0ZDo6dW5pcXVlX3B0
cjxEYXRlVGltZUNob29zZXI+IGNyZWF0ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGltZUNob29zZXJD
bGllbnQmKSBmaW5hbDsKKyNlbmRpZgorCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBG
aWxlQ2hvb3NlciYpIGZpbmFsOwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoU2hhcmVEYXRhV2l0
aFBhcnNlZFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogICAg
IHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9h
ZGVyJikgZmluYWwgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggNTQ1MzdhZGJlNWRhNmNm
NGI5MzIxZjAwODNiNThmYWJhNTBmZjA2Zi4uZGIwNzBiY2M3ZTI2NjA0NzdmYzBjNmMyNTgwYTU4
YmQxMWVjMTE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtNjEsNiArNjEsMTAgQEAKICNp
bmNsdWRlICJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCIKICNlbmRpZgogCisjaWYgRU5BQkxF
KERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisjaW5jbHVkZSAiRGF0ZVRpbWVDaG9vc2VyLmgi
CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKEdSQVBISUNTX0NPTlRFWFRf
R0wpCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgiCiAjZW5kaWYK
QEAgLTQ0Miw2ICs0NDYsMjEgQEAgc3RkOjp1bmlxdWVfcHRyPERhdGFMaXN0U3VnZ2VzdGlvblBp
Y2tlcj4gQ2hyb21lOjpjcmVhdGVEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIKIAogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKworc3RkOjp1bmlxdWVfcHRy
PERhdGVUaW1lQ2hvb3Nlcj4gQ2hyb21lOjpjcmVhdGVEYXRlVGltZUNob29zZXIoRGF0ZVRpbWVD
aG9vc2VyQ2xpZW50JiBjbGllbnQpCit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBV
TlVTRURfUEFSQU0oY2xpZW50KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyNlbHNlCisgICAgbm90
aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7CisgICAgcmV0dXJuIG1fY2xpZW50LmNyZWF0ZURh
dGVUaW1lQ2hvb3NlcihjbGllbnQpOworI2VuZGlmCit9CisKKyNlbmRpZgorCiB2b2lkIENocm9t
ZTo6cnVuT3BlblBhbmVsKEZyYW1lJiBmcmFtZSwgRmlsZUNob29zZXImIGZpbGVDaG9vc2VyKQog
ewogICAgIG5vdGlmeVBvcHVwT3BlbmluZ09ic2VydmVycygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5k
ZXggMjA3MzRlNDFiNTI0ODUwYWJjOWNiNTM1NzQyODA5NjgzMTljYTI1My4uOTRiOTUyZDZlOGYz
Y2ExOGM5M2IxOTEwZTUxM2E3OTI0Yjc0MDZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC0xNTcs
NiArMTU3LDEwIEBAIHB1YmxpYzoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YUxpc3RTdWdnZXN0
aW9uUGlja2VyPiBjcmVhdGVEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIoRGF0YUxpc3RTdWdnZXN0
aW9uc0NsaWVudCYpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9U
WVBFUykKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0ZVRpbWVDaG9vc2VyPiBjcmVhdGVEYXRlVGlt
ZUNob29zZXIoRGF0ZVRpbWVDaG9vc2VyQ2xpZW50Jik7CisjZW5kaWYKKwogICAgIHZvaWQgcnVu
T3BlblBhbmVsKEZyYW1lJiwgRmlsZUNob29zZXImKTsKICAgICB2b2lkIHNob3dTaGFyZVNoZWV0
KFNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKICAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxl
SWNvbkxvYWRlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggYzBhMGQzMGJj
ZmRmM2Y0MWNmMGU4ZDdmM2RlNGMyNGMwMWRiNjc5OC4uMTM2NGIzYWVhNmIxMjNiMDYxNDFlZmY0
YzFhNWNjNzFjY2M5OWYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0yODks
NiArMjg5LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2hvd0RhdGFMaXN0U3Vn
Z2VzdGlvbkxhYmVscygpIGNvbnN0ID0gMDsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5E
X1RJTUVfSU5QVVRfVFlQRVMpCisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8RGF0ZVRpbWVD
aG9vc2VyPiBjcmVhdGVEYXRlVGltZUNob29zZXIoRGF0ZVRpbWVDaG9vc2VyQ2xpZW50JikgPSAw
OworI2VuZGlmCisKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lJiwgRmlsZUNo
b29zZXImKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNob3dTaGFyZVNoZWV0KFNoYXJlRGF0YVdp
dGhQYXJzZWRVUkwmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJh
Y2spIHsgY2FsbGJhY2soZmFsc2UpOyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9EYXRlVGltZUNob29zZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Rh
dGVUaW1lQ2hvb3Nlci5oCmluZGV4IDIzYjA1ZDdjODI0ZjU1NjhjOGY4N2Y5Nzg1Mzc0YWJjMTNh
MDEwZWIuLjBmNjdjZTQ4MGFkNjJhOTNmNThkOTRlMTJhNWU5MTI0Njc4YjM2NzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGVUaW1lQ2hvb3Nlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGVUaW1lQ2hvb3Nlci5oCkBAIC0yOCw0MyArMjgsMjMgQEAK
ICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBEYXRlVGltZUNob29zZXJfaAotI2RlZmlu
ZSBEYXRlVGltZUNob29zZXJfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoREFURV9BTkRf
VElNRV9JTlBVVF9UWVBFUykKLSNpbmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBEYXRlVGltZUNo
b29zZXJQYXJhbWV0ZXJzIHsKLSAgICBBdG9tU3RyaW5nIHR5cGU7Ci0gICAgSW50UmVjdCBhbmNo
b3JSZWN0SW5Sb290VmlldzsKLSAgICAvLyBMb2NhbGUgbmFtZSBmb3Igd2hpY2ggdGhlIGNob29z
ZXIgc2hvdWxkIGJlIGxvY2FsaXplZC4gVGhpcwotICAgIC8vIG1pZ2h0IGJlIGFuIGludmFsaWQg
bmFtZSBiZWNhdXNlIGl0IGNvbWVzIGZyb20gSFRNTCBsYW5nCi0gICAgLy8gYXR0cmlidXRlcy4K
LSAgICBBdG9tU3RyaW5nIGxvY2FsZTsKLSAgICBTdHJpbmcgY3VycmVudFZhbHVlOwotICAgIFZl
Y3RvcjxTdHJpbmc+IHN1Z2dlc3Rpb25WYWx1ZXM7Ci0gICAgVmVjdG9yPFN0cmluZz4gbG9jYWxp
emVkU3VnZ2VzdGlvblZhbHVlczsKLSAgICBWZWN0b3I8U3RyaW5nPiBzdWdnZXN0aW9uTGFiZWxz
OwotICAgIGRvdWJsZSBtaW5pbXVtOwotICAgIGRvdWJsZSBtYXhpbXVtOwotICAgIGRvdWJsZSBz
dGVwOwotICAgIGRvdWJsZSBzdGVwQmFzZTsKLSAgICBib29sIHJlcXVpcmVkOwotICAgIGJvb2wg
aXNBbmNob3JFbGVtZW50UlRMOwotfTsKK3N0cnVjdCBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJz
OwogCi0vLyBGb3IgcGlja2VycyBsaWtlIGNvbG9yIHBpY2tlcnMgYW5kIGRhdGUgcGlja2Vycy4K
LWNsYXNzIERhdGVUaW1lQ2hvb3NlciA6IHB1YmxpYyBSZWZDb3VudGVkPERhdGVUaW1lQ2hvb3Nl
cj4geworY2xhc3MgRGF0ZVRpbWVDaG9vc2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPERhdGVU
aW1lQ2hvb3Nlcj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAg
IHZpcnR1YWwgfkRhdGVUaW1lQ2hvb3NlcigpID0gZGVmYXVsdDsKIAogICAgIHZpcnR1YWwgdm9p
ZCBlbmRDaG9vc2VyKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzaG93Q2hvb3Nlcihjb25zdCBE
YXRlVGltZUNob29zZXJQYXJhbWV0ZXJzJikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogI2VuZGlmCi0jZW5kaWYgLy8gRGF0ZVRpbWVDaG9vc2VyX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGVUaW1lQ2hvb3NlckNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRGF0ZVRpbWVDaG9vc2VyQ2xpZW50LmgKaW5kZXggZjMxOTE0ZjMwMTQx
ODI0YTVkZmYwZmI2OTJhMWFiNTg2NGY1ODY1Yi4uMTFkMTNlY2QzZjAwNjIwYjQ3ZmE4YTAxYzRk
ZjQyM2M0MzRmZDdlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZVRp
bWVDaG9vc2VyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZVRpbWVD
aG9vc2VyQ2xpZW50LmgKQEAgLTI4LDEwICsyOCwxMCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwog
Ci0jaWZuZGVmIERhdGVUaW1lQ2hvb3NlckNsaWVudF9oCi0jZGVmaW5lIERhdGVUaW1lQ2hvb3Nl
ckNsaWVudF9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVU
X1RZUEVTKQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERhdGVUaW1lQ2hvb3NlckNs
aWVudCB7CkBAIC0zOSwxMSArMzksMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkRhdGVUaW1l
Q2hvb3NlckNsaWVudCgpID0gZGVmYXVsdDsKIAogICAgIC8vIENhbGxlZCB3aGVuIHVzZXIgcGlj
a2VkIGEgdmFsdWUuCi0gICAgdmlydHVhbCB2b2lkIGRpZENob29zZVZhbHVlKGNvbnN0IFN0cmlu
ZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hvb3NlVmFsdWUoU3RyaW5nVmlldykgPSAw
OwogICAgIC8vIENhbGxlZCB3aGVuIGNob29zZXIgaGFzIGVuZGVkLgogICAgIHZpcnR1YWwgdm9p
ZCBkaWRFbmRDaG9vc2VyKCkgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotI2Vu
ZGlmCi0jZW5kaWYgLy8gRGF0ZVRpbWVDaG9vc2VyQ2xpZW50X2gKKworI2VuZGlmIC8vIEVOQUJM
RShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzNGJmZjI5OWVk
ZmE1NjNiMWYzOTg3MjQzYjBkYzJlYjViM2YyMjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9EYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzLmgKQEAgLTAsMCArMSwx
MzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShEQVRFX0FORF9U
SU1FX0lOUFVUX1RZUEVTKQorCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitzdHJ1Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyB7CisgICAgQXRvbVN0
cmluZyB0eXBlOworICAgIEludFJlY3QgYW5jaG9yUmVjdEluUm9vdFZpZXc7CisgICAgLy8gTG9j
YWxlIG5hbWUgZm9yIHdoaWNoIHRoZSBjaG9vc2VyIHNob3VsZCBiZSBsb2NhbGl6ZWQuIFRoaXMK
KyAgICAvLyBtaWdodCBiZSBhbiBpbnZhbGlkIG5hbWUgYmVjYXVzZSBpdCBjb21lcyBmcm9tIEhU
TUwgbGFuZworICAgIC8vIGF0dHJpYnV0ZXMuCisgICAgQXRvbVN0cmluZyBsb2NhbGU7CisgICAg
U3RyaW5nIGN1cnJlbnRWYWx1ZTsKKyAgICBWZWN0b3I8U3RyaW5nPiBzdWdnZXN0aW9uVmFsdWVz
OworICAgIFZlY3RvcjxTdHJpbmc+IGxvY2FsaXplZFN1Z2dlc3Rpb25WYWx1ZXM7CisgICAgVmVj
dG9yPFN0cmluZz4gc3VnZ2VzdGlvbkxhYmVsczsKKyAgICBkb3VibGUgbWluaW11bTsKKyAgICBk
b3VibGUgbWF4aW11bTsKKyAgICBkb3VibGUgc3RlcDsKKyAgICBkb3VibGUgc3RlcEJhc2U7Cisg
ICAgYm9vbCByZXF1aXJlZDsKKyAgICBib29sIGlzQW5jaG9yRWxlbWVudFJUTDsKKworICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8RGF0ZVRpbWVDaG9vc2VyUGFy
YW1ldGVycz4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+
Cit2b2lkIERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdHlwZTsKKyAgICBlbmNvZGVyIDw8IGFuY2hvclJl
Y3RJblJvb3RWaWV3OworICAgIGVuY29kZXIgPDwgbG9jYWxlOworICAgIGVuY29kZXIgPDwgY3Vy
cmVudFZhbHVlOworICAgIGVuY29kZXIgPDwgc3VnZ2VzdGlvblZhbHVlczsKKyAgICBlbmNvZGVy
IDw8IGxvY2FsaXplZFN1Z2dlc3Rpb25WYWx1ZXM7CisgICAgZW5jb2RlciA8PCBzdWdnZXN0aW9u
TGFiZWxzOworICAgIGVuY29kZXIgPDwgbWluaW11bTsKKyAgICBlbmNvZGVyIDw8IG1heGltdW07
CisgICAgZW5jb2RlciA8PCBzdGVwOworICAgIGVuY29kZXIgPDwgc3RlcEJhc2U7CisgICAgZW5j
b2RlciA8PCByZXF1aXJlZDsKKyAgICBlbmNvZGVyIDw8IGlzQW5jaG9yRWxlbWVudFJUTDsKK30K
KwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPERhdGVUaW1lQ2hvb3NlclBhcmFt
ZXRlcnM+IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnM6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQoreworICAgIEF0b21TdHJpbmcgdHlwZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHR5cGUp
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgSW50UmVjdCBhbmNob3JSZWN0
SW5Sb290VmlldzsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFuY2hvclJlY3RJblJvb3RWaWV3
KSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIEF0b21TdHJpbmcgbG9jYWxl
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUobG9jYWxlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKworICAgIFN0cmluZyBjdXJyZW50VmFsdWU7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShjdXJyZW50VmFsdWUpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
VmVjdG9yPFN0cmluZz4gc3VnZ2VzdGlvblZhbHVlczsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHN1Z2dlc3Rpb25WYWx1ZXMpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
VmVjdG9yPFN0cmluZz4gbG9jYWxpemVkU3VnZ2VzdGlvblZhbHVlczsKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGxvY2FsaXplZFN1Z2dlc3Rpb25WYWx1ZXMpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgVmVjdG9yPFN0cmluZz4gc3VnZ2VzdGlvbkxhYmVsczsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHN1Z2dlc3Rpb25MYWJlbHMpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgZG91YmxlIG1pbmltdW07CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShtaW5pbXVtKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGRvdWJsZSBt
YXhpbXVtOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWF4aW11bSkpCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisKKyAgICBkb3VibGUgc3RlcDsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHN0ZXApKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgZG91YmxlIHN0
ZXBCYXNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RlcEJhc2UpKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgYm9vbCByZXF1aXJlZDsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHJlcXVpcmVkKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGJv
b2wgaXNBbmNob3JFbGVtZW50UlRMOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaXNBbmNob3JF
bGVtZW50UlRMKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiB7
eyB0eXBlLCBhbmNob3JSZWN0SW5Sb290VmlldywgbG9jYWxlLCBjdXJyZW50VmFsdWUsIHN1Z2dl
c3Rpb25WYWx1ZXMsIGxvY2FsaXplZFN1Z2dlc3Rpb25WYWx1ZXMsIHN1Z2dlc3Rpb25MYWJlbHMs
IG1pbmltdW0sIG1heGltdW0sIHN0ZXAsIHN0ZXBCYXNlLCByZXF1aXJlZCwgaXNBbmNob3JFbGVt
ZW50UlRMIH19OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQKaW5kZXggYWQ3ODJjMmU2MmY3MmY3ZWVhODVjMzFiMDBmN2JhMjA5ZjIyYjQ5NS4uOTEzODI1
ZjJkMDM4MGZmZGRlNDE2NDQ4NTJlYTRiMmQxNmIwNzNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0zMDUs
NiArMzA1LDcgQEAgVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3BwCiBVSVByb2Nlc3Mv
V2ViQ29va2llTWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94
eUNsaWVudC5jcHAKIFVJUHJvY2Vzcy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uY3Bw
CitVSVByb2Nlc3MvV2ViRGF0ZVRpbWVQaWNrZXIuY3BwCiBVSVByb2Nlc3MvV2ViRWRpdENvbW1h
bmRQcm94eS5jcHAKIFVJUHJvY2Vzcy9XZWJGb3JtQ2xpZW50LmNwcAogVUlQcm9jZXNzL1dlYkZv
cm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eS5jcHAKQEAgLTYzMCw2ICs2MzEsNyBAQCBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDb250ZXh0TWVudUNsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0
YUxpc3RTdWdnZXN0aW9uUGlja2VyLmNwcAorV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJE
YXRlVGltZUNob29zZXIuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xp
ZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMGNiMDQzNDVjNDE4ZWMxOGVlNWVhYzFkNmZhMWM3MTBi
MDlkMzg2OS4uMmMwNWIwMmNhZGNhNTA4YjY2ZjE1MzdlNGNhOWIxNjZiYTk1YjM2YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dApAQCAtNDk3LDYgKzQ5Nyw3IEBAIFVJUHJvY2Vzcy9tYWMvV2ViQ29s
b3JQaWNrZXJNYWMubW0KIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQog
VUlQcm9jZXNzL21hYy9XZWJDb29raWVNYW5hZ2VyUHJveHlNYWMubW0KIFVJUHJvY2Vzcy9tYWMv
V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLm1tCitVSVByb2Nlc3MvbWFjL1dlYkRh
dGVUaW1lUGlja2VyTWFjLm1tCiBVSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQogVUlQ
cm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQogVUlQcm9jZXNzL21hYy9XZWJQcm9j
ZXNzUHJveHlNYWMubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA4YzZj
NTczY2ZkNzM0OWQwYTExYWZiNGIzOGY5NjkxNzNhZDYwYmI0Li5iNTExNzA0N2FiMGFmMzEzOWQ4
MjUzOTkyYjU0NjZiYTg1OTAyOTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5o
CkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVk
ZSAiV2ViQ29sb3JQaWNrZXIuaCIKICNpbmNsdWRlICJXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJv
cGRvd24uaCIKKyNpbmNsdWRlICJXZWJEYXRlVGltZVBpY2tlci5oIgogI2luY2x1ZGUgIldlYlBv
cHVwTWVudVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9BbHRlcm5hdGl2ZVRleHRDbGllbnQuaD4KQEAgLTE1OCw2ICsxNTksMTAg
QEAgY2xhc3MgV2ViQ29sb3JQaWNrZXI7CiBjbGFzcyBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJv
cGRvd247CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQor
Y2xhc3MgV2ViRGF0ZVRpbWVQaWNrZXI7CisjZW5kaWYKKwogI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKIGNsYXNzIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQ7CiAjZW5kaWYKQEAg
LTMzOSw2ICszNDQsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVmUHRyPFdlYkRhdGFMaXN0
U3VnZ2VzdGlvbnNEcm9wZG93bj4gY3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duKFdl
YlBhZ2VQcm94eSYpID0gMDsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5Q
VVRfVFlQRVMpCisgICAgdmlydHVhbCBSZWZQdHI8V2ViRGF0ZVRpbWVQaWNrZXI+IGNyZWF0ZURh
dGVUaW1lUGlja2VyKFdlYlBhZ2VQcm94eSYpID0gMDsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgdmlydHVhbCBSZWY8V2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZT4gY3JlYXRl
VmFsaWRhdGlvbkJ1YmJsZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdlYkNvcmU6OlZh
bGlkYXRpb25CdWJibGU6OlNldHRpbmdzJikgPSAwOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJEYXRlVGltZVBpY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJEYXRlVGltZVBpY2tlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGI4YmRjNWM1N2Rj
ZGYxZWIwODI3ZWU1ZGE2NDMxMDNiMGIzZmQwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlja2VyLmNwcApAQCAtMCwwICsxLDUyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkRhdGVUaW1lUGlj
a2VyLmgiCisKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKworI2luY2x1
ZGUgIldlYlBhZ2VQcm94eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViRGF0ZVRpbWVQ
aWNrZXI6OldlYkRhdGVUaW1lUGlja2VyKFdlYlBhZ2VQcm94eSYgcGFnZSkKKyAgICA6IG1fcGFn
ZShtYWtlV2Vha1B0cihwYWdlKSkKK3sKK30KKworV2ViRGF0ZVRpbWVQaWNrZXI6On5XZWJEYXRl
VGltZVBpY2tlcigpCit7Cit9CisKK3ZvaWQgV2ViRGF0ZVRpbWVQaWNrZXI6OmVuZFBpY2tlcigp
Cit7CisgICAgaWYgKGF1dG8gcGFnZSA9IHN0ZDo6ZXhjaGFuZ2UobV9wYWdlLCBudWxscHRyKSkK
KyAgICAgICAgcGFnZS0+ZGlkRW5kRGF0ZVRpbWVQaWNrZXIoKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlja2VyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJEYXRlVGltZVBpY2tlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmI5OWZkODgzMDZlZGQ4ZmRmN2M1ZjI3ZDkzZDIyY2E4YjliOWM3NjMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJEYXRlVGltZVBpY2tlci5oCkBAIC0wLDAg
KzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShEQVRFX0FO
RF9USU1FX0lOUFVUX1RZUEVTKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworc3RydWN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnM7Cit9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlUHJveHk7CisKK2NsYXNzIFdlYkRhdGVUaW1l
UGlja2VyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViRGF0ZVRpbWVQaWNrZXI+LCBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8V2ViRGF0ZVRpbWVQaWNrZXI+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5X
ZWJEYXRlVGltZVBpY2tlcigpOworCisgICAgdmlydHVhbCB2b2lkIGVuZFBpY2tlcigpOworICAg
IHZpcnR1YWwgdm9pZCBzaG93RGF0ZVRpbWVQaWNrZXIoV2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2Vy
UGFyYW1ldGVycyYmKSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICBleHBsaWNpdCBXZWJEYXRlVGlt
ZVBpY2tlcihXZWJQYWdlUHJveHkmKTsKKworICAgIFdlYWtQdHI8V2ViUGFnZVByb3h5PiBtX3Bh
Z2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShEQVRF
X0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggMGVkN2ZjNjYxNTBhOTI0ZDBjYWE0YjBkOThkOGU2Y2M2MjA4Y2EzOC4uZTdk
MjhiMTIzMjZlOGJhN2E1ZDM5ODEzM2MyYmMwZjU1MjA0OGI4NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yOTMsNiArMjkzLDEwIEBACiAjaW5jbHVkZSAi
RGVmYXVsdFdlYkJyb3dzZXJDaGVja3MuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5E
X1RJTUVfSU5QVVRfVFlQRVMpCisjaW5jbHVkZSAiV2ViRGF0ZVRpbWVQaWNrZXIuaCIKKyNlbmRp
ZgorCiAvLyBUaGlzIGNvbnRyb2xzIHdoYXQgc3RyYXRlZ3kgd2UgdXNlIGZvciBtb3VzZSB3aGVl
bCBjb2FsZXNjaW5nLgogI2RlZmluZSBNRVJHRV9XSEVFTF9FVkVOVFMgMQogCkBAIC02MTcwLDYg
KzYxNzQsNDMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFNlbGVjdE9wdGlvbihjb25zdCBTdHJp
bmcmIHNlbGVjdGVkT3B0aW9uKQogCiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1F
X0lOUFVUX1RZUEVTKQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0RhdGVUaW1lUGlja2VyKFdl
YkNvcmU6OkRhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMmJiBwYXJhbXMpCit7CisgICAgaWYgKCFt
X2RhdGVUaW1lUGlja2VyKQorICAgICAgICBtX2RhdGVUaW1lUGlja2VyID0gcGFnZUNsaWVudCgp
LmNyZWF0ZURhdGVUaW1lUGlja2VyKCp0aGlzKTsKKworICAgIG1fZGF0ZVRpbWVQaWNrZXItPnNo
b3dEYXRlVGltZVBpY2tlcihXVEZNb3ZlKHBhcmFtcykpOworfQorCit2b2lkIFdlYlBhZ2VQcm94
eTo6ZW5kRGF0ZVRpbWVQaWNrZXIoKQoreworICAgIGlmICghbV9kYXRlVGltZVBpY2tlcikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9kYXRlVGltZVBpY2tlci0+ZW5kUGlja2VyKCk7Cit9CisK
K3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaG9vc2VEYXRlKFN0cmluZ1ZpZXcgZGF0ZSkKK3sKKyAg
ICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OkRpZENob29zZURhdGUoZGF0ZS50b1N0cmluZygpKSk7Cit9CisK
K3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRFbmREYXRlVGltZVBpY2tlcigpCit7CisgICAgbV9kYXRl
VGltZVBpY2tlciA9IG51bGxwdHI7CisgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRFbmREYXRlVGlt
ZVBpY2tlcigpKTsKK30KKworI2VuZGlmCisKIFdlYkluc3BlY3RvclByb3h5KiBXZWJQYWdlUHJv
eHk6Omluc3BlY3RvcigpIGNvbnN0CiB7CiAgICAgaWYgKGlzQ2xvc2VkKCkpCkBAIC05MzUxLDYg
KzkzOTIsMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsb3NlT3ZlcmxheWVkVmlld3MoKQogI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAgIGVuZENvbG9yUGlja2VyKCk7CiAjZW5kaWYK
KworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorICAgIGVuZERhdGVUaW1l
UGlja2VyKCk7CisjZW5kaWYKIH0KIAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDZhYzA3NTYxMDYzOTQ0MzFjZGIzMGJj
ZDUzYzU0MmU1MTQ5NjE5MDQuLjFlMzdlNDQ0ZTQwOGZhODU3OTRjYjJmMzkzMzQyY2U2MjIzY2I1
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yNDksNiArMjQ5
LDcgQEAgc3RydWN0IEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXI7CiBzdHJ1Y3QgQ29tcG9zaXRp
b25IaWdobGlnaHQ7CiBzdHJ1Y3QgQ29udGVudFJ1bGVMaXN0UmVzdWx0czsKIHN0cnVjdCBEYXRh
TGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbjsKK3N0cnVjdCBEYXRlVGltZUNob29zZXJQYXJhbWV0
ZXJzOwogc3RydWN0IERpY3Rpb25hcnlQb3B1cEluZm87CiBzdHJ1Y3QgRHJhZ0l0ZW07CiBzdHJ1
Y3QgRWxlbWVudENvbnRleHQ7CkBAIC00MTgsNiArNDE5LDEwIEBAIHVzaW5nIERyYXdUb1BERkNh
bGxiYWNrID0gR2VuZXJpY0NhbGxiYWNrPGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSY+OwogdHlw
ZWRlZiBHZW5lcmljQ2FsbGJhY2s8Ym9vbCwgYm9vbCwgU3RyaW5nLCBkb3VibGUsIGRvdWJsZSwg
dWludDY0X3Q+IE5vd1BsYXlpbmdJbmZvQ2FsbGJhY2s7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShE
QVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorY2xhc3MgV2ViRGF0ZVRpbWVQaWNrZXI7CisjZW5k
aWYKKwogdXNpbmcgU3BlbGxEb2N1bWVudFRhZyA9IGludDY0X3Q7CiAKIGNsYXNzIFdlYlBhZ2VQ
cm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OlBhZ2U+CkBA
IC0xNjQ3LDYgKzE2NTIsMTEgQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ2xvc2VTdWdnZXN0aW9u
cygpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKyAg
ICB2b2lkIGRpZENob29zZURhdGUoU3RyaW5nVmlldyk7CisgICAgdm9pZCBkaWRFbmREYXRlVGlt
ZVBpY2tlcigpOworI2VuZGlmCisKICAgICB2b2lkIHVwZGF0ZUN1cnJlbnRNb2RpZmllclN0YXRl
KCk7CiAKICNpZiBIQVZFKFBFTkNJTEtJVCkKQEAgLTE5OTgsNiArMjAwOCwxMSBAQCBwcml2YXRl
OgogICAgIHZvaWQgZW5kRGF0YUxpc3RTdWdnZXN0aW9ucygpOwogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKyAgICB2b2lkIHNob3dEYXRlVGltZVBpY2tl
cihXZWJDb3JlOjpEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzJiYpOworICAgIHZvaWQgZW5kRGF0
ZVRpbWVQaWNrZXIoKTsKKyNlbmRpZgorCiAgICAgdm9pZCBjbG9zZU92ZXJsYXllZFZpZXdzKCk7
CiAKICAgICB2b2lkIGNvbXBvc2l0aW9uV2FzQ2FuY2VsZWQoKTsKQEAgLTI2MDQsNiArMjYxOSw5
IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCiAgICAgUmVmUHRyPFdl
YkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bj4gbV9kYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRv
d247CiAjZW5kaWYKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKyAgICBS
ZWZQdHI8V2ViRGF0ZVRpbWVQaWNrZXI+IG1fZGF0ZVRpbWVQaWNrZXI7CisjZW5kaWYKICNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBSZWZQdHI8V2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZT4gbV92
YWxpZGF0aW9uQnViYmxlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNmQ4ZDhkMGFhMzZkYmIzNjA4NmJmM2U0MWRk
MGIxMTUzYTcxODNlZi4uM2M1NTE2NWVlNzI0YTFiMGI4ZTE4YTUyOTkzZDExMDY5OWE4YTJkNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgpAQCAtOTgsNiArOTgsMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBFbmRE
YXRhTGlzdFN1Z2dlc3Rpb25zKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1F
X0lOUFVUX1RZUEVTKQorICAgIFNob3dEYXRlVGltZVBpY2tlcihzdHJ1Y3QgV2ViQ29yZTo6RGF0
ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyBwYXJhbXMpOworICAgIEVuZERhdGVUaW1lUGlja2VyKCk7
CisjZW5kaWYKKwogICAgICMgUG9saWN5IG1lc3NhZ2VzCiAgICAgRGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZy
YW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBi
b29sIGNhblNob3dNSU1FVHlwZSwgU3RyaW5nIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogICAgIERlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
c3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRh
dGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRh
LCBPcHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFn
ZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9k
eSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVz
ZXJEYXRhIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCA1MDZhYjMwNzcyZTllOThl
MTExYzg3YzhlN2RiZWYwMDA0NTBlM2EwLi44NmE4NWE2N2JmMWYwMzFjYzAwYjE4MzE3MzViNmNm
ZWMyOWM3NjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MuaApAQCAtMTI0LDYgKzEyNCwxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJE
YXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24+IGNyZWF0ZURhdGFMaXN0U3VnZ2VzdGlvbnNEcm9w
ZG93bihXZWJQYWdlUHJveHkmKSBmaW5hbDsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5E
X1RJTUVfSU5QVVRfVFlQRVMpCisgICAgUmVmUHRyPFdlYkRhdGVUaW1lUGlja2VyPiBjcmVhdGVE
YXRlVGltZVBpY2tlcihXZWJQYWdlUHJveHkmKSBmaW5hbDsKKyNlbmRpZgorCiAgICAgdm9pZCBz
ZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yPiwgV2ViQ29yZTo6VGV4
dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKSBvdmVycmlkZTsKICAgICB2b2lkIGNsZWFyVGV4dElu
ZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKSBv
dmVycmlkZTsKICAgICB2b2lkIHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9h
dCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MubW0KaW5kZXggMTU1ZmZlMWEwMWIyZjc0OWY0ODcwM2U5YzM5ZDgzNzI4NzM3OTEy
Yy4uN2IwYTMxNjNjMjhlM2MyMjM1ZTkwNTI4NjA3MWFiZjg2MzMyMzRiZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtODU4LDYg
Kzg1OCwxMyBAQCBSZWZQdHI8V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duPiBQYWdlQ2xp
ZW50SW1wbDo6Y3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9ucwogfQogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKK1JlZlB0cjxXZWJEYXRlVGltZVBpY2tlcj4g
UGFnZUNsaWVudEltcGw6OmNyZWF0ZURhdGVUaW1lUGlja2VyKFdlYlBhZ2VQcm94eSYpCit7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQp
CiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3JtRHJhZ09wZXJhdGlvbihib29sIGhhbmRs
ZWQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGxNYWMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5oCmluZGV4IDViMGQzMTcwMjAzNmI2ZjJjZGE3NzI2YjY5MzcyZDlhZWU4Mjg1MmMuLmQxNzFj
N2FiNWFiMzI3MjgxY2QyMDYwMzUyNGQxODFhZTU0ZTMxZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCkBAIC0xNDMsNiArMTQzLDEwIEBA
IHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bj4gY3Jl
YXRlRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duKFdlYlBhZ2VQcm94eSYpIG92ZXJyaWRlOwog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKyAgICBSZWZQ
dHI8V2ViRGF0ZVRpbWVQaWNrZXI+IGNyZWF0ZURhdGVUaW1lUGlja2VyKFdlYlBhZ2VQcm94eSYp
IG92ZXJyaWRlOworI2VuZGlmCisKICAgICBSZWY8V2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZT4g
Y3JlYXRlVmFsaWRhdGlvbkJ1YmJsZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdlYkNv
cmU6OlZhbGlkYXRpb25CdWJibGU6OlNldHRpbmdzJikgZmluYWw7CiAKICAgICB2b2lkIHNldFRl
eHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+LCBXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yV2luZG93TGlmZXRpbWUpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IDRkMzY4NzcxMGM5MjEyYjQ3NjRk
ZWVhNWVmNWVhY2EwNzgzZDVkYTQuLmZhN2Q5MmY1OWNlYmYxZWNmZWZlNzIyMGMwOTJhM2ZlN2Yw
OGMwYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50
SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudElt
cGxNYWMubW0KQEAgLTUyLDYgKzUyLDcgQEAKICNpbXBvcnQgIldlYkNvbG9yUGlja2VyTWFjLmgi
CiAjaW1wb3J0ICJXZWJDb250ZXh0TWVudVByb3h5TWFjLmgiCiAjaW1wb3J0ICJXZWJEYXRhTGlz
dFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMuaCIKKyNpbXBvcnQgIldlYkRhdGVUaW1lUGlja2VyTWFj
LmgiCiAjaW1wb3J0ICJXZWJFZGl0Q29tbWFuZFByb3h5LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJv
eHkuaCIKICNpbXBvcnQgIldlYlBvcHVwTWVudVByb3h5TWFjLmgiCkBAIC00NzYsNiArNDc3LDEz
IEBAIFJlZlB0cjxXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24+IFBhZ2VDbGllbnRJbXBs
OjpjcmVhdGVEYXRhTGlzdFN1Z2dlc3Rpb25zCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRF
X0FORF9USU1FX0lOUFVUX1RZUEVTKQorUmVmUHRyPFdlYkRhdGVUaW1lUGlja2VyPiBQYWdlQ2xp
ZW50SW1wbDo6Y3JlYXRlRGF0ZVRpbWVQaWNrZXIoV2ViUGFnZVByb3h5JiBwYWdlKQoreworICAg
IHJldHVybiBXZWJEYXRlVGltZVBpY2tlck1hYzo6Y3JlYXRlKHBhZ2UsIG1fdmlldyk7Cit9Cisj
ZW5kaWYKKwogUmVmPFZhbGlkYXRpb25CdWJibGU+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVWYWxp
ZGF0aW9uQnViYmxlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgVmFsaWRhdGlvbkJ1YmJs
ZTo6U2V0dGluZ3MmIHNldHRpbmdzKQogewogICAgIHJldHVybiBWYWxpZGF0aW9uQnViYmxlOjpj
cmVhdGUobV92aWV3LCBtZXNzYWdlLCBzZXR0aW5ncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvV2ViRGF0ZVRpbWVQaWNrZXJNYWMuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9XZWJEYXRlVGltZVBpY2tlck1hYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4MTIxODI5
NmQ0Zjk5OWJmNmY4MzNlNmE4YzMzN2VkYmM3MDg0MmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViRGF0ZVRpbWVQaWNrZXJNYWMuaApAQCAtMCwwICsx
LDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoREFURV9BTkRf
VElNRV9JTlBVVF9UWVBFUykgJiYgVVNFKEFQUEtJVCkKKworI2ltcG9ydCAiV2ViRGF0ZVRpbWVQ
aWNrZXIuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycy5oPgor
I2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+Cisj
aW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CisKK0BjbGFzcyBXS0RhdGVUaW1lUGlja2Vy
OworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViRGF0ZVRpbWVQaWNrZXJNYWMgZmlu
YWwgOiBwdWJsaWMgV2ViRGF0ZVRpbWVQaWNrZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
V2ViRGF0ZVRpbWVQaWNrZXJNYWM+IGNyZWF0ZShXZWJQYWdlUHJveHkmLCBOU1ZpZXcgKik7Cisg
ICAgfldlYkRhdGVUaW1lUGlja2VyTWFjKCk7CisKKyAgICB2b2lkIGRpZENob29zZURhdGUoU3Ry
aW5nVmlldyk7CisKK3ByaXZhdGU6CisgICAgV2ViRGF0ZVRpbWVQaWNrZXJNYWMoV2ViUGFnZVBy
b3h5JiwgTlNWaWV3ICopOworCisgICAgdm9pZCBlbmRQaWNrZXIoKSBmaW5hbDsKKyAgICB2b2lk
IHNob3dEYXRlVGltZVBpY2tlcihXZWJDb3JlOjpEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzJiYp
IGZpbmFsOworCisgICAgV2Vha09iakNQdHI8TlNWaWV3PiBtX3ZpZXc7CisgICAgUmV0YWluUHRy
PFdLRGF0ZVRpbWVQaWNrZXI+IG1fcGlja2VyOworICAgIFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3Nl
clBhcmFtZXRlcnMgbV9wYXJhbXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBVU0UoQVBQS0lUKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkRhdGVUaW1lUGlja2Vy
TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkRhdGVUaW1lUGlja2VyTWFj
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE1NTc5MTZhZjMxN2RiZTE5ZTRlNGM5MTE1YjMzZWEwZTQ3ODk4NTgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViRGF0ZVRp
bWVQaWNrZXJNYWMubW0KQEAgLTAsMCArMSwyMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV2ViRGF0ZVRpbWVQaWNrZXJNYWMuaCIKKworI2lmIEVOQUJM
RShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBVU0UoQVBQS0lUKQorCisjaW1wb3J0ICJB
cHBLaXRTUEkuaCIKKyNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgorCitjb25zdGV4cHIgQ0dGbG9h
dCBrQ2FsZW5kYXJXaWR0aCA9IDEzOTsKK2NvbnN0ZXhwciBDR0Zsb2F0IGtDYWxlbmRhckhlaWdo
dCA9IDE0ODsKK2NvbnN0ZXhwciBOU1N0cmluZyAqIGNvbnN0IGtEYXRlRm9ybWF0U3RyaW5nID0g
QCJ5eXl5LU1NLWRkIjsKK2NvbnN0ZXhwciBOU1N0cmluZyAqIGNvbnN0IGtEYXRlVGltZUZvcm1h
dFN0cmluZyA9IEAieXl5eS1NTS1kZCdUJ0hIOm1tIjsKK2NvbnN0ZXhwciBOU1N0cmluZyAqIGNv
bnN0IGtEZWZhdWx0TG9jYWxlSWRlbnRpZmllciA9IEAiZW5fVVNfUE9TSVgiOworCitAaW50ZXJm
YWNlIFdLRGF0ZVRpbWVQaWNrZXIgOiBOU09iamVjdAorCistIChpZClpbml0V2l0aFBhcmFtczoo
V2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyYmKXBhcmFtcyBpblZpZXc6KE5TVmll
dyAqKXZpZXc7CistICh2b2lkKXNob3dQaWNrZXI6KFdlYktpdDo6V2ViRGF0ZVRpbWVQaWNrZXJN
YWMmKXBpY2tlcjsKKy0gKHZvaWQpaW52YWxpZGF0ZTsKKworQGVuZAorCitAaW50ZXJmYWNlIFdL
RGF0ZVRpbWVQaWNrZXJXaW5kb3cgOiBOU1dpbmRvdworQGVuZAorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworUmVmPFdlYkRhdGVUaW1lUGlja2VyTWFjPiBXZWJEYXRlVGltZVBpY2tlck1hYzo6Y3Jl
YXRlKFdlYlBhZ2VQcm94eSYgcGFnZSwgTlNWaWV3ICp2aWV3KQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFdlYkRhdGVUaW1lUGlja2VyTWFjKHBhZ2UsIHZpZXcpKTsKK30KKworV2ViRGF0
ZVRpbWVQaWNrZXJNYWM6On5XZWJEYXRlVGltZVBpY2tlck1hYygpCit7CisgICAgW21fcGlja2Vy
IGludmFsaWRhdGVdOworfQorCitXZWJEYXRlVGltZVBpY2tlck1hYzo6V2ViRGF0ZVRpbWVQaWNr
ZXJNYWMoV2ViUGFnZVByb3h5JiBwYWdlLCBOU1ZpZXcgKnZpZXcpCisgICAgOiBXZWJEYXRlVGlt
ZVBpY2tlcihwYWdlKQorICAgICwgbV92aWV3KHZpZXcpCit7Cit9CisKK3ZvaWQgV2ViRGF0ZVRp
bWVQaWNrZXJNYWM6OmVuZFBpY2tlcigpCit7CisgICAgW21fcGlja2VyIGludmFsaWRhdGVdOwor
ICAgIG1fcGlja2VyID0gbmlsOworICAgIFdlYkRhdGVUaW1lUGlja2VyOjplbmRQaWNrZXIoKTsK
K30KKwordm9pZCBXZWJEYXRlVGltZVBpY2tlck1hYzo6c2hvd0RhdGVUaW1lUGlja2VyKFdlYkNv
cmU6OkRhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMmJiBwYXJhbXMpCit7CisgICAgaWYgKG1fcGlj
a2VyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BpY2tlciA9IGFkb3B0TlMoW1tXS0RhdGVU
aW1lUGlja2VyIGFsbG9jXSBpbml0V2l0aFBhcmFtczpXVEZNb3ZlKHBhcmFtcykgaW5WaWV3Om1f
dmlldy5nZXRBdXRvcmVsZWFzZWQoKV0pOworICAgIFttX3BpY2tlciBzaG93UGlja2VyOip0aGlz
XTsKK30KKwordm9pZCBXZWJEYXRlVGltZVBpY2tlck1hYzo6ZGlkQ2hvb3NlRGF0ZShTdHJpbmdW
aWV3IGRhdGUpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
cGFnZS0+ZGlkQ2hvb3NlRGF0ZShkYXRlKTsKKyAgICBlbmRQaWNrZXIoKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKy8vIEZJWE1FOiBTaGFyZSB0aGlzIGltcGxlbWVudGF0aW9uIHdp
dGggV0tEYXRhTGlzdFN1Z2dlc3Rpb25XaW5kb3cuCitAaW1wbGVtZW50YXRpb24gV0tEYXRlVGlt
ZVBpY2tlcldpbmRvdyB7CisgICAgUmV0YWluUHRyPE5TVmlzdWFsRWZmZWN0Vmlldz4gX2JhY2tk
cm9wVmlldzsKK30KKworLSAoaWQpaW5pdFdpdGhDb250ZW50UmVjdDooTlNSZWN0KWNvbnRlbnRS
ZWN0IHN0eWxlTWFzazooTlNVSW50ZWdlcilzdHlsZU1hc2sgYmFja2luZzooTlNCYWNraW5nU3Rv
cmVUeXBlKWJhY2tpbmdTdG9yZVR5cGUgZGVmZXI6KEJPT0wpZGVmZXIKK3sKKyAgICBzZWxmID0g
W3N1cGVyIGluaXRXaXRoQ29udGVudFJlY3Q6Y29udGVudFJlY3Qgc3R5bGVNYXNrOnN0eWxlTWFz
ayBiYWNraW5nOmJhY2tpbmdTdG9yZVR5cGUgZGVmZXI6ZGVmZXJdOworICAgIGlmICghc2VsZikK
KyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIHNlbGYuaGFzU2hhZG93ID0gWUVTOworICAgIHNl
bGYucmVsZWFzZWRXaGVuQ2xvc2VkID0gTk87CisgICAgc2VsZi50aXRsZVZpc2liaWxpdHkgPSBO
U1dpbmRvd1RpdGxlSGlkZGVuOworICAgIHNlbGYudGl0bGViYXJBcHBlYXJzVHJhbnNwYXJlbnQg
PSBZRVM7CisgICAgc2VsZi5tb3ZhYmxlID0gTk87CisgICAgc2VsZi5iYWNrZ3JvdW5kQ29sb3Ig
PSBbTlNDb2xvciBjbGVhckNvbG9yXTsKKyAgICBzZWxmLm9wYXF1ZSA9IE5POworCisgICAgX2Jh
Y2tkcm9wVmlldyA9IGFkb3B0TlMoW1tOU1Zpc3VhbEVmZmVjdFZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6Y29udGVudFJlY3RdKTsKKyAgICBbX2JhY2tkcm9wVmlldyBzZXRBdXRvcmVzaXppbmdN
YXNrOk5TVmlld1dpZHRoU2l6YWJsZSB8IE5TVmlld0hlaWdodFNpemFibGVdOworICAgIFtfYmFj
a2Ryb3BWaWV3IHNldE1hdGVyaWFsOk5TVmlzdWFsRWZmZWN0TWF0ZXJpYWxNZW51XTsKKyAgICBb
X2JhY2tkcm9wVmlldyBzZXRTdGF0ZTpOU1Zpc3VhbEVmZmVjdFN0YXRlQWN0aXZlXTsKKyAgICBb
X2JhY2tkcm9wVmlldyBzZXRCbGVuZGluZ01vZGU6TlNWaXN1YWxFZmZlY3RCbGVuZGluZ01vZGVC
ZWhpbmRXaW5kb3ddOworCisgICAgW3NlbGYgc2V0Q29udGVudFZpZXc6X2JhY2tkcm9wVmlldy5n
ZXQoKV07CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAoQk9PTCljYW5CZWNvbWVLZXlXaW5k
b3cKK3sKKyAgICByZXR1cm4gTk87Cit9CisKKy0gKEJPT0wpaGFzS2V5QXBwZWFyYW5jZQorewor
ICAgIHJldHVybiBZRVM7Cit9CisKKy0gKE5TV2luZG93U2hhZG93T3B0aW9ucylzaGFkb3dPcHRp
b25zCit7CisgICAgcmV0dXJuIE5TV2luZG93U2hhZG93U2Vjb25kYXJ5V2luZG93OworfQorCitA
ZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS0RhdGVUaW1lUGlja2VyIHsKKyAgICBXZWFrUHRyPFdl
YktpdDo6V2ViRGF0ZVRpbWVQaWNrZXJNYWM+IF9waWNrZXI7CisgICAgV2ViQ29yZTo6RGF0ZVRp
bWVDaG9vc2VyUGFyYW1ldGVycyBfcGFyYW1zOworICAgIFdlYWtPYmpDUHRyPE5TVmlldz4gX3By
ZXNlbnRpbmdWaWV3OworCisgICAgUmV0YWluUHRyPFdLRGF0ZVRpbWVQaWNrZXJXaW5kb3c+IF9l
bmNsb3NpbmdXaW5kb3c7CisgICAgUmV0YWluUHRyPE5TRGF0ZVBpY2tlcj4gX2RhdGVQaWNrZXI7
CisgICAgUmV0YWluUHRyPE5TRGF0ZUZvcm1hdHRlcj4gX2RhdGVGb3JtYXR0ZXI7Cit9CisKKy0g
KGlkKWluaXRXaXRoUGFyYW1zOihXZWJDb3JlOjpEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzJiYp
cGFyYW1zIGluVmlldzooTlNWaWV3ICopdmlldworeworICAgIGlmICghKHNlbGYgPSBbc3VwZXIg
aW5pdF0pKQorICAgICAgICByZXR1cm4gc2VsZjsKKworICAgIF9wcmVzZW50aW5nVmlldyA9IHZp
ZXc7CisgICAgX3BhcmFtcyA9IFdURk1vdmUocGFyYW1zKTsKKworICAgIE5TUmVjdCB3aW5kb3dS
ZWN0ID0gW1tfcHJlc2VudGluZ1ZpZXcgd2luZG93XSBjb252ZXJ0UmVjdFRvU2NyZWVuOltfcHJl
c2VudGluZ1ZpZXcgY29udmVydFJlY3Q6cGFyYW1zLmFuY2hvclJlY3RJblJvb3RWaWV3IHRvVmll
dzpuaWxdXTsKKyAgICB3aW5kb3dSZWN0Lm9yaWdpbi55ID0gTlNNaW5ZKHdpbmRvd1JlY3QpIC0g
a0NhbGVuZGFySGVpZ2h0OworICAgIHdpbmRvd1JlY3Quc2l6ZS53aWR0aCA9IGtDYWxlbmRhcldp
ZHRoOworICAgIHdpbmRvd1JlY3Quc2l6ZS5oZWlnaHQgPSBrQ2FsZW5kYXJIZWlnaHQ7CisKKyAg
ICBfZW5jbG9zaW5nV2luZG93ID0gYWRvcHROUyhbW1dLRGF0ZVRpbWVQaWNrZXJXaW5kb3cgYWxs
b2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNaZXJvUmVjdCBzdHlsZU1hc2s6KE5TV2luZG93U3R5
bGVNYXNrVGl0bGVkIHwgTlNXaW5kb3dTdHlsZU1hc2tGdWxsU2l6ZUNvbnRlbnRWaWV3KSBiYWNr
aW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKKyAgICBbX2VuY2xvc2luZ1dp
bmRvdyBzZXRGcmFtZTp3aW5kb3dSZWN0IGRpc3BsYXk6WUVTXTsKKworICAgIF9kYXRlUGlja2Vy
ID0gYWRvcHROUyhbW05TRGF0ZVBpY2tlciBhbGxvY10gaW5pdFdpdGhGcmFtZTpbX2VuY2xvc2lu
Z1dpbmRvdyBjb250ZW50Vmlld10uYm91bmRzXSk7CisgICAgW19kYXRlUGlja2VyIHNldERhdGVQ
aWNrZXJTdHlsZTpOU0RhdGVQaWNrZXJTdHlsZUNsb2NrQW5kQ2FsZW5kYXJdOworICAgIFtfZGF0
ZVBpY2tlciBzZXREYXRlUGlja2VyRWxlbWVudHM6TlNEYXRlUGlja2VyRWxlbWVudEZsYWdZZWFy
TW9udGhEYXldOworICAgIFtfZGF0ZVBpY2tlciBzZXRUYXJnZXQ6c2VsZl07CisgICAgW19kYXRl
UGlja2VyIHNldEFjdGlvbjpAc2VsZWN0b3IoZGlkQ2hvb3NlRGF0ZTopXTsKKworICAgIGF1dG8g
ZW5nbGlzaExvY2FsZSA9IGFkb3B0TlMoW1tOU0xvY2FsZSBhbGxvY10gaW5pdFdpdGhMb2NhbGVJ
ZGVudGlmaWVyOmtEZWZhdWx0TG9jYWxlSWRlbnRpZmllcl0pOworICAgIF9kYXRlRm9ybWF0dGVy
ID0gYWRvcHROUyhbW05TRGF0ZUZvcm1hdHRlciBhbGxvY10gaW5pdF0pOworICAgIFtfZGF0ZUZv
cm1hdHRlciBzZXREYXRlRm9ybWF0OltzZWxmIGRhdGVGb3JtYXRTdHJpbmdGb3JUeXBlOl9wYXJh
bXMudHlwZV1dOworICAgIFtfZGF0ZUZvcm1hdHRlciBzZXRMb2NhbGU6ZW5nbGlzaExvY2FsZS5n
ZXQoKV07CisKKyAgICBOU1N0cmluZyAqY3VycmVudERhdGVWYWx1ZVN0cmluZyA9IF9wYXJhbXMu
Y3VycmVudFZhbHVlOworICAgIGlmICghW2N1cnJlbnREYXRlVmFsdWVTdHJpbmcgbGVuZ3RoXSkK
KyAgICAgICAgW19kYXRlUGlja2VyIHNldERhdGVWYWx1ZTpbTlNEYXRlIGRhdGVdXTsKKyAgICBl
bHNlCisgICAgICAgIFtfZGF0ZVBpY2tlciBzZXREYXRlVmFsdWU6W19kYXRlRm9ybWF0dGVyIGRh
dGVGcm9tU3RyaW5nOmN1cnJlbnREYXRlVmFsdWVTdHJpbmddXTsKKworICAgIFtfZGF0ZVBpY2tl
ciBzZXRNaW5EYXRlOltOU0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZTE5NzA6X3BhcmFt
cy5taW5pbXVtIC8gMTAwMC4wXV07CisgICAgW19kYXRlUGlja2VyIHNldE1heERhdGU6W05TRGF0
ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlMTk3MDpfcGFyYW1zLm1heGltdW0gLyAxMDAwLjBd
XTsKKworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKXNob3dQaWNrZXI6KFdlYktpdDo6
V2ViRGF0ZVRpbWVQaWNrZXJNYWMmKXBpY2tlcgoreworICAgIF9waWNrZXIgPSBtYWtlV2Vha1B0
cihwaWNrZXIpOworCisgICAgW1tfZW5jbG9zaW5nV2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2
aWV3Ol9kYXRlUGlja2VyLmdldCgpXTsKKyAgICBbW19wcmVzZW50aW5nVmlldyB3aW5kb3ddIGFk
ZENoaWxkV2luZG93Ol9lbmNsb3NpbmdXaW5kb3cuZ2V0KCkgb3JkZXJlZDpOU1dpbmRvd0Fib3Zl
XTsKK30KKworLSAodm9pZClpbnZhbGlkYXRlCit7CisgICAgW19kYXRlUGlja2VyIHJlbW92ZUZy
b21TdXBlcnZpZXdXaXRob3V0TmVlZGluZ0Rpc3BsYXldOworICAgIFtfZGF0ZVBpY2tlciBzZXRU
YXJnZXQ6bmlsXTsKKyAgICBbX2RhdGVQaWNrZXIgc2V0QWN0aW9uOm5pbF07CisgICAgX2RhdGVQ
aWNrZXIgPSBuaWw7CisKKyAgICBfZGF0ZUZvcm1hdHRlciA9IG5pbDsKKworICAgIFtbX3ByZXNl
bnRpbmdWaWV3IHdpbmRvd10gcmVtb3ZlQ2hpbGRXaW5kb3c6X2VuY2xvc2luZ1dpbmRvdy5nZXQo
KV07CisgICAgW19lbmNsb3NpbmdXaW5kb3cgY2xvc2VdOworICAgIF9lbmNsb3NpbmdXaW5kb3cg
PSBuaWw7Cit9CisKKy0gKHZvaWQpZGlkQ2hvb3NlRGF0ZTooaWQpc2VuZGVyCit7CisgICAgaWYg
KHNlbmRlciAhPSBfZGF0ZVBpY2tlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIGRh
dGVTdHJpbmcgPSBbX2RhdGVGb3JtYXR0ZXIgc3RyaW5nRnJvbURhdGU6W19kYXRlUGlja2VyIGRh
dGVWYWx1ZV1dOworICAgIF9waWNrZXItPmRpZENob29zZURhdGUoU3RyaW5nVmlldyhkYXRlU3Ry
aW5nKSk7Cit9CisKKy0gKE5TU3RyaW5nICopZGF0ZUZvcm1hdFN0cmluZ0ZvclR5cGU6KE5TU3Ry
aW5nICopdHlwZQoreworICAgIGlmIChbdHlwZSBpc0VxdWFsVG9TdHJpbmc6QCJkYXRldGltZS1s
b2NhbCJdKQorICAgICAgICByZXR1cm4ga0RhdGVUaW1lRm9ybWF0U3RyaW5nOworCisgICAgcmV0
dXJuIGtEYXRlRm9ybWF0U3RyaW5nOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBFTkFCTEUoREFU
RV9BTkRfVElNRV9JTlBVVF9UWVBFUykgJiYgVVNFKEFQUEtJVCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGYxNGZjYzM4ZmI5ODI1YjMw
ZDMwMWNkMmMwYjkwZDE0ZDUwMmU1ZmEuLjY2YjZlN2I3MmM2Mjc2YjY0Y2JkMDBiNjhjZDgzZjYy
MjkwZWMyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTgzMSw2ICsxODMxLDkgQEAKIAkJRTRFODY0OTMxQjE2NzUwNzAwQzgyRjQw
IC8qIFZlcnNpb25DaGVja3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU0RTg2NDhFMUIxNjczRkIwMEM4MkY0MCAvKiBWZXJzaW9uQ2hlY2tzLmggKi87
IH07CiAJCUU1MkNGNTUyMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25Q
aWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1
MkNGNTUwMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCAq
LzsgfTsKIAkJRTU0OEVCRDEyMTAxNUYwRTAwQkUzQzMyIC8qIFdLRm9ybUNvbG9yUGlja2VyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTQ4RUJDRjIx
MDE1RjBFMDBCRTNDMzIgLyogV0tGb3JtQ29sb3JQaWNrZXIuaCAqLzsgfTsKKwkJRTU1Q0QxRjUy
NENGNzQ3RDAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU1Q0QxRjMyNENGNzQ3RDAwNDJEQjlDIC8q
IFdlYkRhdGVUaW1lQ2hvb3Nlci5oICovOyB9OworCQlFNTVDRDIwMDI0RDA4RDhGMDA0MkRCOUMg
LyogV2ViRGF0ZVRpbWVQaWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU1NUNEMUZDMjREMDg4MEIwMDQyREI5QyAvKiBXZWJEYXRlVGltZVBpY2tl
ci5oICovOyB9OworCQlFNTVDRDIwMzI0RDA5RjFGMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNr
ZXJNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1
NUNEMjAxMjREMDlGMUYwMDQyREI5QyAvKiBXZWJEYXRlVGltZVBpY2tlck1hYy5oICovOyB9Owog
CQlFNTY4QjkxRjIwQTNBQjJGMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bk
b3duLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTY4
QjkxRTIwQTNBQjJGMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmgg
Ki87IH07CiAJCUU1NjhCOTIyMjBBM0FDNkEwMEUzQzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rp
b25zRHJvcGRvd25NYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU1NjhCOTIwMjBBM0FDNkEwMEUzQzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25z
RHJvcGRvd25NYWMuaCAqLzsgfTsKIAkJRTVCRUY2ODIyMTMwQzQ4MDAwRjMxMTExIC8qIFdlYkRh
dGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTVCRUY2ODAyMTMwQzQ3RjAwRjMxMTExIC8qIFdlYkRhdGFM
aXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5oICovOyB9OwpAQCAtNTM1OCw2ICs1MzYxLDEyIEBA
CiAJCUU1NDhFQkNGMjEwMTVGMEUwMEJFM0MzMiAvKiBXS0Zvcm1Db2xvclBpY2tlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXS0Zvcm1Db2xvclBpY2tlci5oOyBwYXRoID0gaW9zL2Zvcm1zL1dLRm9ybUNv
bG9yUGlja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1NDhFQkQwMjEwMTVG
MEUwMEJFM0MzMiAvKiBXS0Zvcm1Db2xvclBpY2tlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9
IFdLRm9ybUNvbG9yUGlja2VyLm1tOyBwYXRoID0gaW9zL2Zvcm1zL1dLRm9ybUNvbG9yUGlja2Vy
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTRBMTRDRTIwRkNGQjdCMDA3RTEz
RDggLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUU1NUNEMUYzMjRDRjc0N0QwMDQyREI5QyAvKiBXZWJEYXRlVGltZUNob29z
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGF0ZVRpbWVDaG9vc2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUU1NUNEMUY0MjRDRjc0N0QwMDQyREI5QyAvKiBXZWJEYXRlVGltZUNo
b29zZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRGF0ZVRpbWVDaG9vc2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTU1Q0QxRkMyNEQwODgwQjAwNDJEQjlDIC8qIFdl
YkRhdGVUaW1lUGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhdGVUaW1lUGlja2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1NUNEMUZEMjREMDg4MEIwMDQyREI5QyAvKiBX
ZWJEYXRlVGltZVBpY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJEYXRlVGltZVBpY2tl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1NUNEMjAxMjREMDlGMUYwMDQy
REI5QyAvKiBXZWJEYXRlVGltZVBpY2tlck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEYXRlVGlt
ZVBpY2tlck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNTVDRDIwMjI0RDA5
RjFGMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNrZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBXZWJEYXRlVGltZVBpY2tlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTU2OEI5MUUyMEEzQUIyRjAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9w
ZG93bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTU2OEI5MjAyMEEzQUM2QTAwRTNDODU2IC8q
IFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJE
YXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTU2OEI5MjEyMEEzQUM2QTAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNE
cm9wZG93bk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRGF0YUxpc3RTdWdnZXN0aW9u
c0Ryb3Bkb3duTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODgzMiw2ICs4
ODQxLDggQEAKIAkJCQlCQzAzMkQ2MjEwRjQzNzhEMDA1OEMxNUEgLyogV2ViQ29udGV4dE1lbnVD
bGllbnQuaCAqLywKIAkJCQlFNTJDRjU1MTIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RT
dWdnZXN0aW9uUGlja2VyLmNwcCAqLywKIAkJCQlFNTJDRjU1MDIwQTM1QzNBMDBEQURBMjcgLyog
V2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmggKi8sCisJCQkJRTU1Q0QxRjQyNENGNzQ3RDAw
NDJEQjlDIC8qIFdlYkRhdGVUaW1lQ2hvb3Nlci5jcHAgKi8sCisJCQkJRTU1Q0QxRjMyNENGNzQ3
RDAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lQ2hvb3Nlci5oICovLAogCQkJCUNEMTlBMjY5MUExM0U4
MjAwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgKi8sCiAJCQkJQ0Qx
OUEyNkExQTEzRTgyMTAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi8s
CiAJCQkJQkMxMTFBNTYxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkRyYWdDbGllbnQuY3BwICovLApA
QCAtOTA0OCw2ICs5MDU5LDggQEAKIAkJCQkzM0FBMTA2NTEzMUYwNjAwMDBENEE1NzUgLyogV2Vi
Q29va2llTWFuYWdlclByb3h5Q2xpZW50LmggKi8sCiAJCQkJRTU0QTE0Q0UyMEZDRkI3QjAwN0Ux
M0Q4IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5jcHAgKi8sCiAJCQkJRTU2OEI5
MUUyMEEzQUIyRjAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5oICov
LAorCQkJCUU1NUNEMUZEMjREMDg4MEIwMDQyREI5QyAvKiBXZWJEYXRlVGltZVBpY2tlci5jcHAg
Ki8sCisJCQkJRTU1Q0QxRkMyNEQwODgwQjAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lUGlja2VyLmgg
Ki8sCiAJCQkJQkNBMEVGOUUxMjMzMjY0MjAwN0QzQ0ZCIC8qIFdlYkVkaXRDb21tYW5kUHJveHku
Y3BwICovLAogCQkJCUJDQTBFRjlEMTIzMzI2NDIwMDdEM0NGQiAvKiBXZWJFZGl0Q29tbWFuZFBy
b3h5LmggKi8sCiAJCQkJQkNFNDY5NEYxMjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZvcm1DbGllbnQu
Y3BwICovLApAQCAtOTg0NCw2ICs5ODU3LDggQEAKIAkJCQlGNkQ2MzJCQTEzM0QxODFCMDA3NDNE
NzcgLyogV2ViQ29va2llTWFuYWdlclByb3h5TWFjLm1tICovLAogCQkJCUU1NjhCOTIwMjBBM0FD
NkEwMEUzQzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMuaCAqLywKIAkJ
CQlFNTY4QjkyMTIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bk
b3duTWFjLm1tICovLAorCQkJCUU1NUNEMjAxMjREMDlGMUYwMDQyREI5QyAvKiBXZWJEYXRlVGlt
ZVBpY2tlck1hYy5oICovLAorCQkJCUU1NUNEMjAyMjREMDlGMUYwMDQyREI5QyAvKiBXZWJEYXRl
VGltZVBpY2tlck1hYy5tbSAqLywKIAkJCQlCQzg1N0U4NTEyQjcxRUJCMDBFREVCMkUgLyogV2Vi
UGFnZVByb3h5TWFjLm1tICovLAogCQkJCUJDNTc1MDk1MTI2OEYzQzYwMDZGMEYxMiAvKiBXZWJQ
b3B1cE1lbnVQcm94eU1hYy5oICovLAogCQkJCUJDNTc1MDk2MTI2OEYzQzYwMDZGMEYxMiAvKiBX
ZWJQb3B1cE1lbnVQcm94eU1hYy5tbSAqLywKQEAgLTExMjc4LDYgKzExMjkzLDkgQEAKIAkJCQlF
NTY4QjkxRjIwQTNBQjJGMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3du
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNUJFRjY4MjIxMzBDNDgwMDBGMzExMTEgLyogV2ViRGF0
YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNTY4Qjky
MjIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlFNTVDRDFGNTI0Q0Y3NDdEMDA0MkRCOUMgLyogV2ViRGF0ZVRp
bWVDaG9vc2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNTVDRDIwMDI0RDA4RDhGMDA0MkRCOUMg
LyogV2ViRGF0ZVRpbWVQaWNrZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUU1NUNEMjAzMjREMDlG
MUYwMDQyREI5QyAvKiBXZWJEYXRlVGltZVBpY2tlck1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDZCMDUyNDcyMjY2OEQ4NTAwMjY1Qjk3IC8qIFdlYkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTM5NjI4REQyMzk2MENDNjAw
NjU4RUNEIC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUzODY2QjBBMjM5OUEyRDkwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlv
blVwZGF0ZVByb3ZpZGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcAppbmRleCBlZmMwMDNiZDAxNTkxMDAwODJkZTNjZWYxZjYwOWZhNTIyNTFjYTVhLi5jZTU0
ZmZmNTQyOWY5YzI2MzJhODllNTVhOTI3MWJkZjhjZjRkNWZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3Nlci5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkRhdGFMaXN0U3Vn
Z2VzdGlvblBpY2tlci5oIgorI2luY2x1ZGUgIldlYkRhdGVUaW1lQ2hvb3Nlci5oIgogI2luY2x1
ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNs
dWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlci5oIgpAQCAtNzc1LDYgKzc3NiwxNSBAQCBib29sIFdl
YkNocm9tZUNsaWVudDo6Y2FuU2hvd0RhdGFMaXN0U3VnZ2VzdGlvbkxhYmVscygpIGNvbnN0CiAK
ICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKK3N0ZDo6
dW5pcXVlX3B0cjxEYXRlVGltZUNob29zZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlRGF0ZVRp
bWVDaG9vc2VyKERhdGVUaW1lQ2hvb3NlckNsaWVudCYgY2xpZW50KQoreworICAgIHJldHVybiBt
YWtlVW5pcXVlPFdlYkRhdGVUaW1lQ2hvb3Nlcj4obV9wYWdlLCBjbGllbnQpOworfQorCisjZW5k
aWYKKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSYgZnJhbWUsIEZp
bGVDaG9vc2VyJiBmaWxlQ2hvb3NlcikKIHsKICAgICBpZiAobV9wYWdlLmFjdGl2ZU9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZTc1ZjQ4ODUyYmZhMDZi
MWFkNDBlM2JiYTFmYTNjYzNlM2Y0MWE4ZS4uNDkyZTIzYjkzNWMzMDBhNTlmMDJkY2QxOTU0OTdk
MWRmYzYwYThlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTUyLDYgKzE1MiwxMCBAQCBwcml2
YXRlOgogICAgIGJvb2wgY2FuU2hvd0RhdGFMaXN0U3VnZ2VzdGlvbkxhYmVscygpIGNvbnN0IGZp
bmFsOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyPiBjcmVhdGVEYXRlVGlt
ZUNob29zZXIoV2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyQ2xpZW50JikgZmluYWw7CisjZW5kaWYK
KwogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIHZvaWQgZGlkUHJldmVudERlZmF1
bHRGb3JFdmVudCgpIGZpbmFsOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0ZVRpbWVDaG9vc2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRlVGltZUNob29zZXIuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjdiYzdkZDhlZTIxYThmZmEwYzMxNjJkZDc1MjE5MzQ1OGI3NmU0OTQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RGF0ZVRpbWVDaG9vc2VyLmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkRhdGVUaW1lQ2hvb3Nlci5oIgorCisjaWYgRU5B
QkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisj
aW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9EYXRlVGltZUNob29zZXJDbGllbnQuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0RhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK1dlYkRhdGVUaW1lQ2hvb3Nlcjo6V2ViRGF0ZVRpbWVDaG9vc2VyKFdlYlBhZ2UmIHBhZ2Us
IFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3NlckNsaWVudCYgY2xpZW50KQorICAgIDogbV9jbGllbnQo
Y2xpZW50KQorICAgICwgbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQgV2ViRGF0ZVRpbWVDaG9v
c2VyOjpkaWRDaG9vc2VEYXRlKFN0cmluZ1ZpZXcgZGF0ZSkKK3sKKyAgICBtX2NsaWVudC5kaWRD
aG9vc2VWYWx1ZShkYXRlKTsKK30KKwordm9pZCBXZWJEYXRlVGltZUNob29zZXI6OmRpZEVuZENo
b29zZXIoKQoreworICAgIG1fY2xpZW50LmRpZEVuZENob29zZXIoKTsKK30KKwordm9pZCBXZWJE
YXRlVGltZUNob29zZXI6OmVuZENob29zZXIoKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RW5kRGF0ZVRpbWVQaWNrZXIoKSwgbV9wYWdlLmlkZW50aWZpZXIoKSk7Cit9CisKK3ZvaWQg
V2ViRGF0ZVRpbWVDaG9vc2VyOjpzaG93Q2hvb3Nlcihjb25zdCBXZWJDb3JlOjpEYXRlVGltZUNo
b29zZXJQYXJhbWV0ZXJzJiBwYXJhbXMpCit7CisgICAgbV9wYWdlLnNldEFjdGl2ZURhdGVUaW1l
Q2hvb3NlcigqdGhpcyk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93RGF0ZVRpbWVQ
aWNrZXIocGFyYW1zKSwgbV9wYWdlLmlkZW50aWZpZXIoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJEYXRlVGltZUNob29zZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRlVGltZUNob29zZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTJi
MmRiMjkyMzYzYzBjYjM5ZGI5YzgwYWRiNmQ1ZGY0YWVlY2NkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGVUaW1lQ2hvb3Nl
ci5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorCisjaW5jbHVkZSA8V2ViQ29yZS9EYXRl
VGltZUNob29zZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgRGF0ZVRpbWVDaG9v
c2VyQ2xpZW50Oworc3RydWN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnM7Cit9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBXZWJEYXRlVGltZUNob29z
ZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyIHsKK3B1YmxpYzoKKyAg
ICBXZWJEYXRlVGltZUNob29zZXIoV2ViUGFnZSYsIFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3NlckNs
aWVudCYpOworCisgICAgdm9pZCBkaWRDaG9vc2VEYXRlKFN0cmluZ1ZpZXcpOworICAgIHZvaWQg
ZGlkRW5kQ2hvb3NlcigpOworCitwcml2YXRlOgorICAgIHZvaWQgZW5kQ2hvb3NlcigpIGZpbmFs
OworICAgIHZvaWQgc2hvd0Nob29zZXIoY29uc3QgV2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyUGFy
YW1ldGVycyYpIGZpbmFsOworCisgICAgV2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyQ2xpZW50JiBt
X2NsaWVudDsKKyAgICBXZWJQYWdlJiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCmluZGV4IDI3NDJmMTNlY2YzNmQ2MGNjZmQ2N2EzZmQyMTU0NzViMDA2NGY4MzIuLjE4Y2Fk
N2RhYWMxMWVlZmViYjJmYjBhZTc4YzBlODQ4NzdlNTNhNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC04MCw2ICs4MCw3IEBACiAjaW5jbHVk
ZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRGF0YUxpc3RTdWdnZXN0
aW9uUGlja2VyLmgiCiAjaW5jbHVkZSAiV2ViRGF0YWJhc2VQcm92aWRlci5oIgorI2luY2x1ZGUg
IldlYkRhdGVUaW1lQ2hvb3Nlci5oIgogI2luY2x1ZGUgIldlYkRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiV2ViRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJXZWJEcmFn
Q2xpZW50LmgiCkBAIC00MTk3LDYgKzQxOTgsMjcgQEAgdm9pZCBXZWJQYWdlOjpkaWRDbG9zZVN1
Z2dlc3Rpb25zKCkKIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9U
WVBFUykKKwordm9pZCBXZWJQYWdlOjpzZXRBY3RpdmVEYXRlVGltZUNob29zZXIoV2ViRGF0ZVRp
bWVDaG9vc2VyJiBkYXRlVGltZUNob29zZXIpCit7CisgICAgbV9hY3RpdmVEYXRlVGltZUNob29z
ZXIgPSBtYWtlV2Vha1B0cigmZGF0ZVRpbWVDaG9vc2VyKTsKK30KKwordm9pZCBXZWJQYWdlOjpk
aWRDaG9vc2VEYXRlKGNvbnN0IFN0cmluZyYgZGF0ZSkKK3sKKyAgICBpZiAobV9hY3RpdmVEYXRl
VGltZUNob29zZXIpCisgICAgICAgIG1fYWN0aXZlRGF0ZVRpbWVDaG9vc2VyLT5kaWRDaG9vc2VE
YXRlKGRhdGUpOworfQorCit2b2lkIFdlYlBhZ2U6OmRpZEVuZERhdGVUaW1lUGlja2VyKCkKK3sK
KyAgICBpZiAoYXV0byBjaG9vc2VyID0gc3RkOjpleGNoYW5nZShtX2FjdGl2ZURhdGVUaW1lQ2hv
b3NlciwgbnVsbHB0cikpCisgICAgICAgIGNob29zZXItPmRpZEVuZENob29zZXIoKTsKK30KKwor
I2VuZGlmCisKIHZvaWQgV2ViUGFnZTo6c2V0QWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIo
UmVmPFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyPiYmIG9wZW5QYW5lbFJlc3VsdExpc3RlbmVy
KQogewogICAgIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSBXVEZNb3ZlKG9wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCA2MTdlNmFmMmZkMzZjZGI4OTNjMDJjMTIyMDMzZTI4NzE1YmE2NDkwLi41
MzM2MjQzZTI5MTg0YTUyYmRmNTQyY2U4YzA4MTNiYWY5YzMzNTc2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yNDksNiArMjQ5LDcgQEAgY2xhc3Mg
V2ViQ29sb3JDaG9vc2VyOwogY2xhc3MgV2ViQ29udGV4dE1lbnU7CiBjbGFzcyBXZWJDb250ZXh0
TWVudUl0ZW1EYXRhOwogY2xhc3MgV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOworY2xhc3Mg
V2ViRGF0ZVRpbWVDaG9vc2VyOwogY2xhc3MgV2ViRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBXZWJF
dmVudDsKIGNsYXNzIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXI7CkBAIC00MzgsNiArNDM5LDEyIEBA
IHB1YmxpYzoKICAgICB2b2lkIGRpZENsb3NlU3VnZ2VzdGlvbnMoKTsKICNlbmRpZgogCisjaWYg
RU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisgICAgdm9pZCBzZXRBY3RpdmVEYXRl
VGltZUNob29zZXIoV2ViRGF0ZVRpbWVDaG9vc2VyJik7CisgICAgdm9pZCBkaWRDaG9vc2VEYXRl
KGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgZGlkRW5kRGF0ZVRpbWVQaWNrZXIoKTsKKyNlbmRp
ZgorCiAgICAgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIqIGFjdGl2ZU9wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
ci5nZXQoKTsgfQogICAgIHZvaWQgc2V0QWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIoUmVm
PFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyPiYmKTsKIApAQCAtMTkwNyw2ICsxOTE0LDEwIEBA
IHByaXZhdGU6CiAgICAgV2Vha1B0cjxXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXI+IG1fYWN0
aXZlRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFURV9B
TkRfVElNRV9JTlBVVF9UWVBFUykKKyAgICBXZWFrUHRyPFdlYkRhdGVUaW1lQ2hvb3Nlcj4gbV9h
Y3RpdmVEYXRlVGltZUNob29zZXI7CisjZW5kaWYKKwogICAgIFJlZlB0cjxXZWJPcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lcj4gbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKICAgICBSZWZQ
dHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiBtX25vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggYTU5NWU3ZDkyMTJiM2VkYzgy
OTM4OWZjZGZmZjkyNDUyYTU4ZDgwZS4uMGI2MjdiMjY2YTlmMThhNzYzYmE5ZDIxMGI1YmY4ZmY3
MzNjNDQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xNTksNiArMTU5LDExIEBAIEdlbmVyYXRlU3ludGhldGlj
RWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1h
bmRUeXBlCiAgICAgRGlkQ2xvc2VTdWdnZXN0aW9ucygpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
REFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKyAgICBEaWRDaG9vc2VEYXRlKFN0cmluZyBkYXRl
KTsKKyAgICBEaWRFbmREYXRlVGltZVBpY2tlcigpOworI2VuZGlmCisKICNpZiBFTkFCTEUoQ09O
VEVYVF9NRU5VUykKICAgICBDb250ZXh0TWVudUhpZGRlbigpCiAgICAgQ29udGV4dE1lbnVGb3JL
ZXlFdmVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDQyYzVhMTUwM2Y1ZTNhZjk5MGU4MGMwYmNk
YTNhN2U5YWExMWQwNDMuLjljMDk1YTc0MDI0ZDA2YzlmMGM4MDk4ZWM0ZDJjZTk4OTk0Y2UyNTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xNDcsNiArMTQ3LDEwIEBAIHByaXZhdGU6CiAgICAgYm9v
bCBjYW5TaG93RGF0YUxpc3RTdWdnZXN0aW9uTGFiZWxzKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
ZmFsc2U7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMp
CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3Nlcj4gY3JlYXRlRGF0
ZVRpbWVDaG9vc2VyKFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3NlckNsaWVudCYpIGZpbmFsOworI2Vu
ZGlmCisKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgIGJvb2wgcmVxdWVzdFBvaW50ZXJM
b2NrKCkgZmluYWw7CiAgICAgdm9pZCByZXF1ZXN0UG9pbnRlclVubG9jaygpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tCmluZGV4IDBiMDk0NWViNmQ5YTc2OWQxZDhiNDE2OWEzNjUzMGI5NjZmNmMw
NjAuLmY2ZTJiMThlODBjNTg5MzY2MGZlNzlhZWFmNWRhYTM3YjQzYzdkODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW0KQEAgLTczMiw2ICs3MzIsMTQgQEAgc3RkOjp1bmlxdWVfcHRyPERhdGFMaXN0U3Vn
Z2VzdGlvblBpY2tlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVEYXRhTGlzdFN1Z2dlc3QKIH0K
ICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCitzdGQ6OnVu
aXF1ZV9wdHI8RGF0ZVRpbWVDaG9vc2VyPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURhdGVUaW1l
Q2hvb3NlcihEYXRlVGltZUNob29zZXJDbGllbnQmKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RQb2ludGVyTG9jaygpCiB7CmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmQ3NzMy
NjE2NmJkZjBhYzFlYjAyMjVmMDdiOGNmNWUyMDRhODE0Mi4uYjkxNTQxNGEzYWViMDc4YjBmYjlh
Y2I3YmE0ZDdmNmIzZjQ5NDVmZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA4LTA1ICBBZGl0eWEgS2VlcnRo
aSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFNob3cgcGlja2VyIGZv
ciBkYXRlIGFuZCBkYXRldGltZS1sb2NhbCBpbnB1dCB0eXBlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0OTQ2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgaXNTaG93aW5nRGF0ZVRpbWVQaWNr
ZXIgdGVzdGluZyBob29rIGluIG9yZGVyIHRvIGVuYWJsZSB0ZXN0aW5nIG9mIHRoZSB2aXNpYmls
aXR5IG9mCisgICAgICAgIHRoZSBwaWNrZXIuCisKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVk
L1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsOgorICAgICAg
ICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5o
OgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmlzU2hvd2luZ0RhdGVUaW1lUGlj
a2VyIGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRy
b2xsZXJNYWMuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRy
b2xsZXJNYWMubW06CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlck1hYzo6aXNTaG93
aW5nRGF0ZVRpbWVQaWNrZXIgY29uc3QpOgorCiAyMDIwLTA4LTA0ICBGdWppaSBIaXJvbm9yaSAg
PEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFt3ZWJraXRjb3JlcHldIFJFR1JF
U1NJT04ocjI2NTI1NCk6IGF1dG9pbnN0YWxsZXIgaXMgZmFpbGluZyB0byBleGVjdXRlIHNldHVw
LnB5IG9uIHdpbjMyIFB5dGhvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxl
ci5pZGwKaW5kZXggOTNhMTQzZTc0ODM4MDdjNmVhZmMxZjMzNTRhZTU1ZGJlODFlNjI2ZS4uNWE0
MDNmZjIzZjAzOTQyZjhmMjRmMGM5ODFkMWRiMzg1YzFkYjgyNSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9s
bGVyLmlkbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5k
aW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCkBAIC0yMjIsNiArMjIyLDggQEAgaW50ZXJmYWNl
IFVJU2NyaXB0Q29udHJvbGxlciB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSB0aW1l
UGlja2VyVmFsdWVIb3VyOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgdGltZVBpY2tl
clZhbHVlTWludXRlOwogCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNTaG93aW5n
RGF0ZVRpbWVQaWNrZXI7CisKICAgICAvLyA8ZGF0YWxpc3Q+CiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gaXNTaG93aW5nRGF0YUxpc3RTdWdnZXN0aW9uczsKICAgICB2b2lkIGFjdGl2
YXRlRGF0YUxpc3RTdWdnZXN0aW9uKHVuc2lnbmVkIGxvbmcgaW5kZXgsIG9iamVjdCBjYWxsYmFj
ayk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9V
SVNjcmlwdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250
ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IDM3ZTM2ZjA0Njc2M2VhMjQ1MTI0YjMyOWY1
NDliYTA0NzNhZmZjZTMuLmU1YWRhYjhjN2U1YTA4ZmYzNzZhMDQzODBkOWJkYTlmZmMxN2I5NDEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2Ny
aXB0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250
ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCkBAIC0yMTYsNiArMjE2LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzZXRUaW1lUGlja2VyVmFsdWUobG9uZyBob3VyLCBsb25nIG1pbnV0ZSkg
eyBub3RJbXBsZW1lbnRlZCgpOyB9CiAgICAgdmlydHVhbCBkb3VibGUgdGltZVBpY2tlclZhbHVl
SG91cigpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIC0xOyB9CiAgICAgdmlydHVh
bCBkb3VibGUgdGltZVBpY2tlclZhbHVlTWludXRlKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgp
OyByZXR1cm4gLTE7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTaG93aW5nRGF0ZVRpbWVQaWNrZXIo
KSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
Ym9vbCBpc1Nob3dpbmdEYXRhTGlzdFN1Z2dlc3Rpb25zKCkgY29uc3QgeyBub3RJbXBsZW1lbnRl
ZCgpOyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIEpTT2JqZWN0UmVmIGNhbGVuZGFyVHlw
ZSgpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0
dWFsIHZvaWQgc2V0RGVmYXVsdENhbGVuZGFyVHlwZShKU1N0cmluZ1JlZiBjYWxlbmRhcklkZW50
aWZpZXIsIEpTU3RyaW5nUmVmIGxvY2FsZUlkZW50aWZpZXIpIHsgbm90SW1wbGVtZW50ZWQoKTsg
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9s
bGVyTWFjLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJN
YWMuaAppbmRleCA2MTIxNTkyZjJkN2RmMGQ4MzExODg2NzVkYjVhYWIyMjUyZjY3NGFhLi41NGQ5
MGQ5Y2Y2YzM3N2Q5MTkyYTZiZGM3NTFlMDY4NzU4NTY2MjY2IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMuaAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMuaApAQCAtNDIsNiArNDIs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCB6b29tVG9TY2FsZShkb3VibGUsIEpTVmFsdWVSZWYpIG92
ZXJyaWRlOwogICAgIGRvdWJsZSB6b29tU2NhbGUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lk
IHNpbXVsYXRlQWNjZXNzaWJpbGl0eVNldHRpbmdzQ2hhbmdlTm90aWZpY2F0aW9uKEpTVmFsdWVS
ZWYpIG92ZXJyaWRlOworICAgIGJvb2wgaXNTaG93aW5nRGF0ZVRpbWVQaWNrZXIoKSBjb25zdCBv
dmVycmlkZTsKICAgICBib29sIGlzU2hvd2luZ0RhdGFMaXN0U3VnZ2VzdGlvbnMoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2b2lkIGFjdGl2YXRlRGF0YUxpc3RTdWdnZXN0aW9uKHVuc2lnbmVkIGlu
ZGV4LCBKU1ZhbHVlUmVmIGNhbGxiYWNrKSBvdmVycmlkZTsKICAgICB2b2lkIGJlZ2luQmFja1N3
aXBlKEpTVmFsdWVSZWYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCmluZGV4IGU5NTZlZWQ5MmEwYTU4NzgzNjZl
YzUzMDA5NzIyNDE2OTg4NTY3OWMuLjJlMTIzMGM1OGMzYWZiZDM4ODgxZWY3M2VhYzMxNzMxZGVl
YmQ1YjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29u
dHJvbGxlck1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENv
bnRyb2xsZXJNYWMubW0KQEAgLTk2LDYgKzk2LDE1IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVy
TWFjOjpzaW11bGF0ZUFjY2Vzc2liaWxpdHlTZXR0aW5nc0NoYW5nZU5vdGlmaWNhdGlvbihKU1Zh
CiAgICAgfSkuZ2V0KCldOwogfQogCitib29sIFVJU2NyaXB0Q29udHJvbGxlck1hYzo6aXNTaG93
aW5nRGF0ZVRpbWVQaWNrZXIoKSBjb25zdAoreworICAgIGZvciAoTlNXaW5kb3cgKmNoaWxkV2lu
ZG93IGluIHdlYlZpZXcoKS53aW5kb3cuY2hpbGRXaW5kb3dzKSB7CisgICAgICAgIGlmIChbY2hp
bGRXaW5kb3cgaXNLaW5kT2ZDbGFzczpOU0NsYXNzRnJvbVN0cmluZyhAIldLRGF0ZVRpbWVQaWNr
ZXJXaW5kb3ciKV0pCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJu
IGZhbHNlOworfQorCiBib29sIFVJU2NyaXB0Q29udHJvbGxlck1hYzo6aXNTaG93aW5nRGF0YUxp
c3RTdWdnZXN0aW9ucygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRhdGFMaXN0U3VnZ2VzdGlvbnNU
YWJsZVZpZXcoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBjNzZlNDI0Njg1Y2Y4MDc2ODUzZmEzZjBlMmVmYzAwOTY5MDZl
NWZkLi5jNTAxMzM4ZTA2YmMxMWVmZmY1Nzc0NzI1N2E5ZjNiZDA2YTUwOWMxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjEgQEAKKzIwMjAtMDgtMDUgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUu
Y29tPgorCisgICAgICAgIFttYWNPU10gU2hvdyBwaWNrZXIgZm9yIGRhdGUgYW5kIGRhdGV0aW1l
LWxvY2FsIGlucHV0IHR5cGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTQ5NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRlZCB0ZXN0cyB0byB2ZXJpZnkgdGhhdCB0aGUgcGlja2VyIGlzIGNvcnJl
Y3RseSBzaG93biBhbmQgaGlkZGVuIGZvciBkYXRlIGFuZAorICAgICAgICBkYXRldGltZS1sb2Nh
bCBpbnB1dCB0eXBlcy4KKworICAgICAgICAqIGZhc3QvZm9ybXMvZGF0ZS9kYXRlLXNob3ctaGlk
ZS1waWNrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2RhdGUv
ZGF0ZS1zaG93LWhpZGUtcGlja2VyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
ZGF0ZXRpbWVsb2NhbC9kYXRldGltZWxvY2FsLXNob3ctaGlkZS1waWNrZXItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2RhdGV0aW1lbG9jYWwvZGF0ZXRpbWVsb2Nh
bC1zaG93LWhpZGUtcGlja2VyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9U
ZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHJlc291cmNlcy91aS1oZWxwZXIuanM6CisgICAg
ICAgICh3aW5kb3cuVUlIZWxwZXIuaXNTaG93aW5nRGF0ZVRpbWVQaWNrZXIpOgorCiAyMDIwLTA4
LTA0ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBE
aXNhYmxlIGlzb2xhdGVkLXRyZWUtbW9kZS1vbi1vZmYuaHRtbCBiZWNhdXNlIGl0IGlzIGNhdXNp
bmcgb3RoZXIgdGVzdCBmYWlsdXJlcy4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2RhdGUvZGF0ZS1zaG93LWhpZGUtcGlja2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLXNob3ctaGlkZS1waWNrZXItZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmY1MmQyNDI3NzI5NDc5ZDJhZjgzOGE5NGYxZDRmN2RiODQwMTExMWIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1zaG93LWhpZGUtcGlj
a2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworMS4gSXMgc2hvd2luZyBkYXRlIHBp
Y2tlcj8gdHJ1ZQorMi4gSXMgc2hvd2luZyBkYXRlIHBpY2tlcj8gZmFsc2UKKworVGhpcyB0ZXN0
IHZlcmlmaWVzIHRoYXQgYSBkYXRlIHBpY2tlciBpcyBwcmVzZW50ZWQgd2hlbiBjbGlja2luZyBv
biBhIGRhdGUgaW5wdXQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGUv
ZGF0ZS1zaG93LWhpZGUtcGlja2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGUv
ZGF0ZS1zaG93LWhpZGUtcGlja2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Q2MmIyMDBiN2RmNDAwNWM5
ZDQ1OWRmMTdlNTI4NTkyODkxZjhiYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvZGF0ZS9kYXRlLXNob3ctaGlkZS1waWNrZXIuaHRtbApAQCAtMCwwICsxLDQwIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg
Y29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFi
bGU9bm8iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwv
c2NyaXB0PgorPHN0eWxlPgoraW5wdXQgeworICAgIHdpZHRoOiAzMDBweDsKKyAgICBoZWlnaHQ6
IDUwcHg7Cit9CisKK2JvZHkgeworICAgIG1hcmdpbjogMDsKK30KKzwvc3R5bGU+Cis8aGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxpbnB1dCBpZD0iaW5wdXQiIHR5cGU9ImRhdGUi
Lz4KKzxwcmU+MS4gSXMgc2hvd2luZyBkYXRlIHBpY2tlcj8gPHNwYW4gaWQ9ImJlZm9yZSI+PC9z
cGFuPjwvcHJlPgorPHByZT4yLiBJcyBzaG93aW5nIGRhdGUgcGlja2VyPyA8c3BhbiBpZD0iYWZ0
ZXIiPjwvc3Bhbj48L3ByZT4KKzxicj4KKzxkaXY+VGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgYSBk
YXRlIHBpY2tlciBpcyBwcmVzZW50ZWQgd2hlbiBjbGlja2luZyBvbiBhIGRhdGUgaW5wdXQuPC9k
aXY+Cis8L2JvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9
CisKK2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZh
dGVBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uQXQoMTUwLCAyNSk7CisKKyAgICBiZWZvcmUudGV4dENv
bnRlbnQgPSBhd2FpdCBVSUhlbHBlci5pc1Nob3dpbmdEYXRlVGltZVBpY2tlcigpOworICAgIGlu
cHV0LmJsdXIoKTsKKyAgICBhZnRlci50ZXh0Q29udGVudCA9IGF3YWl0IFVJSGVscGVyLmlzU2hv
d2luZ0RhdGVUaW1lUGlja2VyKCk7CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30K
Kzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9k
YXRldGltZWxvY2FsL2RhdGV0aW1lbG9jYWwtc2hvdy1oaWRlLXBpY2tlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGV0aW1lbG9jYWwvZGF0ZXRpbWVsb2NhbC1zaG93
LWhpZGUtcGlja2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDFmZjNkODViOGFkNGE0N2E5
ZWJkNWIzN2VkOTM0ZDI2ODc2YzBiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9kYXRldGltZWxvY2FsL2RhdGV0aW1lbG9jYWwtc2hvdy1oaWRlLXBpY2tlci1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKKzEuIElzIHNob3dpbmcgZGF0ZSBwaWNrZXI/IHRy
dWUKKzIuIElzIHNob3dpbmcgZGF0ZSBwaWNrZXI/IGZhbHNlCisKK1RoaXMgdGVzdCB2ZXJpZmll
cyB0aGF0IGEgZGF0ZSBwaWNrZXIgaXMgcHJlc2VudGVkIHdoZW4gY2xpY2tpbmcgb24gYSBkYXRl
dGltZS1sb2NhbCBpbnB1dC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0
ZXRpbWVsb2NhbC9kYXRldGltZWxvY2FsLXNob3ctaGlkZS1waWNrZXIuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvZGF0ZXRpbWVsb2NhbC9kYXRldGltZWxvY2FsLXNob3ctaGlkZS1waWNr
ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zZDUwZjNmMTI5ZjA5NzZiNTI2YTlkOTE1MTM1ODM0MjYzZjIy
NzFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRldGltZWxv
Y2FsL2RhdGV0aW1lbG9jYWwtc2hvdy1oaWRlLXBpY2tlci5odG1sCkBAIC0wLDAgKzEsNDAgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBj
b250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJs
ZT1ubyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+Cis8c3R5bGU+CitpbnB1dCB7CisgICAgd2lkdGg6IDMwMHB4OworICAgIGhlaWdodDog
NTBweDsKK30KKworYm9keSB7CisgICAgbWFyZ2luOiAwOworfQorPC9zdHlsZT4KKzxoZWFkPgor
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGlucHV0IGlkPSJpbnB1dCIgdHlwZT0iZGF0ZXRp
bWUtbG9jYWwiLz4KKzxwcmU+MS4gSXMgc2hvd2luZyBkYXRlIHBpY2tlcj8gPHNwYW4gaWQ9ImJl
Zm9yZSI+PC9zcGFuPjwvcHJlPgorPHByZT4yLiBJcyBzaG93aW5nIGRhdGUgcGlja2VyPyA8c3Bh
biBpZD0iYWZ0ZXIiPjwvc3Bhbj48L3ByZT4KKzxicj4KKzxkaXY+VGhpcyB0ZXN0IHZlcmlmaWVz
IHRoYXQgYSBkYXRlIHBpY2tlciBpcyBwcmVzZW50ZWQgd2hlbiBjbGlja2luZyBvbiBhIGRhdGV0
aW1lLWxvY2FsIGlucHV0LjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworfQorCithc3luYyBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIGF3
YWl0IFVJSGVscGVyLmFjdGl2YXRlQW5kV2FpdEZvcklucHV0U2Vzc2lvbkF0KDE1MCwgMjUpOwor
CisgICAgYmVmb3JlLnRleHRDb250ZW50ID0gYXdhaXQgVUlIZWxwZXIuaXNTaG93aW5nRGF0ZVRp
bWVQaWNrZXIoKTsKKyAgICBpbnB1dC5ibHVyKCk7CisgICAgYWZ0ZXIudGV4dENvbnRlbnQgPSBh
d2FpdCBVSUhlbHBlci5pc1Nob3dpbmdEYXRlVGltZVBpY2tlcigpOworCisgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNTEwNWQ3ZGFkNDNkN2U4MTg4MjY0YjNiODhh
NDI3OGVjOGRkZjA2Mi4uYWEyNGFlYzZiZDFjNDMxNzZlMGFlMGViYmY5YTg0YzQ1NzY1MmIxYyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM0NzMsNiAr
MzQ3MywxMCBAQCB3ZWJraXQub3JnL2IvMjE0NDk4IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY29ycy9yZW1vdGUtb3JpZ2luLmh0bSBbIFBhcwogCiBmYXN0L3RleHQvc2VsZWN0aW9u
LWlzLXByZXZlbnQtZGVmYXVsdGVkLmh0bWwgWyBGYWlsdXJlIF0KIAorIyBGSVhNRTogVGhlc2Ug
dGVzdHMgcmVxdWlyZSBVSVNjcmlwdENvbnRyb2xsZXJJT1MgYWRkaXRpb25zIHRvIGtub3cgd2hl
biBhIGRhdGUvdGltZSBwaWNrZXIgaXMgcHJlc2VudGVkCitmYXN0L2Zvcm1zL2RhdGUvZGF0ZS1z
aG93LWhpZGUtcGlja2VyLmh0bWwgWyBTa2lwIF0KK2Zhc3QvZm9ybXMvZGF0ZXRpbWVsb2NhbC9k
YXRldGltZWxvY2FsLXNob3ctaGlkZS1waWNrZXIuaHRtbCBbIFNraXAgXQorCiAjIDxyZGFyOi8v
cHJvYmxlbS81OTYzNjExNT4gUkVHUkVTU0lPTjogWyBpT1MgJiBtYWNPUyBdIHR3byBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSSBhcmUgZmFpbGluZwogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvaW1wb3J0X2V4cG9ydC9yc2Ff
aW1wb3J0S2V5Lmh0dHBzLndvcmtlci5odG1sIFsgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9pbXBvcnRfZXhwb3J0L3Rlc3RfcnNhX2ltcG9y
dEtleS5odHRwcy5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNv
dXJjZXMvdWktaGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwpp
bmRleCBiMzBjZjgzZjlhYWIzMzdmOWU0OTI2MDExNjk1YzM1ODMwMTM1Y2M5Li5kN2YwMTk0ZTdi
YmI1YWZhZmFmMjY1ZjgzNDZhNGZiOWU2OTE4NDM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9y
ZXNvdXJjZXMvdWktaGVscGVyLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxw
ZXIuanMKQEAgLTg0MSw2ICs4NDEsMTUgQEAgd2luZG93LlVJSGVscGVyID0gY2xhc3MgVUlIZWxw
ZXIgewogICAgICAgICB9KTsKICAgICB9CiAKKyAgICBzdGF0aWMgaXNTaG93aW5nRGF0ZVRpbWVQ
aWNrZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgKCgpID0+IHsKKyAgICAgICAgICAg
ICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSh1aUNvbnRyb2xsZXIuaXNTaG93aW5n
RGF0ZVRpbWVQaWNrZXIpOworICAgICAgICAgICAgfSkoKWAsIHJlc3VsdCA9PiByZXNvbHZlKHJl
c3VsdCA9PT0gInRydWUiKSk7CisgICAgICAgIH0pOworICAgIH0KKwogICAgIHN0YXRpYyB6b29t
U2NhbGUoKQogICAgIHsKICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewo=
</data>
<flag name="review"
          id="421467"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406137</attachid>
            <date>2020-08-06 17:15:45 -0700</date>
            <delta_ts>2020-08-24 09:25:16 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-214946-20200806201544.patch</filename>
            <type>text/plain</type>
            <size>87058</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1Mjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY2NjQ5MGJiZjJjNDc4
NmVlYzU2N2UxOTYzNGIzYjc4YmMzY2M4NS4uNTY2ZDk5N2E2MGYzYTUyNWE3YWIyZjNiY2I0ZTYy
Mjc1MDgyMGQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTA4LTA1ICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFNob3cg
cGlja2VyIGZvciBkYXRlIGFuZCBkYXRldGltZS1sb2NhbCBpbnB1dCB0eXBlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0OTQ2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIgYW5kIFdlbnNvbiBIc2llaC4KKworICAgICAgICBEYXRl
IGFuZCBkYXRldGltZS1sb2NhbCBpbnB1dCB0eXBlcyByZXF1aXJlIGEgY2FsZW5kYXIgcGlja2Vy
IHRvIGJlIHByZXNlbnRlZCB3aGVuIGFjdGl2YXRlZC4KKyAgICAgICAgQ29uc2VxdWVudGx5LCBC
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVu
dCB3YXMgbW9kaWZpZWQgdG8KKyAgICAgICAgY3JlYXRlIGEgRGF0ZVRpbWVDaG9vc2VyIGFuZCBk
aXNwbGF5IGEgY2FsZW5kYXIgdXBvbiBhY3RpdmF0aW9uLiBUaGlzIG9iamVjdCBpcyBkZXN0cm95
ZWQKKyAgICAgICAgd2hlbiB0aGUgZWxlbWVudCBpcyBibHVycmVkLCBoaWRpbmcgdGhlIGNhbGVu
ZGFyLgorCisgICAgICAgIFRoZXJlIGlzIGN1cnJlbnRseSBubyBwaWNrZXIgVUkgZm9yIG1vbnRo
LCB3ZWVrLCBhbmQgdGltZSBpbnB1dCB0eXBlcy4gQXMgYSByZXN1bHQsIAorICAgICAgICBoYW5k
bGVET01BY3RpdmF0ZUV2ZW50IGlzIGEgbm8tb3Agb24gdGhvc2UgaW5wdXQgdHlwZXMuCisKKyAg
ICAgICAgV3JvdGUgYW4gZW5jb2RlciBhbmQgZGVjb2RlciBmb3IgRGF0ZVRpbWVDaG9vc2VyUGFy
YW1ldGVycywgc28gdGhhdCB0aGUgcGlja2VyIGNhbiBiZQorICAgICAgICBjcmVhdGVkIHdpdGgg
dGhlIGNvcnJlY3QgdmFsdWVzLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2Zvcm1zL2RhdGUvZGF0
ZS1zaG93LWhpZGUtcGlja2VyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvZGF0ZXRp
bWVsb2NhbC9kYXRldGltZWxvY2FsLXNob3ctaGlkZS1waWNrZXIuaHRtbAorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvQmFzZUNo
b29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFz
ZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6
OmVsZW1lbnREaWRCbHVyKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaG9vc2VyT25seURhdGVB
bmRUaW1lSW5wdXRUeXBlOjppc1ByZXNlbnRpbmdBdHRhY2hlZFZpZXcgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmRpZENob29z
ZVZhbHVlKToKKyAgICAgICAgKiBodG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRU
eXBlLmg6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKiBo
dG1sL01vbnRoSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vbnRoSW5wdXRUeXBl
OjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KToKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBl
Lmg6CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRpbWVJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQpOgorICAgICAgICAqIGh0bWwv
VGltZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvV2Vla0lucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXZWVrSW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KToKKyAg
ICAgICAgKiBodG1sL1dlZWtJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGll
bnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVEYXRl
VGltZUNob29zZXIpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAg
KiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmNyZWF0ZURhdGVU
aW1lQ2hvb3Nlcik6CisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAgKiBwYWdlL0No
cm9tZUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL0RhdGVUaW1lQ2hvb3Nlci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL0RhdGVUaW1lQ2hvb3NlckNsaWVudC5oOgorICAgICAgICAqIHBsYXRm
b3JtL0RhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczo6ZGVjb2RlKToKKwogMjAyMC0wOC0wNCAg
RGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgIkRvdWJsZURvd24g
Q2FzaW5vIiByZXNwaW4gYnV0dG9uIHN0b3BzIHdvcmtpbmcgd2l0aCB0cmFja3BhZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCBlODY5ZGY0NGViYWJlYjJkMDNiY2MxMTdiZGVlNTU1MWNkYzhhYTMxLi42NWIxZWE4N2Vi
Y2FjZjkxYTEyYWY5YjEzZjI5NzIxOGQ2NzVlYzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3IEBA
CisyMDIwLTA4LTA1ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAg
ICAgICBbbWFjT1NdIFNob3cgcGlja2VyIGZvciBkYXRlIGFuZCBkYXRldGltZS1sb2NhbCBpbnB1
dCB0eXBlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE0OTQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIgYW5kIFdlbnNvbiBIc2ll
aC4KKworICAgICAgICBDcmVhdGVkIFdLRGF0ZVRpbWVQaWNrZXIgYXMgYSB3cmFwcGVyIGFyb3Vu
ZCBOU0RhdGVQaWNrZXIuIFRoZSBwaWNrZXIgaXMKKyAgICAgICAgZGlzcGxheWVkIGluIGl0cyBv
d24gTlNXaW5kb3csIGVuc3VyaW5nIHRoZSB2aWV3IGlzIGFsd2F5cyBhYm92ZSB0aGUgcGFnZS4K
KyAgICAgICAgV2ViUGFnZVByb3h5IGFuZCBXS0RhdGVUaW1lUGlja2VyIGNvbW11bmljYXRlIHRo
cm91Z2ggV2ViRGF0ZVRpbWVQaWNrZXJNYWMsCisgICAgICAgIGluIG9yZGVyIGZvciB0aGUgcGlj
a2VyIHRvIGJlIGluaXRpYWxpemVkIHdpdGggdGhlIGNvcnJlY3QgaW5pdGlhbCwgbWluaW11bSwK
KyAgICAgICAgYW5kIG1heGltdW0gZGF0ZSwgYW5kIHNvIHRoYXQgdGhlIGNob3NlbiBkYXRlIGNh
biBiZSBzZW50IGJhY2sgdG8gdGhlCisgICAgICAgIFdlYlByb2Nlc3MuCisKKyAgICAgICAgQWRk
ZWQgSVBDIG1lc3NhZ2VzIHRvIGVuYWJsZSBjb21tdW5pY2F0aW9uIGJldHdlZW4gdGhlIFVJUHJv
Y2VzcyBhbmQgdGhlCisgICAgICAgIFdlYlByb2Nlc3MgbmVjZXNzYXJ5IGZvciBzaG93aW5nIGFu
ZCBoaWRpbmcgdGhlIHBpY2tlci4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAq
IFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViRGF0ZVRpbWVQaWNrZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViRGF0ZVRpbWVQaWNrZXI6OldlYkRhdGVUaW1lUGlja2VyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViRGF0ZVRpbWVQaWNrZXI6On5XZWJEYXRlVGltZVBpY2tlcik6CisgICAgICAg
IChXZWJLaXQ6OldlYkRhdGVUaW1lUGlja2VyOjplbmRQaWNrZXIpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJEYXRlVGltZVBpY2tlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzaG93RGF0ZVRp
bWVQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmVuZERhdGVUaW1lUGlj
a2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDaG9vc2VEYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRFbmREYXRlVGltZVBpY2tlcik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y2xvc2VPdmVybGF5ZWRWaWV3cyk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjcmVhdGVEYXRlVGltZVBpY2tlcik6Cisg
ICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnRJbXBsOjpjcmVhdGVEYXRlVGltZVBpY2tlcik6CisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9XZWJEYXRlVGltZVBpY2tlck1hYy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFj
L1dlYkRhdGVUaW1lUGlja2VyTWFjLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRGF0
ZVRpbWVQaWNrZXJNYWM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGVUaW1lUGlj
a2VyTWFjOjp+V2ViRGF0ZVRpbWVQaWNrZXJNYWMpOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRl
VGltZVBpY2tlck1hYzo6V2ViRGF0ZVRpbWVQaWNrZXJNYWMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJEYXRlVGltZVBpY2tlck1hYzo6ZW5kUGlja2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0
ZVRpbWVQaWNrZXJNYWM6OnNob3dEYXRlVGltZVBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YkRhdGVUaW1lUGlja2VyTWFjOjpkaWRDaG9vc2VEYXRlKToKKyAgICAgICAgKC1bV0tEYXRlVGlt
ZVBpY2tlcldpbmRvdyBpbml0V2l0aENvbnRlbnRSZWN0OnN0eWxlTWFzazpiYWNraW5nOmRlZmVy
Ol0pOgorICAgICAgICAoLVtXS0RhdGVUaW1lUGlja2VyV2luZG93IGNhbkJlY29tZUtleVdpbmRv
d10pOgorICAgICAgICAoLVtXS0RhdGVUaW1lUGlja2VyV2luZG93IGhhc0tleUFwcGVhcmFuY2Vd
KToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBpY2tlcldpbmRvdyBzaGFkb3dPcHRpb25zXSk6Cisg
ICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIgaW5pdFdpdGhQYXJhbXM6aW5WaWV3Ol0pOgorICAg
ICAgICAoLVtXS0RhdGVUaW1lUGlja2VyIHNob3dQaWNrZXI6XSk6CisgICAgICAgICgtW1dLRGF0
ZVRpbWVQaWNrZXIgaW52YWxpZGF0ZV0pOgorICAgICAgICAoLVtXS0RhdGVUaW1lUGlja2VyIGRp
ZENob29zZURhdGU6XSk6CisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIgZGF0ZUZvcm1hdFN0
cmluZ0ZvclR5cGU6XSk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURhdGVUaW1lQ2hv
b3Nlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGVUaW1lQ2hv
b3Nlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRlVGltZUNob29zZXI6Oldl
YkRhdGVUaW1lQ2hvb3Nlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGVUaW1lQ2hvb3Nlcjo6
ZGlkQ2hvb3NlRGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGVUaW1lQ2hvb3Nlcjo6ZGlk
RW5kQ2hvb3Nlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGVUaW1lQ2hvb3Nlcjo6ZW5kQ2hv
b3Nlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGVUaW1lQ2hvb3Nlcjo6c2hvd0Nob29zZXIp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0ZVRpbWVDaG9vc2Vy
Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0QWN0aXZlRGF0ZVRpbWVDaG9vc2VyKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ2hvb3NlRGF0ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OmRpZEVuZERhdGVUaW1lUGlja2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluOgorCiAyMDIwLTA4LTA0ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIyNjUyNjMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwppbmRleCBjYWZlZmUzMDY0OTcyMDM5NGNiMDg4ODAyMmFhODYzMzZi
M2YyZWVmLi40MzUyYjJjZDJjOWM1NzhlNzEzNGRkMzhlMTZmMDkwMGEwMWRiODgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDgtMDUgIEFkaXR5
YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gU2hvdyBw
aWNrZXIgZm9yIGRhdGUgYW5kIGRhdGV0aW1lLWxvY2FsIGlucHV0IHR5cGVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ5NDYKKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlciBhbmQgV2Vuc29uIEhzaWVoLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVEYXRl
VGltZUNob29zZXIpOgorCiAyMDIwLTA4LTAzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KIAogICAgICAgICBNb3ZlIHVzZXIgZ2VzdHVyZSBwcm9wYWdhdGlvbiBvdmVyIHByb21p
c2UgYmVoaW5kIGEgZmVhdHVyZSBmbGFnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDJlMTgwMmM0OWYwOThlOWNjZGU4Y2QzOTlh
MzNlMDgyOGJjYTE5Zi4uYmQ1ZDg3YmRkZDc4ZWI2MWRiN2Y2ZjJkZjIwMmE3YzI2MmZlNDE0YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTAwMCw4ICsxMDAwLDggQEAKIAkJMzdDNzM4RUIxRURCRDM4NDAwM0YyQjBCIC8qIFBl
cmZvcm1hbmNlTWVhc3VyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzdDNzM4RUExRURCRDM4MTAwM0YyQjBCIC8qIFBlcmZvcm1hbmNlTWVhc3VyZS5o
ICovOyB9OwogCQkzN0M3MzhFRDFFREJENUJDMDAzRjJCMEIgLyogU1ZHVW5rbm93bkVsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3QzczOEVD
MUVEQkQ1QjcwMDNGMkIwQiAvKiBTVkdVbmtub3duRWxlbWVudC5oICovOyB9OwogCQkzN0M3MzhF
RjFFREJENzFCMDAzRjJCMEIgLyogTWF0aE1MVW5rbm93bkVsZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3QzczOEVFMUVEQkQ3MTgwMDNGMkIw
QiAvKiBNYXRoTUxVbmtub3duRWxlbWVudC5oICovOyB9OwotCQkzN0M3MzhGMzFFREJERThBMDAz
RjJCMEIgLyogRGF0ZVRpbWVDaG9vc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzN0M3MzhGMTFFREJERTg3MDAzRjJCMEIgLyogRGF0ZVRpbWVDaG9v
c2VyLmggKi87IH07Ci0JCTM3QzczOEY0MUVEQkRFOEQwMDNGMkIwQiAvKiBEYXRlVGltZUNob29z
ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDM3QzczOEYyMUVEQkRFODcwMDNGMkIwQiAvKiBEYXRlVGltZUNob29zZXJDbGllbnQuaCAqLzsg
fTsKKwkJMzdDNzM4RjMxRURCREU4QTAwM0YyQjBCIC8qIERhdGVUaW1lQ2hvb3Nlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdDNzM4RjExRURCREU4
NzAwM0YyQjBCIC8qIERhdGVUaW1lQ2hvb3Nlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTM3QzczOEY0MUVEQkRFOEQwMDNGMkIwQiAvKiBEYXRl
VGltZUNob29zZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDM3QzczOEYyMUVEQkRFODcwMDNGMkIwQiAvKiBEYXRlVGltZUNob29zZXJDbGll
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkz
N0Q0NTZGRDFBOUE1MEQ4MDAzMzMwQTEgLyogTG9jYWxpemFibGVTdHJpbmdzLnBtIGluIENvcHkg
U2NyaXB0cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0Q0NTZGQjFBOUE1
MEI2MDAzMzMwQTEgLyogTG9jYWxpemFibGVTdHJpbmdzLnBtICovOyB9OwogCQkzN0UzNTI0RDEy
NDUwQzY2MDBCQUY1RDkgLyogSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzN0UzNTI0QzEyNDUwQzY2MDBCQUY1RDkgLyogSW5wdXRUeXBl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzdG
NTY3Q0UxNjUzNThGNDAwRERFOTJCIC8qIFBvcHVwT3BlbmluZ09ic2VydmVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzcyQjA5NTE2NTM1ODU2MDAw
QTQ5Q0EgLyogUG9wdXBPcGVuaW5nT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNTA3MSw2ICs1MDcxLDcgQEAKIAkJRTU4QjQ1QkEy
MEFEMDdERDAwOTkxMDI1IC8qIERhdGFMaXN0QnV0dG9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU4QjQ1QjgyMEFEMDdERDAwOTkxMDI1
IC8qIERhdGFMaXN0QnV0dG9uRWxlbWVudC5oICovOyB9OwogCQlFNTlERDRCODIxMDk4Mjg3MDAz
QzhCNDcgLyogTGlzdEJ1dHRvbkFycm93LnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTU5REQ0QjcyMTA5ODI4NTAwM0M4QjQ3IC8qIExpc3RCdXR0
b25BcnJvdy5wbmcgKi87IH07CiAJCUU1QkE3RDYzMTUxNDM3Q0EwMEZFMUUzRiAvKiBMZW5ndGhG
dW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU1QkE3RDYyMTUxNDM3Q0EwMEZFMUUzRiAvKiBMZW5ndGhGdW5jdGlvbnMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFNUM1OUE5QTI0RDBFMUFB
MDAzQjg2RTEgLyogRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVDNTlBOTkyNEQwRTFBQTAwM0I4NkUxIC8q
IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlFNzE0NjdCMzI0QUJBRUYyMDBGQjJGNTAgLyogQXVkaW9O
b2RlT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTcxNDY3QjEyNEFCQUVGMTAwRkIyRjUwIC8qIEF1ZGlvTm9kZU9wdGlvbnMuaCAqLzsgfTsK
IAkJRTcxNDY3QjYyNEFCQUYxRDAwRkIyRjUwIC8qIFBhbm5lck9wdGlvbnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU3MTQ2N0I1MjRBQkFGMUQwMEZC
MkY1MCAvKiBQYW5uZXJPcHRpb25zLmggKi87IH07CiAJCUU3NTVFODkyMjRDNzQzNEIwMDlGN0My
MyAvKiBQZXJpb2RpY1dhdmVDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTc1NUU4OEYyNEM3NDM0QjAwOUY3QzIzIC8qIFBlcmlvZGlj
V2F2ZUNvbnN0cmFpbnRzLmggKi87IH07CkBAIC0xNTg4NSw2ICsxNTg4Niw3IEBACiAJCUU1OEI0
NUI4MjBBRDA3REQwMDk5MTAyNSAvKiBEYXRhTGlzdEJ1dHRvbkVsZW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRGF0YUxpc3RCdXR0b25FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU1OURENEI3MjEwOTgyODUwMDNDOEI0NyAvKiBMaXN0QnV0dG9uQXJyb3cucG5nICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBw
YXRoID0gTGlzdEJ1dHRvbkFycm93LnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTVCQTdENjIxNTE0MzdDQTAwRkUxRTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBMZW5ndGhGdW5jdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTVDNTlBOTkyNEQwRTFBQTAwM0I4NkUxIC8qIERhdGVUaW1lQ2hvb3Nl
clBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0ZVRpbWVD
aG9vc2VyUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNzE0NjdC
MTI0QUJBRUYxMDBGQjJGNTAgLyogQXVkaW9Ob2RlT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBdWRpb05vZGVPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUU3MTQ2N0I0MjRBQkFGMEIwMEZCMkY1MCAvKiBBdWRpb05vZGVPcHRpb25zLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBBdWRpb05vZGVPcHRpb25zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTcxNDY3QjUyNEFCQUYxRDAwRkIyRjUwIC8qIFBhbm5lck9wdGlvbnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFubmVyT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjY2MzMsNiArMjY2MzUsNyBAQAogCQkJCUE1NzMyQjA5MTM2QTE2MUQw
MDVDOEQ3QyAvKiBEYXRlQ29tcG9uZW50cy5oICovLAogCQkJCTM3QzczOEYxMUVEQkRFODcwMDNG
MkIwQiAvKiBEYXRlVGltZUNob29zZXIuaCAqLywKIAkJCQkzN0M3MzhGMjFFREJERTg3MDAzRjJC
MEIgLyogRGF0ZVRpbWVDaG9vc2VyQ2xpZW50LmggKi8sCisJCQkJRTVDNTlBOTkyNEQwRTFBQTAw
M0I4NkUxIC8qIERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMuaCAqLywKIAkJCQk0NUZFQTVDRDE1
NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5jcHAgKi8sCiAJCQkJNDVGRUE1Q0UxNTZEREU4QzAw
NjU0MTAxIC8qIERlY2ltYWwuaCAqLywKIAkJCQlDRDgzRDM1QTIxMTExMDgyMDA3NkUxMUMgLyog
RGVmZXJyYWJsZVRhc2suaCAqLywKQEAgLTMwNjUxLDYgKzMwNjU0LDcgQEAKIAkJCQlGNTVCM0RC
NjEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzdDNzM4RjMxRURCREU4QTAwM0YyQjBCIC8qIERhdGVUaW1lQ2hvb3Nlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzdDNzM4RjQxRURCREU4RDAwM0YyQjBCIC8qIERhdGVUaW1lQ2hvb3NlckNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTVDNTlBOUEyNEQwRTFBQTAwM0I4NkUxIC8qIERhdGVU
aW1lQ2hvb3NlclBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1M0VCNjM3MTU5QzU3
MDQwMDAwMUJCNyAvKiBEYXRlVGltZUZvcm1hdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjU1QjNE
QkExMjUxRjEyRDAwM0VGMjY5IC8qIERhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGNkExMkJFMUEwMDkyMzcwMEM2REU3MiAvKiBEZWJ1Z1BhZ2VPdmVybGF5cy5o
IGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9v
c2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCmluZGV4IDU0MjFmZGI0YmY2Yjgx
ZGU5ZjU0ZTFiMjE2NjVhOTc1YmQzYTMzMTUuLjQyNGI5Mjk0OGI0MzE4NDQwYmM1MWM1OGU4MGJl
ZDRiOWNjZjhiNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJP
bmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAK
ICNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKIAorI2luY2x1ZGUgIkNocm9t
ZS5oIgorI2luY2x1ZGUgIkRhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJI
VE1MRGl2RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCkBAIC01Nyw2ICs1OSwyMiBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRU
aW1lSW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50JikKICAgICBEYXRlVGlt
ZUNob29zZXJQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CiAgICAgaWYgKCFlbGVtZW50KCktPnNldHVw
RGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyhwYXJhbWV0ZXJzKSkKICAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKGF1dG8gY2hyb21lID0gdGhpcy0+Y2hyb21lKCkpIHsKKyAgICAgICAgbV9kYXRl
VGltZUNob29zZXIgPSBjaHJvbWUtPmNyZWF0ZURhdGVUaW1lQ2hvb3NlcigqdGhpcyk7CisgICAg
ICAgIGlmIChtX2RhdGVUaW1lQ2hvb3NlcikKKyAgICAgICAgICAgIG1fZGF0ZVRpbWVDaG9vc2Vy
LT5zaG93Q2hvb3NlcihwYXJhbWV0ZXJzKTsKKyAgICB9Cit9CisKK3ZvaWQgQmFzZUNob29zZXJP
bmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmVsZW1lbnREaWRCbHVyKCkKK3sKKyAgICBjbG9zZURh
dGVUaW1lQ2hvb3NlcigpOworfQorCitib29sIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5w
dXRUeXBlOjppc1ByZXNlbnRpbmdBdHRhY2hlZFZpZXcoKSBjb25zdAoreworICAgIHJldHVybiAh
IW1fZGF0ZVRpbWVDaG9vc2VyOwogfQogCiB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1l
SW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKQEAgLTk2LDEwICsxMTQsMTAgQEAgdm9p
ZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGV0YWNoKCkKICAgICBjbG9z
ZURhdGVUaW1lQ2hvb3NlcigpOwogfQogCi12b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1l
SW5wdXRUeXBlOjpkaWRDaG9vc2VWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQordm9pZCBCYXNl
Q2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGlkQ2hvb3NlVmFsdWUoU3RyaW5nVmll
dyB2YWx1ZSkKIHsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKLSAgICBlbGVtZW50KCktPnNldFZh
bHVlKHZhbHVlLCBEaXNwYXRjaElucHV0QW5kQ2hhbmdlRXZlbnQpOworICAgIGVsZW1lbnQoKS0+
c2V0VmFsdWUodmFsdWUudG9TdHJpbmcoKSwgRGlzcGF0Y2hJbnB1dEFuZENoYW5nZUV2ZW50KTsK
IH0KIAogdm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGlkRW5kQ2hv
b3NlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25s
eURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKaW5kZXggYTNmMWNmNWE1YjJhY2EwY2E4ZTk5NTE4MTE2
OTUyMDBhMzM3OGYwZC4uMTRhMWVlMGIzMzIyNTAxNzliODc3MDA0YWVlOTFjYWJlYjUwODAyMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGlt
ZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0
ZUFuZFRpbWVJbnB1dFR5cGUuaApAQCAtNDksMTggKzQ5LDIwIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBkZXRhY2goKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJv
b2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBvdmVycmlkZTsKICAgICB2
b2lkIGhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmKSBvdmVycmlkZTsKKyAgICB2b2lkIGVs
ZW1lbnREaWRCbHVyKCkgZmluYWw7CiAgICAgU2hvdWxkQ2FsbEJhc2VFdmVudEhhbmRsZXIgaGFu
ZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQmKSBvdmVycmlkZTsKICAgICB2b2lkIGhhbmRs
ZUtleXByZXNzRXZlbnQoS2V5Ym9hcmRFdmVudCYpIG92ZXJyaWRlOwogICAgIHZvaWQgaGFuZGxl
S2V5dXBFdmVudChLZXlib2FyZEV2ZW50Jikgb3ZlcnJpZGU7CiAgICAgYm9vbCBhY2Nlc3NLZXlB
Y3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNNb3VzZUZv
Y3VzYWJsZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgaXNQcmVzZW50aW5nQXR0YWNoZWRW
aWV3KCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIC8vIERhdGVUaW1lQ2hvb3NlckNsaWVudCBmdW5j
dGlvbnM6Ci0gICAgdm9pZCBkaWRDaG9vc2VWYWx1ZShjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAg
ICB2b2lkIGRpZENob29zZVZhbHVlKFN0cmluZ1ZpZXcpIGZpbmFsOwogICAgIHZvaWQgZGlkRW5k
Q2hvb3NlcigpIGZpbmFsOwogCi0gICAgUmVmUHRyPERhdGVUaW1lQ2hvb3Nlcj4gbV9kYXRlVGlt
ZUNob29zZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPERhdGVUaW1lQ2hvb3Nlcj4gbV9kYXRlVGlt
ZUNob29zZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCAxOTM4M2U3YmU0YTVmNTk1ZGNlNGM5OGE0N2Qx
NzYyYjM2M2E0MTRjLi4wNDBkODcwYTQwODQwODkxYjdjZTBlMjE5OWJjYjU5NDAwZWQ2NjkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTM3LDYgKzM3LDcg
QEAKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNs
dWRlICJEYXRlVGltZUNob29zZXIuaCIKKyNpbmNsdWRlICJEYXRlVGltZUNob29zZXJQYXJhbWV0
ZXJzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNs
dWRlICJFdmVudE5hbWVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRo
SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCmlu
ZGV4IDQ5MDI2MGMyOGM3OWYzNTA2NzYyN2M4OWRiMDJmOWI2OWJiMGVlMDQuLjk5Y2ZjNGNmZTIw
M2NlNGU2NDA5NzBkYzllOWNlNjlkYjVlZjc4ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJ
bnB1dFR5cGUuY3BwCkBAIC0xMjksNiArMTI5LDEwIEBAIGJvb2wgTW9udGhJbnB1dFR5cGU6Omlz
TW9udGhGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgTW9udGhJbnB1
dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmKQoreworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9N
b250aElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oCmlu
ZGV4IDBjY2E5MjJhNTNjNDBkZjE1OGRjZmIyYzYwNjFkOGEzOGM4NGFmODQuLjRiYmQxMWRkMGUw
Mjc0MDk1OTdiOTEzYWQ5YmEzZDg0OGUwNmY3OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTW9udGhJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5w
dXRUeXBlLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHJpdmF0ZToKICAgICBPcHRpb25hbDxEYXRlQ29t
cG9uZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRzKGNvbnN0IFN0cmluZ1ZpZXcmKSBjb25zdCBv
dmVycmlkZTsKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gc2V0TWlsbGlzZWNvbmRUb0Rh
dGVDb21wb25lbnRzKGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc01vbnRoRmll
bGQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZl
bnQmKSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RpbWVJbnB1dFR5cGUuY3BwCmluZGV4IDBiZDJkNGJjZTlhNThlYjc5Njc5N2IzODExMDA4
NDVhZTVkNjU2ZmQuLjQzODJmODU4YWQ0MmQ5ZGVkMDEzZWZjMWY5N2Y5NTBlMWRjMWY0MTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcApAQCAtMTA0LDYgKzEwNCwxMCBAQCBi
b29sIFRpbWVJbnB1dFR5cGU6OmlzVGltZUZpZWxkKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAordm9pZCBUaW1lSW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50JikK
K3sKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9U
aW1lSW5wdXRUeXBlLmgKaW5kZXggODQxNjZiMDk1YWYyMTg4Y2E4ZTA3NTZiZTdlNTU3MTFiMTJk
OGVkNC4uMWU4NjBjMzE3ZmZkYzAxYzljZWM2ZmZiNGUzZDM0MDI5YzAzZmZkYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKQEAgLTQ4LDYgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICBP
cHRpb25hbDxEYXRlQ29tcG9uZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRzKGNvbnN0IFN0cmlu
Z1ZpZXcmKSBjb25zdCBvdmVycmlkZTsKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gc2V0
TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
Ym9vbCBpc1RpbWVGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgaGFuZGxlRE9NQWN0
aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKaW5kZXggYjJiYjI0M2I5MDVkODQx
NWIwMzRjOTQwNmU0YmZhMzgyMWIzOWJhMy4uZmZhNzY1Y2NiNTFhM2ZmZWNiMWYzNGQ1NTQyNTEy
YWM1YThhM2VjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwCkBAIC04Miw2
ICs4MiwxMCBAQCBib29sIFdlZWtJbnB1dFR5cGU6OmlzV2Vla0ZpZWxkKCkgY29uc3QKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBXZWVrSW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2
ZW50KEV2ZW50JikKK3sKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKaW5kZXggZDNiYTE1MTMzZTczNDExZWE4MDU0YzAz
M2NmMTA2YTVjMzY2YTNhNy4uNTA5ODE3NDRiZmU0ZWJiNzEzYWZlYjg5YjZmMGRhZGE4NjE1YWI4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgcHJp
dmF0ZToKICAgICBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRz
KGNvbnN0IFN0cmluZ1ZpZXcmKSBjb25zdCBvdmVycmlkZTsKICAgICBPcHRpb25hbDxEYXRlQ29t
cG9uZW50cz4gc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgYm9vbCBpc1dlZWtGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQg
aGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCAw
YzE0YWU2OTBjZDNmNDZhNjNiYWU2MTYwODU0ZjFhMDNiODExYjQxLi4yZThhNGVjNmU3MDJkOGQw
YzAxMzlhNDIzYmZlNGIyYWMwMTMwOGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmNwcApAQCAtNDkxLDYgKzQ5MSwxNSBAQCBzdGQ6OnVuaXF1ZV9wdHI8RGF0YUxpc3RTdWdn
ZXN0aW9uUGlja2VyPiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlRGF0YUxpc3RTdWdnZQogCiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorCitzdGQ6OnVu
aXF1ZV9wdHI8RGF0ZVRpbWVDaG9vc2VyPiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlRGF0ZVRp
bWVDaG9vc2VyKERhdGVUaW1lQ2hvb3NlckNsaWVudCYpCit7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKKyNlbmRpZgorCiB2b2lkIEVtcHR5Q2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJh
bWUmLCBGaWxlQ2hvb3NlciYpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
aW5kZXggNzFkNGU1NDM5MWI2MDU2MjVjMWVjZGM0ZTk3YTdhMzAxZDAxMzc5My4uM2U5ZGU3ZDI2
NmE5ZGVhNmUxYTAzNDQ2YTU5ZWY3ZjQwMDYwOTk0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuaApAQCAtMTM2LDYgKzEzNiwxMCBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6
IHB1YmxpYyBDaHJvbWVDbGllbnQgewogICAgIGJvb2wgY2FuU2hvd0RhdGFMaXN0U3VnZ2VzdGlv
bkxhYmVscygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRl
VGltZUNob29zZXI+IGNyZWF0ZURhdGVUaW1lQ2hvb3NlcihEYXRlVGltZUNob29zZXJDbGllbnQm
KSBmaW5hbDsKKyNlbmRpZgorCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hv
b3NlciYpIGZpbmFsOwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoU2hhcmVEYXRhV2l0aFBhcnNl
ZFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogICAgIHZvaWQg
bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyJikg
ZmluYWwgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggNTQ1MzdhZGJlNWRhNmNmNGI5MzIx
ZjAwODNiNThmYWJhNTBmZjA2Zi4uZGIwNzBiY2M3ZTI2NjA0NzdmYzBjNmMyNTgwYTU4YmQxMWVj
MTE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtNjEsNiArNjEsMTAgQEAKICNpbmNsdWRl
ICJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVf
QU5EX1RJTUVfSU5QVVRfVFlQRVMpCisjaW5jbHVkZSAiRGF0ZVRpbWVDaG9vc2VyLmgiCisjZW5k
aWYKKwogI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKEdSQVBISUNTX0NPTlRFWFRfR0wpCiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgiCiAjZW5kaWYKQEAgLTQ0
Miw2ICs0NDYsMjEgQEAgc3RkOjp1bmlxdWVfcHRyPERhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcj4g
Q2hyb21lOjpjcmVhdGVEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIKIAogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKworc3RkOjp1bmlxdWVfcHRyPERhdGVU
aW1lQ2hvb3Nlcj4gQ2hyb21lOjpjcmVhdGVEYXRlVGltZUNob29zZXIoRGF0ZVRpbWVDaG9vc2Vy
Q2xpZW50JiBjbGllbnQpCit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBVTlVTRURf
UEFSQU0oY2xpZW50KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyNlbHNlCisgICAgbm90aWZ5UG9w
dXBPcGVuaW5nT2JzZXJ2ZXJzKCk7CisgICAgcmV0dXJuIG1fY2xpZW50LmNyZWF0ZURhdGVUaW1l
Q2hvb3NlcihjbGllbnQpOworI2VuZGlmCit9CisKKyNlbmRpZgorCiB2b2lkIENocm9tZTo6cnVu
T3BlblBhbmVsKEZyYW1lJiBmcmFtZSwgRmlsZUNob29zZXImIGZpbGVDaG9vc2VyKQogewogICAg
IG5vdGlmeVBvcHVwT3BlbmluZ09ic2VydmVycygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggMjA3
MzRlNDFiNTI0ODUwYWJjOWNiNTM1NzQyODA5NjgzMTljYTI1My4uOTRiOTUyZDZlOGYzY2ExOGM5
M2IxOTEwZTUxM2E3OTI0Yjc0MDZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC0xNTcsNiArMTU3
LDEwIEBAIHB1YmxpYzoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YUxpc3RTdWdnZXN0aW9uUGlj
a2VyPiBjcmVhdGVEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIoRGF0YUxpc3RTdWdnZXN0aW9uc0Ns
aWVudCYpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0ZVRpbWVDaG9vc2VyPiBjcmVhdGVEYXRlVGltZUNob29z
ZXIoRGF0ZVRpbWVDaG9vc2VyQ2xpZW50Jik7CisjZW5kaWYKKwogICAgIHZvaWQgcnVuT3BlblBh
bmVsKEZyYW1lJiwgRmlsZUNob29zZXImKTsKICAgICB2b2lkIHNob3dTaGFyZVNoZWV0KFNoYXJl
RGF0YVdpdGhQYXJzZWRVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAg
ICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxv
YWRlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggYzBhMGQzMGJjZmRmM2Y0
MWNmMGU4ZDdmM2RlNGMyNGMwMWRiNjc5OC4uMTM2NGIzYWVhNmIxMjNiMDYxNDFlZmY0YzFhNWNj
NzFjY2M5OWYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0yODksNiArMjg5
LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2hvd0RhdGFMaXN0U3VnZ2VzdGlv
bkxhYmVscygpIGNvbnN0ID0gMDsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVf
SU5QVVRfVFlQRVMpCisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8RGF0ZVRpbWVDaG9vc2Vy
PiBjcmVhdGVEYXRlVGltZUNob29zZXIoRGF0ZVRpbWVDaG9vc2VyQ2xpZW50JikgPSAwOworI2Vu
ZGlmCisKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lJiwgRmlsZUNob29zZXIm
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNob3dTaGFyZVNoZWV0KFNoYXJlRGF0YVdpdGhQYXJz
ZWRVUkwmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spIHsg
Y2FsbGJhY2soZmFsc2UpOyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9EYXRlVGltZUNob29zZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGVUaW1l
Q2hvb3Nlci5oCmluZGV4IDIzYjA1ZDdjODI0ZjU1NjhjOGY4N2Y5Nzg1Mzc0YWJjMTNhMDEwZWIu
LjBmNjdjZTQ4MGFkNjJhOTNmNThkOTRlMTJhNWU5MTI0Njc4YjM2NzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGVUaW1lQ2hvb3Nlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0RhdGVUaW1lQ2hvb3Nlci5oCkBAIC0yOCw0MyArMjgsMjMgQEAKICAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBEYXRlVGltZUNob29zZXJfaAotI2RlZmluZSBEYXRl
VGltZUNob29zZXJfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9J
TlBVVF9UWVBFUykKLSNpbmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBEYXRlVGltZUNob29zZXJQ
YXJhbWV0ZXJzIHsKLSAgICBBdG9tU3RyaW5nIHR5cGU7Ci0gICAgSW50UmVjdCBhbmNob3JSZWN0
SW5Sb290VmlldzsKLSAgICAvLyBMb2NhbGUgbmFtZSBmb3Igd2hpY2ggdGhlIGNob29zZXIgc2hv
dWxkIGJlIGxvY2FsaXplZC4gVGhpcwotICAgIC8vIG1pZ2h0IGJlIGFuIGludmFsaWQgbmFtZSBi
ZWNhdXNlIGl0IGNvbWVzIGZyb20gSFRNTCBsYW5nCi0gICAgLy8gYXR0cmlidXRlcy4KLSAgICBB
dG9tU3RyaW5nIGxvY2FsZTsKLSAgICBTdHJpbmcgY3VycmVudFZhbHVlOwotICAgIFZlY3RvcjxT
dHJpbmc+IHN1Z2dlc3Rpb25WYWx1ZXM7Ci0gICAgVmVjdG9yPFN0cmluZz4gbG9jYWxpemVkU3Vn
Z2VzdGlvblZhbHVlczsKLSAgICBWZWN0b3I8U3RyaW5nPiBzdWdnZXN0aW9uTGFiZWxzOwotICAg
IGRvdWJsZSBtaW5pbXVtOwotICAgIGRvdWJsZSBtYXhpbXVtOwotICAgIGRvdWJsZSBzdGVwOwot
ICAgIGRvdWJsZSBzdGVwQmFzZTsKLSAgICBib29sIHJlcXVpcmVkOwotICAgIGJvb2wgaXNBbmNo
b3JFbGVtZW50UlRMOwotfTsKK3N0cnVjdCBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzOwogCi0v
LyBGb3IgcGlja2VycyBsaWtlIGNvbG9yIHBpY2tlcnMgYW5kIGRhdGUgcGlja2Vycy4KLWNsYXNz
IERhdGVUaW1lQ2hvb3NlciA6IHB1YmxpYyBSZWZDb3VudGVkPERhdGVUaW1lQ2hvb3Nlcj4gewor
Y2xhc3MgRGF0ZVRpbWVDaG9vc2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPERhdGVUaW1lQ2hv
b3Nlcj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHZpcnR1
YWwgfkRhdGVUaW1lQ2hvb3NlcigpID0gZGVmYXVsdDsKIAogICAgIHZpcnR1YWwgdm9pZCBlbmRD
aG9vc2VyKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzaG93Q2hvb3Nlcihjb25zdCBEYXRlVGlt
ZUNob29zZXJQYXJhbWV0ZXJzJikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
I2VuZGlmCi0jZW5kaWYgLy8gRGF0ZVRpbWVDaG9vc2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0RhdGVUaW1lQ2hvb3NlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRGF0ZVRpbWVDaG9vc2VyQ2xpZW50LmgKaW5kZXggZjMxOTE0ZjMwMTQxODI0YTVk
ZmYwZmI2OTJhMWFiNTg2NGY1ODY1Yi4uMTFkMTNlY2QzZjAwNjIwYjQ3ZmE4YTAxYzRkZjQyM2M0
MzRmZDdlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZVRpbWVDaG9v
c2VyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZVRpbWVDaG9vc2Vy
Q2xpZW50LmgKQEAgLTI4LDEwICsyOCwxMCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZu
ZGVmIERhdGVUaW1lQ2hvb3NlckNsaWVudF9oCi0jZGVmaW5lIERhdGVUaW1lQ2hvb3NlckNsaWVu
dF9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVT
KQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERhdGVUaW1lQ2hvb3NlckNsaWVudCB7
CkBAIC0zOSwxMSArMzksMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkRhdGVUaW1lQ2hvb3Nl
ckNsaWVudCgpID0gZGVmYXVsdDsKIAogICAgIC8vIENhbGxlZCB3aGVuIHVzZXIgcGlja2VkIGEg
dmFsdWUuCi0gICAgdmlydHVhbCB2b2lkIGRpZENob29zZVZhbHVlKGNvbnN0IFN0cmluZyYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hvb3NlVmFsdWUoU3RyaW5nVmlldykgPSAwOwogICAg
IC8vIENhbGxlZCB3aGVuIGNob29zZXIgaGFzIGVuZGVkLgogICAgIHZpcnR1YWwgdm9pZCBkaWRF
bmRDaG9vc2VyKCkgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotI2VuZGlmCi0j
ZW5kaWYgLy8gRGF0ZVRpbWVDaG9vc2VyQ2xpZW50X2gKKworI2VuZGlmIC8vIEVOQUJMRShEQVRF
X0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3ZTIyMjdmZjFhNTgyNTVl
ZDM1MTA3YjgzNWU3MTdjYTY0NDhmODMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9EYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzLmgKQEAgLTAsMCArMSwxMzUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lO
UFVUX1RZUEVTKQorCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitzdHJ1Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyB7CisgICAgQXRvbVN0cmluZyB0
eXBlOworICAgIEludFJlY3QgYW5jaG9yUmVjdEluUm9vdFZpZXc7CisgICAgLy8gTG9jYWxlIG5h
bWUgZm9yIHdoaWNoIHRoZSBjaG9vc2VyIHNob3VsZCBiZSBsb2NhbGl6ZWQuCisgICAgLy8gVGhp
cyBtaWdodCBiZSBhbiBpbnZhbGlkIG5hbWUgYmVjYXVzZSBpdCBjb21lcyBmcm9tIEhUTUwgbGFu
ZyBhdHRyaWJ1dGVzLgorICAgIEF0b21TdHJpbmcgbG9jYWxlOworICAgIFN0cmluZyBjdXJyZW50
VmFsdWU7CisgICAgVmVjdG9yPFN0cmluZz4gc3VnZ2VzdGlvblZhbHVlczsKKyAgICBWZWN0b3I8
U3RyaW5nPiBsb2NhbGl6ZWRTdWdnZXN0aW9uVmFsdWVzOworICAgIFZlY3RvcjxTdHJpbmc+IHN1
Z2dlc3Rpb25MYWJlbHM7CisgICAgZG91YmxlIG1pbmltdW07CisgICAgZG91YmxlIG1heGltdW07
CisgICAgZG91YmxlIHN0ZXA7CisgICAgZG91YmxlIHN0ZXBCYXNlOworICAgIGJvb2wgcmVxdWly
ZWQ7CisgICAgYm9vbCBpc0FuY2hvckVsZW1lbnRSVEw7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnM+IGRlY29k
ZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBEYXRlVGlt
ZUNob29zZXJQYXJhbWV0ZXJzOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAg
ICBlbmNvZGVyIDw8IHR5cGU7CisgICAgZW5jb2RlciA8PCBhbmNob3JSZWN0SW5Sb290VmlldzsK
KyAgICBlbmNvZGVyIDw8IGxvY2FsZTsKKyAgICBlbmNvZGVyIDw8IGN1cnJlbnRWYWx1ZTsKKyAg
ICBlbmNvZGVyIDw8IHN1Z2dlc3Rpb25WYWx1ZXM7CisgICAgZW5jb2RlciA8PCBsb2NhbGl6ZWRT
dWdnZXN0aW9uVmFsdWVzOworICAgIGVuY29kZXIgPDwgc3VnZ2VzdGlvbkxhYmVsczsKKyAgICBl
bmNvZGVyIDw8IG1pbmltdW07CisgICAgZW5jb2RlciA8PCBtYXhpbXVtOworICAgIGVuY29kZXIg
PDwgc3RlcDsKKyAgICBlbmNvZGVyIDw8IHN0ZXBCYXNlOworICAgIGVuY29kZXIgPDwgcmVxdWly
ZWQ7CisgICAgZW5jb2RlciA8PCBpc0FuY2hvckVsZW1lbnRSVEw7Cit9CisKK3RlbXBsYXRlPGNs
YXNzIERlY29kZXI+CitPcHRpb25hbDxEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzPiBEYXRlVGlt
ZUNob29zZXJQYXJhbWV0ZXJzOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBBdG9t
U3RyaW5nIHR5cGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0eXBlKSkKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgIEludFJlY3QgYW5jaG9yUmVjdEluUm9vdFZpZXc7Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShhbmNob3JSZWN0SW5Sb290VmlldykpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBBdG9tU3RyaW5nIGxvY2FsZTsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGxvY2FsZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBTdHJpbmcgY3VycmVudFZhbHVlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY3VycmVudFZh
bHVlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIFZlY3RvcjxTdHJpbmc+
IHN1Z2dlc3Rpb25WYWx1ZXM7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdWdnZXN0aW9uVmFs
dWVzKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIFZlY3RvcjxTdHJpbmc+
IGxvY2FsaXplZFN1Z2dlc3Rpb25WYWx1ZXM7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShsb2Nh
bGl6ZWRTdWdnZXN0aW9uVmFsdWVzKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIFZlY3RvcjxTdHJpbmc+IHN1Z2dlc3Rpb25MYWJlbHM7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShzdWdnZXN0aW9uTGFiZWxzKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIGRvdWJsZSBtaW5pbXVtOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWluaW11bSkpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBkb3VibGUgbWF4aW11bTsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKG1heGltdW0pKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgZG91YmxlIHN0ZXA7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGVwKSkKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGRvdWJsZSBzdGVwQmFzZTsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHN0ZXBCYXNlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIGJvb2wgcmVxdWlyZWQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXF1aXJl
ZCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBib29sIGlzQW5jaG9yRWxl
bWVudFJUTDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGlzQW5jaG9yRWxlbWVudFJUTCkpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4ge3sgV1RGTW92ZSh0eXBl
KSwgYW5jaG9yUmVjdEluUm9vdFZpZXcsIFdURk1vdmUobG9jYWxlKSwgV1RGTW92ZShjdXJyZW50
VmFsdWUpLCBXVEZNb3ZlKHN1Z2dlc3Rpb25WYWx1ZXMpLCBXVEZNb3ZlKGxvY2FsaXplZFN1Z2dl
c3Rpb25WYWx1ZXMpLCBXVEZNb3ZlKHN1Z2dlc3Rpb25MYWJlbHMpLCBtaW5pbXVtLCBtYXhpbXVt
LCBzdGVwLCBzdGVwQmFzZSwgcmVxdWlyZWQsIGlzQW5jaG9yRWxlbWVudFJUTCB9fTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGFkNzgyYzJl
NjJmNzJmN2VlYTg1YzMxYjAwZjdiYTIwOWYyMmI0OTUuLjkxMzgyNWYyZDAzODBmZmRkZTQxNjQ0
ODUyZWE0YjJkMTZiMDczZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMzA1LDYgKzMwNSw3IEBAIFVJUHJv
Y2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmNwcAogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQ
cm94eS5jcHAKIFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHlDbGllbnQuY3BwCiBVSVBy
b2Nlc3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmNwcAorVUlQcm9jZXNzL1dlYkRh
dGVUaW1lUGlja2VyLmNwcAogVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCiBVSVBy
b2Nlc3MvV2ViRm9ybUNsaWVudC5jcHAKIFVJUHJvY2Vzcy9XZWJGb3JtU3VibWlzc2lvbkxpc3Rl
bmVyUHJveHkuY3BwCkBAIC02MzAsNiArNjMxLDcgQEAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbG9y
Q2hvb3Nlci5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGll
bnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFMaXN0U3VnZ2VzdGlvblBp
Y2tlci5jcHAKK1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0ZVRpbWVDaG9vc2VyLmNw
cAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5j
cHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
CmluZGV4IDBjYjA0MzQ1YzQxOGVjMThlZTVlYWMxZDZmYTFjNzEwYjA5ZDM4NjkuLjJjMDViMDJj
YWRjYTUwOGI2NmYxNTM3ZTRjYTliMTY2YmE5NWIzNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
QEAgLTQ5Nyw2ICs0OTcsNyBAQCBVSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLm1tCiBV
SVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KIFVJUHJvY2Vzcy9tYWMvV2Vi
Q29va2llTWFuYWdlclByb3h5TWFjLm1tCiBVSVByb2Nlc3MvbWFjL1dlYkRhdGFMaXN0U3VnZ2Vz
dGlvbnNEcm9wZG93bk1hYy5tbQorVUlQcm9jZXNzL21hYy9XZWJEYXRlVGltZVBpY2tlck1hYy5t
bQogVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KIFVJUHJvY2Vzcy9tYWMvV2ViUG9w
dXBNZW51UHJveHlNYWMubW0KIFVJUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1Byb3h5TWFjLm1tCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggOGM2YzU3M2NmZDczNDlkMGExMWFm
YjRiMzhmOTY5MTczYWQ2MGJiNC4uYjUxMTcwNDdhYjBhZjMxMzlkODI1Mzk5MmI1NDY2YmE4NTkw
Mjk2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1ZGUgIldlYkNvbG9yUGlja2Vy
LmgiCiAjaW5jbHVkZSAiV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmgiCisjaW5jbHVk
ZSAiV2ViRGF0ZVRpbWVQaWNrZXIuaCIKICNpbmNsdWRlICJXZWJQb3B1cE1lbnVQcm94eS5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQWx0
ZXJuYXRpdmVUZXh0Q2xpZW50Lmg+CkBAIC0xNTgsNiArMTU5LDEwIEBAIGNsYXNzIFdlYkNvbG9y
UGlja2VyOwogY2xhc3MgV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duOwogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKK2NsYXNzIFdlYkRhdGVUaW1l
UGlja2VyOworI2VuZGlmCisKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiBjbGFzcyBXZWJG
dWxsU2NyZWVuTWFuYWdlclByb3h5Q2xpZW50OwogI2VuZGlmCkBAIC0zMzksNiArMzQ0LDEwIEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlZlB0cjxXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRv
d24+IGNyZWF0ZURhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bihXZWJQYWdlUHJveHkmKSA9IDA7
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorICAgIHZp
cnR1YWwgUmVmUHRyPFdlYkRhdGVUaW1lUGlja2VyPiBjcmVhdGVEYXRlVGltZVBpY2tlcihXZWJQ
YWdlUHJveHkmKSA9IDA7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZpcnR1
YWwgUmVmPFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGU+IGNyZWF0ZVZhbGlkYXRpb25CdWJibGUo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlOjpT
ZXR0aW5ncyYpID0gMDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViRGF0ZVRpbWVQaWNrZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRGF0
ZVRpbWVQaWNrZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiOGJkYzVjNTdkY2RmMWViMDgyN2VlNWRhNjQz
MTAzYjBiM2ZkMDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJEYXRlVGltZVBpY2tlci5jcHAKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJEYXRlVGltZVBpY2tlci5oIgorCisjaWYgRU5B
QkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKKyNpbmNsdWRlICJXZWJQYWdlUHJveHku
aCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYkRhdGVUaW1lUGlja2VyOjpXZWJEYXRlVGlt
ZVBpY2tlcihXZWJQYWdlUHJveHkmIHBhZ2UpCisgICAgOiBtX3BhZ2UobWFrZVdlYWtQdHIocGFn
ZSkpCit7Cit9CisKK1dlYkRhdGVUaW1lUGlja2VyOjp+V2ViRGF0ZVRpbWVQaWNrZXIoKQorewor
fQorCit2b2lkIFdlYkRhdGVUaW1lUGlja2VyOjplbmRQaWNrZXIoKQoreworICAgIGlmIChhdXRv
IHBhZ2UgPSBzdGQ6OmV4Y2hhbmdlKG1fcGFnZSwgbnVsbHB0cikpCisgICAgICAgIHBhZ2UtPmRp
ZEVuZERhdGVUaW1lUGlja2VyKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJEYXRlVGltZVBpY2tlci5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViRGF0ZVRpbWVQaWNrZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZTAyMmNkZTI0ZGNhOGMx
NDU5Y2MyOWVkMDQyNzBlNmIyNjQyZWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViRGF0ZVRpbWVQaWNrZXIuaApAQCAtMCwwICsxLDU2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBF
UykKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRl
cnM7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlUHJveHk7CisKK2Ns
YXNzIFdlYkRhdGVUaW1lUGlja2VyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViRGF0ZVRpbWVQaWNr
ZXI+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViRGF0ZVRpbWVQaWNrZXI+IHsKK3B1YmxpYzoK
KyAgICB2aXJ0dWFsIH5XZWJEYXRlVGltZVBpY2tlcigpOworCisgICAgdmlydHVhbCB2b2lkIGVu
ZFBpY2tlcigpOworICAgIHZpcnR1YWwgdm9pZCBzaG93RGF0ZVRpbWVQaWNrZXIoV2ViQ29yZTo6
RGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyYmKSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICBleHBs
aWNpdCBXZWJEYXRlVGltZVBpY2tlcihXZWJQYWdlUHJveHkmKTsKKworICAgIFdlYWtQdHI8V2Vi
UGFnZVByb3h5PiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMGVkN2ZjNjYxNTBhOTI0ZDBjYWE0YjBkOThkOGU2
Y2M2MjA4Y2EzOC4uZTdkMjhiMTIzMjZlOGJhN2E1ZDM5ODEzM2MyYmMwZjU1MjA0OGI4NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yOTMsNiArMjkzLDEw
IEBACiAjaW5jbHVkZSAiRGVmYXVsdFdlYkJyb3dzZXJDaGVja3MuaCIKICNlbmRpZgogCisjaWYg
RU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisjaW5jbHVkZSAiV2ViRGF0ZVRpbWVQ
aWNrZXIuaCIKKyNlbmRpZgorCiAvLyBUaGlzIGNvbnRyb2xzIHdoYXQgc3RyYXRlZ3kgd2UgdXNl
IGZvciBtb3VzZSB3aGVlbCBjb2FsZXNjaW5nLgogI2RlZmluZSBNRVJHRV9XSEVFTF9FVkVOVFMg
MQogCkBAIC02MTcwLDYgKzYxNzQsNDMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFNlbGVjdE9w
dGlvbihjb25zdCBTdHJpbmcmIHNlbGVjdGVkT3B0aW9uKQogCiAjZW5kaWYKIAorI2lmIEVOQUJM
RShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0Rh
dGVUaW1lUGlja2VyKFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMmJiBwYXJhbXMp
Cit7CisgICAgaWYgKCFtX2RhdGVUaW1lUGlja2VyKQorICAgICAgICBtX2RhdGVUaW1lUGlja2Vy
ID0gcGFnZUNsaWVudCgpLmNyZWF0ZURhdGVUaW1lUGlja2VyKCp0aGlzKTsKKworICAgIG1fZGF0
ZVRpbWVQaWNrZXItPnNob3dEYXRlVGltZVBpY2tlcihXVEZNb3ZlKHBhcmFtcykpOworfQorCit2
b2lkIFdlYlBhZ2VQcm94eTo6ZW5kRGF0ZVRpbWVQaWNrZXIoKQoreworICAgIGlmICghbV9kYXRl
VGltZVBpY2tlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9kYXRlVGltZVBpY2tlci0+ZW5k
UGlja2VyKCk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaG9vc2VEYXRlKFN0cmluZ1Zp
ZXcgZGF0ZSkKK3sKKyAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZENob29zZURhdGUoZGF0ZS50b1N0
cmluZygpKSk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRFbmREYXRlVGltZVBpY2tlcigp
Cit7CisgICAgbV9kYXRlVGltZVBpY2tlciA9IG51bGxwdHI7CisgICAgaWYgKCFoYXNSdW5uaW5n
UHJvY2VzcygpKQorICAgICAgICByZXR1cm47CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpEaWRFbmREYXRlVGltZVBpY2tlcigpKTsKK30KKworI2VuZGlmCisKIFdlYkluc3BlY3RvclBy
b3h5KiBXZWJQYWdlUHJveHk6Omluc3BlY3RvcigpIGNvbnN0CiB7CiAgICAgaWYgKGlzQ2xvc2Vk
KCkpCkBAIC05MzUxLDYgKzkzOTIsMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsb3NlT3Zlcmxh
eWVkVmlld3MoKQogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAgIGVuZENvbG9yUGlj
a2VyKCk7CiAjZW5kaWYKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQor
ICAgIGVuZERhdGVUaW1lUGlja2VyKCk7CisjZW5kaWYKIH0KIAogI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDZhYzA3NTYx
MDYzOTQ0MzFjZGIzMGJjZDUzYzU0MmU1MTQ5NjE5MDQuLjFlMzdlNDQ0ZTQwOGZhODU3OTRjYjJm
MzkzMzQyY2U2MjIzY2I1YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CkBAIC0yNDksNiArMjQ5LDcgQEAgc3RydWN0IEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXI7CiBz
dHJ1Y3QgQ29tcG9zaXRpb25IaWdobGlnaHQ7CiBzdHJ1Y3QgQ29udGVudFJ1bGVMaXN0UmVzdWx0
czsKIHN0cnVjdCBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbjsKK3N0cnVjdCBEYXRlVGlt
ZUNob29zZXJQYXJhbWV0ZXJzOwogc3RydWN0IERpY3Rpb25hcnlQb3B1cEluZm87CiBzdHJ1Y3Qg
RHJhZ0l0ZW07CiBzdHJ1Y3QgRWxlbWVudENvbnRleHQ7CkBAIC00MTgsNiArNDE5LDEwIEBAIHVz
aW5nIERyYXdUb1BERkNhbGxiYWNrID0gR2VuZXJpY0NhbGxiYWNrPGNvbnN0IElQQzo6RGF0YVJl
ZmVyZW5jZSY+OwogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8Ym9vbCwgYm9vbCwgU3RyaW5nLCBk
b3VibGUsIGRvdWJsZSwgdWludDY0X3Q+IE5vd1BsYXlpbmdJbmZvQ2FsbGJhY2s7CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorY2xhc3MgV2ViRGF0ZVRp
bWVQaWNrZXI7CisjZW5kaWYKKwogdXNpbmcgU3BlbGxEb2N1bWVudFRhZyA9IGludDY0X3Q7CiAK
IGNsYXNzIFdlYlBhZ2VQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6
OlR5cGU6OlBhZ2U+CkBAIC0xNjQ3LDYgKzE2NTIsMTEgQEAgcHVibGljOgogICAgIHZvaWQgZGlk
Q2xvc2VTdWdnZXN0aW9ucygpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9J
TlBVVF9UWVBFUykKKyAgICB2b2lkIGRpZENob29zZURhdGUoU3RyaW5nVmlldyk7CisgICAgdm9p
ZCBkaWRFbmREYXRlVGltZVBpY2tlcigpOworI2VuZGlmCisKICAgICB2b2lkIHVwZGF0ZUN1cnJl
bnRNb2RpZmllclN0YXRlKCk7CiAKICNpZiBIQVZFKFBFTkNJTEtJVCkKQEAgLTE5OTgsNiArMjAw
OCwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgZW5kRGF0YUxpc3RTdWdnZXN0aW9ucygpOwogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKyAgICB2b2lkIHNo
b3dEYXRlVGltZVBpY2tlcihXZWJDb3JlOjpEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzJiYpOwor
ICAgIHZvaWQgZW5kRGF0ZVRpbWVQaWNrZXIoKTsKKyNlbmRpZgorCiAgICAgdm9pZCBjbG9zZU92
ZXJsYXllZFZpZXdzKCk7CiAKICAgICB2b2lkIGNvbXBvc2l0aW9uV2FzQ2FuY2VsZWQoKTsKQEAg
LTI2MDQsNiArMjYxOSw5IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQp
CiAgICAgUmVmUHRyPFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bj4gbV9kYXRhTGlzdFN1
Z2dlc3Rpb25zRHJvcGRvd247CiAjZW5kaWYKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBV
VF9UWVBFUykKKyAgICBSZWZQdHI8V2ViRGF0ZVRpbWVQaWNrZXI+IG1fZGF0ZVRpbWVQaWNrZXI7
CisjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZWZQdHI8V2ViQ29yZTo6VmFsaWRh
dGlvbkJ1YmJsZT4gbV92YWxpZGF0aW9uQnViYmxlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNmQ4ZDhkMGFhMzZk
YmIzNjA4NmJmM2U0MWRkMGIxMTUzYTcxODNlZi4uM2M1NTE2NWVlNzI0YTFiMGI4ZTE4YTUyOTkz
ZDExMDY5OWE4YTJkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtOTgsNiArOTgsMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVBy
b3h5IHsKICAgICBFbmREYXRhTGlzdFN1Z2dlc3Rpb25zKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorICAgIFNob3dEYXRlVGltZVBpY2tlcihzdHJ1
Y3QgV2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyBwYXJhbXMpOworICAgIEVuZERh
dGVUaW1lUGlja2VyKCk7CisjZW5kaWYKKwogICAgICMgUG9saWN5IG1lc3NhZ2VzCiAgICAgRGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0
cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgU3RyaW5nIGRvd25sb2FkQXR0cmli
dXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogICAg
IERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2
aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRp
bmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXI+
IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1
ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVy
ZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3Bv
bnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCA1
MDZhYjMwNzcyZTllOThlMTExYzg3YzhlN2RiZWYwMDA0NTBlM2EwLi44NmE4NWE2N2JmMWYwMzFj
YzAwYjE4MzE3MzViNmNmZWMyOWM3NjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMTI0LDYgKzEyNCwxMCBAQCBwcml2YXRlOgog
ICAgIFJlZlB0cjxXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24+IGNyZWF0ZURhdGFMaXN0
U3VnZ2VzdGlvbnNEcm9wZG93bihXZWJQYWdlUHJveHkmKSBmaW5hbDsKICNlbmRpZgogCisjaWYg
RU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisgICAgUmVmUHRyPFdlYkRhdGVUaW1l
UGlja2VyPiBjcmVhdGVEYXRlVGltZVBpY2tlcihXZWJQYWdlUHJveHkmKSBmaW5hbDsKKyNlbmRp
ZgorCiAgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
PiwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKSBvdmVycmlkZTsKICAgICB2
b2lkIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlz
c2FsQW5pbWF0aW9uKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFRleHRJbmRpY2F0b3JBbmltYXRp
b25Qcm9ncmVzcyhmbG9hdCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggMTU1ZmZlMWEwMWIyZjc0OWY0ODcwM2U5
YzM5ZDgzNzI4NzM3OTEyYy4uN2IwYTMxNjNjMjhlM2MyMjM1ZTkwNTI4NjA3MWFiZjg2MzMyMzRi
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5tbQpAQCAtODU4LDYgKzg1OCwxMyBAQCBSZWZQdHI8V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ry
b3Bkb3duPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9ucwogfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKK1JlZlB0cjxXZWJE
YXRlVGltZVBpY2tlcj4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZURhdGVUaW1lUGlja2VyKFdlYlBh
Z2VQcm94eSYpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJM
RShEUkFHX1NVUFBPUlQpCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3JtRHJhZ09wZXJh
dGlvbihib29sIGhhbmRsZWQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbE1hYy5oCmluZGV4IDViMGQzMTcwMjAzNmI2ZjJjZGE3NzI2YjY5MzcyZDlh
ZWU4Mjg1MmMuLmQxNzFjN2FiNWFiMzI3MjgxY2QyMDYwMzUyNGQxODFhZTU0ZTMxZjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCkBAIC0x
NDMsNiArMTQzLDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkRhdGFMaXN0U3VnZ2VzdGlv
bnNEcm9wZG93bj4gY3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duKFdlYlBhZ2VQcm94
eSYpIG92ZXJyaWRlOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9U
WVBFUykKKyAgICBSZWZQdHI8V2ViRGF0ZVRpbWVQaWNrZXI+IGNyZWF0ZURhdGVUaW1lUGlja2Vy
KFdlYlBhZ2VQcm94eSYpIG92ZXJyaWRlOworI2VuZGlmCisKICAgICBSZWY8V2ViQ29yZTo6VmFs
aWRhdGlvbkJ1YmJsZT4gY3JlYXRlVmFsaWRhdGlvbkJ1YmJsZShjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGU6OlNldHRpbmdzJikgZmluYWw7CiAK
ICAgICB2b2lkIHNldFRleHRJbmRpY2F0b3IoUmVmPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+LCBX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IDRkMzY4
NzcxMGM5MjEyYjQ3NjRkZWVhNWVmNWVhY2EwNzgzZDVkYTQuLmZhN2Q5MmY1OWNlYmYxZWNmZWZl
NzIyMGMwOTJhM2ZlN2YwOGMwYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGxNYWMubW0KQEAgLTUyLDYgKzUyLDcgQEAKICNpbXBvcnQgIldlYkNv
bG9yUGlja2VyTWFjLmgiCiAjaW1wb3J0ICJXZWJDb250ZXh0TWVudVByb3h5TWFjLmgiCiAjaW1w
b3J0ICJXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMuaCIKKyNpbXBvcnQgIldlYkRh
dGVUaW1lUGlja2VyTWFjLmgiCiAjaW1wb3J0ICJXZWJFZGl0Q29tbWFuZFByb3h5LmgiCiAjaW1w
b3J0ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgIldlYlBvcHVwTWVudVByb3h5TWFjLmgiCkBA
IC00NzYsNiArNDc3LDEzIEBAIFJlZlB0cjxXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24+
IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVEYXRhTGlzdFN1Z2dlc3Rpb25zCiB9CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorUmVmUHRyPFdlYkRhdGVUaW1l
UGlja2VyPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRGF0ZVRpbWVQaWNrZXIoV2ViUGFnZVByb3h5
JiBwYWdlKQoreworICAgIHJldHVybiBXZWJEYXRlVGltZVBpY2tlck1hYzo6Y3JlYXRlKHBhZ2Us
IG1fdmlldyk7Cit9CisjZW5kaWYKKwogUmVmPFZhbGlkYXRpb25CdWJibGU+IFBhZ2VDbGllbnRJ
bXBsOjpjcmVhdGVWYWxpZGF0aW9uQnViYmxlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
VmFsaWRhdGlvbkJ1YmJsZTo6U2V0dGluZ3MmIHNldHRpbmdzKQogewogICAgIHJldHVybiBWYWxp
ZGF0aW9uQnViYmxlOjpjcmVhdGUobV92aWV3LCBtZXNzYWdlLCBzZXR0aW5ncyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViRGF0ZVRpbWVQaWNrZXJNYWMuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJEYXRlVGltZVBpY2tlck1hYy5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk4MTIxODI5NmQ0Zjk5OWJmNmY4MzNlNmE4YzMzN2VkYmM3MDg0MmYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViRGF0ZVRpbWVQaWNrZXJN
YWMuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykgJiYgVVNFKEFQUEtJVCkKKworI2ltcG9y
dCAiV2ViRGF0ZVRpbWVQaWNrZXIuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRGF0ZVRpbWVDaG9vc2Vy
UGFyYW1ldGVycy5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1dl
YWtPYmpDUHRyLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CisKK0BjbGFzcyBX
S0RhdGVUaW1lUGlja2VyOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViRGF0ZVRp
bWVQaWNrZXJNYWMgZmluYWwgOiBwdWJsaWMgV2ViRGF0ZVRpbWVQaWNrZXIgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8V2ViRGF0ZVRpbWVQaWNrZXJNYWM+IGNyZWF0ZShXZWJQYWdlUHJveHkm
LCBOU1ZpZXcgKik7CisgICAgfldlYkRhdGVUaW1lUGlja2VyTWFjKCk7CisKKyAgICB2b2lkIGRp
ZENob29zZURhdGUoU3RyaW5nVmlldyk7CisKK3ByaXZhdGU6CisgICAgV2ViRGF0ZVRpbWVQaWNr
ZXJNYWMoV2ViUGFnZVByb3h5JiwgTlNWaWV3ICopOworCisgICAgdm9pZCBlbmRQaWNrZXIoKSBm
aW5hbDsKKyAgICB2b2lkIHNob3dEYXRlVGltZVBpY2tlcihXZWJDb3JlOjpEYXRlVGltZUNob29z
ZXJQYXJhbWV0ZXJzJiYpIGZpbmFsOworCisgICAgV2Vha09iakNQdHI8TlNWaWV3PiBtX3ZpZXc7
CisgICAgUmV0YWluUHRyPFdLRGF0ZVRpbWVQaWNrZXI+IG1fcGlja2VyOworICAgIFdlYkNvcmU6
OkRhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMgbV9wYXJhbXM7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAm
JiBVU0UoQVBQS0lUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dl
YkRhdGVUaW1lUGlja2VyTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkRh
dGVUaW1lUGlja2VyTWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwZjFiMzg1MGZlOGFjMDI4ZjNkZDI3MGM2
N2E4MjAyYjIwNGIxOTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV2ViRGF0ZVRpbWVQaWNrZXJNYWMubW0KQEAgLTAsMCArMSwyMzMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViRGF0ZVRpbWVQaWNrZXJNYWMu
aCIKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKSAmJiBVU0UoQVBQS0lU
KQorCisjaW1wb3J0ICJBcHBLaXRTUEkuaCIKKyNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgorCitj
b25zdGV4cHIgQ0dGbG9hdCBrQ2FsZW5kYXJXaWR0aCA9IDEzOTsKK2NvbnN0ZXhwciBDR0Zsb2F0
IGtDYWxlbmRhckhlaWdodCA9IDE0ODsKK2NvbnN0ZXhwciBOU1N0cmluZyAqIGtEYXRlRm9ybWF0
U3RyaW5nID0gQCJ5eXl5LU1NLWRkIjsKK2NvbnN0ZXhwciBOU1N0cmluZyAqIGtEYXRlVGltZUZv
cm1hdFN0cmluZyA9IEAieXl5eS1NTS1kZCdUJ0hIOm1tIjsKK2NvbnN0ZXhwciBOU1N0cmluZyAq
IGtEZWZhdWx0TG9jYWxlSWRlbnRpZmllciA9IEAiZW5fVVNfUE9TSVgiOworCitAaW50ZXJmYWNl
IFdLRGF0ZVRpbWVQaWNrZXIgOiBOU09iamVjdAorCistIChpZClpbml0V2l0aFBhcmFtczooV2Vi
Q29yZTo6RGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyYmKXBhcmFtcyBpblZpZXc6KE5TVmlldyAq
KXZpZXc7CistICh2b2lkKXNob3dQaWNrZXI6KFdlYktpdDo6V2ViRGF0ZVRpbWVQaWNrZXJNYWMm
KXBpY2tlcjsKKy0gKHZvaWQpaW52YWxpZGF0ZTsKKworQGVuZAorCitAaW50ZXJmYWNlIFdLRGF0
ZVRpbWVQaWNrZXJXaW5kb3cgOiBOU1dpbmRvdworQGVuZAorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworUmVmPFdlYkRhdGVUaW1lUGlja2VyTWFjPiBXZWJEYXRlVGltZVBpY2tlck1hYzo6Y3JlYXRl
KFdlYlBhZ2VQcm94eSYgcGFnZSwgTlNWaWV3ICp2aWV3KQoreworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFdlYkRhdGVUaW1lUGlja2VyTWFjKHBhZ2UsIHZpZXcpKTsKK30KKworV2ViRGF0ZVRp
bWVQaWNrZXJNYWM6On5XZWJEYXRlVGltZVBpY2tlck1hYygpCit7CisgICAgW21fcGlja2VyIGlu
dmFsaWRhdGVdOworfQorCitXZWJEYXRlVGltZVBpY2tlck1hYzo6V2ViRGF0ZVRpbWVQaWNrZXJN
YWMoV2ViUGFnZVByb3h5JiBwYWdlLCBOU1ZpZXcgKnZpZXcpCisgICAgOiBXZWJEYXRlVGltZVBp
Y2tlcihwYWdlKQorICAgICwgbV92aWV3KHZpZXcpCit7Cit9CisKK3ZvaWQgV2ViRGF0ZVRpbWVQ
aWNrZXJNYWM6OmVuZFBpY2tlcigpCit7CisgICAgW21fcGlja2VyIGludmFsaWRhdGVdOworICAg
IG1fcGlja2VyID0gbmlsOworICAgIFdlYkRhdGVUaW1lUGlja2VyOjplbmRQaWNrZXIoKTsKK30K
Kwordm9pZCBXZWJEYXRlVGltZVBpY2tlck1hYzo6c2hvd0RhdGVUaW1lUGlja2VyKFdlYkNvcmU6
OkRhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMmJiBwYXJhbXMpCit7CisgICAgaWYgKG1fcGlja2Vy
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BpY2tlciA9IGFkb3B0TlMoW1tXS0RhdGVUaW1l
UGlja2VyIGFsbG9jXSBpbml0V2l0aFBhcmFtczpXVEZNb3ZlKHBhcmFtcykgaW5WaWV3Om1fdmll
dy5nZXQoKS5nZXQoKV0pOworICAgIFttX3BpY2tlciBzaG93UGlja2VyOip0aGlzXTsKK30KKwor
dm9pZCBXZWJEYXRlVGltZVBpY2tlck1hYzo6ZGlkQ2hvb3NlRGF0ZShTdHJpbmdWaWV3IGRhdGUp
Cit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGFnZS0+ZGlk
Q2hvb3NlRGF0ZShkYXRlKTsKKyAgICBlbmRQaWNrZXIoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKy8vIEZJWE1FOiBTaGFyZSB0aGlzIGltcGxlbWVudGF0aW9uIHdpdGggV0tEYXRh
TGlzdFN1Z2dlc3Rpb25XaW5kb3cuCitAaW1wbGVtZW50YXRpb24gV0tEYXRlVGltZVBpY2tlcldp
bmRvdyB7CisgICAgUmV0YWluUHRyPE5TVmlzdWFsRWZmZWN0Vmlldz4gX2JhY2tkcm9wVmlldzsK
K30KKworLSAoaWQpaW5pdFdpdGhDb250ZW50UmVjdDooTlNSZWN0KWNvbnRlbnRSZWN0IHN0eWxl
TWFzazooTlNVSW50ZWdlcilzdHlsZU1hc2sgYmFja2luZzooTlNCYWNraW5nU3RvcmVUeXBlKWJh
Y2tpbmdTdG9yZVR5cGUgZGVmZXI6KEJPT0wpZGVmZXIKK3sKKyAgICBzZWxmID0gW3N1cGVyIGlu
aXRXaXRoQ29udGVudFJlY3Q6Y29udGVudFJlY3Qgc3R5bGVNYXNrOnN0eWxlTWFzayBiYWNraW5n
OmJhY2tpbmdTdG9yZVR5cGUgZGVmZXI6ZGVmZXJdOworICAgIGlmICghc2VsZikKKyAgICAgICAg
cmV0dXJuIG5pbDsKKworICAgIHNlbGYuaGFzU2hhZG93ID0gWUVTOworICAgIHNlbGYucmVsZWFz
ZWRXaGVuQ2xvc2VkID0gTk87CisgICAgc2VsZi50aXRsZVZpc2liaWxpdHkgPSBOU1dpbmRvd1Rp
dGxlSGlkZGVuOworICAgIHNlbGYudGl0bGViYXJBcHBlYXJzVHJhbnNwYXJlbnQgPSBZRVM7Cisg
ICAgc2VsZi5tb3ZhYmxlID0gTk87CisgICAgc2VsZi5iYWNrZ3JvdW5kQ29sb3IgPSBbTlNDb2xv
ciBjbGVhckNvbG9yXTsKKyAgICBzZWxmLm9wYXF1ZSA9IE5POworCisgICAgX2JhY2tkcm9wVmll
dyA9IGFkb3B0TlMoW1tOU1Zpc3VhbEVmZmVjdFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Y29u
dGVudFJlY3RdKTsKKyAgICBbX2JhY2tkcm9wVmlldyBzZXRBdXRvcmVzaXppbmdNYXNrOk5TVmll
d1dpZHRoU2l6YWJsZSB8IE5TVmlld0hlaWdodFNpemFibGVdOworICAgIFtfYmFja2Ryb3BWaWV3
IHNldE1hdGVyaWFsOk5TVmlzdWFsRWZmZWN0TWF0ZXJpYWxNZW51XTsKKyAgICBbX2JhY2tkcm9w
VmlldyBzZXRTdGF0ZTpOU1Zpc3VhbEVmZmVjdFN0YXRlQWN0aXZlXTsKKyAgICBbX2JhY2tkcm9w
VmlldyBzZXRCbGVuZGluZ01vZGU6TlNWaXN1YWxFZmZlY3RCbGVuZGluZ01vZGVCZWhpbmRXaW5k
b3ddOworCisgICAgW3NlbGYgc2V0Q29udGVudFZpZXc6X2JhY2tkcm9wVmlldy5nZXQoKV07CisK
KyAgICByZXR1cm4gc2VsZjsKK30KKworLSAoQk9PTCljYW5CZWNvbWVLZXlXaW5kb3cKK3sKKyAg
ICByZXR1cm4gTk87Cit9CisKKy0gKEJPT0wpaGFzS2V5QXBwZWFyYW5jZQoreworICAgIHJldHVy
biBZRVM7Cit9CisKKy0gKE5TV2luZG93U2hhZG93T3B0aW9ucylzaGFkb3dPcHRpb25zCit7Cisg
ICAgcmV0dXJuIE5TV2luZG93U2hhZG93U2Vjb25kYXJ5V2luZG93OworfQorCitAZW5kCisKK0Bp
bXBsZW1lbnRhdGlvbiBXS0RhdGVUaW1lUGlja2VyIHsKKyAgICBXZWFrUHRyPFdlYktpdDo6V2Vi
RGF0ZVRpbWVQaWNrZXJNYWM+IF9waWNrZXI7CisgICAgV2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2Vy
UGFyYW1ldGVycyBfcGFyYW1zOworICAgIFdlYWtPYmpDUHRyPE5TVmlldz4gX3ByZXNlbnRpbmdW
aWV3OworCisgICAgUmV0YWluUHRyPFdLRGF0ZVRpbWVQaWNrZXJXaW5kb3c+IF9lbmNsb3NpbmdX
aW5kb3c7CisgICAgUmV0YWluUHRyPE5TRGF0ZVBpY2tlcj4gX2RhdGVQaWNrZXI7CisgICAgUmV0
YWluUHRyPE5TRGF0ZUZvcm1hdHRlcj4gX2RhdGVGb3JtYXR0ZXI7Cit9CisKKy0gKGlkKWluaXRX
aXRoUGFyYW1zOihXZWJDb3JlOjpEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzJiYpcGFyYW1zIGlu
VmlldzooTlNWaWV3ICopdmlldworeworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQor
ICAgICAgICByZXR1cm4gc2VsZjsKKworICAgIF9wcmVzZW50aW5nVmlldyA9IHZpZXc7CisgICAg
X3BhcmFtcyA9IFdURk1vdmUocGFyYW1zKTsKKworICAgIE5TUmVjdCB3aW5kb3dSZWN0ID0gW1tf
cHJlc2VudGluZ1ZpZXcgd2luZG93XSBjb252ZXJ0UmVjdFRvU2NyZWVuOltfcHJlc2VudGluZ1Zp
ZXcgY29udmVydFJlY3Q6X3BhcmFtcy5hbmNob3JSZWN0SW5Sb290VmlldyB0b1ZpZXc6bmlsXV07
CisgICAgd2luZG93UmVjdC5vcmlnaW4ueSA9IE5TTWluWSh3aW5kb3dSZWN0KSAtIGtDYWxlbmRh
ckhlaWdodDsKKyAgICB3aW5kb3dSZWN0LnNpemUud2lkdGggPSBrQ2FsZW5kYXJXaWR0aDsKKyAg
ICB3aW5kb3dSZWN0LnNpemUuaGVpZ2h0ID0ga0NhbGVuZGFySGVpZ2h0OworCisgICAgX2VuY2xv
c2luZ1dpbmRvdyA9IGFkb3B0TlMoW1tXS0RhdGVUaW1lUGlja2VyV2luZG93IGFsbG9jXSBpbml0
V2l0aENvbnRlbnRSZWN0Ok5TWmVyb1JlY3Qgc3R5bGVNYXNrOihOU1dpbmRvd1N0eWxlTWFza1Rp
dGxlZCB8IE5TV2luZG93U3R5bGVNYXNrRnVsbFNpemVDb250ZW50VmlldykgYmFja2luZzpOU0Jh
Y2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7CisgICAgW19lbmNsb3NpbmdXaW5kb3cgc2V0
RnJhbWU6d2luZG93UmVjdCBkaXNwbGF5OllFU107CisKKyAgICBfZGF0ZVBpY2tlciA9IGFkb3B0
TlMoW1tOU0RhdGVQaWNrZXIgYWxsb2NdIGluaXRXaXRoRnJhbWU6W19lbmNsb3NpbmdXaW5kb3cg
Y29udGVudFZpZXddLmJvdW5kc10pOworICAgIFtfZGF0ZVBpY2tlciBzZXREYXRlUGlja2VyU3R5
bGU6TlNEYXRlUGlja2VyU3R5bGVDbG9ja0FuZENhbGVuZGFyXTsKKyAgICBbX2RhdGVQaWNrZXIg
c2V0RGF0ZVBpY2tlckVsZW1lbnRzOk5TRGF0ZVBpY2tlckVsZW1lbnRGbGFnWWVhck1vbnRoRGF5
XTsKKyAgICBbX2RhdGVQaWNrZXIgc2V0VGFyZ2V0OnNlbGZdOworICAgIFtfZGF0ZVBpY2tlciBz
ZXRBY3Rpb246QHNlbGVjdG9yKGRpZENob29zZURhdGU6KV07CisKKyAgICBhdXRvIGVuZ2xpc2hM
b2NhbGUgPSBhZG9wdE5TKFtbTlNMb2NhbGUgYWxsb2NdIGluaXRXaXRoTG9jYWxlSWRlbnRpZmll
cjprRGVmYXVsdExvY2FsZUlkZW50aWZpZXJdKTsKKyAgICBfZGF0ZUZvcm1hdHRlciA9IGFkb3B0
TlMoW1tOU0RhdGVGb3JtYXR0ZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbX2RhdGVGb3JtYXR0ZXIg
c2V0RGF0ZUZvcm1hdDpbc2VsZiBkYXRlRm9ybWF0U3RyaW5nRm9yVHlwZTpfcGFyYW1zLnR5cGVd
XTsKKyAgICBbX2RhdGVGb3JtYXR0ZXIgc2V0TG9jYWxlOmVuZ2xpc2hMb2NhbGUuZ2V0KCldOwor
CisgICAgTlNTdHJpbmcgKmN1cnJlbnREYXRlVmFsdWVTdHJpbmcgPSBfcGFyYW1zLmN1cnJlbnRW
YWx1ZTsKKyAgICBpZiAoIVtjdXJyZW50RGF0ZVZhbHVlU3RyaW5nIGxlbmd0aF0pCisgICAgICAg
IFtfZGF0ZVBpY2tlciBzZXREYXRlVmFsdWU6W05TRGF0ZSBkYXRlXV07CisgICAgZWxzZQorICAg
ICAgICBbX2RhdGVQaWNrZXIgc2V0RGF0ZVZhbHVlOltfZGF0ZUZvcm1hdHRlciBkYXRlRnJvbVN0
cmluZzpjdXJyZW50RGF0ZVZhbHVlU3RyaW5nXV07CisKKyAgICBbX2RhdGVQaWNrZXIgc2V0TWlu
RGF0ZTpbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2UxOTcwOl9wYXJhbXMubWluaW11
bSAvIDEwMDAuMF1dOworICAgIFtfZGF0ZVBpY2tlciBzZXRNYXhEYXRlOltOU0RhdGUgZGF0ZVdp
dGhUaW1lSW50ZXJ2YWxTaW5jZTE5NzA6X3BhcmFtcy5tYXhpbXVtIC8gMTAwMC4wXV07CisKKyAg
ICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClzaG93UGlja2VyOihXZWJLaXQ6OldlYkRhdGVU
aW1lUGlja2VyTWFjJilwaWNrZXIKK3sKKyAgICBfcGlja2VyID0gbWFrZVdlYWtQdHIocGlja2Vy
KTsKKworICAgIFtbX2VuY2xvc2luZ1dpbmRvdyBjb250ZW50Vmlld10gYWRkU3VidmlldzpfZGF0
ZVBpY2tlci5nZXQoKV07CisgICAgW1tfcHJlc2VudGluZ1ZpZXcgd2luZG93XSBhZGRDaGlsZFdp
bmRvdzpfZW5jbG9zaW5nV2luZG93LmdldCgpIG9yZGVyZWQ6TlNXaW5kb3dBYm92ZV07Cit9CisK
Ky0gKHZvaWQpaW52YWxpZGF0ZQoreworICAgIFtfZGF0ZVBpY2tlciByZW1vdmVGcm9tU3VwZXJ2
aWV3V2l0aG91dE5lZWRpbmdEaXNwbGF5XTsKKyAgICBbX2RhdGVQaWNrZXIgc2V0VGFyZ2V0Om5p
bF07CisgICAgW19kYXRlUGlja2VyIHNldEFjdGlvbjpuaWxdOworICAgIF9kYXRlUGlja2VyID0g
bmlsOworCisgICAgX2RhdGVGb3JtYXR0ZXIgPSBuaWw7CisKKyAgICBbW19wcmVzZW50aW5nVmll
dyB3aW5kb3ddIHJlbW92ZUNoaWxkV2luZG93Ol9lbmNsb3NpbmdXaW5kb3cuZ2V0KCldOworICAg
IFtfZW5jbG9zaW5nV2luZG93IGNsb3NlXTsKKyAgICBfZW5jbG9zaW5nV2luZG93ID0gbmlsOwor
fQorCistICh2b2lkKWRpZENob29zZURhdGU6KGlkKXNlbmRlcgoreworICAgIGlmIChzZW5kZXIg
IT0gX2RhdGVQaWNrZXIpCisgICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyBkYXRlU3RyaW5n
ID0gW19kYXRlRm9ybWF0dGVyIHN0cmluZ0Zyb21EYXRlOltfZGF0ZVBpY2tlciBkYXRlVmFsdWVd
XTsKKyAgICBfcGlja2VyLT5kaWRDaG9vc2VEYXRlKFN0cmluZ1ZpZXcoZGF0ZVN0cmluZykpOwor
fQorCistIChOU1N0cmluZyAqKWRhdGVGb3JtYXRTdHJpbmdGb3JUeXBlOihOU1N0cmluZyAqKXR5
cGUKK3sKKyAgICBpZiAoW3R5cGUgaXNFcXVhbFRvU3RyaW5nOkAiZGF0ZXRpbWUtbG9jYWwiXSkK
KyAgICAgICAgcmV0dXJuIGtEYXRlVGltZUZvcm1hdFN0cmluZzsKKworICAgIHJldHVybiBrRGF0
ZUZvcm1hdFN0cmluZzsKK30KKworQGVuZAorCisjZW5kaWYgLy8gRU5BQkxFKERBVEVfQU5EX1RJ
TUVfSU5QVVRfVFlQRVMpICYmIFVTRShBUFBLSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmMTRmY2MzOGZiOTgyNWIzMGQzMDFjZDJj
MGI5MGQxNGQ1MDJlNWZhLi42NmI2ZTdiNzJjNjI3NmI2NGNiZDAwYjY4Y2Q4M2Y2MjI5MGVjMjI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTE4MzEsNiArMTgzMSw5IEBACiAJCUU0RTg2NDkzMUIxNjc1MDcwMEM4MkY0MCAvKiBWZXJz
aW9uQ2hlY2tzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNEU4NjQ4RTFCMTY3M0ZCMDBDODJGNDAgLyogVmVyc2lvbkNoZWNrcy5oICovOyB9OwogCQlF
NTJDRjU1MjIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTJDRjU1MDIw
QTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmggKi87IH07CiAJ
CUU1NDhFQkQxMjEwMTVGMEUwMEJFM0MzMiAvKiBXS0Zvcm1Db2xvclBpY2tlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU0OEVCQ0YyMTAxNUYwRTAw
QkUzQzMyIC8qIFdLRm9ybUNvbG9yUGlja2VyLmggKi87IH07CisJCUU1NUNEMUY1MjRDRjc0N0Qw
MDQyREI5QyAvKiBXZWJEYXRlVGltZUNob29zZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1NUNEMUYzMjRDRjc0N0QwMDQyREI5QyAvKiBXZWJEYXRl
VGltZUNob29zZXIuaCAqLzsgfTsKKwkJRTU1Q0QyMDAyNEQwOEQ4RjAwNDJEQjlDIC8qIFdlYkRh
dGVUaW1lUGlja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNTVDRDFGQzI0RDA4ODBCMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNrZXIuaCAqLzsg
fTsKKwkJRTU1Q0QyMDMyNEQwOUYxRjAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lUGlja2VyTWFjLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTVDRDIwMTI0
RDA5RjFGMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNrZXJNYWMuaCAqLzsgfTsKIAkJRTU2OEI5
MUYyMEEzQUIyRjAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU2OEI5MUUyMEEz
QUIyRjAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5oICovOyB9Owog
CQlFNTY4QjkyMjIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bk
b3duTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NTY4QjkyMDIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3du
TWFjLmggKi87IH07CiAJCUU1QkVGNjgyMjEzMEM0ODAwMEYzMTExMSAvKiBXZWJEYXRhTGlzdFN1
Z2dlc3Rpb25zRHJvcGRvd25JT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU1QkVGNjgwMjEzMEM0N0YwMEYzMTExMSAvKiBXZWJEYXRhTGlzdFN1Z2dl
c3Rpb25zRHJvcGRvd25JT1MuaCAqLzsgfTsKQEAgLTUzNTgsNiArNTM2MSwxMiBAQAogCQlFNTQ4
RUJDRjIxMDE1RjBFMDBCRTNDMzIgLyogV0tGb3JtQ29sb3JQaWNrZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gV0tGb3JtQ29sb3JQaWNrZXIuaDsgcGF0aCA9IGlvcy9mb3Jtcy9XS0Zvcm1Db2xvclBpY2tl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTQ4RUJEMDIxMDE1RjBFMDBCRTND
MzIgLyogV0tGb3JtQ29sb3JQaWNrZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0Zvcm1D
b2xvclBpY2tlci5tbTsgcGF0aCA9IGlvcy9mb3Jtcy9XS0Zvcm1Db2xvclBpY2tlci5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTU0QTE0Q0UyMEZDRkI3QjAwN0UxM0Q4IC8qIFdl
YkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJE
YXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFNTVDRDFGMzI0Q0Y3NDdEMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVDaG9vc2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkRhdGVUaW1lQ2hvb3Nlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFNTVDRDFGNDI0Q0Y3NDdEMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVDaG9vc2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkRhdGVUaW1lQ2hvb3Nlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUU1NUNEMUZDMjREMDg4MEIwMDQyREI5QyAvKiBXZWJEYXRlVGlt
ZVBpY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEYXRlVGltZVBpY2tlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFNTVDRDFGRDI0RDA4ODBCMDA0MkRCOUMgLyogV2ViRGF0ZVRp
bWVQaWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRGF0ZVRpbWVQaWNrZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNTVDRDIwMTI0RDA5RjFGMDA0MkRCOUMgLyog
V2ViRGF0ZVRpbWVQaWNrZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGF0ZVRpbWVQaWNrZXJN
YWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTU1Q0QyMDIyNEQwOUYxRjAwNDJE
QjlDIC8qIFdlYkRhdGVUaW1lUGlja2VyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2Vi
RGF0ZVRpbWVQaWNrZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1NjhC
OTFFMjBBM0FCMkYwMEUzQzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1NjhCOTIwMjBBM0FDNkEwMEUzQzg1NiAvKiBXZWJEYXRh
TGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGF0YUxpc3RT
dWdnZXN0aW9uc0Ryb3Bkb3duTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1
NjhCOTIxMjBBM0FDNkEwMEUzQzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25N
YWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93
bk1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg4MzIsNiArODg0MSw4IEBA
CiAJCQkJQkMwMzJENjIxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50Lmgg
Ki8sCiAJCQkJRTUyQ0Y1NTEyMEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlv
blBpY2tlci5jcHAgKi8sCiAJCQkJRTUyQ0Y1NTAyMEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFM
aXN0U3VnZ2VzdGlvblBpY2tlci5oICovLAorCQkJCUU1NUNEMUY0MjRDRjc0N0QwMDQyREI5QyAv
KiBXZWJEYXRlVGltZUNob29zZXIuY3BwICovLAorCQkJCUU1NUNEMUYzMjRDRjc0N0QwMDQyREI5
QyAvKiBXZWJEYXRlVGltZUNob29zZXIuaCAqLywKIAkJCQlDRDE5QTI2OTFBMTNFODIwMDA4RDY1
MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwICovLAogCQkJCUNEMTlBMjZBMUEx
M0U4MjEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovLAogCQkJCUJD
MTExQTU2MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJEcmFnQ2xpZW50LmNwcCAqLywKQEAgLTkwNDgs
NiArOTA1OSw4IEBACiAJCQkJMzNBQTEwNjUxMzFGMDYwMDAwRDRBNTc1IC8qIFdlYkNvb2tpZU1h
bmFnZXJQcm94eUNsaWVudC5oICovLAogCQkJCUU1NEExNENFMjBGQ0ZCN0IwMDdFMTNEOCAvKiBX
ZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uY3BwICovLAogCQkJCUU1NjhCOTFFMjBBM0FC
MkYwMEUzQzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uaCAqLywKKwkJCQlF
NTVDRDFGRDI0RDA4ODBCMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNrZXIuY3BwICovLAorCQkJ
CUU1NUNEMUZDMjREMDg4MEIwMDQyREI5QyAvKiBXZWJEYXRlVGltZVBpY2tlci5oICovLAogCQkJ
CUJDQTBFRjlFMTIzMzI2NDIwMDdEM0NGQiAvKiBXZWJFZGl0Q29tbWFuZFByb3h5LmNwcCAqLywK
IAkJCQlCQ0EwRUY5RDEyMzMyNjQyMDA3RDNDRkIgLyogV2ViRWRpdENvbW1hbmRQcm94eS5oICov
LAogCQkJCUJDRTQ2OTRGMTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtQ2xpZW50LmNwcCAqLywK
QEAgLTk4NDQsNiArOTg1Nyw4IEBACiAJCQkJRjZENjMyQkExMzNEMTgxQjAwNzQzRDc3IC8qIFdl
YkNvb2tpZU1hbmFnZXJQcm94eU1hYy5tbSAqLywKIAkJCQlFNTY4QjkyMDIwQTNBQzZBMDBFM0M4
NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLmggKi8sCiAJCQkJRTU2OEI5
MjEyMEEzQUM2QTAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5t
bSAqLywKKwkJCQlFNTVDRDIwMTI0RDA5RjFGMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNrZXJN
YWMuaCAqLywKKwkJCQlFNTVDRDIwMjI0RDA5RjFGMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNr
ZXJNYWMubW0gKi8sCiAJCQkJQkM4NTdFODUxMkI3MUVCQjAwRURFQjJFIC8qIFdlYlBhZ2VQcm94
eU1hYy5tbSAqLywKIAkJCQlCQzU3NTA5NTEyNjhGM0M2MDA2RjBGMTIgLyogV2ViUG9wdXBNZW51
UHJveHlNYWMuaCAqLywKIAkJCQlCQzU3NTA5NjEyNjhGM0M2MDA2RjBGMTIgLyogV2ViUG9wdXBN
ZW51UHJveHlNYWMubW0gKi8sCkBAIC0xMTI3OCw2ICsxMTI5Myw5IEBACiAJCQkJRTU2OEI5MUYy
MEEzQUIyRjAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTVCRUY2ODIyMTMwQzQ4MDAwRjMxMTExIC8qIFdlYkRhdGFMaXN0U3Vn
Z2VzdGlvbnNEcm9wZG93bklPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTU2OEI5MjIyMEEzQUM2
QTAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJRTU1Q0QxRjUyNENGNzQ3RDAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lQ2hvb3Nl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTU1Q0QyMDAyNEQwOEQ4RjAwNDJEQjlDIC8qIFdlYkRh
dGVUaW1lUGlja2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNTVDRDIwMzI0RDA5RjFGMDA0MkRC
OUMgLyogV2ViRGF0ZVRpbWVQaWNrZXJNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2QjA1MjQ3
MjI2NjhEODUwMDI2NUI5NyAvKiBXZWJEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0Nv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzOTYyOEREMjM5NjBDQzYwMDY1OEVDRCAv
KiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFMzg2NkIwQTIzOTlBMkQ5MDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQ
cm92aWRlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5k
ZXggZWZjMDAzYmQwMTU5MTAwMDgyZGUzY2VmMWY2MDlmYTUyMjUxY2E1YS4uY2U1NGZmZjU0Mjlm
OWMyNjMyYTg5ZTU1YTkyNzFiZGY4Y2Y0ZDVmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAg
LTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJXZWJDb2xvckNob29zZXIuaCIKICNpbmNsdWRlICJX
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJEYXRhTGlzdFN1Z2dlc3Rpb25Q
aWNrZXIuaCIKKyNpbmNsdWRlICJXZWJEYXRlVGltZUNob29zZXIuaCIKICNpbmNsdWRlICJXZWJG
cmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2Vi
RnVsbFNjcmVlbk1hbmFnZXIuaCIKQEAgLTc3NSw2ICs3NzYsMTUgQEAgYm9vbCBXZWJDaHJvbWVD
bGllbnQ6OmNhblNob3dEYXRhTGlzdFN1Z2dlc3Rpb25MYWJlbHMoKSBjb25zdAogCiAjZW5kaWYK
IAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorCitzdGQ6OnVuaXF1ZV9w
dHI8RGF0ZVRpbWVDaG9vc2VyPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURhdGVUaW1lQ2hvb3Nl
cihEYXRlVGltZUNob29zZXJDbGllbnQmIGNsaWVudCkKK3sKKyAgICByZXR1cm4gbWFrZVVuaXF1
ZTxXZWJEYXRlVGltZUNob29zZXI+KG1fcGFnZSwgY2xpZW50KTsKK30KKworI2VuZGlmCisKIHZv
aWQgV2ViQ2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUmIGZyYW1lLCBGaWxlQ2hvb3Nl
ciYgZmlsZUNob29zZXIpCiB7CiAgICAgaWYgKG1fcGFnZS5hY3RpdmVPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGU3NWY0ODg1MmJmYTA2YjFhZDQwZTNi
YmExZmEzY2MzZTNmNDFhOGUuLjQ5MmUyM2I5MzVjMzAwYTU5ZjAyZGNkMTk1NDk3ZDFkZmM2MGE4
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE1Miw2ICsxNTIsMTAgQEAgcHJpdmF0ZToKICAg
ICBib29sIGNhblNob3dEYXRhTGlzdFN1Z2dlc3Rpb25MYWJlbHMoKSBjb25zdCBmaW5hbDsKICNl
bmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3Nlcj4gY3JlYXRlRGF0ZVRpbWVDaG9vc2Vy
KFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3NlckNsaWVudCYpIGZpbmFsOworI2VuZGlmCisKICNpZiBF
TkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICB2b2lkIGRpZFByZXZlbnREZWZhdWx0Rm9yRXZl
bnQoKSBmaW5hbDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkRhdGVUaW1lQ2hvb3Nlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0ZVRpbWVDaG9vc2VyLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43YmM3ZGQ4ZWUyMWE4ZmZhMGMzMTYyZGQ3NTIxOTM0NThiNzZlNDk0Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGVUaW1l
Q2hvb3Nlci5jcHAKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJEYXRlVGltZUNob29zZXIuaCIKKworI2lmIEVOQUJMRShEQVRF
X0FORF9USU1FX0lOUFVUX1RZUEVTKQorCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUg
IldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvRGF0ZVRpbWVDaG9vc2VyQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9E
YXRlVGltZUNob29zZXJQYXJhbWV0ZXJzLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJE
YXRlVGltZUNob29zZXI6OldlYkRhdGVUaW1lQ2hvb3NlcihXZWJQYWdlJiBwYWdlLCBXZWJDb3Jl
OjpEYXRlVGltZUNob29zZXJDbGllbnQmIGNsaWVudCkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkK
KyAgICAsIG1fcGFnZShwYWdlKQoreworfQorCit2b2lkIFdlYkRhdGVUaW1lQ2hvb3Nlcjo6ZGlk
Q2hvb3NlRGF0ZShTdHJpbmdWaWV3IGRhdGUpCit7CisgICAgbV9jbGllbnQuZGlkQ2hvb3NlVmFs
dWUoZGF0ZSk7Cit9CisKK3ZvaWQgV2ViRGF0ZVRpbWVDaG9vc2VyOjpkaWRFbmRDaG9vc2VyKCkK
K3sKKyAgICBtX2NsaWVudC5kaWRFbmRDaG9vc2VyKCk7Cit9CisKK3ZvaWQgV2ViRGF0ZVRpbWVD
aG9vc2VyOjplbmRDaG9vc2VyKCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkVuZERh
dGVUaW1lUGlja2VyKCksIG1fcGFnZS5pZGVudGlmaWVyKCkpOworfQorCit2b2lkIFdlYkRhdGVU
aW1lQ2hvb3Nlcjo6c2hvd0Nob29zZXIoY29uc3QgV2ViQ29yZTo6RGF0ZVRpbWVDaG9vc2VyUGFy
YW1ldGVycyYgcGFyYW1zKQoreworICAgIG1fcGFnZS5zZXRBY3RpdmVEYXRlVGltZUNob29zZXIo
KnRoaXMpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2hvd0RhdGVUaW1lUGlja2VyKHBh
cmFtcyksIG1fcGFnZS5pZGVudGlmaWVyKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRGF0ZVRpbWVDaG9vc2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRGF0ZVRpbWVDaG9vc2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWUyYjJkYjI5MjM2
M2MwY2IzOWRiOWM4MGFkYjZkNWRmNGFlZWNjZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRlVGltZUNob29zZXIuaApAQCAt
MCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoREFU
RV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKworI2luY2x1ZGUgPFdlYkNvcmUvRGF0ZVRpbWVDaG9v
c2VyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIERhdGVUaW1lQ2hvb3NlckNsaWVu
dDsKK3N0cnVjdCBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzOworfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgV2ViRGF0ZVRpbWVDaG9vc2VyIGZpbmFs
IDogcHVibGljIFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3NlciB7CitwdWJsaWM6CisgICAgV2ViRGF0
ZVRpbWVDaG9vc2VyKFdlYlBhZ2UmLCBXZWJDb3JlOjpEYXRlVGltZUNob29zZXJDbGllbnQmKTsK
KworICAgIHZvaWQgZGlkQ2hvb3NlRGF0ZShTdHJpbmdWaWV3KTsKKyAgICB2b2lkIGRpZEVuZENo
b29zZXIoKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIGVuZENob29zZXIoKSBmaW5hbDsKKyAgICB2
b2lkIHNob3dDaG9vc2VyKGNvbnN0IFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMm
KSBmaW5hbDsKKworICAgIFdlYkNvcmU6OkRhdGVUaW1lQ2hvb3NlckNsaWVudCYgbV9jbGllbnQ7
CisgICAgV2ViUGFnZSYgbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCAyNzQyZjEzZWNmMzZkNjBjY2ZkNjdhM2ZkMjE1NDc1YjAwNjRmODMyLi4xOGNhZDdkYWFjMTFl
ZWZlYmIyZmIwYWU3OGMwZTg0ODc3ZTUzYTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtODAsNiArODAsNyBAQAogI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tl
ci5oIgogI2luY2x1ZGUgIldlYkRhdGFiYXNlUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJXZWJEYXRl
VGltZUNob29zZXIuaCIKICNpbmNsdWRlICJXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgog
I2luY2x1ZGUgIldlYkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiV2ViRHJhZ0NsaWVudC5o
IgpAQCAtNDE5Nyw2ICs0MTk4LDI3IEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ2xvc2VTdWdnZXN0aW9u
cygpCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisK
K3ZvaWQgV2ViUGFnZTo6c2V0QWN0aXZlRGF0ZVRpbWVDaG9vc2VyKFdlYkRhdGVUaW1lQ2hvb3Nl
ciYgZGF0ZVRpbWVDaG9vc2VyKQoreworICAgIG1fYWN0aXZlRGF0ZVRpbWVDaG9vc2VyID0gbWFr
ZVdlYWtQdHIoJmRhdGVUaW1lQ2hvb3Nlcik7Cit9CisKK3ZvaWQgV2ViUGFnZTo6ZGlkQ2hvb3Nl
RGF0ZShjb25zdCBTdHJpbmcmIGRhdGUpCit7CisgICAgaWYgKG1fYWN0aXZlRGF0ZVRpbWVDaG9v
c2VyKQorICAgICAgICBtX2FjdGl2ZURhdGVUaW1lQ2hvb3Nlci0+ZGlkQ2hvb3NlRGF0ZShkYXRl
KTsKK30KKwordm9pZCBXZWJQYWdlOjpkaWRFbmREYXRlVGltZVBpY2tlcigpCit7CisgICAgaWYg
KGF1dG8gY2hvb3NlciA9IHN0ZDo6ZXhjaGFuZ2UobV9hY3RpdmVEYXRlVGltZUNob29zZXIsIG51
bGxwdHIpKQorICAgICAgICBjaG9vc2VyLT5kaWRFbmRDaG9vc2VyKCk7Cit9CisKKyNlbmRpZgor
CiB2b2lkIFdlYlBhZ2U6OnNldEFjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyKFJlZjxXZWJP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lcj4mJiBvcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcikKIHsKICAg
ICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gV1RGTW92ZShvcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
aW5kZXggNjE3ZTZhZjJmZDM2Y2RiODkzYzAyYzEyMjAzM2UyODcxNWJhNjQ5MC4uNTMzNjI0M2Uy
OTE4NGE1MmJkZjU0MmNlOGMwODEzYmFmOWMzMzU3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMjQ5LDYgKzI0OSw3IEBAIGNsYXNzIFdlYkNvbG9y
Q2hvb3NlcjsKIGNsYXNzIFdlYkNvbnRleHRNZW51OwogY2xhc3MgV2ViQ29udGV4dE1lbnVJdGVt
RGF0YTsKIGNsYXNzIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcjsKK2NsYXNzIFdlYkRhdGVU
aW1lQ2hvb3NlcjsKIGNsYXNzIFdlYkRvY3VtZW50TG9hZGVyOwogY2xhc3MgV2ViRXZlbnQ7CiBj
bGFzcyBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOwpAQCAtNDM4LDYgKzQzOSwxMiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBkaWRDbG9zZVN1Z2dlc3Rpb25zKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShE
QVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorICAgIHZvaWQgc2V0QWN0aXZlRGF0ZVRpbWVDaG9v
c2VyKFdlYkRhdGVUaW1lQ2hvb3NlciYpOworICAgIHZvaWQgZGlkQ2hvb3NlRGF0ZShjb25zdCBT
dHJpbmcmKTsKKyAgICB2b2lkIGRpZEVuZERhdGVUaW1lUGlja2VyKCk7CisjZW5kaWYKKwogICAg
IFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyKiBhY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
cigpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuZ2V0KCk7
IH0KICAgICB2b2lkIHNldEFjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyKFJlZjxXZWJPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lcj4mJik7CiAKQEAgLTE5MDcsNiArMTkxNCwxMCBAQCBwcml2YXRl
OgogICAgIFdlYWtQdHI8V2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyPiBtX2FjdGl2ZURhdGFM
aXN0U3VnZ2VzdGlvblBpY2tlcjsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVf
SU5QVVRfVFlQRVMpCisgICAgV2Vha1B0cjxXZWJEYXRlVGltZUNob29zZXI+IG1fYWN0aXZlRGF0
ZVRpbWVDaG9vc2VyOworI2VuZGlmCisKICAgICBSZWZQdHI8V2ViT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXI+IG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI7CiAgICAgUmVmUHRyPE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4gbV9ub3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGE1OTVlN2Q5MjEyYjNlZGM4MjkzODlmY2Rm
ZmY5MjQ1MmE1OGQ4MGUuLjBiNjI3YjI2NmE5ZjE4YTc2M2JhOWQyMTBiNWJmOGZmNzMzYzQ0MDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgpAQCAtMTU5LDYgKzE1OSwxMSBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdD
b21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQog
ICAgIERpZENsb3NlU3VnZ2VzdGlvbnMoKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEVfQU5E
X1RJTUVfSU5QVVRfVFlQRVMpCisgICAgRGlkQ2hvb3NlRGF0ZShTdHJpbmcgZGF0ZSk7CisgICAg
RGlkRW5kRGF0ZVRpbWVQaWNrZXIoKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVO
VVMpCiAgICAgQ29udGV4dE1lbnVIaWRkZW4oKQogICAgIENvbnRleHRNZW51Rm9yS2V5RXZlbnQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAppbmRleCA0MmM1YTE1MDNmNWUzYWY5OTBlODBjMGJjZGEzYTdlOWFh
MTFkMDQzLi45YzA5NWE3NDAyNGQwNmM5ZjBjODA5OGVjNGQyY2U5ODk5NGNlMjU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaApAQCAtMTQ3LDYgKzE0NywxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgY2FuU2hv
d0RhdGFMaXN0U3VnZ2VzdGlvbkxhYmVscygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpEYXRlVGltZUNob29zZXI+IGNyZWF0ZURhdGVUaW1lQ2hv
b3NlcihXZWJDb3JlOjpEYXRlVGltZUNob29zZXJDbGllbnQmKSBmaW5hbDsKKyNlbmRpZgorCiAj
aWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICBib29sIHJlcXVlc3RQb2ludGVyTG9jaygpIGZp
bmFsOwogICAgIHZvaWQgcmVxdWVzdFBvaW50ZXJVbmxvY2soKSBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5t
bSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5tbQppbmRleCAwYjA5NDVlYjZkOWE3NjlkMWQ4YjQxNjlhMzY1MzBiOTY2ZjZjMDYwLi5mNmUy
YjE4ZTgwYzU4OTM2NjBmZTc5YWVhZjVkYWEzN2I0M2M3ZDgxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1t
CkBAIC03MzIsNiArNzMyLDE0IEBAIHN0ZDo6dW5pcXVlX3B0cjxEYXRhTGlzdFN1Z2dlc3Rpb25Q
aWNrZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlRGF0YUxpc3RTdWdnZXN0CiB9CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQorc3RkOjp1bmlxdWVfcHRy
PERhdGVUaW1lQ2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVEYXRlVGltZUNob29zZXIo
RGF0ZVRpbWVDaG9vc2VyQ2xpZW50JikKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
IGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0UG9pbnRlckxvY2soKQogewpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGZkNzczMjYxNjZiZGYw
YWMxZWIwMjI1ZjA3YjhjZjVlMjA0YTgxNDIuLmU0ZGJhNGM2NTNkYjE0YjY3ODg0Mzc3MjlmODUw
MmM0OGQzNDdhNzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMC0wOC0wNSAgQWRpdHlhIEtlZXJ0aGkgIDxha2Vl
cnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBTaG93IHBpY2tlciBmb3IgZGF0ZSBh
bmQgZGF0ZXRpbWUtbG9jYWwgaW5wdXQgdHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDk0NgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyIGFuZCBXZW5zb24gSHNpZWguCisKKyAgICAgICAgQWRkZWQgaXNTaG93aW5nRGF0ZVRp
bWVQaWNrZXIgdGVzdGluZyBob29rIGluIG9yZGVyIHRvIGVuYWJsZSB0ZXN0aW5nIG9mIHRoZSB2
aXNpYmlsaXR5IG9mCisgICAgICAgIHRoZSBwaWNrZXIuCisKKyAgICAgICAgKiBUZXN0UnVubmVy
U2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsOgor
ICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJv
bGxlci5oOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmlzU2hvd2luZ0RhdGVU
aW1lUGlja2VyIGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlw
dENvbnRyb2xsZXJNYWMuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlw
dENvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlck1hYzo6
aXNTaG93aW5nRGF0ZVRpbWVQaWNrZXIgY29uc3QpOgorCiAyMDIwLTA4LTA0ICBGdWppaSBIaXJv
bm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFt3ZWJraXRjb3JlcHld
IFJFR1JFU1NJT04ocjI2NTI1NCk6IGF1dG9pbnN0YWxsZXIgaXMgZmFpbGluZyB0byBleGVjdXRl
IHNldHVwLnB5IG9uIHdpbjMyIFB5dGhvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNo
YXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbCBiL1Rv
b2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29u
dHJvbGxlci5pZGwKaW5kZXggOTNhMTQzZTc0ODM4MDdjNmVhZmMxZjMzNTRhZTU1ZGJlODFlNjI2
ZS4uNWE0MDNmZjIzZjAzOTQyZjhmMjRmMGM5ODFkMWRiMzg1YzFkYjgyNSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRD
b250cm9sbGVyLmlkbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4
dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCkBAIC0yMjIsNiArMjIyLDggQEAgaW50
ZXJmYWNlIFVJU2NyaXB0Q29udHJvbGxlciB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJs
ZSB0aW1lUGlja2VyVmFsdWVIb3VyOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgdGlt
ZVBpY2tlclZhbHVlTWludXRlOwogCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNT
aG93aW5nRGF0ZVRpbWVQaWNrZXI7CisKICAgICAvLyA8ZGF0YWxpc3Q+CiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGJvb2xlYW4gaXNTaG93aW5nRGF0YUxpc3RTdWdnZXN0aW9uczsKICAgICB2b2lk
IGFjdGl2YXRlRGF0YUxpc3RTdWdnZXN0aW9uKHVuc2lnbmVkIGxvbmcgaW5kZXgsIG9iamVjdCBj
YWxsYmFjayk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29u
dGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3Jp
cHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IDM3ZTM2ZjA0Njc2M2VhMjQ1MTI0
YjMyOWY1NDliYTA0NzNhZmZjZTMuLmU1YWRhYjhjN2U1YTA4ZmYzNzZhMDQzODBkOWJkYTlmZmMx
N2I5NDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0
L1VJU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3Jp
cHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCkBAIC0yMTYsNiArMjE2LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzZXRUaW1lUGlja2VyVmFsdWUobG9uZyBob3VyLCBsb25nIG1p
bnV0ZSkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiAgICAgdmlydHVhbCBkb3VibGUgdGltZVBpY2tl
clZhbHVlSG91cigpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIC0xOyB9CiAgICAg
dmlydHVhbCBkb3VibGUgdGltZVBpY2tlclZhbHVlTWludXRlKCkgY29uc3QgeyBub3RJbXBsZW1l
bnRlZCgpOyByZXR1cm4gLTE7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTaG93aW5nRGF0ZVRpbWVQ
aWNrZXIoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc1Nob3dpbmdEYXRhTGlzdFN1Z2dlc3Rpb25zKCkgY29uc3QgeyBub3RJbXBs
ZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIEpTT2JqZWN0UmVmIGNhbGVu
ZGFyVHlwZSgpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIG51bGxwdHI7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgc2V0RGVmYXVsdENhbGVuZGFyVHlwZShKU1N0cmluZ1JlZiBjYWxlbmRh
cklkZW50aWZpZXIsIEpTU3RyaW5nUmVmIGxvY2FsZUlkZW50aWZpZXIpIHsgbm90SW1wbGVtZW50
ZWQoKTsgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRD
b250cm9sbGVyTWFjLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRy
b2xsZXJNYWMuaAppbmRleCA2MTIxNTkyZjJkN2RmMGQ4MzExODg2NzVkYjVhYWIyMjUyZjY3NGFh
Li41NGQ5MGQ5Y2Y2YzM3N2Q5MTkyYTZiZGM3NTFlMDY4NzU4NTY2MjY2IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMuaAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMuaApAQCAtNDIs
NiArNDIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB6b29tVG9TY2FsZShkb3VibGUsIEpTVmFsdWVS
ZWYpIG92ZXJyaWRlOwogICAgIGRvdWJsZSB6b29tU2NhbGUoKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2b2lkIHNpbXVsYXRlQWNjZXNzaWJpbGl0eVNldHRpbmdzQ2hhbmdlTm90aWZpY2F0aW9uKEpT
VmFsdWVSZWYpIG92ZXJyaWRlOworICAgIGJvb2wgaXNTaG93aW5nRGF0ZVRpbWVQaWNrZXIoKSBj
b25zdCBvdmVycmlkZTsKICAgICBib29sIGlzU2hvd2luZ0RhdGFMaXN0U3VnZ2VzdGlvbnMoKSBj
b25zdCBvdmVycmlkZTsKICAgICB2b2lkIGFjdGl2YXRlRGF0YUxpc3RTdWdnZXN0aW9uKHVuc2ln
bmVkIGluZGV4LCBKU1ZhbHVlUmVmIGNhbGxiYWNrKSBvdmVycmlkZTsKICAgICB2b2lkIGJlZ2lu
QmFja1N3aXBlKEpTVmFsdWVSZWYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCmluZGV4IGU5NTZlZWQ5MmEwYTU4
NzgzNjZlYzUzMDA5NzIyNDE2OTg4NTY3OWMuLjJlMTIzMGM1OGMzYWZiZDM4ODgxZWY3M2VhYzMx
NzMxZGVlYmQ1YjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2Ny
aXB0Q29udHJvbGxlck1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNj
cmlwdENvbnRyb2xsZXJNYWMubW0KQEAgLTk2LDYgKzk2LDE1IEBAIHZvaWQgVUlTY3JpcHRDb250
cm9sbGVyTWFjOjpzaW11bGF0ZUFjY2Vzc2liaWxpdHlTZXR0aW5nc0NoYW5nZU5vdGlmaWNhdGlv
bihKU1ZhCiAgICAgfSkuZ2V0KCldOwogfQogCitib29sIFVJU2NyaXB0Q29udHJvbGxlck1hYzo6
aXNTaG93aW5nRGF0ZVRpbWVQaWNrZXIoKSBjb25zdAoreworICAgIGZvciAoTlNXaW5kb3cgKmNo
aWxkV2luZG93IGluIHdlYlZpZXcoKS53aW5kb3cuY2hpbGRXaW5kb3dzKSB7CisgICAgICAgIGlm
IChbY2hpbGRXaW5kb3cgaXNLaW5kT2ZDbGFzczpOU0NsYXNzRnJvbVN0cmluZyhAIldLRGF0ZVRp
bWVQaWNrZXJXaW5kb3ciKV0pCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAg
cmV0dXJuIGZhbHNlOworfQorCiBib29sIFVJU2NyaXB0Q29udHJvbGxlck1hYzo6aXNTaG93aW5n
RGF0YUxpc3RTdWdnZXN0aW9ucygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRhdGFMaXN0U3VnZ2Vz
dGlvbnNUYWJsZVZpZXcoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjNzZlNDI0Njg1Y2Y4MDc2ODUzZmEzZjBlMmVmYzAw
OTY5MDZlNWZkLi5lNGNiNjRiMzg5NDczNDI3ODhiYTNjYjc0YjdhNjEyODBjOGYxZWY3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMDgtMDUgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlA
YXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gU2hvdyBwaWNrZXIgZm9yIGRhdGUgYW5kIGRh
dGV0aW1lLWxvY2FsIGlucHV0IHR5cGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTQ5NDYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ciBhbmQgV2Vuc29uIEhzaWVoLgorCisgICAgICAgIEFkZGVkIHRlc3RzIHRvIHZlcmlmeSB0aGF0
IHRoZSBwaWNrZXIgaXMgY29ycmVjdGx5IHNob3duIGFuZCBoaWRkZW4gZm9yIGRhdGUgYW5kCisg
ICAgICAgIGRhdGV0aW1lLWxvY2FsIGlucHV0IHR5cGVzLgorCisgICAgICAgICogZmFzdC9mb3Jt
cy9kYXRlL2RhdGUtc2hvdy1oaWRlLXBpY2tlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZm9ybXMvZGF0ZS9kYXRlLXNob3ctaGlkZS1waWNrZXIuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9mb3Jtcy9kYXRldGltZWxvY2FsL2RhdGV0aW1lbG9jYWwtc2hvdy1oaWRl
LXBpY2tlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZGF0ZXRp
bWVsb2NhbC9kYXRldGltZWxvY2FsLXNob3ctaGlkZS1waWNrZXIuaHRtbDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcmVzb3VyY2Vz
L3VpLWhlbHBlci5qczoKKyAgICAgICAgKHdpbmRvdy5VSUhlbHBlci5pc1Nob3dpbmdEYXRlVGlt
ZVBpY2tlcik6CisKIDIwMjAtMDgtMDQgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBw
bGUuY29tPgogCiAgICAgICAgIERpc2FibGUgaXNvbGF0ZWQtdHJlZS1tb2RlLW9uLW9mZi5odG1s
IGJlY2F1c2UgaXQgaXMgY2F1c2luZyBvdGhlciB0ZXN0IGZhaWx1cmVzLi4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLXNob3ctaGlkZS1waWNrZXItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtc2hvdy1oaWRlLXBpY2tl
ci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjUyZDI0Mjc3Mjk0NzlkMmFmODM4YTk0ZjFkNGY3
ZGI4NDAxMTExYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0
ZS9kYXRlLXNob3ctaGlkZS1waWNrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCisx
LiBJcyBzaG93aW5nIGRhdGUgcGlja2VyPyB0cnVlCisyLiBJcyBzaG93aW5nIGRhdGUgcGlja2Vy
PyBmYWxzZQorCitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBhIGRhdGUgcGlja2VyIGlzIHByZXNl
bnRlZCB3aGVuIGNsaWNraW5nIG9uIGEgZGF0ZSBpbnB1dC4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLXNob3ctaGlkZS1waWNrZXIuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLXNob3ctaGlkZS1waWNrZXIuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jZDYyYjIwMGI3ZGY0MDA1YzlkNDU5ZGYxN2U1Mjg1OTI4OTFmOGJhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtc2hvdy1oaWRlLXBpY2tlci5o
dG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxt
ZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwt
c2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitpbnB1dCB7CisgICAgd2lkdGg6
IDMwMHB4OworICAgIGhlaWdodDogNTBweDsKK30KKworYm9keSB7CisgICAgbWFyZ2luOiAwOwor
fQorPC9zdHlsZT4KKzxoZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGlucHV0IGlk
PSJpbnB1dCIgdHlwZT0iZGF0ZSIvPgorPHByZT4xLiBJcyBzaG93aW5nIGRhdGUgcGlja2VyPyA8
c3BhbiBpZD0iYmVmb3JlIj48L3NwYW4+PC9wcmU+Cis8cHJlPjIuIElzIHNob3dpbmcgZGF0ZSBw
aWNrZXI/IDxzcGFuIGlkPSJhZnRlciI+PC9zcGFuPjwvcHJlPgorPGJyPgorPGRpdj5UaGlzIHRl
c3QgdmVyaWZpZXMgdGhhdCBhIGRhdGUgcGlja2VyIGlzIHByZXNlbnRlZCB3aGVuIGNsaWNraW5n
IG9uIGEgZGF0ZSBpbnB1dC48L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKK30KKworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBh
d2FpdCBVSUhlbHBlci5hY3RpdmF0ZUFuZFdhaXRGb3JJbnB1dFNlc3Npb25BdCgxNTAsIDI1KTsK
KworICAgIGJlZm9yZS50ZXh0Q29udGVudCA9IGF3YWl0IFVJSGVscGVyLmlzU2hvd2luZ0RhdGVU
aW1lUGlja2VyKCk7CisgICAgaW5wdXQuYmx1cigpOworICAgIGFmdGVyLnRleHRDb250ZW50ID0g
YXdhaXQgVUlIZWxwZXIuaXNTaG93aW5nRGF0ZVRpbWVQaWNrZXIoKTsKKworICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGV0aW1lbG9jYWwvZGF0ZXRpbWVsb2NhbC1zaG93LWhpZGUt
cGlja2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZXRpbWVsb2Nh
bC9kYXRldGltZWxvY2FsLXNob3ctaGlkZS1waWNrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmIwMWZmM2Q4NWI4YWQ0YTQ3YTllYmQ1YjM3ZWQ5MzRkMjY4NzZjMGIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGV0aW1lbG9jYWwvZGF0ZXRpbWVsb2NhbC1z
aG93LWhpZGUtcGlja2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworMS4gSXMgc2hv
d2luZyBkYXRlIHBpY2tlcj8gdHJ1ZQorMi4gSXMgc2hvd2luZyBkYXRlIHBpY2tlcj8gZmFsc2UK
KworVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgYSBkYXRlIHBpY2tlciBpcyBwcmVzZW50ZWQgd2hl
biBjbGlja2luZyBvbiBhIGRhdGV0aW1lLWxvY2FsIGlucHV0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9kYXRldGltZWxvY2FsL2RhdGV0aW1lbG9jYWwtc2hvdy1oaWRlLXBp
Y2tlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRldGltZWxvY2FsL2RhdGV0aW1l
bG9jYWwtc2hvdy1oaWRlLXBpY2tlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkNTBmM2YxMjlmMDk3NmI1
MjZhOWQ5MTUxMzU4MzQyNjNmMjI3MWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2RhdGV0aW1lbG9jYWwvZGF0ZXRpbWVsb2NhbC1zaG93LWhpZGUtcGlja2VyLmh0
bWwKQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1z
Y2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2lucHV0IHsKKyAgICB3aWR0aDog
MzAwcHg7CisgICAgaGVpZ2h0OiA1MHB4OworfQorCitib2R5IHsKKyAgICBtYXJnaW46IDA7Cit9
Cis8L3N0eWxlPgorPGhlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8aW5wdXQgaWQ9
ImlucHV0IiB0eXBlPSJkYXRldGltZS1sb2NhbCIvPgorPHByZT4xLiBJcyBzaG93aW5nIGRhdGUg
cGlja2VyPyA8c3BhbiBpZD0iYmVmb3JlIj48L3NwYW4+PC9wcmU+Cis8cHJlPjIuIElzIHNob3dp
bmcgZGF0ZSBwaWNrZXI/IDxzcGFuIGlkPSJhZnRlciI+PC9zcGFuPjwvcHJlPgorPGJyPgorPGRp
dj5UaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBhIGRhdGUgcGlja2VyIGlzIHByZXNlbnRlZCB3aGVu
IGNsaWNraW5nIG9uIGEgZGF0ZXRpbWUtbG9jYWwgaW5wdXQuPC9kaXY+Cis8L2JvZHk+Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9CisKK2FzeW5jIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CisgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVBbmRXYWl0Rm9ySW5wdXRT
ZXNzaW9uQXQoMTUwLCAyNSk7CisKKyAgICBiZWZvcmUudGV4dENvbnRlbnQgPSBhd2FpdCBVSUhl
bHBlci5pc1Nob3dpbmdEYXRlVGltZVBpY2tlcigpOworICAgIGlucHV0LmJsdXIoKTsKKyAgICBh
ZnRlci50ZXh0Q29udGVudCA9IGF3YWl0IFVJSGVscGVyLmlzU2hvd2luZ0RhdGVUaW1lUGlja2Vy
KCk7CisKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1MTA1ZDdk
YWQ0M2Q3ZTgxODgyNjRiM2I4OGE0Mjc4ZWM4ZGRmMDYyLi5hYTI0YWVjNmJkMWM0MzE3NmUwYWUw
ZWJiZjlhODRjNDU3NjUyYjFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMzQ3Myw2ICszNDczLDEwIEBAIHdlYmtpdC5vcmcvYi8yMTQ0OTggaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb3JzL3JlbW90ZS1vcmlnaW4uaHRtIFsgUGFzCiAK
IGZhc3QvdGV4dC9zZWxlY3Rpb24taXMtcHJldmVudC1kZWZhdWx0ZWQuaHRtbCBbIEZhaWx1cmUg
XQogCisjIEZJWE1FOiBUaGVzZSB0ZXN0cyByZXF1aXJlIFVJU2NyaXB0Q29udHJvbGxlcklPUyBh
ZGRpdGlvbnMgdG8ga25vdyB3aGVuIGEgZGF0ZS90aW1lIHBpY2tlciBpcyBwcmVzZW50ZWQKK2Zh
c3QvZm9ybXMvZGF0ZS9kYXRlLXNob3ctaGlkZS1waWNrZXIuaHRtbCBbIFNraXAgXQorZmFzdC9m
b3Jtcy9kYXRldGltZWxvY2FsL2RhdGV0aW1lbG9jYWwtc2hvdy1oaWRlLXBpY2tlci5odG1sIFsg
U2tpcCBdCisKICMgPHJkYXI6Ly9wcm9ibGVtLzU5NjM2MTE1PiBSRUdSRVNTSU9OOiBbIGlPUyAm
IG1hY09TIF0gdHdvIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJ
IGFyZSBmYWlsaW5nCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQ
SS9pbXBvcnRfZXhwb3J0L3JzYV9pbXBvcnRLZXkuaHR0cHMud29ya2VyLmh0bWwgWyBGYWlsdXJl
IF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2ltcG9ydF9l
eHBvcnQvdGVzdF9yc2FfaW1wb3J0S2V5Lmh0dHBzLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9yZXNv
dXJjZXMvdWktaGVscGVyLmpzCmluZGV4IGIzMGNmODNmOWFhYjMzN2Y5ZTQ5MjYwMTE2OTVjMzU4
MzAxMzVjYzkuLmQ3ZjAxOTRlN2JiYjVhZmFmYWYyNjVmODM0NmE0ZmI5ZTY5MTg0MzggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKKysrIGIvTGF5b3V0VGVz
dHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwpAQCAtODQxLDYgKzg0MSwxNSBAQCB3aW5kb3cuVUlI
ZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAgICAgICAgIH0pOwogICAgIH0KIAorICAgIHN0YXRp
YyBpc1Nob3dpbmdEYXRlVGltZVBpY2tlcigpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBy
b21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAo
KCkgPT4geworICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKHVp
Q29udHJvbGxlci5pc1Nob3dpbmdEYXRlVGltZVBpY2tlcik7CisgICAgICAgICAgICB9KSgpYCwg
cmVzdWx0ID0+IHJlc29sdmUocmVzdWx0ID09PSAidHJ1ZSIpKTsKKyAgICAgICAgfSk7CisgICAg
fQorCiAgICAgc3RhdGljIHpvb21TY2FsZSgpCiAgICAgewogICAgICAgICByZXR1cm4gbmV3IFBy
b21pc2UocmVzb2x2ZSA9PiB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>