<?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>130946</bug_id>
          
          <creation_ts>2014-03-30 13:29:16 -0700</creation_ts>
          <short_desc>[UI-side compositing] Proxy animations to the UI process</short_desc>
          <delta_ts>2014-06-04 00:52:37 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>995678</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-30 13:29:16 -0700</bug_when>
    <thetext>[UI-side compositing] Proxy animations to the UI process</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995681</commentid>
    <comment_count>1</comment_count>
      <attachid>228130</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-30 13:41:30 -0700</bug_when>
    <thetext>Created attachment 228130
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995682</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-30 13:43:32 -0700</bug_when>
    <thetext>Attachment 228130 did not pass style-queue:


ERROR: Source/WebCore/platform/animation/TimingFunction.h:81:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/animation/TimingFunction.h:176:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/animation/TimingFunction.h:224:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 3 in 43 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995704</commentid>
    <comment_count>3</comment_count>
      <attachid>228130</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-30 19:06:50 -0700</bug_when>
    <thetext>Comment on attachment 228130
Patch

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

&gt; Source/WebCore/ChangeLog:48
&gt; +        * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
&gt; +        * platform/graphics/ca/win/PlatformCAAnimationWin.h: Added.

Not added to the project file?

&gt; Source/WebKit2/ChangeLog:16
&gt; +        Add support the &quot;animationDidStart&quot; callback and sending this back to the

add support the?

&gt; Source/WebKit2/ChangeLog:24
&gt; +        and that the RemoteLayerTreeHost have a reference to the drawing area.

This is slightly unfortunate.

&gt; Source/WebCore/platform/animation/TimingFunction.h:193
&gt; +    static PassRefPtr&lt;StepsTimingFunction&gt; create()

newline above.

&gt; Source/WebCore/platform/animation/TimingFunction.h:213
&gt; +    void setStepAtStart(bool stepsAtStart) { m_stepAtStart = stepsAtStart; }

step or steps?

&gt; Source/WebCore/platform/graphics/ca/mac/PlatformCAAnimationMac.h:30
&gt; +#include &lt;wtf/RetainPtr.h&gt;

newline above

&gt; Source/WebCore/platform/graphics/ca/mac/PlatformCAAnimationMac.h:34
&gt; +OBJC_CLASS CAPropertyAnimation;
&gt; +OBJC_CLASS NSString;
&gt; +OBJC_CLASS CAMediaTimingFunction;

sort

&gt; Source/WebCore/platform/graphics/ca/mac/PlatformCAAnimationMac.mm:2
&gt; - * Copyright (C) 2010 Apple Inc. All rights reserved.
&gt; + * Copyright (C) 2014 Apple Inc. All rights reserved.

...

&gt; Source/WebCore/platform/graphics/ca/win/PlatformCAAnimationWin.h:32
&gt; +#include &lt;wtf/RetainPtr.h&gt;

newline above

&gt; Source/WebCore/platform/graphics/ca/win/PlatformCAAnimationWin.h:42
&gt; +//    static PassRefPtr&lt;PlatformCAAnimation&gt; create(PlatformAnimationRef);

??? (commented out)

&gt; Source/WebCore/platform/graphics/ca/win/PlatformCAAnimationWin.h:48
&gt; +    virtual PassRefPtr&lt;PlatformCAAnimation&gt; copy() const override;

in some of the other classes (the timing functions), this was called clone. here, copy. should we pick one?

&gt; Source/WebKit2/Platform/IPC/ArgumentCoders.h:203
&gt; +        for (typename HashSetType::const_iterator it = hashSet.begin(), end = hashSet.end(); it != end; ++it)

isn&apos;t this a good candidate for range-based for?

&gt; Source/WebKit2/WebProcess/WebPage/mac/GraphicsLayerCARemote.cpp:61
&gt; +// FIXME: reject filter animations

if we don&apos;t support them yet, shouldn&apos;t we reject them now? :D

&gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:62
&gt; +    if ((self = [super init])) {

I think we tend to use an early return here but I admit it doesn&apos;t gain us much.

&gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:159
&gt; +

no need for this newline

&gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:162
&gt; +            encoder &lt;&lt; *static_cast&lt;LinearTimingFunction*&gt;(timingFunction.get());

I think encoder &lt;&lt; static_cast&lt;LinearTimingFunction&gt;(*timingFunction); might have the same effect with less wackiness?

&gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:243
&gt; +                if (!decoder.decode(*static_cast&lt;LinearTimingFunction*&gt;(timingFunction.get())))

ditto

&gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:267
&gt; +#pragma mark -

?

&gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:306
&gt; +        m_properties.hasNonZeroBeginTime = value;

Is this a &quot;had&quot;, then, according to the comment?

&gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:615
&gt; +            [NSNumber numberWithDouble:color.red()],

@[ @(color.red()), @(color.green()), @(color.blue()), @(color.alpha()) ];?

&gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:625
&gt; +            [NSNumber numberWithDouble:point.x()],

ditto

&gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:281
&gt; +    // FIXME: remove from m_properties.addedAnimations ?

probably?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995759</commentid>
    <comment_count>4</comment_count>
      <attachid>228151</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-30 22:57:44 -0700</bug_when>
    <thetext>Created attachment 228151
For Win EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995761</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-30 22:58:53 -0700</bug_when>
    <thetext>Attachment 228151 did not pass style-queue:


ERROR: Source/WebCore/platform/animation/TimingFunction.h:81:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/animation/TimingFunction.h:176:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/animation/TimingFunction.h:224:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 3 in 44 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995879</commentid>
    <comment_count>6</comment_count>
      <attachid>228182</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-31 08:57:48 -0700</bug_when>
    <thetext>Created attachment 228182
For Win EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995880</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-31 08:59:51 -0700</bug_when>
    <thetext>Attachment 228182 did not pass style-queue:


ERROR: Source/WebCore/platform/animation/TimingFunction.h:81:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/animation/TimingFunction.h:176:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/animation/TimingFunction.h:224:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 3 in 44 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995925</commentid>
    <comment_count>8</comment_count>
      <attachid>228182</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-03-31 11:35:46 -0700</bug_when>
    <thetext>Comment on attachment 228182
For Win EWS

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

I also needed to:
1. Add a `#include &quot;GraphicsContext.h&quot;&apos; to PlatformCALayerWinInternal.cpp. I guess the header includes are a little different now.
2. Continue to have a friend relationship between PlatformCAAnimation and PlatformCALayerWin, so that PlatformCALayerWin could call &quot;setActualStartTimeIfNeeded&quot; from animationStarted.

&gt; Source/WebCore/platform/graphics/ca/win/PlatformCAAnimationWin.cpp:147
&gt;      return adoptRef(new PlatformCAAnimation(type, keyPath));

return adoptRef(new PlatformCAAnimationWin(type, keyPath));
                                       ^^^

&gt; Source/WebCore/platform/graphics/ca/win/PlatformCAAnimationWin.cpp:152
&gt;      return adoptRef(new PlatformCAAnimation(animation));

return adoptRef(new PlatformCAAnimationWin(type, keyPath));
                                       ^^^

&gt; Source/WebCore/platform/graphics/ca/win/PlatformCAAnimationWin.cpp:156
&gt;      : m_type(type)

: PlatformCAAnimation(type)

&gt; Source/WebCore/platform/graphics/ca/win/PlatformCAAnimationWin.cpp:169
&gt;          m_type = Basic;

This needs to be setType(Basic); (and later, setType(Keyframe);)

&gt; Source/WebCore/platform/graphics/ca/win/PlatformCAAnimationWin.cpp:302
&gt;      CACFTimingFunctionRef timingFunc = CACFAnimationGetTimingFunction(value-&gt;m_animation.get());

Need to use &quot;toPlatformCAAnimationWin(value)-&gt;m_animation.get()&quot;

&gt; Source/WebCore/platform/graphics/ca/win/PlatformCAAnimationWin.cpp:389
&gt;      CACFAnimationSetFromValue(m_animation.get(), CACFAnimationGetFromValue(value-&gt;platformAnimation()));

toPlatformCAAnimationWin(value)-&gt;platformAnimation()

&gt; Source/WebCore/platform/graphics/ca/win/PlatformCAAnimationWin.cpp:440
&gt;          return;

Need to use toPlatformCAAnimationWin(value)-&gt;platformAnimation() for next line.

&gt; Source/WebCore/platform/graphics/ca/win/PlatformCAAnimationWin.cpp:515
&gt;          return;

toPlatformCAAnimationWin on next line.

&gt; Source/WebCore/platform/graphics/ca/win/PlatformCAAnimationWin.cpp:537
&gt;          return;

toPlatformCAAnimationWin on next line.

&gt; Source/WebCore/platform/graphics/ca/win/PlatformCAAnimationWin.cpp:559
&gt;      CACFAnimationSetTimingFunctions(m_animation.get(), CACFAnimationGetTimingFunctions(value-&gt;platformAnimation()));

Need to use toPlatformCAAnimationWin(value)-&gt;platformAnimation()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995926</commentid>
    <comment_count>9</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-03-31 11:38:03 -0700</bug_when>
    <thetext>This line continues to fail on Windows (32-bit) build:

COMPILE_ASSERT(sizeof(RenderStyle) == sizeof(SameSizeAsRenderStyle), RenderStyle_should_stay_small);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995963</commentid>
    <comment_count>10</comment_count>
      <attachid>228195</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-31 13:01:01 -0700</bug_when>
    <thetext>Created attachment 228195
For Win EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995965</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-31 13:03:57 -0700</bug_when>
    <thetext>Attachment 228195 did not pass style-queue:


ERROR: Source/WebCore/platform/animation/TimingFunction.h:81:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/animation/TimingFunction.h:176:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/animation/TimingFunction.h:224:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 3 in 45 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995980</commentid>
    <comment_count>12</comment_count>
      <attachid>228195</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-03-31 13:56:25 -0700</bug_when>
    <thetext>Comment on attachment 228195
For Win EWS

Attachment 228195 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/5233147704770560

New failing tests:
media/W3C/audio/canPlayType/canPlayType_application_octet_stream_with_codecs_1.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995981</commentid>
    <comment_count>13</comment_count>
      <attachid>228200</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-03-31 13:56:29 -0700</bug_when>
    <thetext>Created attachment 228200
Archive of layout-test-results from webkit-ews-15 for mac-mountainlion-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: webkit-ews-15  Port: mac-mountainlion-wk2  Platform: Mac OS X 10.8.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995988</commentid>
    <comment_count>14</comment_count>
      <attachid>228202</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-31 14:03:07 -0700</bug_when>
    <thetext>Created attachment 228202
For Win EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995991</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-31 14:05:52 -0700</bug_when>
    <thetext>Attachment 228202 did not pass style-queue:


ERROR: Source/WebCore/platform/animation/TimingFunction.h:81:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/animation/TimingFunction.h:176:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/animation/TimingFunction.h:224:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 3 in 46 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996042</commentid>
    <comment_count>16</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-31 16:17:08 -0700</bug_when>
    <thetext>https://trac.webkit.org/r166542</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013260</commentid>
    <comment_count>17</comment_count>
      <attachid>228202</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-06-04 00:52:37 -0700</bug_when>
    <thetext>Comment on attachment 228202
For Win EWS

Cleared review? from attachment 228202 so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228130</attachid>
            <date>2014-03-30 13:41:30 -0700</date>
            <delta_ts>2014-03-30 22:57:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130946-20140330134109.patch</filename>
            <type>text/plain</type>
            <size>161160</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2MzkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzc5MzA1NmI1YWE3OGIy
YmM1NzVhOTRlNDk0YzY3NGExNDZmOWFmZi4uY2ExMzYxM2IxNDE4NTg3ZmUxZGI2NTJkZWIzYmYz
MzBhMTYyMjkyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE0LTAzLTMwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtVSS1zaWRlIGNv
bXBvc2l0aW5nXSBQcm94eSBhbmltYXRpb25zIHRvIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA5NDYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRvIHByb3h5IENB
IGFuaW1hdGlvbnMsIG1ha2UgUGxhdGZvcm1DQUFuaW1hdGlvbiBhIHB1cmUgdmlydHVhbCBiYXNl
IGNsYXNzCisgICAgICAgIGFuZCBzdWJjbGFzcyBmb3IgTWFjLCBXaW5kb3dzLCBhbmQgUmVtb3Rl
IChqdXN0IGxpa2UgUGxhdGZvcm1DQUxheWVyKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBjb2Rp
bmcgc3VwcG9ydCBmb3IgVGltaW5nRnVuY3Rpb25zLgorICAgICAgICAKKyAgICAgICAgRG8gc29t
ZSBtaW5vciAjaW5jbHVkZSB0aWR5dXAuCisgICAgICAgIAorICAgICAgICBNaW5vciByZWZhY3Rv
ciBpbiBHcmFwaGljc0xheWVyQ0EgdG8gc2hhcmUgc29tZSBhbmltYXRpb25zIGNvZGUuCisKKyAg
ICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9u
Lmg6IEFkZCBzZXR0ZXJzIG5lZWQgZm9yIGVuY29kZS9kZWNvZGUuCisgICAgICAgIChXZWJDb3Jl
OjpDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uOjpzZXRWYWx1ZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbjo6c2V0VGltaW5nRnVuY3Rpb25QcmVzZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6U3RlcHNUaW1pbmdGdW5jdGlvbjo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlN0ZXBzVGltaW5nRnVuY3Rpb246OnNldE51bWJlck9mU3RlcHMpOgorICAgICAg
ICAoV2ViQ29yZTo6U3RlcHNUaW1pbmdGdW5jdGlvbjo6c2V0U3RlcEF0U3RhcnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZVBsYXRmb3JtQ0FBbmltYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjphbmltYXRpb25DYW5CZUFjY2VsZXJhdGVk
KTogTWlub3IgcmVmYWN0b3Igc28gd2UgY2FuIHNoYXJlCisgICAgICAgIGNvZGUgd2l0aCBHcmFw
aGljc0xheWVyQ0FSZW1vdGUuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmFk
ZEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUJh
c2ljQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3NSZWZQdHI8UGxhdGZvcm1DQUFu
aW1hdGlvbj5HcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUtleWZyYW1lQW5pbWF0aW9uKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmg6CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uOjp+UGxhdGZvcm1DQUFuaW1hdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uOjppc1BsYXRmb3JtQ0FBbmltYXRpb25NYWMp
OgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1DQUFuaW1hdGlvbjo6aXNQbGF0Zm9ybUNBQW5p
bWF0aW9uV2luKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb246OmlzUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
Q0FBbmltYXRpb246OnNldFR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1Bs
YXRmb3JtQ0FMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0
Zm9ybUNBQW5pbWF0aW9uTWFjLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW06CisgICAgICAgIChQbGF0Zm9ybUNB
TGF5ZXJNYWM6OmFkZEFuaW1hdGlvbkZvcktleSk6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJN
YWM6OmFuaW1hdGlvbkZvcktleSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFj
L1RpbGVDb250cm9sbGVyLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9Q
bGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5oOiBBZGRlZC4KKwogMjAxNC0wMy0yNyAgSm9z
ZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVz
ZWQgTG9jYWxlTWFjOjpjcmVhdGUgbWV0aG9kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjAxYTk5ZGYxMDdjNmNh
NWEyNjM1YTg0NjY1NjBiZDdmOTYzNGQwOC4uM2E4NmM5YTE3ODdlMTdmMWM5OTIwMzhhMmJjNzZj
ZDFlZGE2NzE0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMiBAQAorMjAxNC0wMy0zMCAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBbVUktc2lkZSBj
b21wb3NpdGluZ10gUHJveHkgYW5pbWF0aW9ucyB0byB0aGUgVUkgcHJvY2VzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwOTQ2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBBZGQgZW5jb2Rp
bmcvZGVjb2Rpbmcgb2YgVGltaW5nRnVuY3Rpb25zLiBBZGQgZW5jb2Rpbmcgc3VwcG9ydAorICAg
ICAgICBmb3IgSGFzaFNldC4KKyAgICAgICAgCisgICAgICAgIEFkZCBQbGF0Zm9ybUNBQW5pbWF0
aW9uUmVtb3RlIGFuZCBoYXZlIFBsYXRmb3JtQ0FMYXllclJlbW90ZSBhbGxvdworICAgICAgICBh
bmltYXRpb25zIG5vdy4gUGxhdGZvcm1DQUxheWVyUmVtb3RlJ3MgcHJvcGVydGllcyBhcmUgZGVm
aW5lZCBpbiB0aGUgY2xhc3MsCisgICAgICAgIGFzIGlzIHRoZSBlbmNvZGluZy9kZWNvZGluZyAo
bXVjaCBjbGVhbmVyIHRoYW4gaGF2aW5nIHRoZW0gaW4gdGhlIHRyYW5zYWN0aW9uCisgICAgICAg
IGNsYXNzIEkgdGhpbmspLgorICAgICAgICAKKyAgICAgICAgQWRkIHN1cHBvcnQgdGhlICJhbmlt
YXRpb25EaWRTdGFydCIgY2FsbGJhY2sgYW5kIHNlbmRpbmcgdGhpcyBiYWNrIHRvIHRoZQorICAg
ICAgICB3ZWIgcHJvY2Vzcy4gVGhpcyBpbnZvbHZlcyBhIEhhc2hNYXAgb2YgbGF5ZXJJRC0+V0tB
bmltYXRpb25EZWxlZ2F0ZSBzdG9yZWQKKyAgICAgICAgb24gdGhlIFJlbW90ZUxheWVyVHJlZUhv
c3QsIGFuZCBhIG1lc3NhZ2Ugc2VuZCB2aWEgdGhlIERyYXdpbmdBcmVhLiBPbiB0aGUKKyAgICAg
ICAgb3RoZXIgc2lkZSwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCBzdG9yZXMgYSBIYXNoTWFwIG9m
IGxheWVySUQtPlBsYXRmb3JtQ0FMYXllclJlbW90ZSoKKyAgICAgICAgZm9yIGxheWVycyB3aGlj
aCBoYXZlIGp1c3Qgc3RhcnRlZCBhbmltYXRpb25zLCB3aGljaCBpcyB1c2VkIHRvIGdldCB0aGUK
KyAgICAgICAgUGxhdGZvcm1DQUxheWVyKiB0byBjYWxsIGFuaW1hdGlvbkRpZFN0YXJ0KCkgb24u
CisgICAgICAgIAorICAgICAgICBUaGlzIHJlcXVpcmVzIHRoYXQgdGhlIFJlbW90ZUxheWVyVHJl
ZUhvc3QqIGJlIHBhc3NlZCBkb3duIGludG8gcHJvcGVydHkgYXBwbGljYXRpb24sCisgICAgICAg
IGFuZCB0aGF0IHRoZSBSZW1vdGVMYXllclRyZWVIb3N0IGhhdmUgYSByZWZlcmVuY2UgdG8gdGhl
IGRyYXdpbmcgYXJlYS4KKyAgICAgICAgCisgICAgICAgIFRvIGV2ZXJ5IENBTGF5ZXIgaW4gdGhl
IFVJIHByb2Nlc3Mgd2UgLXNldFZhbHVlOmZvcktleTogdG8gdHJhY2sgdGhlIFBsYXRmb3JtTGF5
ZXJJRCwKKyAgICAgICAgc28gd2UgY2FuIGdldCBiYWNrIHRvIGl0IGluIG9yZGVyIHRvIGRpc3Bh
dGNoICJhbmltYXRpb25EaWRTdGFydCIuCisgICAgICAgIAorICAgICAgICBSZXBsYWNlIHNvbWUg
InVzaW5nIG5hbWVzcGFjZSBXZWJLaXQiIHdpdGggIm5hbWVzcGFjZSBXZWJLaXQgeyB9Ii4KKwor
ICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVy
PExpbmVhclRpbWluZ0Z1bmN0aW9uPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxMaW5lYXJUaW1pbmdGdW5jdGlvbj46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbj46OmVuY29kZSk6CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbj46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8U3RlcHNUaW1pbmdGdW5jdGlvbj46OmVuY29kZSk6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8U3RlcHNUaW1pbmdGdW5jdGlvbj46OmRlY29k
ZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAq
IFNoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW06CisgICAgICAgICogU2hhcmVk
L21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIuaDoKKyAgICAgICAgKiBTaGFyZWQv
bWFjL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbToKKyAgICAgICAgKFdlYktpdDo6
YXBwbHlQcm9wZXJ0aWVzVG9MYXllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJl
ZVByb3BlcnR5QXBwbGllcjo6YXBwbHlQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBTaGFyZWQvbWFj
L1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmg6CisgICAgICAgICogU2hhcmVkL21hYy9SZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6TGF5ZXJQcm9wZXJ0aWVzKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6
ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246Okxh
eWVyUHJvcGVydGllczo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6ZHVtcENoYW5nZWRMYXll
cnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUmVtb3RlTGF5ZXJUcmVlSG9zdElPUy5tbToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6bGF5ZXJJRCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OmNyZWF0ZUxheWVyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW06CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OlJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5OjphY2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0YXJ0KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6c2hvd0RlYnVnSW5kaWNh
dG9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QuaDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6YW5pbWF0aW9uRGVsZWdhdGVzKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW06CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OlJlbW90ZUxheWVyVHJlZUhvc3QpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0Ojp1cGRhdGVMYXllclRyZWUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjpsYXllcldpbGxCZVJlbW92ZWQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjphbmltYXRpb25EaWRTdGFydCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OmxheWVySUQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjpjcmVhdGVMYXllcik6CisgICAgICAgICog
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9EcmF3aW5nQXJlYS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYTo6YWNj
ZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R3JhcGhpY3NM
YXllckNBUmVtb3RlOjpjcmVhdGVQbGF0Zm9ybUNBQW5pbWF0aW9uKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1v
dGUubW06IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1D
QUxheWVyUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3Rl
OjpyZWN1cnNpdmVCdWlsZFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1D
QUxheWVyUmVtb3RlOjphbmltYXRpb25TdGFydGVkKToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZv
cm1DQUxheWVyUmVtb3RlOjphZGRBbmltYXRpb25Gb3JLZXkpOgorICAgICAgICAoV2ViS2l0OjpQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlbW92ZUFuaW1hdGlvbkZvcktleSk6CisgICAgICAgIChX
ZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZTo6YW5pbWF0aW9uRm9yS2V5KToKKyAgICAgICAg
KFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6cmVjdXJzaXZlQnVpbGRUcmFuc2FjdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFkZEFuaW1hdGlvbkZvcktleSk6
IERlbGV0ZWQuCisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlbW92ZUFuaW1hdGlv
bkZvcktleSk6IERlbGV0ZWQuCisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFuaW1h
dGlvbkZvcktleSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6bGF5ZXJXaWxsQmVEZXN0cm95
ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVDb250ZXh0Ojp3aWxsU3RhcnRB
bmltYXRpb25PbkxheWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlQ29udGV4
dDo6YW5pbWF0aW9uRGlkU3RhcnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6YWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWE6OmNvbW1pdFRyYW5zaWVudFpvb20pOgorCiAyMDE0LTAzLTI3ICBBbGV4ZXkgUHJvc2t1cnlh
a292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIENvbmZpcm0gY29tcG9zaXRpb24gaW4gcmVz
aWduRmlyc3RSZXNwb25kZXIsIGRvbid0IGNhbmNlbCBpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRl
eCBiNTMzNDVmMmIzYzhmNWNkNTcyYjU3NTcxNzRkN2ZjYzNlMGExZTEwLi5hYWRmZjg4NGVlNTZl
ZTRiNzQ3ZGFmMzQzNDNmODI1NTUzZjA5MjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNzE2
LDYgKzcxNiw3IEBAIF9fWk43V2ViQ29yZTE2bmV4dExpbmVQb3NpdGlvbkVSS05TXzE1VmlzaWJs
ZVBvc2l0aW9uRWlOU18xMkVkaXRhYmxlVHlwZUUKIF9fWk43V2ViQ29yZTE2c2NyaXB0TmFtZVRv
Q29kZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE2c3RhcnRPZlBhcmFncmFwaEVSS05T
XzE1VmlzaWJsZVBvc2l0aW9uRU5TXzI3RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlRQogX19a
TjdXZWJDb3JlMTZ0aHJlYWRHbG9iYWxEYXRhRXYKK19fWk43V2ViQ29yZTE2dG9DQUZpbGxNb2Rl
VHlwZUVOU18xOVBsYXRmb3JtQ0FBbmltYXRpb24xMkZpbGxNb2RlVHlwZUUKIF9fWk43V2ViQ29y
ZTE3Q3JlZGVudGlhbFN0b3JhZ2UyNGdldEZyb21QZXJzaXN0ZW50U3RvcmFnZUVSS05TXzE1UHJv
dGVjdGlvblNwYWNlRQogX19aTjdXZWJDb3JlMTdDcmVkZW50aWFsU3RvcmFnZTNnZXRFUktOU18x
NVByb3RlY3Rpb25TcGFjZUUKIF9fWk43V2ViQ29yZTE3RE9NSW1wbGVtZW50YXRpb24xM2lzWE1M
TUlNRVR5cGVFUktOM1dURjZTdHJpbmdFCkBAIC03OTEsOSArNzkyLDYgQEAgX19aTjdXZWJDb3Jl
MTlNZWRpYVNlc3Npb25NYW5hZ2VyMTdiZWdpbkludGVycnVwdGlvbkV2CiBfX1pON1dlYkNvcmUx
OU1lZGlhU2Vzc2lvbk1hbmFnZXIxN3JlbW92ZVJlc3RyaWN0aW9uRU5TXzEyTWVkaWFTZXNzaW9u
OU1lZGlhVHlwZUVqCiBfX1pON1dlYkNvcmUxOU1lZGlhU2Vzc2lvbk1hbmFnZXIzMGRpZFJlY2Vp
dmVSZW1vdGVDb250cm9sQ29tbWFuZEVOU18xMk1lZGlhU2Vzc2lvbjI0UmVtb3RlQ29udHJvbENv
bW1hbmRUeXBlRQogX19aTjdXZWJDb3JlMTlNZWRpYVNlc3Npb25NYW5hZ2VyOWFkZENsaWVudEVQ
TlNfMjVNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50RQotX19aTjdXZWJDb3JlMTlQbGF0Zm9ybUNB
QW5pbWF0aW9uMTBzZXRUb1ZhbHVlRVJLTlNfMjBUcmFuc2Zvcm1hdGlvbk1hdHJpeEUKLV9fWk43
V2ViQ29yZTE5UGxhdGZvcm1DQUFuaW1hdGlvbjZjcmVhdGVFUDE5Q0FQcm9wZXJ0eUFuaW1hdGlv
bgotX19aTjdXZWJDb3JlMTlQbGF0Zm9ybUNBQW5pbWF0aW9uRDFFdgogX19aTjdXZWJDb3JlMTlS
ZXNvdXJjZVJlcXVlc3RCYXNlMTFzZXRIVFRQQm9keUVOM1dURjEwUGFzc1JlZlB0cklOU184Rm9y
bURhdGFFRUUKIF9fWk43V2ViQ29yZTE5UmVzb3VyY2VSZXF1ZXN0QmFzZTEzc2V0SFRUUE1ldGhv
ZEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE5UmVzb3VyY2VSZXF1ZXN0QmFzZTE4c2V0
SFRUUEhlYWRlckZpZWxkRVBLY1JLTjNXVEY2U3RyaW5nRQpAQCAtODk5LDEwICs4OTcsMTIgQEAg
X19aTjdXZWJDb3JlMjFtZW1vcnlQcmVzc3VyZUhhbmRsZXJFdgogX19aTjdXZWJDb3JlMjFyZXNv
dXJjZUxvYWRTY2hlZHVsZXJFdgogX19aTjdXZWJDb3JlMjFzZXRHbG9iYWxJY29uRGF0YWJhc2VF
UE5TXzE2SWNvbkRhdGFiYXNlQmFzZUUKIF9fWk43V2ViQ29yZTIxc2V0UGxhdGZvcm1TdHJhdGVn
aWVzRVBOU18xOFBsYXRmb3JtU3RyYXRlZ2llc0UKK19fWk43V2ViQ29yZTIxdG9DQVZhbHVlRnVu
Y3Rpb25UeXBlRU5TXzE5UGxhdGZvcm1DQUFuaW1hdGlvbjE3VmFsdWVGdW5jdGlvblR5cGVFCiBf
X1pON1dlYkNvcmUyMkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQyNHJlc3RhcnRTbmFwc2hvdHRlZFBs
dWdJbkV2CiBfX1pON1dlYkNvcmUyMkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQyOXNldElzUHJpbWFy
eVNuYXBzaG90dGVkUGx1Z0luRWIKIF9fWk43V2ViQ29yZTIyTXV0YWJsZVN0eWxlUHJvcGVydGll
czI1ZW5zdXJlQ1NTU3R5bGVEZWNsYXJhdGlvbkV2CiBfX1pON1dlYkNvcmUyMk11dGFibGVTdHls
ZVByb3BlcnRpZXNEMUV2CitfX1pON1dlYkNvcmUyMlBsYXRmb3JtQ0FBbmltYXRpb25NYWM2Y3Jl
YXRlRVAxOUNBUHJvcGVydHlBbmltYXRpb24KIF9fWk43V2ViQ29yZTIyUnVudGltZUVuYWJsZWRG
ZWF0dXJlczE0c2hhcmVkRmVhdHVyZXNFdgogX19aTjdXZWJDb3JlMjJTY3JpcHRFeGVjdXRpb25D
b250ZXh0MjZjYW5TdXNwZW5kQWN0aXZlRE9NT2JqZWN0c0V2CiBfX1pON1dlYkNvcmUyMlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQydm1FdgpAQCAtOTM4LDYgKzkzOCw3IEBAIF9fWk43V2ViQ29yZTIz
ZGVjb2RlSG9zdE5hbWVXaXRoUmFuZ2VFUDhOU1N0cmluZzhfTlNSYW5nZQogX19aTjdXZWJDb3Jl
MjNlbmNvZGVIb3N0TmFtZVdpdGhSYW5nZUVQOE5TU3RyaW5nOF9OU1JhbmdlCiBfX1pON1dlYkNv
cmUyM2dldEZpbGVNb2RpZmljYXRpb25UaW1lRVJLTjNXVEY2U3RyaW5nRVJsCiBfX1pON1dlYkNv
cmUyM2dldEhvc3RuYW1lc1dpdGhDb29raWVzRVJLTlNfMjFOZXR3b3JrU3RvcmFnZVNlc3Npb25F
Uk4zV1RGN0hhc2hTZXRJTlMzXzZTdHJpbmdFTlMzXzEwU3RyaW5nSGFzaEVOUzNfMTBIYXNoVHJh
aXRzSVM1X0VFRUUKK19fWk43V2ViQ29yZTIzdG9DQU1lZGlhVGltaW5nRnVuY3Rpb25FUEtOU18x
NFRpbWluZ0Z1bmN0aW9uRWIKIF9fWk43V2ViQ29yZTI0Q2FjaGVkUmVzb3VyY2VIYW5kbGVCYXNl
MTFzZXRSZXNvdXJjZUVQTlNfMTRDYWNoZWRSZXNvdXJjZUUKIF9fWk43V2ViQ29yZTI0RG9jdW1l
bnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJzRm9yRVBOU180Tm9kZUVOU18xNERvY3VtZW50TWFy
a2VyMTFNYXJrZXJUeXBlc0UKIF9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
MTNyZW1vdmVNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxMU1hcmtlclR5cGVzRQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDUw
MzIwYjJjOWU4Mzc0MWU2NjNlNzUyMGQ4ZTI2YTdjMGFkMjY3ZTAuLjk5OGRjMWMxNjhhYWM3OWJh
OTJkNmQzZTZkNzNhNDVlOGFkNGNiZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUwNCw2ICs1MDQsNyBAQAogCQkwRjU4MEZB
RjE0OTgwMEQ0MDBGQjVCRDggLyogQW5pbWF0aW9uVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU4MEZBRTE0OTgwMEQ0MDBGQjVCRDgg
LyogQW5pbWF0aW9uVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMEY1QjdBNTQxMEY2NUQ3QTAwMzc2MzAyIC8qIFJlbmRlckVtYmVk
ZGVkT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGNUI3QTUyMTBGNjVEN0EwMDM3NjMwMiAvKiBSZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAg
Ki87IH07CiAJCTBGNUI3QTU1MTBGNjVEN0EwMDM3NjMwMiAvKiBSZW5kZXJFbWJlZGRlZE9iamVj
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1QjdB
NTMxMEY2NUQ3QTAwMzc2MzAyIC8qIFJlbmRlckVtYmVkZGVkT2JqZWN0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY1RTIwMDYxOEU3NzFGQzAw
M0VDM0U1IC8qIFBsYXRmb3JtQ0FBbmltYXRpb25NYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUUyMDA1MThFNzcxRkMwMDNFQzNFNSAvKiBQbGF0
Zm9ybUNBQW5pbWF0aW9uTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEY2MDVBRUMxNUY5NDg0ODAwNERGMEMwIC8qIFNjcm9sbGluZ0NvbnN0
cmFpbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGNjA1QUVBMTVGOTQ4NDgwMDRERjBDMCAvKiBTY3JvbGxpbmdDb25zdHJhaW50cy5jcHAgKi87
IH07CiAJCTBGNjA1QUVEMTVGOTQ4NDgwMDRERjBDMCAvKiBTY3JvbGxpbmdDb25zdHJhaW50cy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2MDVBRUIx
NUY5NDg0ODAwNERGMEMwIC8qIFNjcm9sbGluZ0NvbnN0cmFpbnRzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY2MzgzREQxODYxNUIyOTAwM0U1
REI1IC8qIFRocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjYzODNEQjE4NjE1QjI5MDAzRTVEQjUgLyogVGhyZWFk
ZWRTY3JvbGxpbmdUcmVlLmNwcCAqLzsgfTsKQEAgLTczMjAsNiArNzMyMSw3IEBACiAJCTBGNTgw
RkFFMTQ5ODAwRDQwMEZCNUJEOCAvKiBBbmltYXRpb25VdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gQW5pbWF0aW9uVXRpbGl0aWVzLmg7IHBhdGggPSBhbmltYXRp
b24vQW5pbWF0aW9uVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
NUI3QTUyMTBGNjVEN0EwMDM3NjMwMiAvKiBSZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJFbWJlZGRlZE9iamVjdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUI3QTUzMTBGNjVEN0EwMDM3NjMwMiAv
KiBSZW5kZXJFbWJlZGRlZE9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW5kZXJFbWJlZGRlZE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
RjVFMjAwNTE4RTc3MUZDMDAzRUMzRTUgLyogUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLmg7IHBh
dGggPSBjYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjYwNUFFQTE1Rjk0ODQ4MDA0REYwQzAgLyogU2Nyb2xsaW5nQ29uc3RyYWlu
dHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsaW5nQ29u
c3RyYWludHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjYwNUFFQjE1Rjk0
ODQ4MDA0REYwQzAgLyogU2Nyb2xsaW5nQ29uc3RyYWludHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2Nyb2xsaW5nQ29uc3RyYWludHMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY2MzgzREIxODYxNUIyOTAwM0U1REI1IC8qIFRocmVhZGVkU2Nyb2xsaW5n
VHJlZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaHJlYWRlZFNj
cm9sbGluZ1RyZWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU1ODQsNiAr
MTU1ODYsNyBAQAogCQkJCTI5MTdCNTY1MTQ3MzQ5OTUwMDUyQzlEMCAvKiBMYXllckZsdXNoU2No
ZWR1bGVyTWFjLmNwcCAqLywKIAkJCQk5M0Y3MkFGMTE2NjZFREZDMDAyQTAyQkQgLyogTGF5ZXJQ
b29sLmggKi8sCiAJCQkJOTNGNzJBRjIxNjY2RURGQzAwMkEwMkJEIC8qIExheWVyUG9vbC5tbSAq
LywKKwkJCQkwRjVFMjAwNTE4RTc3MUZDMDAzRUMzRTUgLyogUGxhdGZvcm1DQUFuaW1hdGlvbk1h
Yy5oICovLAogCQkJCTQ5NTg3ODFGMTJBNTdEREYwMDcyMzhBQyAvKiBQbGF0Zm9ybUNBQW5pbWF0
aW9uTWFjLm1tICovLAogCQkJCUQ2NkIyRDVCMTg2ODMwMDUwMDczQzRERCAvKiBQbGF0Zm9ybUNB
RmlsdGVyc01hYy5oICovLAogCQkJCTBGMTMxNjNGMTZFRDBDREUwMDM1Q0MwNCAvKiBQbGF0Zm9y
bUNBRmlsdGVyc01hYy5tbSAqLywKQEAgLTI0MzY3LDYgKzI0MzcwLDcgQEAKIAkJCQkxQTg1QjE5
MDBBMUIxOEEyMDBEOEM4N0MgLyogSlNIVE1MSHRtbEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDNDkxOEM5MEJGRUEwNTAwMDlENjMxNiAvKiBKU0hUTUxJRnJhbWVFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQUUyQUE5ODBBMUNERDJEMDBCNDJCMjUgLyogSlNIVE1MSW1hZ2VF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjVFMjAwNjE4RTc3MUZDMDAzRUMzRTUgLyog
UGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTdFOTcwQTFB
ODNFMzAwN0ZCOEM1IC8qIEpTSFRNTElucHV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTFBRDE0MjMxMjk1RUE3RjAwQUNBOTg5IC8qIEpTSFRNTElucHV0RWxlbWVudEN1c3RvbS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTYxNDhBNzkxMkU0MUUzQjAwNDRBNzg0IC8qIEpTSFRNTEtleWdl
bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uaAppbmRleCA2MTEzOTkzNDBjMGI5YjIxMzY1NDU5
ZjE1N2VkZDI1NTAyMTU4ZDE4Li4zNzVmZmJiMmViODgzZTFhNzQ1ODU2N2NkM2FhNmFkOWYyM2M0
ODIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5n
RnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5n
RnVuY3Rpb24uaApAQCAtMzIsNiArMzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBU
aW1pbmdGdW5jdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFRpbWluZ0Z1bmN0aW9uPiB7CiBwdWJs
aWM6CiAKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGltaW5nRnVuY3Rpb24+IGNsb25lKCkgY29u
c3QgPSAwOworCiAgICAgZW51bSBUaW1pbmdGdW5jdGlvblR5cGUgewogICAgICAgICBMaW5lYXJG
dW5jdGlvbiwgQ3ViaWNCZXppZXJGdW5jdGlvbiwgU3RlcHNGdW5jdGlvbgogICAgIH07CkBAIC02
OCwxNCArNzAsMTkgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIG90aGVyLmlzTGlu
ZWFyVGltaW5nRnVuY3Rpb24oKTsKICAgICB9Ci0gICAgCisKIHByaXZhdGU6CiAgICAgTGluZWFy
VGltaW5nRnVuY3Rpb24oKQogICAgICAgICA6IFRpbWluZ0Z1bmN0aW9uKExpbmVhckZ1bmN0aW9u
KQogICAgIHsKICAgICB9CisKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGltaW5nRnVuY3Rpb24+
IGNsb25lKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgTGluZWFyVGltaW5nRnVuY3Rpb24pOworICAgIH0KIH07Ci0gICAgCisKIGNsYXNzIEN1Ymlj
QmV6aWVyVGltaW5nRnVuY3Rpb24gOiBwdWJsaWMgVGltaW5nRnVuY3Rpb24gewogcHVibGljOgog
ICAgIGVudW0gVGltaW5nRnVuY3Rpb25QcmVzZXQgewpAQCAtMTMyLDcgKzEzOSwxNiBAQCBwdWJs
aWM6CiAgICAgZG91YmxlIHgyKCkgY29uc3QgeyByZXR1cm4gbV94MjsgfQogICAgIGRvdWJsZSB5
MigpIGNvbnN0IHsgcmV0dXJuIG1feTI7IH0KICAgICAKKyAgICB2b2lkIHNldFZhbHVlcyhkb3Vi
bGUgeDEsIGRvdWJsZSB5MSwgZG91YmxlIHgyLCBkb3VibGUgeTIpCisgICAgeworICAgICAgICBt
X3gxID0geDE7CisgICAgICAgIG1feTEgPSB5MTsKKyAgICAgICAgbV94MiA9IHgyOworICAgICAg
ICBtX3kyID0geTI7CisgICAgfQorICAgIAogICAgIFRpbWluZ0Z1bmN0aW9uUHJlc2V0IHRpbWlu
Z0Z1bmN0aW9uUHJlc2V0KCkgY29uc3QgeyByZXR1cm4gbV90aW1pbmdGdW5jdGlvblByZXNldDsg
fQorICAgIHZvaWQgc2V0VGltaW5nRnVuY3Rpb25QcmVzZXQoVGltaW5nRnVuY3Rpb25QcmVzZXQg
cHJlc2V0KSB7IG1fdGltaW5nRnVuY3Rpb25QcmVzZXQgPSBwcmVzZXQ7IH0KICAgICAKICAgICBz
dGF0aWMgY29uc3QgQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbiogZGVmYXVsdFRpbWluZ0Z1bmN0
aW9uKCkKICAgICB7CkBAIC0xNTYsNiArMTcyLDExIEBAIHByaXZhdGU6CiAgICAgewogICAgIH0K
IAorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUaW1pbmdGdW5jdGlvbj4gY2xvbmUoKSBjb25zdCBv
dmVycmlkZQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDdWJpY0JlemllclRp
bWluZ0Z1bmN0aW9uKG1fdGltaW5nRnVuY3Rpb25QcmVzZXQsIG1feDEsIG1feTEsIG1feDIsIG1f
eTIpKTsKKyAgICB9CisKICAgICBkb3VibGUgbV94MTsKICAgICBkb3VibGUgbV95MTsKICAgICBk
b3VibGUgbV94MjsKQEAgLTE2OSw2ICsxOTAsMTAgQEAgcHVibGljOgogICAgIHsKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTdGVwc1RpbWluZ0Z1bmN0aW9uKHN0ZXBzLCBzdGVwQXRTdGFy
dCkpOwogICAgIH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdGVwc1RpbWluZ0Z1bmN0aW9uPiBj
cmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdGVwc1RpbWluZ0Z1
bmN0aW9uKDEsIHRydWUpKTsKKyAgICB9CiAgICAgCiAgICAgdmlydHVhbCB+U3RlcHNUaW1pbmdG
dW5jdGlvbigpIHsgfQogICAgIApAQCAtMTgyLDcgKzIwNywxMCBAQCBwdWJsaWM6CiAgICAgfQog
ICAgIAogICAgIGludCBudW1iZXJPZlN0ZXBzKCkgY29uc3QgeyByZXR1cm4gbV9zdGVwczsgfQor
ICAgIHZvaWQgc2V0TnVtYmVyT2ZTdGVwcyhpbnQgc3RlcHMpIHsgbV9zdGVwcyA9IHN0ZXBzOyB9
CisKICAgICBib29sIHN0ZXBBdFN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9zdGVwQXRTdGFydDsg
fQorICAgIHZvaWQgc2V0U3RlcEF0U3RhcnQoYm9vbCBzdGVwc0F0U3RhcnQpIHsgbV9zdGVwQXRT
dGFydCA9IHN0ZXBzQXRTdGFydDsgfQogICAgIAogcHJpdmF0ZToKICAgICBTdGVwc1RpbWluZ0Z1
bmN0aW9uKGludCBzdGVwcywgYm9vbCBzdGVwQXRTdGFydCkKQEAgLTE5MSwxMSArMjE5LDE2IEBA
IHByaXZhdGU6CiAgICAgICAgICwgbV9zdGVwQXRTdGFydChzdGVwQXRTdGFydCkKICAgICB7CiAg
ICAgfQorCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiBjbG9uZSgpIGNv
bnN0IG92ZXJyaWRlCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0ZXBzVGlt
aW5nRnVuY3Rpb24obV9zdGVwcywgbV9zdGVwQXRTdGFydCkpOworICAgIH0KICAgICAKICAgICBp
bnQgbV9zdGVwczsKICAgICBib29sIG1fc3RlcEF0U3RhcnQ7CiB9OwotICAgIAorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBUaW1pbmdGdW5jdGlvbl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNw
cAppbmRleCAxNDM1MTBhNDA3MTg0MTY2YTA0M2E2NmRlYTk1Y2EyOTdlMmU3NzVmLi4wOWI1Yjg5
NGZjNzk1NjBkMjIwOTBiYjJjOTUwYmFlNmNhZjRmMDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTMx
LDYgKzMxLDcgQEAKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJGbG9h
dFJlY3QuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyRmFjdG9yeS5oIgorI2luY2x1ZGUgIklt
YWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUZpbHRlcnMuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bUNBTGF5ZXIuaCIKICNpbmNsdWRlICJSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKQEAgLTUx
LDExICs1MiwxMyBAQAogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJQ
bGF0Zm9ybUNBQW5pbWF0aW9uTWFjLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVyTWFjLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShXSU4pCisjaW5jbHVkZSAiUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtQ0FMYXllcldpbi5oIgogI2VuZGlmCiAKQEAgLTM0MSw2ICszNDQsMTUgQEAgUGFz
c1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IEdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlUGxhdGZvcm1D
QUxheWVyKFBsYXRmb3JtTGF5ZXIKICNlbmRpZgogfQogCitQYXNzUmVmUHRyPFBsYXRmb3JtQ0FB
bmltYXRpb24+IEdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlUGxhdGZvcm1DQUFuaW1hdGlvbihQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpBbmltYXRpb25UeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0
aCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICByZXR1cm4gUGxhdGZvcm1DQUFuaW1hdGlv
bk1hYzo6Y3JlYXRlKHR5cGUsIGtleVBhdGgpOworI2VsaWYgUExBVEZPUk0oV0lOKQorICAgIHJl
dHVybiBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpjcmVhdGUodHlwZSwga2V5UGF0aCk7CisjZW5k
aWYKK30KKwogR3JhcGhpY3NMYXllckNBOjpHcmFwaGljc0xheWVyQ0EoR3JhcGhpY3NMYXllckNs
aWVudCogY2xpZW50KQogICAgIDogR3JhcGhpY3NMYXllcihjbGllbnQpCiAgICAgLCBtX2NvbnRl
bnRzTGF5ZXJQdXJwb3NlKE5vQ29udGVudHNMYXllcikKQEAgLTc4NywxOCArNzk5LDI0IEBAIGJv
b2wgR3JhcGhpY3NMYXllckNBOjpzaG91bGRSZXBhaW50T25TaXplQ2hhbmdlKCkgY29uc3QKICAg
ICByZXR1cm4gZHJhd3NDb250ZW50KCkgJiYgIXRpbGVkQmFja2luZygpOwogfQogCi1ib29sIEdy
YXBoaWNzTGF5ZXJDQTo6YWRkQW5pbWF0aW9uKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1
ZUxpc3QsIGNvbnN0IEZsb2F0U2l6ZSYgYm94U2l6ZSwgY29uc3QgQW5pbWF0aW9uKiBhbmltLCBj
b25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSB0aW1lT2Zmc2V0KQorYm9vbCBHcmFw
aGljc0xheWVyQ0E6OmFuaW1hdGlvbkNhbkJlQWNjZWxlcmF0ZWQoY29uc3QgS2V5ZnJhbWVWYWx1
ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltKSBjb25zdAogewotICAgIEFT
U0VSVCghYW5pbWF0aW9uTmFtZS5pc0VtcHR5KCkpOwotCiAgICAgaWYgKCFhbmltIHx8IGFuaW0t
PmlzRW1wdHlPclplcm9EdXJhdGlvbigpIHx8IHZhbHVlTGlzdC5zaXplKCkgPCAyKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICAvLyBDb3JlQW5pbWF0aW9uIGRvZXMgbm90IGhhbmRsZSB0
aGUgc3RlcHMoKSB0aW1pbmcgZnVuY3Rpb24uIEZhbGwgYmFjawotICAgIC8vIHRvIHNvZnR3YXJl
IGFuaW1hdGlvbiBpbiB0aGF0IGNhc2UuCiAgICAgaWYgKGFuaW1hdGlvbkhhc1N0ZXBzVGltaW5n
RnVuY3Rpb24odmFsdWVMaXN0LCBhbmltKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAg
cmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgR3JhcGhpY3NMYXllckNBOjphZGRBbmltYXRpb24oY29u
c3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgRmxvYXRTaXplJiBib3hTaXpl
LCBjb25zdCBBbmltYXRpb24qIGFuaW0sIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgZG91
YmxlIHRpbWVPZmZzZXQpCit7CisgICAgQVNTRVJUKCFhbmltYXRpb25OYW1lLmlzRW1wdHkoKSk7
CisKKyAgICBpZiAoIWFuaW1hdGlvbkNhbkJlQWNjZWxlcmF0ZWQodmFsdWVMaXN0LCBhbmltKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgYm9vbCBjcmVhdGVkQW5pbWF0aW9ucyA9IGZh
bHNlOwogICAgIGlmICh2YWx1ZUxpc3QucHJvcGVydHkoKSA9PSBBbmltYXRlZFByb3BlcnR5V2Vi
a2l0VHJhbnNmb3JtKQogICAgICAgICBjcmVhdGVkQW5pbWF0aW9ucyA9IGNyZWF0ZVRyYW5zZm9y
bUFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKHZhbHVlTGlzdCwgYW5pbSwgYW5pbWF0aW9uTmFtZSwg
dGltZU9mZnNldCwgYm94U2l6ZSk7CkBAIC0yNTYyLDE0ICsyNTgwLDE0IEBAIGJvb2wgR3JhcGhp
Y3NMYXllckNBOjpjcmVhdGVGaWx0ZXJBbmltYXRpb25zRnJvbUtleWZyYW1lcyhjb25zdCBLZXlm
cmFtZVZhbHVlTGlzCiAKIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gR3JhcGhpY3NM
YXllckNBOjpjcmVhdGVCYXNpY0FuaW1hdGlvbihjb25zdCBBbmltYXRpb24qIGFuaW0sIGNvbnN0
IFN0cmluZyYga2V5UGF0aCwgYm9vbCBhZGRpdGl2ZSkKIHsKLSAgICBSZWZQdHI8UGxhdGZvcm1D
QUFuaW1hdGlvbj4gYmFzaWNBbmltID0gUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y3JlYXRlKFBsYXRm
b3JtQ0FBbmltYXRpb246OkJhc2ljLCBrZXlQYXRoKTsKKyAgICBSZWZQdHI8UGxhdGZvcm1DQUFu
aW1hdGlvbj4gYmFzaWNBbmltID0gY3JlYXRlUGxhdGZvcm1DQUFuaW1hdGlvbihQbGF0Zm9ybUNB
QW5pbWF0aW9uOjpCYXNpYywga2V5UGF0aCk7CiAgICAgc2V0dXBBbmltYXRpb24oYmFzaWNBbmlt
LmdldCgpLCBhbmltLCBhZGRpdGl2ZSk7CiAgICAgcmV0dXJuIGJhc2ljQW5pbTsKIH0KIAogUGFz
c1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPkdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlS2V5ZnJh
bWVBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uKiBhbmltLCBjb25zdCBTdHJpbmcmIGtleVBhdGgs
IGJvb2wgYWRkaXRpdmUpCiB7Ci0gICAgUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGtleWZy
YW1lQW5pbSA9IFBsYXRmb3JtQ0FBbmltYXRpb246OmNyZWF0ZShQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpLZXlmcmFtZSwga2V5UGF0aCk7CisgICAgUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGtl
eWZyYW1lQW5pbSA9IGNyZWF0ZVBsYXRmb3JtQ0FBbmltYXRpb24oUGxhdGZvcm1DQUFuaW1hdGlv
bjo6S2V5ZnJhbWUsIGtleVBhdGgpOwogICAgIHNldHVwQW5pbWF0aW9uKGtleWZyYW1lQW5pbS5n
ZXQoKSwgYW5pbSwgYWRkaXRpdmUpOwogICAgIHJldHVybiBrZXlmcmFtZUFuaW07CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5oCmluZGV4IDJhNDNkMWZjNThiNTQxMGNmODk1OGYzMDYwNjg4ODdiZGZkN2ZiMGYuLjU0MGU0
ZDNhOWNlYzU5MjEzYTE2M2Y1MGNiNWRlZmIwM2RhM2RlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBAIC0yNyw3
ICsyNyw2IEBACiAjZGVmaW5lIEdyYXBoaWNzTGF5ZXJDQV9oCiAKICNpbmNsdWRlICJHcmFwaGlj
c0xheWVyLmgiCi0jaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNBQW5pbWF0
aW9uLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1D
QUxheWVyQ2xpZW50LmgiCkBAIC00Miw2ICs0MSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorY2xhc3MgSW1hZ2U7CiBjbGFzcyBUcmFuc2Zvcm1TdGF0ZTsKIAogY2xhc3MgR3JhcGhpY3NM
YXllckNBIDogcHVibGljIEdyYXBoaWNzTGF5ZXIsIHB1YmxpYyBQbGF0Zm9ybUNBTGF5ZXJDbGll
bnQgewpAQCAtMTcwLDYgKzE3MCw4IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1
YWwgdm9pZCBzZXRPcGFjaXR5SW50ZXJuYWwoZmxvYXQpOworICAgIAorICAgIGJvb2wgYW5pbWF0
aW9uQ2FuQmVBY2NlbGVyYXRlZChjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYsIGNvbnN0IEFuaW1h
dGlvbiopIGNvbnN0OwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0dyYXBoaWNzTGF5
ZXJDQSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KQEAgLTIxMiw2ICsyMTQsNyBAQCBwcml2YXRl
OgogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gY3JlYXRlUGxhdGZv
cm1DQUxheWVyKFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlLCBQbGF0Zm9ybUNBTGF5ZXJDbGll
bnQqIG93bmVyKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBjcmVh
dGVQbGF0Zm9ybUNBTGF5ZXIoUGxhdGZvcm1MYXllciosIFBsYXRmb3JtQ0FMYXllckNsaWVudCog
b3duZXIpOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBjcmVh
dGVQbGF0Zm9ybUNBQW5pbWF0aW9uKFBsYXRmb3JtQ0FBbmltYXRpb246OkFuaW1hdGlvblR5cGUs
IGNvbnN0IFN0cmluZyYga2V5UGF0aCk7CiAKICAgICBQbGF0Zm9ybUNBTGF5ZXIqIHByaW1hcnlM
YXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc3RydWN0dXJhbExheWVyLmdldCgpID8gbV9zdHJ1Y3R1
cmFsTGF5ZXIuZ2V0KCkgOiBtX2xheWVyLmdldCgpOyB9CiAgICAgUGxhdGZvcm1DQUxheWVyKiBo
b3N0TGF5ZXJGb3JTdWJsYXllcnMoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmltYXRpb24uaAppbmRleCAyNjA0
ODFjYzM4M2Y5OWM2Y2RiZTkyMjgzMjk1YzA5YzM3YTUzOWVhLi44OTY2MjRjZDE2OTRmMDQwNjhm
Y2VjM2YwOGZkOWY0NGJhMmJjNGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5oCkBAIC0zMSwxMzYgKzMx
LDExOSBAQAogI2luY2x1ZGUgIkZsb2F0UG9pbnQzRC5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0
aW9uTWF0cml4LmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYv
UmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCi0jaWYgUExBVEZPUk0oQ09D
T0EpCi1PQkpDX0NMQVNTIENBUHJvcGVydHlBbmltYXRpb247Ci10eXBlZGVmIENBUHJvcGVydHlB
bmltYXRpb24qIFBsYXRmb3JtQW5pbWF0aW9uUmVmOwotI2VsaWYgUExBVEZPUk0oV0lOKQotdHlw
ZWRlZiBzdHJ1Y3QgX0NBQ0ZBbmltYXRpb24qIENBQ0ZBbmltYXRpb25SZWY7Ci10eXBlZGVmIENB
Q0ZBbmltYXRpb25SZWYgUGxhdGZvcm1BbmltYXRpb25SZWY7Ci0jZW5kaWYKLQogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBGbG9hdFJlY3Q7Ci1jbGFzcyBQbGF0Zm9ybUNBQW5pbWF0aW9u
OwogY2xhc3MgVGltaW5nRnVuY3Rpb247CiAKIGNsYXNzIFBsYXRmb3JtQ0FBbmltYXRpb24gOiBw
dWJsaWMgUmVmQ291bnRlZDxQbGF0Zm9ybUNBQW5pbWF0aW9uPiB7CiBwdWJsaWM6Ci0gICAgZnJp
ZW5kIGNsYXNzIFBsYXRmb3JtQ0FMYXllcjsKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBmcmll
bmQgY2xhc3MgUGxhdGZvcm1DQUxheWVyTWFjOwotI2VsaWYgUExBVEZPUk0oV0lOKQotICAgIGZy
aWVuZCBjbGFzcyBQbGF0Zm9ybUNBTGF5ZXJXaW47Ci0jZW5kaWYKLSAgICAKICAgICBlbnVtIEFu
aW1hdGlvblR5cGUgeyBCYXNpYywgS2V5ZnJhbWUgfTsKICAgICBlbnVtIEZpbGxNb2RlVHlwZSB7
IE5vRmlsbE1vZGUsIEZvcndhcmRzLCBCYWNrd2FyZHMsIEJvdGggfTsKICAgICBlbnVtIFZhbHVl
RnVuY3Rpb25UeXBlIHsgTm9WYWx1ZUZ1bmN0aW9uLCBSb3RhdGVYLCBSb3RhdGVZLCBSb3RhdGVa
LCBTY2FsZVgsIFNjYWxlWSwgU2NhbGVaLCBTY2FsZSwgVHJhbnNsYXRlWCwgVHJhbnNsYXRlWSwg
VHJhbnNsYXRlWiwgVHJhbnNsYXRlIH07CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbGF0Zm9y
bUNBQW5pbWF0aW9uPiBjcmVhdGUoQW5pbWF0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRo
KTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBjcmVhdGUoUGxh
dGZvcm1BbmltYXRpb25SZWYpOworICAgIHZpcnR1YWwgflBsYXRmb3JtQ0FBbmltYXRpb24oKSB7
IH0KIAotICAgIH5QbGF0Zm9ybUNBQW5pbWF0aW9uKCk7CisgICAgdmlydHVhbCBib29sIGlzUGxh
dGZvcm1DQUFuaW1hdGlvbk1hYygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCBib29sIGlzUGxhdGZvcm1DQUFuaW1hdGlvbldpbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgdmlydHVhbCBib29sIGlzUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgCi0gICAgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9u
PiBjb3B5KCkgY29uc3Q7Ci0KLSAgICBQbGF0Zm9ybUFuaW1hdGlvblJlZiBwbGF0Zm9ybUFuaW1h
dGlvbigpIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9u
PiBjb3B5KCkgY29uc3QgPSAwOwogICAgIAogICAgIEFuaW1hdGlvblR5cGUgYW5pbWF0aW9uVHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQotICAgIFN0cmluZyBrZXlQYXRoKCkgY29uc3Q7
CisgICAgdmlydHVhbCBTdHJpbmcga2V5UGF0aCgpIGNvbnN0ID0gMDsKICAgICAKLSAgICBDRlRp
bWVJbnRlcnZhbCBiZWdpblRpbWUoKSBjb25zdDsKLSAgICB2b2lkIHNldEJlZ2luVGltZShDRlRp
bWVJbnRlcnZhbCk7CisgICAgdmlydHVhbCBDRlRpbWVJbnRlcnZhbCBiZWdpblRpbWUoKSBjb25z
dCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEJlZ2luVGltZShDRlRpbWVJbnRlcnZhbCkgPSAw
OwogICAgIAotICAgIENGVGltZUludGVydmFsIGR1cmF0aW9uKCkgY29uc3Q7Ci0gICAgdm9pZCBz
ZXREdXJhdGlvbihDRlRpbWVJbnRlcnZhbCk7CisgICAgdmlydHVhbCBDRlRpbWVJbnRlcnZhbCBk
dXJhdGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RHVyYXRpb24oQ0ZUaW1l
SW50ZXJ2YWwpID0gMDsKICAgICAKLSAgICBmbG9hdCBzcGVlZCgpIGNvbnN0OwotICAgIHZvaWQg
c2V0U3BlZWQoZmxvYXQpOworICAgIHZpcnR1YWwgZmxvYXQgc3BlZWQoKSBjb25zdCA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHNldFNwZWVkKGZsb2F0KSA9IDA7CiAKLSAgICBDRlRpbWVJbnRlcnZh
bCB0aW1lT2Zmc2V0KCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRUaW1lT2Zmc2V0KENGVGltZUludGVy
dmFsKTsKKyAgICB2aXJ0dWFsIENGVGltZUludGVydmFsIHRpbWVPZmZzZXQoKSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHNldFRpbWVPZmZzZXQoQ0ZUaW1lSW50ZXJ2YWwpID0gMDsKIAot
ICAgIGZsb2F0IHJlcGVhdENvdW50KCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRSZXBlYXRDb3VudChm
bG9hdCk7CisgICAgdmlydHVhbCBmbG9hdCByZXBlYXRDb3VudCgpIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0UmVwZWF0Q291bnQoZmxvYXQpID0gMDsKIAotICAgIGJvb2wgYXV0b3Jl
dmVyc2VzKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRBdXRvcmV2ZXJzZXMoYm9vbCk7CisgICAgdmly
dHVhbCBib29sIGF1dG9yZXZlcnNlcygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
QXV0b3JldmVyc2VzKGJvb2wpID0gMDsKIAotICAgIEZpbGxNb2RlVHlwZSBmaWxsTW9kZSgpIGNv
bnN0OwotICAgIHZvaWQgc2V0RmlsbE1vZGUoRmlsbE1vZGVUeXBlKTsKKyAgICB2aXJ0dWFsIEZp
bGxNb2RlVHlwZSBmaWxsTW9kZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Rmls
bE1vZGUoRmlsbE1vZGVUeXBlKSA9IDA7CiAgICAgCi0gICAgdm9pZCBzZXRUaW1pbmdGdW5jdGlv
bihjb25zdCBUaW1pbmdGdW5jdGlvbiosIGJvb2wgcmV2ZXJzZSA9IGZhbHNlKTsKLSAgICB2b2lk
IGNvcHlUaW1pbmdGdW5jdGlvbkZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopOworICAg
IHZpcnR1YWwgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiosIGJv
b2wgcmV2ZXJzZSA9IGZhbHNlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvcHlUaW1pbmdGdW5j
dGlvbkZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopID0gMDsKIAotICAgIGJvb2wgaXNS
ZW1vdmVkT25Db21wbGV0aW9uKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRSZW1vdmVkT25Db21wbGV0
aW9uKGJvb2wpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlbW92ZWRPbkNvbXBsZXRpb24oKSBjb25z
dCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFJlbW92ZWRPbkNvbXBsZXRpb24oYm9vbCkgPSAw
OwogCi0gICAgYm9vbCBpc0FkZGl0aXZlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRBZGRpdGl2ZShi
b29sKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBZGRpdGl2ZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0QWRkaXRpdmUoYm9vbCkgPSAwOwogCi0gICAgVmFsdWVGdW5jdGlvblR5cGUg
dmFsdWVGdW5jdGlvbigpIGNvbnN0OwotICAgIHZvaWQgc2V0VmFsdWVGdW5jdGlvbihWYWx1ZUZ1
bmN0aW9uVHlwZSk7CisgICAgdmlydHVhbCBWYWx1ZUZ1bmN0aW9uVHlwZSB2YWx1ZUZ1bmN0aW9u
KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUZ1bmN0aW9uKFZhbHVlRnVu
Y3Rpb25UeXBlKSA9IDA7CiAKICAgICAvLyBCYXNpYy1hbmltYXRpb24gcHJvcGVydGllcy4KLSAg
ICB2b2lkIHNldEZyb21WYWx1ZShmbG9hdCk7Ci0gICAgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3Qg
V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKLSAgICB2b2lkIHNldEZyb21WYWx1ZShj
b25zdCBGbG9hdFBvaW50M0QmKTsKLSAgICB2b2lkIHNldEZyb21WYWx1ZShjb25zdCBXZWJDb3Jl
OjpDb2xvciYpOworICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUoZmxvYXQpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9u
TWF0cml4JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgRmxvYXRQ
b2ludDNEJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29y
ZTo6Q29sb3ImKSA9IDA7CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQotICAgIHZvaWQgc2V0RnJv
bVZhbHVlKGNvbnN0IEZpbHRlck9wZXJhdGlvbiosIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5
SW5kZXgpOworICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0
aW9uKiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgPSAwOwogI2VuZGlmCi0gICAg
dm9pZCBjb3B5RnJvbVZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKik7CisgICAg
dmlydHVhbCB2b2lkIGNvcHlGcm9tVmFsdWVGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24q
KSA9IDA7CiAKLSAgICB2b2lkIHNldFRvVmFsdWUoZmxvYXQpOwotICAgIHZvaWQgc2V0VG9WYWx1
ZShjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwotICAgIHZvaWQgc2V0VG9W
YWx1ZShjb25zdCBGbG9hdFBvaW50M0QmKTsKLSAgICB2b2lkIHNldFRvVmFsdWUoY29uc3QgV2Vi
Q29yZTo6Q29sb3ImKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShmbG9hdCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9u
TWF0cml4JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IEZsb2F0UG9p
bnQzRCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpD
b2xvciYpID0gMDsKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0gICAgdm9pZCBzZXRUb1ZhbHVl
KGNvbnN0IEZpbHRlck9wZXJhdGlvbiosIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgp
OworICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IEZpbHRlck9wZXJhdGlvbiosIGlu
dCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpID0gMDsKICNlbmRpZgotICAgIHZvaWQgY29w
eVRvVmFsdWVGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qKTsKKyAgICB2aXJ0dWFsIHZv
aWQgY29weVRvVmFsdWVGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qKSA9IDA7CiAKICAg
ICAvLyBLZXlmcmFtZS1hbmltYXRpb24gcHJvcGVydGllcy4KLSAgICB2b2lkIHNldFZhbHVlcyhj
b25zdCBWZWN0b3I8ZmxvYXQ+Jik7Ci0gICAgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdl
YkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiYpOwotICAgIHZvaWQgc2V0VmFsdWVzKGNvbnN0
IFZlY3RvcjxGbG9hdFBvaW50M0Q+Jik7Ci0gICAgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9y
PFdlYkNvcmU6OkNvbG9yPiYpOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVj
dG9yPGZsb2F0PiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3Rv
cjxXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeD4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHNldFZhbHVlcyhjb25zdCBWZWN0b3I8RmxvYXRQb2ludDNEPiYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb2xvcj4mKSA9IDA7CiAjaWYg
RU5BQkxFKENTU19GSUxURVJTKQotICAgIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxSZWZQ
dHI8RmlsdGVyT3BlcmF0aW9uPj4mLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RmlsdGVyT3Bl
cmF0aW9uPj4mLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KSA9IDA7CiAjZW5kaWYK
LSAgICB2b2lkIGNvcHlWYWx1ZXNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgY29weVZhbHVlc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiop
ID0gMDsKIAotICAgIHZvaWQgc2V0S2V5VGltZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYpOwotICAg
IHZvaWQgY29weUtleVRpbWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKik7CisgICAg
dmlydHVhbCB2b2lkIHNldEtleVRpbWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGNvcHlLZXlUaW1lc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiop
ID0gMDsKIAotICAgIHZvaWQgc2V0VGltaW5nRnVuY3Rpb25zKGNvbnN0IFZlY3Rvcjxjb25zdCBU
aW1pbmdGdW5jdGlvbio+JiwgYm9vbCByZXZlcnNlID0gZmFsc2UpOwotICAgIHZvaWQgY29weVRp
bWluZ0Z1bmN0aW9uc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopOworICAgIHZpcnR1
YWwgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0
aW9uKj4mLCBib29sIHJldmVyc2UgPSBmYWxzZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb3B5
VGltaW5nRnVuY3Rpb25zRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgPSAwOwogCiBw
cm90ZWN0ZWQ6Ci0gICAgUGxhdGZvcm1DQUFuaW1hdGlvbihBbmltYXRpb25UeXBlLCBjb25zdCBT
dHJpbmcmIGtleVBhdGgpOwotICAgIFBsYXRmb3JtQ0FBbmltYXRpb24oUGxhdGZvcm1BbmltYXRp
b25SZWYpOworICAgIFBsYXRmb3JtQ0FBbmltYXRpb24oQW5pbWF0aW9uVHlwZSB0eXBlID0gQmFz
aWMpCisgICAgICAgIDogbV90eXBlKHR5cGUpCisgICAgeworICAgIH0KIAogICAgIHZvaWQgc2V0
QWN0dWFsU3RhcnRUaW1lSWZOZWVkZWQoQ0ZUaW1lSW50ZXJ2YWwgdCkKICAgICB7CiAgICAgICAg
IGlmIChiZWdpblRpbWUoKSA8PSAwKQogICAgICAgICAgICAgc2V0QmVnaW5UaW1lKHQpOwogICAg
IH0KKyAgICAKKyAgICB2b2lkIHNldFR5cGUoQW5pbWF0aW9uVHlwZSB0eXBlKSB7IG1fdHlwZSA9
IHR5cGU7IH0KIAogcHJpdmF0ZToKICAgICBBbmltYXRpb25UeXBlIG1fdHlwZTsKLSAgICAKLSNp
ZiBQTEFURk9STShDT0NPQSkKLSAgICBSZXRhaW5QdHI8Q0FQcm9wZXJ0eUFuaW1hdGlvbj4gbV9h
bmltYXRpb247Ci0jZWxpZiBQTEFURk9STShXSU4pCi0gICAgUmV0YWluUHRyPENBQ0ZBbmltYXRp
b25SZWY+IG1fYW5pbWF0aW9uOwotI2VuZGlmCiB9OwogCisjZGVmaW5lIFBMQVRGT1JNX0NBQU5J
TUFUSU9OX1RZUEVfQ0FTVFMoVG9WYWx1ZVR5cGVOYW1lLCBwcmVkaWNhdGUpIFwKKyAgICBUWVBF
X0NBU1RTX0JBU0UoVG9WYWx1ZVR5cGVOYW1lLCBXZWJDb3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9u
LCBvYmplY3QsIG9iamVjdC0+cHJlZGljYXRlLCBvYmplY3QucHJlZGljYXRlKQorCiB9CiAKICNl
bmRpZiAvLyBQbGF0Zm9ybUNBQW5pbWF0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKaW5kZXggODFkYjcxMjE2YjNm
ZTYxMTFiYjYzYzM2N2U4MDNhMDFkYTcwYTQ1OC4uMWUwMDY4MzA0MTY2ZTU1NzE0ZGUyY2YyYzA0
ODhmZWRmNDI5MDhmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKQEAgLTI2LDkgKzI2LDcgQEAKICNpZm5kZWYgUGxh
dGZvcm1DQUxheWVyX2gKICNkZWZpbmUgUGxhdGZvcm1DQUxheWVyX2gKIAotI2luY2x1ZGUgIkdy
YXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKLSNpbmNsdWRlICJQ
bGF0Zm9ybUNBQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVyQ2xpZW50Lmgi
CiAjaW5jbHVkZSA8UXVhcnR6Q29yZS9DQUJhc2UuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KQEAgLTQyLDkgKzQwLDE0IEBACiAKIE9CSkNfQ0xBU1MgQVZQbGF5ZXJMYXllcjsKIAor
I2lmIFBMQVRGT1JNKENPQ09BKQordHlwZWRlZiBzdHJ1Y3QgQ0dDb250ZXh0ICpDR0NvbnRleHRS
ZWY7CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBQbGF0Zm9ybUNBTGF5
ZXI7CitjbGFzcyBQbGF0Zm9ybUNBQW5pbWF0aW9uOwogCiB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8
UGxhdGZvcm1DQUxheWVyPj4gUGxhdGZvcm1DQUxheWVyTGlzdDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25N
YWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNB
QW5pbWF0aW9uTWFjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzQwY2E3MmNhNDUyYmE5NDM5YTMyNWE3OWZiMWNm
YjE1Y2U5Y2E1NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLmgKQEAgLTAsMCArMSwxMzggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQ
bGF0Zm9ybUNBQW5pbWF0aW9uTWFjX2gKKyNkZWZpbmUgUGxhdGZvcm1DQUFuaW1hdGlvbk1hY19o
CisKKyNpbmNsdWRlICJQbGF0Zm9ybUNBQW5pbWF0aW9uLmgiCisjaW5jbHVkZSA8d3RmL1JldGFp
blB0ci5oPgorCitPQkpDX0NMQVNTIENBUHJvcGVydHlBbmltYXRpb247CitPQkpDX0NMQVNTIE5T
U3RyaW5nOworT0JKQ19DTEFTUyBDQU1lZGlhVGltaW5nRnVuY3Rpb247Cit0eXBlZGVmIENBUHJv
cGVydHlBbmltYXRpb24qIFBsYXRmb3JtQW5pbWF0aW9uUmVmOworCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK05TU3RyaW5nKiB0b0NBRmlsbE1vZGVUeXBlKFBsYXRmb3JtQ0FBbmltYXRpb246OkZp
bGxNb2RlVHlwZSk7CitOU1N0cmluZyogdG9DQVZhbHVlRnVuY3Rpb25UeXBlKFBsYXRmb3JtQ0FB
bmltYXRpb246OlZhbHVlRnVuY3Rpb25UeXBlKTsKK0NBTWVkaWFUaW1pbmdGdW5jdGlvbiogdG9D
QU1lZGlhVGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24qLCBib29sIHJldmVyc2Up
OworCitjbGFzcyBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjIGZpbmFsIDogcHVibGljIFBsYXRmb3Jt
Q0FBbmltYXRpb24geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FB
bmltYXRpb24+IGNyZWF0ZShBbmltYXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGtleVBhdGgpOwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGNyZWF0ZShQbGF0Zm9y
bUFuaW1hdGlvblJlZik7CisKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKCk7
CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBsYXRmb3Jt
Q0FBbmltYXRpb24+IGNvcHkoKSBjb25zdCBvdmVycmlkZTsKKworICAgIFBsYXRmb3JtQW5pbWF0
aW9uUmVmIHBsYXRmb3JtQW5pbWF0aW9uKCkgY29uc3Q7CisgICAgCisgICAgdmlydHVhbCBTdHJp
bmcga2V5UGF0aCgpIGNvbnN0IG92ZXJyaWRlOworICAgIAorICAgIHZpcnR1YWwgQ0ZUaW1lSW50
ZXJ2YWwgYmVnaW5UaW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEJl
Z2luVGltZShDRlRpbWVJbnRlcnZhbCkgb3ZlcnJpZGU7CisgICAgCisgICAgdmlydHVhbCBDRlRp
bWVJbnRlcnZhbCBkdXJhdGlvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBz
ZXREdXJhdGlvbihDRlRpbWVJbnRlcnZhbCkgb3ZlcnJpZGU7CisgICAgCisgICAgdmlydHVhbCBm
bG9hdCBzcGVlZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRTcGVlZChm
bG9hdCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIENGVGltZUludGVydmFsIHRpbWVPZmZzZXQo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGltZU9mZnNldChDRlRpbWVJ
bnRlcnZhbCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIGZsb2F0IHJlcGVhdENvdW50KCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFJlcGVhdENvdW50KGZsb2F0KSBvdmVy
cmlkZTsKKworICAgIHZpcnR1YWwgYm9vbCBhdXRvcmV2ZXJzZXMoKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0QXV0b3JldmVyc2VzKGJvb2wpIG92ZXJyaWRlOworCisgICAg
dmlydHVhbCBGaWxsTW9kZVR5cGUgZmlsbE1vZGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0RmlsbE1vZGUoRmlsbE1vZGVUeXBlKSBvdmVycmlkZTsKKyAgICAKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0VGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24qLCBib29s
IHJldmVyc2UgPSBmYWxzZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBjb3B5VGltaW5nRnVuY3Rpb25G
cm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwg
Ym9vbCBpc1JlbW92ZWRPbkNvbXBsZXRpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0UmVtb3ZlZE9uQ29tcGxldGlvbihib29sKSBvdmVycmlkZTsKKworICAgIHZpcnR1
YWwgYm9vbCBpc0FkZGl0aXZlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNl
dEFkZGl0aXZlKGJvb2wpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBWYWx1ZUZ1bmN0aW9uVHlw
ZSB2YWx1ZUZ1bmN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFZh
bHVlRnVuY3Rpb24oVmFsdWVGdW5jdGlvblR5cGUpIG92ZXJyaWRlOworCisgICAgLy8gQmFzaWMt
YW5pbWF0aW9uIHByb3BlcnRpZXMuCisgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShmbG9h
dCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShjb25zdCBXZWJDb3Jl
OjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRG
cm9tVmFsdWUoY29uc3QgRmxvYXRQb2ludDNEJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYpIG92ZXJyaWRlOworI2lmIEVOQUJM
RShDU1NfRklMVEVSUykKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0IEZpbHRl
ck9wZXJhdGlvbiosIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpIG92ZXJyaWRlOwor
I2VuZGlmCisgICAgdmlydHVhbCB2b2lkIGNvcHlGcm9tVmFsdWVGcm9tKGNvbnN0IFBsYXRmb3Jt
Q0FBbmltYXRpb24qKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGZs
b2F0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBXZWJDb3Jl
OjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRU
b1ZhbHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgb3ZlcnJpZGU7CisjaWYgRU5BQkxFKENT
U19GSUxURVJTKQorICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IEZpbHRlck9wZXJh
dGlvbiosIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpIG92ZXJyaWRlOworI2VuZGlm
CisgICAgdmlydHVhbCB2b2lkIGNvcHlUb1ZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0
aW9uKikgb3ZlcnJpZGU7CisKKyAgICAvLyBLZXlmcmFtZS1hbmltYXRpb24gcHJvcGVydGllcy4K
KyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpUcmFu
c2Zvcm1hdGlvbk1hdHJpeD4mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVz
KGNvbnN0IFZlY3RvcjxGbG9hdFBvaW50M0Q+Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+Jikgb3ZlcnJpZGU7CisjaWYg
RU5BQkxFKENTU19GSUxURVJTKQorICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVj
dG9yPFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+PiYsIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5
SW5kZXgpIG92ZXJyaWRlOworI2VuZGlmCisgICAgdmlydHVhbCB2b2lkIGNvcHlWYWx1ZXNGcm9t
KGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9p
ZCBzZXRLZXlUaW1lcyhjb25zdCBWZWN0b3I8ZmxvYXQ+Jikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGNvcHlLZXlUaW1lc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJy
aWRlOworCisgICAgdmlydHVhbCB2b2lkIHNldFRpbWluZ0Z1bmN0aW9ucyhjb25zdCBWZWN0b3I8
Y29uc3QgVGltaW5nRnVuY3Rpb24qPiYsIGJvb2wgcmV2ZXJzZSA9IGZhbHNlKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgY29weVRpbWluZ0Z1bmN0aW9uc0Zyb20oY29uc3QgUGxhdGZvcm1D
QUFuaW1hdGlvbiopIG92ZXJyaWRlOworCitwcm90ZWN0ZWQ6CisgICAgUGxhdGZvcm1DQUFuaW1h
dGlvbk1hYyhBbmltYXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGtleVBhdGgpOworICAgIFBsYXRm
b3JtQ0FBbmltYXRpb25NYWMoUGxhdGZvcm1BbmltYXRpb25SZWYpOworCitwcml2YXRlOgorICAg
IFJldGFpblB0cjxDQVByb3BlcnR5QW5pbWF0aW9uPiBtX2FuaW1hdGlvbjsKK307CisKK1BMQVRG
T1JNX0NBQU5JTUFUSU9OX1RZUEVfQ0FTVFMoUGxhdGZvcm1DQUFuaW1hdGlvbk1hYywgaXNQbGF0
Zm9ybUNBQW5pbWF0aW9uTWFjKCkpCisKK30KKworI2VuZGlmIC8vIFBsYXRmb3JtQ0FBbmltYXRp
b25NYWNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
bWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5tbQppbmRleCBjMDdjN2FjNjIx
NzM5YWIzYjQzM2U1MDVkOTQ5ZTM5Y2M4NTc0YTEzLi4yZWEyODZhZjAxNGY1NjY4MWJiMmRjYWYx
ZTZjN2UyMmFlZDQzY2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5tbQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjUsNyArMjUs
NyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpbXBvcnQgIlBsYXRmb3JtQ0FBbmltYXRp
b24uaCIKKyNpbXBvcnQgIlBsYXRmb3JtQ0FBbmltYXRpb25NYWMuaCIKIAogI2ltcG9ydCAiRmxv
YXRDb252ZXJzaW9uLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybUNBRmlsdGVycy5oIgpAQCAtNDAsMTUg
KzQwLDE1IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IFdLTm9uWmVyb0JlZ2luVGltZUZsYWcg
PSBAIldLUGxhdGZvcm1DQUFuaW1hdGlvbk5vblplcm9CCiAKIHN0YXRpYyBib29sIGhhc05vblpl
cm9CZWdpblRpbWVGbGFnKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIGFuaW1hdGlvbikKIHsK
LSAgICByZXR1cm4gW1thbmltYXRpb24tPnBsYXRmb3JtQW5pbWF0aW9uKCkgdmFsdWVGb3JLZXk6
V0tOb25aZXJvQmVnaW5UaW1lRmxhZ10gYm9vbFZhbHVlXTsKKyAgICByZXR1cm4gW1t0b1BsYXRm
b3JtQ0FBbmltYXRpb25NYWMoYW5pbWF0aW9uKS0+cGxhdGZvcm1BbmltYXRpb24oKSB2YWx1ZUZv
cktleTpXS05vblplcm9CZWdpblRpbWVGbGFnXSBib29sVmFsdWVdOwogfQogCiBzdGF0aWMgdm9p
ZCBzZXROb25aZXJvQmVnaW5UaW1lRmxhZyhQbGF0Zm9ybUNBQW5pbWF0aW9uKiBhbmltYXRpb24s
IGJvb2wgdmFsdWUpCiB7Ci0gICAgW2FuaW1hdGlvbi0+cGxhdGZvcm1BbmltYXRpb24oKSBzZXRW
YWx1ZTpbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6dmFsdWVdIGZvcktleTpXS05vblplcm9CZWdp
blRpbWVGbGFnXTsKKyAgICBbdG9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKGFuaW1hdGlvbiktPnBs
YXRmb3JtQW5pbWF0aW9uKCkgc2V0VmFsdWU6W05TTnVtYmVyIG51bWJlcldpdGhCb29sOnZhbHVl
XSBmb3JLZXk6V0tOb25aZXJvQmVnaW5UaW1lRmxhZ107CiB9CiAgICAgCi1zdGF0aWMgTlNTdHJp
bmcqIHRvQ0FGaWxsTW9kZVR5cGUoUGxhdGZvcm1DQUFuaW1hdGlvbjo6RmlsbE1vZGVUeXBlIHR5
cGUpCitOU1N0cmluZyogV2ViQ29yZTo6dG9DQUZpbGxNb2RlVHlwZShQbGF0Zm9ybUNBQW5pbWF0
aW9uOjpGaWxsTW9kZVR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNl
IFBsYXRmb3JtQ0FBbmltYXRpb246Ok5vRmlsbE1vZGU6CkBAIC03MCw3ICs3MCw3IEBAIHN0YXRp
YyBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpGaWxsTW9kZVR5cGUgZnJvbUNBRmlsbE1vZGVUeXBlKE5T
U3RyaW5nKiBzdHJpbmcpCiAgICAgcmV0dXJuIFBsYXRmb3JtQ0FBbmltYXRpb246OkZvcndhcmRz
OwogfQogCi1zdGF0aWMgTlNTdHJpbmcqIHRvQ0FWYWx1ZUZ1bmN0aW9uVHlwZShQbGF0Zm9ybUNB
QW5pbWF0aW9uOjpWYWx1ZUZ1bmN0aW9uVHlwZSB0eXBlKQorTlNTdHJpbmcqIFdlYkNvcmU6OnRv
Q0FWYWx1ZUZ1bmN0aW9uVHlwZShQbGF0Zm9ybUNBQW5pbWF0aW9uOjpWYWx1ZUZ1bmN0aW9uVHlw
ZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgUGxhdGZvcm1DQUFuaW1h
dGlvbjo6Tm9WYWx1ZUZ1bmN0aW9uOiByZXR1cm4gQCIiOwpAQCAtMTI3LDcgKzEyNyw3IEBAIHN0
YXRpYyBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpWYWx1ZUZ1bmN0aW9uVHlwZSBmcm9tQ0FWYWx1ZUZ1
bmN0aW9uVHlwZShOU1N0cmluZyoKICAgICByZXR1cm4gUGxhdGZvcm1DQUFuaW1hdGlvbjo6Tm9W
YWx1ZUZ1bmN0aW9uOwogfQogCi1zdGF0aWMgQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uKiB0b0NBTWVk
aWFUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24sIGJv
b2wgcmV2ZXJzZSkKK0NBTWVkaWFUaW1pbmdGdW5jdGlvbiogV2ViQ29yZTo6dG9DQU1lZGlhVGlt
aW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uLCBib29sIHJl
dmVyc2UpCiB7CiAgICAgQVNTRVJUKHRpbWluZ0Z1bmN0aW9uKTsKICAgICBpZiAodGltaW5nRnVu
Y3Rpb24tPmlzQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbigpKSB7CkBAIC0xNDYsMjEgKzE0Niwy
MiBAQCBzdGF0aWMgQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uKiB0b0NBTWVkaWFUaW1pbmdGdW5jdGlv
bihjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaQogICAgICAgICByZXR1cm4gW0NBTWVkaWFUaW1p
bmdGdW5jdGlvbiBmdW5jdGlvbldpdGhDb250cm9sUG9pbnRzOiB4MSA6IHkxIDogeDIgOiB5Ml07
CiAgICAgfQogICAgIAorICAgIEFTU0VSVCh0aW1pbmdGdW5jdGlvbi0+dHlwZSgpID09IFRpbWlu
Z0Z1bmN0aW9uOjpMaW5lYXJGdW5jdGlvbik7CiAgICAgcmV0dXJuIFtDQU1lZGlhVGltaW5nRnVu
Y3Rpb24gZnVuY3Rpb25XaXRoTmFtZTprQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uTGluZWFyXTsKIH0K
IAotUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpj
cmVhdGUoQW5pbWF0aW9uVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIGtleVBhdGgpCitQYXNzUmVm
UHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OmNyZWF0ZShB
bmltYXRpb25UeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFBsYXRmb3JtQ0FBbmltYXRpb24odHlwZSwga2V5UGF0aCkpOworICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYyh0eXBlLCBrZXlQYXRoKSk7
CiB9CiAKLVBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUFuaW1hdGlv
bjo6Y3JlYXRlKFBsYXRmb3JtQW5pbWF0aW9uUmVmIGFuaW1hdGlvbikKK1Bhc3NSZWZQdHI8UGxh
dGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6Y3JlYXRlKFBsYXRmb3Jt
QW5pbWF0aW9uUmVmIGFuaW1hdGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBsYXRm
b3JtQ0FBbmltYXRpb24oYW5pbWF0aW9uKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQbGF0
Zm9ybUNBQW5pbWF0aW9uTWFjKGFuaW1hdGlvbikpOwogfQogCi1QbGF0Zm9ybUNBQW5pbWF0aW9u
OjpQbGF0Zm9ybUNBQW5pbWF0aW9uKEFuaW1hdGlvblR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBr
ZXlQYXRoKQotICAgIDogbV90eXBlKHR5cGUpCitQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpQbGF0
Zm9ybUNBQW5pbWF0aW9uTWFjKEFuaW1hdGlvblR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQ
YXRoKQorICAgIDogUGxhdGZvcm1DQUFuaW1hdGlvbih0eXBlKQogewogICAgIGlmICh0eXBlID09
IEJhc2ljKQogICAgICAgICBtX2FuaW1hdGlvbiA9IFtDQUJhc2ljQW5pbWF0aW9uIGFuaW1hdGlv
bldpdGhLZXlQYXRoOmtleVBhdGhdOwpAQCAtMTY4LDEyICsxNjksMTIgQEAgUGxhdGZvcm1DQUFu
aW1hdGlvbjo6UGxhdGZvcm1DQUFuaW1hdGlvbihBbmltYXRpb25UeXBlIHR5cGUsIGNvbnN0IFN0
cmluZyYga2V5UGEKICAgICAgICAgbV9hbmltYXRpb24gPSBbQ0FLZXlmcmFtZUFuaW1hdGlvbiBh
bmltYXRpb25XaXRoS2V5UGF0aDprZXlQYXRoXTsKIH0KIAotUGxhdGZvcm1DQUFuaW1hdGlvbjo6
UGxhdGZvcm1DQUFuaW1hdGlvbihQbGF0Zm9ybUFuaW1hdGlvblJlZiBhbmltYXRpb24pCitQbGF0
Zm9ybUNBQW5pbWF0aW9uTWFjOjpQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKFBsYXRmb3JtQW5pbWF0
aW9uUmVmIGFuaW1hdGlvbikKIHsKICAgICBpZiAoW3N0YXRpY19jYXN0PENBQW5pbWF0aW9uKj4o
YW5pbWF0aW9uKSBpc0tpbmRPZkNsYXNzOltDQUJhc2ljQW5pbWF0aW9uIGNsYXNzXV0pCi0gICAg
ICAgIG1fdHlwZSA9IEJhc2ljOworICAgICAgICBzZXRUeXBlKEJhc2ljKTsKICAgICBlbHNlIGlm
IChbc3RhdGljX2Nhc3Q8Q0FBbmltYXRpb24qPihhbmltYXRpb24pIGlzS2luZE9mQ2xhc3M6W0NB
S2V5ZnJhbWVBbmltYXRpb24gY2xhc3NdXSkKLSAgICAgICAgbV90eXBlID0gS2V5ZnJhbWU7Cisg
ICAgICAgIHNldFR5cGUoS2V5ZnJhbWUpOwogICAgIGVsc2UgewogICAgICAgICBBU1NFUlQoMCk7
CiAgICAgICAgIHJldHVybjsKQEAgLTE4Miw3ICsxODMsMTEgQEAgUGxhdGZvcm1DQUFuaW1hdGlv
bjo6UGxhdGZvcm1DQUFuaW1hdGlvbihQbGF0Zm9ybUFuaW1hdGlvblJlZiBhbmltYXRpb24pCiAg
ICAgbV9hbmltYXRpb24gPSBzdGF0aWNfY2FzdDxDQVByb3BlcnR5QW5pbWF0aW9uKj4oYW5pbWF0
aW9uKTsKIH0KIAotUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpjb3B5KCkgY29uc3QKK1BsYXRmb3JtQ0FBbmltYXRpb25NYWM6On5QbGF0Zm9ybUNB
QW5pbWF0aW9uTWFjKCkKK3sKK30KKworUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQ
bGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpjb3B5KCkgY29uc3QKIHsKICAgICBSZWZQdHI8UGxhdGZv
cm1DQUFuaW1hdGlvbj4gYW5pbWF0aW9uID0gY3JlYXRlKGFuaW1hdGlvblR5cGUoKSwga2V5UGF0
aCgpKTsKICAgICAKQEAgLTIxMiwyNiArMjE3LDIzIEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFu
aW1hdGlvbj4gUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weSgpIGNvbnN0CiAgICAgCiAgICAgcmV0
dXJuIGFuaW1hdGlvbjsKIH0KLVBsYXRmb3JtQ0FBbmltYXRpb246On5QbGF0Zm9ybUNBQW5pbWF0
aW9uKCkKLXsKLX0KIAotUGxhdGZvcm1BbmltYXRpb25SZWYgUGxhdGZvcm1DQUFuaW1hdGlvbjo6
cGxhdGZvcm1BbmltYXRpb24oKSBjb25zdAorUGxhdGZvcm1BbmltYXRpb25SZWYgUGxhdGZvcm1D
QUFuaW1hdGlvbk1hYzo6cGxhdGZvcm1BbmltYXRpb24oKSBjb25zdAogewogICAgIHJldHVybiBt
X2FuaW1hdGlvbi5nZXQoKTsKIH0KIAotU3RyaW5nIFBsYXRmb3JtQ0FBbmltYXRpb246OmtleVBh
dGgoKSBjb25zdAorU3RyaW5nIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OmtleVBhdGgoKSBjb25z
dAogewogICAgIHJldHVybiBbbV9hbmltYXRpb24uZ2V0KCkga2V5UGF0aF07CiB9CiAKLUNGVGlt
ZUludGVydmFsIFBsYXRmb3JtQ0FBbmltYXRpb246OmJlZ2luVGltZSgpIGNvbnN0CitDRlRpbWVJ
bnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpiZWdpblRpbWUoKSBjb25zdAogewogICAg
IHJldHVybiBbbV9hbmltYXRpb24uZ2V0KCkgYmVnaW5UaW1lXTsKIH0KIAotdm9pZCBQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpzZXRCZWdpblRpbWUoQ0ZUaW1lSW50ZXJ2YWwgdmFsdWUpCit2b2lkIFBs
YXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldEJlZ2luVGltZShDRlRpbWVJbnRlcnZhbCB2YWx1ZSkK
IHsKICAgICBbbV9hbmltYXRpb24uZ2V0KCkgc2V0QmVnaW5UaW1lOnZhbHVlXTsKICAgICAKQEAg
LTI0MywxMTUgKzI0NSwxMTUgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRCZWdpblRp
bWUoQ0ZUaW1lSW50ZXJ2YWwgdmFsdWUpCiAgICAgICAgIHNldE5vblplcm9CZWdpblRpbWVGbGFn
KHRoaXMsIHRydWUpOwogfQogCi1DRlRpbWVJbnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpk
dXJhdGlvbigpIGNvbnN0CitDRlRpbWVJbnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpk
dXJhdGlvbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFttX2FuaW1hdGlvbi5nZXQoKSBkdXJhdGlv
bl07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0RHVyYXRpb24oQ0ZUaW1lSW50
ZXJ2YWwgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldER1cmF0aW9uKENG
VGltZUludGVydmFsIHZhbHVlKQogewogICAgIFttX2FuaW1hdGlvbi5nZXQoKSBzZXREdXJhdGlv
bjp2YWx1ZV07CiB9CiAKLWZsb2F0IFBsYXRmb3JtQ0FBbmltYXRpb246OnNwZWVkKCkgY29uc3QK
K2Zsb2F0IFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNwZWVkKCkgY29uc3QKIHsKICAgICByZXR1
cm4gW21fYW5pbWF0aW9uLmdldCgpIHNwZWVkXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0
aW9uOjpzZXRTcGVlZChmbG9hdCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6
c2V0U3BlZWQoZmxvYXQgdmFsdWUpCiB7CiAgICAgW21fYW5pbWF0aW9uLmdldCgpIHNldFNwZWVk
OnZhbHVlXTsKIH0KIAotQ0ZUaW1lSW50ZXJ2YWwgUGxhdGZvcm1DQUFuaW1hdGlvbjo6dGltZU9m
ZnNldCgpIGNvbnN0CitDRlRpbWVJbnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjp0aW1l
T2Zmc2V0KCkgY29uc3QKIHsKICAgICByZXR1cm4gW21fYW5pbWF0aW9uLmdldCgpIHRpbWVPZmZz
ZXRdOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRpbWVPZmZzZXQoQ0ZUaW1l
SW50ZXJ2YWwgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFRpbWVPZmZz
ZXQoQ0ZUaW1lSW50ZXJ2YWwgdmFsdWUpCiB7CiAgICAgW21fYW5pbWF0aW9uLmdldCgpIHNldFRp
bWVPZmZzZXQ6dmFsdWVdOwogfQogCi1mbG9hdCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpyZXBlYXRD
b3VudCgpIGNvbnN0CitmbG9hdCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpyZXBlYXRDb3VudCgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIFttX2FuaW1hdGlvbi5nZXQoKSByZXBlYXRDb3VudF07CiB9
CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0UmVwZWF0Q291bnQoZmxvYXQgdmFsdWUp
Cit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFJlcGVhdENvdW50KGZsb2F0IHZhbHVl
KQogewogICAgIFttX2FuaW1hdGlvbi5nZXQoKSBzZXRSZXBlYXRDb3VudDp2YWx1ZV07CiB9CiAK
LWJvb2wgUGxhdGZvcm1DQUFuaW1hdGlvbjo6YXV0b3JldmVyc2VzKCkgY29uc3QKK2Jvb2wgUGxh
dGZvcm1DQUFuaW1hdGlvbk1hYzo6YXV0b3JldmVyc2VzKCkgY29uc3QKIHsKICAgICByZXR1cm4g
W21fYW5pbWF0aW9uLmdldCgpIGF1dG9yZXZlcnNlc107CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvbjo6c2V0QXV0b3JldmVyc2VzKGJvb2wgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb25NYWM6OnNldEF1dG9yZXZlcnNlcyhib29sIHZhbHVlKQogewogICAgIFttX2FuaW1hdGlv
bi5nZXQoKSBzZXRBdXRvcmV2ZXJzZXM6dmFsdWVdOwogfQogCi1QbGF0Zm9ybUNBQW5pbWF0aW9u
OjpGaWxsTW9kZVR5cGUgUGxhdGZvcm1DQUFuaW1hdGlvbjo6ZmlsbE1vZGUoKSBjb25zdAorUGxh
dGZvcm1DQUFuaW1hdGlvbjo6RmlsbE1vZGVUeXBlIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OmZp
bGxNb2RlKCkgY29uc3QKIHsKICAgICByZXR1cm4gZnJvbUNBRmlsbE1vZGVUeXBlKFttX2FuaW1h
dGlvbi5nZXQoKSBmaWxsTW9kZV0pOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNl
dEZpbGxNb2RlKEZpbGxNb2RlVHlwZSB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1h
Yzo6c2V0RmlsbE1vZGUoRmlsbE1vZGVUeXBlIHZhbHVlKQogewogICAgIFttX2FuaW1hdGlvbi5n
ZXQoKSBzZXRGaWxsTW9kZTp0b0NBRmlsbE1vZGVUeXBlKHZhbHVlKV07CiB9CiAKLXZvaWQgUGxh
dGZvcm1DQUFuaW1hdGlvbjo6c2V0VGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24q
IHZhbHVlLCBib29sIHJldmVyc2UpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFRp
bWluZ0Z1bmN0aW9uKGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB2YWx1ZSwgYm9vbCByZXZlcnNlKQog
ewogICAgIFttX2FuaW1hdGlvbi5nZXQoKSBzZXRUaW1pbmdGdW5jdGlvbjp0b0NBTWVkaWFUaW1p
bmdGdW5jdGlvbih2YWx1ZSwgcmV2ZXJzZSldOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b246OmNvcHlUaW1pbmdGdW5jdGlvbkZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFs
dWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OmNvcHlUaW1pbmdGdW5jdGlvbkZyb20o
Y29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCiB7Ci0gICAgW21fYW5pbWF0aW9uLmdl
dCgpIHNldFRpbWluZ0Z1bmN0aW9uOlt2YWx1ZS0+bV9hbmltYXRpb24uZ2V0KCkgdGltaW5nRnVu
Y3Rpb25dXTsKKyAgICBbbV9hbmltYXRpb24uZ2V0KCkgc2V0VGltaW5nRnVuY3Rpb246W3RvUGxh
dGZvcm1DQUFuaW1hdGlvbk1hYyh2YWx1ZSktPm1fYW5pbWF0aW9uLmdldCgpIHRpbWluZ0Z1bmN0
aW9uXV07CiB9CiAKLWJvb2wgUGxhdGZvcm1DQUFuaW1hdGlvbjo6aXNSZW1vdmVkT25Db21wbGV0
aW9uKCkgY29uc3QKK2Jvb2wgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6aXNSZW1vdmVkT25Db21w
bGV0aW9uKCkgY29uc3QKIHsKICAgICByZXR1cm4gW21fYW5pbWF0aW9uLmdldCgpIGlzUmVtb3Zl
ZE9uQ29tcGxldGlvbl07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0UmVtb3Zl
ZE9uQ29tcGxldGlvbihib29sIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpz
ZXRSZW1vdmVkT25Db21wbGV0aW9uKGJvb2wgdmFsdWUpCiB7CiAgICAgW21fYW5pbWF0aW9uLmdl
dCgpIHNldFJlbW92ZWRPbkNvbXBsZXRpb246dmFsdWVdOwogfQogCi1ib29sIFBsYXRmb3JtQ0FB
bmltYXRpb246OmlzQWRkaXRpdmUoKSBjb25zdAorYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFj
Ojppc0FkZGl0aXZlKCkgY29uc3QKIHsKICAgICByZXR1cm4gW21fYW5pbWF0aW9uLmdldCgpIGlz
QWRkaXRpdmVdOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEFkZGl0aXZlKGJv
b2wgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldEFkZGl0aXZlKGJvb2wg
dmFsdWUpCiB7CiAgICAgW21fYW5pbWF0aW9uLmdldCgpIHNldEFkZGl0aXZlOnZhbHVlXTsKIH0K
IAotUGxhdGZvcm1DQUFuaW1hdGlvbjo6VmFsdWVGdW5jdGlvblR5cGUgUGxhdGZvcm1DQUFuaW1h
dGlvbjo6dmFsdWVGdW5jdGlvbigpIGNvbnN0CitQbGF0Zm9ybUNBQW5pbWF0aW9uOjpWYWx1ZUZ1
bmN0aW9uVHlwZSBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjp2YWx1ZUZ1bmN0aW9uKCkgY29uc3QK
IHsKICAgICBDQVZhbHVlRnVuY3Rpb24qIHZmID0gW21fYW5pbWF0aW9uLmdldCgpIHZhbHVlRnVu
Y3Rpb25dOwogICAgIHJldHVybiBmcm9tQ0FWYWx1ZUZ1bmN0aW9uVHlwZShbdmYgbmFtZV0pOwog
fQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFZhbHVlRnVuY3Rpb24oVmFsdWVGdW5j
dGlvblR5cGUgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFZhbHVlRnVu
Y3Rpb24oVmFsdWVGdW5jdGlvblR5cGUgdmFsdWUpCiB7CiAgICAgW21fYW5pbWF0aW9uLmdldCgp
IHNldFZhbHVlRnVuY3Rpb246W0NBVmFsdWVGdW5jdGlvbiBmdW5jdGlvbldpdGhOYW1lOnRvQ0FW
YWx1ZUZ1bmN0aW9uVHlwZSh2YWx1ZSldXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpzZXRGcm9tVmFsdWUoZmxvYXQgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6
OnNldEZyb21WYWx1ZShmbG9hdCB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9
IEJhc2ljKQogICAgICAgICByZXR1cm47CiAgICAgW3N0YXRpY19jYXN0PENBQmFzaWNBbmltYXRp
b24qPihtX2FuaW1hdGlvbi5nZXQoKSkgc2V0RnJvbVZhbHVlOltOU051bWJlciBudW1iZXJXaXRo
RG91YmxlOnZhbHVlXV07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0RnJvbVZh
bHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JiB2YWx1ZSkKK3ZvaWQgUGxh
dGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9y
bWF0aW9uTWF0cml4JiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2lj
KQogICAgICAgICByZXR1cm47CkBAIC0zNTksNyArMzYxLDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgm
IHZhbHUKICAgICBbc3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdl
dCgpKSBzZXRGcm9tVmFsdWU6W05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDp2YWx1ZV1d
OwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEZyb21WYWx1ZShjb25zdCBGbG9h
dFBvaW50M0QmIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRGcm9tVmFs
dWUoY29uc3QgRmxvYXRQb2ludDNEJiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgp
ICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CkBAIC0zNzIsNyArMzc0LDcgQEAgdm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpzZXRGcm9tVmFsdWUoY29uc3QgRmxvYXRQb2ludDNEJiB2YWx1ZSkK
ICAgICBbc3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBz
ZXRGcm9tVmFsdWU6YXJyYXldOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEZy
b21WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb25NYWM6OnNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYgdmFsdWUpCiB7CiAg
ICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKICAgICAgICAgcmV0dXJuOwpAQCAtMzg3
LDMwICszODksMzAgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRGcm9tVmFsdWUoY29u
c3QgV2ViQ29yZTo6Q29sb3ImIHZhbHVlKQogfQogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQot
dm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRGcm9tVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0
aW9uKiBvcGVyYXRpb24sIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpCit2b2lkIFBs
YXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldEZyb21WYWx1ZShjb25zdCBGaWx0ZXJPcGVyYXRpb24q
IG9wZXJhdGlvbiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkKIHsKICAgICBSZXRh
aW5QdHI8aWQ+IHZhbHVlID0gUGxhdGZvcm1DQUZpbHRlcnM6OmZpbHRlclZhbHVlRm9yT3BlcmF0
aW9uKG9wZXJhdGlvbiwgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KTsKICAgICBbc3RhdGlj
X2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRGcm9tVmFsdWU6
dmFsdWUuZ2V0KCldOwogfQogI2VuZGlmCiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29w
eUZyb21WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCit2b2lkIFBs
YXRmb3JtQ0FBbmltYXRpb25NYWM6OmNvcHlGcm9tVmFsdWVGcm9tKGNvbnN0IFBsYXRmb3JtQ0FB
bmltYXRpb24qIHZhbHVlKQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMgfHwg
dmFsdWUtPmFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAKLSAgICBDQUJhc2ljQW5pbWF0aW9uKiBvdGhlckFuaW1hdGlvbiA9IHN0YXRpY19jYXN0PENB
QmFzaWNBbmltYXRpb24qPih2YWx1ZS0+bV9hbmltYXRpb24uZ2V0KCkpOworICAgIENBQmFzaWNB
bmltYXRpb24qIG90aGVyQW5pbWF0aW9uID0gc3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+
KHRvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYyh2YWx1ZSktPm1fYW5pbWF0aW9uLmdldCgpKTsKICAg
ICBbc3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRG
cm9tVmFsdWU6W290aGVyQW5pbWF0aW9uIGZyb21WYWx1ZV1dOwogfQogCi12b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb246OnNldFRvVmFsdWUoZmxvYXQgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb25NYWM6OnNldFRvVmFsdWUoZmxvYXQgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5
cGUoKSAhPSBCYXNpYykKICAgICAgICAgcmV0dXJuOwogICAgIFtzdGF0aWNfY2FzdDxDQUJhc2lj
QW5pbWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNldFRvVmFsdWU6W05TTnVtYmVyIG51bWJl
cldpdGhEb3VibGU6dmFsdWVdXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRU
b1ZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JiB2YWx1ZSkKK3ZvaWQg
UGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNp
YykKICAgICAgICAgcmV0dXJuOwpAQCAtNDE4LDcgKzQyMCw3IEBAIHZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvbjo6c2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
dmFsdWUpCiAgICAgW3N0YXRpY19jYXN0PENBQmFzaWNBbmltYXRpb24qPihtX2FuaW1hdGlvbi5n
ZXQoKSkgc2V0VG9WYWx1ZTpbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOnZhbHVlXV07
CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VG9WYWx1ZShjb25zdCBGbG9hdFBv
aW50M0QmIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRUb1ZhbHVlKGNv
bnN0IEZsb2F0UG9pbnQzRCYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBC
YXNpYykKICAgICAgICAgcmV0dXJuOwpAQCAtNDMxLDcgKzQzMyw3IEBAIHZvaWQgUGxhdGZvcm1D
QUFuaW1hdGlvbjo6c2V0VG9WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmIHZhbHVlKQogICAgIFtz
dGF0aWNfY2FzdDxDQUJhc2ljQW5pbWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNldFRvVmFs
dWU6YXJyYXldOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRvVmFsdWUoY29u
c3QgV2ViQ29yZTo6Q29sb3ImIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpz
ZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0
aW9uVHlwZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CkBAIC00NDYsMjUgKzQ0OCwyNSBA
QCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRvVmFsdWUoY29uc3QgV2ViQ29yZTo6Q29s
b3ImIHZhbHVlKQogfQogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQotdm9pZCBQbGF0Zm9ybUNB
QW5pbWF0aW9uOjpzZXRUb1ZhbHVlKGNvbnN0IEZpbHRlck9wZXJhdGlvbiogb3BlcmF0aW9uLCBp
bnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
TWFjOjpzZXRUb1ZhbHVlKGNvbnN0IEZpbHRlck9wZXJhdGlvbiogb3BlcmF0aW9uLCBpbnQgaW50
ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KQogewogICAgIFJldGFpblB0cjxpZD4gdmFsdWUgPSBQ
bGF0Zm9ybUNBRmlsdGVyczo6ZmlsdGVyVmFsdWVGb3JPcGVyYXRpb24ob3BlcmF0aW9uLCBpbnRl
cm5hbEZpbHRlclByb3BlcnR5SW5kZXgpOwogICAgIFtzdGF0aWNfY2FzdDxDQUJhc2ljQW5pbWF0
aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNldFRvVmFsdWU6dmFsdWUuZ2V0KCldOwogfQogI2Vu
ZGlmCiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weVRvVmFsdWVGcm9tKGNvbnN0IFBs
YXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpj
b3B5VG9WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCiB7CiAgICAg
aWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYyB8fCB2YWx1ZS0+YW5pbWF0aW9uVHlwZSgpICE9
IEJhc2ljKQogICAgICAgICByZXR1cm47CiAgICAgICAgIAotICAgIENBQmFzaWNBbmltYXRpb24q
IG90aGVyQW5pbWF0aW9uID0gc3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KHZhbHVlLT5t
X2FuaW1hdGlvbi5nZXQoKSk7CisgICAgQ0FCYXNpY0FuaW1hdGlvbiogb3RoZXJBbmltYXRpb24g
PSBzdGF0aWNfY2FzdDxDQUJhc2ljQW5pbWF0aW9uKj4odG9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFj
KHZhbHVlKS0+bV9hbmltYXRpb24uZ2V0KCkpOwogICAgIFtzdGF0aWNfY2FzdDxDQUJhc2ljQW5p
bWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNldFRvVmFsdWU6W290aGVyQW5pbWF0aW9uIHRv
VmFsdWVdXTsKIH0KIAogCiAvLyBLZXlmcmFtZS1hbmltYXRpb24gcHJvcGVydGllcy4KLXZvaWQg
UGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mIHZhbHVl
KQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPGZs
b2F0PiYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBLZXlmcmFtZSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtNDc1LDcgKzQ3Nyw3IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
bjo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mIHZhbHVlKQogICAgIFtzdGF0aWNfY2Fz
dDxDQUtleWZyYW1lQW5pbWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNldFZhbHVlczphcnJh
eV07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3Rv
cjxXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeD4mIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNB
QW5pbWF0aW9uTWFjOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRyYW5zZm9ybWF0
aW9uTWF0cml4PiYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBLZXlmcmFt
ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDg4LDcgKzQ5MCw3IEBAIHZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1h
dHJpeD4mCiAgICAgW3N0YXRpY19jYXN0PENBS2V5ZnJhbWVBbmltYXRpb24qPihtX2FuaW1hdGlv
bi5nZXQoKSkgc2V0VmFsdWVzOmFycmF5XTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPEZsb2F0UG9pbnQzRD4mIHZhbHVlKQordm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPEZsb2F0UG9pbnQzRD4m
IHZhbHVlKQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gS2V5ZnJhbWUpCiAgICAgICAg
IHJldHVybjsKQEAgLTUwNiw3ICs1MDgsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNl
dFZhbHVlcyhjb25zdCBWZWN0b3I8RmxvYXRQb2ludDNEPiYgdmFsdWUpCiAgICAgW3N0YXRpY19j
YXN0PENBS2V5ZnJhbWVBbmltYXRpb24qPihtX2FuaW1hdGlvbi5nZXQoKSkgc2V0VmFsdWVzOmFy
cmF5XTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVj
dG9yPFdlYkNvcmU6OkNvbG9yPiYgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6
OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+JiB2YWx1ZSkKIHsKICAgICBp
ZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZyYW1lKQogICAgICAgICByZXR1cm47CkBAIC01MjYs
NyArNTI4LDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVj
dG9yPFdlYkNvcmU6OkNvbG9yPiYgdmFsdWUpCiB9CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMp
Ci12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8UmVmUHRy
PEZpbHRlck9wZXJhdGlvbj4+JiB2YWx1ZXMsIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5k
ZXgpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8
UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4+JiB2YWx1ZXMsIGludCBpbnRlcm5hbEZpbHRlclByb3Bl
cnR5SW5kZXgpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBLZXlmcmFtZSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtNTQxLDE2ICs1NDMsMTYgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+PiYgdmFsdWUK
IH0KICNlbmRpZgogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OmNvcHlWYWx1ZXNGcm9tKGNv
bnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
TWFjOjpjb3B5VmFsdWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIHsK
ICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZyYW1lIHx8IHZhbHVlLT5hbmltYXRpb25U
eXBlKCkgIT0gS2V5ZnJhbWUpCiAgICAgICAgIHJldHVybjsKICAgICAgICAgCi0gICAgQ0FLZXlm
cmFtZUFuaW1hdGlvbiogb3RoZXJBbmltYXRpb24gPSBzdGF0aWNfY2FzdDxDQUtleWZyYW1lQW5p
bWF0aW9uKj4odmFsdWUtPm1fYW5pbWF0aW9uLmdldCgpKTsKKyAgICBDQUtleWZyYW1lQW5pbWF0
aW9uKiBvdGhlckFuaW1hdGlvbiA9IHN0YXRpY19jYXN0PENBS2V5ZnJhbWVBbmltYXRpb24qPih0
b1BsYXRmb3JtQ0FBbmltYXRpb25NYWModmFsdWUpLT5tX2FuaW1hdGlvbi5nZXQoKSk7CiAgICAg
W3N0YXRpY19jYXN0PENBS2V5ZnJhbWVBbmltYXRpb24qPihtX2FuaW1hdGlvbi5nZXQoKSkgc2V0
VmFsdWVzOltvdGhlckFuaW1hdGlvbiB2YWx1ZXNdXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpzZXRLZXlUaW1lcyhjb25zdCBWZWN0b3I8ZmxvYXQ+JiB2YWx1ZSkKK3ZvaWQgUGxh
dGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0S2V5VGltZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYgdmFs
dWUpCiB7CiAgICAgTlNNdXRhYmxlQXJyYXkqIGFycmF5ID0gW05TTXV0YWJsZUFycmF5IGFycmF5
XTsKIApAQCAtNTYwLDEzICs1NjIsMTMgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRL
ZXlUaW1lcyhjb25zdCBWZWN0b3I8ZmxvYXQ+JiB2YWx1ZSkKICAgICBbc3RhdGljX2Nhc3Q8Q0FL
ZXlmcmFtZUFuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRLZXlUaW1lczphcnJheV07
CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weUtleVRpbWVzRnJvbShjb25zdCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6
Y29weUtleVRpbWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIHsKLSAg
ICBDQUtleWZyYW1lQW5pbWF0aW9uKiBvdGhlciA9IHN0YXRpY19jYXN0PENBS2V5ZnJhbWVBbmlt
YXRpb24qPih2YWx1ZS0+bV9hbmltYXRpb24uZ2V0KCkpOworICAgIENBS2V5ZnJhbWVBbmltYXRp
b24qIG90aGVyID0gc3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+KHRvUGxhdGZvcm1D
QUFuaW1hdGlvbk1hYyh2YWx1ZSktPm1fYW5pbWF0aW9uLmdldCgpKTsKICAgICBbc3RhdGljX2Nh
c3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRLZXlUaW1lczpb
b3RoZXIga2V5VGltZXNdXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUaW1p
bmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4mIHZhbHVlLCBi
b29sIHJldmVyc2UpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFRpbWluZ0Z1bmN0
aW9ucyhjb25zdCBWZWN0b3I8Y29uc3QgVGltaW5nRnVuY3Rpb24qPiYgdmFsdWUsIGJvb2wgcmV2
ZXJzZSkKIHsKICAgICBOU011dGFibGVBcnJheSogYXJyYXkgPSBbTlNNdXRhYmxlQXJyYXkgYXJy
YXldOwogCkBAIC01NzYsOCArNTc4LDggQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRU
aW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4KICAgICBb
c3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRU
aW1pbmdGdW5jdGlvbnM6YXJyYXldOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OmNv
cHlUaW1pbmdGdW5jdGlvbnNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQor
dm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShjb25z
dCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIHsKLSAgICBDQUtleWZyYW1lQW5pbWF0aW9u
KiBvdGhlciA9IHN0YXRpY19jYXN0PENBS2V5ZnJhbWVBbmltYXRpb24qPih2YWx1ZS0+bV9hbmlt
YXRpb24uZ2V0KCkpOworICAgIENBS2V5ZnJhbWVBbmltYXRpb24qIG90aGVyID0gc3RhdGljX2Nh
c3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+KHRvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYyh2YWx1ZSkt
Pm1fYW5pbWF0aW9uLmdldCgpKTsKICAgICBbc3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1hdGlv
bio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRUaW1pbmdGdW5jdGlvbnM6W290aGVyIHRpbWluZ0Z1
bmN0aW9uc11dOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0KaW5kZXggNjg1NmEyMmY0YzQz
ZjU0MmUxMDg4MTVhYWFjY2VkYTBmMzg0NzA5My4uY2Y4ZTMwYWZlMTZmZTc5YTBjZDhiYmJlNTkx
YWFhN2Y0NTA5MGE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCkBAIC0zMiw2ICszMiw3
IEBACiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHQuaCIKICNpbXBvcnQgIkdyYXBoaWNzTGF5ZXJD
QS5oIgogI2ltcG9ydCAiTGVuZ3RoRnVuY3Rpb25zLmgiCisjaW1wb3J0ICJQbGF0Zm9ybUNBQW5p
bWF0aW9uTWFjLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybUNBRmlsdGVycy5oIgogI2ltcG9ydCAiUGxh
dGZvcm1DQUZpbHRlcnNNYWMuaCIKICNpbXBvcnQgIlNjcm9sbGJhclRoZW1lTWFjLmgiCkBAIC0z
OTUsMTIgKzM5NiwxMiBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6YWRkQW5pbWF0aW9uRm9y
S2V5KGNvbnN0IFN0cmluZyYga2V5LCBQbGF0Zm9ybUNBQW5pbWF0aQogICAgICAgICBbd2ViQW5p
bWF0aW9uRGVsZWdhdGUgc2V0T3duZXI6dGhpc107CiAgICAgfQogICAgIAotICAgIENBUHJvcGVy
dHlBbmltYXRpb24qIHByb3BlcnR5QW5pbWF0aW9uID0gc3RhdGljX2Nhc3Q8Q0FQcm9wZXJ0eUFu
aW1hdGlvbio+KGFuaW1hdGlvbi0+cGxhdGZvcm1BbmltYXRpb24oKSk7CisgICAgQ0FQcm9wZXJ0
eUFuaW1hdGlvbiogcHJvcGVydHlBbmltYXRpb24gPSBzdGF0aWNfY2FzdDxDQVByb3BlcnR5QW5p
bWF0aW9uKj4odG9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKGFuaW1hdGlvbiktPnBsYXRmb3JtQW5p
bWF0aW9uKCkpOwogICAgIGlmICghW3Byb3BlcnR5QW5pbWF0aW9uIGRlbGVnYXRlXSkKICAgICAg
ICAgW3Byb3BlcnR5QW5pbWF0aW9uIHNldERlbGVnYXRlOnN0YXRpY19jYXN0PGlkPihtX2RlbGVn
YXRlLmdldCgpKV07CiAgICAgIAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAg
IFttX2xheWVyLmdldCgpIGFkZEFuaW1hdGlvbjphbmltYXRpb24tPm1fYW5pbWF0aW9uLmdldCgp
IGZvcktleTprZXldOworICAgIFttX2xheWVyLmdldCgpIGFkZEFuaW1hdGlvbjpwcm9wZXJ0eUFu
aW1hdGlvbiBmb3JLZXk6a2V5XTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAK
QEAgLTQxNiw3ICs0MTcsNyBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRm
b3JtQ0FMYXllck1hYzo6YW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZwogICAgIENBUHJvcGVy
dHlBbmltYXRpb24qIHByb3BlcnR5QW5pbWF0aW9uID0gc3RhdGljX2Nhc3Q8Q0FQcm9wZXJ0eUFu
aW1hdGlvbio+KFttX2xheWVyLmdldCgpIGFuaW1hdGlvbkZvcktleTprZXldKTsKICAgICBpZiAo
IXByb3BlcnR5QW5pbWF0aW9uKQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gUGxhdGZv
cm1DQUFuaW1hdGlvbjo6Y3JlYXRlKHByb3BlcnR5QW5pbWF0aW9uKTsKKyAgICByZXR1cm4gUGxh
dGZvcm1DQUFuaW1hdGlvbk1hYzo6Y3JlYXRlKHByb3BlcnR5QW5pbWF0aW9uKTsKIH0KIAogdm9p
ZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldE1hc2soUGxhdGZvcm1DQUxheWVyKiBsYXllcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ29u
dHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxl
Q29udHJvbGxlci5tbQppbmRleCBmZTNlODBlYjA2NWFiNDhhZTc3YmI3YzUyNjZiMWM0YzhjODc0
NWU2Li5mZWMzOWJhNzNhNTg3NDc0MjViNTdmMWQzMmU5NjRjMTRiM2E3MWUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNvbnRyb2xsZXIu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDb250
cm9sbGVyLm1tCkBAIC0yNiw2ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQg
IlRpbGVDb250cm9sbGVyLmgiCiAKKyNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9y
dCAiSW50UmVjdC5oIgogI2ltcG9ydCAiUGxhdGZvcm1DQUxheWVyLmgiCiAjaW1wb3J0ICJSZWdp
b24uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dp
bi9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcAppbmRleCAyYTVjM2YyMjgy
MTVlNmE2OGFkY2FhYTdiMzQ5YmI4M2VlYjVhYzkxLi41ZjZjMjRjODc5YjJiNGFkMmM4MTI1MWFm
YmQwMzY3Y2NjNTM3OTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FBbmltYXRpb25XaW4uY3BwCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSw3ICsy
NSw4IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2luY2x1ZGUgIlBsYXRmb3JtQ0FBbmlt
YXRpb24uaCIKKyNpZiBQTEFURk9STShXSU4pCisjaW5jbHVkZSAiUGxhdGZvcm1DQUFuaW1hdGlv
bldpbi5oIgogCiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiVGltaW5n
RnVuY3Rpb24uaCIKQEAgLTE0MSwxNyArMTQyLDE3IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0FDRlRp
bWluZ0Z1bmN0aW9uUmVmPiB0b0NBQ0ZUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlv
CiAgICAgcmV0dXJuIENBQ0ZUaW1pbmdGdW5jdGlvbkdldEZ1bmN0aW9uV2l0aE5hbWUoa0NBQ0ZU
aW1pbmdGdW5jdGlvbkxpbmVhcik7CiB9CiAKLVBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlv
bj4gUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y3JlYXRlKEFuaW1hdGlvblR5cGUgdHlwZSwgY29uc3Qg
U3RyaW5nJiBrZXlQYXRoKQorUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9y
bUNBQW5pbWF0aW9uV2luOjpjcmVhdGUoQW5pbWF0aW9uVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcm
IGtleVBhdGgpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQbGF0Zm9ybUNBQW5pbWF0aW9u
KHR5cGUsIGtleVBhdGgpKTsKIH0KIAotUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjpjcmVhdGUoUGxhdGZvcm1BbmltYXRpb25SZWYgYW5pbWF0aW9u
KQorUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5pbWF0aW9uV2lu
OjpjcmVhdGUoUGxhdGZvcm1BbmltYXRpb25SZWYgYW5pbWF0aW9uKQogewogICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgUGxhdGZvcm1DQUFuaW1hdGlvbihhbmltYXRpb24pKTsKIH0KIAotUGxhdGZv
cm1DQUFuaW1hdGlvbjo6UGxhdGZvcm1DQUFuaW1hdGlvbihBbmltYXRpb25UeXBlIHR5cGUsIGNv
bnN0IFN0cmluZyYga2V5UGF0aCkKK1BsYXRmb3JtQ0FBbmltYXRpb25XaW46OlBsYXRmb3JtQ0FB
bmltYXRpb25XaW4oQW5pbWF0aW9uVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIGtleVBhdGgpCiAg
ICAgOiBtX3R5cGUodHlwZSkKIHsKICAgICBpZiAodHlwZSA9PSBCYXNpYykKQEAgLTE2Miw3ICsx
NjMsNyBAQCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKEFuaW1hdGlv
blR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYQogICAgIENBQ0ZBbmltYXRpb25TZXRLZXlQ
YXRoKG1fYW5pbWF0aW9uLmdldCgpLCBrZXlQYXRoLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOwog
fQogCi1QbGF0Zm9ybUNBQW5pbWF0aW9uOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKFBsYXRmb3JtQW5p
bWF0aW9uUmVmIGFuaW1hdGlvbikKK1BsYXRmb3JtQ0FBbmltYXRpb25XaW46OlBsYXRmb3JtQ0FB
bmltYXRpb25XaW4oUGxhdGZvcm1BbmltYXRpb25SZWYgYW5pbWF0aW9uKQogewogICAgIGlmIChD
QUNGQW5pbWF0aW9uR2V0Q2xhc3MoYW5pbWF0aW9uKSA9PSBrQ0FDRkJhc2ljQW5pbWF0aW9uKQog
ICAgICAgICBtX3R5cGUgPSBCYXNpYzsKQEAgLTE3Niw3ICsxNzcsNyBAQCBQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKFBsYXRmb3JtQW5pbWF0aW9uUmVmIGFuaW1hdGlv
bikKICAgICBtX2FuaW1hdGlvbiA9IGFuaW1hdGlvbjsKIH0KIAotUGFzc1JlZlB0cjxQbGF0Zm9y
bUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5KCkgY29uc3QKK1Bhc3NSZWZQ
dHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6Y29weSgpIGNv
bnN0CiB7CiAgICAgUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGFuaW1hdGlvbiA9IGNyZWF0
ZShhbmltYXRpb25UeXBlKCksIGtleVBhdGgoKSk7CiAgICAgCkBAIC0yMDYsMTM2ICsyMDcsMTM2
IEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUFuaW1hdGlvbjo6
Y29weSgpIGNvbnN0CiAgICAgcmV0dXJuIGFuaW1hdGlvbjsKIH0KIAotUGxhdGZvcm1DQUFuaW1h
dGlvbjo6flBsYXRmb3JtQ0FBbmltYXRpb24oKQorUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6flBs
YXRmb3JtQ0FBbmltYXRpb25XaW4oKQogewogfQogCi1QbGF0Zm9ybUFuaW1hdGlvblJlZiBQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpwbGF0Zm9ybUFuaW1hdGlvbigpIGNvbnN0CitQbGF0Zm9ybUFuaW1h
dGlvblJlZiBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpwbGF0Zm9ybUFuaW1hdGlvbigpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIG1fYW5pbWF0aW9uLmdldCgpOwogfQogCi1TdHJpbmcgUGxhdGZvcm1D
QUFuaW1hdGlvbjo6a2V5UGF0aCgpIGNvbnN0CitTdHJpbmcgUGxhdGZvcm1DQUFuaW1hdGlvbldp
bjo6a2V5UGF0aCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIENBQ0ZBbmltYXRpb25HZXRLZXlQYXRo
KG1fYW5pbWF0aW9uLmdldCgpKTsKIH0KIAotQ0ZUaW1lSW50ZXJ2YWwgUGxhdGZvcm1DQUFuaW1h
dGlvbjo6YmVnaW5UaW1lKCkgY29uc3QKK0NGVGltZUludGVydmFsIFBsYXRmb3JtQ0FBbmltYXRp
b25XaW46OmJlZ2luVGltZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIENBQ0ZBbmltYXRpb25HZXRC
ZWdpblRpbWUobV9hbmltYXRpb24uZ2V0KCkpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b246OnNldEJlZ2luVGltZShDRlRpbWVJbnRlcnZhbCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvbldpbjo6c2V0QmVnaW5UaW1lKENGVGltZUludGVydmFsIHZhbHVlKQogewogICAgIENB
Q0ZBbmltYXRpb25TZXRCZWdpblRpbWUobV9hbmltYXRpb24uZ2V0KCksIHZhbHVlKTsKIH0KIAot
Q0ZUaW1lSW50ZXJ2YWwgUGxhdGZvcm1DQUFuaW1hdGlvbjo6ZHVyYXRpb24oKSBjb25zdAorQ0ZU
aW1lSW50ZXJ2YWwgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6ZHVyYXRpb24oKSBjb25zdAogewog
ICAgIHJldHVybiBDQUNGQW5pbWF0aW9uR2V0RHVyYXRpb24obV9hbmltYXRpb24uZ2V0KCkpOwog
fQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldER1cmF0aW9uKENGVGltZUludGVydmFs
IHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXREdXJhdGlvbihDRlRpbWVJ
bnRlcnZhbCB2YWx1ZSkKIHsKICAgICBDQUNGQW5pbWF0aW9uU2V0RHVyYXRpb24obV9hbmltYXRp
b24uZ2V0KCksIHZhbHVlKTsKIH0KIAotZmxvYXQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c3BlZWQo
KSBjb25zdAorZmxvYXQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c3BlZWQoKSBjb25zdAogewog
ICAgIHJldHVybiBDQUNGQW5pbWF0aW9uR2V0U3BlZWQobV9hbmltYXRpb24uZ2V0KCkpOwogfQog
Ci12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFNwZWVkKGZsb2F0IHZhbHVlKQordm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRTcGVlZChmbG9hdCB2YWx1ZSkKIHsKICAgICBDQUNG
QW5pbWF0aW9uU2V0U3BlZWQobV9hbmltYXRpb24uZ2V0KCksIHZhbHVlKTsKIH0KIAotQ0ZUaW1l
SW50ZXJ2YWwgUGxhdGZvcm1DQUFuaW1hdGlvbjo6dGltZU9mZnNldCgpIGNvbnN0CitDRlRpbWVJ
bnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjp0aW1lT2Zmc2V0KCkgY29uc3QKIHsKICAg
ICByZXR1cm4gQ0FDRkFuaW1hdGlvbkdldFRpbWVPZmZzZXQobV9hbmltYXRpb24uZ2V0KCkpOwog
fQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRpbWVPZmZzZXQoQ0ZUaW1lSW50ZXJ2
YWwgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldFRpbWVPZmZzZXQoQ0ZU
aW1lSW50ZXJ2YWwgdmFsdWUpCiB7CiAgICAgQ0FDRkFuaW1hdGlvblNldFRpbWVPZmZzZXQobV9h
bmltYXRpb24uZ2V0KCksIHZhbHVlKTsKIH0KIAotZmxvYXQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6
cmVwZWF0Q291bnQoKSBjb25zdAorZmxvYXQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6cmVwZWF0
Q291bnQoKSBjb25zdAogewogICAgIHJldHVybiBDQUNGQW5pbWF0aW9uR2V0UmVwZWF0Q291bnQo
bV9hbmltYXRpb24uZ2V0KCkpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFJl
cGVhdENvdW50KGZsb2F0IHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRS
ZXBlYXRDb3VudChmbG9hdCB2YWx1ZSkKIHsKICAgICBDQUNGQW5pbWF0aW9uU2V0UmVwZWF0Q291
bnQobV9hbmltYXRpb24uZ2V0KCksIHZhbHVlKTsKIH0KIAotYm9vbCBQbGF0Zm9ybUNBQW5pbWF0
aW9uOjphdXRvcmV2ZXJzZXMoKSBjb25zdAorYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjph
dXRvcmV2ZXJzZXMoKSBjb25zdAogewogICAgIHJldHVybiBDQUNGQW5pbWF0aW9uR2V0QXV0b3Jl
dmVyc2VzKG1fYW5pbWF0aW9uLmdldCgpKTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpzZXRBdXRvcmV2ZXJzZXMoYm9vbCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldp
bjo6c2V0QXV0b3JldmVyc2VzKGJvb2wgdmFsdWUpCiB7CiAgICAgQ0FDRkFuaW1hdGlvblNldEF1
dG9yZXZlcnNlcyhtX2FuaW1hdGlvbi5nZXQoKSwgdmFsdWUpOwogfQogCi1QbGF0Zm9ybUNBQW5p
bWF0aW9uOjpGaWxsTW9kZVR5cGUgUGxhdGZvcm1DQUFuaW1hdGlvbjo6ZmlsbE1vZGUoKSBjb25z
dAorUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6RmlsbE1vZGVUeXBlIFBsYXRmb3JtQ0FBbmltYXRp
b25XaW46OmZpbGxNb2RlKCkgY29uc3QKIHsKICAgICByZXR1cm4gZnJvbUNBQ0ZGaWxsTW9kZVR5
cGUoQ0FDRkFuaW1hdGlvbkdldEZpbGxNb2RlKG1fYW5pbWF0aW9uLmdldCgpKSk7CiB9CiAKLXZv
aWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0RmlsbE1vZGUoRmlsbE1vZGVUeXBlIHZhbHVlKQor
dm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRGaWxsTW9kZShGaWxsTW9kZVR5cGUgdmFs
dWUpCiB7CiAgICAgQ0FDRkFuaW1hdGlvblNldEZpbGxNb2RlKG1fYW5pbWF0aW9uLmdldCgpLCB0
b0NBQ0ZGaWxsTW9kZVR5cGUodmFsdWUpKTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpzZXRUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiogdmFsdWUsIGJvb2wgcmV2
ZXJzZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0VGltaW5nRnVuY3Rpb24oY29u
c3QgVGltaW5nRnVuY3Rpb24qIHZhbHVlLCBib29sIHJldmVyc2UpCiB7CiAgICAgVU5VU0VEX1BB
UkFNKHJldmVyc2UpOwogICAgIENBQ0ZBbmltYXRpb25TZXRUaW1pbmdGdW5jdGlvbihtX2FuaW1h
dGlvbi5nZXQoKSwgdG9DQUNGVGltaW5nRnVuY3Rpb24odmFsdWUsIHJldmVyc2UpLmdldCgpKTsK
IH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5VGltaW5nRnVuY3Rpb25Gcm9tKGNv
bnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
V2luOjpjb3B5VGltaW5nRnVuY3Rpb25Gcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZh
bHVlKQogewogICAgIENBQ0ZUaW1pbmdGdW5jdGlvblJlZiB0aW1pbmdGdW5jID0gQ0FDRkFuaW1h
dGlvbkdldFRpbWluZ0Z1bmN0aW9uKHZhbHVlLT5tX2FuaW1hdGlvbi5nZXQoKSk7CiAgICAgaWYg
KHRpbWluZ0Z1bmMpCiAgICAgICAgIENBQ0ZBbmltYXRpb25TZXRUaW1pbmdGdW5jdGlvbihtX2Fu
aW1hdGlvbi5nZXQoKSwgdGltaW5nRnVuYyk7CiB9CiAKLWJvb2wgUGxhdGZvcm1DQUFuaW1hdGlv
bjo6aXNSZW1vdmVkT25Db21wbGV0aW9uKCkgY29uc3QKK2Jvb2wgUGxhdGZvcm1DQUFuaW1hdGlv
bldpbjo6aXNSZW1vdmVkT25Db21wbGV0aW9uKCkgY29uc3QKIHsKICAgICByZXR1cm4gQ0FDRkFu
aW1hdGlvbklzUmVtb3ZlZE9uQ29tcGxldGlvbihtX2FuaW1hdGlvbi5nZXQoKSk7CiB9CiAKLXZv
aWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0UmVtb3ZlZE9uQ29tcGxldGlvbihib29sIHZhbHVl
KQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRSZW1vdmVkT25Db21wbGV0aW9uKGJv
b2wgdmFsdWUpCiB7CiAgICAgQ0FDRkFuaW1hdGlvblNldFJlbW92ZWRPbkNvbXBsZXRpb24obV9h
bmltYXRpb24uZ2V0KCksIHZhbHVlKTsKIH0KIAotYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpp
c0FkZGl0aXZlKCkgY29uc3QKK2Jvb2wgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6aXNBZGRpdGl2
ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIENBQ0ZBbmltYXRpb25Jc0FkZGl0aXZlKG1fYW5pbWF0
aW9uLmdldCgpKTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRBZGRpdGl2ZShi
b29sIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRBZGRpdGl2ZShib29s
IHZhbHVlKQogewogICAgIENBQ0ZBbmltYXRpb25TZXRBZGRpdGl2ZShtX2FuaW1hdGlvbi5nZXQo
KSwgdmFsdWUpOwogfQogCi1QbGF0Zm9ybUNBQW5pbWF0aW9uOjpWYWx1ZUZ1bmN0aW9uVHlwZSBQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjp2YWx1ZUZ1bmN0aW9uKCkgY29uc3QKK1BsYXRmb3JtQ0FBbmlt
YXRpb246OlZhbHVlRnVuY3Rpb25UeXBlIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnZhbHVlRnVu
Y3Rpb24oKSBjb25zdAogewogICAgIENBQ0ZWYWx1ZUZ1bmN0aW9uUmVmIGZ1bmMgPSBDQUNGQW5p
bWF0aW9uR2V0VmFsdWVGdW5jdGlvbihtX2FuaW1hdGlvbi5nZXQoKSk7CiAgICAgcmV0dXJuIGZ1
bmMgPyBmcm9tQ0FDRlZhbHVlRnVuY3Rpb25UeXBlKENBQ0ZWYWx1ZUZ1bmN0aW9uR2V0TmFtZShm
dW5jKSkgOiBOb1ZhbHVlRnVuY3Rpb247CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6
c2V0VmFsdWVGdW5jdGlvbihWYWx1ZUZ1bmN0aW9uVHlwZSB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1D
QUFuaW1hdGlvbldpbjo6c2V0VmFsdWVGdW5jdGlvbihWYWx1ZUZ1bmN0aW9uVHlwZSB2YWx1ZSkK
IHsKICAgICBDRlN0cmluZ1JlZiB2YWx1ZVN0cmluZyA9IHRvQ0FDRlZhbHVlRnVuY3Rpb25UeXBl
KHZhbHVlKTsKICAgICBDQUNGQW5pbWF0aW9uU2V0VmFsdWVGdW5jdGlvbihtX2FuaW1hdGlvbi5n
ZXQoKSwgdmFsdWVTdHJpbmcgPyBDQUNGVmFsdWVGdW5jdGlvbkdldEZ1bmN0aW9uV2l0aE5hbWUo
dmFsdWVTdHJpbmcpIDogMCk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0RnJv
bVZhbHVlKGZsb2F0IHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRGcm9t
VmFsdWUoZmxvYXQgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykK
ICAgICAgICAgcmV0dXJuOwpAQCAtMzQ0LDcgKzM0NSw3IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1h
dGlvbjo6c2V0RnJvbVZhbHVlKGZsb2F0IHZhbHVlKQogICAgIENBQ0ZBbmltYXRpb25TZXRGcm9t
VmFsdWUobV9hbmltYXRpb24uZ2V0KCksIHYuZ2V0KCkpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FB
bmltYXRpb246OnNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldEZyb21WYWx1ZShjb25z
dCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1h
dGlvblR5cGUoKSAhPSBCYXNpYykKICAgICAgICAgcmV0dXJuOwpAQCAtMzUzLDcgKzM1NCw3IEBA
IHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OlRy
YW5zZm9ybWF0aW9uTWF0cml4JiB2YWx1CiAgICAgQ0FDRkFuaW1hdGlvblNldEZyb21WYWx1ZSht
X2FuaW1hdGlvbi5nZXQoKSwgdi5nZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
bjo6c2V0RnJvbVZhbHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYgdmFsdWUpCit2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25XaW46OnNldEZyb21WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmIHZhbHVlKQog
ewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKQEAg
LTM2Myw3ICszNjQsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEZyb21WYWx1ZShj
b25zdCBGbG9hdFBvaW50M0QmIHZhbHVlKQogICAgIENBQ0ZBbmltYXRpb25TZXRGcm9tVmFsdWUo
bV9hbmltYXRpb24uZ2V0KCksIHYuZ2V0KCkpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b246OnNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYgdmFsdWUpCit2b2lkIFBsYXRm
b3JtQ0FBbmltYXRpb25XaW46OnNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYgdmFs
dWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKICAgICAgICAgcmV0dXJu
OwpAQCAtMzc0LDEzICszNzUsMTMgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRGcm9t
VmFsdWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImIHZhbHVlKQogfQogCiAjaWYgRU5BQkxFKENTU19G
SUxURVJTKQotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRGcm9tVmFsdWUoY29uc3QgRmls
dGVyT3BlcmF0aW9uKiwgaW50KQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRGcm9t
VmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiwgaW50KQogewogICAgIC8vIEZJWE1FOiBIYXJk
d2FyZSBmaWx0ZXIgYW5pbWF0aW9uIG5vdCBpbXBsZW1lbnRlZCBvbiBXaW5kb3dzCiB9CiAjZW5k
aWYKIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5RnJvbVZhbHVlRnJvbShjb25zdCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6
Y29weUZyb21WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCiB7CiAg
ICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYyB8fCB2YWx1ZS0+YW5pbWF0aW9uVHlwZSgp
ICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CkBAIC0zODgsNyArMzg5LDcgQEAgdm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpjb3B5RnJvbVZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0
aW9uKiB2YWx1ZSkKICAgICBDQUNGQW5pbWF0aW9uU2V0RnJvbVZhbHVlKG1fYW5pbWF0aW9uLmdl
dCgpLCBDQUNGQW5pbWF0aW9uR2V0RnJvbVZhbHVlKHZhbHVlLT5wbGF0Zm9ybUFuaW1hdGlvbigp
KSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VG9WYWx1ZShmbG9hdCB2YWx1
ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0VG9WYWx1ZShmbG9hdCB2YWx1ZSkK
IHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CkBA
IC0zOTcsNyArMzk4LDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUb1ZhbHVlKGZs
b2F0IHZhbHVlKQogICAgIENBQ0ZBbmltYXRpb25TZXRUb1ZhbHVlKG1fYW5pbWF0aW9uLmdldCgp
LCB2LmdldCgpKTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUb1ZhbHVlKGNv
bnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1D
QUFuaW1hdGlvbldpbjo6c2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKICAgICAg
ICAgcmV0dXJuOwpAQCAtNDA2LDcgKzQwNyw3IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6
c2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdmFsdWUpCiAg
ICAgQ0FDRkFuaW1hdGlvblNldFRvVmFsdWUobV9hbmltYXRpb24uZ2V0KCksIHYuZ2V0KCkpOwog
fQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRvVmFsdWUoY29uc3QgRmxvYXRQb2lu
dDNEJiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0VG9WYWx1ZShjb25z
dCBGbG9hdFBvaW50M0QmIHZhbHVlKQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFz
aWMpCiAgICAgICAgIHJldHVybjsKQEAgLTQxNiw3ICs0MTcsNyBAQCB2b2lkIFBsYXRmb3JtQ0FB
bmltYXRpb246OnNldFRvVmFsdWUoY29uc3QgRmxvYXRQb2ludDNEJiB2YWx1ZSkKICAgICBDQUNG
QW5pbWF0aW9uU2V0VG9WYWx1ZShtX2FuaW1hdGlvbi5nZXQoKSwgdi5nZXQoKSk7CiB9CiAKLXZv
aWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYg
dmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldFRvVmFsdWUoY29uc3QgV2Vi
Q29yZTo6Q29sb3ImIHZhbHVlKQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMp
CiAgICAgICAgIHJldHVybjsKQEAgLTQyNywxMyArNDI4LDEzIEBAIHZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvbjo6c2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYgdmFsdWUpCiB9CiAKICNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRvVmFs
dWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiwgaW50KQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
V2luOjpzZXRUb1ZhbHVlKGNvbnN0IEZpbHRlck9wZXJhdGlvbiosIGludCkKIHsKICAgICAvLyBG
SVhNRTogSGFyZHdhcmUgZmlsdGVyIGFuaW1hdGlvbiBub3QgaW1wbGVtZW50ZWQgb24gV2luZG93
cwogfQogI2VuZGlmCiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weVRvVmFsdWVGcm9t
KGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0
aW9uV2luOjpjb3B5VG9WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUp
CiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYyB8fCB2YWx1ZS0+YW5pbWF0aW9u
VHlwZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CkBAIC00NDMsNyArNDQ0LDcgQEAgdm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5VG9WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1DQUFu
aW1hdGlvbiogdmFsdWUpCiAKIAogLy8gS2V5ZnJhbWUtYW5pbWF0aW9uIHByb3BlcnRpZXMuCi12
b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8ZmxvYXQ+JiB2
YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3Rv
cjxmbG9hdD4mIHZhbHVlKQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gS2V5ZnJhbWUp
CiAgICAgICAgIHJldHVybjsKQEAgLTQ1Nyw3ICs0NTgsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb246OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8ZmxvYXQ+JiB2YWx1ZSkKICAgICBDQUNGQW5p
bWF0aW9uU2V0VmFsdWVzKG1fYW5pbWF0aW9uLmdldCgpLCBhcnJheS5nZXQoKSk7CiB9CiAKLXZv
aWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpU
cmFuc2Zvcm1hdGlvbk1hdHJpeD4mIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2lu
OjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiYg
dmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBLZXlmcmFtZSkKICAgICAgICAg
cmV0dXJuOwpAQCAtNDcxLDcgKzQ3Miw3IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0
VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeD4mCiAgICAg
Q0FDRkFuaW1hdGlvblNldFZhbHVlcyhtX2FuaW1hdGlvbi5nZXQoKSwgYXJyYXkuZ2V0KCkpOwog
fQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8Rmxv
YXRQb2ludDNEPiYgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldFZhbHVl
cyhjb25zdCBWZWN0b3I8RmxvYXRQb2ludDNEPiYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlv
blR5cGUoKSAhPSBLZXlmcmFtZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDg2LDcgKzQ4Nyw3IEBA
IHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxGbG9hdFBv
aW50M0Q+JiB2YWx1ZSkKICAgICBDQUNGQW5pbWF0aW9uU2V0VmFsdWVzKG1fYW5pbWF0aW9uLmdl
dCgpLCBhcnJheS5nZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFs
dWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb2xvcj4mIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNB
QW5pbWF0aW9uV2luOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbG9yPiYgdmFs
dWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBLZXlmcmFtZSkKICAgICAgICAgcmV0
dXJuOwpAQCAtNTAyLDEzICs1MDMsMTMgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRW
YWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbG9yPiYgdmFsdWUpCiB9CiAKICNpZiBFTkFC
TEUoQ1NTX0ZJTFRFUlMpCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFZhbHVlcyhjb25z
dCBWZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gPiYsIGludCkKK3ZvaWQgUGxhdGZvcm1D
QUFuaW1hdGlvbldpbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0
aW9uPiA+JiwgaW50KQogewogICAgIC8vIEZJWE1FOiBIYXJkd2FyZSBmaWx0ZXIgYW5pbWF0aW9u
IG5vdCBpbXBsZW1lbnRlZCBvbiBXaW5kb3dzCiB9CiAjZW5kaWYKIAotdm9pZCBQbGF0Zm9ybUNB
QW5pbWF0aW9uOjpjb3B5VmFsdWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1
ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6Y29weVZhbHVlc0Zyb20oY29uc3QgUGxh
dGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBL
ZXlmcmFtZSB8fCB2YWx1ZS0+YW5pbWF0aW9uVHlwZSgpICE9IEtleWZyYW1lKQogICAgICAgICBy
ZXR1cm47CkBAIC01MTYsNyArNTE3LDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5
VmFsdWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKICAgICBDQUNGQW5p
bWF0aW9uU2V0VmFsdWVzKG1fYW5pbWF0aW9uLmdldCgpLCBDQUNGQW5pbWF0aW9uR2V0VmFsdWVz
KHZhbHVlLT5wbGF0Zm9ybUFuaW1hdGlvbigpKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1h
dGlvbjo6c2V0S2V5VGltZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYgdmFsdWUpCit2b2lkIFBsYXRm
b3JtQ0FBbmltYXRpb25XaW46OnNldEtleVRpbWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mIHZhbHVl
KQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gS2V5ZnJhbWUpCiAgICAgICAgIHJldHVy
bjsKQEAgLTUzMCw3ICs1MzEsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEtleVRp
bWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mIHZhbHVlKQogICAgIENBQ0ZBbmltYXRpb25TZXRLZXlU
aW1lcyhtX2FuaW1hdGlvbi5nZXQoKSwgYXJyYXkuZ2V0KCkpOwogfQogCi12b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb246OmNvcHlLZXlUaW1lc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiog
dmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OmNvcHlLZXlUaW1lc0Zyb20oY29u
c3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUo
KSAhPSBLZXlmcmFtZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNTM4LDcgKzUzOSw3IEBAIHZvaWQg
UGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weUtleVRpbWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5p
bWF0aW9uKiB2YWx1ZSkKICAgICBDQUNGQW5pbWF0aW9uU2V0S2V5VGltZXMobV9hbmltYXRpb24u
Z2V0KCksIENBQ0ZBbmltYXRpb25HZXRLZXlUaW1lcyh2YWx1ZS0+cGxhdGZvcm1BbmltYXRpb24o
KSkpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRpbWluZ0Z1bmN0aW9ucyhj
b25zdCBWZWN0b3I8Y29uc3QgVGltaW5nRnVuY3Rpb24qPiYgdmFsdWUsIGJvb2wgcmV2ZXJzZSkK
K3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0VGltaW5nRnVuY3Rpb25zKGNvbnN0IFZl
Y3Rvcjxjb25zdCBUaW1pbmdGdW5jdGlvbio+JiB2YWx1ZSwgYm9vbCByZXZlcnNlKQogewogICAg
IFVOVVNFRF9QQVJBTShyZXZlcnNlKTsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZy
YW1lKQpAQCAtNTUzLDcgKzU1NCw5IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VGlt
aW5nRnVuY3Rpb25zKGNvbnN0IFZlY3Rvcjxjb25zdCBUaW1pbmdGdW5jdGlvbio+CiAgICAgQ0FD
RkFuaW1hdGlvblNldFRpbWluZ0Z1bmN0aW9ucyhtX2FuaW1hdGlvbi5nZXQoKSwgYXJyYXkuZ2V0
KCkpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OmNvcHlUaW1pbmdGdW5jdGlvbnNG
cm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uV2luOjpjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0
aW9uKiB2YWx1ZSkKIHsKICAgICBDQUNGQW5pbWF0aW9uU2V0VGltaW5nRnVuY3Rpb25zKG1fYW5p
bWF0aW9uLmdldCgpLCBDQUNGQW5pbWF0aW9uR2V0VGltaW5nRnVuY3Rpb25zKHZhbHVlLT5wbGF0
Zm9ybUFuaW1hdGlvbigpKSk7CiB9CisKKyNlbmRpZiAvLyBQTEFURk9STShXSU4pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUFu
aW1hdGlvbldpbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1Bs
YXRmb3JtQ0FBbmltYXRpb25XaW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODdkYmQzY2I4YWJhMmUwYTMwNWM5
NDM2ZDRjNmJjNmQ5ODY3YzhlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FBbmltYXRpb25XaW4uaApAQCAtMCwwICsx
LDEzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aWZuZGVmIFBsYXRmb3JtQ0FBbmltYXRpb25XaW5faAorI2RlZmluZSBQbGF0Zm9ybUNBQW5pbWF0
aW9uV2luX2gKKworI2lmIFBMQVRGT1JNKFdJTikKKworI2luY2x1ZGUgIlBsYXRmb3JtQ0FBbmlt
YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK3R5cGVkZWYgc3RydWN0IF9D
QUNGQW5pbWF0aW9uKiBDQUNGQW5pbWF0aW9uUmVmOwordHlwZWRlZiBDQUNGQW5pbWF0aW9uUmVm
IFBsYXRmb3JtQW5pbWF0aW9uUmVmOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBs
YXRmb3JtQ0FBbmltYXRpb25XaW4gZmluYWwgOiBwdWJsaWMgUGxhdGZvcm1DQUFuaW1hdGlvbiB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY3Jl
YXRlKEFuaW1hdGlvblR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCk7CisvLyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBjcmVhdGUoUGxhdGZvcm1BbmltYXRpb25S
ZWYpOworCisgICAgdmlydHVhbCB+UGxhdGZvcm1DQUFuaW1hdGlvbldpbigpOworCisgICAgdmly
dHVhbCBib29sIGlzUGxhdGZvcm1DQUFuaW1hdGlvbldpbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KKyAgICAKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1h
dGlvbj4gY29weSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgUGxhdGZvcm1BbmltYXRpb25SZWYg
cGxhdGZvcm1BbmltYXRpb24oKSBjb25zdDsKKyAgICAKKyAgICB2aXJ0dWFsIFN0cmluZyBrZXlQ
YXRoKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgCisgICAgdmlydHVhbCBDRlRpbWVJbnRlcnZhbCBi
ZWdpblRpbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QmVnaW5UaW1l
KENGVGltZUludGVydmFsKSBvdmVycmlkZTsKKyAgICAKKyAgICB2aXJ0dWFsIENGVGltZUludGVy
dmFsIGR1cmF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldER1cmF0
aW9uKENGVGltZUludGVydmFsKSBvdmVycmlkZTsKKyAgICAKKyAgICB2aXJ0dWFsIGZsb2F0IHNw
ZWVkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFNwZWVkKGZsb2F0KSBv
dmVycmlkZTsKKworICAgIHZpcnR1YWwgQ0ZUaW1lSW50ZXJ2YWwgdGltZU9mZnNldCgpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRUaW1lT2Zmc2V0KENGVGltZUludGVydmFs
KSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgZmxvYXQgcmVwZWF0Q291bnQoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVwZWF0Q291bnQoZmxvYXQpIG92ZXJyaWRlOwor
CisgICAgdmlydHVhbCBib29sIGF1dG9yZXZlcnNlcygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBzZXRBdXRvcmV2ZXJzZXMoYm9vbCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFs
IEZpbGxNb2RlVHlwZSBmaWxsTW9kZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRGaWxsTW9kZShGaWxsTW9kZVR5cGUpIG92ZXJyaWRlOworICAgIAorICAgIHZpcnR1YWwg
dm9pZCBzZXRUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiosIGJvb2wgcmV2ZXJz
ZSA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvcHlUaW1pbmdGdW5jdGlvbkZyb20oY29u
c3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBib29sIGlz
UmVtb3ZlZE9uQ29tcGxldGlvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRSZW1vdmVkT25Db21wbGV0aW9uKGJvb2wpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBib29s
IGlzQWRkaXRpdmUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QWRkaXRp
dmUoYm9vbCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIFZhbHVlRnVuY3Rpb25UeXBlIHZhbHVl
RnVuY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVGdW5j
dGlvbihWYWx1ZUZ1bmN0aW9uVHlwZSkgb3ZlcnJpZGU7CisKKyAgICAvLyBCYXNpYy1hbmltYXRp
b24gcHJvcGVydGllcy4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGZsb2F0KSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5z
Zm9ybWF0aW9uTWF0cml4Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1
ZShjb25zdCBGbG9hdFBvaW50M0QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJv
bVZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgb3ZlcnJpZGU7CisjaWYgRU5BQkxFKENTU19G
SUxURVJTKQorICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0
aW9uKiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgb3ZlcnJpZGU7CisjZW5kaWYK
KyAgICB2aXJ0dWFsIHZvaWQgY29weUZyb21WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1h
dGlvbiopIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoZmxvYXQpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5z
Zm9ybWF0aW9uTWF0cml4Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUo
Y29uc3QgRmxvYXRQb2ludDNEJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFs
dWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVycmlkZTsKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRF
UlMpCisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiwg
aW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgb3ZlcnJpZGU7CisjZW5kaWYKKyAgICB2
aXJ0dWFsIHZvaWQgY29weVRvVmFsdWVGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qKSBv
dmVycmlkZTsKKworICAgIC8vIEtleWZyYW1lLWFuaW1hdGlvbiBwcm9wZXJ0aWVzLgorICAgIHZp
cnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRyYW5zZm9ybWF0
aW9uTWF0cml4PiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3Qg
VmVjdG9yPEZsb2F0UG9pbnQzRD4mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFs
dWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb2xvcj4mKSBvdmVycmlkZTsKKyNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8UmVm
UHRyPEZpbHRlck9wZXJhdGlvbj4+JiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkg
b3ZlcnJpZGU7CisjZW5kaWYKKyAgICB2aXJ0dWFsIHZvaWQgY29weVZhbHVlc0Zyb20oY29uc3Qg
UGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIHNldEtl
eVRpbWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
Y29weUtleVRpbWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CisK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0VGltaW5nRnVuY3Rpb25zKGNvbnN0IFZlY3Rvcjxjb25zdCBU
aW1pbmdGdW5jdGlvbio+JiwgYm9vbCByZXZlcnNlID0gZmFsc2UpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0
aW9uKikgb3ZlcnJpZGU7CisKK3Byb3RlY3RlZDoKKyAgICBQbGF0Zm9ybUNBQW5pbWF0aW9uV2lu
KEFuaW1hdGlvblR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCk7CisvLyAgICBQbGF0Zm9ybUNB
QW5pbWF0aW9uKFBsYXRmb3JtQW5pbWF0aW9uUmVmKTsKKworcHJpdmF0ZToKKyAgICBSZXRhaW5Q
dHI8Q0FDRkFuaW1hdGlvblJlZj4gbV9hbmltYXRpb247Cit9OworCitQTEFURk9STV9DQUFOSU1B
VElPTl9UWVBFX0NBU1RTKFBsYXRmb3JtQ0FBbmltYXRpb25XaW4sIGlzUGxhdGZvcm1DQUFuaW1h
dGlvbldpbigpKQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShXSU4pCisKKyNlbmRpZiAvLyBQ
bGF0Zm9ybUNBQW5pbWF0aW9uV2luX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0lQQy9Bcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Fy
Z3VtZW50Q29kZXJzLmgKaW5kZXggMjk3NDEzZjM4YTFjYWU1NDc4YmMxNmE4MzEwMzVhMWQzYTE5
YWJlMy4uYWU4YzZmYmE3ZjA5MjM2ZTkwMTZmZWQ5NjkwZGM5NGYyOGYyMGEzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKQEAgLTMxLDYgKzMxLDcg
QEAKICNpbmNsdWRlIDx1dGlsaXR5PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC0xOTMsNiArMTk0LDQwIEBAIHRlbXBs
YXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJn
LCB0eXBlbmFtZSBLZXlUcmFpCiAgICAgfQogfTsKIAordGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJn
LCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmc+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPEhhc2hTZXQ8S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmc+PiB7CisgICAgdHlw
ZWRlZiBIYXNoU2V0PEtleUFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnPiBIYXNoU2V0VHlwZTsK
KworICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IEhhc2hTZXRUeXBlJiBoYXNoU2V0KQorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNf
Y2FzdDx1aW50NjRfdD4oaGFzaFNldC5zaXplKCkpOworICAgICAgICBmb3IgKHR5cGVuYW1lIEhh
c2hTZXRUeXBlOjpjb25zdF9pdGVyYXRvciBpdCA9IGhhc2hTZXQuYmVnaW4oKSwgZW5kID0gaGFz
aFNldC5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICAgICAgZW5jb2RlciA8PCAqaXQ7
CisgICAgfQorCisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgSGFzaFNldFR5cGUmIGhhc2hTZXQpCisgICAgeworICAgICAgICB1aW50NjRfdCBoYXNoU2V0
U2l6ZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNoU2V0U2l6ZSkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgSGFzaFNldFR5cGUgdGVtcEhhc2hTZXQ7Cisg
ICAgICAgIGZvciAodWludDY0X3QgaSA9IDA7IGkgPCBoYXNoU2V0U2l6ZTsgKytpKSB7CisgICAg
ICAgICAgICBLZXlBcmcga2V5OworICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShrZXkp
KQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgaWYgKCF0ZW1w
SGFzaFNldC5hZGQoa2V5KS5pc05ld0VudHJ5KSB7CisgICAgICAgICAgICAgICAgLy8gVGhlIGhh
c2ggbWFwIGFscmVhZHkgaGFzIHRoZSBzcGVjaWZpZWQga2V5LCBiYWlsLgorICAgICAgICAgICAg
ICAgIGRlY29kZXIubWFya0ludmFsaWQoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBoYXNoU2V0LnN3YXAodGVtcEhh
c2hTZXQpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9OworCiB0ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPEF0b21pY1N0cmluZz4gewogICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKICAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgQXRvbWljU3RyaW5nJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDE0M2ZhNzgxNGUx
M2VjMTY4YWQyNjEyNTNhYzc4YzZhMGU2NmM2YWIuLmJhOWJhOWJkODJlZWRhNjZkYjEzNzA5ZDVh
NGRjMWUxOGMyY2ZiNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TY3Jv
bGxpbmdDb29yZGluYXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGlt
aW5nRnVuY3Rpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RyYW5zZm9ybWF0aW9uTWF0cml4Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJTY3JpcHQu
aD4KQEAgLTkwLDcgKzkxLDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46
OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEFmZmluZVRyYW4KICAgICByZXR1cm4g
U2ltcGxlQXJndW1lbnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+OjpkZWNvZGUoZGVjb2RlciwgYWZm
aW5lVHJhbnNmb3JtKTsKIH0KIAotCiB2b2lkIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25N
YXRyaXg+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgdHJhbnNmb3JtYXRpb25NYXRyaXgpCiB7CiAgICAgU2ltcGxlQXJndW1lbnRD
b2RlcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD46OmVuY29kZShlbmNvZGVyLCB0cmFuc2Zvcm1hdGlv
bk1hdHJpeCk7CkBAIC0xMDEsNiArMTAxLDgzIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxUcmFuc2Zv
cm1hdGlvbk1hdHJpeD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFRyYW5zCiAg
ICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjpkZWNv
ZGUoZGVjb2RlciwgdHJhbnNmb3JtYXRpb25NYXRyaXgpOwogfQogCit2b2lkIEFyZ3VtZW50Q29k
ZXI8TGluZWFyVGltaW5nRnVuY3Rpb24+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBMaW5lYXJUaW1pbmdGdW5jdGlvbiYgdGltaW5nRnVuY3Rpb24pCit7CisgICAgZW5j
b2Rlci5lbmNvZGVFbnVtKHRpbWluZ0Z1bmN0aW9uLnR5cGUoKSk7Cit9CisKK2Jvb2wgQXJndW1l
bnRDb2RlcjxMaW5lYXJUaW1pbmdGdW5jdGlvbj46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRl
Y29kZXIsIExpbmVhclRpbWluZ0Z1bmN0aW9uJiB0aW1pbmdGdW5jdGlvbikKK3sKKyAgICAvLyBU
eXBlIGlzIGRlY29kZWQgYnkgdGhlIGNhbGxlci4gTm90aGluZyBlbHNlIHRvIGRlY29kZS4KKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBBcmd1bWVudENvZGVyPEN1YmljQmV6aWVyVGltaW5n
RnVuY3Rpb24+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDdWJpY0Jl
emllclRpbWluZ0Z1bmN0aW9uJiB0aW1pbmdGdW5jdGlvbikKK3sKKyAgICBlbmNvZGVyLmVuY29k
ZUVudW0odGltaW5nRnVuY3Rpb24udHlwZSgpKTsKKyAgICAKKyAgICBlbmNvZGVyIDw8IHRpbWlu
Z0Z1bmN0aW9uLngxKCk7CisgICAgZW5jb2RlciA8PCB0aW1pbmdGdW5jdGlvbi55MSgpOworICAg
IGVuY29kZXIgPDwgdGltaW5nRnVuY3Rpb24ueDIoKTsKKyAgICBlbmNvZGVyIDw8IHRpbWluZ0Z1
bmN0aW9uLnkyKCk7CisgICAgCisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHRpbWluZ0Z1bmN0aW9u
LnRpbWluZ0Z1bmN0aW9uUHJlc2V0KCkpOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8Q3ViaWNC
ZXppZXJUaW1pbmdGdW5jdGlvbj46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEN1
YmljQmV6aWVyVGltaW5nRnVuY3Rpb24mIHRpbWluZ0Z1bmN0aW9uKQoreworICAgIC8vIFR5cGUg
aXMgZGVjb2RlZCBieSB0aGUgY2FsbGVyLgorICAgIGRvdWJsZSB4MTsKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHgxKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZG91YmxlIHkxOwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoeTEpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBkb3VibGUgeDI7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh4MikpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIGRvdWJsZSB5MjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHkyKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbjo6
VGltaW5nRnVuY3Rpb25QcmVzZXQgcHJlc2V0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVt
KHByZXNldCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHRpbWluZ0Z1bmN0aW9uLnNl
dFZhbHVlcyh4MSwgeTEsIHgyLCB5Mik7CisgICAgdGltaW5nRnVuY3Rpb24uc2V0VGltaW5nRnVu
Y3Rpb25QcmVzZXQocHJlc2V0KTsKKworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEFyZ3Vt
ZW50Q29kZXI8U3RlcHNUaW1pbmdGdW5jdGlvbj46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IFN0ZXBzVGltaW5nRnVuY3Rpb24mIHRpbWluZ0Z1bmN0aW9uKQoreworICAg
IGVuY29kZXIuZW5jb2RlRW51bSh0aW1pbmdGdW5jdGlvbi50eXBlKCkpOworICAgIAorICAgIGVu
Y29kZXIgPDwgdGltaW5nRnVuY3Rpb24ubnVtYmVyT2ZTdGVwcygpOworICAgIGVuY29kZXIgPDwg
dGltaW5nRnVuY3Rpb24uc3RlcEF0U3RhcnQoKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPFN0
ZXBzVGltaW5nRnVuY3Rpb24+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBTdGVw
c1RpbWluZ0Z1bmN0aW9uJiB0aW1pbmdGdW5jdGlvbikKK3sKKyAgICAvLyBUeXBlIGlzIGRlY29k
ZWQgYnkgdGhlIGNhbGxlci4KKyAgICBpbnQgbnVtU3RlcHM7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShudW1TdGVwcykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGJvb2wgc3RlcEF0
U3RhcnQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGVwQXRTdGFydCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIHRpbWluZ0Z1bmN0aW9uLnNldE51bWJlck9mU3RlcHMobnVtU3Rl
cHMpOworICAgIHRpbWluZ0Z1bmN0aW9uLnNldFN0ZXBBdFN0YXJ0KHN0ZXBBdFN0YXJ0KTsKKwor
ICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmVu
Y29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UG9pbnQmIGZsb2F0UG9p
bnQpCiB7CiAgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKGVuY29k
ZXIsIGZsb2F0UG9pbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCmluZGV4IGY1OWZkMzFmN2JkZDBiMzdkOWUyZmY1YTk1ZTYwODI4OTUzNmQxMjMu
LmJhM2U3YjU3YTYxZDkxMGE3ZGM0ZmVlYTNjNTI1NWY1NTUzODBjMGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTM0LDYgKzM0LDcgQEAg
Y2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CiBjbGFzcyBDZXJ0aWZpY2F0ZUluZm87CiBj
bGFzcyBDb2xvcjsKIGNsYXNzIENyZWRlbnRpYWw7CitjbGFzcyBDdWJpY0JlemllclRpbWluZ0Z1
bmN0aW9uOwogY2xhc3MgQ3Vyc29yOwogY2xhc3MgRGF0YWJhc2VEZXRhaWxzOwogY2xhc3MgRmls
dGVyT3BlcmF0aW9uczsKQEAgLTQ4LDcgKzQ5LDcgQEAgY2xhc3MgSW50UG9pbnQ7CiBjbGFzcyBJ
bnRSZWN0OwogY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEtleWZyYW1lVmFsdWVMaXN0OwotY2xhc3Mg
VVJMOworY2xhc3MgTGluZWFyVGltaW5nRnVuY3Rpb247CiBjbGFzcyBOb3RpZmljYXRpb247CiBj
bGFzcyBQcm90ZWN0aW9uU3BhY2U7CiBjbGFzcyBSZWdpb247CkBAIC01NiwxMSArNTcsMTMgQEAg
Y2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIFJlc291
cmNlUmVzcG9uc2U7CiBjbGFzcyBTZXNzaW9uSUQ7CitjbGFzcyBTdGVwc1RpbWluZ0Z1bmN0aW9u
OwogY2xhc3MgU3RpY2t5UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzOwogY2xhc3MgVGV4dENo
ZWNraW5nUmVxdWVzdERhdGE7CiBjbGFzcyBUcmFuc2Zvcm1hdGlvbk1hdHJpeDsKIGNsYXNzIFVz
ZXJTdHlsZVNoZWV0OwogY2xhc3MgVXNlclNjcmlwdDsKK2NsYXNzIFVSTDsKIHN0cnVjdCBDb21w
b3NpdGlvblVuZGVybGluZTsKIHN0cnVjdCBDb29raWU7CiBzdHJ1Y3QgRGljdGF0aW9uQWx0ZXJu
YXRpdmU7CkBAIC0xMTIsNiArMTE1LDIxIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg+IHsKICAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKIH07
CiAKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6TGluZWFyVGltaW5n
RnVuY3Rpb24+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29u
c3QgV2ViQ29yZTo6TGluZWFyVGltaW5nRnVuY3Rpb24mKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6TGluZWFyVGltaW5nRnVuY3Rpb24mKTsKK307
CisKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q3ViaWNCZXppZXJU
aW1pbmdGdW5jdGlvbj4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uJik7CisgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkN1YmljQmV6aWVyVGltaW5n
RnVuY3Rpb24mKTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6U3RlcHNUaW1pbmdGdW5jdGlvbj4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVu
dEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpTdGVwc1RpbWluZ0Z1bmN0aW9uJik7CisgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlN0ZXBzVGltaW5nRnVu
Y3Rpb24mKTsKK307CisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
Q2VydGlmaWNhdGVJbmZvPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpOwogICAgIHN0YXRpYyBib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1t
CmluZGV4IDY3ZGE5ZWI3MjAwMTk0NDVmOGUzYjQ4OGU0NGQyNTg3OTFlNTQxMmUuLjRlNzJlNWJl
ZTI1YzkxYmIzMWYyMGIxZjRhYzFlNTc5Y2Y1NjI4MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQpAQCAtNDksNyArNDks
OCBAQAogQGVuZAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CisKK25hbWVzcGFjZSBXZWJLaXQgewogCiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6
UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUoKQogICAgIDogbV9sYXllcihudWxscHRyKQpAQCAtMzIx
LDMgKzMyMiw1IEBAIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmFwcGx5QmFja2luZ1N0
b3JlVG9MYXllcihDQUxheWVyICpsYXllcikKIAogICAgIGxheWVyLmNvbnRlbnRzT3BhcXVlID0g
bV9pc09wYXF1ZTsKIH0KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIu
aAppbmRleCBlN2MwMjY4NjFhZDljYzUzOTBkMjExYTJiZDgwYWEzZWQxZGQ0YWIzLi4zN2VhZjVk
YmEzMWM2YzliMTcwNmFiN2ZjNjA0ZjM3Y2M4NzU4YWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLmgK
QEAgLTMyLDEyICszMiwxNCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgUmVtb3Rl
TGF5ZXJUcmVlSG9zdDsKKwogY2xhc3MgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyIHsK
IHB1YmxpYzoKICAgICB0eXBlZGVmIEhhc2hNYXA8V2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxh
dGZvcm1MYXllcklELCBMYXllck9yVmlldyAqPiBSZWxhdGVkTGF5ZXJNYXA7Ci0gICAgc3RhdGlj
IHZvaWQgYXBwbHlQcm9wZXJ0aWVzKENBTGF5ZXIgKiwgY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJh
bnNhY3Rpb246OkxheWVyUHJvcGVydGllcyYsIGNvbnN0IFJlbGF0ZWRMYXllck1hcCYpOworICAg
IHN0YXRpYyB2b2lkIGFwcGx5UHJvcGVydGllcyhDQUxheWVyICosIFJlbW90ZUxheWVyVHJlZUhv
c3QqLCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzJiwg
Y29uc3QgUmVsYXRlZExheWVyTWFwJik7CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIHN0YXRpYyB2
b2lkIGFwcGx5UHJvcGVydGllcyhVSVZpZXcgKiwgY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb246OkxheWVyUHJvcGVydGllcyYsIGNvbnN0IFJlbGF0ZWRMYXllck1hcCYpOworICAgIHN0
YXRpYyB2b2lkIGFwcGx5UHJvcGVydGllcyhVSVZpZXcgKiwgUmVtb3RlTGF5ZXJUcmVlSG9zdCos
IGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMmLCBjb25z
dCBSZWxhdGVkTGF5ZXJNYXAmKTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbQpp
bmRleCBkZDJlNzIyOTE5Y2Y1Yjk5MjVmNzhiMzI1NDdmYWI5YjliM2NlZTBkLi44YjA4MzE1M2U4
M2YyOWRjNWVkMDdmYThlNjU0ZWZmNzg0Y2M0NGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbQpA
QCAtMjYsNyArMjYsOSBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXll
clRyZWVQcm9wZXJ0eUFwcGxpZXIuaCIKIAorI2ltcG9ydCAiUGxhdGZvcm1DQUFuaW1hdGlvblJl
bW90ZS5oIgogI2ltcG9ydCAiUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgiCisjaW1wb3J0ICJSZW1v
dGVMYXllclRyZWVIb3N0LmgiCiAjaW1wb3J0IDxRdWFydHpDb3JlL0NBTGF5ZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvQmxvY2tFeGNlcHRpb25zLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3Jt
Q0FGaWx0ZXJzLmg+CkBAIC0xMTEsNyArMTEzLDcgQEAgc3RhdGljIHZvaWQgdXBkYXRlQ3VzdG9t
QXBwZWFyYW5jZShDQUxheWVyICpsYXllciwgR3JhcGhpY3NMYXllcjo6Q3VzdG9tQXBwZWFyYW4K
ICNlbmRpZgogfQogCi1zdGF0aWMgdm9pZCBhcHBseVByb3BlcnRpZXNUb0xheWVyKENBTGF5ZXIg
KmxheWVyLCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVz
JiBwcm9wZXJ0aWVzKQorc3RhdGljIHZvaWQgYXBwbHlQcm9wZXJ0aWVzVG9MYXllcihDQUxheWVy
ICpsYXllciwgUmVtb3RlTGF5ZXJUcmVlSG9zdCogbGF5ZXJUcmVlSG9zdCwgY29uc3QgUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllcyYgcHJvcGVydGllcykKIHsKICAg
ICBpZiAocHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uOjpOYW1lQ2hhbmdlZCkKICAgICAgICAgbGF5ZXIubmFtZSA9IHByb3BlcnRpZXMubmFt
ZTsKQEAgLTEyOCw3ICsxMzAsNyBAQCBzdGF0aWMgdm9pZCBhcHBseVByb3BlcnRpZXNUb0xheWVy
KENBTGF5ZXIgKmxheWVyLCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdAogCiAgICAgaWYg
KHByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bjo6U2l6ZUNoYW5nZWQpCiAgICAgICAgIGxheWVyLmJvdW5kcyA9IEZsb2F0UmVjdChGbG9hdFBv
aW50KCksIHByb3BlcnRpZXMuc2l6ZSk7Ci0KKyAgICAKICAgICBpZiAocHJvcGVydGllcy5jaGFu
Z2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpCYWNrZ3JvdW5kQ29s
b3JDaGFuZ2VkKQogICAgICAgICBsYXllci5iYWNrZ3JvdW5kQ29sb3IgPSBjZ0NvbG9yRnJvbUNv
bG9yKHByb3BlcnRpZXMuYmFja2dyb3VuZENvbG9yKS5nZXQoKTsKIApAQCAtMTkyLDYgKzE5NCw5
IEBAIHN0YXRpYyB2b2lkIGFwcGx5UHJvcGVydGllc1RvTGF5ZXIoQ0FMYXllciAqbGF5ZXIsIGNv
bnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0CiAgICAgaWYgKHByb3BlcnRpZXMuY2hhbmdlZFBy
b3BlcnRpZXMgJiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6RmlsdGVyc0NoYW5nZWQpCiAg
ICAgICAgIFBsYXRmb3JtQ0FGaWx0ZXJzOjpzZXRGaWx0ZXJzT25MYXllcihsYXllciwgcHJvcGVy
dGllcy5maWx0ZXJzID8gKnByb3BlcnRpZXMuZmlsdGVycyA6IEZpbHRlck9wZXJhdGlvbnMoKSk7
CiAKKyAgICBpZiAocHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uOjpBbmltYXRpb25zQ2hhbmdlZCkKKyAgICAgICAgUGxhdGZvcm1DQUFuaW1h
dGlvblJlbW90ZTo6dXBkYXRlTGF5ZXJBbmltYXRpb25zKGxheWVyLCBsYXllclRyZWVIb3N0LCBw
cm9wZXJ0aWVzLmFkZGVkQW5pbWF0aW9ucywgcHJvcGVydGllcy5rZXlQYXRoc09mQW5pbWF0aW9u
c1RvUmVtb3ZlKTsKKwogICAgIGlmIChwcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkVkZ2VBbnRpYWxpYXNpbmdNYXNrQ2hhbmdlZCkKICAg
ICAgICAgbGF5ZXIuZWRnZUFudGlhbGlhc2luZ01hc2sgPSBwcm9wZXJ0aWVzLmVkZ2VBbnRpYWxp
YXNpbmdNYXNrOwogCkBAIC0xOTksMTAgKzIwNCwxMCBAQCBzdGF0aWMgdm9pZCBhcHBseVByb3Bl
cnRpZXNUb0xheWVyKENBTGF5ZXIgKmxheWVyLCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dAogICAgICAgICB1cGRhdGVDdXN0b21BcHBlYXJhbmNlKGxheWVyLCBwcm9wZXJ0aWVzLmN1c3Rv
bUFwcGVhcmFuY2UpOwogfQogCi12b2lkIFJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6
YXBwbHlQcm9wZXJ0aWVzKENBTGF5ZXIgKmxheWVyLCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFu
c2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLCBjb25zdCBSZWxhdGVkTGF5ZXJN
YXAmIHJlbGF0ZWRMYXllcnMpCit2b2lkIFJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6
YXBwbHlQcm9wZXJ0aWVzKENBTGF5ZXIgKmxheWVyLCBSZW1vdGVMYXllclRyZWVIb3N0KiBsYXll
clRyZWVIb3N0LCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0
aWVzJiBwcm9wZXJ0aWVzLCBjb25zdCBSZWxhdGVkTGF5ZXJNYXAmIHJlbGF0ZWRMYXllcnMpCiB7
CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwotICAgIGFwcGx5UHJvcGVydGllc1Rv
TGF5ZXIobGF5ZXIsIHByb3BlcnRpZXMpOworICAgIGFwcGx5UHJvcGVydGllc1RvTGF5ZXIobGF5
ZXIsIGxheWVyVHJlZUhvc3QsIHByb3BlcnRpZXMpOwogCiAgICAgaWYgKHByb3BlcnRpZXMuY2hh
bmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6Q2hpbGRyZW5DaGFu
Z2VkKSB7CiAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheT4gY2hpbGRyZW4gPSBhZG9w
dE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6cHJvcGVydGllcy5j
aGlsZHJlbi5zaXplKCldKTsKQEAgLTIzNiwxMCArMjQxLDEwIEBAIHZvaWQgUmVtb3RlTGF5ZXJU
cmVlUHJvcGVydHlBcHBsaWVyOjphcHBseVByb3BlcnRpZXMoQ0FMYXllciAqbGF5ZXIsIGNvbnN0
IFJlbW90CiB9CiAKICNpZiBQTEFURk9STShJT1MpCi12b2lkIFJlbW90ZUxheWVyVHJlZVByb3Bl
cnR5QXBwbGllcjo6YXBwbHlQcm9wZXJ0aWVzKFVJVmlldyAqdmlldywgY29uc3QgUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllcyYgcHJvcGVydGllcywgY29uc3QgUmVs
YXRlZExheWVyTWFwJiByZWxhdGVkTGF5ZXJzKQordm9pZCBSZW1vdGVMYXllclRyZWVQcm9wZXJ0
eUFwcGxpZXI6OmFwcGx5UHJvcGVydGllcyhVSVZpZXcgKnZpZXcsIFJlbW90ZUxheWVyVHJlZUhv
c3QqIGxheWVyVHJlZUhvc3QsIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXll
clByb3BlcnRpZXMmIHByb3BlcnRpZXMsIGNvbnN0IFJlbGF0ZWRMYXllck1hcCYgcmVsYXRlZExh
eWVycykKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Ci0gICAgYXBwbHlQcm9w
ZXJ0aWVzVG9MYXllcih2aWV3LmxheWVyLCBwcm9wZXJ0aWVzKTsKKyAgICBhcHBseVByb3BlcnRp
ZXNUb0xheWVyKHZpZXcubGF5ZXIsIGxheWVyVHJlZUhvc3QsIHByb3BlcnRpZXMpOwogCiAgICAg
aWYgKHByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbjo6Q2hpbGRyZW5DaGFuZ2VkKSB7CiAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVBcnJh
eT4gY2hpbGRyZW4gPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2Fw
YWNpdHk6cHJvcGVydGllcy5jaGlsZHJlbi5zaXplKCldKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaAppbmRleCAyMThi
OGQwNmEyNDA4OTA2MGJmY2ExN2FjYmMxNDliZTQzNzFhOGYyLi42ZDA5MzEwOTI3NWI3ZmE3OWU4
MWMxNjEwYzY4ZmRlN2EwZjE3MjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
bWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAj
aWZuZGVmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uX2gKICNkZWZpbmUgUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb25faAogCisjaW5jbHVkZSAiUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5o
IgogI2luY2x1ZGUgIlJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9Db2xvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsdGVyT3BlcmF0aW9ucy5oPgpAQCAtMzQs
NiArMzUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1DQUxheWVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC03NCw5ICs3NiwxMCBAQCBwdWJsaWM6CiAgICAg
ICAgIFRpbWVPZmZzZXRDaGFuZ2VkID0gMSA8PCAyMywKICAgICAgICAgQmFja2luZ1N0b3JlQ2hh
bmdlZCA9IDEgPDwgMjQsCiAgICAgICAgIEZpbHRlcnNDaGFuZ2VkID0gMSA8PCAyNSwKLSAgICAg
ICAgRWRnZUFudGlhbGlhc2luZ01hc2tDaGFuZ2VkID0gMSA8PCAyNiwKLSAgICAgICAgQ3VzdG9t
QXBwZWFyYW5jZUNoYW5nZWQgPSAxIDw8IDI3LAotICAgICAgICBDdXN0b21CZWhhdmlvckNoYW5n
ZWQgPSAxIDw8IDI4CisgICAgICAgIEFuaW1hdGlvbnNDaGFuZ2VkID0gMSA8PCAyNiwKKyAgICAg
ICAgRWRnZUFudGlhbGlhc2luZ01hc2tDaGFuZ2VkID0gMSA8PCAyNywKKyAgICAgICAgQ3VzdG9t
QXBwZWFyYW5jZUNoYW5nZWQgPSAxIDw8IDI4LAorICAgICAgICBDdXN0b21CZWhhdmlvckNoYW5n
ZWQgPSAxIDw8IDI5CiAgICAgfTsKICAgICB0eXBlZGVmIHVuc2lnbmVkIExheWVyQ2hhbmdlOwog
CkBAIC0xMTIsNiArMTE1LDEwIEBAIHB1YmxpYzoKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiB0cmFuc2Zvcm07CiAgICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeD4gc3VibGF5ZXJUcmFuc2Zvcm07
CiAgICAgICAgIFZlY3RvcjxXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+
IGNoaWxkcmVuOworCisgICAgICAgIEhhc2hNYXA8U3RyaW5nLCBQbGF0Zm9ybUNBQW5pbWF0aW9u
UmVtb3RlOjpQcm9wZXJ0aWVzPiBhZGRlZEFuaW1hdGlvbnM7CisgICAgICAgIEhhc2hTZXQ8U3Ry
aW5nPiBrZXlQYXRoc09mQW5pbWF0aW9uc1RvUmVtb3ZlOworCiAgICAgICAgIFdlYkNvcmU6OkZs
b2F0UG9pbnQzRCBwb3NpdGlvbjsKICAgICAgICAgV2ViQ29yZTo6RmxvYXRQb2ludDNEIGFuY2hv
clBvaW50OwogICAgICAgICBXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0gYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCmlu
ZGV4IDkwN2EzODdjNDhhZDgzNmFhYzMyNzc0ZjNlZDEyYWEzMzk0NjQ3MDUuLmI4Y2FmNmMwMWNi
ZjJhMjJhZThhZjNlODY2OTljMDk5Mzc4Zjk2YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQpAQCAtMTAzLDYg
KzEwMyw4IEBAIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6Okxh
eWVyUHJvcGVydGllcyhjb25zdCBMYXllclByb3BlcnRpCiAgICAgLCBldmVyQ2hhbmdlZFByb3Bl
cnRpZXMob3RoZXIuZXZlckNoYW5nZWRQcm9wZXJ0aWVzKQogICAgICwgbmFtZShvdGhlci5uYW1l
KQogICAgICwgY2hpbGRyZW4ob3RoZXIuY2hpbGRyZW4pCisgICAgLCBhZGRlZEFuaW1hdGlvbnMo
b3RoZXIuYWRkZWRBbmltYXRpb25zKQorICAgICwga2V5UGF0aHNPZkFuaW1hdGlvbnNUb1JlbW92
ZShvdGhlci5rZXlQYXRoc09mQW5pbWF0aW9uc1RvUmVtb3ZlKQogICAgICwgcG9zaXRpb24ob3Ro
ZXIucG9zaXRpb24pCiAgICAgLCBhbmNob3JQb2ludChvdGhlci5hbmNob3JQb2ludCkKICAgICAs
IHNpemUob3RoZXIuc2l6ZSkKQEAgLTE0OSw2ICsxNTEsMTEgQEAgdm9pZCBSZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29k
ZXImIGUKICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMgJiBDaGlsZHJlbkNoYW5nZWQpCiAgICAg
ICAgIGVuY29kZXIgPDwgY2hpbGRyZW47CiAKKyAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMgJiBB
bmltYXRpb25zQ2hhbmdlZCkgeworICAgICAgICBlbmNvZGVyIDw8IGFkZGVkQW5pbWF0aW9uczsK
KyAgICAgICAgZW5jb2RlciA8PCBrZXlQYXRoc09mQW5pbWF0aW9uc1RvUmVtb3ZlOworICAgIH0K
KwogICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcyAmIFBvc2l0aW9uQ2hhbmdlZCkKICAgICAgICAg
ZW5jb2RlciA8PCBwb3NpdGlvbjsKIApAQCAtMjUxLDYgKzI1OCwxNCBAQCBib29sIFJlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OmRlY29kZShJUEM6OkFyZ3VtZW50
RGVjb2RlciYgZAogICAgICAgICB9CiAgICAgfQogCisgICAgaWYgKHJlc3VsdC5jaGFuZ2VkUHJv
cGVydGllcyAmIEFuaW1hdGlvbnNDaGFuZ2VkKSB7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0LmFkZGVkQW5pbWF0aW9ucykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQua2V5UGF0aHNPZkFuaW1hdGlvbnNU
b1JlbW92ZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgaWYgKHJl
c3VsdC5jaGFuZ2VkUHJvcGVydGllcyAmIFBvc2l0aW9uQ2hhbmdlZCkgewogICAgICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5wb3NpdGlvbikpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC03MzYsNiArNzUxLDggQEAgc3RhdGljIHZvaWQgZHVtcENoYW5nZWRMYXllcnMoUmVt
b3RlTGF5ZXJUcmVlVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFJlbW90ZUxheWVyVHIKICAgICAgICAg
aWYgKGxheWVyUHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjpDaGlsZHJlbkNoYW5nZWQpCiAgICAgICAgICAgICBkdW1wUHJvcGVydHk8VmVj
dG9yPEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRD4+KHRzLCAiY2hpbGRyZW4iLCBsYXll
clByb3BlcnRpZXMuY2hpbGRyZW4pOwogCisvLyBGSVhNRTogZHVtcCBhbmltYXRpb25zCisKICAg
ICAgICAgaWYgKGxheWVyUHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uOjpQb3NpdGlvbkNoYW5nZWQpCiAgICAgICAgICAgICBkdW1wUHJvcGVy
dHk8RmxvYXRQb2ludDNEPih0cywgInBvc2l0aW9uIiwgbGF5ZXJQcm9wZXJ0aWVzLnBvc2l0aW9u
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9SZW1vdGVMYXll
clRyZWVIb3N0SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9SZW1vdGVMYXll
clRyZWVIb3N0SU9TLm1tCmluZGV4IDllZGE5NTQ0MjY3NGMyYTc4MzBmZDk3YjIxYjgyNjZkMTFh
MWM2MWQuLmEwNmJiYjA5NWFkZTExMWNmMDVlMGIxNTE1YjlhMzJhNjc2MzMwMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUmVtb3RlTGF5ZXJUcmVlSG9zdElPUy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1JlbW90ZUxheWVyVHJlZUhvc3RJ
T1MubW0KQEAgLTM3LDEwICszNyw2IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1A
aW50ZXJmYWNlIFVJVmlldyhXS1ZpZXdJbnRlcm5hbHMpCi0tICh2b2lkKV9jcmVhdGVMYXllcldp
dGhGcmFtZTooQ0dSZWN0KWZyYW1lOwotQGVuZAotCiBAaW50ZXJmYWNlIENBTGF5ZXIoV0tMYXll
ckludGVybmFsKQogLSAodm9pZClzZXRDb250ZXh0SWQ6KHVpbnQzMl90KWNvbnRleHRJRDsKIEBl
bmQKQEAgLTc2LDYgKzcyLDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAorc3RhdGljIE5TU3RyaW5nKiBjb25zdCBXS0xheWVySURQcm9wZXJ0eUtl
eSA9IEAiV0tMYXllcklEIjsKKworV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXll
cklEIFJlbW90ZUxheWVyVHJlZUhvc3Q6OmxheWVySUQoTGF5ZXJPclZpZXcqIGxheWVyKQorewor
ICAgIHJldHVybiBbW2xheWVyIHZhbHVlRm9yS2V5OldLTGF5ZXJJRFByb3BlcnR5S2V5XSB1bnNp
Z25lZExvbmdMb25nVmFsdWVdOworfQorCiBMYXllck9yVmlldyAqUmVtb3RlTGF5ZXJUcmVlSG9z
dDo6Y3JlYXRlTGF5ZXIoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ3Jl
YXRpb25Qcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbjo6TGF5ZXJQcm9wZXJ0aWVzKiBsYXllclByb3BlcnRpZXMpCiB7CiAgICAgUmV0YWluUHRy
PExheWVyT3JWaWV3PiYgbGF5ZXJPclZpZXcgPSBtX2xheWVycy5hZGQocHJvcGVydGllcy5sYXll
cklELCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CkBAIC0xMTAsNiArMTEzLDcgQEAgTGF5ZXJP
clZpZXcgKlJlbW90ZUxheWVyVHJlZUhvc3Q6OmNyZWF0ZUxheWVyKGNvbnN0IFJlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uOjoKIAogICAgIC8vIEZJWE1FOiBEbyB0aHJvdWdoIHRoZSB2aWV3Lgog
ICAgIFtbbGF5ZXJPclZpZXcgbGF5ZXJdIHdlYl9kaXNhYmxlQWxsQWN0aW9uc107CisgICAgW1ts
YXllck9yVmlldyBsYXllcl0gc2V0VmFsdWU6W05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZExv
bmdMb25nOnByb3BlcnRpZXMubGF5ZXJJRF0gZm9yS2V5OldLTGF5ZXJJRFByb3BlcnR5S2V5XTsK
IAogICAgIHJldHVybiBsYXllck9yVmlldy5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5LmgKaW5kZXggZGNkZTc0YWI5ZDM1YTFkYzI0YTMyM2MyYzRlZTk5ZjdmNDViOTNlZC4uNWFi
ZjFkNjRjYjY5ZDVkNDJjNzI3YTY2N2JmMmIwMGZiMGM4YTcyMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5LmgKQEAgLTQ0LDYgKzQ0LDggQEAgcHVibGljOgogCiAgICAgY29uc3QgUmVtb3Rl
TGF5ZXJUcmVlSG9zdCYgcmVtb3RlTGF5ZXJUcmVlSG9zdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVt
b3RlTGF5ZXJUcmVlSG9zdDsgfQogCisgICAgdm9pZCBhY2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0
YXJ0KHVpbnQ2NF90IC8qbGF5ZXJJRCovLCBkb3VibGUgLypzdGFydFRpbWUqLyk7CisKIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIHNpemVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgZGV2aWNlU2NhbGVGYWN0b3JEaWRDaGFuZ2UoKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCAzNDFkODU2Mjc5YWRlMGFjOWU4MjdmYzNkNjUxM2Yx
MzhkYTY5MzBhLi5lYjk0Yzg0OWFjNTJlODc1YWRkNjcwNGFkZGJjZWM1MDBlMjgwMTQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5KFdlYlBhZ2VQcm94eSogd2ViUGFnZVByb3h5KQogICAgIDogRHJh
d2luZ0FyZWFQcm94eShEcmF3aW5nQXJlYVR5cGVSZW1vdGVMYXllclRyZWUsIHdlYlBhZ2VQcm94
eSkKLSAgICAsIG1fcmVtb3RlTGF5ZXJUcmVlSG9zdCgpCisgICAgLCBtX3JlbW90ZUxheWVyVHJl
ZUhvc3QoKnRoaXMpCiAgICAgLCBtX2lzV2FpdGluZ0ZvckRpZFVwZGF0ZUdlb21ldHJ5KGZhbHNl
KQogewogICAgIG1fd2ViUGFnZVByb3h5LT5wcm9jZXNzKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIG1fd2ViUGFnZVByb3h5LT5wYWdlSUQoKSwgKnRoaXMpOwpAQCAtMTMxLDYgKzEzMSwx
MSBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNvbW1pdExheWVyVHJl
ZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFucwogICAgIH0KIH0KIAordm9pZCBSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5OjphY2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0YXJ0KHVpbnQ2
NF90IGxheWVySUQsIGRvdWJsZSBzdGFydFRpbWUpCit7CisgICAgbV93ZWJQYWdlUHJveHktPnBy
b2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYTo6QWNjZWxlcmF0ZWRBbmltYXRpb25E
aWRTdGFydChsYXllcklELCBzdGFydFRpbWUpLCBtX3dlYlBhZ2VQcm94eS0+cGFnZUlEKCkpOwor
fQorCiBzdGF0aWMgY29uc3QgZmxvYXQgaW5kaWNhdG9ySW5zZXQgPSAxMDsKIAogI2lmIFBMQVRG
T1JNKE1BQykKQEAgLTIzNiw3ICsyNDEsNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHk6OnNob3dEZWJ1Z0luZGljYXRvcihib29sIHNob3cpCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgCi0gICAgbV9kZWJ1Z0luZGljYXRvckxheWVyVHJlZUhvc3QgPSBzdGQ6Om1h
a2VfdW5pcXVlPFJlbW90ZUxheWVyVHJlZUhvc3Q+KCk7CisgICAgbV9kZWJ1Z0luZGljYXRvckxh
eWVyVHJlZUhvc3QgPSBzdGQ6Om1ha2VfdW5pcXVlPFJlbW90ZUxheWVyVHJlZUhvc3Q+KCp0aGlz
KTsKICAgICBtX2RlYnVnSW5kaWNhdG9yTGF5ZXJUcmVlSG9zdC0+c2V0SXNEZWJ1Z0xheWVyVHJl
ZUhvc3QodHJ1ZSk7CiAKICAgICBtX3RpbGVNYXBIb3N0TGF5ZXIgPSBhZG9wdE5TKFtbQ0FMYXll
ciBhbGxvY10gaW5pdF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9SZW1vdGVMYXllclRyZWVIb3N0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Jl
bW90ZUxheWVyVHJlZUhvc3QuaAppbmRleCBmOWQ2YjM0MTQ2YzExZjRmOTExMTAxMzgwNWYyNGQz
ZWU1N2M1MTMxLi4xNWUzNmRlNjI3YmFkNzlkMDA1ZmQ0NzFhOWI2MDJlMjhhMTM0NDQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3Qu
aApAQCAtMzIsMjkgKzMyLDQzIEBACiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvUmV0YWluUHRyLmg+CiAKK09CSkNfQ0xBU1MgV0tBbmltYXRpb25EZWxlZ2F0ZTsKKwog
bmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJv
eHk7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIGNsYXNzIFJlbW90ZUxheWVyVHJlZUhvc3Qgewog
cHVibGljOgotICAgIGV4cGxpY2l0IFJlbW90ZUxheWVyVHJlZUhvc3QoKTsKKyAgICBleHBsaWNp
dCBSZW1vdGVMYXllclRyZWVIb3N0KFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkmKTsK
ICAgICB2aXJ0dWFsIH5SZW1vdGVMYXllclRyZWVIb3N0KCk7CiAKICAgICBMYXllck9yVmlldyAq
Z2V0TGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEKSBjb25zdDsK
ICAgICBMYXllck9yVmlldyAqcm9vdExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9yb290TGF5ZXI7
IH0KIAorICAgIHN0YXRpYyBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQg
bGF5ZXJJRChMYXllck9yVmlldyopOworCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSByb290
IGxheWVyIGNoYW5nZWQuCiAgICAgYm9vbCB1cGRhdGVMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb24mLCBmbG9hdCBpbmRpY2F0b3JTY2FsZUZhY3RvciAgPSAxKTsKIAog
ICAgIHZvaWQgc2V0SXNEZWJ1Z0xheWVyVHJlZUhvc3QoYm9vbCBmbGFnKSB7IG1faXNEZWJ1Z0xh
eWVyVHJlZUhvc3QgPSBmbGFnOyB9CiAgICAgYm9vbCBpc0RlYnVnTGF5ZXJUcmVlSG9zdCgpIGNv
bnN0IHsgcmV0dXJuIG1faXNEZWJ1Z0xheWVyVHJlZUhvc3Q7IH0KIAorICAgIHR5cGVkZWYgSGFz
aE1hcDxXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQsIFJldGFpblB0cjxX
S0FuaW1hdGlvbkRlbGVnYXRlPj4gTGF5ZXJBbmltYXRpb25EZWxlZ2F0ZU1hcDsKKyAgICBMYXll
ckFuaW1hdGlvbkRlbGVnYXRlTWFwJiBhbmltYXRpb25EZWxlZ2F0ZXMoKSB7IHJldHVybiBtX2Fu
aW1hdGlvbkRlbGVnYXRlczsgfQorCisgICAgdm9pZCBhbmltYXRpb25EaWRTdGFydChXZWJDb3Jl
OjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQsIGRvdWJsZSBzdGFydFRpbWUpOworCiBw
cml2YXRlOgogICAgIExheWVyT3JWaWV3ICpjcmVhdGVMYXllcihjb25zdCBSZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbjo6TGF5ZXJDcmVhdGlvblByb3BlcnRpZXMmLCBjb25zdCBSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzKik7CiAKKyAgICB2b2lkIGxheWVyV2ls
bEJlUmVtb3ZlZChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQpOworCisg
ICAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSYgbV9kcmF3aW5nQXJlYTsKICAgICBM
YXllck9yVmlldyAqbV9yb290TGF5ZXI7CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpHcmFwaGljc0xh
eWVyOjpQbGF0Zm9ybUxheWVySUQsIFJldGFpblB0cjxMYXllck9yVmlldz4+IG1fbGF5ZXJzOwor
ICAgIEhhc2hNYXA8V2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklELCBSZXRh
aW5QdHI8V0tBbmltYXRpb25EZWxlZ2F0ZT4+IG1fYW5pbWF0aW9uRGVsZWdhdGVzOwogICAgIGJv
b2wgbV9pc0RlYnVnTGF5ZXJUcmVlSG9zdDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbQppbmRleCA1YmM3MWExZjE2NDJj
N2UxOGY2Y2QyYzEyYjgwZjM2MmMxZWQyYTc4Li5hZjQ2YjhmY2I3ZGFiM2QzMmI1YTg5NGFlOWZl
YTIxMDlkZGY2ZjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Jl
bW90ZUxheWVyVHJlZUhvc3QubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9S
ZW1vdGVMYXllclRyZWVIb3N0Lm1tCkBAIC0yNiw2ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcu
aCIKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZUhvc3QuaCIKIAorI2ltcG9ydCAiUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlUHJvcGVy
dHlBcHBsaWVyLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oIgogI2lt
cG9ydCAiU2hhcmVhYmxlQml0bWFwLmgiCkBAIC00MSw4ICs0Miw5IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUmVtb3RlTGF5ZXJUcmVlSG9zdDo6
UmVtb3RlTGF5ZXJUcmVlSG9zdCgpCi0gICAgOiBtX3Jvb3RMYXllcihudWxscHRyKQorUmVtb3Rl
TGF5ZXJUcmVlSG9zdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdChSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5JiBkcmF3aW5nQXJlYSkKKyAgICA6IG1fZHJhd2luZ0FyZWEoZHJhd2luZ0FyZWEp
CisgICAgLCBtX3Jvb3RMYXllcihudWxscHRyKQogICAgICwgbV9pc0RlYnVnTGF5ZXJUcmVlSG9z
dChmYWxzZSkKIHsKIH0KQEAgLTg3LDEzICs4OSwxMyBAQCBib29sIFJlbW90ZUxheWVyVHJlZUhv
c3Q6OnVwZGF0ZUxheWVyVHJlZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgdHJh
bgogICAgICAgICAgICAgaWYgKHByb3BlcnRpZXNDb3B5LmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkJvcmRlcldpZHRoQ2hhbmdlZCkKICAgICAgICAgICAg
ICAgICBwcm9wZXJ0aWVzQ29weS5ib3JkZXJXaWR0aCAqPSAxIC8gaW5kaWNhdG9yU2NhbGVGYWN0
b3I7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIFJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBw
bGllcjo6YXBwbHlQcm9wZXJ0aWVzKGxheWVyLCBwcm9wZXJ0aWVzQ29weSwgcmVsYXRlZExheWVy
cyk7CisgICAgICAgICAgICBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXI6OmFwcGx5UHJv
cGVydGllcyhsYXllciwgdGhpcywgcHJvcGVydGllc0NvcHksIHJlbGF0ZWRMYXllcnMpOwogICAg
ICAgICB9IGVsc2UKLSAgICAgICAgICAgIFJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6
YXBwbHlQcm9wZXJ0aWVzKGxheWVyLCBwcm9wZXJ0aWVzLCByZWxhdGVkTGF5ZXJzKTsKKyAgICAg
ICAgICAgIFJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6YXBwbHlQcm9wZXJ0aWVzKGxh
eWVyLCB0aGlzLCBwcm9wZXJ0aWVzLCByZWxhdGVkTGF5ZXJzKTsKICAgICB9CiAKICAgICBmb3Ig
KGF1dG8mIGRlc3Ryb3llZExheWVyIDogdHJhbnNhY3Rpb24uZGVzdHJveWVkTGF5ZXJzKCkpCi0g
ICAgICAgIG1fbGF5ZXJzLnJlbW92ZShkZXN0cm95ZWRMYXllcik7CisgICAgICAgIGxheWVyV2ls
bEJlUmVtb3ZlZChkZXN0cm95ZWRMYXllcik7CiAKICAgICByZXR1cm4gcm9vdExheWVyQ2hhbmdl
ZDsKIH0KQEAgLTEwNiw3ICsxMDgsMjUgQEAgTGF5ZXJPclZpZXcgKlJlbW90ZUxheWVyVHJlZUhv
c3Q6OmdldExheWVyKEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXllckkKICAgICBy
ZXR1cm4gbV9sYXllcnMuZ2V0KGxheWVySUQpLmdldCgpOwogfQogCit2b2lkIFJlbW90ZUxheWVy
VHJlZUhvc3Q6OmxheWVyV2lsbEJlUmVtb3ZlZChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0
Zm9ybUxheWVySUQgbGF5ZXJJRCkKK3sKKyAgICBtX2FuaW1hdGlvbkRlbGVnYXRlcy5yZW1vdmUo
bGF5ZXJJRCk7CisgICAgbV9sYXllcnMucmVtb3ZlKGxheWVySUQpOworfQorCit2b2lkIFJlbW90
ZUxheWVyVHJlZUhvc3Q6OmFuaW1hdGlvbkRpZFN0YXJ0KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6
OlBsYXRmb3JtTGF5ZXJJRCBsYXllcklELCBkb3VibGUgc3RhcnRUaW1lKQoreworICAgIG1fZHJh
d2luZ0FyZWEuYWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydChsYXllcklELCBzdGFydFRpbWUp
OworfQorCiAjaWYgIVBMQVRGT1JNKElPUykKK3N0YXRpYyBOU1N0cmluZyogY29uc3QgV0tMYXll
cklEUHJvcGVydHlLZXkgPSBAIldLTGF5ZXJJRCI7CisKK1dlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6
OlBsYXRmb3JtTGF5ZXJJRCBSZW1vdGVMYXllclRyZWVIb3N0OjpsYXllcklEKExheWVyT3JWaWV3
KiBsYXllcikKK3sKKyAgICByZXR1cm4gW1tsYXllciB2YWx1ZUZvcktleTpXS0xheWVySURQcm9w
ZXJ0eUtleV0gdW5zaWduZWRMb25nTG9uZ1ZhbHVlXTsKK30KKwogTGF5ZXJPclZpZXcgKlJlbW90
ZUxheWVyVHJlZUhvc3Q6OmNyZWF0ZUxheWVyKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0
aW9uOjpMYXllckNyZWF0aW9uUHJvcGVydGllcyYgcHJvcGVydGllcywgY29uc3QgUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllcyopCiB7CiAgICAgUmV0YWluUHRyPENB
TGF5ZXI+JiBsYXllciA9IG1fbGF5ZXJzLmFkZChwcm9wZXJ0aWVzLmxheWVySUQsIG51bGxwdHIp
Lml0ZXJhdG9yLT52YWx1ZTsKQEAgLTEzNyw2ICsxNTcsNyBAQCBMYXllck9yVmlldyAqUmVtb3Rl
TGF5ZXJUcmVlSG9zdDo6Y3JlYXRlTGF5ZXIoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b246OgogICAgIH0KIAogICAgIFtsYXllciB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNdOworICAgIFts
YXllciBzZXRWYWx1ZTpbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkTG9uZ0xvbmc6cHJvcGVy
dGllcy5sYXllcklEXSBmb3JLZXk6V0tMYXllcklEUHJvcGVydHlLZXldOwogCiAgICAgcmV0dXJu
IGxheWVyLmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGEyZmUyYjg5YzM0NzhmM2Q1NGZiMzdmMTUxMzk0ZTVjNTU2
MjE4MGQuLjQ0YTQ2ODI1YWUwYWFkM2ZkMzk1ZWM0YjMzNmRmNTY1YjcxZjhmZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYz
LDYgKzYzLDggQEAKIAkJMEY1OTQ3QTQxODdCM0I3RDAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGNTk0N0EyMTg3QjNCN0QwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmggKi87IH07CiAJCTBGNTk0N0E3MTg3QjUxNzYwMDQz
Nzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU5NDdBNTE4N0I1
MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovOyB9OwogCQkwRjU5NDdBODE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY1OTQ3QTYxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yTWVzc2FnZXMuaCAqLzsgfTsKKwkJMEY1RTIwMDMxOEU3NzA1MTAwM0VDM0U1IC8q
IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVFMjAwMTE4RTc3MDUxMDAzRUMzRTUgLyogUGxhdGZvcm1D
QUFuaW1hdGlvblJlbW90ZS5tbSAqLzsgfTsKKwkJMEY1RTIwMDQxOEU3NzA1MTAwM0VDM0U1IC8q
IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUUyMDAyMThFNzcwNTEwMDNFQzNFNSAvKiBQbGF0Zm9ybUNB
QW5pbWF0aW9uUmVtb3RlLmggKi87IH07CiAJCTBGOTMxQzFDMThDNTcxMTkwMERCQTdDMyAvKiBT
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjkzMUMxQTE4QzU3MTE5MDBEQkE3QzMgLyog
U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5oICovOyB9OwogCQkwRjkzMUMx
RDE4QzU3MTE5MDBEQkE3QzMgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlP
Uy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTMx
QzFCMThDNTcxMTkwMERCQTdDMyAvKiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
SU9TLm1tICovOyB9OwogCQkwRkI2NTkyMzEyMDhCNERCMDA0NDgxNkMgLyogRHJhd2luZ0FyZWFJ
bmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkI2
NTkyMjEyMDhCNERCMDA0NDgxNkMgLyogRHJhd2luZ0FyZWFJbmZvLmggKi87IH07CkBAIC0xNzk5
LDYgKzE4MDEsOCBAQAogCQkwRjU5NDdBMjE4N0IzQjdEMDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmg7IHBhdGggPSBTY3Jv
bGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjU5NDdBNTE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU5NDdBNjE4N0I1MTc2MDA0
Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2Vz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNUUyMDAxMThFNzcwNTEwMDNFQzNF
NSAvKiBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY1RTIwMDIxOEU3NzA1MTAwM0VDM0U1IC8qIFBsYXRmb3Jt
Q0FBbmltYXRpb25SZW1vdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RjkzMUMxQTE4QzU3MTE5MDBEQkE3QzMgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZUlPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTY3JvbGxpbmdUcmVl
T3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLmg7IHBhdGggPSBTY3JvbGxpbmcvaW9zL1Njcm9sbGlu
Z1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEY5MzFDMUIxOEM1NzExOTAwREJBN0MzIC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Nj
cm9sbGluZ05vZGVJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLm1tOyBwYXRoID0gU2Nyb2xs
aW5nL2lvcy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRkI2NTkyMjEyMDhCNERCMDA0NDgxNkMgLyogRHJhd2lu
Z0FyZWFJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYXdpbmdBcmVh
SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjAyMCw2ICs2MDI0LDggQEAK
IAkJCQk3QzZEMzdGQTE3MkY1NTVGMDA5RDI4NDcgLyogUGFnZUJhbm5lck1hYy5tbSAqLywKIAkJ
CQkyREEwNDlCNTE4MENDRDBBMDBBQUZBOUUgLyogR3JhcGhpY3NMYXllckNBUmVtb3RlLmNwcCAq
LywKIAkJCQkyREEwNDlCNjE4MENDRDBBMDBBQUZBOUUgLyogR3JhcGhpY3NMYXllckNBUmVtb3Rl
LmggKi8sCisJCQkJMEY1RTIwMDExOEU3NzA1MTAwM0VDM0U1IC8qIFBsYXRmb3JtQ0FBbmltYXRp
b25SZW1vdGUubW0gKi8sCisJCQkJMEY1RTIwMDIxOEU3NzA1MTAwM0VDM0U1IC8qIFBsYXRmb3Jt
Q0FBbmltYXRpb25SZW1vdGUuaCAqLywKIAkJCQkyREEwNDlCMTE4MENDQ0QzMDBBQUZBOUUgLyog
UGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcCAqLywKIAkJCQkyREEwNDlCMjE4MENDQ0QzMDBBQUZB
OUUgLyogUGxhdGZvcm1DQUxheWVyUmVtb3RlLmggKi8sCiAJCQkJMkQ4NzEwMTQxODI4NDE1RDAw
MThGQTAxIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5tbSAqLywKQEAgLTY5MjEsNiAr
NjkyNyw3IEBACiAJCQkJQkM0QTYyQTgxNDc0NEVDNzAwNkM2ODFBIC8qIFdlYkNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjlFMjQzMTEyMERBQ0EwMEExMzdF
MCAvKiBXZWJDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUE1MDVGQTE2ODAwMjU1MDBB
OTMwRUIgLyogV2ViQ29udGV4dENsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1RTIwMDQx
OEU3NzA1MTAwM0VDM0U1IC8qIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxMkE5NzYxMTgwRTAzMUQwMDM5QTE0OSAvKiBEYXRhYmFzZVByb2Nlc3NNZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwOUI4RjkxNDc0NjBGNzAwNUY1NjI1IC8qIFdl
YkNvbnRleHRDb25uZWN0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RFMDU5QjEx
Q0RBOEFFMDBFNDFBRjEgLyogV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKQEAgLTg2NjIsNiArODY2OSw3IEBACiAJCQkJMUFDODZGRjMxMzBCNDZEMzAwMkMx
MjU3IC8qIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
RDU5N0QxMTEyQjU2QUMwMEVDOEMyMyAvKiBXS1ByZWZlcmVuY2VzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDQkFBQ0VDMTQ1MjI1RTMwMDUzRjgyRiAvKiBXS1Byb2Nlc3NHcm91cC5tbSBpbiBT
b3VyY2VzICovLAorCQkJCTBGNUUyMDAzMThFNzcwNTEwMDNFQzNFNSAvKiBQbGF0Zm9ybUNBQW5p
bWF0aW9uUmVtb3RlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyRjU4RkIxMkE4OEE1NDAwNjI5
NTMwIC8qIFdLUHJvdGVjdGlvblNwYWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3OTQ4NDA4
MTUwQzRCOTcwMEU1MkNFOSAvKiBXS1JlbmRlckxheWVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTJEMUI1RDVEMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCmluZGV4IDQ3ZWM1NWI3MWQxMTQyOWVjZDdiNGEwZmIy
ZWI4Y2U5OTI1NjBhMTkuLmU0MTdjMjY5NDYzMjY4MWU1N2JmMmUxMjdhMjBiZmM2NzRiMTRjMGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJl
YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5o
CkBAIC05MSw2ICs5MSw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2aXJ0
dWFsIHZvaWQgc2V0RXhwb3NlZFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgPSAwOwog
ICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGV4cG9zZWRSZWN0KCkgY29uc3QgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBhY2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0YXJ0KHVpbnQ2NF90IC8q
bGF5ZXJJRCovLCBkb3VibGUgLypzdGFydFRpbWUqLykgeyB9CiAjZW5kaWYKICNpZiBQTEFURk9S
TShJT1MpCiAgICAgdmlydHVhbCB2b2lkIHNldEV4cG9zZWRDb250ZW50UmVjdChjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEubWVzc2FnZXMuaW4KaW5kZXggOTFiY2FmNGNhZjZj
NjcxZjU1NmUxOWJmYjkwMGExMTMzMTFmZjE0OS4uY2NhZTJhYTlhZGQzMTRlNGVhODg3OWM3MzI0
MjI2MmFjZWRmNGU2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5tZXNzYWdlcy5pbgpAQCAtMzMsNSArMzMsNyBAQCBtZXNz
YWdlcyAtPiBEcmF3aW5nQXJlYSBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBBZGp1c3RUcmFuc2ll
bnRab29tKGRvdWJsZSBzY2FsZSwgV2ViQ29yZTo6RmxvYXRQb2ludCBvcmlnaW4pCiAgICAgQ29t
bWl0VHJhbnNpZW50Wm9vbShkb3VibGUgc2NhbGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQgb3JpZ2lu
KQorICAgIAorICAgIEFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQodWludDY0X3QgbGF5ZXJJ
RCwgZG91YmxlIHN0YXJ0VGltZSkKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUu
Y3BwCmluZGV4IGM5NWY4NWZlMmJjYjliOGMxODBhMTcyYmE3MjgwNGExNjliZjFiOWQuLjVlMWMy
ZjVhMDkyMjljMjlmYzMyMWIxYjg3ZjFjNzVkMjUzMGUzODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJD
QVJlbW90ZS5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkdyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtQ0FBbmlt
YXRpb25SZW1vdGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaCIKIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC01Miw0ICs1MywxMiBAQCBQYXNzUmVmUHRyPFBsYXRm
b3JtQ0FMYXllcj4gR3JhcGhpY3NMYXllckNBUmVtb3RlOjpjcmVhdGVQbGF0Zm9ybUNBTGF5ZXIo
UGxhdGZvcgogICAgIHJldHVybiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmNyZWF0ZShwbGF0Zm9y
bUxheWVyLCBvd25lciwgbV9jb250ZXh0KTsKIH0KIAorUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5p
bWF0aW9uPiBHcmFwaGljc0xheWVyQ0FSZW1vdGU6OmNyZWF0ZVBsYXRmb3JtQ0FBbmltYXRpb24o
UGxhdGZvcm1DQUFuaW1hdGlvbjo6QW5pbWF0aW9uVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIGtl
eVBhdGgpCit7CisgICAgcmV0dXJuIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmNyZWF0ZSh0
eXBlLCBrZXlQYXRoKTsKIH0KKworLy8gRklYTUU6IHJlamVjdCBmaWx0ZXIgYW5pbWF0aW9ucwor
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmgKaW5kZXgg
Y2Y1Mzk3NmM2OTgxMDc1MmYzYzRmZjIzMmE2ZGUzMGFhNGIwOWJmMy4uOWEyY2ZkOGMyNWVkY2I3
MmY1ZDU2MzU1M2I3NTAyYThiN2YyODgwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oCkBA
IC01Miw5ICs1Miw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6UGxhdGZvcm1DQUxheWVyPiBjcmVhdGVQbGF0Zm9ybUNBTGF5ZXIoV2ViQ29yZTo6UGxhdGZv
cm1DQUxheWVyOjpMYXllclR5cGUsIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckNsaWVudCogb3du
ZXIpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybUNB
TGF5ZXI+IGNyZWF0ZVBsYXRmb3JtQ0FMYXllcihQbGF0Zm9ybUxheWVyKiwgV2ViQ29yZTo6UGxh
dGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikgb3ZlcnJpZGU7Ci0KLSAgICAvLyBObyBhY2NlbGVy
YXRlZCBhbmltYXRpb25zIGZvciBub3cuCi0gICAgdmlydHVhbCBib29sIGFkZEFuaW1hdGlvbihj
b25zdCBXZWJDb3JlOjpLZXlmcmFtZVZhbHVlTGlzdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYsIGNvbnN0IFdlYkNvcmU6OkFuaW1hdGlvbiosIGNvbnN0IFN0cmluZyYsIGRvdWJsZSkgb3Zl
cnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
UGxhdGZvcm1DQUFuaW1hdGlvbj4gY3JlYXRlUGxhdGZvcm1DQUFuaW1hdGlvbihXZWJDb3JlOjpQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjpBbmltYXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGtleVBhdGgp
IG92ZXJyaWRlOwogCiAgICAgLy8gUGxhdGZvcm1DQUxheWVyUmVtb3RlIGNhbid0IGN1cnJlbnRs
eSBwcm94eSBkaXJlY3RseSBjb21wb3NpdGVkIGltYWdlIGNvbnRlbnRzLCBzbyBvcHQgb3V0IG9m
IHRoaXMgb3B0aW1pemF0aW9uLgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREaXJlY3RseUNvbXBv
c2l0ZUltYWdlKFdlYkNvcmU6OkltYWdlKikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjI3ZjBmN2Rk
MWE1MTJjZDM4YjMyYmRhMzIyYzExMTliNDE4ZTQxOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90
ZS5oCkBAIC0wLDAgKzEsMjg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlX2gKKyNkZWZpbmUg
UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZV9oCisKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3Jt
Q0FBbmltYXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQXJndW1lbnRFbmNvZGVyOworY2xh
c3MgQXJndW1lbnREZWNvZGVyOworfTsKKworT0JKQ19DTEFTUyBDQUxheWVyOworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlTGF5ZXJUcmVlSG9zdDsKKworY2xhc3MgUGxhdGZv
cm1DQUFuaW1hdGlvblJlbW90ZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybUNBQW5p
bWF0aW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0
aW9uPiBjcmVhdGUoQW5pbWF0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKTsKKworICAg
IHZpcnR1YWwgflBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUoKSB7IH0KKworICAgIHZpcnR1YWwg
Ym9vbCBpc1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biB0cnVlOyB9CisKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4g
Y29weSgpIGNvbnN0IG92ZXJyaWRlOworICAgIAorICAgIHZpcnR1YWwgU3RyaW5nIGtleVBhdGgo
KSBjb25zdCBvdmVycmlkZTsKKyAgICAKKyAgICB2aXJ0dWFsIENGVGltZUludGVydmFsIGJlZ2lu
VGltZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRCZWdpblRpbWUoQ0ZU
aW1lSW50ZXJ2YWwpIG92ZXJyaWRlOworICAgIAorICAgIHZpcnR1YWwgQ0ZUaW1lSW50ZXJ2YWwg
ZHVyYXRpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RHVyYXRpb24o
Q0ZUaW1lSW50ZXJ2YWwpIG92ZXJyaWRlOworICAgIAorICAgIHZpcnR1YWwgZmxvYXQgc3BlZWQo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U3BlZWQoZmxvYXQpIG92ZXJy
aWRlOworCisgICAgdmlydHVhbCBDRlRpbWVJbnRlcnZhbCB0aW1lT2Zmc2V0KCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFRpbWVPZmZzZXQoQ0ZUaW1lSW50ZXJ2YWwpIG92
ZXJyaWRlOworCisgICAgdmlydHVhbCBmbG9hdCByZXBlYXRDb3VudCgpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBzZXRSZXBlYXRDb3VudChmbG9hdCkgb3ZlcnJpZGU7CisKKyAg
ICB2aXJ0dWFsIGJvb2wgYXV0b3JldmVyc2VzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHNldEF1dG9yZXZlcnNlcyhib29sKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgRmls
bE1vZGVUeXBlIGZpbGxNb2RlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNl
dEZpbGxNb2RlKEZpbGxNb2RlVHlwZSkgb3ZlcnJpZGU7CisgICAgCisgICAgdmlydHVhbCB2b2lk
IHNldFRpbWluZ0Z1bmN0aW9uKGNvbnN0IFdlYkNvcmU6OlRpbWluZ0Z1bmN0aW9uKiwgYm9vbCBy
ZXZlcnNlID0gZmFsc2UpIG92ZXJyaWRlOworICAgIHZvaWQgY29weVRpbWluZ0Z1bmN0aW9uRnJv
bShjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CisKKyAgICB2
aXJ0dWFsIGJvb2wgaXNSZW1vdmVkT25Db21wbGV0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHNldFJlbW92ZWRPbkNvbXBsZXRpb24oYm9vbCkgb3ZlcnJpZGU7CisKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNBZGRpdGl2ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzZXRBZGRpdGl2ZShib29sKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgVmFsdWVGdW5j
dGlvblR5cGUgdmFsdWVGdW5jdGlvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRWYWx1ZUZ1bmN0aW9uKFZhbHVlRnVuY3Rpb25UeXBlKSBvdmVycmlkZTsKKworICAgIC8v
IEJhc2ljLWFuaW1hdGlvbiBwcm9wZXJ0aWVzLgorICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFs
dWUoZmxvYXQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3Qg
V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVy
cmlkZTsKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgdmlydHVhbCB2b2lkIHNldEZyb21W
YWx1ZShjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb24qLCBpbnQgaW50ZXJuYWxGaWx0ZXJQ
cm9wZXJ0eUluZGV4KSBvdmVycmlkZTsKKyNlbmRpZgorICAgIHZpcnR1YWwgdm9pZCBjb3B5RnJv
bVZhbHVlRnJvbShjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7
CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShmbG9hdCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50M0QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25z
dCBXZWJDb3JlOjpDb2xvciYpIG92ZXJyaWRlOworI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb24q
LCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KSBvdmVycmlkZTsKKyNlbmRpZgorICAg
IHZpcnR1YWwgdm9pZCBjb3B5VG9WYWx1ZUZyb20oY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1DQUFu
aW1hdGlvbiopIG92ZXJyaWRlOworCisgICAgLy8gS2V5ZnJhbWUtYW5pbWF0aW9uIHByb3BlcnRp
ZXMuCisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8ZmxvYXQ+Jikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6
VHJhbnNmb3JtYXRpb25NYXRyaXg+Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFZh
bHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRQb2ludDNEPiYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbG9yPiYpIG92
ZXJyaWRlOworI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFs
dWVzKGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9uPj4mLCBpbnQg
aW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KSBvdmVycmlkZTsKKyNlbmRpZgorICAgIHZpcnR1
YWwgdm9pZCBjb3B5VmFsdWVzRnJvbShjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9u
Kikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0S2V5VGltZXMoY29uc3QgVmVjdG9y
PGZsb2F0PiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjb3B5S2V5VGltZXNGcm9tKGNv
bnN0IFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKKworICAgIHZpcnR1
YWwgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0IFdlYkNvcmU6OlRp
bWluZ0Z1bmN0aW9uKj4mLCBib29sIHJldmVyc2UgPSBmYWxzZSkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGNvcHlUaW1pbmdGdW5jdGlvbnNGcm9tKGNvbnN0IFdlYkNvcmU6OlBsYXRmb3Jt
Q0FBbmltYXRpb24qKSBvdmVycmlkZTsKKworICAgIGNsYXNzIEtleWZyYW1lVmFsdWUgeworICAg
IHB1YmxpYzoKKyAgICAgICAgZW51bSBLZXlmcmFtZVR5cGUgeworICAgICAgICAgICAgTnVtYmVy
S2V5VHlwZSwKKyAgICAgICAgICAgIENvbG9yS2V5VHlwZSwKKyAgICAgICAgICAgIFBvaW50S2V5
VHlwZSwKKyAgICAgICAgICAgIFRyYW5zZm9ybUtleVR5cGUsCisgICAgICAgIH07CisKKyAgICAg
ICAgS2V5ZnJhbWVWYWx1ZShmbG9hdCB2YWx1ZSA9IDApCisgICAgICAgICAgICA6IGtleVR5cGUo
TnVtYmVyS2V5VHlwZSkKKyAgICAgICAgICAgICwgbnVtYmVyKHZhbHVlKQorICAgICAgICB7Cisg
ICAgICAgIH0KKworICAgICAgICBLZXlmcmFtZVZhbHVlKFdlYkNvcmU6OkNvbG9yIHZhbHVlKQor
ICAgICAgICAgICAgOiBrZXlUeXBlKENvbG9yS2V5VHlwZSkKKyAgICAgICAgICAgICwgY29sb3Io
dmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIEtleWZyYW1lVmFsdWUoY29u
c3QgV2ViQ29yZTo6RmxvYXRQb2ludDNEJiB2YWx1ZSkKKyAgICAgICAgICAgIDoga2V5VHlwZShQ
b2ludEtleVR5cGUpCisgICAgICAgICAgICAsIHBvaW50KHZhbHVlKQorICAgICAgICB7CisgICAg
ICAgIH0KKworICAgICAgICBLZXlmcmFtZVZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0
aW9uTWF0cml4JiB2YWx1ZSkKKyAgICAgICAgICAgIDoga2V5VHlwZShUcmFuc2Zvcm1LZXlUeXBl
KQorICAgICAgICAgICAgLCB0cmFuc2Zvcm0odmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgS2V5ZnJhbWVWYWx1ZShjb25zdCBLZXlmcmFtZVZhbHVlJiBvdGhl
cikKKyAgICAgICAgeworICAgICAgICAgICAgKnRoaXMgPSBvdGhlcjsKKyAgICAgICAgfQorCisg
ICAgICAgIEtleWZyYW1lVmFsdWUmIG9wZXJhdG9yPShjb25zdCBLZXlmcmFtZVZhbHVlJiBvdGhl
cikKKyAgICAgICAgeworICAgICAgICAgICAga2V5VHlwZSA9IG90aGVyLmtleVR5cGU7CisgICAg
ICAgICAgICBzd2l0Y2ggKGtleVR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgTnVtYmVyS2V5VHlw
ZToKKyAgICAgICAgICAgICAgICBudW1iZXIgPSBvdGhlci5udW1iZXI7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENvbG9yS2V5VHlwZToKKyAgICAgICAgICAgICAg
ICBjb2xvciA9IG90aGVyLmNvbG9yOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBQb2ludEtleVR5cGU6CisgICAgICAgICAgICAgICAgcG9pbnQgPSBvdGhlci5wb2lu
dDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVHJhbnNmb3JtS2V5
VHlwZToKKyAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gPSBvdGhlci50cmFuc2Zvcm07CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgS2V5ZnJhbWVU
eXBlIGtleWZyYW1lVHlwZSgpIGNvbnN0IHsgcmV0dXJuIGtleVR5cGU7IH0KKworICAgICAgICBm
bG9hdCBudW1iZXJWYWx1ZSgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChr
ZXlUeXBlID09IE51bWJlcktleVR5cGUpOworICAgICAgICAgICAgcmV0dXJuIG51bWJlcjsKKyAg
ICAgICAgfQorCisgICAgICAgIFdlYkNvcmU6OkNvbG9yIGNvbG9yVmFsdWUoKSBjb25zdAorICAg
ICAgICB7CisgICAgICAgICAgICBBU1NFUlQoa2V5VHlwZSA9PSBDb2xvcktleVR5cGUpOworICAg
ICAgICAgICAgcmV0dXJuIGNvbG9yOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludDNEJiBwb2ludFZhbHVlKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAg
ICAgQVNTRVJUKGtleVR5cGUgPT0gUG9pbnRLZXlUeXBlKTsKKyAgICAgICAgICAgIHJldHVybiBw
b2ludDsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9u
TWF0cml4JiB0cmFuc2Zvcm1WYWx1ZSgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIEFT
U0VSVChrZXlUeXBlID09IFRyYW5zZm9ybUtleVR5cGUpOworICAgICAgICAgICAgcmV0dXJuIHRy
YW5zZm9ybTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRF
bmNvZGVyJikgY29uc3Q7CisgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50
RGVjb2RlciYsIEtleWZyYW1lVmFsdWUmKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIEtleWZy
YW1lVHlwZSBrZXlUeXBlOworICAgICAgICB1bmlvbiB7CisgICAgICAgICAgICBmbG9hdCBudW1i
ZXI7CisgICAgICAgICAgICBXZWJDb3JlOjpDb2xvciBjb2xvcjsKKyAgICAgICAgICAgIFdlYkNv
cmU6OkZsb2F0UG9pbnQzRCBwb2ludDsKKyAgICAgICAgICAgIFdlYkNvcmU6OlRyYW5zZm9ybWF0
aW9uTWF0cml4IHRyYW5zZm9ybTsKKyAgICAgICAgfTsKKyAgICB9OworCisgICAgc3RydWN0IFBy
b3BlcnRpZXMgeworICAgICAgICBQcm9wZXJ0aWVzKCkKKyAgICAgICAgICAgIDogYW5pbWF0aW9u
VHlwZShCYXNpYykKKyAgICAgICAgICAgICwgYmVnaW5UaW1lKDApCisgICAgICAgICAgICAsIGR1
cmF0aW9uKDApCisgICAgICAgICAgICAsIHRpbWVPZmZzZXQoMCkKKyAgICAgICAgICAgICwgcmVw
ZWF0Q291bnQoMSkKKyAgICAgICAgICAgICwgc3BlZWQoMSkKKyAgICAgICAgICAgICwgZmlsbE1v
ZGUoTm9GaWxsTW9kZSkKKyAgICAgICAgICAgICwgdmFsdWVGdW5jdGlvbihOb1ZhbHVlRnVuY3Rp
b24pCisgICAgICAgICAgICAsIGF1dG9SZXZlcnNlcyhmYWxzZSkKKyAgICAgICAgICAgICwgcmVt
b3ZlZE9uQ29tcGxldGlvbih0cnVlKQorICAgICAgICAgICAgLCBhZGRpdGl2ZShmYWxzZSkKKyAg
ICAgICAgICAgICwgcmV2ZXJzZVRpbWluZ0Z1bmN0aW9ucyhmYWxzZSkKKyAgICAgICAgICAgICwg
aGFzTm9uWmVyb0JlZ2luVGltZShmYWxzZSkKKyAgICAgICAgCisgICAgICAgIHsKKyAgICAgICAg
fQorICAgICAgICAKKyAgICAgICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBj
b25zdDsKKyAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwg
UHJvcGVydGllcyYpOworCisgICAgICAgIFN0cmluZyBrZXlQYXRoOworICAgICAgICBQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpBbmltYXRpb25UeXBlIGFuaW1hdGlvblR5cGU7CisKKyAgICAgICAgZG91
YmxlIGJlZ2luVGltZTsKKyAgICAgICAgZG91YmxlIGR1cmF0aW9uOworICAgICAgICBkb3VibGUg
dGltZU9mZnNldDsKKyAgICAgICAgZmxvYXQgcmVwZWF0Q291bnQ7CisgICAgICAgIGZsb2F0IHNw
ZWVkOworICAgICAgICAKKyAgICAgICAgUGxhdGZvcm1DQUFuaW1hdGlvbjo6RmlsbE1vZGVUeXBl
IGZpbGxNb2RlOworICAgICAgICBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpWYWx1ZUZ1bmN0aW9uVHlw
ZSB2YWx1ZUZ1bmN0aW9uOworICAgICAgICAKKyAgICAgICAgYm9vbCBhdXRvUmV2ZXJzZXM7Cisg
ICAgICAgIGJvb2wgcmVtb3ZlZE9uQ29tcGxldGlvbjsKKyAgICAgICAgYm9vbCBhZGRpdGl2ZTsK
KyAgICAgICAgYm9vbCByZXZlcnNlVGltaW5nRnVuY3Rpb25zOworICAgICAgICBib29sIGhhc05v
blplcm9CZWdpblRpbWU7CisKKyAgICAgICAgLy8gRm9yIGJhc2ljIGFuaW1hdGlvbnMsIHRoZXNl
IHZlY3RvcnMgaGF2ZSB0d28gZW50cmllcy4gRm9yIGtleWZyYW1lIGFuaW1hdGlvbnMsIHR3byBv
ciBtb3JlLgorICAgICAgICAvLyB0aW1pbmdGdW5jdGlvbnMgaGFzIG4tMSBlbnRyaWVzLgorICAg
ICAgICBWZWN0b3I8S2V5ZnJhbWVWYWx1ZT4ga2V5VmFsdWVzOworICAgICAgICBWZWN0b3I8Zmxv
YXQ+IGtleVRpbWVzOworICAgICAgICBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlRpbWluZ0Z1bmN0
aW9uPj4gdGltaW5nRnVuY3Rpb25zOworICAgIH07CisKKyAgICBjb25zdCBQcm9wZXJ0aWVzJiBw
cm9wZXJ0aWVzKCkgY29uc3QgeyByZXR1cm4gbV9wcm9wZXJ0aWVzOyB9CisKKyAgICB0eXBlZGVm
IEhhc2hNYXA8U3RyaW5nLCBQcm9wZXJ0aWVzPiBBbmltYXRpb25zTWFwOworICAgIHN0YXRpYyB2
b2lkIHVwZGF0ZUxheWVyQW5pbWF0aW9ucyhDQUxheWVyICosIFJlbW90ZUxheWVyVHJlZUhvc3Qq
LCBjb25zdCBBbmltYXRpb25zTWFwJiBhbmltYXRpb25zVG9BZGQsIGNvbnN0IEhhc2hTZXQ8U3Ry
aW5nPiYgYW5pbWF0aW9uc1RvUmVtb3ZlKTsKKworcHJpdmF0ZToKKyAgICBQbGF0Zm9ybUNBQW5p
bWF0aW9uUmVtb3RlKEFuaW1hdGlvblR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCk7CisKKyAg
ICBQcm9wZXJ0aWVzIG1fcHJvcGVydGllczsKK307CisKK1BMQVRGT1JNX0NBQU5JTUFUSU9OX1RZ
UEVfQ0FTVFMoUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZSwgaXNQbGF0Zm9ybUNBQW5pbWF0aW9u
UmVtb3RlKCkpCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUGxhdGZvcm1D
QUFuaW1hdGlvblJlbW90ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGQ2M2JjZTljZGRkNGEwY2Q3NDhiMTdmMjNmOGYzNzg3ODJjMTdiNwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZv
cm1DQUFuaW1hdGlvblJlbW90ZS5tbQpAQCAtMCwwICsxLDczMSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbXBv
cnQgIlBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaCIKKworI2ltcG9ydCAiQXJndW1lbnRDb2Rl
cnMuaCIKKyNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZUhvc3QuaCIKKyNpbXBvcnQgIldlYkNvcmVB
cmd1bWVudENvZGVycy5oIgorI2ltcG9ydCA8V2ViQ29yZS9CbG9ja0V4Y2VwdGlvbnMuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NMYXllci5oPgorI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9y
bUNBQW5pbWF0aW9uTWFjLmg+CisjaW1wb3J0IDxXZWJDb3JlL1RpbWluZ0Z1bmN0aW9uLmg+Cisj
aW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNp
bXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV1RGOwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK3N0YXRpYyBkb3VibGUgbWVkaWFUaW1lVG9DdXJy
ZW50VGltZShDRlRpbWVJbnRlcnZhbCB0KQoreworICAgIHJldHVybiBtb25vdG9uaWNhbGx5SW5j
cmVhc2luZ1RpbWUoKSArIHQgLSBDQUN1cnJlbnRNZWRpYVRpbWUoKTsKK30KKworc3RhdGljIE5T
U3RyaW5nICogY29uc3QgV0tOb25aZXJvQmVnaW5UaW1lRmxhZyA9IEAiV0tQbGF0Zm9ybUNBQW5p
bWF0aW9uTm9uWmVyb0JlZ2luVGltZUZsYWciOworCitAaW50ZXJmYWNlIFdLQW5pbWF0aW9uRGVs
ZWdhdGUgOiBOU09iamVjdCB7CisgICAgR3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIF9s
YXllcklEOworICAgIFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdCogX2xheWVyVHJlZUhvc3Q7
Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aExheWVySUQ6KEdyYXBoaWNzTGF5ZXI6OlBs
YXRmb3JtTGF5ZXJJRClsYXllcklEIGxheWVyVHJlZUhvc3Q6KFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlSG9zdCopbGF5ZXJUcmVlSG9zdDsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLQW5pbWF0
aW9uRGVsZWdhdGUKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoTGF5ZXJJRDooR3JhcGhpY3NM
YXllcjo6UGxhdGZvcm1MYXllcklEKWxheWVySUQgbGF5ZXJUcmVlSG9zdDooV2ViS2l0OjpSZW1v
dGVMYXllclRyZWVIb3N0KilsYXllclRyZWVIb3N0Cit7CisgICAgaWYgKChzZWxmID0gW3N1cGVy
IGluaXRdKSkgeworICAgICAgICBfbGF5ZXJJRCA9IGxheWVySUQ7CisgICAgICAgIF9sYXllclRy
ZWVIb3N0ID0gbGF5ZXJUcmVlSG9zdDsKKyAgICB9CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0g
KHZvaWQpYW5pbWF0aW9uRGlkU3RhcnQ6KENBQW5pbWF0aW9uICopYW5pbWF0aW9uCit7CisgICAg
Ym9vbCBoYXNOb25aZXJvQmVnaW5UaW1lID0gW1thbmltYXRpb24gdmFsdWVGb3JLZXk6V0tOb25a
ZXJvQmVnaW5UaW1lRmxhZ10gYm9vbFZhbHVlXTsKKyAgICBDRlRpbWVJbnRlcnZhbCBzdGFydFRp
bWU7CisKKyAgICBpZiAoaGFzTm9uWmVyb0JlZ2luVGltZSkgeworICAgICAgICAvLyBXZSBkb24n
dCBrbm93IHdoYXQgdGltZSBDQSB1c2VkIHRvIGNvbW1pdCB0aGUgYW5pbWF0aW9uLCBzbyBqdXN0
IHVzZSB0aGUgY3VycmVudCB0aW1lCisgICAgICAgIC8vIChldmVuIHRob3VnaCB0aGlzIHdpbGwg
YmUgc2xpZ2h0bHkgb2ZmKS4KKyAgICAgICAgc3RhcnRUaW1lID0gbWVkaWFUaW1lVG9DdXJyZW50
VGltZShDQUN1cnJlbnRNZWRpYVRpbWUoKSk7CisgICAgfSBlbHNlCisgICAgICAgIHN0YXJ0VGlt
ZSA9IG1lZGlhVGltZVRvQ3VycmVudFRpbWUoW2FuaW1hdGlvbiBiZWdpblRpbWVdKTsKKworICAg
IF9sYXllclRyZWVIb3N0LT5hbmltYXRpb25EaWRTdGFydChfbGF5ZXJJRCwgc3RhcnRUaW1lKTsK
K30KK0BlbmQKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
blJlbW90ZTo6S2V5ZnJhbWVWYWx1ZTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAoreworICAgIGVuY29kZXIuZW5jb2RlRW51bShrZXlUeXBlKTsKKworICAgIHN3
aXRjaCAoa2V5VHlwZSkgeworICAgIGNhc2UgTnVtYmVyS2V5VHlwZToKKyAgICAgICAgZW5jb2Rl
ciA8PCBudW1iZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29sb3JLZXlUeXBlOgorICAg
ICAgICBlbmNvZGVyIDw8IGNvbG9yOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBvaW50S2V5
VHlwZToKKyAgICAgICAgZW5jb2RlciA8PCBwb2ludDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBUcmFuc2Zvcm1LZXlUeXBlOgorICAgICAgICBlbmNvZGVyIDw8IHRyYW5zZm9ybTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorfQorCitib29sIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6Oktl
eWZyYW1lVmFsdWU6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUGxhdGZv
cm1DQUFuaW1hdGlvblJlbW90ZTo6S2V5ZnJhbWVWYWx1ZSYgdmFsdWUpCit7CisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZUVudW0odmFsdWUua2V5VHlwZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIHN3aXRjaCAodmFsdWUua2V5VHlwZSkgeworICAgIGNhc2UgTnVtYmVyS2V5VHlwZToK
KyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2YWx1ZS5udW1iZXIpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbG9yS2V5VHlwZToKKyAg
ICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2YWx1ZS5jb2xvcikpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUG9pbnRLZXlUeXBlOgorICAgICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHZhbHVlLnBvaW50KSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUcmFuc2Zvcm1LZXlUeXBlOgorICAgICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHZhbHVlLnRyYW5zZm9ybSkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQor
Cit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OlByb3BlcnRpZXM6OmVuY29kZShJUEM6
OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IGtleVBh
dGg7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGFuaW1hdGlvblR5cGUpOworCisgICAgZW5jb2Rl
ciA8PCBiZWdpblRpbWU7CisgICAgZW5jb2RlciA8PCBkdXJhdGlvbjsKKyAgICBlbmNvZGVyIDw8
IHRpbWVPZmZzZXQ7CisgICAgZW5jb2RlciA8PCByZXBlYXRDb3VudDsKKyAgICBlbmNvZGVyIDw8
IHNwZWVkOworCisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGZpbGxNb2RlKTsKKyAgICBlbmNvZGVy
LmVuY29kZUVudW0odmFsdWVGdW5jdGlvbik7CisKKyAgICBlbmNvZGVyIDw8IGF1dG9SZXZlcnNl
czsKKyAgICBlbmNvZGVyIDw8IHJlbW92ZWRPbkNvbXBsZXRpb247CisgICAgZW5jb2RlciA8PCBh
ZGRpdGl2ZTsKKyAgICBlbmNvZGVyIDw8IHJldmVyc2VUaW1pbmdGdW5jdGlvbnM7CisgICAgZW5j
b2RlciA8PCBoYXNOb25aZXJvQmVnaW5UaW1lOworICAgIAorICAgIGVuY29kZXIgPDwga2V5VmFs
dWVzOworICAgIGVuY29kZXIgPDwga2V5VGltZXM7CisgICAgCisgICAgZW5jb2RlciA8PCBzdGF0
aWNfY2FzdDx1aW50NjRfdD4odGltaW5nRnVuY3Rpb25zLnNpemUoKSk7CisgICAgZm9yIChjb25z
dCBhdXRvJiB0aW1pbmdGdW5jdGlvbiA6IHRpbWluZ0Z1bmN0aW9ucykgeworCisgICAgICAgIHN3
aXRjaCAodGltaW5nRnVuY3Rpb24tPnR5cGUoKSkgeworICAgICAgICBjYXNlIFRpbWluZ0Z1bmN0
aW9uOjpMaW5lYXJGdW5jdGlvbjoKKyAgICAgICAgICAgIGVuY29kZXIgPDwgKnN0YXRpY19jYXN0
PExpbmVhclRpbWluZ0Z1bmN0aW9uKj4odGltaW5nRnVuY3Rpb24uZ2V0KCkpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBUaW1pbmdGdW5jdGlvbjo6Q3Vi
aWNCZXppZXJGdW5jdGlvbjoKKyAgICAgICAgICAgIGVuY29kZXIgPDwgKnN0YXRpY19jYXN0PEN1
YmljQmV6aWVyVGltaW5nRnVuY3Rpb24qPih0aW1pbmdGdW5jdGlvbi5nZXQoKSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgCisgICAgICAgIGNhc2UgVGltaW5nRnVuY3Rpb246OlN0ZXBz
RnVuY3Rpb246CisgICAgICAgICAgICBlbmNvZGVyIDw8ICpzdGF0aWNfY2FzdDxTdGVwc1RpbWlu
Z0Z1bmN0aW9uKj4odGltaW5nRnVuY3Rpb24uZ2V0KCkpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICB9Cit9CisKK2Jvb2wgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6UHJv
cGVydGllczo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBQbGF0Zm9ybUNB
QW5pbWF0aW9uUmVtb3RlOjpQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzKQoreworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocHJvcGVydGllcy5rZXlQYXRoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocHJvcGVydGllcy5hbmltYXRpb25UeXBlKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcm9wZXJ0
aWVzLmJlZ2luVGltZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocHJvcGVydGllcy5kdXJhdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocHJvcGVydGllcy50aW1lT2Zmc2V0KSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcm9wZXJ0aWVzLnJlcGVh
dENvdW50KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwcm9wZXJ0aWVzLnNwZWVkKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZUVudW0ocHJvcGVydGllcy5maWxsTW9kZSkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHByb3BlcnRpZXMudmFsdWVGdW5j
dGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cHJvcGVydGllcy5hdXRvUmV2ZXJzZXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHByb3BlcnRpZXMucmVtb3ZlZE9uQ29tcGxldGlvbikpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocHJvcGVydGllcy5h
ZGRpdGl2ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocHJvcGVydGllcy5yZXZlcnNlVGltaW5nRnVuY3Rpb25zKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcm9wZXJ0aWVzLmhhc05vblplcm9CZWdp
blRpbWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHByb3BlcnRpZXMua2V5VmFsdWVzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwcm9wZXJ0aWVzLmtleVRpbWVzKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgdWludDY0X3QgbnVtVGltaW5nRnVuY3Rpb25zOworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUobnVtVGltaW5nRnVuY3Rpb25zKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IAorICAgIGlmIChudW1UaW1pbmdGdW5jdGlvbnMpIHsKKyAgICAgICAgcHJvcGVydGllcy50aW1p
bmdGdW5jdGlvbnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShudW1UaW1pbmdGdW5jdGlvbnMpOwor
CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtVGltaW5nRnVuY3Rpb25zOyArK2kp
IHsKKyAgICAgICAgCisgICAgICAgICAgICBUaW1pbmdGdW5jdGlvbjo6VGltaW5nRnVuY3Rpb25U
eXBlIHR5cGU7CisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bSh0eXBlKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAgIFJlZlB0cjxUaW1pbmdG
dW5jdGlvbj4gdGltaW5nRnVuY3Rpb247CisgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAg
ICAgICAgICAgIGNhc2UgVGltaW5nRnVuY3Rpb246OkxpbmVhckZ1bmN0aW9uOgorICAgICAgICAg
ICAgICAgIHRpbWluZ0Z1bmN0aW9uID0gTGluZWFyVGltaW5nRnVuY3Rpb246OmNyZWF0ZSgpOwor
ICAgICAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoKnN0YXRpY19jYXN0PExpbmVhclRp
bWluZ0Z1bmN0aW9uKj4odGltaW5nRnVuY3Rpb24uZ2V0KCkpKSkKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgY2FzZSBUaW1pbmdGdW5jdGlvbjo6Q3ViaWNCZXppZXJGdW5jdGlvbjoK
KyAgICAgICAgICAgICAgICB0aW1pbmdGdW5jdGlvbiA9IEN1YmljQmV6aWVyVGltaW5nRnVuY3Rp
b246OmNyZWF0ZSgpOworICAgICAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoKnN0YXRp
Y19jYXN0PEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24qPih0aW1pbmdGdW5jdGlvbi5nZXQoKSkp
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgVGltaW5nRnVuY3Rpb246OlN0ZXBz
RnVuY3Rpb246CisgICAgICAgICAgICAgICAgdGltaW5nRnVuY3Rpb24gPSBTdGVwc1RpbWluZ0Z1
bmN0aW9uOjpjcmVhdGUoKTsKKyAgICAgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKCpz
dGF0aWNfY2FzdDxTdGVwc1RpbWluZ0Z1bmN0aW9uKj4odGltaW5nRnVuY3Rpb24uZ2V0KCkpKSkK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwcm9wZXJ0aWVzLnRp
bWluZ0Z1bmN0aW9ucy51bmNoZWNrZWRBcHBlbmQodGltaW5nRnVuY3Rpb24ucmVsZWFzZSgpKTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCisjcHJhZ21hIG1hcmsg
LQorCitQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRmb3JtQ0FBbmltYXRpb25S
ZW1vdGU6OmNyZWF0ZShQbGF0Zm9ybUNBQW5pbWF0aW9uOjpBbmltYXRpb25UeXBlIHR5cGUsIGNv
bnN0IFN0cmluZyYga2V5UGF0aCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBsYXRmb3Jt
Q0FBbmltYXRpb25SZW1vdGUodHlwZSwga2V5UGF0aCkpOworfQorCitQYXNzUmVmUHRyPFBsYXRm
b3JtQ0FBbmltYXRpb24+IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmNvcHkoKSBjb25zdAor
eworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitQ
bGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlKEFuaW1h
dGlvblR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKQorICAgIDogUGxhdGZvcm1DQUFu
aW1hdGlvbih0eXBlKQoreworICAgIG1fcHJvcGVydGllcy5rZXlQYXRoID0ga2V5UGF0aDsKKyAg
ICBtX3Byb3BlcnRpZXMuYW5pbWF0aW9uVHlwZSA9IHR5cGU7Cit9CisKK1N0cmluZyBQbGF0Zm9y
bUNBQW5pbWF0aW9uUmVtb3RlOjprZXlQYXRoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcm9w
ZXJ0aWVzLmtleVBhdGg7Cit9CisKK0NGVGltZUludGVydmFsIFBsYXRmb3JtQ0FBbmltYXRpb25S
ZW1vdGU6OmJlZ2luVGltZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJvcGVydGllcy5iZWdp
blRpbWU7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0QmVnaW5UaW1l
KENGVGltZUludGVydmFsIHZhbHVlKQoreworICAgIG1fcHJvcGVydGllcy5iZWdpblRpbWUgPSB2
YWx1ZTsKKyAgICAKKyAgICAvLyBBbHNvIHNldCBhIGZsYWcgdG8gdGVsbCB1cyBpZiB3ZSd2ZSBw
YXNzZWQgaW4gYSAwIHZhbHVlLiAKKyAgICAvLyBUaGUgZmxhZyBpcyBuZWVkZWQgYmVjYXVzZSBs
YXRlciBiZWdpblRpbWUgd2lsbCBnZXQgY2hhbmdlZAorICAgIC8vIHRvIHRoZSB0aW1lIGF0IHdo
aWNoIGl0IGZpcmVkIGFuZCB3ZSBuZWVkIHRvIGtub3cgd2hldGhlcgorICAgIC8vIG9yIG5vdCBp
dCB3YXMgMCB0byBiZWdpbiB3aXRoLgorICAgIGlmICh2YWx1ZSkKKyAgICAgICAgbV9wcm9wZXJ0
aWVzLmhhc05vblplcm9CZWdpblRpbWUgPSB2YWx1ZTsKK30KKworQ0ZUaW1lSW50ZXJ2YWwgUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6ZHVyYXRpb24oKSBjb25zdAoreworICAgIHJldHVybiBt
X3Byb3BlcnRpZXMuZHVyYXRpb247Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90
ZTo6c2V0RHVyYXRpb24oQ0ZUaW1lSW50ZXJ2YWwgdmFsdWUpCit7CisgICAgbV9wcm9wZXJ0aWVz
LmR1cmF0aW9uID0gdmFsdWU7Cit9CisKK2Zsb2F0IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6
OnNwZWVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcm9wZXJ0aWVzLnNwZWVkOworfQorCit2
b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFNwZWVkKGZsb2F0IHZhbHVlKQorewor
ICAgIG1fcHJvcGVydGllcy5zcGVlZCA9IHZhbHVlOworfQorCitDRlRpbWVJbnRlcnZhbCBQbGF0
Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjp0aW1lT2Zmc2V0KCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9wcm9wZXJ0aWVzLnRpbWVPZmZzZXQ7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJl
bW90ZTo6c2V0VGltZU9mZnNldChDRlRpbWVJbnRlcnZhbCB2YWx1ZSkKK3sKKyAgICBtX3Byb3Bl
cnRpZXMudGltZU9mZnNldCA9IHZhbHVlOworfQorCitmbG9hdCBQbGF0Zm9ybUNBQW5pbWF0aW9u
UmVtb3RlOjpyZXBlYXRDb3VudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJvcGVydGllcy5y
ZXBlYXRDb3VudDsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRSZXBl
YXRDb3VudChmbG9hdCB2YWx1ZSkKK3sKKyAgICBtX3Byb3BlcnRpZXMucmVwZWF0Q291bnQgPSB2
YWx1ZTsKK30KKworYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjphdXRvcmV2ZXJzZXMo
KSBjb25zdAoreworICAgIHJldHVybiBtX3Byb3BlcnRpZXMuYXV0b1JldmVyc2VzOworfQorCit2
b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldEF1dG9yZXZlcnNlcyhib29sIHZhbHVl
KQoreworICAgIG1fcHJvcGVydGllcy5hdXRvUmV2ZXJzZXMgPSB2YWx1ZTsKK30KKworUGxhdGZv
cm1DQUFuaW1hdGlvbjo6RmlsbE1vZGVUeXBlIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmZp
bGxNb2RlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcm9wZXJ0aWVzLmZpbGxNb2RlOworfQor
Cit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldEZpbGxNb2RlKEZpbGxNb2RlVHlw
ZSB2YWx1ZSkKK3sKKyAgICBtX3Byb3BlcnRpZXMuZmlsbE1vZGUgPSB2YWx1ZTsKK30KKwordm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1p
bmdGdW5jdGlvbiogdmFsdWUsIGJvb2wgcmV2ZXJzZSkKK3sKKyAgICBWZWN0b3I8UmVmUHRyPFRp
bWluZ0Z1bmN0aW9uPj4gdGltaW5nRnVuY3Rpb25zOworICAgIHRpbWluZ0Z1bmN0aW9ucy5hcHBl
bmQodmFsdWUtPmNsb25lKCkpOworCisgICAgbV9wcm9wZXJ0aWVzLnRpbWluZ0Z1bmN0aW9ucyA9
IHN0ZDo6bW92ZSh0aW1pbmdGdW5jdGlvbnMpOworICAgIG1fcHJvcGVydGllcy5yZXZlcnNlVGlt
aW5nRnVuY3Rpb25zID0gcmV2ZXJzZTsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVt
b3RlOjpjb3B5VGltaW5nRnVuY3Rpb25Gcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZh
bHVlKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitib29sIFBsYXRmb3JtQ0FB
bmltYXRpb25SZW1vdGU6OmlzUmVtb3ZlZE9uQ29tcGxldGlvbigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fcHJvcGVydGllcy5yZW1vdmVkT25Db21wbGV0aW9uOworfQorCit2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25SZW1vdGU6OnNldFJlbW92ZWRPbkNvbXBsZXRpb24oYm9vbCB2YWx1ZSkKK3sK
KyAgICBtX3Byb3BlcnRpZXMucmVtb3ZlZE9uQ29tcGxldGlvbiA9IHZhbHVlOworfQorCitib29s
IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmlzQWRkaXRpdmUoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3Byb3BlcnRpZXMuYWRkaXRpdmU7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
blJlbW90ZTo6c2V0QWRkaXRpdmUoYm9vbCB2YWx1ZSkKK3sKKyAgICBtX3Byb3BlcnRpZXMuYWRk
aXRpdmUgPSB2YWx1ZTsKK30KKworUGxhdGZvcm1DQUFuaW1hdGlvbjo6VmFsdWVGdW5jdGlvblR5
cGUgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6dmFsdWVGdW5jdGlvbigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fcHJvcGVydGllcy52YWx1ZUZ1bmN0aW9uOworfQorCit2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25SZW1vdGU6OnNldFZhbHVlRnVuY3Rpb24oVmFsdWVGdW5jdGlvblR5cGUgdmFs
dWUpCit7CisgICAgbV9wcm9wZXJ0aWVzLnZhbHVlRnVuY3Rpb24gPSB2YWx1ZTsKK30KKwordm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRGcm9tVmFsdWUoZmxvYXQgdmFsdWUpCit7
CisgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcy5yZXNpemUoMik7CisgICAgbV9wcm9wZXJ0aWVzLmtl
eVZhbHVlc1swXSA9IEtleWZyYW1lVmFsdWUodmFsdWUpOworfQorCit2b2lkIFBsYXRmb3JtQ0FB
bmltYXRpb25SZW1vdGU6OnNldEZyb21WYWx1ZShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
dmFsdWUpCit7CisgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcy5yZXNpemUoMik7CisgICAgbV9wcm9w
ZXJ0aWVzLmtleVZhbHVlc1swXSA9IEtleWZyYW1lVmFsdWUodmFsdWUpOworfQorCit2b2lkIFBs
YXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldEZyb21WYWx1ZShjb25zdCBGbG9hdFBvaW50M0Qm
IHZhbHVlKQoreworICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXMucmVzaXplKDIpOworICAgIG1fcHJv
cGVydGllcy5rZXlWYWx1ZXNbMF0gPSBLZXlmcmFtZVZhbHVlKHZhbHVlKTsKK30KKwordm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRGcm9tVmFsdWUoY29uc3QgQ29sb3ImIHZhbHVl
KQoreworICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXMucmVzaXplKDIpOworICAgIG1fcHJvcGVydGll
cy5rZXlWYWx1ZXNbMF0gPSBLZXlmcmFtZVZhbHVlKHZhbHVlKTsKK30KKworI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0RnJvbVZhbHVl
KGNvbnN0IEZpbHRlck9wZXJhdGlvbiogb3BlcmF0aW9uLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9w
ZXJ0eUluZGV4KQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorI2VuZGlmCisKK3Zv
aWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6Y29weUZyb21WYWx1ZUZyb20oY29uc3QgUGxh
dGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9
CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0VG9WYWx1ZShmbG9hdCB2YWx1
ZSkKK3sKKyAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzLnJlc2l6ZSgyKTsKKyAgICBtX3Byb3BlcnRp
ZXMua2V5VmFsdWVzWzFdID0gS2V5ZnJhbWVWYWx1ZSh2YWx1ZSk7Cit9CisKK3ZvaWQgUGxhdGZv
cm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0VG9WYWx1ZShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgdmFsdWUpCit7CisgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcy5yZXNpemUoMik7CisgICAgbV9w
cm9wZXJ0aWVzLmtleVZhbHVlc1sxXSA9IEtleWZyYW1lVmFsdWUodmFsdWUpOworfQorCit2b2lk
IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFRvVmFsdWUoY29uc3QgRmxvYXRQb2ludDNE
JiB2YWx1ZSkKK3sKKyAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzLnJlc2l6ZSgyKTsKKyAgICBtX3By
b3BlcnRpZXMua2V5VmFsdWVzWzFdID0gS2V5ZnJhbWVWYWx1ZSh2YWx1ZSk7Cit9CisKK3ZvaWQg
UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0VG9WYWx1ZShjb25zdCBDb2xvciYgdmFsdWUp
Cit7CisgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcy5yZXNpemUoMik7CisgICAgbV9wcm9wZXJ0aWVz
LmtleVZhbHVlc1sxXSA9IEtleWZyYW1lVmFsdWUodmFsdWUpOworfQorCisjaWYgRU5BQkxFKENT
U19GSUxURVJTKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRUb1ZhbHVlKGNv
bnN0IEZpbHRlck9wZXJhdGlvbiogb3BlcmF0aW9uLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0
eUluZGV4KQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorI2VuZGlmCisKK3ZvaWQg
UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6Y29weVRvVmFsdWVGcm9tKGNvbnN0IFBsYXRmb3Jt
Q0FBbmltYXRpb24qIHZhbHVlKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCisv
LyBLZXlmcmFtZS1hbmltYXRpb24gcHJvcGVydGllcy4KK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
blJlbW90ZTo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mIHZhbHVlcykKK3sKKyAgICBp
ZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBW
ZWN0b3I8S2V5ZnJhbWVWYWx1ZT4ga2V5ZnJhbWVzOworICAgIGtleWZyYW1lcy5yZXNlcnZlSW5p
dGlhbENhcGFjaXR5KHZhbHVlcy5zaXplKCkpOworICAgIAorICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgdmFsdWVzLnNpemUoKTsgKytpKQorICAgICAgICBrZXlmcmFtZXMudW5jaGVja2VkQXBw
ZW5kKEtleWZyYW1lVmFsdWUodmFsdWVzW2ldKSk7CisgICAgCisgICAgbV9wcm9wZXJ0aWVzLmtl
eVZhbHVlcyA9IHN0ZDo6bW92ZShrZXlmcmFtZXMpOworfQorCit2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb25SZW1vdGU6OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8VHJhbnNmb3JtYXRpb25NYXRyaXg+
JiB2YWx1ZXMpCit7CisgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBLZXlmcmFtZSkKKyAgICAg
ICAgcmV0dXJuOworICAgICAgICAKKyAgICBWZWN0b3I8S2V5ZnJhbWVWYWx1ZT4ga2V5ZnJhbWVz
OworICAgIGtleWZyYW1lcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHZhbHVlcy5zaXplKCkpOwor
ICAgIAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFsdWVzLnNpemUoKTsgKytpKQorICAg
ICAgICBrZXlmcmFtZXMudW5jaGVja2VkQXBwZW5kKEtleWZyYW1lVmFsdWUodmFsdWVzW2ldKSk7
CisgICAgCisgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcyA9IHN0ZDo6bW92ZShrZXlmcmFtZXMp
OworfQorCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFZhbHVlcyhjb25zdCBW
ZWN0b3I8RmxvYXRQb2ludDNEPiYgdmFsdWVzKQoreworICAgIGlmIChhbmltYXRpb25UeXBlKCkg
IT0gS2V5ZnJhbWUpCisgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgVmVjdG9yPEtleWZy
YW1lVmFsdWU+IGtleWZyYW1lczsKKyAgICBrZXlmcmFtZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0
eSh2YWx1ZXMuc2l6ZSgpKTsKKyAgICAKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZhbHVl
cy5zaXplKCk7ICsraSkKKyAgICAgICAga2V5ZnJhbWVzLnVuY2hlY2tlZEFwcGVuZChLZXlmcmFt
ZVZhbHVlKHZhbHVlc1tpXSkpOworICAgIAorICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXMgPSBz
dGQ6Om1vdmUoa2V5ZnJhbWVzKTsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3Rl
OjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPENvbG9yPiYgdmFsdWVzKQoreworICAgIGlmIChhbmlt
YXRpb25UeXBlKCkgIT0gS2V5ZnJhbWUpCisgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAg
VmVjdG9yPEtleWZyYW1lVmFsdWU+IGtleWZyYW1lczsKKyAgICBrZXlmcmFtZXMucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eSh2YWx1ZXMuc2l6ZSgpKTsKKyAgICAKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHZhbHVlcy5zaXplKCk7ICsraSkKKyAgICAgICAga2V5ZnJhbWVzLnVuY2hlY2tlZEFw
cGVuZChLZXlmcmFtZVZhbHVlKHZhbHVlc1tpXSkpOworICAgIAorICAgIG1fcHJvcGVydGllcy5r
ZXlWYWx1ZXMgPSBzdGQ6Om1vdmUoa2V5ZnJhbWVzKTsKK30KKworI2lmIEVOQUJMRShDU1NfRklM
VEVSUykKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0VmFsdWVzKGNvbnN0IFZl
Y3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPj4mLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0
eUluZGV4KQoreworICAgIFVOVVNFRF9QQVJBTShpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgp
OworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorI2VuZGlmCisKK3ZvaWQgUGxhdGZvcm1D
QUFuaW1hdGlvblJlbW90ZTo6Y29weVZhbHVlc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlv
biogdmFsdWUpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgUGxhdGZv
cm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0S2V5VGltZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYga2V5
VGltZXMpCit7CisgICAgbV9wcm9wZXJ0aWVzLmtleVRpbWVzID0ga2V5VGltZXM7Cit9CisKK3Zv
aWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6Y29weUtleVRpbWVzRnJvbShjb25zdCBQbGF0
Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30K
Kwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRUaW1pbmdGdW5jdGlvbnMoY29u
c3QgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4mIHZhbHVlcywgYm9vbCByZXZlcnNlKQor
eworICAgIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6VGltaW5nRnVuY3Rpb24+PiB0aW1pbmdGdW5j
dGlvbnM7CisgICAgdGltaW5nRnVuY3Rpb25zLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodmFsdWVz
LnNpemUoKSk7CisgICAgCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2YWx1ZXMuc2l6ZSgp
OyArK2kpCisgICAgICAgIHRpbWluZ0Z1bmN0aW9ucy51bmNoZWNrZWRBcHBlbmQodmFsdWVzW2ld
LT5jbG9uZSgpKTsKKyAgICAKKyAgICBtX3Byb3BlcnRpZXMudGltaW5nRnVuY3Rpb25zID0gc3Rk
Ojptb3ZlKHRpbWluZ0Z1bmN0aW9ucyk7CisgICAgbV9wcm9wZXJ0aWVzLnJldmVyc2VUaW1pbmdG
dW5jdGlvbnMgPSByZXZlcnNlOworfQorCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6
OmNvcHlUaW1pbmdGdW5jdGlvbnNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVl
KQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitzdGF0aWMgTlNPYmplY3QqIGFu
aW1hdGlvblZhbHVlRnJvbUtleWZyYW1lVmFsdWUoY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvblJl
bW90ZTo6S2V5ZnJhbWVWYWx1ZSYga2V5ZnJhbWVWYWx1ZSkKK3sKKyAgICBzd2l0Y2ggKGtleWZy
YW1lVmFsdWUua2V5ZnJhbWVUeXBlKCkpIHsKKyAgICBjYXNlIFBsYXRmb3JtQ0FBbmltYXRpb25S
ZW1vdGU6OktleWZyYW1lVmFsdWU6Ok51bWJlcktleVR5cGU6CisgICAgICAgIHJldHVybiBbTlNO
dW1iZXIgbnVtYmVyV2l0aERvdWJsZTprZXlmcmFtZVZhbHVlLm51bWJlclZhbHVlKCldOworCisg
ICAgY2FzZSBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpLZXlmcmFtZVZhbHVlOjpDb2xvcktl
eVR5cGU6IHsKKyAgICAgICAgQ29sb3IgY29sb3IgPSBrZXlmcmFtZVZhbHVlLmNvbG9yVmFsdWUo
KTsKKyAgICAgICAgcmV0dXJuIFtOU0FycmF5IGFycmF5V2l0aE9iamVjdHM6CisgICAgICAgICAg
ICBbTlNOdW1iZXIgbnVtYmVyV2l0aERvdWJsZTpjb2xvci5yZWQoKV0sCisgICAgICAgICAgICBb
TlNOdW1iZXIgbnVtYmVyV2l0aERvdWJsZTpjb2xvci5ncmVlbigpXSwKKyAgICAgICAgICAgIFtO
U051bWJlciBudW1iZXJXaXRoRG91YmxlOmNvbG9yLmJsdWUoKV0sCisgICAgICAgICAgICBbTlNO
dW1iZXIgbnVtYmVyV2l0aERvdWJsZTpjb2xvci5hbHBoYSgpXSwKKyAgICAgICAgICAgIG5pbF07
CisgICAgfQorCisgICAgY2FzZSBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpLZXlmcmFtZVZh
bHVlOjpQb2ludEtleVR5cGU6IHsKKyAgICAgICAgRmxvYXRQb2ludDNEIHBvaW50ID0ga2V5ZnJh
bWVWYWx1ZS5wb2ludFZhbHVlKCk7CisgICAgICAgIHJldHVybiBbTlNBcnJheSBhcnJheVdpdGhP
YmplY3RzOgorICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhEb3VibGU6cG9pbnQueCgp
XSwKKyAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoRG91YmxlOnBvaW50LnkoKV0sCisg
ICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aERvdWJsZTpwb2ludC56KCldLAorICAgICAg
ICAgICAgbmlsXTsKKyAgICB9CisgICAgY2FzZSBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpL
ZXlmcmFtZVZhbHVlOjpUcmFuc2Zvcm1LZXlUeXBlOgorICAgICAgICByZXR1cm4gW05TVmFsdWUg
dmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDprZXlmcmFtZVZhbHVlLnRyYW5zZm9ybVZhbHVlKCldOwor
ICAgIH0KK30KKworc3RhdGljIHZvaWQgYWRkQW5pbWF0aW9uVG9MYXllcihDQUxheWVyICpsYXll
ciwgUmVtb3RlTGF5ZXJUcmVlSG9zdCogbGF5ZXJUcmVlSG9zdCwgY29uc3QgU3RyaW5nJiBrZXks
IGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OlByb3BlcnRpZXMmIHByb3BlcnRpZXMp
Cit7CisgICAgUmV0YWluUHRyPENBUHJvcGVydHlBbmltYXRpb24+IGNhQW5pbWF0aW9uOworICAg
IHN3aXRjaCAocHJvcGVydGllcy5hbmltYXRpb25UeXBlKSB7CisgICAgY2FzZSBQbGF0Zm9ybUNB
QW5pbWF0aW9uOjpCYXNpYzogeworICAgICAgICBSZXRhaW5QdHI8Q0FCYXNpY0FuaW1hdGlvbj4g
YmFzaWNBbmltYXRpb247CisgICAgICAgIGJhc2ljQW5pbWF0aW9uID0gW0NBQmFzaWNBbmltYXRp
b24gYW5pbWF0aW9uV2l0aEtleVBhdGg6cHJvcGVydGllcy5rZXlQYXRoXTsKKyAgICAgICAgCisg
ICAgICAgIGlmIChwcm9wZXJ0aWVzLmtleVZhbHVlcy5zaXplKCkgPiAxKSB7CisgICAgICAgICAg
ICBbYmFzaWNBbmltYXRpb24gc2V0RnJvbVZhbHVlOmFuaW1hdGlvblZhbHVlRnJvbUtleWZyYW1l
VmFsdWUocHJvcGVydGllcy5rZXlWYWx1ZXNbMF0pXTsKKyAgICAgICAgICAgIFtiYXNpY0FuaW1h
dGlvbiBzZXRUb1ZhbHVlOmFuaW1hdGlvblZhbHVlRnJvbUtleWZyYW1lVmFsdWUocHJvcGVydGll
cy5rZXlWYWx1ZXNbMV0pXTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHByb3Bl
cnRpZXMudGltaW5nRnVuY3Rpb25zLnNpemUoKSkKKyAgICAgICAgICAgIFtiYXNpY0FuaW1hdGlv
biBzZXRUaW1pbmdGdW5jdGlvbjp0b0NBTWVkaWFUaW1pbmdGdW5jdGlvbihwcm9wZXJ0aWVzLnRp
bWluZ0Z1bmN0aW9uc1swXS5nZXQoKSwgcHJvcGVydGllcy5yZXZlcnNlVGltaW5nRnVuY3Rpb25z
KV07CisgICAgICAgIAorICAgICAgICBjYUFuaW1hdGlvbiA9IGJhc2ljQW5pbWF0aW9uOworICAg
ICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpLZXlmcmFt
ZTogeworICAgICAgICBSZXRhaW5QdHI8Q0FLZXlmcmFtZUFuaW1hdGlvbj4ga2V5ZnJhbWVBbmlt
YXRpb247CisgICAgICAgIGtleWZyYW1lQW5pbWF0aW9uID0gW0NBS2V5ZnJhbWVBbmltYXRpb24g
YW5pbWF0aW9uV2l0aEtleVBhdGg6cHJvcGVydGllcy5rZXlQYXRoXTsKKworICAgICAgICBpZiAo
cHJvcGVydGllcy5rZXlWYWx1ZXMuc2l6ZSgpKSB7CisgICAgICAgICAgICBSZXRhaW5QdHI8TlNN
dXRhYmxlQXJyYXk+IGtleWZyYW1lcyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10g
aW5pdFdpdGhDYXBhY2l0eTpwcm9wZXJ0aWVzLmtleVZhbHVlcy5zaXplKCldKTsKKyAgICAgICAg
ICAgIGZvciAoY29uc3QgYXV0byYgdmFsdWUgOiBwcm9wZXJ0aWVzLmtleVZhbHVlcykKKyAgICAg
ICAgICAgICAgICBba2V5ZnJhbWVzIGFkZE9iamVjdDphbmltYXRpb25WYWx1ZUZyb21LZXlmcmFt
ZVZhbHVlKHZhbHVlKV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFtrZXlmcmFtZUFuaW1h
dGlvbiBzZXRWYWx1ZXM6a2V5ZnJhbWVzLmdldCgpXTsKKyAgICAgICAgfQorCisgICAgICAgIGlm
IChwcm9wZXJ0aWVzLmtleVRpbWVzLnNpemUoKSkgeworICAgICAgICAgICAgUmV0YWluUHRyPE5T
TXV0YWJsZUFycmF5PiBrZXlUaW1lcyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10g
aW5pdFdpdGhDYXBhY2l0eTpwcm9wZXJ0aWVzLmtleVRpbWVzLnNpemUoKV0pOworICAgICAgICAg
ICAgZm9yIChhdXRvIGtleVRpbWUgOiBwcm9wZXJ0aWVzLmtleVRpbWVzKQorICAgICAgICAgICAg
ICAgIFtrZXlUaW1lcyBhZGRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhGbG9hdDprZXlUaW1l
XV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFtrZXlmcmFtZUFuaW1hdGlvbiBzZXRLZXlU
aW1lczprZXlUaW1lcy5nZXQoKV07CisgICAgICAgIH0KKworICAgICAgICBpZiAocHJvcGVydGll
cy50aW1pbmdGdW5jdGlvbnMuc2l6ZSgpKSB7CisgICAgICAgICAgICBSZXRhaW5QdHI8TlNNdXRh
YmxlQXJyYXk+IHRpbWluZ0Z1bmN0aW9ucyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxv
Y10gaW5pdFdpdGhDYXBhY2l0eTpwcm9wZXJ0aWVzLnRpbWluZ0Z1bmN0aW9ucy5zaXplKCldKTsK
KyAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgdGltaW5nRnVuY3Rpb24gOiBwcm9wZXJ0aWVz
LnRpbWluZ0Z1bmN0aW9ucykKKyAgICAgICAgICAgICAgICBbdGltaW5nRnVuY3Rpb25zIGFkZE9i
amVjdDp0b0NBTWVkaWFUaW1pbmdGdW5jdGlvbih0aW1pbmdGdW5jdGlvbi5nZXQoKSwgcHJvcGVy
dGllcy5yZXZlcnNlVGltaW5nRnVuY3Rpb25zKV07CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IFtrZXlmcmFtZUFuaW1hdGlvbiBzZXRUaW1pbmdGdW5jdGlvbnM6dGltaW5nRnVuY3Rpb25zLmdl
dCgpXTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgY2FBbmltYXRpb24gPSBrZXlmcmFt
ZUFuaW1hdGlvbjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIH0KKyAgICAKKyAgICBbY2FB
bmltYXRpb24gc2V0QmVnaW5UaW1lOnByb3BlcnRpZXMuYmVnaW5UaW1lXTsKKyAgICBbY2FBbmlt
YXRpb24gc2V0RHVyYXRpb246cHJvcGVydGllcy5kdXJhdGlvbl07CisgICAgW2NhQW5pbWF0aW9u
IHNldFRpbWVPZmZzZXQ6cHJvcGVydGllcy50aW1lT2Zmc2V0XTsKKyAgICBbY2FBbmltYXRpb24g
c2V0UmVwZWF0Q291bnQ6cHJvcGVydGllcy5yZXBlYXRDb3VudF07CisgICAgW2NhQW5pbWF0aW9u
IHNldFNwZWVkOnByb3BlcnRpZXMuc3BlZWRdOworICAgIFtjYUFuaW1hdGlvbiBzZXRBdXRvcmV2
ZXJzZXM6cHJvcGVydGllcy5hdXRvUmV2ZXJzZXNdOworICAgIFtjYUFuaW1hdGlvbiBzZXRSZW1v
dmVkT25Db21wbGV0aW9uOnByb3BlcnRpZXMucmVtb3ZlZE9uQ29tcGxldGlvbl07CisgICAgW2Nh
QW5pbWF0aW9uIHNldEFkZGl0aXZlOnByb3BlcnRpZXMuYWRkaXRpdmVdOworICAgIAorICAgIGlm
IChwcm9wZXJ0aWVzLmZpbGxNb2RlICE9IFBsYXRmb3JtQ0FBbmltYXRpb246Ok5vRmlsbE1vZGUp
CisgICAgICAgIFtjYUFuaW1hdGlvbiBzZXRGaWxsTW9kZTp0b0NBRmlsbE1vZGVUeXBlKHByb3Bl
cnRpZXMuZmlsbE1vZGUpXTsKKworICAgIGlmIChwcm9wZXJ0aWVzLnZhbHVlRnVuY3Rpb24gIT0g
UGxhdGZvcm1DQUFuaW1hdGlvbjo6Tm9WYWx1ZUZ1bmN0aW9uKQorICAgICAgICBbY2FBbmltYXRp
b24gc2V0VmFsdWVGdW5jdGlvbjpbQ0FWYWx1ZUZ1bmN0aW9uIGZ1bmN0aW9uV2l0aE5hbWU6dG9D
QVZhbHVlRnVuY3Rpb25UeXBlKHByb3BlcnRpZXMudmFsdWVGdW5jdGlvbildXTsKKyAgICAKKyAg
ICBpZiAocHJvcGVydGllcy5oYXNOb25aZXJvQmVnaW5UaW1lKQorICAgICAgICBbY2FBbmltYXRp
b24uZ2V0KCkgIHNldFZhbHVlOltOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdIGZvcktleTpX
S05vblplcm9CZWdpblRpbWVGbGFnXTsKKyAgICAKKyAgICBpZiAobGF5ZXJUcmVlSG9zdCkgewor
ICAgICAgICBHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgbGF5ZXJJRCA9IFJlbW90ZUxh
eWVyVHJlZUhvc3Q6OmxheWVySUQobGF5ZXIpOworICAgIAorICAgICAgICBSZXRhaW5QdHI8V0tB
bmltYXRpb25EZWxlZ2F0ZT4mIGRlbGVnYXRlID0gbGF5ZXJUcmVlSG9zdC0+YW5pbWF0aW9uRGVs
ZWdhdGVzKCkuYWRkKGxheWVySUQsIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAg
aWYgKCFkZWxlZ2F0ZSkKKyAgICAgICAgICAgIGRlbGVnYXRlID0gYWRvcHROUyhbW1dLQW5pbWF0
aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoTGF5ZXJJRDpsYXllcklEIGxheWVyVHJlZUhvc3Q6
bGF5ZXJUcmVlSG9zdF0pOworCisgICAgICAgIFtjYUFuaW1hdGlvbiBzZXREZWxlZ2F0ZTpkZWxl
Z2F0ZS5nZXQoKV07CisgICAgfQorICAgIAorICAgIFtsYXllciBhZGRBbmltYXRpb246Y2FBbmlt
YXRpb24uZ2V0KCkgZm9yS2V5OmtleV07Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJl
bW90ZTo6dXBkYXRlTGF5ZXJBbmltYXRpb25zKENBTGF5ZXIgKmxheWVyLCBSZW1vdGVMYXllclRy
ZWVIb3N0KiBsYXllclRyZWVIb3N0LCBjb25zdCBBbmltYXRpb25zTWFwJiBhbmltYXRpb25zVG9B
ZGQsIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgYW5pbWF0aW9uc1RvUmVtb3ZlKQoreworICAgIEJF
R0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKworICAgIGZvciAoY29uc3QgYXV0byYgdmFsdWUg
OiBhbmltYXRpb25zVG9SZW1vdmUpCisgICAgICAgIFtsYXllciByZW1vdmVBbmltYXRpb25Gb3JL
ZXk6dmFsdWVdOworCisgICAgZm9yIChjb25zdCBhdXRvJiBrZXlWYWx1ZVBhaXIgOiBhbmltYXRp
b25zVG9BZGQpCisgICAgICAgIGFkZEFuaW1hdGlvblRvTGF5ZXIobGF5ZXIsIGxheWVyVHJlZUhv
c3QsIGtleVZhbHVlUGFpci5rZXksIGtleVZhbHVlUGFpci52YWx1ZSk7CisKKyAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVy
UmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZv
cm1DQUxheWVyUmVtb3RlLmNwcAppbmRleCA3NjU5NjY1NzVlNWI5N2NhOTczNmRmODBmYmRhMDc5
NTcxZmNiZDNkLi40ZDRmNTY4MzAxMWE0MzA2YzZhZTI5MjQ2Mzk3NDA5N2Y1MjFiOGE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FM
YXllclJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCkBAIC00Miw3ICs0Miw4IEBACiAjaW1wb3J0IDx3
dGYvUmV0YWluUHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKKworbmFtZXNwYWNlIFdlYktpdCB7CiAKIFBhc3NSZWZQdHI8UGxhdGZvcm1D
QUxheWVyUmVtb3RlPiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmNyZWF0ZShMYXllclR5cGUgbGF5
ZXJUeXBlLCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyLCBSZW1vdGVMYXllclRyZWVDb250
ZXh0KiBjb250ZXh0KQogewpAQCAtMTI0LDcgKzEyNSw3IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVy
UmVtb3RlOjpyZWN1cnNpdmVCdWlsZFRyYW5zYWN0aW9uKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0
aW9uCiAgICAgICAgIH0KIAogICAgICAgICBpZiAobV9sYXllclR5cGUgPT0gTGF5ZXJUeXBlQ3Vz
dG9tKSB7Ci0gICAgICAgICAgICBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXI6OmFwcGx5
UHJvcGVydGllcyhwbGF0Zm9ybUxheWVyKCksIG1fcHJvcGVydGllcywgUmVtb3RlTGF5ZXJUcmVl
UHJvcGVydHlBcHBsaWVyOjpSZWxhdGVkTGF5ZXJNYXAoKSk7CisgICAgICAgICAgICBSZW1vdGVM
YXllclRyZWVQcm9wZXJ0eUFwcGxpZXI6OmFwcGx5UHJvcGVydGllcyhwbGF0Zm9ybUxheWVyKCks
IG51bGxwdHIsIG1fcHJvcGVydGllcywgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjpS
ZWxhdGVkTGF5ZXJNYXAoKSk7CiAgICAgICAgICAgICBtX3Byb3BlcnRpZXMuY2hhbmdlZFByb3Bl
cnRpZXMgPSBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6Tm9DaGFuZ2U7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KQEAgLTE0NSw2ICsxNDYsOCBAQCB2b2lkIFBsYXRmb3JtQ0FM
YXllclJlbW90ZTo6cmVjdXJzaXZlQnVpbGRUcmFuc2FjdGlvbihSZW1vdGVMYXllclRyZWVUcmFu
c2FjdGlvbgogCiB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6YW5pbWF0aW9uU3RhcnRlZChD
RlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpCiB7CisgICAgaWYgKG1fb3duZXIpCisgICAgICAgIG1f
b3duZXItPnBsYXRmb3JtQ0FMYXllckFuaW1hdGlvblN0YXJ0ZWQoYmVnaW5UaW1lKTsKIH0KIAog
dm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmVuc3VyZUJhY2tpbmdTdG9yZSgpCkBAIC0yNjcs
MTggKzI3MCwyMiBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6YWRvcHRTdWJsYXllcnMo
UGxhdGZvcm1DQUxheWVyKiBzb3VyY2UpCiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjph
ZGRBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIFBsYXRmb3JtQ0FBbmltYXRpb24q
IGFuaW1hdGlvbikKIHsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBtX3Byb3BlcnRp
ZXMuYWRkZWRBbmltYXRpb25zLnNldChrZXksIHRvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZShh
bmltYXRpb24pLT5wcm9wZXJ0aWVzKCkpOworICAgIG1fcHJvcGVydGllcy5ub3RlUHJvcGVydGll
c0NoYW5nZWQoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkFuaW1hdGlvbnNDaGFuZ2VkKTsK
KyAgICAKKyAgICBtX2NvbnRleHQtPndpbGxTdGFydEFuaW1hdGlvbk9uTGF5ZXIodGhpcyk7CiB9
CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZW1vdmVBbmltYXRpb25Gb3JLZXkoY29u
c3QgU3RyaW5nJiBrZXkpCiB7Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgLy8gRklY
TUU6IHJlbW92ZSBmcm9tIG1fcHJvcGVydGllcy5hZGRlZEFuaW1hdGlvbnMgPworICAgIG1fcHJv
cGVydGllcy5rZXlQYXRoc09mQW5pbWF0aW9uc1RvUmVtb3ZlLmFkZChrZXkpOworICAgIG1fcHJv
cGVydGllcy5ub3RlUHJvcGVydGllc0NoYW5nZWQoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246
OkFuaW1hdGlvbnNDaGFuZ2VkKTsKIH0KIAogUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9u
PiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtl
eSkKIHsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLQorICAgIC8vIEZJWE1FOiBpbXBsZW1l
bnQuCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKQEAgLTU4OSwzICs1OTYsNSBAQCB1aW50MzJf
dCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6Omhvc3RpbmdDb250ZXh0SUQoKQogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiAwOwogfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZv
cm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0KaW5kZXggNDM0MjllZGVhNzIw
YjljNjQzZDdhZjc2MGI5OTY3NmYyYmI0OWM1ZC4uYTIwMmQ2NWRkZDZhZTU4NTJmNDI0ZWQ2OGEy
NDczMjRlMTQwZTIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0KKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0K
QEAgLTM3LDcgKzM3LDggQEAKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7Ci11c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCituYW1lc3BhY2UgV2Vi
S2l0IHsKIAogc3RhdGljIE5TU3RyaW5nICogY29uc3QgcGxhdGZvcm1DQUxheWVyUG9pbnRlciA9
IEAiV0tQbGF0Zm9ybUNBTGF5ZXIiOwogUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpQbGF0
Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20oUGxhdGZvcm1MYXllciogY3VzdG9tTGF5ZXIsIFBsYXRm
b3JtQ0FMYXllckNsaWVudCogb3duZXIsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQqIGNvbnRleHQp
CkBAIC04MywzICs4NCw1IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpzZXRO
ZWVkc0Rpc3BsYXkoY29uc3QgRmxvYXRSZWN0KiByZWN0KQogICAgIH0gZWxzZQogICAgICAgICBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldE5lZWRzRGlzcGxheShyZWN0KTsKIH0KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVk
QmFja2luZy5jcHAKaW5kZXggZmZhM2M1YjUxMGI0MTg3MmIzZDVjMzFiNDcxZWY0MGNmNDMzMTBj
MS4uOWY0MGM1YzRmZGNjZjRlYjM2YWE3Y2JjODZiMzM4YTRkNzU4ZWEzMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1v
dGVUaWxlZEJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmNwcApAQCAtMzMsNyArMzMs
OCBAQAogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK25hbWVzcGFjZSBXZWJLaXQgewogCiBQbGF0
Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmc6OlBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVk
QmFja2luZyhMYXllclR5cGUgbGF5ZXJUeXBlLCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVy
LCBSZW1vdGVMYXllclRyZWVDb250ZXh0KiBjb250ZXh0KQogICAgIDogUGxhdGZvcm1DQUxheWVy
UmVtb3RlKGxheWVyVHlwZSwgb3duZXIsIGNvbnRleHQpCkBAIC0xMDIsMyArMTAzLDUgQEAgdm9p
ZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmc6OnNldEJvcmRlckNvbG9yKGNvbnN0
IFdlYkNvcmU6OkNvbG9yJiBjb2wKIHsKICAgICBtX3RpbGVDb250cm9sbGVyLT5zZXRUaWxlRGVi
dWdCb3JkZXJDb2xvcihjb2xvcik7CiB9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRy
ZWVDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90
ZUxheWVyVHJlZUNvbnRleHQuaAppbmRleCBhYTAxMGU1MDJmZTE2NmRhYWJlZGJlZTcwYzI0NmYx
Y2NmZjUzNzRiLi45YWM0NWZmOTdkMzUyZGM1ZjNlZWE4MmI0YjBlNGU1YTQ1MzhmMDFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVy
VHJlZUNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaApAQCAtNTUsNiArNTUsMTEgQEAgcHVibGljOgogICAg
IHZvaWQgZmx1c2hPdXRPZlRyZWVMYXllcnMoKTsKICAgICB2b2lkIGJ1aWxkVHJhbnNhY3Rpb24o
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mLCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXImIHJv
b3RMYXllcik7CiAKKyAgICAvLyBGcm9tIHRoZSBVSSBwcm9jZXNzCisgICAgdm9pZCBhbmltYXRp
b25EaWRTdGFydChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQsIGRvdWJs
ZSBzdGFydFRpbWUpOworCisgICAgdm9pZCB3aWxsU3RhcnRBbmltYXRpb25PbkxheWVyKFBsYXRm
b3JtQ0FMYXllclJlbW90ZSopOworCiBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJGYWN0b3J5CiAgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhp
Y3NMYXllcj4gY3JlYXRlR3JhcGhpY3NMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50
Kikgb3ZlcnJpZGU7CkBAIC02Niw2ICs3MSw4IEBAIHByaXZhdGU6CiAKICAgICBWZWN0b3I8UmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ3JlYXRpb25Qcm9wZXJ0aWVzPiBtX2NyZWF0
ZWRMYXllcnM7CiAgICAgVmVjdG9yPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5
ZXJJRD4gbV9kZXN0cm95ZWRMYXllcnM7CisgICAgCisgICAgSGFzaE1hcDxXZWJDb3JlOjpHcmFw
aGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQsIFBsYXRmb3JtQ0FMYXllclJlbW90ZSo+IG1fbGF5
ZXJzQXdhaXRpbmdBbmltYXRpb25TdGFydDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVM
YXllclRyZWVDb250ZXh0Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCmluZGV4IGQ4ODA2MzVlMmYzNzI3MjcyZGI1OWFk
ZmVhMzgyZTZhNjlhOTBkZjIuLmIzODJlYmMyYjRlMTEyYzZmNTE1ODBiYzRjZDAwYjBjNzAwMzgw
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVt
b3RlTGF5ZXJUcmVlQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KQEAgLTY1LDYgKzY1LDggQEAgdm9p
ZCBSZW1vdGVMYXllclRyZWVDb250ZXh0OjpsYXllcldpbGxCZURlc3Ryb3llZChQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGUqIGxheWVyKQogewogICAgIEFTU0VSVCghbV9kZXN0cm95ZWRMYXllcnMuY29u
dGFpbnMobGF5ZXItPmxheWVySUQoKSkpOwogICAgIG1fZGVzdHJveWVkTGF5ZXJzLmFwcGVuZChs
YXllci0+bGF5ZXJJRCgpKTsKKyAgICAKKyAgICBtX2xheWVyc0F3YWl0aW5nQW5pbWF0aW9uU3Rh
cnQucmVtb3ZlKGxheWVyLT5sYXllcklEKCkpOwogfQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZUNv
bnRleHQ6Om91dE9mVHJlZUxheWVyV2FzQWRkZWQoR3JhcGhpY3NMYXllciogbGF5ZXIpCkBAIC0x
MDIsNCArMTA0LDE2IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6YnVpbGRUcmFuc2Fj
dGlvbihSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgdHJhbnNhCiAgICAgdHJhbnNhY3Rpb24u
c2V0RGVzdHJveWVkTGF5ZXJJRHMoc3RkOjptb3ZlKG1fZGVzdHJveWVkTGF5ZXJzKSk7CiB9CiAK
K3ZvaWQgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6d2lsbFN0YXJ0QW5pbWF0aW9uT25MYXllcihQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGUqIGxheWVyKQoreworICAgIG1fbGF5ZXJzQXdhaXRpbmdBbmlt
YXRpb25TdGFydC5hZGQobGF5ZXItPmxheWVySUQoKSwgbGF5ZXIpOworfQorCit2b2lkIFJlbW90
ZUxheWVyVHJlZUNvbnRleHQ6OmFuaW1hdGlvbkRpZFN0YXJ0KFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXllcklELCBkb3VibGUgc3RhcnRUaW1lKQoreworICAgIGF1
dG8gaXQgPSBtX2xheWVyc0F3YWl0aW5nQW5pbWF0aW9uU3RhcnQuZmluZChsYXllcklEKTsKKyAg
ICBpZiAoaXQgIT0gbV9sYXllcnNBd2FpdGluZ0FuaW1hdGlvblN0YXJ0LmVuZCgpKQorICAgICAg
ICBpdC0+dmFsdWUtPmFuaW1hdGlvblN0YXJ0ZWQoc3RhcnRUaW1lKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKaW5kZXggNGU3
MjJjMGU2NzY2MjJhOTNmYTM2OTUwNTQzNjc5Y2M1MDg0YzQ3NS4uMjA2NjgzYjU3N2ZjMjIzN2Mw
NWQ2ZmJmMmNiY2E2NGI5ZDZlMDc0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEuaApAQCAtNzUsNiArNzUsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzZXRFeHBv
c2VkUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IFdlYkNvcmU6OkZsb2F0UmVjdCBleHBvc2VkUmVjdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IG1fc2Nyb2xsZWRFeHBvc2VkUmVjdDsgfQogCisgICAgdmlydHVhbCB2b2lkIGFjY2VsZXJhdGVk
QW5pbWF0aW9uRGlkU3RhcnQodWludDY0X3QgbGF5ZXJJRCwgZG91YmxlIHN0YXJ0VGltZSkgb3Zl
cnJpZGU7CisKICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCB2b2lkIHNldEV4cG9zZWRD
b250ZW50UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlkZTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5kZXggMTE2OGFlZGM4YWIyMTAw
Nzc2YTlhMjQ5ZTI3YjU2Y2NkODc4ZGE2NC4uMjUxYjVmNzYxNmM1ZGJmODY5NjE3ZjcyNDQ2OGYz
NzQ1NTBiNmQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCkBAIC0y
NDAsNiArMjQwLDExIEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmZvcmNlUmVw
YWludCgpCiAgICAgZmx1c2hMYXllcnMoKTsKIH0KIAordm9pZCBSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYTo6YWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCh1aW50NjRfdCBsYXllcklELCBk
b3VibGUgc3RhcnRUaW1lKQoreworICAgIG1fcmVtb3RlTGF5ZXJUcmVlQ29udGV4dC0+YW5pbWF0
aW9uRGlkU3RhcnQobGF5ZXJJRCwgc3RhcnRUaW1lKTsKK30KKwogdm9pZCBSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYTo6c2V0RXhwb3NlZFJlY3QoY29uc3QgRmxvYXRSZWN0JiBleHBvc2VkUmVj
dCkKIHsKICAgICBtX2V4cG9zZWRSZWN0ID0gZXhwb3NlZFJlY3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQppbmRleCAzYmE2Y2ZkYmIzNmJjNDExN2UzNjgzZTg5
NWJjMjI3MDU0YWI4Y2U4Li42MDBlZWUzMDlkNzUyYTgwMDc1NGUwNWY0MGU3M2E3MzgzY2FlN2Jh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KQEAgLTQ0LDYg
KzQ0LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NMYXllckNBLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL01haW5GcmFtZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVy
TGF5ZXJCYWNraW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlckxheWVyQ29tcG9zaXRvci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CkBAIC03NjAsNyArNzYxLDcgQEAgdm9p
ZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6Y29tbWl0VHJhbnNpZW50Wm9vbShkb3Vi
bGUgc2NhbGUsIEZsb2F0UG9pbnQKICAgICB0cmFuc2Zvcm0uc2NhbGUoc2NhbGUpOwogCiAgICAg
UmV0YWluUHRyPENBQmFzaWNBbmltYXRpb24+IHJlbmRlclZpZXdBbmltYXRpb25DQSA9IHRyYW5z
aWVudFpvb21TbmFwQW5pbWF0aW9uRm9yS2V5UGF0aCgidHJhbnNmb3JtIik7Ci0gICAgUmVmUHRy
PFBsYXRmb3JtQ0FBbmltYXRpb24+IHJlbmRlclZpZXdBbmltYXRpb24gPSBQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpjcmVhdGUocmVuZGVyVmlld0FuaW1hdGlvbkNBLmdldCgpKTsKKyAgICBSZWZQdHI8
UGxhdGZvcm1DQUFuaW1hdGlvbj4gcmVuZGVyVmlld0FuaW1hdGlvbiA9IFBsYXRmb3JtQ0FBbmlt
YXRpb25NYWM6OmNyZWF0ZShyZW5kZXJWaWV3QW5pbWF0aW9uQ0EuZ2V0KCkpOwogICAgIHJlbmRl
clZpZXdBbmltYXRpb24tPnNldFRvVmFsdWUodHJhbnNmb3JtKTsKIAogICAgIFJldGFpblB0cjxD
QUxheWVyPiBzaGFkb3dMYXllcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228151</attachid>
            <date>2014-03-30 22:57:44 -0700</date>
            <delta_ts>2014-03-31 08:57:42 -0700</delta_ts>
            <desc>For Win EWS</desc>
            <filename>bug-130946-20140330225722.patch</filename>
            <type>text/plain</type>
            <size>162022</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2MzkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzc5MzA1NmI1YWE3OGIy
YmM1NzVhOTRlNDk0YzY3NGExNDZmOWFmZi4uY2ExMzYxM2IxNDE4NTg3ZmUxZGI2NTJkZWIzYmYz
MzBhMTYyMjkyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE0LTAzLTMwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtVSS1zaWRlIGNv
bXBvc2l0aW5nXSBQcm94eSBhbmltYXRpb25zIHRvIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA5NDYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRvIHByb3h5IENB
IGFuaW1hdGlvbnMsIG1ha2UgUGxhdGZvcm1DQUFuaW1hdGlvbiBhIHB1cmUgdmlydHVhbCBiYXNl
IGNsYXNzCisgICAgICAgIGFuZCBzdWJjbGFzcyBmb3IgTWFjLCBXaW5kb3dzLCBhbmQgUmVtb3Rl
IChqdXN0IGxpa2UgUGxhdGZvcm1DQUxheWVyKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBjb2Rp
bmcgc3VwcG9ydCBmb3IgVGltaW5nRnVuY3Rpb25zLgorICAgICAgICAKKyAgICAgICAgRG8gc29t
ZSBtaW5vciAjaW5jbHVkZSB0aWR5dXAuCisgICAgICAgIAorICAgICAgICBNaW5vciByZWZhY3Rv
ciBpbiBHcmFwaGljc0xheWVyQ0EgdG8gc2hhcmUgc29tZSBhbmltYXRpb25zIGNvZGUuCisKKyAg
ICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9u
Lmg6IEFkZCBzZXR0ZXJzIG5lZWQgZm9yIGVuY29kZS9kZWNvZGUuCisgICAgICAgIChXZWJDb3Jl
OjpDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uOjpzZXRWYWx1ZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbjo6c2V0VGltaW5nRnVuY3Rpb25QcmVzZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6U3RlcHNUaW1pbmdGdW5jdGlvbjo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlN0ZXBzVGltaW5nRnVuY3Rpb246OnNldE51bWJlck9mU3RlcHMpOgorICAgICAg
ICAoV2ViQ29yZTo6U3RlcHNUaW1pbmdGdW5jdGlvbjo6c2V0U3RlcEF0U3RhcnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZVBsYXRmb3JtQ0FBbmltYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjphbmltYXRpb25DYW5CZUFjY2VsZXJhdGVk
KTogTWlub3IgcmVmYWN0b3Igc28gd2UgY2FuIHNoYXJlCisgICAgICAgIGNvZGUgd2l0aCBHcmFw
aGljc0xheWVyQ0FSZW1vdGUuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmFk
ZEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUJh
c2ljQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3NSZWZQdHI8UGxhdGZvcm1DQUFu
aW1hdGlvbj5HcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUtleWZyYW1lQW5pbWF0aW9uKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmg6CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uOjp+UGxhdGZvcm1DQUFuaW1hdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uOjppc1BsYXRmb3JtQ0FBbmltYXRpb25NYWMp
OgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1DQUFuaW1hdGlvbjo6aXNQbGF0Zm9ybUNBQW5p
bWF0aW9uV2luKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb246OmlzUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
Q0FBbmltYXRpb246OnNldFR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1Bs
YXRmb3JtQ0FMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0
Zm9ybUNBQW5pbWF0aW9uTWFjLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW06CisgICAgICAgIChQbGF0Zm9ybUNB
TGF5ZXJNYWM6OmFkZEFuaW1hdGlvbkZvcktleSk6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJN
YWM6OmFuaW1hdGlvbkZvcktleSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFj
L1RpbGVDb250cm9sbGVyLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9Q
bGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5oOiBBZGRlZC4KKwogMjAxNC0wMy0yNyAgSm9z
ZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVz
ZWQgTG9jYWxlTWFjOjpjcmVhdGUgbWV0aG9kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjAxYTk5ZGYxMDdjNmNh
NWEyNjM1YTg0NjY1NjBiZDdmOTYzNGQwOC4uM2E4NmM5YTE3ODdlMTdmMWM5OTIwMzhhMmJjNzZj
ZDFlZGE2NzE0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMiBAQAorMjAxNC0wMy0zMCAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBbVUktc2lkZSBj
b21wb3NpdGluZ10gUHJveHkgYW5pbWF0aW9ucyB0byB0aGUgVUkgcHJvY2VzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwOTQ2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBBZGQgZW5jb2Rp
bmcvZGVjb2Rpbmcgb2YgVGltaW5nRnVuY3Rpb25zLiBBZGQgZW5jb2Rpbmcgc3VwcG9ydAorICAg
ICAgICBmb3IgSGFzaFNldC4KKyAgICAgICAgCisgICAgICAgIEFkZCBQbGF0Zm9ybUNBQW5pbWF0
aW9uUmVtb3RlIGFuZCBoYXZlIFBsYXRmb3JtQ0FMYXllclJlbW90ZSBhbGxvdworICAgICAgICBh
bmltYXRpb25zIG5vdy4gUGxhdGZvcm1DQUxheWVyUmVtb3RlJ3MgcHJvcGVydGllcyBhcmUgZGVm
aW5lZCBpbiB0aGUgY2xhc3MsCisgICAgICAgIGFzIGlzIHRoZSBlbmNvZGluZy9kZWNvZGluZyAo
bXVjaCBjbGVhbmVyIHRoYW4gaGF2aW5nIHRoZW0gaW4gdGhlIHRyYW5zYWN0aW9uCisgICAgICAg
IGNsYXNzIEkgdGhpbmspLgorICAgICAgICAKKyAgICAgICAgQWRkIHN1cHBvcnQgdGhlICJhbmlt
YXRpb25EaWRTdGFydCIgY2FsbGJhY2sgYW5kIHNlbmRpbmcgdGhpcyBiYWNrIHRvIHRoZQorICAg
ICAgICB3ZWIgcHJvY2Vzcy4gVGhpcyBpbnZvbHZlcyBhIEhhc2hNYXAgb2YgbGF5ZXJJRC0+V0tB
bmltYXRpb25EZWxlZ2F0ZSBzdG9yZWQKKyAgICAgICAgb24gdGhlIFJlbW90ZUxheWVyVHJlZUhv
c3QsIGFuZCBhIG1lc3NhZ2Ugc2VuZCB2aWEgdGhlIERyYXdpbmdBcmVhLiBPbiB0aGUKKyAgICAg
ICAgb3RoZXIgc2lkZSwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCBzdG9yZXMgYSBIYXNoTWFwIG9m
IGxheWVySUQtPlBsYXRmb3JtQ0FMYXllclJlbW90ZSoKKyAgICAgICAgZm9yIGxheWVycyB3aGlj
aCBoYXZlIGp1c3Qgc3RhcnRlZCBhbmltYXRpb25zLCB3aGljaCBpcyB1c2VkIHRvIGdldCB0aGUK
KyAgICAgICAgUGxhdGZvcm1DQUxheWVyKiB0byBjYWxsIGFuaW1hdGlvbkRpZFN0YXJ0KCkgb24u
CisgICAgICAgIAorICAgICAgICBUaGlzIHJlcXVpcmVzIHRoYXQgdGhlIFJlbW90ZUxheWVyVHJl
ZUhvc3QqIGJlIHBhc3NlZCBkb3duIGludG8gcHJvcGVydHkgYXBwbGljYXRpb24sCisgICAgICAg
IGFuZCB0aGF0IHRoZSBSZW1vdGVMYXllclRyZWVIb3N0IGhhdmUgYSByZWZlcmVuY2UgdG8gdGhl
IGRyYXdpbmcgYXJlYS4KKyAgICAgICAgCisgICAgICAgIFRvIGV2ZXJ5IENBTGF5ZXIgaW4gdGhl
IFVJIHByb2Nlc3Mgd2UgLXNldFZhbHVlOmZvcktleTogdG8gdHJhY2sgdGhlIFBsYXRmb3JtTGF5
ZXJJRCwKKyAgICAgICAgc28gd2UgY2FuIGdldCBiYWNrIHRvIGl0IGluIG9yZGVyIHRvIGRpc3Bh
dGNoICJhbmltYXRpb25EaWRTdGFydCIuCisgICAgICAgIAorICAgICAgICBSZXBsYWNlIHNvbWUg
InVzaW5nIG5hbWVzcGFjZSBXZWJLaXQiIHdpdGggIm5hbWVzcGFjZSBXZWJLaXQgeyB9Ii4KKwor
ICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVy
PExpbmVhclRpbWluZ0Z1bmN0aW9uPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxMaW5lYXJUaW1pbmdGdW5jdGlvbj46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbj46OmVuY29kZSk6CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbj46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8U3RlcHNUaW1pbmdGdW5jdGlvbj46OmVuY29kZSk6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8U3RlcHNUaW1pbmdGdW5jdGlvbj46OmRlY29k
ZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAq
IFNoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW06CisgICAgICAgICogU2hhcmVk
L21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIuaDoKKyAgICAgICAgKiBTaGFyZWQv
bWFjL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbToKKyAgICAgICAgKFdlYktpdDo6
YXBwbHlQcm9wZXJ0aWVzVG9MYXllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJl
ZVByb3BlcnR5QXBwbGllcjo6YXBwbHlQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBTaGFyZWQvbWFj
L1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmg6CisgICAgICAgICogU2hhcmVkL21hYy9SZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6TGF5ZXJQcm9wZXJ0aWVzKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6
ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246Okxh
eWVyUHJvcGVydGllczo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6ZHVtcENoYW5nZWRMYXll
cnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUmVtb3RlTGF5ZXJUcmVlSG9zdElPUy5tbToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6bGF5ZXJJRCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OmNyZWF0ZUxheWVyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW06CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OlJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5OjphY2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0YXJ0KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6c2hvd0RlYnVnSW5kaWNh
dG9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QuaDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6YW5pbWF0aW9uRGVsZWdhdGVzKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW06CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OlJlbW90ZUxheWVyVHJlZUhvc3QpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0Ojp1cGRhdGVMYXllclRyZWUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjpsYXllcldpbGxCZVJlbW92ZWQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjphbmltYXRpb25EaWRTdGFydCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OmxheWVySUQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjpjcmVhdGVMYXllcik6CisgICAgICAgICog
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9EcmF3aW5nQXJlYS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYTo6YWNj
ZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R3JhcGhpY3NM
YXllckNBUmVtb3RlOjpjcmVhdGVQbGF0Zm9ybUNBQW5pbWF0aW9uKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1v
dGUubW06IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1D
QUxheWVyUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3Rl
OjpyZWN1cnNpdmVCdWlsZFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1D
QUxheWVyUmVtb3RlOjphbmltYXRpb25TdGFydGVkKToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZv
cm1DQUxheWVyUmVtb3RlOjphZGRBbmltYXRpb25Gb3JLZXkpOgorICAgICAgICAoV2ViS2l0OjpQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlbW92ZUFuaW1hdGlvbkZvcktleSk6CisgICAgICAgIChX
ZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZTo6YW5pbWF0aW9uRm9yS2V5KToKKyAgICAgICAg
KFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6cmVjdXJzaXZlQnVpbGRUcmFuc2FjdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFkZEFuaW1hdGlvbkZvcktleSk6
IERlbGV0ZWQuCisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlbW92ZUFuaW1hdGlv
bkZvcktleSk6IERlbGV0ZWQuCisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFuaW1h
dGlvbkZvcktleSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6bGF5ZXJXaWxsQmVEZXN0cm95
ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVDb250ZXh0Ojp3aWxsU3RhcnRB
bmltYXRpb25PbkxheWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlQ29udGV4
dDo6YW5pbWF0aW9uRGlkU3RhcnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6YWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWE6OmNvbW1pdFRyYW5zaWVudFpvb20pOgorCiAyMDE0LTAzLTI3ICBBbGV4ZXkgUHJvc2t1cnlh
a292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIENvbmZpcm0gY29tcG9zaXRpb24gaW4gcmVz
aWduRmlyc3RSZXNwb25kZXIsIGRvbid0IGNhbmNlbCBpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRl
eCBiNTMzNDVmMmIzYzhmNWNkNTcyYjU3NTcxNzRkN2ZjYzNlMGExZTEwLi5hYWRmZjg4NGVlNTZl
ZTRiNzQ3ZGFmMzQzNDNmODI1NTUzZjA5MjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNzE2
LDYgKzcxNiw3IEBAIF9fWk43V2ViQ29yZTE2bmV4dExpbmVQb3NpdGlvbkVSS05TXzE1VmlzaWJs
ZVBvc2l0aW9uRWlOU18xMkVkaXRhYmxlVHlwZUUKIF9fWk43V2ViQ29yZTE2c2NyaXB0TmFtZVRv
Q29kZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE2c3RhcnRPZlBhcmFncmFwaEVSS05T
XzE1VmlzaWJsZVBvc2l0aW9uRU5TXzI3RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlRQogX19a
TjdXZWJDb3JlMTZ0aHJlYWRHbG9iYWxEYXRhRXYKK19fWk43V2ViQ29yZTE2dG9DQUZpbGxNb2Rl
VHlwZUVOU18xOVBsYXRmb3JtQ0FBbmltYXRpb24xMkZpbGxNb2RlVHlwZUUKIF9fWk43V2ViQ29y
ZTE3Q3JlZGVudGlhbFN0b3JhZ2UyNGdldEZyb21QZXJzaXN0ZW50U3RvcmFnZUVSS05TXzE1UHJv
dGVjdGlvblNwYWNlRQogX19aTjdXZWJDb3JlMTdDcmVkZW50aWFsU3RvcmFnZTNnZXRFUktOU18x
NVByb3RlY3Rpb25TcGFjZUUKIF9fWk43V2ViQ29yZTE3RE9NSW1wbGVtZW50YXRpb24xM2lzWE1M
TUlNRVR5cGVFUktOM1dURjZTdHJpbmdFCkBAIC03OTEsOSArNzkyLDYgQEAgX19aTjdXZWJDb3Jl
MTlNZWRpYVNlc3Npb25NYW5hZ2VyMTdiZWdpbkludGVycnVwdGlvbkV2CiBfX1pON1dlYkNvcmUx
OU1lZGlhU2Vzc2lvbk1hbmFnZXIxN3JlbW92ZVJlc3RyaWN0aW9uRU5TXzEyTWVkaWFTZXNzaW9u
OU1lZGlhVHlwZUVqCiBfX1pON1dlYkNvcmUxOU1lZGlhU2Vzc2lvbk1hbmFnZXIzMGRpZFJlY2Vp
dmVSZW1vdGVDb250cm9sQ29tbWFuZEVOU18xMk1lZGlhU2Vzc2lvbjI0UmVtb3RlQ29udHJvbENv
bW1hbmRUeXBlRQogX19aTjdXZWJDb3JlMTlNZWRpYVNlc3Npb25NYW5hZ2VyOWFkZENsaWVudEVQ
TlNfMjVNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50RQotX19aTjdXZWJDb3JlMTlQbGF0Zm9ybUNB
QW5pbWF0aW9uMTBzZXRUb1ZhbHVlRVJLTlNfMjBUcmFuc2Zvcm1hdGlvbk1hdHJpeEUKLV9fWk43
V2ViQ29yZTE5UGxhdGZvcm1DQUFuaW1hdGlvbjZjcmVhdGVFUDE5Q0FQcm9wZXJ0eUFuaW1hdGlv
bgotX19aTjdXZWJDb3JlMTlQbGF0Zm9ybUNBQW5pbWF0aW9uRDFFdgogX19aTjdXZWJDb3JlMTlS
ZXNvdXJjZVJlcXVlc3RCYXNlMTFzZXRIVFRQQm9keUVOM1dURjEwUGFzc1JlZlB0cklOU184Rm9y
bURhdGFFRUUKIF9fWk43V2ViQ29yZTE5UmVzb3VyY2VSZXF1ZXN0QmFzZTEzc2V0SFRUUE1ldGhv
ZEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE5UmVzb3VyY2VSZXF1ZXN0QmFzZTE4c2V0
SFRUUEhlYWRlckZpZWxkRVBLY1JLTjNXVEY2U3RyaW5nRQpAQCAtODk5LDEwICs4OTcsMTIgQEAg
X19aTjdXZWJDb3JlMjFtZW1vcnlQcmVzc3VyZUhhbmRsZXJFdgogX19aTjdXZWJDb3JlMjFyZXNv
dXJjZUxvYWRTY2hlZHVsZXJFdgogX19aTjdXZWJDb3JlMjFzZXRHbG9iYWxJY29uRGF0YWJhc2VF
UE5TXzE2SWNvbkRhdGFiYXNlQmFzZUUKIF9fWk43V2ViQ29yZTIxc2V0UGxhdGZvcm1TdHJhdGVn
aWVzRVBOU18xOFBsYXRmb3JtU3RyYXRlZ2llc0UKK19fWk43V2ViQ29yZTIxdG9DQVZhbHVlRnVu
Y3Rpb25UeXBlRU5TXzE5UGxhdGZvcm1DQUFuaW1hdGlvbjE3VmFsdWVGdW5jdGlvblR5cGVFCiBf
X1pON1dlYkNvcmUyMkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQyNHJlc3RhcnRTbmFwc2hvdHRlZFBs
dWdJbkV2CiBfX1pON1dlYkNvcmUyMkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQyOXNldElzUHJpbWFy
eVNuYXBzaG90dGVkUGx1Z0luRWIKIF9fWk43V2ViQ29yZTIyTXV0YWJsZVN0eWxlUHJvcGVydGll
czI1ZW5zdXJlQ1NTU3R5bGVEZWNsYXJhdGlvbkV2CiBfX1pON1dlYkNvcmUyMk11dGFibGVTdHls
ZVByb3BlcnRpZXNEMUV2CitfX1pON1dlYkNvcmUyMlBsYXRmb3JtQ0FBbmltYXRpb25NYWM2Y3Jl
YXRlRVAxOUNBUHJvcGVydHlBbmltYXRpb24KIF9fWk43V2ViQ29yZTIyUnVudGltZUVuYWJsZWRG
ZWF0dXJlczE0c2hhcmVkRmVhdHVyZXNFdgogX19aTjdXZWJDb3JlMjJTY3JpcHRFeGVjdXRpb25D
b250ZXh0MjZjYW5TdXNwZW5kQWN0aXZlRE9NT2JqZWN0c0V2CiBfX1pON1dlYkNvcmUyMlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQydm1FdgpAQCAtOTM4LDYgKzkzOCw3IEBAIF9fWk43V2ViQ29yZTIz
ZGVjb2RlSG9zdE5hbWVXaXRoUmFuZ2VFUDhOU1N0cmluZzhfTlNSYW5nZQogX19aTjdXZWJDb3Jl
MjNlbmNvZGVIb3N0TmFtZVdpdGhSYW5nZUVQOE5TU3RyaW5nOF9OU1JhbmdlCiBfX1pON1dlYkNv
cmUyM2dldEZpbGVNb2RpZmljYXRpb25UaW1lRVJLTjNXVEY2U3RyaW5nRVJsCiBfX1pON1dlYkNv
cmUyM2dldEhvc3RuYW1lc1dpdGhDb29raWVzRVJLTlNfMjFOZXR3b3JrU3RvcmFnZVNlc3Npb25F
Uk4zV1RGN0hhc2hTZXRJTlMzXzZTdHJpbmdFTlMzXzEwU3RyaW5nSGFzaEVOUzNfMTBIYXNoVHJh
aXRzSVM1X0VFRUUKK19fWk43V2ViQ29yZTIzdG9DQU1lZGlhVGltaW5nRnVuY3Rpb25FUEtOU18x
NFRpbWluZ0Z1bmN0aW9uRWIKIF9fWk43V2ViQ29yZTI0Q2FjaGVkUmVzb3VyY2VIYW5kbGVCYXNl
MTFzZXRSZXNvdXJjZUVQTlNfMTRDYWNoZWRSZXNvdXJjZUUKIF9fWk43V2ViQ29yZTI0RG9jdW1l
bnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJzRm9yRVBOU180Tm9kZUVOU18xNERvY3VtZW50TWFy
a2VyMTFNYXJrZXJUeXBlc0UKIF9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
MTNyZW1vdmVNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxMU1hcmtlclR5cGVzRQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggZjIxMmY3
ODExMTA2ZTZiZjI5Nzc2ZTZlZTQzNTFhODhiYmZmM2E5Yy4uNzZlOTQwODkxNjI5NjViOWY5NjAy
ZTRkZDU5YmJiN2NhYzdjYzkzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0xOTExMSw2ICsxOTExMSw3IEBACiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xhdmZvdW5kYXRpb25cSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUFWRi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1c
Z3JhcGhpY3NcY2Fpcm9cVGlsZUNhaXJvLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxwbGF0Zm9ybVxncmFwaGljc1xjYVxQbGF0Zm9ybUNBRmlsdGVycy5oIiAvPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fcd2luXFBsYXRmb3JtQ0FBbmlt
YXRpb25XaW4uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBo
aWNzXGNhXHdpblxQbGF0Zm9ybUNBTGF5ZXJXaW4uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEdMQ29udGV4dC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgi
IC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggNTAzMjBiMmM5ZTgzNzQxZTY2M2U3NTIwZDhlMjZhN2MwYWQyNjdlMC4uOTk4ZGMx
YzE2OGFhYzc5YmE5MmQ2ZDNlNmQ3M2E0NWU4YWQ0Y2JkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA0LDYgKzUwNCw3IEBA
CiAJCTBGNTgwRkFGMTQ5ODAwRDQwMEZCNUJEOCAvKiBBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTgwRkFFMTQ5ODAw
RDQwMEZCNUJEOCAvKiBBbmltYXRpb25VdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjVCN0E1NDEwRjY1RDdBMDAzNzYzMDIgLyog
UmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY1QjdBNTIxMEY2NUQ3QTAwMzc2MzAyIC8qIFJlbmRlckVtYmVkZGVk
T2JqZWN0LmNwcCAqLzsgfTsKIAkJMEY1QjdBNTUxMEY2NUQ3QTAwMzc2MzAyIC8qIFJlbmRlckVt
YmVkZGVkT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjVCN0E1MzEwRjY1RDdBMDAzNzYzMDIgLyogUmVuZGVyRW1iZWRkZWRPYmplY3QuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjVFMjAw
NjE4RTc3MUZDMDAzRUMzRTUgLyogUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1RTIwMDUxOEU3NzFGQzAwM0VD
M0U1IC8qIFBsYXRmb3JtQ0FBbmltYXRpb25NYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjYwNUFFQzE1Rjk0ODQ4MDA0REYwQzAgLyogU2Ny
b2xsaW5nQ29uc3RyYWludHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY2MDVBRUExNUY5NDg0ODAwNERGMEMwIC8qIFNjcm9sbGluZ0NvbnN0cmFp
bnRzLmNwcCAqLzsgfTsKIAkJMEY2MDVBRUQxNUY5NDg0ODAwNERGMEMwIC8qIFNjcm9sbGluZ0Nv
bnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjYwNUFFQjE1Rjk0ODQ4MDA0REYwQzAgLyogU2Nyb2xsaW5nQ29uc3RyYWludHMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjYzODNERDE4
NjE1QjI5MDAzRTVEQjUgLyogVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNjM4M0RCMTg2MTVCMjkwMDNFNURC
NSAvKiBUaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwICovOyB9OwpAQCAtNzMyMCw2ICs3MzIxLDcg
QEAKIAkJMEY1ODBGQUUxNDk4MDBENDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGllcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBBbmltYXRpb25VdGlsaXRpZXMuaDsgcGF0
aCA9IGFuaW1hdGlvbi9BbmltYXRpb25VdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY1QjdBNTIxMEY2NUQ3QTAwMzc2MzAyIC8qIFJlbmRlckVtYmVkZGVkT2JqZWN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckVtYmVkZGVk
T2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1QjdBNTMxMEY2NUQ3
QTAwMzc2MzAyIC8qIFJlbmRlckVtYmVkZGVkT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbmRlckVtYmVkZGVkT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTBGNUUyMDA1MThFNzcxRkMwMDNFQzNFNSAvKiBQbGF0Zm9ybUNBQW5pbWF0aW9u
TWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFBsYXRmb3JtQ0FBbmltYXRp
b25NYWMuaDsgcGF0aCA9IGNhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNjA1QUVBMTVGOTQ4NDgwMDRERjBDMCAvKiBTY3JvbGxp
bmdDb25zdHJhaW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
Y3JvbGxpbmdDb25zdHJhaW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
NjA1QUVCMTVGOTQ4NDgwMDRERjBDMCAvKiBTY3JvbGxpbmdDb25zdHJhaW50cy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdDb25zdHJhaW50cy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjYzODNEQjE4NjE1QjI5MDAzRTVEQjUgLyogVGhyZWFk
ZWRTY3JvbGxpbmdUcmVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFRocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNTU4NCw2ICsxNTU4Niw3IEBACiAJCQkJMjkxN0I1NjUxNDczNDk5NTAwNTJDOUQwIC8qIExh
eWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwICovLAogCQkJCTkzRjcyQUYxMTY2NkVERkMwMDJBMDJC
RCAvKiBMYXllclBvb2wuaCAqLywKIAkJCQk5M0Y3MkFGMjE2NjZFREZDMDAyQTAyQkQgLyogTGF5
ZXJQb29sLm1tICovLAorCQkJCTBGNUUyMDA1MThFNzcxRkMwMDNFQzNFNSAvKiBQbGF0Zm9ybUNB
QW5pbWF0aW9uTWFjLmggKi8sCiAJCQkJNDk1ODc4MUYxMkE1N0RERjAwNzIzOEFDIC8qIFBsYXRm
b3JtQ0FBbmltYXRpb25NYWMubW0gKi8sCiAJCQkJRDY2QjJENUIxODY4MzAwNTAwNzNDNEREIC8q
IFBsYXRmb3JtQ0FGaWx0ZXJzTWFjLmggKi8sCiAJCQkJMEYxMzE2M0YxNkVEMENERTAwMzVDQzA0
IC8qIFBsYXRmb3JtQ0FGaWx0ZXJzTWFjLm1tICovLApAQCAtMjQzNjcsNiArMjQzNzAsNyBAQAog
CQkJCTFBODVCMTkwMEExQjE4QTIwMEQ4Qzg3QyAvKiBKU0hUTUxIdG1sRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkM0OTE4QzkwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTElGcmFtZUVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTJBQTk4MEExQ0REMkQwMEI0MkIyNSAvKiBK
U0hUTUxJbWFnZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNUUyMDA2MThFNzcxRkMw
MDNFQzNFNSAvKiBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
ODBFN0U5NzBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MSW5wdXRFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMUFEMTQyMzEyOTVFQTdGMDBBQ0E5ODkgLyogSlNIVE1MSW5wdXRFbGVtZW50
Q3VzdG9tLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNjE0OEE3OTEyRTQxRTNCMDA0NEE3ODQgLyog
SlNIVE1MS2V5Z2VuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5oCmluZGV4IDYxMTM5OTM0MGMw
YjliMjEzNjU0NTlmMTU3ZWRkMjU1MDIxNThkMTguLjM3NWZmYmIyZWI4ODNlMWE3NDU4NTY3Y2Qz
YWE2YWQ5ZjIzYzQ4MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1h
dGlvbi9UaW1pbmdGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1h
dGlvbi9UaW1pbmdGdW5jdGlvbi5oCkBAIC0zMiw2ICszMiw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIFRpbWluZ0Z1bmN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8VGltaW5nRnVuY3Rp
b24+IHsKIHB1YmxpYzoKIAorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUaW1pbmdGdW5jdGlvbj4g
Y2xvbmUoKSBjb25zdCA9IDA7CisKICAgICBlbnVtIFRpbWluZ0Z1bmN0aW9uVHlwZSB7CiAgICAg
ICAgIExpbmVhckZ1bmN0aW9uLCBDdWJpY0JlemllckZ1bmN0aW9uLCBTdGVwc0Z1bmN0aW9uCiAg
ICAgfTsKQEAgLTY4LDE0ICs3MCwxOSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4g
b3RoZXIuaXNMaW5lYXJUaW1pbmdGdW5jdGlvbigpOwogICAgIH0KLSAgICAKKwogcHJpdmF0ZToK
ICAgICBMaW5lYXJUaW1pbmdGdW5jdGlvbigpCiAgICAgICAgIDogVGltaW5nRnVuY3Rpb24oTGlu
ZWFyRnVuY3Rpb24pCiAgICAgewogICAgIH0KKworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUaW1p
bmdGdW5jdGlvbj4gY2xvbmUoKSBjb25zdCBvdmVycmlkZQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBMaW5lYXJUaW1pbmdGdW5jdGlvbik7CisgICAgfQogfTsKLSAgICAKKwog
Y2xhc3MgQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbiA6IHB1YmxpYyBUaW1pbmdGdW5jdGlvbiB7
CiBwdWJsaWM6CiAgICAgZW51bSBUaW1pbmdGdW5jdGlvblByZXNldCB7CkBAIC0xMzIsNyArMTM5
LDE2IEBAIHB1YmxpYzoKICAgICBkb3VibGUgeDIoKSBjb25zdCB7IHJldHVybiBtX3gyOyB9CiAg
ICAgZG91YmxlIHkyKCkgY29uc3QgeyByZXR1cm4gbV95MjsgfQogICAgIAorICAgIHZvaWQgc2V0
VmFsdWVzKGRvdWJsZSB4MSwgZG91YmxlIHkxLCBkb3VibGUgeDIsIGRvdWJsZSB5MikKKyAgICB7
CisgICAgICAgIG1feDEgPSB4MTsKKyAgICAgICAgbV95MSA9IHkxOworICAgICAgICBtX3gyID0g
eDI7CisgICAgICAgIG1feTIgPSB5MjsKKyAgICB9CisgICAgCiAgICAgVGltaW5nRnVuY3Rpb25Q
cmVzZXQgdGltaW5nRnVuY3Rpb25QcmVzZXQoKSBjb25zdCB7IHJldHVybiBtX3RpbWluZ0Z1bmN0
aW9uUHJlc2V0OyB9CisgICAgdm9pZCBzZXRUaW1pbmdGdW5jdGlvblByZXNldChUaW1pbmdGdW5j
dGlvblByZXNldCBwcmVzZXQpIHsgbV90aW1pbmdGdW5jdGlvblByZXNldCA9IHByZXNldDsgfQog
ICAgIAogICAgIHN0YXRpYyBjb25zdCBDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uKiBkZWZhdWx0
VGltaW5nRnVuY3Rpb24oKQogICAgIHsKQEAgLTE1Niw2ICsxNzIsMTEgQEAgcHJpdmF0ZToKICAg
ICB7CiAgICAgfQogCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiBjbG9u
ZSgpIGNvbnN0IG92ZXJyaWRlCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEN1
YmljQmV6aWVyVGltaW5nRnVuY3Rpb24obV90aW1pbmdGdW5jdGlvblByZXNldCwgbV94MSwgbV95
MSwgbV94MiwgbV95MikpOworICAgIH0KKwogICAgIGRvdWJsZSBtX3gxOwogICAgIGRvdWJsZSBt
X3kxOwogICAgIGRvdWJsZSBtX3gyOwpAQCAtMTY5LDYgKzE5MCwxMCBAQCBwdWJsaWM6CiAgICAg
ewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0ZXBzVGltaW5nRnVuY3Rpb24oc3RlcHMs
IHN0ZXBBdFN0YXJ0KSk7CiAgICAgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0ZXBzVGltaW5n
RnVuY3Rpb24+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0
ZXBzVGltaW5nRnVuY3Rpb24oMSwgdHJ1ZSkpOworICAgIH0KICAgICAKICAgICB2aXJ0dWFsIH5T
dGVwc1RpbWluZ0Z1bmN0aW9uKCkgeyB9CiAgICAgCkBAIC0xODIsNyArMjA3LDEwIEBAIHB1Ymxp
YzoKICAgICB9CiAgICAgCiAgICAgaW50IG51bWJlck9mU3RlcHMoKSBjb25zdCB7IHJldHVybiBt
X3N0ZXBzOyB9CisgICAgdm9pZCBzZXROdW1iZXJPZlN0ZXBzKGludCBzdGVwcykgeyBtX3N0ZXBz
ID0gc3RlcHM7IH0KKwogICAgIGJvb2wgc3RlcEF0U3RhcnQoKSBjb25zdCB7IHJldHVybiBtX3N0
ZXBBdFN0YXJ0OyB9CisgICAgdm9pZCBzZXRTdGVwQXRTdGFydChib29sIHN0ZXBzQXRTdGFydCkg
eyBtX3N0ZXBBdFN0YXJ0ID0gc3RlcHNBdFN0YXJ0OyB9CiAgICAgCiBwcml2YXRlOgogICAgIFN0
ZXBzVGltaW5nRnVuY3Rpb24oaW50IHN0ZXBzLCBib29sIHN0ZXBBdFN0YXJ0KQpAQCAtMTkxLDEx
ICsyMTksMTYgQEAgcHJpdmF0ZToKICAgICAgICAgLCBtX3N0ZXBBdFN0YXJ0KHN0ZXBBdFN0YXJ0
KQogICAgIHsKICAgICB9CisKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGltaW5nRnVuY3Rpb24+
IGNsb25lKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU3RlcHNUaW1pbmdGdW5jdGlvbihtX3N0ZXBzLCBtX3N0ZXBBdFN0YXJ0KSk7CisgICAgfQog
ICAgIAogICAgIGludCBtX3N0ZXBzOwogICAgIGJvb2wgbV9zdGVwQXRTdGFydDsKIH07Ci0gICAg
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFRpbWluZ0Z1bmN0aW9uX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGlj
c0xheWVyQ0EuY3BwCmluZGV4IDE0MzUxMGE0MDcxODQxNjZhMDQzYTY2ZGVhOTVjYTI5N2UyZTc3
NWYuLjA5YjViODk0ZmM3OTU2MGQyMjA5MGJiMmM5NTBiYWU2Y2FmNGYwMmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2lu
Y2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJGYWN0b3J5LmgiCisj
aW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNBRmlsdGVycy5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtQ0FMYXllci5oIgogI2luY2x1ZGUgIlJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bi5oIgpAQCAtNTEsMTEgKzUyLDEzIEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQor
I2luY2x1ZGUgIlBsYXRmb3JtQ0FBbmltYXRpb25NYWMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNB
TGF5ZXJNYWMuaCIKICNpbmNsdWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCiAjZW5kaWYK
IAogI2lmIFBMQVRGT1JNKFdJTikKKyNpbmNsdWRlICJQbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVyV2luLmgiCiAjZW5kaWYKIApAQCAtMzQxLDYgKzM0
NCwxNSBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gR3JhcGhpY3NMYXllckNBOjpjcmVh
dGVQbGF0Zm9ybUNBTGF5ZXIoUGxhdGZvcm1MYXllcgogI2VuZGlmCiB9CiAKK1Bhc3NSZWZQdHI8
UGxhdGZvcm1DQUFuaW1hdGlvbj4gR3JhcGhpY3NMYXllckNBOjpjcmVhdGVQbGF0Zm9ybUNBQW5p
bWF0aW9uKFBsYXRmb3JtQ0FBbmltYXRpb246OkFuaW1hdGlvblR5cGUgdHlwZSwgY29uc3QgU3Ry
aW5nJiBrZXlQYXRoKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHJldHVybiBQbGF0Zm9y
bUNBQW5pbWF0aW9uTWFjOjpjcmVhdGUodHlwZSwga2V5UGF0aCk7CisjZWxpZiBQTEFURk9STShX
SU4pCisgICAgcmV0dXJuIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OmNyZWF0ZSh0eXBlLCBrZXlQ
YXRoKTsKKyNlbmRpZgorfQorCiBHcmFwaGljc0xheWVyQ0E6OkdyYXBoaWNzTGF5ZXJDQShHcmFw
aGljc0xheWVyQ2xpZW50KiBjbGllbnQpCiAgICAgOiBHcmFwaGljc0xheWVyKGNsaWVudCkKICAg
ICAsIG1fY29udGVudHNMYXllclB1cnBvc2UoTm9Db250ZW50c0xheWVyKQpAQCAtNzg3LDE4ICs3
OTksMjQgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNob3VsZFJlcGFpbnRPblNpemVDaGFuZ2Uo
KSBjb25zdAogICAgIHJldHVybiBkcmF3c0NvbnRlbnQoKSAmJiAhdGlsZWRCYWNraW5nKCk7CiB9
CiAKLWJvb2wgR3JhcGhpY3NMYXllckNBOjphZGRBbmltYXRpb24oY29uc3QgS2V5ZnJhbWVWYWx1
ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgRmxvYXRTaXplJiBib3hTaXplLCBjb25zdCBBbmltYXRp
b24qIGFuaW0sIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIHRpbWVPZmZzZXQp
Citib29sIEdyYXBoaWNzTGF5ZXJDQTo6YW5pbWF0aW9uQ2FuQmVBY2NlbGVyYXRlZChjb25zdCBL
ZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBBbmltYXRpb24qIGFuaW0pIGNvbnN0
CiB7Ci0gICAgQVNTRVJUKCFhbmltYXRpb25OYW1lLmlzRW1wdHkoKSk7Ci0KICAgICBpZiAoIWFu
aW0gfHwgYW5pbS0+aXNFbXB0eU9yWmVyb0R1cmF0aW9uKCkgfHwgdmFsdWVMaXN0LnNpemUoKSA8
IDIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIC8vIENvcmVBbmltYXRpb24gZG9lcyBu
b3QgaGFuZGxlIHRoZSBzdGVwcygpIHRpbWluZyBmdW5jdGlvbi4gRmFsbCBiYWNrCi0gICAgLy8g
dG8gc29mdHdhcmUgYW5pbWF0aW9uIGluIHRoYXQgY2FzZS4KICAgICBpZiAoYW5pbWF0aW9uSGFz
U3RlcHNUaW1pbmdGdW5jdGlvbih2YWx1ZUxpc3QsIGFuaW0pKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBHcmFwaGljc0xheWVyQ0E6OmFkZEFu
aW1hdGlvbihjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBGbG9hdFNp
emUmIGJveFNpemUsIGNvbnN0IEFuaW1hdGlvbiogYW5pbSwgY29uc3QgU3RyaW5nJiBhbmltYXRp
b25OYW1lLCBkb3VibGUgdGltZU9mZnNldCkKK3sKKyAgICBBU1NFUlQoIWFuaW1hdGlvbk5hbWUu
aXNFbXB0eSgpKTsKKworICAgIGlmICghYW5pbWF0aW9uQ2FuQmVBY2NlbGVyYXRlZCh2YWx1ZUxp
c3QsIGFuaW0pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBib29sIGNyZWF0ZWRBbmlt
YXRpb25zID0gZmFsc2U7CiAgICAgaWYgKHZhbHVlTGlzdC5wcm9wZXJ0eSgpID09IEFuaW1hdGVk
UHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pCiAgICAgICAgIGNyZWF0ZWRBbmltYXRpb25zID0gY3Jl
YXRlVHJhbnNmb3JtQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXModmFsdWVMaXN0LCBhbmltLCBhbmlt
YXRpb25OYW1lLCB0aW1lT2Zmc2V0LCBib3hTaXplKTsKQEAgLTI1NjIsMTQgKzI1ODAsMTQgQEAg
Ym9vbCBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUZpbHRlckFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVz
KGNvbnN0IEtleWZyYW1lVmFsdWVMaXMKIAogUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9u
PiBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUJhc2ljQW5pbWF0aW9uKGNvbnN0IEFuaW1hdGlvbiog
YW5pbSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIGFkZGl0aXZlKQogewotICAgIFJlZlB0
cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBiYXNpY0FuaW0gPSBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpj
cmVhdGUoUGxhdGZvcm1DQUFuaW1hdGlvbjo6QmFzaWMsIGtleVBhdGgpOworICAgIFJlZlB0cjxQ
bGF0Zm9ybUNBQW5pbWF0aW9uPiBiYXNpY0FuaW0gPSBjcmVhdGVQbGF0Zm9ybUNBQW5pbWF0aW9u
KFBsYXRmb3JtQ0FBbmltYXRpb246OkJhc2ljLCBrZXlQYXRoKTsKICAgICBzZXR1cEFuaW1hdGlv
bihiYXNpY0FuaW0uZ2V0KCksIGFuaW0sIGFkZGl0aXZlKTsKICAgICByZXR1cm4gYmFzaWNBbmlt
OwogfQogCiBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+R3JhcGhpY3NMYXllckNBOjpj
cmVhdGVLZXlmcmFtZUFuaW1hdGlvbihjb25zdCBBbmltYXRpb24qIGFuaW0sIGNvbnN0IFN0cmlu
ZyYga2V5UGF0aCwgYm9vbCBhZGRpdGl2ZSkKIHsKLSAgICBSZWZQdHI8UGxhdGZvcm1DQUFuaW1h
dGlvbj4ga2V5ZnJhbWVBbmltID0gUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y3JlYXRlKFBsYXRmb3Jt
Q0FBbmltYXRpb246OktleWZyYW1lLCBrZXlQYXRoKTsKKyAgICBSZWZQdHI8UGxhdGZvcm1DQUFu
aW1hdGlvbj4ga2V5ZnJhbWVBbmltID0gY3JlYXRlUGxhdGZvcm1DQUFuaW1hdGlvbihQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpLZXlmcmFtZSwga2V5UGF0aCk7CiAgICAgc2V0dXBBbmltYXRpb24oa2V5
ZnJhbWVBbmltLmdldCgpLCBhbmltLCBhZGRpdGl2ZSk7CiAgICAgcmV0dXJuIGtleWZyYW1lQW5p
bTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3Jh
cGhpY3NMYXllckNBLmgKaW5kZXggMmE0M2QxZmM1OGI1NDEwY2Y4OTU4ZjMwNjA2ODg4N2JkZmQ3
ZmIwZi4uNTQwZTRkM2E5Y2VjNTkyMTNhMTYzZjUwY2I1ZGVmYjAzZGEzZGUzYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmgKQEAgLTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgR3JhcGhpY3NMYXllckNBX2gKIAogI2luY2x1
ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKLSNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtQ0FBbmltYXRpb24uaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNBTGF5ZXIuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaCIKQEAgLTQyLDYgKzQxLDcgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitjbGFzcyBJbWFnZTsKIGNsYXNzIFRyYW5zZm9ybVN0YXRlOwogCiBjbGFz
cyBHcmFwaGljc0xheWVyQ0EgOiBwdWJsaWMgR3JhcGhpY3NMYXllciwgcHVibGljIFBsYXRmb3Jt
Q0FMYXllckNsaWVudCB7CkBAIC0xNzAsNiArMTcwLDggQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6
CiAgICAgdmlydHVhbCB2b2lkIHNldE9wYWNpdHlJbnRlcm5hbChmbG9hdCk7CisgICAgCisgICAg
Ym9vbCBhbmltYXRpb25DYW5CZUFjY2VsZXJhdGVkKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0Jiwg
Y29uc3QgQW5pbWF0aW9uKikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlz
R3JhcGhpY3NMYXllckNBKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtMjEyLDYgKzIxNCw3
IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBj
cmVhdGVQbGF0Zm9ybUNBTGF5ZXIoUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGUsIFBsYXRmb3Jt
Q0FMYXllckNsaWVudCogb3duZXIpOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9ybUNB
TGF5ZXI+IGNyZWF0ZVBsYXRmb3JtQ0FMYXllcihQbGF0Zm9ybUxheWVyKiwgUGxhdGZvcm1DQUxh
eWVyQ2xpZW50KiBvd25lcik7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmlt
YXRpb24+IGNyZWF0ZVBsYXRmb3JtQ0FBbmltYXRpb24oUGxhdGZvcm1DQUFuaW1hdGlvbjo6QW5p
bWF0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKTsKIAogICAgIFBsYXRmb3JtQ0FMYXll
ciogcHJpbWFyeUxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9zdHJ1Y3R1cmFsTGF5ZXIuZ2V0KCkg
PyBtX3N0cnVjdHVyYWxMYXllci5nZXQoKSA6IG1fbGF5ZXIuZ2V0KCk7IH0KICAgICBQbGF0Zm9y
bUNBTGF5ZXIqIGhvc3RMYXllckZvclN1YmxheWVycygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5o
CmluZGV4IDI2MDQ4MWNjMzgzZjk5YzZjZGJlOTIyODMyOTVjMDljMzdhNTM5ZWEuLjg5NjYyNGNk
MTY5NGYwNDA2OGZjZWMzZjA4ZmQ5ZjQ0YmEyYmM0ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmltYXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmgKQEAg
LTMxLDEzNiArMzEsMTE5IEBACiAjaW5jbHVkZSAiRmxvYXRQb2ludDNELmgiCiAjaW5jbHVkZSAi
VHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKLSNpZiBQ
TEFURk9STShDT0NPQSkKLU9CSkNfQ0xBU1MgQ0FQcm9wZXJ0eUFuaW1hdGlvbjsKLXR5cGVkZWYg
Q0FQcm9wZXJ0eUFuaW1hdGlvbiogUGxhdGZvcm1BbmltYXRpb25SZWY7Ci0jZWxpZiBQTEFURk9S
TShXSU4pCi10eXBlZGVmIHN0cnVjdCBfQ0FDRkFuaW1hdGlvbiogQ0FDRkFuaW1hdGlvblJlZjsK
LXR5cGVkZWYgQ0FDRkFuaW1hdGlvblJlZiBQbGF0Zm9ybUFuaW1hdGlvblJlZjsKLSNlbmRpZgot
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZsb2F0UmVjdDsKLWNsYXNzIFBsYXRmb3Jt
Q0FBbmltYXRpb247CiBjbGFzcyBUaW1pbmdGdW5jdGlvbjsKIAogY2xhc3MgUGxhdGZvcm1DQUFu
aW1hdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFBsYXRmb3JtQ0FBbmltYXRpb24+IHsKIHB1Ymxp
YzoKLSAgICBmcmllbmQgY2xhc3MgUGxhdGZvcm1DQUxheWVyOwotI2lmIFBMQVRGT1JNKENPQ09B
KQotICAgIGZyaWVuZCBjbGFzcyBQbGF0Zm9ybUNBTGF5ZXJNYWM7Ci0jZWxpZiBQTEFURk9STShX
SU4pCi0gICAgZnJpZW5kIGNsYXNzIFBsYXRmb3JtQ0FMYXllcldpbjsKLSNlbmRpZgotICAgIAog
ICAgIGVudW0gQW5pbWF0aW9uVHlwZSB7IEJhc2ljLCBLZXlmcmFtZSB9OwogICAgIGVudW0gRmls
bE1vZGVUeXBlIHsgTm9GaWxsTW9kZSwgRm9yd2FyZHMsIEJhY2t3YXJkcywgQm90aCB9OwogICAg
IGVudW0gVmFsdWVGdW5jdGlvblR5cGUgeyBOb1ZhbHVlRnVuY3Rpb24sIFJvdGF0ZVgsIFJvdGF0
ZVksIFJvdGF0ZVosIFNjYWxlWCwgU2NhbGVZLCBTY2FsZVosIFNjYWxlLCBUcmFuc2xhdGVYLCBU
cmFuc2xhdGVZLCBUcmFuc2xhdGVaLCBUcmFuc2xhdGUgfTsKIAotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGNyZWF0ZShBbmltYXRpb25UeXBlLCBjb25zdCBTdHJp
bmcmIGtleVBhdGgpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+
IGNyZWF0ZShQbGF0Zm9ybUFuaW1hdGlvblJlZik7CisgICAgdmlydHVhbCB+UGxhdGZvcm1DQUFu
aW1hdGlvbigpIHsgfQogCi0gICAgflBsYXRmb3JtQ0FBbmltYXRpb24oKTsKKyAgICB2aXJ0dWFs
IGJvb2wgaXNQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaXNQbGF0Zm9ybUNBQW5pbWF0aW9uV2luKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3Rl
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAKLSAgICBQYXNzUmVmUHRyPFBsYXRmb3Jt
Q0FBbmltYXRpb24+IGNvcHkoKSBjb25zdDsKLQotICAgIFBsYXRmb3JtQW5pbWF0aW9uUmVmIHBs
YXRmb3JtQW5pbWF0aW9uKCkgY29uc3Q7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBsYXRmb3Jt
Q0FBbmltYXRpb24+IGNvcHkoKSBjb25zdCA9IDA7CiAgICAgCiAgICAgQW5pbWF0aW9uVHlwZSBh
bmltYXRpb25UeXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9Ci0gICAgU3RyaW5nIGtleVBh
dGgoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFN0cmluZyBrZXlQYXRoKCkgY29uc3QgPSAwOwogICAg
IAotICAgIENGVGltZUludGVydmFsIGJlZ2luVGltZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0QmVn
aW5UaW1lKENGVGltZUludGVydmFsKTsKKyAgICB2aXJ0dWFsIENGVGltZUludGVydmFsIGJlZ2lu
VGltZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QmVnaW5UaW1lKENGVGltZUlu
dGVydmFsKSA9IDA7CiAgICAgCi0gICAgQ0ZUaW1lSW50ZXJ2YWwgZHVyYXRpb24oKSBjb25zdDsK
LSAgICB2b2lkIHNldER1cmF0aW9uKENGVGltZUludGVydmFsKTsKKyAgICB2aXJ0dWFsIENGVGlt
ZUludGVydmFsIGR1cmF0aW9uKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXREdXJh
dGlvbihDRlRpbWVJbnRlcnZhbCkgPSAwOwogICAgIAotICAgIGZsb2F0IHNwZWVkKCkgY29uc3Q7
Ci0gICAgdm9pZCBzZXRTcGVlZChmbG9hdCk7CisgICAgdmlydHVhbCBmbG9hdCBzcGVlZCgpIGNv
bnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U3BlZWQoZmxvYXQpID0gMDsKIAotICAgIENG
VGltZUludGVydmFsIHRpbWVPZmZzZXQoKSBjb25zdDsKLSAgICB2b2lkIHNldFRpbWVPZmZzZXQo
Q0ZUaW1lSW50ZXJ2YWwpOworICAgIHZpcnR1YWwgQ0ZUaW1lSW50ZXJ2YWwgdGltZU9mZnNldCgp
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGltZU9mZnNldChDRlRpbWVJbnRlcnZh
bCkgPSAwOwogCi0gICAgZmxvYXQgcmVwZWF0Q291bnQoKSBjb25zdDsKLSAgICB2b2lkIHNldFJl
cGVhdENvdW50KGZsb2F0KTsKKyAgICB2aXJ0dWFsIGZsb2F0IHJlcGVhdENvdW50KCkgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRSZXBlYXRDb3VudChmbG9hdCkgPSAwOwogCi0gICAg
Ym9vbCBhdXRvcmV2ZXJzZXMoKSBjb25zdDsKLSAgICB2b2lkIHNldEF1dG9yZXZlcnNlcyhib29s
KTsKKyAgICB2aXJ0dWFsIGJvb2wgYXV0b3JldmVyc2VzKCkgY29uc3QgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzZXRBdXRvcmV2ZXJzZXMoYm9vbCkgPSAwOwogCi0gICAgRmlsbE1vZGVUeXBlIGZp
bGxNb2RlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRGaWxsTW9kZShGaWxsTW9kZVR5cGUpOworICAg
IHZpcnR1YWwgRmlsbE1vZGVUeXBlIGZpbGxNb2RlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBzZXRGaWxsTW9kZShGaWxsTW9kZVR5cGUpID0gMDsKICAgICAKLSAgICB2b2lkIHNldFRp
bWluZ0Z1bmN0aW9uKGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiwgYm9vbCByZXZlcnNlID0gZmFsc2Up
OwotICAgIHZvaWQgY29weVRpbWluZ0Z1bmN0aW9uRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0
aW9uKik7CisgICAgdmlydHVhbCB2b2lkIHNldFRpbWluZ0Z1bmN0aW9uKGNvbnN0IFRpbWluZ0Z1
bmN0aW9uKiwgYm9vbCByZXZlcnNlID0gZmFsc2UpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29w
eVRpbWluZ0Z1bmN0aW9uRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgPSAwOwogCi0g
ICAgYm9vbCBpc1JlbW92ZWRPbkNvbXBsZXRpb24oKSBjb25zdDsKLSAgICB2b2lkIHNldFJlbW92
ZWRPbkNvbXBsZXRpb24oYm9vbCk7CisgICAgdmlydHVhbCBib29sIGlzUmVtb3ZlZE9uQ29tcGxl
dGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVtb3ZlZE9uQ29tcGxldGlv
bihib29sKSA9IDA7CiAKLSAgICBib29sIGlzQWRkaXRpdmUoKSBjb25zdDsKLSAgICB2b2lkIHNl
dEFkZGl0aXZlKGJvb2wpOworICAgIHZpcnR1YWwgYm9vbCBpc0FkZGl0aXZlKCkgY29uc3QgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBzZXRBZGRpdGl2ZShib29sKSA9IDA7CiAKLSAgICBWYWx1ZUZ1
bmN0aW9uVHlwZSB2YWx1ZUZ1bmN0aW9uKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRWYWx1ZUZ1bmN0
aW9uKFZhbHVlRnVuY3Rpb25UeXBlKTsKKyAgICB2aXJ0dWFsIFZhbHVlRnVuY3Rpb25UeXBlIHZh
bHVlRnVuY3Rpb24oKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlRnVuY3Rp
b24oVmFsdWVGdW5jdGlvblR5cGUpID0gMDsKIAogICAgIC8vIEJhc2ljLWFuaW1hdGlvbiBwcm9w
ZXJ0aWVzLgotICAgIHZvaWQgc2V0RnJvbVZhbHVlKGZsb2F0KTsKLSAgICB2b2lkIHNldEZyb21W
YWx1ZShjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwotICAgIHZvaWQgc2V0
RnJvbVZhbHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYpOwotICAgIHZvaWQgc2V0RnJvbVZhbHVlKGNv
bnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShmbG9h
dCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6VHJh
bnNmb3JtYXRpb25NYXRyaXgmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShj
b25zdCBGbG9hdFBvaW50M0QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShj
b25zdCBXZWJDb3JlOjpDb2xvciYpID0gMDsKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0gICAg
dm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiwgaW50IGludGVybmFsRmls
dGVyUHJvcGVydHlJbmRleCk7CisgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShjb25zdCBG
aWx0ZXJPcGVyYXRpb24qLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KSA9IDA7CiAj
ZW5kaWYKLSAgICB2b2lkIGNvcHlGcm9tVmFsdWVGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRp
b24qKTsKKyAgICB2aXJ0dWFsIHZvaWQgY29weUZyb21WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1D
QUFuaW1hdGlvbiopID0gMDsKIAotICAgIHZvaWQgc2V0VG9WYWx1ZShmbG9hdCk7Ci0gICAgdm9p
ZCBzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jik7Ci0gICAg
dm9pZCBzZXRUb1ZhbHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYpOwotICAgIHZvaWQgc2V0VG9WYWx1
ZShjb25zdCBXZWJDb3JlOjpDb2xvciYpOworICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGZs
b2F0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3QgV2ViQ29yZTo6VHJh
bnNmb3JtYXRpb25NYXRyaXgmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoY29u
c3QgRmxvYXRQb2ludDNEJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0
IFdlYkNvcmU6OkNvbG9yJikgPSAwOwogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSAgICB2b2lk
IHNldFRvVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiwgaW50IGludGVybmFsRmlsdGVyUHJv
cGVydHlJbmRleCk7CisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3QgRmlsdGVyT3Bl
cmF0aW9uKiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgPSAwOwogI2VuZGlmCi0g
ICAgdm9pZCBjb3B5VG9WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopOworICAg
IHZpcnR1YWwgdm9pZCBjb3B5VG9WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiop
ID0gMDsKIAogICAgIC8vIEtleWZyYW1lLWFuaW1hdGlvbiBwcm9wZXJ0aWVzLgotICAgIHZvaWQg
c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mKTsKLSAgICB2b2lkIHNldFZhbHVlcyhjb25z
dCBWZWN0b3I8V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg+Jik7Ci0gICAgdm9pZCBzZXRW
YWx1ZXMoY29uc3QgVmVjdG9yPEZsb2F0UG9pbnQzRD4mKTsKLSAgICB2b2lkIHNldFZhbHVlcyhj
b25zdCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+Jik7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVl
cyhjb25zdCBWZWN0b3I8ZmxvYXQ+JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMo
Y29uc3QgVmVjdG9yPFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxGbG9hdFBvaW50M0Q+JikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbG9yPiYp
ID0gMDsKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0gICAgdm9pZCBzZXRWYWx1ZXMoY29uc3Qg
VmVjdG9yPFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+PiYsIGludCBpbnRlcm5hbEZpbHRlclByb3Bl
cnR5SW5kZXgpOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFJlZlB0
cjxGaWx0ZXJPcGVyYXRpb24+PiYsIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpID0g
MDsKICNlbmRpZgotICAgIHZvaWQgY29weVZhbHVlc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1h
dGlvbiopOworICAgIHZpcnR1YWwgdm9pZCBjb3B5VmFsdWVzRnJvbShjb25zdCBQbGF0Zm9ybUNB
QW5pbWF0aW9uKikgPSAwOwogCi0gICAgdm9pZCBzZXRLZXlUaW1lcyhjb25zdCBWZWN0b3I8Zmxv
YXQ+Jik7Ci0gICAgdm9pZCBjb3B5S2V5VGltZXNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRp
b24qKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0S2V5VGltZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29weUtleVRpbWVzRnJvbShjb25zdCBQbGF0Zm9ybUNB
QW5pbWF0aW9uKikgPSAwOwogCi0gICAgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVj
dG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4mLCBib29sIHJldmVyc2UgPSBmYWxzZSk7Ci0gICAg
dm9pZCBjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKik7
CisgICAgdmlydHVhbCB2b2lkIHNldFRpbWluZ0Z1bmN0aW9ucyhjb25zdCBWZWN0b3I8Y29uc3Qg
VGltaW5nRnVuY3Rpb24qPiYsIGJvb2wgcmV2ZXJzZSA9IGZhbHNlKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGNvcHlUaW1pbmdGdW5jdGlvbnNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24q
KSA9IDA7CiAKIHByb3RlY3RlZDoKLSAgICBQbGF0Zm9ybUNBQW5pbWF0aW9uKEFuaW1hdGlvblR5
cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCk7Ci0gICAgUGxhdGZvcm1DQUFuaW1hdGlvbihQbGF0
Zm9ybUFuaW1hdGlvblJlZik7CisgICAgUGxhdGZvcm1DQUFuaW1hdGlvbihBbmltYXRpb25UeXBl
IHR5cGUgPSBCYXNpYykKKyAgICAgICAgOiBtX3R5cGUodHlwZSkKKyAgICB7CisgICAgfQogCiAg
ICAgdm9pZCBzZXRBY3R1YWxTdGFydFRpbWVJZk5lZWRlZChDRlRpbWVJbnRlcnZhbCB0KQogICAg
IHsKICAgICAgICAgaWYgKGJlZ2luVGltZSgpIDw9IDApCiAgICAgICAgICAgICBzZXRCZWdpblRp
bWUodCk7CiAgICAgfQorICAgIAorICAgIHZvaWQgc2V0VHlwZShBbmltYXRpb25UeXBlIHR5cGUp
IHsgbV90eXBlID0gdHlwZTsgfQogCiBwcml2YXRlOgogICAgIEFuaW1hdGlvblR5cGUgbV90eXBl
OwotICAgIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFJldGFpblB0cjxDQVByb3BlcnR5QW5p
bWF0aW9uPiBtX2FuaW1hdGlvbjsKLSNlbGlmIFBMQVRGT1JNKFdJTikKLSAgICBSZXRhaW5QdHI8
Q0FDRkFuaW1hdGlvblJlZj4gbV9hbmltYXRpb247Ci0jZW5kaWYKIH07CiAKKyNkZWZpbmUgUExB
VEZPUk1fQ0FBTklNQVRJT05fVFlQRV9DQVNUUyhUb1ZhbHVlVHlwZU5hbWUsIHByZWRpY2F0ZSkg
XAorICAgIFRZUEVfQ0FTVFNfQkFTRShUb1ZhbHVlVHlwZU5hbWUsIFdlYkNvcmU6OlBsYXRmb3Jt
Q0FBbmltYXRpb24sIG9iamVjdCwgb2JqZWN0LT5wcmVkaWNhdGUsIG9iamVjdC5wcmVkaWNhdGUp
CisKIH0KIAogI2VuZGlmIC8vIFBsYXRmb3JtQ0FBbmltYXRpb25faApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaAppbmRleCA4
MWRiNzEyMTZiM2ZlNjExMWJiNjNjMzY3ZTgwM2EwMWRhNzBhNDU4Li4xZTAwNjgzMDQxNjZlNTU3
MTRkZTJjZjJjMDQ4OGZlZGY0MjkwOGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaApAQCAtMjYsOSArMjYsNyBAQAog
I2lmbmRlZiBQbGF0Zm9ybUNBTGF5ZXJfaAogI2RlZmluZSBQbGF0Zm9ybUNBTGF5ZXJfaAogCi0j
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgot
I2luY2x1ZGUgIlBsYXRmb3JtQ0FBbmltYXRpb24uaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNBTGF5
ZXJDbGllbnQuaCIKICNpbmNsdWRlIDxRdWFydHpDb3JlL0NBQmFzZS5oPgogI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgpAQCAtNDIsOSArNDAsMTQgQEAKIAogT0JKQ19DTEFTUyBBVlBsYXll
ckxheWVyOwogCisjaWYgUExBVEZPUk0oQ09DT0EpCit0eXBlZGVmIHN0cnVjdCBDR0NvbnRleHQg
KkNHQ29udGV4dFJlZjsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFBs
YXRmb3JtQ0FMYXllcjsKK2NsYXNzIFBsYXRmb3JtQ0FBbmltYXRpb247CiAKIHR5cGVkZWYgVmVj
dG9yPFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+PiBQbGF0Zm9ybUNBTGF5ZXJMaXN0OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1D
QUFuaW1hdGlvbk1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFj
L1BsYXRmb3JtQ0FBbmltYXRpb25NYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDBjYTcyY2E0NTJiYTk0Mzlh
MzI1YTc5ZmIxY2ZiMTVjZTljYTU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMuaApAQCAtMCww
ICsxLDEzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaWZuZGVmIFBsYXRmb3JtQ0FBbmltYXRpb25NYWNfaAorI2RlZmluZSBQbGF0Zm9ybUNBQW5p
bWF0aW9uTWFjX2gKKworI2luY2x1ZGUgIlBsYXRmb3JtQ0FBbmltYXRpb24uaCIKKyNpbmNsdWRl
IDx3dGYvUmV0YWluUHRyLmg+CisKK09CSkNfQ0xBU1MgQ0FQcm9wZXJ0eUFuaW1hdGlvbjsKK09C
SkNfQ0xBU1MgTlNTdHJpbmc7CitPQkpDX0NMQVNTIENBTWVkaWFUaW1pbmdGdW5jdGlvbjsKK3R5
cGVkZWYgQ0FQcm9wZXJ0eUFuaW1hdGlvbiogUGxhdGZvcm1BbmltYXRpb25SZWY7CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworTlNTdHJpbmcqIHRvQ0FGaWxsTW9kZVR5cGUoUGxhdGZvcm1DQUFu
aW1hdGlvbjo6RmlsbE1vZGVUeXBlKTsKK05TU3RyaW5nKiB0b0NBVmFsdWVGdW5jdGlvblR5cGUo
UGxhdGZvcm1DQUFuaW1hdGlvbjo6VmFsdWVGdW5jdGlvblR5cGUpOworQ0FNZWRpYVRpbWluZ0Z1
bmN0aW9uKiB0b0NBTWVkaWFUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiosIGJv
b2wgcmV2ZXJzZSk7CisKK2NsYXNzIFBsYXRmb3JtQ0FBbmltYXRpb25NYWMgZmluYWwgOiBwdWJs
aWMgUGxhdGZvcm1DQUFuaW1hdGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
UGxhdGZvcm1DQUFuaW1hdGlvbj4gY3JlYXRlKEFuaW1hdGlvblR5cGUsIGNvbnN0IFN0cmluZyYg
a2V5UGF0aCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY3Jl
YXRlKFBsYXRmb3JtQW5pbWF0aW9uUmVmKTsKKworICAgIHZpcnR1YWwgflBsYXRmb3JtQ0FBbmlt
YXRpb25NYWMoKTsKKworICAgIHZpcnR1YWwgYm9vbCBpc1BsYXRmb3JtQ0FBbmltYXRpb25NYWMo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisKKyAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY29weSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgUGxh
dGZvcm1BbmltYXRpb25SZWYgcGxhdGZvcm1BbmltYXRpb24oKSBjb25zdDsKKyAgICAKKyAgICB2
aXJ0dWFsIFN0cmluZyBrZXlQYXRoKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgCisgICAgdmlydHVh
bCBDRlRpbWVJbnRlcnZhbCBiZWdpblRpbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0QmVnaW5UaW1lKENGVGltZUludGVydmFsKSBvdmVycmlkZTsKKyAgICAKKyAgICB2
aXJ0dWFsIENGVGltZUludGVydmFsIGR1cmF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHNldER1cmF0aW9uKENGVGltZUludGVydmFsKSBvdmVycmlkZTsKKyAgICAKKyAg
ICB2aXJ0dWFsIGZsb2F0IHNwZWVkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHNldFNwZWVkKGZsb2F0KSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgQ0ZUaW1lSW50ZXJ2YWwg
dGltZU9mZnNldCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRUaW1lT2Zm
c2V0KENGVGltZUludGVydmFsKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgZmxvYXQgcmVwZWF0
Q291bnQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVwZWF0Q291bnQo
ZmxvYXQpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBib29sIGF1dG9yZXZlcnNlcygpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRBdXRvcmV2ZXJzZXMoYm9vbCkgb3ZlcnJp
ZGU7CisKKyAgICB2aXJ0dWFsIEZpbGxNb2RlVHlwZSBmaWxsTW9kZSgpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBzZXRGaWxsTW9kZShGaWxsTW9kZVR5cGUpIG92ZXJyaWRlOwor
ICAgIAorICAgIHZpcnR1YWwgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5j
dGlvbiosIGJvb2wgcmV2ZXJzZSA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvcHlUaW1p
bmdGdW5jdGlvbkZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOworCisg
ICAgdmlydHVhbCBib29sIGlzUmVtb3ZlZE9uQ29tcGxldGlvbigpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRSZW1vdmVkT25Db21wbGV0aW9uKGJvb2wpIG92ZXJyaWRlOwor
CisgICAgdmlydHVhbCBib29sIGlzQWRkaXRpdmUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0QWRkaXRpdmUoYm9vbCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIFZhbHVl
RnVuY3Rpb25UeXBlIHZhbHVlRnVuY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0VmFsdWVGdW5jdGlvbihWYWx1ZUZ1bmN0aW9uVHlwZSkgb3ZlcnJpZGU7CisKKyAg
ICAvLyBCYXNpYy1hbmltYXRpb24gcHJvcGVydGllcy4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJv
bVZhbHVlKGZsb2F0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNv
bnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHNldEZyb21WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgb3ZlcnJpZGU7
CisjaWYgRU5BQkxFKENTU19GSUxURVJTKQorICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUo
Y29uc3QgRmlsdGVyT3BlcmF0aW9uKiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkg
b3ZlcnJpZGU7CisjZW5kaWYKKyAgICB2aXJ0dWFsIHZvaWQgY29weUZyb21WYWx1ZUZyb20oY29u
c3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIHNl
dFRvVmFsdWUoZmxvYXQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNv
bnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHNldFRvVmFsdWUoY29uc3QgRmxvYXRQb2ludDNEJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVycmlkZTsKKyNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3Qg
RmlsdGVyT3BlcmF0aW9uKiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgb3ZlcnJp
ZGU7CisjZW5kaWYKKyAgICB2aXJ0dWFsIHZvaWQgY29weVRvVmFsdWVGcm9tKGNvbnN0IFBsYXRm
b3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKKworICAgIC8vIEtleWZyYW1lLWFuaW1hdGlvbiBw
cm9wZXJ0aWVzLgorICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPGZsb2F0
PiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdl
YkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPEZsb2F0UG9pbnQzRD4mKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb2xvcj4mKSBvdmVy
cmlkZTsKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVl
cyhjb25zdCBWZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4+JiwgaW50IGludGVybmFsRmls
dGVyUHJvcGVydHlJbmRleCkgb3ZlcnJpZGU7CisjZW5kaWYKKyAgICB2aXJ0dWFsIHZvaWQgY29w
eVZhbHVlc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOworCisgICAg
dmlydHVhbCB2b2lkIHNldEtleVRpbWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgY29weUtleVRpbWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0
aW9uKikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGltaW5nRnVuY3Rpb25zKGNv
bnN0IFZlY3Rvcjxjb25zdCBUaW1pbmdGdW5jdGlvbio+JiwgYm9vbCByZXZlcnNlID0gZmFsc2Up
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShjb25z
dCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CisKK3Byb3RlY3RlZDoKKyAgICBQbGF0
Zm9ybUNBQW5pbWF0aW9uTWFjKEFuaW1hdGlvblR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCk7
CisgICAgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYyhQbGF0Zm9ybUFuaW1hdGlvblJlZik7CisKK3By
aXZhdGU6CisgICAgUmV0YWluUHRyPENBUHJvcGVydHlBbmltYXRpb24+IG1fYW5pbWF0aW9uOwor
fTsKKworUExBVEZPUk1fQ0FBTklNQVRJT05fVFlQRV9DQVNUUyhQbGF0Zm9ybUNBQW5pbWF0aW9u
TWFjLCBpc1BsYXRmb3JtQ0FBbmltYXRpb25NYWMoKSkKKworfQorCisjZW5kaWYgLy8gUGxhdGZv
cm1DQUFuaW1hdGlvbk1hY19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLm1tCmluZGV4
IGMwN2M3YWM2MjE3MzlhYjNiNDMzZTUwNWQ5NDllMzljYzg1NzRhMTMuLjJlYTI4NmFmMDE0ZjU2
NjgxYmIyZGNhZjFlNmM3ZTIyYWVkNDNjZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9u
TWFjLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yNSw3ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2ltcG9ydCAiUGxhdGZv
cm1DQUFuaW1hdGlvbi5oIgorI2ltcG9ydCAiUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5oIgogCiAj
aW1wb3J0ICJGbG9hdENvbnZlcnNpb24uaCIKICNpbXBvcnQgIlBsYXRmb3JtQ0FGaWx0ZXJzLmgi
CkBAIC00MCwxNSArNDAsMTUgQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgV0tOb25aZXJvQmVn
aW5UaW1lRmxhZyA9IEAiV0tQbGF0Zm9ybUNBQW5pbWF0aW9uTm9uWmVyb0IKIAogc3RhdGljIGJv
b2wgaGFzTm9uWmVyb0JlZ2luVGltZUZsYWcoY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogYW5p
bWF0aW9uKQogewotICAgIHJldHVybiBbW2FuaW1hdGlvbi0+cGxhdGZvcm1BbmltYXRpb24oKSB2
YWx1ZUZvcktleTpXS05vblplcm9CZWdpblRpbWVGbGFnXSBib29sVmFsdWVdOworICAgIHJldHVy
biBbW3RvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYyhhbmltYXRpb24pLT5wbGF0Zm9ybUFuaW1hdGlv
bigpIHZhbHVlRm9yS2V5OldLTm9uWmVyb0JlZ2luVGltZUZsYWddIGJvb2xWYWx1ZV07CiB9CiAK
IHN0YXRpYyB2b2lkIHNldE5vblplcm9CZWdpblRpbWVGbGFnKFBsYXRmb3JtQ0FBbmltYXRpb24q
IGFuaW1hdGlvbiwgYm9vbCB2YWx1ZSkKIHsKLSAgICBbYW5pbWF0aW9uLT5wbGF0Zm9ybUFuaW1h
dGlvbigpIHNldFZhbHVlOltOU051bWJlciBudW1iZXJXaXRoQm9vbDp2YWx1ZV0gZm9yS2V5OldL
Tm9uWmVyb0JlZ2luVGltZUZsYWddOworICAgIFt0b1BsYXRmb3JtQ0FBbmltYXRpb25NYWMoYW5p
bWF0aW9uKS0+cGxhdGZvcm1BbmltYXRpb24oKSBzZXRWYWx1ZTpbTlNOdW1iZXIgbnVtYmVyV2l0
aEJvb2w6dmFsdWVdIGZvcktleTpXS05vblplcm9CZWdpblRpbWVGbGFnXTsKIH0KICAgICAKLXN0
YXRpYyBOU1N0cmluZyogdG9DQUZpbGxNb2RlVHlwZShQbGF0Zm9ybUNBQW5pbWF0aW9uOjpGaWxs
TW9kZVR5cGUgdHlwZSkKK05TU3RyaW5nKiBXZWJDb3JlOjp0b0NBRmlsbE1vZGVUeXBlKFBsYXRm
b3JtQ0FBbmltYXRpb246OkZpbGxNb2RlVHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkg
ewogICAgIGNhc2UgUGxhdGZvcm1DQUFuaW1hdGlvbjo6Tm9GaWxsTW9kZToKQEAgLTcwLDcgKzcw
LDcgQEAgc3RhdGljIFBsYXRmb3JtQ0FBbmltYXRpb246OkZpbGxNb2RlVHlwZSBmcm9tQ0FGaWxs
TW9kZVR5cGUoTlNTdHJpbmcqIHN0cmluZykKICAgICByZXR1cm4gUGxhdGZvcm1DQUFuaW1hdGlv
bjo6Rm9yd2FyZHM7CiB9CiAKLXN0YXRpYyBOU1N0cmluZyogdG9DQVZhbHVlRnVuY3Rpb25UeXBl
KFBsYXRmb3JtQ0FBbmltYXRpb246OlZhbHVlRnVuY3Rpb25UeXBlIHR5cGUpCitOU1N0cmluZyog
V2ViQ29yZTo6dG9DQVZhbHVlRnVuY3Rpb25UeXBlKFBsYXRmb3JtQ0FBbmltYXRpb246OlZhbHVl
RnVuY3Rpb25UeXBlIHR5cGUpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpOb1ZhbHVlRnVuY3Rpb246IHJldHVybiBAIiI7CkBAIC0xMjcsNyAr
MTI3LDcgQEAgc3RhdGljIFBsYXRmb3JtQ0FBbmltYXRpb246OlZhbHVlRnVuY3Rpb25UeXBlIGZy
b21DQVZhbHVlRnVuY3Rpb25UeXBlKE5TU3RyaW5nKgogICAgIHJldHVybiBQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpOb1ZhbHVlRnVuY3Rpb247CiB9CiAKLXN0YXRpYyBDQU1lZGlhVGltaW5nRnVuY3Rp
b24qIHRvQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uKGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdG
dW5jdGlvbiwgYm9vbCByZXZlcnNlKQorQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uKiBXZWJDb3JlOjp0
b0NBTWVkaWFUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rp
b24sIGJvb2wgcmV2ZXJzZSkKIHsKICAgICBBU1NFUlQodGltaW5nRnVuY3Rpb24pOwogICAgIGlm
ICh0aW1pbmdGdW5jdGlvbi0+aXNDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uKCkpIHsKQEAgLTE0
NiwyMSArMTQ2LDIyIEBAIHN0YXRpYyBDQU1lZGlhVGltaW5nRnVuY3Rpb24qIHRvQ0FNZWRpYVRp
bWluZ0Z1bmN0aW9uKGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pCiAgICAgICAgIHJldHVybiBb
Q0FNZWRpYVRpbWluZ0Z1bmN0aW9uIGZ1bmN0aW9uV2l0aENvbnRyb2xQb2ludHM6IHgxIDogeTEg
OiB4MiA6IHkyXTsKICAgICB9CiAgICAgCisgICAgQVNTRVJUKHRpbWluZ0Z1bmN0aW9uLT50eXBl
KCkgPT0gVGltaW5nRnVuY3Rpb246OkxpbmVhckZ1bmN0aW9uKTsKICAgICByZXR1cm4gW0NBTWVk
aWFUaW1pbmdGdW5jdGlvbiBmdW5jdGlvbldpdGhOYW1lOmtDQU1lZGlhVGltaW5nRnVuY3Rpb25M
aW5lYXJdOwogfQogCi1QYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRmb3JtQ0FB
bmltYXRpb246OmNyZWF0ZShBbmltYXRpb25UeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0
aCkKK1Bhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUFuaW1hdGlvbk1h
Yzo6Y3JlYXRlKEFuaW1hdGlvblR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGxhdGZvcm1DQUFuaW1hdGlvbih0eXBlLCBrZXlQYXRo
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKHR5cGUs
IGtleVBhdGgpKTsKIH0KIAotUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpjcmVhdGUoUGxhdGZvcm1BbmltYXRpb25SZWYgYW5pbWF0aW9uKQorUGFz
c1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpjcmVh
dGUoUGxhdGZvcm1BbmltYXRpb25SZWYgYW5pbWF0aW9uKQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgUGxhdGZvcm1DQUFuaW1hdGlvbihhbmltYXRpb24pKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFBsYXRmb3JtQ0FBbmltYXRpb25NYWMoYW5pbWF0aW9uKSk7CiB9CiAKLVBsYXRmb3Jt
Q0FBbmltYXRpb246OlBsYXRmb3JtQ0FBbmltYXRpb24oQW5pbWF0aW9uVHlwZSB0eXBlLCBjb25z
dCBTdHJpbmcmIGtleVBhdGgpCi0gICAgOiBtX3R5cGUodHlwZSkKK1BsYXRmb3JtQ0FBbmltYXRp
b25NYWM6OlBsYXRmb3JtQ0FBbmltYXRpb25NYWMoQW5pbWF0aW9uVHlwZSB0eXBlLCBjb25zdCBT
dHJpbmcmIGtleVBhdGgpCisgICAgOiBQbGF0Zm9ybUNBQW5pbWF0aW9uKHR5cGUpCiB7CiAgICAg
aWYgKHR5cGUgPT0gQmFzaWMpCiAgICAgICAgIG1fYW5pbWF0aW9uID0gW0NBQmFzaWNBbmltYXRp
b24gYW5pbWF0aW9uV2l0aEtleVBhdGg6a2V5UGF0aF07CkBAIC0xNjgsMTIgKzE2OSwxMiBAQCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKEFuaW1hdGlvblR5cGUgdHlw
ZSwgY29uc3QgU3RyaW5nJiBrZXlQYQogICAgICAgICBtX2FuaW1hdGlvbiA9IFtDQUtleWZyYW1l
QW5pbWF0aW9uIGFuaW1hdGlvbldpdGhLZXlQYXRoOmtleVBhdGhdOwogfQogCi1QbGF0Zm9ybUNB
QW5pbWF0aW9uOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKFBsYXRmb3JtQW5pbWF0aW9uUmVmIGFuaW1h
dGlvbikKK1BsYXRmb3JtQ0FBbmltYXRpb25NYWM6OlBsYXRmb3JtQ0FBbmltYXRpb25NYWMoUGxh
dGZvcm1BbmltYXRpb25SZWYgYW5pbWF0aW9uKQogewogICAgIGlmIChbc3RhdGljX2Nhc3Q8Q0FB
bmltYXRpb24qPihhbmltYXRpb24pIGlzS2luZE9mQ2xhc3M6W0NBQmFzaWNBbmltYXRpb24gY2xh
c3NdXSkKLSAgICAgICAgbV90eXBlID0gQmFzaWM7CisgICAgICAgIHNldFR5cGUoQmFzaWMpOwog
ICAgIGVsc2UgaWYgKFtzdGF0aWNfY2FzdDxDQUFuaW1hdGlvbio+KGFuaW1hdGlvbikgaXNLaW5k
T2ZDbGFzczpbQ0FLZXlmcmFtZUFuaW1hdGlvbiBjbGFzc11dKQotICAgICAgICBtX3R5cGUgPSBL
ZXlmcmFtZTsKKyAgICAgICAgc2V0VHlwZShLZXlmcmFtZSk7CiAgICAgZWxzZSB7CiAgICAgICAg
IEFTU0VSVCgwKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTgyLDcgKzE4MywxMSBAQCBQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKFBsYXRmb3JtQW5pbWF0aW9uUmVmIGFu
aW1hdGlvbikKICAgICBtX2FuaW1hdGlvbiA9IHN0YXRpY19jYXN0PENBUHJvcGVydHlBbmltYXRp
b24qPihhbmltYXRpb24pOwogfQogCi1QYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBs
YXRmb3JtQ0FBbmltYXRpb246OmNvcHkoKSBjb25zdAorUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6
flBsYXRmb3JtQ0FBbmltYXRpb25NYWMoKQoreworfQorCitQYXNzUmVmUHRyPFBsYXRmb3JtQ0FB
bmltYXRpb24+IFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OmNvcHkoKSBjb25zdAogewogICAgIFJl
ZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBhbmltYXRpb24gPSBjcmVhdGUoYW5pbWF0aW9uVHlw
ZSgpLCBrZXlQYXRoKCkpOwogICAgIApAQCAtMjEyLDI2ICsyMTcsMjMgQEAgUGFzc1JlZlB0cjxQ
bGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5KCkgY29uc3QKICAg
ICAKICAgICByZXR1cm4gYW5pbWF0aW9uOwogfQotUGxhdGZvcm1DQUFuaW1hdGlvbjo6flBsYXRm
b3JtQ0FBbmltYXRpb24oKQotewotfQogCi1QbGF0Zm9ybUFuaW1hdGlvblJlZiBQbGF0Zm9ybUNB
QW5pbWF0aW9uOjpwbGF0Zm9ybUFuaW1hdGlvbigpIGNvbnN0CitQbGF0Zm9ybUFuaW1hdGlvblJl
ZiBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpwbGF0Zm9ybUFuaW1hdGlvbigpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIG1fYW5pbWF0aW9uLmdldCgpOwogfQogCi1TdHJpbmcgUGxhdGZvcm1DQUFuaW1h
dGlvbjo6a2V5UGF0aCgpIGNvbnN0CitTdHJpbmcgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6a2V5
UGF0aCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFttX2FuaW1hdGlvbi5nZXQoKSBrZXlQYXRoXTsK
IH0KIAotQ0ZUaW1lSW50ZXJ2YWwgUGxhdGZvcm1DQUFuaW1hdGlvbjo6YmVnaW5UaW1lKCkgY29u
c3QKK0NGVGltZUludGVydmFsIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OmJlZ2luVGltZSgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIFttX2FuaW1hdGlvbi5nZXQoKSBiZWdpblRpbWVdOwogfQogCi12
b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEJlZ2luVGltZShDRlRpbWVJbnRlcnZhbCB2YWx1
ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0QmVnaW5UaW1lKENGVGltZUludGVy
dmFsIHZhbHVlKQogewogICAgIFttX2FuaW1hdGlvbi5nZXQoKSBzZXRCZWdpblRpbWU6dmFsdWVd
OwogICAgIApAQCAtMjQzLDExNSArMjQ1LDExNSBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246
OnNldEJlZ2luVGltZShDRlRpbWVJbnRlcnZhbCB2YWx1ZSkKICAgICAgICAgc2V0Tm9uWmVyb0Jl
Z2luVGltZUZsYWcodGhpcywgdHJ1ZSk7CiB9CiAKLUNGVGltZUludGVydmFsIFBsYXRmb3JtQ0FB
bmltYXRpb246OmR1cmF0aW9uKCkgY29uc3QKK0NGVGltZUludGVydmFsIFBsYXRmb3JtQ0FBbmlt
YXRpb25NYWM6OmR1cmF0aW9uKCkgY29uc3QKIHsKICAgICByZXR1cm4gW21fYW5pbWF0aW9uLmdl
dCgpIGR1cmF0aW9uXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXREdXJhdGlv
bihDRlRpbWVJbnRlcnZhbCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0
RHVyYXRpb24oQ0ZUaW1lSW50ZXJ2YWwgdmFsdWUpCiB7CiAgICAgW21fYW5pbWF0aW9uLmdldCgp
IHNldER1cmF0aW9uOnZhbHVlXTsKIH0KIAotZmxvYXQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c3Bl
ZWQoKSBjb25zdAorZmxvYXQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c3BlZWQoKSBjb25zdAog
ewogICAgIHJldHVybiBbbV9hbmltYXRpb24uZ2V0KCkgc3BlZWRdOwogfQogCi12b2lkIFBsYXRm
b3JtQ0FBbmltYXRpb246OnNldFNwZWVkKGZsb2F0IHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uTWFjOjpzZXRTcGVlZChmbG9hdCB2YWx1ZSkKIHsKICAgICBbbV9hbmltYXRpb24uZ2V0
KCkgc2V0U3BlZWQ6dmFsdWVdOwogfQogCi1DRlRpbWVJbnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0
aW9uOjp0aW1lT2Zmc2V0KCkgY29uc3QKK0NGVGltZUludGVydmFsIFBsYXRmb3JtQ0FBbmltYXRp
b25NYWM6OnRpbWVPZmZzZXQoKSBjb25zdAogewogICAgIHJldHVybiBbbV9hbmltYXRpb24uZ2V0
KCkgdGltZU9mZnNldF07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VGltZU9m
ZnNldChDRlRpbWVJbnRlcnZhbCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6
c2V0VGltZU9mZnNldChDRlRpbWVJbnRlcnZhbCB2YWx1ZSkKIHsKICAgICBbbV9hbmltYXRpb24u
Z2V0KCkgc2V0VGltZU9mZnNldDp2YWx1ZV07CiB9CiAKLWZsb2F0IFBsYXRmb3JtQ0FBbmltYXRp
b246OnJlcGVhdENvdW50KCkgY29uc3QKK2Zsb2F0IFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnJl
cGVhdENvdW50KCkgY29uc3QKIHsKICAgICByZXR1cm4gW21fYW5pbWF0aW9uLmdldCgpIHJlcGVh
dENvdW50XTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRSZXBlYXRDb3VudChm
bG9hdCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0UmVwZWF0Q291bnQo
ZmxvYXQgdmFsdWUpCiB7CiAgICAgW21fYW5pbWF0aW9uLmdldCgpIHNldFJlcGVhdENvdW50OnZh
bHVlXTsKIH0KIAotYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjphdXRvcmV2ZXJzZXMoKSBjb25z
dAorYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjphdXRvcmV2ZXJzZXMoKSBjb25zdAogewog
ICAgIHJldHVybiBbbV9hbmltYXRpb24uZ2V0KCkgYXV0b3JldmVyc2VzXTsKIH0KIAotdm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRBdXRvcmV2ZXJzZXMoYm9vbCB2YWx1ZSkKK3ZvaWQgUGxh
dGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0QXV0b3JldmVyc2VzKGJvb2wgdmFsdWUpCiB7CiAgICAg
W21fYW5pbWF0aW9uLmdldCgpIHNldEF1dG9yZXZlcnNlczp2YWx1ZV07CiB9CiAKLVBsYXRmb3Jt
Q0FBbmltYXRpb246OkZpbGxNb2RlVHlwZSBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpmaWxsTW9kZSgp
IGNvbnN0CitQbGF0Zm9ybUNBQW5pbWF0aW9uOjpGaWxsTW9kZVR5cGUgUGxhdGZvcm1DQUFuaW1h
dGlvbk1hYzo6ZmlsbE1vZGUoKSBjb25zdAogewogICAgIHJldHVybiBmcm9tQ0FGaWxsTW9kZVR5
cGUoW21fYW5pbWF0aW9uLmdldCgpIGZpbGxNb2RlXSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvbjo6c2V0RmlsbE1vZGUoRmlsbE1vZGVUeXBlIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNB
QW5pbWF0aW9uTWFjOjpzZXRGaWxsTW9kZShGaWxsTW9kZVR5cGUgdmFsdWUpCiB7CiAgICAgW21f
YW5pbWF0aW9uLmdldCgpIHNldEZpbGxNb2RlOnRvQ0FGaWxsTW9kZVR5cGUodmFsdWUpXTsKIH0K
IAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1p
bmdGdW5jdGlvbiogdmFsdWUsIGJvb2wgcmV2ZXJzZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
bk1hYzo6c2V0VGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24qIHZhbHVlLCBib29s
IHJldmVyc2UpCiB7CiAgICAgW21fYW5pbWF0aW9uLmdldCgpIHNldFRpbWluZ0Z1bmN0aW9uOnRv
Q0FNZWRpYVRpbWluZ0Z1bmN0aW9uKHZhbHVlLCByZXZlcnNlKV07CiB9CiAKLXZvaWQgUGxhdGZv
cm1DQUFuaW1hdGlvbjo6Y29weVRpbWluZ0Z1bmN0aW9uRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5p
bWF0aW9uKiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6Y29weVRpbWluZ0Z1
bmN0aW9uRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIHsKLSAgICBbbV9h
bmltYXRpb24uZ2V0KCkgc2V0VGltaW5nRnVuY3Rpb246W3ZhbHVlLT5tX2FuaW1hdGlvbi5nZXQo
KSB0aW1pbmdGdW5jdGlvbl1dOworICAgIFttX2FuaW1hdGlvbi5nZXQoKSBzZXRUaW1pbmdGdW5j
dGlvbjpbdG9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKHZhbHVlKS0+bV9hbmltYXRpb24uZ2V0KCkg
dGltaW5nRnVuY3Rpb25dXTsKIH0KIAotYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjppc1JlbW92
ZWRPbkNvbXBsZXRpb24oKSBjb25zdAorYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjppc1Jl
bW92ZWRPbkNvbXBsZXRpb24oKSBjb25zdAogewogICAgIHJldHVybiBbbV9hbmltYXRpb24uZ2V0
KCkgaXNSZW1vdmVkT25Db21wbGV0aW9uXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpzZXRSZW1vdmVkT25Db21wbGV0aW9uKGJvb2wgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb25NYWM6OnNldFJlbW92ZWRPbkNvbXBsZXRpb24oYm9vbCB2YWx1ZSkKIHsKICAgICBbbV9h
bmltYXRpb24uZ2V0KCkgc2V0UmVtb3ZlZE9uQ29tcGxldGlvbjp2YWx1ZV07CiB9CiAKLWJvb2wg
UGxhdGZvcm1DQUFuaW1hdGlvbjo6aXNBZGRpdGl2ZSgpIGNvbnN0Citib29sIFBsYXRmb3JtQ0FB
bmltYXRpb25NYWM6OmlzQWRkaXRpdmUoKSBjb25zdAogewogICAgIHJldHVybiBbbV9hbmltYXRp
b24uZ2V0KCkgaXNBZGRpdGl2ZV07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0
QWRkaXRpdmUoYm9vbCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0QWRk
aXRpdmUoYm9vbCB2YWx1ZSkKIHsKICAgICBbbV9hbmltYXRpb24uZ2V0KCkgc2V0QWRkaXRpdmU6
dmFsdWVdOwogfQogCi1QbGF0Zm9ybUNBQW5pbWF0aW9uOjpWYWx1ZUZ1bmN0aW9uVHlwZSBQbGF0
Zm9ybUNBQW5pbWF0aW9uOjp2YWx1ZUZ1bmN0aW9uKCkgY29uc3QKK1BsYXRmb3JtQ0FBbmltYXRp
b246OlZhbHVlRnVuY3Rpb25UeXBlIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnZhbHVlRnVuY3Rp
b24oKSBjb25zdAogewogICAgIENBVmFsdWVGdW5jdGlvbiogdmYgPSBbbV9hbmltYXRpb24uZ2V0
KCkgdmFsdWVGdW5jdGlvbl07CiAgICAgcmV0dXJuIGZyb21DQVZhbHVlRnVuY3Rpb25UeXBlKFt2
ZiBuYW1lXSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFsdWVGdW5jdGlv
bihWYWx1ZUZ1bmN0aW9uVHlwZSB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6
c2V0VmFsdWVGdW5jdGlvbihWYWx1ZUZ1bmN0aW9uVHlwZSB2YWx1ZSkKIHsKICAgICBbbV9hbmlt
YXRpb24uZ2V0KCkgc2V0VmFsdWVGdW5jdGlvbjpbQ0FWYWx1ZUZ1bmN0aW9uIGZ1bmN0aW9uV2l0
aE5hbWU6dG9DQVZhbHVlRnVuY3Rpb25UeXBlKHZhbHVlKV1dOwogfQogCi12b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb246OnNldEZyb21WYWx1ZShmbG9hdCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvbk1hYzo6c2V0RnJvbVZhbHVlKGZsb2F0IHZhbHVlKQogewogICAgIGlmIChhbmltYXRp
b25UeXBlKCkgIT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKICAgICBbc3RhdGljX2Nhc3Q8Q0FC
YXNpY0FuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRGcm9tVmFsdWU6W05TTnVtYmVy
IG51bWJlcldpdGhEb3VibGU6dmFsdWVdXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmIHZhbHVl
KQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29y
ZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmIHZhbHVlKQogewogICAgIGlmIChhbmltYXRpb25UeXBl
KCkgIT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKQEAgLTM1OSw3ICszNjEsNyBAQCB2b2lkIFBs
YXRmb3JtQ0FBbmltYXRpb246OnNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgdmFsdQogICAgIFtzdGF0aWNfY2FzdDxDQUJhc2ljQW5pbWF0aW9uKj4obV9h
bmltYXRpb24uZ2V0KCkpIHNldEZyb21WYWx1ZTpbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9y
bTNEOnZhbHVlXV07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0RnJvbVZhbHVl
KGNvbnN0IEZsb2F0UG9pbnQzRCYgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6
OnNldEZyb21WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmIHZhbHVlKQogewogICAgIGlmIChhbmlt
YXRpb25UeXBlKCkgIT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKQEAgLTM3Miw3ICszNzQsNyBA
QCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEZyb21WYWx1ZShjb25zdCBGbG9hdFBvaW50
M0QmIHZhbHVlKQogICAgIFtzdGF0aWNfY2FzdDxDQUJhc2ljQW5pbWF0aW9uKj4obV9hbmltYXRp
b24uZ2V0KCkpIHNldEZyb21WYWx1ZTphcnJheV07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1h
dGlvbjo6c2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiB2YWx1ZSkKK3ZvaWQgUGxh
dGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiB2
YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1
cm47CkBAIC0zODcsMzAgKzM4OSwzMCBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEZy
b21WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYgdmFsdWUpCiB9CiAKICNpZiBFTkFCTEUoQ1NT
X0ZJTFRFUlMpCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEZyb21WYWx1ZShjb25zdCBG
aWx0ZXJPcGVyYXRpb24qIG9wZXJhdGlvbiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRl
eCkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0RnJvbVZhbHVlKGNvbnN0IEZpbHRl
ck9wZXJhdGlvbiogb3BlcmF0aW9uLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KQog
ewogICAgIFJldGFpblB0cjxpZD4gdmFsdWUgPSBQbGF0Zm9ybUNBRmlsdGVyczo6ZmlsdGVyVmFs
dWVGb3JPcGVyYXRpb24ob3BlcmF0aW9uLCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpOwog
ICAgIFtzdGF0aWNfY2FzdDxDQUJhc2ljQW5pbWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNl
dEZyb21WYWx1ZTp2YWx1ZS5nZXQoKV07CiB9CiAjZW5kaWYKIAotdm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpjb3B5RnJvbVZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1
ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6Y29weUZyb21WYWx1ZUZyb20oY29uc3Qg
UGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAh
PSBCYXNpYyB8fCB2YWx1ZS0+YW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1
cm47CiAgICAgICAgIAotICAgIENBQmFzaWNBbmltYXRpb24qIG90aGVyQW5pbWF0aW9uID0gc3Rh
dGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KHZhbHVlLT5tX2FuaW1hdGlvbi5nZXQoKSk7Cisg
ICAgQ0FCYXNpY0FuaW1hdGlvbiogb3RoZXJBbmltYXRpb24gPSBzdGF0aWNfY2FzdDxDQUJhc2lj
QW5pbWF0aW9uKj4odG9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKHZhbHVlKS0+bV9hbmltYXRpb24u
Z2V0KCkpOwogICAgIFtzdGF0aWNfY2FzdDxDQUJhc2ljQW5pbWF0aW9uKj4obV9hbmltYXRpb24u
Z2V0KCkpIHNldEZyb21WYWx1ZTpbb3RoZXJBbmltYXRpb24gZnJvbVZhbHVlXV07CiB9CiAKLXZv
aWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VG9WYWx1ZShmbG9hdCB2YWx1ZSkKK3ZvaWQgUGxh
dGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0VG9WYWx1ZShmbG9hdCB2YWx1ZSkKIHsKICAgICBpZiAo
YW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CiAgICAgW3N0YXRpY19j
YXN0PENBQmFzaWNBbmltYXRpb24qPihtX2FuaW1hdGlvbi5nZXQoKSkgc2V0VG9WYWx1ZTpbTlNO
dW1iZXIgbnVtYmVyV2l0aERvdWJsZTp2YWx1ZV1dOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb246OnNldFRvVmFsdWUoY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmIHZh
bHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNv
cmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlw
ZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CkBAIC00MTgsNyArNDIwLDcgQEAgdm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0
aW9uTWF0cml4JiB2YWx1ZSkKICAgICBbc3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KG1f
YW5pbWF0aW9uLmdldCgpKSBzZXRUb1ZhbHVlOltOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3Jt
M0Q6dmFsdWVdXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUb1ZhbHVlKGNv
bnN0IEZsb2F0UG9pbnQzRCYgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNl
dFRvVmFsdWUoY29uc3QgRmxvYXRQb2ludDNEJiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9u
VHlwZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CkBAIC00MzEsNyArNDMzLDcgQEAgdm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUb1ZhbHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYgdmFs
dWUpCiAgICAgW3N0YXRpY19jYXN0PENBQmFzaWNBbmltYXRpb24qPihtX2FuaW1hdGlvbi5nZXQo
KSkgc2V0VG9WYWx1ZTphcnJheV07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0
VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb25NYWM6OnNldFRvVmFsdWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImIHZhbHVlKQogewogICAg
IGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKQEAgLTQ0Niwy
NSArNDQ4LDI1IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VG9WYWx1ZShjb25zdCBX
ZWJDb3JlOjpDb2xvciYgdmFsdWUpCiB9CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi12b2lk
IFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRvVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiBv
cGVyYXRpb24sIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpCit2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25NYWM6OnNldFRvVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiBvcGVyYXRp
b24sIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpCiB7CiAgICAgUmV0YWluUHRyPGlk
PiB2YWx1ZSA9IFBsYXRmb3JtQ0FGaWx0ZXJzOjpmaWx0ZXJWYWx1ZUZvck9wZXJhdGlvbihvcGVy
YXRpb24sIGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCk7CiAgICAgW3N0YXRpY19jYXN0PENB
QmFzaWNBbmltYXRpb24qPihtX2FuaW1hdGlvbi5nZXQoKSkgc2V0VG9WYWx1ZTp2YWx1ZS5nZXQo
KV07CiB9CiAjZW5kaWYKIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5VG9WYWx1ZUZy
b20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb25NYWM6OmNvcHlUb1ZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1
ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljIHx8IHZhbHVlLT5hbmltYXRp
b25UeXBlKCkgIT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKICAgICAgICAgCi0gICAgQ0FCYXNp
Y0FuaW1hdGlvbiogb3RoZXJBbmltYXRpb24gPSBzdGF0aWNfY2FzdDxDQUJhc2ljQW5pbWF0aW9u
Kj4odmFsdWUtPm1fYW5pbWF0aW9uLmdldCgpKTsKKyAgICBDQUJhc2ljQW5pbWF0aW9uKiBvdGhl
ckFuaW1hdGlvbiA9IHN0YXRpY19jYXN0PENBQmFzaWNBbmltYXRpb24qPih0b1BsYXRmb3JtQ0FB
bmltYXRpb25NYWModmFsdWUpLT5tX2FuaW1hdGlvbi5nZXQoKSk7CiAgICAgW3N0YXRpY19jYXN0
PENBQmFzaWNBbmltYXRpb24qPihtX2FuaW1hdGlvbi5nZXQoKSkgc2V0VG9WYWx1ZTpbb3RoZXJB
bmltYXRpb24gdG9WYWx1ZV1dOwogfQogCiAKIC8vIEtleWZyYW1lLWFuaW1hdGlvbiBwcm9wZXJ0
aWVzLgotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPGZs
b2F0PiYgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFZhbHVlcyhjb25z
dCBWZWN0b3I8ZmxvYXQ+JiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtl
eWZyYW1lKQogICAgICAgICByZXR1cm47CkBAIC00NzUsNyArNDc3LDcgQEAgdm9pZCBQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYgdmFsdWUpCiAgICAg
W3N0YXRpY19jYXN0PENBS2V5ZnJhbWVBbmltYXRpb24qPihtX2FuaW1hdGlvbi5nZXQoKSkgc2V0
VmFsdWVzOmFycmF5XTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRWYWx1ZXMo
Y29uc3QgVmVjdG9yPFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiYgdmFsdWUpCit2b2lk
IFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6
VHJhbnNmb3JtYXRpb25NYXRyaXg+JiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgp
ICE9IEtleWZyYW1lKQogICAgICAgICByZXR1cm47CkBAIC00ODgsNyArNDkwLDcgQEAgdm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRyYW5z
Zm9ybWF0aW9uTWF0cml4PiYKICAgICBbc3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+
KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRWYWx1ZXM6YXJyYXldOwogfQogCi12b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb246OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8RmxvYXRQb2ludDNEPiYgdmFsdWUp
Cit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8Rmxv
YXRQb2ludDNEPiYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBLZXlmcmFt
ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNTA2LDcgKzUwOCw3IEBAIHZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxGbG9hdFBvaW50M0Q+JiB2YWx1ZSkKICAg
ICBbc3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBz
ZXRWYWx1ZXM6YXJyYXldOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFZhbHVl
cyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+JiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvbk1hYzo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb2xvcj4mIHZhbHVl
KQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gS2V5ZnJhbWUpCiAgICAgICAgIHJldHVy
bjsKQEAgLTUyNiw3ICs1MjgsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFZhbHVl
cyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+JiB2YWx1ZSkKIH0KIAogI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0IFZl
Y3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPj4mIHZhbHVlcywgaW50IGludGVybmFsRmlsdGVy
UHJvcGVydHlJbmRleCkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0VmFsdWVzKGNv
bnN0IFZlY3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPj4mIHZhbHVlcywgaW50IGludGVybmFs
RmlsdGVyUHJvcGVydHlJbmRleCkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZy
YW1lKQogICAgICAgICByZXR1cm47CkBAIC01NDEsMTYgKzU0MywxNiBAQCB2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb246OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlv
bj4+JiB2YWx1ZQogfQogI2VuZGlmCiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weVZh
bHVlc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCit2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25NYWM6OmNvcHlWYWx1ZXNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24q
IHZhbHVlKQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gS2V5ZnJhbWUgfHwgdmFsdWUt
PmFuaW1hdGlvblR5cGUoKSAhPSBLZXlmcmFtZSkKICAgICAgICAgcmV0dXJuOwogICAgICAgICAK
LSAgICBDQUtleWZyYW1lQW5pbWF0aW9uKiBvdGhlckFuaW1hdGlvbiA9IHN0YXRpY19jYXN0PENB
S2V5ZnJhbWVBbmltYXRpb24qPih2YWx1ZS0+bV9hbmltYXRpb24uZ2V0KCkpOworICAgIENBS2V5
ZnJhbWVBbmltYXRpb24qIG90aGVyQW5pbWF0aW9uID0gc3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFu
aW1hdGlvbio+KHRvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYyh2YWx1ZSktPm1fYW5pbWF0aW9uLmdl
dCgpKTsKICAgICBbc3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+KG1fYW5pbWF0aW9u
LmdldCgpKSBzZXRWYWx1ZXM6W290aGVyQW5pbWF0aW9uIHZhbHVlc11dOwogfQogCi12b2lkIFBs
YXRmb3JtQ0FBbmltYXRpb246OnNldEtleVRpbWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mIHZhbHVl
KQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRLZXlUaW1lcyhjb25zdCBWZWN0b3I8
ZmxvYXQ+JiB2YWx1ZSkKIHsKICAgICBOU011dGFibGVBcnJheSogYXJyYXkgPSBbTlNNdXRhYmxl
QXJyYXkgYXJyYXldOwogCkBAIC01NjAsMTMgKzU2MiwxMyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb246OnNldEtleVRpbWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mIHZhbHVlKQogICAgIFtzdGF0
aWNfY2FzdDxDQUtleWZyYW1lQW5pbWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNldEtleVRp
bWVzOmFycmF5XTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5S2V5VGltZXNG
cm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uTWFjOjpjb3B5S2V5VGltZXNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZh
bHVlKQogewotICAgIENBS2V5ZnJhbWVBbmltYXRpb24qIG90aGVyID0gc3RhdGljX2Nhc3Q8Q0FL
ZXlmcmFtZUFuaW1hdGlvbio+KHZhbHVlLT5tX2FuaW1hdGlvbi5nZXQoKSk7CisgICAgQ0FLZXlm
cmFtZUFuaW1hdGlvbiogb3RoZXIgPSBzdGF0aWNfY2FzdDxDQUtleWZyYW1lQW5pbWF0aW9uKj4o
dG9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKHZhbHVlKS0+bV9hbmltYXRpb24uZ2V0KCkpOwogICAg
IFtzdGF0aWNfY2FzdDxDQUtleWZyYW1lQW5pbWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNl
dEtleVRpbWVzOltvdGhlciBrZXlUaW1lc11dOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b246OnNldFRpbWluZ0Z1bmN0aW9ucyhjb25zdCBWZWN0b3I8Y29uc3QgVGltaW5nRnVuY3Rpb24q
PiYgdmFsdWUsIGJvb2wgcmV2ZXJzZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0
VGltaW5nRnVuY3Rpb25zKGNvbnN0IFZlY3Rvcjxjb25zdCBUaW1pbmdGdW5jdGlvbio+JiB2YWx1
ZSwgYm9vbCByZXZlcnNlKQogewogICAgIE5TTXV0YWJsZUFycmF5KiBhcnJheSA9IFtOU011dGFi
bGVBcnJheSBhcnJheV07CiAKQEAgLTU3Niw4ICs1NzgsOCBAQCB2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb246OnNldFRpbWluZ0Z1bmN0aW9ucyhjb25zdCBWZWN0b3I8Y29uc3QgVGltaW5nRnVuY3Rp
b24qPgogICAgIFtzdGF0aWNfY2FzdDxDQUtleWZyYW1lQW5pbWF0aW9uKj4obV9hbmltYXRpb24u
Z2V0KCkpIHNldFRpbWluZ0Z1bmN0aW9uczphcnJheV07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvbjo6Y29weVRpbWluZ0Z1bmN0aW9uc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlv
biogdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OmNvcHlUaW1pbmdGdW5jdGlv
bnNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQogewotICAgIENBS2V5ZnJh
bWVBbmltYXRpb24qIG90aGVyID0gc3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+KHZh
bHVlLT5tX2FuaW1hdGlvbi5nZXQoKSk7CisgICAgQ0FLZXlmcmFtZUFuaW1hdGlvbiogb3RoZXIg
PSBzdGF0aWNfY2FzdDxDQUtleWZyYW1lQW5pbWF0aW9uKj4odG9QbGF0Zm9ybUNBQW5pbWF0aW9u
TWFjKHZhbHVlKS0+bV9hbmltYXRpb24uZ2V0KCkpOwogICAgIFtzdGF0aWNfY2FzdDxDQUtleWZy
YW1lQW5pbWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNldFRpbWluZ0Z1bmN0aW9uczpbb3Ro
ZXIgdGltaW5nRnVuY3Rpb25zXV07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQppbmRleCA2
ODU2YTIyZjRjNDNmNTQyZTEwODgxNWFhYWNjZWRhMGYzODQ3MDkzLi5jZjhlMzBhZmUxNmZlNzlh
MGNkOGJiYmU1OTFhYWE3ZjQ1MDkwYTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0KQEAg
LTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiR3Jh
cGhpY3NMYXllckNBLmgiCiAjaW1wb3J0ICJMZW5ndGhGdW5jdGlvbnMuaCIKKyNpbXBvcnQgIlBs
YXRmb3JtQ0FBbmltYXRpb25NYWMuaCIKICNpbXBvcnQgIlBsYXRmb3JtQ0FGaWx0ZXJzLmgiCiAj
aW1wb3J0ICJQbGF0Zm9ybUNBRmlsdGVyc01hYy5oIgogI2ltcG9ydCAiU2Nyb2xsYmFyVGhlbWVN
YWMuaCIKQEAgLTM5NSwxMiArMzk2LDEyIEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjphZGRB
bmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIFBsYXRmb3JtQ0FBbmltYXRpCiAgICAg
ICAgIFt3ZWJBbmltYXRpb25EZWxlZ2F0ZSBzZXRPd25lcjp0aGlzXTsKICAgICB9CiAgICAgCi0g
ICAgQ0FQcm9wZXJ0eUFuaW1hdGlvbiogcHJvcGVydHlBbmltYXRpb24gPSBzdGF0aWNfY2FzdDxD
QVByb3BlcnR5QW5pbWF0aW9uKj4oYW5pbWF0aW9uLT5wbGF0Zm9ybUFuaW1hdGlvbigpKTsKKyAg
ICBDQVByb3BlcnR5QW5pbWF0aW9uKiBwcm9wZXJ0eUFuaW1hdGlvbiA9IHN0YXRpY19jYXN0PENB
UHJvcGVydHlBbmltYXRpb24qPih0b1BsYXRmb3JtQ0FBbmltYXRpb25NYWMoYW5pbWF0aW9uKS0+
cGxhdGZvcm1BbmltYXRpb24oKSk7CiAgICAgaWYgKCFbcHJvcGVydHlBbmltYXRpb24gZGVsZWdh
dGVdKQogICAgICAgICBbcHJvcGVydHlBbmltYXRpb24gc2V0RGVsZWdhdGU6c3RhdGljX2Nhc3Q8
aWQ+KG1fZGVsZWdhdGUuZ2V0KCkpXTsKICAgICAgCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENF
UFRJT05TCi0gICAgW21fbGF5ZXIuZ2V0KCkgYWRkQW5pbWF0aW9uOmFuaW1hdGlvbi0+bV9hbmlt
YXRpb24uZ2V0KCkgZm9yS2V5OmtleV07CisgICAgW21fbGF5ZXIuZ2V0KCkgYWRkQW5pbWF0aW9u
OnByb3BlcnR5QW5pbWF0aW9uIGZvcktleTprZXldOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMKIH0KIApAQCAtNDE2LDcgKzQxNyw3IEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1h
dGlvbj4gUGxhdGZvcm1DQUxheWVyTWFjOjphbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nCiAg
ICAgQ0FQcm9wZXJ0eUFuaW1hdGlvbiogcHJvcGVydHlBbmltYXRpb24gPSBzdGF0aWNfY2FzdDxD
QVByb3BlcnR5QW5pbWF0aW9uKj4oW21fbGF5ZXIuZ2V0KCkgYW5pbWF0aW9uRm9yS2V5OmtleV0p
OwogICAgIGlmICghcHJvcGVydHlBbmltYXRpb24pCiAgICAgICAgIHJldHVybiAwOwotICAgIHJl
dHVybiBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjcmVhdGUocHJvcGVydHlBbmltYXRpb24pOworICAg
IHJldHVybiBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpjcmVhdGUocHJvcGVydHlBbmltYXRpb24p
OwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0TWFzayhQbGF0Zm9ybUNBTGF5ZXIq
IGxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
bWFjL1RpbGVDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvbWFjL1RpbGVDb250cm9sbGVyLm1tCmluZGV4IGZlM2U4MGViMDY1YWI0OGFlNzdiYjdjNTI2
NmIxYzRjOGM4NzQ1ZTYuLmZlYzM5YmE3M2E1ODc0NzQyNWI1N2YxZDMyZTk2NGMxNGIzYTcxZTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxl
Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9t
YWMvVGlsZUNvbnRyb2xsZXIubW0KQEAgLTI2LDYgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5o
IgogI2ltcG9ydCAiVGlsZUNvbnRyb2xsZXIuaCIKIAorI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0
LmgiCiAjaW1wb3J0ICJJbnRSZWN0LmgiCiAjaW1wb3J0ICJQbGF0Zm9ybUNBTGF5ZXIuaCIKICNp
bXBvcnQgIlJlZ2lvbi5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FBbmltYXRpb25XaW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FBbmltYXRpb25XaW4uY3BwCmluZGV4
IDJhNWMzZjIyODIxNWU2YTY4YWRjYWFhN2IzNDliYjgzZWViNWFjOTEuLjVmNmMyNGM4NzliMmI0
YWQyYzgxMjUxYWZiZDAzNjdjY2M1Mzc5NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUFuaW1hdGlv
bldpbi5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI1LDcgKzI1LDggQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaW5jbHVkZSAiUGxh
dGZvcm1DQUFuaW1hdGlvbi5oIgorI2lmIFBMQVRGT1JNKFdJTikKKyNpbmNsdWRlICJQbGF0Zm9y
bUNBQW5pbWF0aW9uV2luLmgiCiAKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKICNpbmNs
dWRlICJUaW1pbmdGdW5jdGlvbi5oIgpAQCAtMTQxLDE3ICsxNDIsMTcgQEAgc3RhdGljIFJldGFp
blB0cjxDQUNGVGltaW5nRnVuY3Rpb25SZWY+IHRvQ0FDRlRpbWluZ0Z1bmN0aW9uKGNvbnN0IFRp
bWluZ0Z1bmN0aW8KICAgICByZXR1cm4gQ0FDRlRpbWluZ0Z1bmN0aW9uR2V0RnVuY3Rpb25XaXRo
TmFtZShrQ0FDRlRpbWluZ0Z1bmN0aW9uTGluZWFyKTsKIH0KIAotUGFzc1JlZlB0cjxQbGF0Zm9y
bUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjcmVhdGUoQW5pbWF0aW9uVHlwZSB0
eXBlLCBjb25zdCBTdHJpbmcmIGtleVBhdGgpCitQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRp
b24+IFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OmNyZWF0ZShBbmltYXRpb25UeXBlIHR5cGUsIGNv
bnN0IFN0cmluZyYga2V5UGF0aCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBsYXRmb3Jt
Q0FBbmltYXRpb24odHlwZSwga2V5UGF0aCkpOwogfQogCi1QYXNzUmVmUHRyPFBsYXRmb3JtQ0FB
bmltYXRpb24+IFBsYXRmb3JtQ0FBbmltYXRpb246OmNyZWF0ZShQbGF0Zm9ybUFuaW1hdGlvblJl
ZiBhbmltYXRpb24pCitQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRmb3JtQ0FB
bmltYXRpb25XaW46OmNyZWF0ZShQbGF0Zm9ybUFuaW1hdGlvblJlZiBhbmltYXRpb24pCiB7CiAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQbGF0Zm9ybUNBQW5pbWF0aW9uKGFuaW1hdGlvbikpOwog
fQogCi1QbGF0Zm9ybUNBQW5pbWF0aW9uOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKEFuaW1hdGlvblR5
cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKQorUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6
UGxhdGZvcm1DQUFuaW1hdGlvbldpbihBbmltYXRpb25UeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYg
a2V5UGF0aCkKICAgICA6IG1fdHlwZSh0eXBlKQogewogICAgIGlmICh0eXBlID09IEJhc2ljKQpA
QCAtMTYyLDcgKzE2Myw3IEBAIFBsYXRmb3JtQ0FBbmltYXRpb246OlBsYXRmb3JtQ0FBbmltYXRp
b24oQW5pbWF0aW9uVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIGtleVBhCiAgICAgQ0FDRkFuaW1h
dGlvblNldEtleVBhdGgobV9hbmltYXRpb24uZ2V0KCksIGtleVBhdGguY3JlYXRlQ0ZTdHJpbmco
KS5nZXQoKSk7CiB9CiAKLVBsYXRmb3JtQ0FBbmltYXRpb246OlBsYXRmb3JtQ0FBbmltYXRpb24o
UGxhdGZvcm1BbmltYXRpb25SZWYgYW5pbWF0aW9uKQorUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6
UGxhdGZvcm1DQUFuaW1hdGlvbldpbihQbGF0Zm9ybUFuaW1hdGlvblJlZiBhbmltYXRpb24pCiB7
CiAgICAgaWYgKENBQ0ZBbmltYXRpb25HZXRDbGFzcyhhbmltYXRpb24pID09IGtDQUNGQmFzaWNB
bmltYXRpb24pCiAgICAgICAgIG1fdHlwZSA9IEJhc2ljOwpAQCAtMTc2LDcgKzE3Nyw3IEBAIFBs
YXRmb3JtQ0FBbmltYXRpb246OlBsYXRmb3JtQ0FBbmltYXRpb24oUGxhdGZvcm1BbmltYXRpb25S
ZWYgYW5pbWF0aW9uKQogICAgIG1fYW5pbWF0aW9uID0gYW5pbWF0aW9uOwogfQogCi1QYXNzUmVm
UHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRmb3JtQ0FBbmltYXRpb246OmNvcHkoKSBjb25z
dAorUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5pbWF0aW9uV2lu
Ojpjb3B5KCkgY29uc3QKIHsKICAgICBSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gYW5pbWF0
aW9uID0gY3JlYXRlKGFuaW1hdGlvblR5cGUoKSwga2V5UGF0aCgpKTsKICAgICAKQEAgLTIwNiwx
MzYgKzIwNywxMzYgQEAgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNB
QW5pbWF0aW9uOjpjb3B5KCkgY29uc3QKICAgICByZXR1cm4gYW5pbWF0aW9uOwogfQogCi1QbGF0
Zm9ybUNBQW5pbWF0aW9uOjp+UGxhdGZvcm1DQUFuaW1hdGlvbigpCitQbGF0Zm9ybUNBQW5pbWF0
aW9uV2luOjp+UGxhdGZvcm1DQUFuaW1hdGlvbldpbigpCiB7CiB9CiAKLVBsYXRmb3JtQW5pbWF0
aW9uUmVmIFBsYXRmb3JtQ0FBbmltYXRpb246OnBsYXRmb3JtQW5pbWF0aW9uKCkgY29uc3QKK1Bs
YXRmb3JtQW5pbWF0aW9uUmVmIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnBsYXRmb3JtQW5pbWF0
aW9uKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9hbmltYXRpb24uZ2V0KCk7CiB9CiAKLVN0cmlu
ZyBQbGF0Zm9ybUNBQW5pbWF0aW9uOjprZXlQYXRoKCkgY29uc3QKK1N0cmluZyBQbGF0Zm9ybUNB
QW5pbWF0aW9uV2luOjprZXlQYXRoKCkgY29uc3QKIHsKICAgICByZXR1cm4gQ0FDRkFuaW1hdGlv
bkdldEtleVBhdGgobV9hbmltYXRpb24uZ2V0KCkpOwogfQogCi1DRlRpbWVJbnRlcnZhbCBQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpiZWdpblRpbWUoKSBjb25zdAorQ0ZUaW1lSW50ZXJ2YWwgUGxhdGZv
cm1DQUFuaW1hdGlvbldpbjo6YmVnaW5UaW1lKCkgY29uc3QKIHsKICAgICByZXR1cm4gQ0FDRkFu
aW1hdGlvbkdldEJlZ2luVGltZShtX2FuaW1hdGlvbi5nZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZv
cm1DQUFuaW1hdGlvbjo6c2V0QmVnaW5UaW1lKENGVGltZUludGVydmFsIHZhbHVlKQordm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRCZWdpblRpbWUoQ0ZUaW1lSW50ZXJ2YWwgdmFsdWUp
CiB7CiAgICAgQ0FDRkFuaW1hdGlvblNldEJlZ2luVGltZShtX2FuaW1hdGlvbi5nZXQoKSwgdmFs
dWUpOwogfQogCi1DRlRpbWVJbnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpkdXJhdGlvbigp
IGNvbnN0CitDRlRpbWVJbnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpkdXJhdGlvbigp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIENBQ0ZBbmltYXRpb25HZXREdXJhdGlvbihtX2FuaW1hdGlv
bi5nZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0RHVyYXRpb24oQ0ZU
aW1lSW50ZXJ2YWwgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldER1cmF0
aW9uKENGVGltZUludGVydmFsIHZhbHVlKQogewogICAgIENBQ0ZBbmltYXRpb25TZXREdXJhdGlv
bihtX2FuaW1hdGlvbi5nZXQoKSwgdmFsdWUpOwogfQogCi1mbG9hdCBQbGF0Zm9ybUNBQW5pbWF0
aW9uOjpzcGVlZCgpIGNvbnN0CitmbG9hdCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzcGVlZCgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIENBQ0ZBbmltYXRpb25HZXRTcGVlZChtX2FuaW1hdGlvbi5n
ZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0U3BlZWQoZmxvYXQgdmFs
dWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldFNwZWVkKGZsb2F0IHZhbHVlKQog
ewogICAgIENBQ0ZBbmltYXRpb25TZXRTcGVlZChtX2FuaW1hdGlvbi5nZXQoKSwgdmFsdWUpOwog
fQogCi1DRlRpbWVJbnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjp0aW1lT2Zmc2V0KCkgY29u
c3QKK0NGVGltZUludGVydmFsIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnRpbWVPZmZzZXQoKSBj
b25zdAogewogICAgIHJldHVybiBDQUNGQW5pbWF0aW9uR2V0VGltZU9mZnNldChtX2FuaW1hdGlv
bi5nZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VGltZU9mZnNldChD
RlRpbWVJbnRlcnZhbCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0VGlt
ZU9mZnNldChDRlRpbWVJbnRlcnZhbCB2YWx1ZSkKIHsKICAgICBDQUNGQW5pbWF0aW9uU2V0VGlt
ZU9mZnNldChtX2FuaW1hdGlvbi5nZXQoKSwgdmFsdWUpOwogfQogCi1mbG9hdCBQbGF0Zm9ybUNB
QW5pbWF0aW9uOjpyZXBlYXRDb3VudCgpIGNvbnN0CitmbG9hdCBQbGF0Zm9ybUNBQW5pbWF0aW9u
V2luOjpyZXBlYXRDb3VudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIENBQ0ZBbmltYXRpb25HZXRS
ZXBlYXRDb3VudChtX2FuaW1hdGlvbi5nZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1h
dGlvbjo6c2V0UmVwZWF0Q291bnQoZmxvYXQgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b25XaW46OnNldFJlcGVhdENvdW50KGZsb2F0IHZhbHVlKQogewogICAgIENBQ0ZBbmltYXRpb25T
ZXRSZXBlYXRDb3VudChtX2FuaW1hdGlvbi5nZXQoKSwgdmFsdWUpOwogfQogCi1ib29sIFBsYXRm
b3JtQ0FBbmltYXRpb246OmF1dG9yZXZlcnNlcygpIGNvbnN0Citib29sIFBsYXRmb3JtQ0FBbmlt
YXRpb25XaW46OmF1dG9yZXZlcnNlcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIENBQ0ZBbmltYXRp
b25HZXRBdXRvcmV2ZXJzZXMobV9hbmltYXRpb24uZ2V0KCkpOwogfQogCi12b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb246OnNldEF1dG9yZXZlcnNlcyhib29sIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNB
QW5pbWF0aW9uV2luOjpzZXRBdXRvcmV2ZXJzZXMoYm9vbCB2YWx1ZSkKIHsKICAgICBDQUNGQW5p
bWF0aW9uU2V0QXV0b3JldmVyc2VzKG1fYW5pbWF0aW9uLmdldCgpLCB2YWx1ZSk7CiB9CiAKLVBs
YXRmb3JtQ0FBbmltYXRpb246OkZpbGxNb2RlVHlwZSBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpmaWxs
TW9kZSgpIGNvbnN0CitQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpGaWxsTW9kZVR5cGUgUGxhdGZv
cm1DQUFuaW1hdGlvbldpbjo6ZmlsbE1vZGUoKSBjb25zdAogewogICAgIHJldHVybiBmcm9tQ0FD
RkZpbGxNb2RlVHlwZShDQUNGQW5pbWF0aW9uR2V0RmlsbE1vZGUobV9hbmltYXRpb24uZ2V0KCkp
KTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRGaWxsTW9kZShGaWxsTW9kZVR5
cGUgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldEZpbGxNb2RlKEZpbGxN
b2RlVHlwZSB2YWx1ZSkKIHsKICAgICBDQUNGQW5pbWF0aW9uU2V0RmlsbE1vZGUobV9hbmltYXRp
b24uZ2V0KCksIHRvQ0FDRkZpbGxNb2RlVHlwZSh2YWx1ZSkpOwogfQogCi12b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb246OnNldFRpbWluZ0Z1bmN0aW9uKGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB2YWx1
ZSwgYm9vbCByZXZlcnNlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRUaW1pbmdG
dW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiogdmFsdWUsIGJvb2wgcmV2ZXJzZSkKIHsKICAg
ICBVTlVTRURfUEFSQU0ocmV2ZXJzZSk7CiAgICAgQ0FDRkFuaW1hdGlvblNldFRpbWluZ0Z1bmN0
aW9uKG1fYW5pbWF0aW9uLmdldCgpLCB0b0NBQ0ZUaW1pbmdGdW5jdGlvbih2YWx1ZSwgcmV2ZXJz
ZSkuZ2V0KCkpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OmNvcHlUaW1pbmdGdW5j
dGlvbkZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCit2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25XaW46OmNvcHlUaW1pbmdGdW5jdGlvbkZyb20oY29uc3QgUGxhdGZvcm1DQUFu
aW1hdGlvbiogdmFsdWUpCiB7CiAgICAgQ0FDRlRpbWluZ0Z1bmN0aW9uUmVmIHRpbWluZ0Z1bmMg
PSBDQUNGQW5pbWF0aW9uR2V0VGltaW5nRnVuY3Rpb24odmFsdWUtPm1fYW5pbWF0aW9uLmdldCgp
KTsKICAgICBpZiAodGltaW5nRnVuYykKICAgICAgICAgQ0FDRkFuaW1hdGlvblNldFRpbWluZ0Z1
bmN0aW9uKG1fYW5pbWF0aW9uLmdldCgpLCB0aW1pbmdGdW5jKTsKIH0KIAotYm9vbCBQbGF0Zm9y
bUNBQW5pbWF0aW9uOjppc1JlbW92ZWRPbkNvbXBsZXRpb24oKSBjb25zdAorYm9vbCBQbGF0Zm9y
bUNBQW5pbWF0aW9uV2luOjppc1JlbW92ZWRPbkNvbXBsZXRpb24oKSBjb25zdAogewogICAgIHJl
dHVybiBDQUNGQW5pbWF0aW9uSXNSZW1vdmVkT25Db21wbGV0aW9uKG1fYW5pbWF0aW9uLmdldCgp
KTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRSZW1vdmVkT25Db21wbGV0aW9u
KGJvb2wgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldFJlbW92ZWRPbkNv
bXBsZXRpb24oYm9vbCB2YWx1ZSkKIHsKICAgICBDQUNGQW5pbWF0aW9uU2V0UmVtb3ZlZE9uQ29t
cGxldGlvbihtX2FuaW1hdGlvbi5nZXQoKSwgdmFsdWUpOwogfQogCi1ib29sIFBsYXRmb3JtQ0FB
bmltYXRpb246OmlzQWRkaXRpdmUoKSBjb25zdAorYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2lu
Ojppc0FkZGl0aXZlKCkgY29uc3QKIHsKICAgICByZXR1cm4gQ0FDRkFuaW1hdGlvbklzQWRkaXRp
dmUobV9hbmltYXRpb24uZ2V0KCkpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNl
dEFkZGl0aXZlKGJvb2wgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldEFk
ZGl0aXZlKGJvb2wgdmFsdWUpCiB7CiAgICAgQ0FDRkFuaW1hdGlvblNldEFkZGl0aXZlKG1fYW5p
bWF0aW9uLmdldCgpLCB2YWx1ZSk7CiB9CiAKLVBsYXRmb3JtQ0FBbmltYXRpb246OlZhbHVlRnVu
Y3Rpb25UeXBlIFBsYXRmb3JtQ0FBbmltYXRpb246OnZhbHVlRnVuY3Rpb24oKSBjb25zdAorUGxh
dGZvcm1DQUFuaW1hdGlvbjo6VmFsdWVGdW5jdGlvblR5cGUgUGxhdGZvcm1DQUFuaW1hdGlvbldp
bjo6dmFsdWVGdW5jdGlvbigpIGNvbnN0CiB7CiAgICAgQ0FDRlZhbHVlRnVuY3Rpb25SZWYgZnVu
YyA9IENBQ0ZBbmltYXRpb25HZXRWYWx1ZUZ1bmN0aW9uKG1fYW5pbWF0aW9uLmdldCgpKTsKICAg
ICByZXR1cm4gZnVuYyA/IGZyb21DQUNGVmFsdWVGdW5jdGlvblR5cGUoQ0FDRlZhbHVlRnVuY3Rp
b25HZXROYW1lKGZ1bmMpKSA6IE5vVmFsdWVGdW5jdGlvbjsKIH0KIAotdm9pZCBQbGF0Zm9ybUNB
QW5pbWF0aW9uOjpzZXRWYWx1ZUZ1bmN0aW9uKFZhbHVlRnVuY3Rpb25UeXBlIHZhbHVlKQordm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRWYWx1ZUZ1bmN0aW9uKFZhbHVlRnVuY3Rpb25U
eXBlIHZhbHVlKQogewogICAgIENGU3RyaW5nUmVmIHZhbHVlU3RyaW5nID0gdG9DQUNGVmFsdWVG
dW5jdGlvblR5cGUodmFsdWUpOwogICAgIENBQ0ZBbmltYXRpb25TZXRWYWx1ZUZ1bmN0aW9uKG1f
YW5pbWF0aW9uLmdldCgpLCB2YWx1ZVN0cmluZyA/IENBQ0ZWYWx1ZUZ1bmN0aW9uR2V0RnVuY3Rp
b25XaXRoTmFtZSh2YWx1ZVN0cmluZykgOiAwKTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0
aW9uOjpzZXRGcm9tVmFsdWUoZmxvYXQgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25X
aW46OnNldEZyb21WYWx1ZShmbG9hdCB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgp
ICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CkBAIC0zNDQsNyArMzQ1LDcgQEAgdm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpzZXRGcm9tVmFsdWUoZmxvYXQgdmFsdWUpCiAgICAgQ0FDRkFuaW1h
dGlvblNldEZyb21WYWx1ZShtX2FuaW1hdGlvbi5nZXQoKSwgdi5nZXQoKSk7CiB9CiAKLXZvaWQg
UGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9y
bWF0aW9uTWF0cml4JiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0RnJv
bVZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JiB2YWx1ZSkKIHsKICAg
ICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CkBAIC0zNTMs
NyArMzU0LDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRGcm9tVmFsdWUoY29uc3Qg
V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmIHZhbHUKICAgICBDQUNGQW5pbWF0aW9uU2V0
RnJvbVZhbHVlKG1fYW5pbWF0aW9uLmdldCgpLCB2LmdldCgpKTsKIH0KIAotdm9pZCBQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpzZXRGcm9tVmFsdWUoY29uc3QgRmxvYXRQb2ludDNEJiB2YWx1ZSkKK3Zv
aWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0RnJvbVZhbHVlKGNvbnN0IEZsb2F0UG9pbnQz
RCYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKICAgICAgICAg
cmV0dXJuOwpAQCAtMzYzLDcgKzM2NCw3IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0
RnJvbVZhbHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYgdmFsdWUpCiAgICAgQ0FDRkFuaW1hdGlvblNl
dEZyb21WYWx1ZShtX2FuaW1hdGlvbi5nZXQoKSwgdi5nZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZv
cm1DQUFuaW1hdGlvbjo6c2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiB2YWx1ZSkK
K3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6
OkNvbG9yJiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQogICAg
ICAgICByZXR1cm47CkBAIC0zNzQsMTMgKzM3NSwxMyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b246OnNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYgdmFsdWUpCiB9CiAKICNpZiBF
TkFCTEUoQ1NTX0ZJTFRFUlMpCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEZyb21WYWx1
ZShjb25zdCBGaWx0ZXJPcGVyYXRpb24qLCBpbnQpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25X
aW46OnNldEZyb21WYWx1ZShjb25zdCBGaWx0ZXJPcGVyYXRpb24qLCBpbnQpCiB7CiAgICAgLy8g
RklYTUU6IEhhcmR3YXJlIGZpbHRlciBhbmltYXRpb24gbm90IGltcGxlbWVudGVkIG9uIFdpbmRv
d3MKIH0KICNlbmRpZgogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OmNvcHlGcm9tVmFsdWVG
cm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uV2luOjpjb3B5RnJvbVZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2
YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljIHx8IHZhbHVlLT5hbmlt
YXRpb25UeXBlKCkgIT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKQEAgLTM4OCw3ICszODksNyBA
QCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OmNvcHlGcm9tVmFsdWVGcm9tKGNvbnN0IFBsYXRm
b3JtQ0FBbmltYXRpb24qIHZhbHVlKQogICAgIENBQ0ZBbmltYXRpb25TZXRGcm9tVmFsdWUobV9h
bmltYXRpb24uZ2V0KCksIENBQ0ZBbmltYXRpb25HZXRGcm9tVmFsdWUodmFsdWUtPnBsYXRmb3Jt
QW5pbWF0aW9uKCkpKTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUb1ZhbHVl
KGZsb2F0IHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRUb1ZhbHVlKGZs
b2F0IHZhbHVlKQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCiAgICAgICAg
IHJldHVybjsKQEAgLTM5Nyw3ICszOTgsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNl
dFRvVmFsdWUoZmxvYXQgdmFsdWUpCiAgICAgQ0FDRkFuaW1hdGlvblNldFRvVmFsdWUobV9hbmlt
YXRpb24uZ2V0KCksIHYuZ2V0KCkpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNl
dFRvVmFsdWUoY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmIHZhbHVlKQordm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5z
Zm9ybWF0aW9uTWF0cml4JiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJh
c2ljKQogICAgICAgICByZXR1cm47CkBAIC00MDYsNyArNDA3LDcgQEAgdm9pZCBQbGF0Zm9ybUNB
QW5pbWF0aW9uOjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4
JiB2YWx1ZSkKICAgICBDQUNGQW5pbWF0aW9uU2V0VG9WYWx1ZShtX2FuaW1hdGlvbi5nZXQoKSwg
di5nZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VG9WYWx1ZShjb25z
dCBGbG9hdFBvaW50M0QmIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRU
b1ZhbHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5
cGUoKSAhPSBCYXNpYykKICAgICAgICAgcmV0dXJuOwpAQCAtNDE2LDcgKzQxNyw3IEBAIHZvaWQg
UGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VG9WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmIHZhbHVl
KQogICAgIENBQ0ZBbmltYXRpb25TZXRUb1ZhbHVlKG1fYW5pbWF0aW9uLmdldCgpLCB2LmdldCgp
KTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNv
cmU6OkNvbG9yJiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0VG9WYWx1
ZShjb25zdCBXZWJDb3JlOjpDb2xvciYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUo
KSAhPSBCYXNpYykKICAgICAgICAgcmV0dXJuOwpAQCAtNDI3LDEzICs0MjgsMTMgQEAgdm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiB2YWx1
ZSkKIH0KIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
bjo6c2V0VG9WYWx1ZShjb25zdCBGaWx0ZXJPcGVyYXRpb24qLCBpbnQpCit2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25XaW46OnNldFRvVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiwgaW50KQog
ewogICAgIC8vIEZJWE1FOiBIYXJkd2FyZSBmaWx0ZXIgYW5pbWF0aW9uIG5vdCBpbXBsZW1lbnRl
ZCBvbiBXaW5kb3dzCiB9CiAjZW5kaWYKIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5
VG9WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCit2b2lkIFBsYXRm
b3JtQ0FBbmltYXRpb25XaW46OmNvcHlUb1ZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0
aW9uKiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljIHx8IHZhbHVl
LT5hbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKQEAgLTQ0Myw3ICs0
NDQsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OmNvcHlUb1ZhbHVlRnJvbShjb25zdCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIAogCiAvLyBLZXlmcmFtZS1hbmltYXRpb24gcHJv
cGVydGllcy4KLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3Rv
cjxmbG9hdD4mIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRWYWx1ZXMo
Y29uc3QgVmVjdG9yPGZsb2F0PiYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAh
PSBLZXlmcmFtZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDU3LDcgKzQ1OCw3IEBAIHZvaWQgUGxh
dGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mIHZhbHVlKQog
ICAgIENBQ0ZBbmltYXRpb25TZXRWYWx1ZXMobV9hbmltYXRpb24uZ2V0KCksIGFycmF5LmdldCgp
KTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9y
PFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiYgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FB
bmltYXRpb25XaW46OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6VHJhbnNmb3JtYXRp
b25NYXRyaXg+JiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZyYW1l
KQogICAgICAgICByZXR1cm47CkBAIC00NzEsNyArNDcyLDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0
cml4PiYKICAgICBDQUNGQW5pbWF0aW9uU2V0VmFsdWVzKG1fYW5pbWF0aW9uLmdldCgpLCBhcnJh
eS5nZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0
IFZlY3RvcjxGbG9hdFBvaW50M0Q+JiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldp
bjo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxGbG9hdFBvaW50M0Q+JiB2YWx1ZSkKIHsKICAgICBp
ZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZyYW1lKQogICAgICAgICByZXR1cm47CkBAIC00ODYs
NyArNDg3LDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVj
dG9yPEZsb2F0UG9pbnQzRD4mIHZhbHVlKQogICAgIENBQ0ZBbmltYXRpb25TZXRWYWx1ZXMobV9h
bmltYXRpb24uZ2V0KCksIGFycmF5LmdldCgpKTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0
aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbG9yPiYgdmFsdWUpCit2b2lk
IFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6
Q29sb3I+JiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZyYW1lKQog
ICAgICAgICByZXR1cm47CkBAIC01MDIsMTMgKzUwMywxMyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb246OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+JiB2YWx1ZSkKIH0K
IAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0
VmFsdWVzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiA+JiwgaW50KQordm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxG
aWx0ZXJPcGVyYXRpb24+ID4mLCBpbnQpCiB7CiAgICAgLy8gRklYTUU6IEhhcmR3YXJlIGZpbHRl
ciBhbmltYXRpb24gbm90IGltcGxlbWVudGVkIG9uIFdpbmRvd3MKIH0KICNlbmRpZgogCi12b2lk
IFBsYXRmb3JtQ0FBbmltYXRpb246OmNvcHlWYWx1ZXNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmlt
YXRpb24qIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpjb3B5VmFsdWVzRnJv
bShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9u
VHlwZSgpICE9IEtleWZyYW1lIHx8IHZhbHVlLT5hbmltYXRpb25UeXBlKCkgIT0gS2V5ZnJhbWUp
CiAgICAgICAgIHJldHVybjsKQEAgLTUxNiw3ICs1MTcsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb246OmNvcHlWYWx1ZXNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQog
ICAgIENBQ0ZBbmltYXRpb25TZXRWYWx1ZXMobV9hbmltYXRpb24uZ2V0KCksIENBQ0ZBbmltYXRp
b25HZXRWYWx1ZXModmFsdWUtPnBsYXRmb3JtQW5pbWF0aW9uKCkpKTsKIH0KIAotdm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpzZXRLZXlUaW1lcyhjb25zdCBWZWN0b3I8ZmxvYXQ+JiB2YWx1ZSkK
K3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0S2V5VGltZXMoY29uc3QgVmVjdG9yPGZs
b2F0PiYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBLZXlmcmFtZSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtNTMwLDcgKzUzMSw3IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
bjo6c2V0S2V5VGltZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYgdmFsdWUpCiAgICAgQ0FDRkFuaW1h
dGlvblNldEtleVRpbWVzKG1fYW5pbWF0aW9uLmdldCgpLCBhcnJheS5nZXQoKSk7CiB9CiAKLXZv
aWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weUtleVRpbWVzRnJvbShjb25zdCBQbGF0Zm9ybUNB
QW5pbWF0aW9uKiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6Y29weUtleVRp
bWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIHsKICAgICBpZiAoYW5p
bWF0aW9uVHlwZSgpICE9IEtleWZyYW1lKQogICAgICAgICByZXR1cm47CkBAIC01MzgsNyArNTM5
LDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5S2V5VGltZXNGcm9tKGNvbnN0IFBs
YXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQogICAgIENBQ0ZBbmltYXRpb25TZXRLZXlUaW1lcyht
X2FuaW1hdGlvbi5nZXQoKSwgQ0FDRkFuaW1hdGlvbkdldEtleVRpbWVzKHZhbHVlLT5wbGF0Zm9y
bUFuaW1hdGlvbigpKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VGltaW5n
RnVuY3Rpb25zKGNvbnN0IFZlY3Rvcjxjb25zdCBUaW1pbmdGdW5jdGlvbio+JiB2YWx1ZSwgYm9v
bCByZXZlcnNlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRUaW1pbmdGdW5jdGlv
bnMoY29uc3QgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4mIHZhbHVlLCBib29sIHJldmVy
c2UpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHJldmVyc2UpOwogICAgIGlmIChhbmltYXRpb25UeXBl
KCkgIT0gS2V5ZnJhbWUpCkBAIC01NTMsNyArNTU0LDkgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0
aW9uOjpzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9u
Kj4KICAgICBDQUNGQW5pbWF0aW9uU2V0VGltaW5nRnVuY3Rpb25zKG1fYW5pbWF0aW9uLmdldCgp
LCBhcnJheS5nZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weVRpbWlu
Z0Z1bmN0aW9uc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCit2b2lkIFBs
YXRmb3JtQ0FBbmltYXRpb25XaW46OmNvcHlUaW1pbmdGdW5jdGlvbnNGcm9tKGNvbnN0IFBsYXRm
b3JtQ0FBbmltYXRpb24qIHZhbHVlKQogewogICAgIENBQ0ZBbmltYXRpb25TZXRUaW1pbmdGdW5j
dGlvbnMobV9hbmltYXRpb24uZ2V0KCksIENBQ0ZBbmltYXRpb25HZXRUaW1pbmdGdW5jdGlvbnMo
dmFsdWUtPnBsYXRmb3JtQW5pbWF0aW9uKCkpKTsKIH0KKworI2VuZGlmIC8vIFBMQVRGT1JNKFdJ
TikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9Q
bGF0Zm9ybUNBQW5pbWF0aW9uV2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkZjU1YmU5ZjJm
Mjc3N2Y1ZGVmM2Q3YTY0OTE0MmE4NDk3MzkxNTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5o
CkBAIC0wLDAgKzEsMTM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgUGxhdGZvcm1DQUFuaW1hdGlvbldpbl9oCisjZGVmaW5lIFBsYXRm
b3JtQ0FBbmltYXRpb25XaW5faAorCisjaWYgUExBVEZPUk0oV0lOKQorCisjaW5jbHVkZSAiUGxh
dGZvcm1DQUFuaW1hdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKwordHlwZWRl
ZiBzdHJ1Y3QgX0NBQ0ZBbmltYXRpb24qIENBQ0ZBbmltYXRpb25SZWY7Cit0eXBlZGVmIENBQ0ZB
bmltYXRpb25SZWYgUGxhdGZvcm1BbmltYXRpb25SZWY7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgUGxhdGZvcm1DQUFuaW1hdGlvbldpbiBmaW5hbCA6IHB1YmxpYyBQbGF0Zm9ybUNB
QW5pbWF0aW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5p
bWF0aW9uPiBjcmVhdGUoQW5pbWF0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKTsKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBjcmVhdGUoUGxhdGZvcm1B
bmltYXRpb25SZWYpOworCisgICAgdmlydHVhbCB+UGxhdGZvcm1DQUFuaW1hdGlvbldpbigpOwor
CisgICAgdmlydHVhbCBib29sIGlzUGxhdGZvcm1DQUFuaW1hdGlvbldpbigpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UGxhdGZv
cm1DQUFuaW1hdGlvbj4gY29weSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgUGxhdGZvcm1Bbmlt
YXRpb25SZWYgcGxhdGZvcm1BbmltYXRpb24oKSBjb25zdDsKKyAgICAKKyAgICB2aXJ0dWFsIFN0
cmluZyBrZXlQYXRoKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgCisgICAgdmlydHVhbCBDRlRpbWVJ
bnRlcnZhbCBiZWdpblRpbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
QmVnaW5UaW1lKENGVGltZUludGVydmFsKSBvdmVycmlkZTsKKyAgICAKKyAgICB2aXJ0dWFsIENG
VGltZUludGVydmFsIGR1cmF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHNldER1cmF0aW9uKENGVGltZUludGVydmFsKSBvdmVycmlkZTsKKyAgICAKKyAgICB2aXJ0dWFs
IGZsb2F0IHNwZWVkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFNwZWVk
KGZsb2F0KSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgQ0ZUaW1lSW50ZXJ2YWwgdGltZU9mZnNl
dCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRUaW1lT2Zmc2V0KENGVGlt
ZUludGVydmFsKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgZmxvYXQgcmVwZWF0Q291bnQoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVwZWF0Q291bnQoZmxvYXQpIG92
ZXJyaWRlOworCisgICAgdmlydHVhbCBib29sIGF1dG9yZXZlcnNlcygpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBzZXRBdXRvcmV2ZXJzZXMoYm9vbCkgb3ZlcnJpZGU7CisKKyAg
ICB2aXJ0dWFsIEZpbGxNb2RlVHlwZSBmaWxsTW9kZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBzZXRGaWxsTW9kZShGaWxsTW9kZVR5cGUpIG92ZXJyaWRlOworICAgIAorICAg
IHZpcnR1YWwgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiosIGJv
b2wgcmV2ZXJzZSA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvcHlUaW1pbmdGdW5jdGlv
bkZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOworCisgICAgdmlydHVh
bCBib29sIGlzUmVtb3ZlZE9uQ29tcGxldGlvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBzZXRSZW1vdmVkT25Db21wbGV0aW9uKGJvb2wpIG92ZXJyaWRlOworCisgICAgdmly
dHVhbCBib29sIGlzQWRkaXRpdmUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0QWRkaXRpdmUoYm9vbCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIFZhbHVlRnVuY3Rpb25U
eXBlIHZhbHVlRnVuY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
VmFsdWVGdW5jdGlvbihWYWx1ZUZ1bmN0aW9uVHlwZSkgb3ZlcnJpZGU7CisKKyAgICAvLyBCYXNp
Yy1hbmltYXRpb24gcHJvcGVydGllcy4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGZs
b2F0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNv
cmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNl
dEZyb21WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgb3ZlcnJpZGU7CisjaWYgRU5B
QkxFKENTU19GSUxURVJTKQorICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgRmls
dGVyT3BlcmF0aW9uKiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgb3ZlcnJpZGU7
CisjZW5kaWYKKyAgICB2aXJ0dWFsIHZvaWQgY29weUZyb21WYWx1ZUZyb20oY29uc3QgUGxhdGZv
cm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUo
ZmxvYXQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IFdlYkNv
cmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNl
dFRvVmFsdWUoY29uc3QgRmxvYXRQb2ludDNEJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHNldFRvVmFsdWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVycmlkZTsKKyNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3QgRmlsdGVyT3Bl
cmF0aW9uKiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgb3ZlcnJpZGU7CisjZW5k
aWYKKyAgICB2aXJ0dWFsIHZvaWQgY29weVRvVmFsdWVGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmlt
YXRpb24qKSBvdmVycmlkZTsKKworICAgIC8vIEtleWZyYW1lLWFuaW1hdGlvbiBwcm9wZXJ0aWVz
LgorICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRy
YW5zZm9ybWF0aW9uTWF0cml4PiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1
ZXMoY29uc3QgVmVjdG9yPEZsb2F0UG9pbnQzRD4mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb2xvcj4mKSBvdmVycmlkZTsKKyNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlcyhjb25zdCBW
ZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4+JiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVy
dHlJbmRleCkgb3ZlcnJpZGU7CisjZW5kaWYKKyAgICB2aXJ0dWFsIHZvaWQgY29weVZhbHVlc0Zy
b20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2
b2lkIHNldEtleVRpbWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgY29weUtleVRpbWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3Zl
cnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGltaW5nRnVuY3Rpb25zKGNvbnN0IFZlY3Rv
cjxjb25zdCBUaW1pbmdGdW5jdGlvbio+JiwgYm9vbCByZXZlcnNlID0gZmFsc2UpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShjb25zdCBQbGF0Zm9y
bUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CisKK3Byb3RlY3RlZDoKKyAgICBQbGF0Zm9ybUNBQW5p
bWF0aW9uV2luKEFuaW1hdGlvblR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCk7CisgICAgUGxh
dGZvcm1DQUFuaW1hdGlvbihQbGF0Zm9ybUFuaW1hdGlvblJlZik7CisKK3ByaXZhdGU6CisgICAg
UmV0YWluUHRyPENBQ0ZBbmltYXRpb25SZWY+IG1fYW5pbWF0aW9uOworfTsKKworUExBVEZPUk1f
Q0FBTklNQVRJT05fVFlQRV9DQVNUUyhQbGF0Zm9ybUNBQW5pbWF0aW9uV2luLCBpc1BsYXRmb3Jt
Q0FBbmltYXRpb25XaW4oKSkKKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oV0lOKQorCisjZW5k
aWYgLy8gUGxhdGZvcm1DQUFuaW1hdGlvbldpbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0lQQy9Bcmd1bWVudENvZGVycy5oCmluZGV4IDI5NzQxM2YzOGExY2FlNTQ3OGJjMTZhODMxMDM1
YTFkM2ExOWFiZTMuLmFlOGM2ZmJhN2YwOTIzNmU5MDE2ZmVkOTY5MGRjOTRmMjhmMjBhMzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSA8dXRpbGl0eT4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtMTkzLDYgKzE5NCw0MCBA
QCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUg
SGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogICAgIH0KIH07CiAKK3RlbXBsYXRlPHR5cGVuYW1l
IEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxIYXNoU2V0PEtleUFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnPj4gewor
ICAgIHR5cGVkZWYgSGFzaFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZz4gSGFzaFNl
dFR5cGU7CisKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBIYXNoU2V0VHlwZSYgaGFzaFNldCkKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwg
c3RhdGljX2Nhc3Q8dWludDY0X3Q+KGhhc2hTZXQuc2l6ZSgpKTsKKyAgICAgICAgZm9yICh0eXBl
bmFtZSBIYXNoU2V0VHlwZTo6Y29uc3RfaXRlcmF0b3IgaXQgPSBoYXNoU2V0LmJlZ2luKCksIGVu
ZCA9IGhhc2hTZXQuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgICAgIGVuY29kZXIg
PDwgKml0OworICAgIH0KKworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIm
IGRlY29kZXIsIEhhc2hTZXRUeXBlJiBoYXNoU2V0KQorICAgIHsKKyAgICAgICAgdWludDY0X3Qg
aGFzaFNldFNpemU7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzaFNldFNpemUpKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIEhhc2hTZXRUeXBlIHRlbXBIYXNo
U2V0OworICAgICAgICBmb3IgKHVpbnQ2NF90IGkgPSAwOyBpIDwgaGFzaFNldFNpemU7ICsraSkg
eworICAgICAgICAgICAgS2V5QXJnIGtleTsKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoa2V5KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAgIGlm
ICghdGVtcEhhc2hTZXQuYWRkKGtleSkuaXNOZXdFbnRyeSkgeworICAgICAgICAgICAgICAgIC8v
IFRoZSBoYXNoIG1hcCBhbHJlYWR5IGhhcyB0aGUgc3BlY2lmaWVkIGtleSwgYmFpbC4KKyAgICAg
ICAgICAgICAgICBkZWNvZGVyLm1hcmtJbnZhbGlkKCk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaGFzaFNldC5zd2Fw
KHRlbXBIYXNoU2V0KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfTsKKwogdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxBdG9taWNTdHJpbmc+IHsKICAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIEF0b21pY1N0cmluZyYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCAxNDNm
YTc4MTRlMTNlYzE2OGFkMjYxMjUzYWM3OGM2YTBlNjZjNmFiLi5iYTliYTliZDgyZWVkYTY2ZGIx
MzcwOWQ1YTRkYzFlMThjMmNmYjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtNTksNiArNTksNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1RpbWluZ0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UcmFuc2Zvcm1hdGlvbk1h
dHJpeC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2Vy
U2NyaXB0Lmg+CkBAIC05MCw3ICs5MSw2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxBZmZpbmVUcmFu
c2Zvcm0+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBBZmZpbmVUcmFuCiAgICAg
cmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKGRlY29k
ZXIsIGFmZmluZVRyYW5zZm9ybSk7CiB9CiAKLQogdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9y
bWF0aW9uTWF0cml4Pjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybWF0aW9uTWF0cml4KQogewogICAgIFNpbXBsZUFy
Z3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjplbmNvZGUoZW5jb2RlciwgdHJhbnNm
b3JtYXRpb25NYXRyaXgpOwpAQCAtMTAxLDYgKzEwMSw4MyBAQCBib29sIEFyZ3VtZW50Q29kZXI8
VHJhbnNmb3JtYXRpb25NYXRyaXg+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBU
cmFucwogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4
Pjo6ZGVjb2RlKGRlY29kZXIsIHRyYW5zZm9ybWF0aW9uTWF0cml4KTsKIH0KIAordm9pZCBBcmd1
bWVudENvZGVyPExpbmVhclRpbWluZ0Z1bmN0aW9uPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgTGluZWFyVGltaW5nRnVuY3Rpb24mIHRpbWluZ0Z1bmN0aW9uKQorewor
ICAgIGVuY29kZXIuZW5jb2RlRW51bSh0aW1pbmdGdW5jdGlvbi50eXBlKCkpOworfQorCitib29s
IEFyZ3VtZW50Q29kZXI8TGluZWFyVGltaW5nRnVuY3Rpb24+OjpkZWNvZGUoQXJndW1lbnREZWNv
ZGVyJiBkZWNvZGVyLCBMaW5lYXJUaW1pbmdGdW5jdGlvbiYgdGltaW5nRnVuY3Rpb24pCit7Cisg
ICAgLy8gVHlwZSBpcyBkZWNvZGVkIGJ5IHRoZSBjYWxsZXIuIE5vdGhpbmcgZWxzZSB0byBkZWNv
ZGUuCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgQXJndW1lbnRDb2RlcjxDdWJpY0Jlemll
clRpbWluZ0Z1bmN0aW9uPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbiYgdGltaW5nRnVuY3Rpb24pCit7CisgICAgZW5jb2Rl
ci5lbmNvZGVFbnVtKHRpbWluZ0Z1bmN0aW9uLnR5cGUoKSk7CisgICAgCisgICAgZW5jb2RlciA8
PCB0aW1pbmdGdW5jdGlvbi54MSgpOworICAgIGVuY29kZXIgPDwgdGltaW5nRnVuY3Rpb24ueTEo
KTsKKyAgICBlbmNvZGVyIDw8IHRpbWluZ0Z1bmN0aW9uLngyKCk7CisgICAgZW5jb2RlciA8PCB0
aW1pbmdGdW5jdGlvbi55MigpOworICAgIAorICAgIGVuY29kZXIuZW5jb2RlRW51bSh0aW1pbmdG
dW5jdGlvbi50aW1pbmdGdW5jdGlvblByZXNldCgpKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVy
PEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNv
ZGVyLCBDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uJiB0aW1pbmdGdW5jdGlvbikKK3sKKyAgICAv
LyBUeXBlIGlzIGRlY29kZWQgYnkgdGhlIGNhbGxlci4KKyAgICBkb3VibGUgeDE7CisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZSh4MSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGRvdWJs
ZSB5MTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHkxKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgZG91YmxlIHgyOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoeDIpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBkb3VibGUgeTI7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZSh5MikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEN1YmljQmV6aWVyVGltaW5nRnVu
Y3Rpb246OlRpbWluZ0Z1bmN0aW9uUHJlc2V0IHByZXNldDsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlRW51bShwcmVzZXQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB0aW1pbmdGdW5j
dGlvbi5zZXRWYWx1ZXMoeDEsIHkxLCB4MiwgeTIpOworICAgIHRpbWluZ0Z1bmN0aW9uLnNldFRp
bWluZ0Z1bmN0aW9uUHJlc2V0KHByZXNldCk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9p
ZCBBcmd1bWVudENvZGVyPFN0ZXBzVGltaW5nRnVuY3Rpb24+OjplbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBTdGVwc1RpbWluZ0Z1bmN0aW9uJiB0aW1pbmdGdW5jdGlvbikK
K3sKKyAgICBlbmNvZGVyLmVuY29kZUVudW0odGltaW5nRnVuY3Rpb24udHlwZSgpKTsKKyAgICAK
KyAgICBlbmNvZGVyIDw8IHRpbWluZ0Z1bmN0aW9uLm51bWJlck9mU3RlcHMoKTsKKyAgICBlbmNv
ZGVyIDw8IHRpbWluZ0Z1bmN0aW9uLnN0ZXBBdFN0YXJ0KCk7Cit9CisKK2Jvb2wgQXJndW1lbnRD
b2RlcjxTdGVwc1RpbWluZ0Z1bmN0aW9uPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgU3RlcHNUaW1pbmdGdW5jdGlvbiYgdGltaW5nRnVuY3Rpb24pCit7CisgICAgLy8gVHlwZSBp
cyBkZWNvZGVkIGJ5IHRoZSBjYWxsZXIuCisgICAgaW50IG51bVN0ZXBzOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUobnVtU3RlcHMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBib29s
IHN0ZXBBdFN0YXJ0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RlcEF0U3RhcnQpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB0aW1pbmdGdW5jdGlvbi5zZXROdW1iZXJPZlN0ZXBz
KG51bVN0ZXBzKTsKKyAgICB0aW1pbmdGdW5jdGlvbi5zZXRTdGVwQXRTdGFydChzdGVwQXRTdGFy
dCk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0UG9p
bnQ+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFBvaW50JiBm
bG9hdFBvaW50KQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmVuY29k
ZShlbmNvZGVyLCBmbG9hdFBvaW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaAppbmRleCBmNTlmZDMxZjdiZGQwYjM3ZDllMmZmNWE5NWU2MDgyODk1
MzZkMTIzLi5iYTNlN2I1N2E2MWQ5MTBhN2RjNGZlZWEzYzUyNTVmNTU1MzgwYzBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0zNCw2ICsz
NCw3IEBAIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOwogY2xhc3MgQ2VydGlmaWNhdGVJ
bmZvOwogY2xhc3MgQ29sb3I7CiBjbGFzcyBDcmVkZW50aWFsOworY2xhc3MgQ3ViaWNCZXppZXJU
aW1pbmdGdW5jdGlvbjsKIGNsYXNzIEN1cnNvcjsKIGNsYXNzIERhdGFiYXNlRGV0YWlsczsKIGNs
YXNzIEZpbHRlck9wZXJhdGlvbnM7CkBAIC00OCw3ICs0OSw3IEBAIGNsYXNzIEludFBvaW50Owog
Y2xhc3MgSW50UmVjdDsKIGNsYXNzIEludFNpemU7CiBjbGFzcyBLZXlmcmFtZVZhbHVlTGlzdDsK
LWNsYXNzIFVSTDsKK2NsYXNzIExpbmVhclRpbWluZ0Z1bmN0aW9uOwogY2xhc3MgTm90aWZpY2F0
aW9uOwogY2xhc3MgUHJvdGVjdGlvblNwYWNlOwogY2xhc3MgUmVnaW9uOwpAQCAtNTYsMTEgKzU3
LDEzIEBAIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFz
cyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgU2Vzc2lvbklEOworY2xhc3MgU3RlcHNUaW1pbmdG
dW5jdGlvbjsKIGNsYXNzIFN0aWNreVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsKIGNsYXNz
IFRleHRDaGVja2luZ1JlcXVlc3REYXRhOwogY2xhc3MgVHJhbnNmb3JtYXRpb25NYXRyaXg7CiBj
bGFzcyBVc2VyU3R5bGVTaGVldDsKIGNsYXNzIFVzZXJTY3JpcHQ7CitjbGFzcyBVUkw7CiBzdHJ1
Y3QgQ29tcG9zaXRpb25VbmRlcmxpbmU7CiBzdHJ1Y3QgQ29va2llOwogc3RydWN0IERpY3RhdGlv
bkFsdGVybmF0aXZlOwpAQCAtMTEyLDYgKzExNSwyMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiB7CiAgICAgc3RhdGljIGJv
b2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4
Jik7CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkxpbmVh
clRpbWluZ0Z1bmN0aW9uPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OkxpbmVhclRpbWluZ0Z1bmN0aW9uJik7CisgICAgc3RhdGljIGJv
b2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkxpbmVhclRpbWluZ0Z1bmN0aW9u
Jik7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkN1Ymlj
QmV6aWVyVGltaW5nRnVuY3Rpb24+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRF
bmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbiYpOworICAg
IHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpDdWJpY0Jlemll
clRpbWluZ0Z1bmN0aW9uJik7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OlN0ZXBzVGltaW5nRnVuY3Rpb24+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
QXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6U3RlcHNUaW1pbmdGdW5jdGlvbiYpOwor
ICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpTdGVwc1Rp
bWluZ0Z1bmN0aW9uJik7Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVu
dEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKTsKICAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2lu
Z1N0b3JlLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdT
dG9yZS5tbQppbmRleCA2N2RhOWViNzIwMDE5NDQ1ZjhlM2I0ODhlNDRkMjU4NzkxZTU0MTJlLi40
ZTcyZTViZWUyNWM5MWJiMzFmMjBiMWY0YWMxZTU3OWNmNTYyODBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KQEAgLTQ5
LDcgKzQ5LDggQEAKIEBlbmQKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci11c2luZyBuYW1l
c3BhY2UgV2ViS2l0OworCituYW1lc3BhY2UgV2ViS2l0IHsKIAogUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmU6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlKCkKICAgICA6IG1fbGF5ZXIobnVsbHB0cikK
QEAgLTMyMSwzICszMjIsNSBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjphcHBseUJh
Y2tpbmdTdG9yZVRvTGF5ZXIoQ0FMYXllciAqbGF5ZXIpCiAKICAgICBsYXllci5jb250ZW50c09w
YXF1ZSA9IG1faXNPcGFxdWU7CiB9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxp
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlB
cHBsaWVyLmgKaW5kZXggZTdjMDI2ODYxYWQ5Y2M1MzkwZDIxMWEyYmQ4MGFhM2VkMWRkNGFiMy4u
MzdlYWY1ZGJhMzFjNmM5YjE3MDZhYjdmYzYwNGYzN2NjODc1OGFiZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBw
bGllci5oCkBAIC0zMiwxMiArMzIsMTQgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNz
IFJlbW90ZUxheWVyVHJlZUhvc3Q7CisKIGNsYXNzIFJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBw
bGllciB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBIYXNoTWFwPFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXI6OlBsYXRmb3JtTGF5ZXJJRCwgTGF5ZXJPclZpZXcgKj4gUmVsYXRlZExheWVyTWFwOwotICAg
IHN0YXRpYyB2b2lkIGFwcGx5UHJvcGVydGllcyhDQUxheWVyICosIGNvbnN0IFJlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMmLCBjb25zdCBSZWxhdGVkTGF5ZXJNYXAm
KTsKKyAgICBzdGF0aWMgdm9pZCBhcHBseVByb3BlcnRpZXMoQ0FMYXllciAqLCBSZW1vdGVMYXll
clRyZWVIb3N0KiwgY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVy
dGllcyYsIGNvbnN0IFJlbGF0ZWRMYXllck1hcCYpOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICBz
dGF0aWMgdm9pZCBhcHBseVByb3BlcnRpZXMoVUlWaWV3ICosIGNvbnN0IFJlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMmLCBjb25zdCBSZWxhdGVkTGF5ZXJNYXAmKTsK
KyAgICBzdGF0aWMgdm9pZCBhcHBseVByb3BlcnRpZXMoVUlWaWV3ICosIFJlbW90ZUxheWVyVHJl
ZUhvc3QqLCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVz
JiwgY29uc3QgUmVsYXRlZExheWVyTWFwJik7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLm1t
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxp
ZXIubW0KaW5kZXggZGQyZTcyMjkxOWNmNWI5OTI1Zjc4YjMyNTQ3ZmFiOWI5YjNjZWUwZC4uOGIw
ODMxNTNlODNmMjlkYzVlZDA3ZmE4ZTY1NGVmZjc4NGNjNDRjMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIubW0KKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxp
ZXIubW0KQEAgLTI2LDcgKzI2LDkgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiUmVt
b3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLmgiCiAKKyNpbXBvcnQgIlBsYXRmb3JtQ0FBbmlt
YXRpb25SZW1vdGUuaCIKICNpbXBvcnQgIlBsYXRmb3JtQ0FMYXllclJlbW90ZS5oIgorI2ltcG9y
dCAiUmVtb3RlTGF5ZXJUcmVlSG9zdC5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9DQUxheWVyLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0Jsb2NrRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Q
bGF0Zm9ybUNBRmlsdGVycy5oPgpAQCAtMTExLDcgKzExMyw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0
ZUN1c3RvbUFwcGVhcmFuY2UoQ0FMYXllciAqbGF5ZXIsIEdyYXBoaWNzTGF5ZXI6OkN1c3RvbUFw
cGVhcmFuCiAjZW5kaWYKIH0KIAotc3RhdGljIHZvaWQgYXBwbHlQcm9wZXJ0aWVzVG9MYXllcihD
QUxheWVyICpsYXllciwgY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJv
cGVydGllcyYgcHJvcGVydGllcykKK3N0YXRpYyB2b2lkIGFwcGx5UHJvcGVydGllc1RvTGF5ZXIo
Q0FMYXllciAqbGF5ZXIsIFJlbW90ZUxheWVyVHJlZUhvc3QqIGxheWVyVHJlZUhvc3QsIGNvbnN0
IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMmIHByb3BlcnRpZXMp
CiB7CiAgICAgaWYgKHByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbjo6TmFtZUNoYW5nZWQpCiAgICAgICAgIGxheWVyLm5hbWUgPSBwcm9wZXJ0
aWVzLm5hbWU7CkBAIC0xMjgsNyArMTMwLDcgQEAgc3RhdGljIHZvaWQgYXBwbHlQcm9wZXJ0aWVz
VG9MYXllcihDQUxheWVyICpsYXllciwgY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3QKIAog
ICAgIGlmIChwcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJh
bnNhY3Rpb246OlNpemVDaGFuZ2VkKQogICAgICAgICBsYXllci5ib3VuZHMgPSBGbG9hdFJlY3Qo
RmxvYXRQb2ludCgpLCBwcm9wZXJ0aWVzLnNpemUpOwotCisgICAgCiAgICAgaWYgKHByb3BlcnRp
ZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6QmFja2dy
b3VuZENvbG9yQ2hhbmdlZCkKICAgICAgICAgbGF5ZXIuYmFja2dyb3VuZENvbG9yID0gY2dDb2xv
ckZyb21Db2xvcihwcm9wZXJ0aWVzLmJhY2tncm91bmRDb2xvcikuZ2V0KCk7CiAKQEAgLTE5Miw2
ICsxOTQsOSBAQCBzdGF0aWMgdm9pZCBhcHBseVByb3BlcnRpZXNUb0xheWVyKENBTGF5ZXIgKmxh
eWVyLCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdAogICAgIGlmIChwcm9wZXJ0aWVzLmNo
YW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkZpbHRlcnNDaGFu
Z2VkKQogICAgICAgICBQbGF0Zm9ybUNBRmlsdGVyczo6c2V0RmlsdGVyc09uTGF5ZXIobGF5ZXIs
IHByb3BlcnRpZXMuZmlsdGVycyA/ICpwcm9wZXJ0aWVzLmZpbHRlcnMgOiBGaWx0ZXJPcGVyYXRp
b25zKCkpOwogCisgICAgaWYgKHByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbjo6QW5pbWF0aW9uc0NoYW5nZWQpCisgICAgICAgIFBsYXRmb3Jt
Q0FBbmltYXRpb25SZW1vdGU6OnVwZGF0ZUxheWVyQW5pbWF0aW9ucyhsYXllciwgbGF5ZXJUcmVl
SG9zdCwgcHJvcGVydGllcy5hZGRlZEFuaW1hdGlvbnMsIHByb3BlcnRpZXMua2V5UGF0aHNPZkFu
aW1hdGlvbnNUb1JlbW92ZSk7CisKICAgICBpZiAocHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGll
cyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpFZGdlQW50aWFsaWFzaW5nTWFza0NoYW5n
ZWQpCiAgICAgICAgIGxheWVyLmVkZ2VBbnRpYWxpYXNpbmdNYXNrID0gcHJvcGVydGllcy5lZGdl
QW50aWFsaWFzaW5nTWFzazsKIApAQCAtMTk5LDEwICsyMDQsMTAgQEAgc3RhdGljIHZvaWQgYXBw
bHlQcm9wZXJ0aWVzVG9MYXllcihDQUxheWVyICpsYXllciwgY29uc3QgUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3QKICAgICAgICAgdXBkYXRlQ3VzdG9tQXBwZWFyYW5jZShsYXllciwgcHJvcGVydGll
cy5jdXN0b21BcHBlYXJhbmNlKTsKIH0KIAotdm9pZCBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFw
cGxpZXI6OmFwcGx5UHJvcGVydGllcyhDQUxheWVyICpsYXllciwgY29uc3QgUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllcyYgcHJvcGVydGllcywgY29uc3QgUmVsYXRl
ZExheWVyTWFwJiByZWxhdGVkTGF5ZXJzKQordm9pZCBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFw
cGxpZXI6OmFwcGx5UHJvcGVydGllcyhDQUxheWVyICpsYXllciwgUmVtb3RlTGF5ZXJUcmVlSG9z
dCogbGF5ZXJUcmVlSG9zdCwgY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVy
UHJvcGVydGllcyYgcHJvcGVydGllcywgY29uc3QgUmVsYXRlZExheWVyTWFwJiByZWxhdGVkTGF5
ZXJzKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKLSAgICBhcHBseVByb3Bl
cnRpZXNUb0xheWVyKGxheWVyLCBwcm9wZXJ0aWVzKTsKKyAgICBhcHBseVByb3BlcnRpZXNUb0xh
eWVyKGxheWVyLCBsYXllclRyZWVIb3N0LCBwcm9wZXJ0aWVzKTsKIAogICAgIGlmIChwcm9wZXJ0
aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkNoaWxk
cmVuQ2hhbmdlZCkgewogICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IGNoaWxkcmVu
ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OnByb3Bl
cnRpZXMuY2hpbGRyZW4uc2l6ZSgpXSk7CkBAIC0yMzYsMTAgKzI0MSwxMCBAQCB2b2lkIFJlbW90
ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6YXBwbHlQcm9wZXJ0aWVzKENBTGF5ZXIgKmxheWVy
LCBjb25zdCBSZW1vdAogfQogCiAjaWYgUExBVEZPUk0oSU9TKQotdm9pZCBSZW1vdGVMYXllclRy
ZWVQcm9wZXJ0eUFwcGxpZXI6OmFwcGx5UHJvcGVydGllcyhVSVZpZXcgKnZpZXcsIGNvbnN0IFJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMmIHByb3BlcnRpZXMsIGNv
bnN0IFJlbGF0ZWRMYXllck1hcCYgcmVsYXRlZExheWVycykKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVl
UHJvcGVydHlBcHBsaWVyOjphcHBseVByb3BlcnRpZXMoVUlWaWV3ICp2aWV3LCBSZW1vdGVMYXll
clRyZWVIb3N0KiBsYXllclRyZWVIb3N0LCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bjo6TGF5ZXJQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLCBjb25zdCBSZWxhdGVkTGF5ZXJNYXAmIHJl
bGF0ZWRMYXllcnMpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwotICAgIGFw
cGx5UHJvcGVydGllc1RvTGF5ZXIodmlldy5sYXllciwgcHJvcGVydGllcyk7CisgICAgYXBwbHlQ
cm9wZXJ0aWVzVG9MYXllcih2aWV3LmxheWVyLCBsYXllclRyZWVIb3N0LCBwcm9wZXJ0aWVzKTsK
IAogICAgIGlmIChwcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb246OkNoaWxkcmVuQ2hhbmdlZCkgewogICAgICAgICBSZXRhaW5QdHI8TlNNdXRh
YmxlQXJyYXk+IGNoaWxkcmVuID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0
V2l0aENhcGFjaXR5OnByb3BlcnRpZXMuY2hpbGRyZW4uc2l6ZSgpXSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKaW5k
ZXggMjE4YjhkMDZhMjQwODkwNjBiZmNhMTdhY2JjMTQ5YmU0MzcxYThmMi4uNmQwOTMxMDkyNzVi
N2ZhNzllODFjMTYxMGM2OGZkZTdhMGYxNzI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaApAQCAtMjYsNiArMjYs
NyBAQAogI2lmbmRlZiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbl9oCiAjZGVmaW5lIFJlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uX2gKIAorI2luY2x1ZGUgIlBsYXRmb3JtQ0FBbmltYXRpb25S
ZW1vdGUuaCIKICNpbmNsdWRlICJSZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvQ29sb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbHRlck9wZXJhdGlvbnMuaD4K
QEAgLTM0LDYgKzM1LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ0FMYXllci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvVHJhbnNmb3JtYXRpb25NYXRyaXguaD4KICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtNzQsOSArNzYsMTAgQEAgcHVibGlj
OgogICAgICAgICBUaW1lT2Zmc2V0Q2hhbmdlZCA9IDEgPDwgMjMsCiAgICAgICAgIEJhY2tpbmdT
dG9yZUNoYW5nZWQgPSAxIDw8IDI0LAogICAgICAgICBGaWx0ZXJzQ2hhbmdlZCA9IDEgPDwgMjUs
Ci0gICAgICAgIEVkZ2VBbnRpYWxpYXNpbmdNYXNrQ2hhbmdlZCA9IDEgPDwgMjYsCi0gICAgICAg
IEN1c3RvbUFwcGVhcmFuY2VDaGFuZ2VkID0gMSA8PCAyNywKLSAgICAgICAgQ3VzdG9tQmVoYXZp
b3JDaGFuZ2VkID0gMSA8PCAyOAorICAgICAgICBBbmltYXRpb25zQ2hhbmdlZCA9IDEgPDwgMjYs
CisgICAgICAgIEVkZ2VBbnRpYWxpYXNpbmdNYXNrQ2hhbmdlZCA9IDEgPDwgMjcsCisgICAgICAg
IEN1c3RvbUFwcGVhcmFuY2VDaGFuZ2VkID0gMSA8PCAyOCwKKyAgICAgICAgQ3VzdG9tQmVoYXZp
b3JDaGFuZ2VkID0gMSA8PCAyOQogICAgIH07CiAgICAgdHlwZWRlZiB1bnNpZ25lZCBMYXllckNo
YW5nZTsKIApAQCAtMTEyLDYgKzExNSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeD4gdHJhbnNmb3JtOwogICAgICAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg+IHN1YmxheWVyVHJh
bnNmb3JtOwogICAgICAgICBWZWN0b3I8V2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1M
YXllcklEPiBjaGlsZHJlbjsKKworICAgICAgICBIYXNoTWFwPFN0cmluZywgUGxhdGZvcm1DQUFu
aW1hdGlvblJlbW90ZTo6UHJvcGVydGllcz4gYWRkZWRBbmltYXRpb25zOworICAgICAgICBIYXNo
U2V0PFN0cmluZz4ga2V5UGF0aHNPZkFuaW1hdGlvbnNUb1JlbW92ZTsKKwogICAgICAgICBXZWJD
b3JlOjpGbG9hdFBvaW50M0QgcG9zaXRpb247CiAgICAgICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQz
RCBhbmNob3JQb2ludDsKICAgICAgICAgV2ViQ29yZTo6RmxvYXRTaXplIHNpemU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
Lm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bi5tbQppbmRleCA5MDdhMzg3YzQ4YWQ4MzZhYWMzMjc3NGYzZWQxMmFhMzM5NDY0NzA1Li5iOGNh
ZjZjMDFjYmYyYTIyYWU4YWYzZTg2Njk5YzA5OTM3OGY5NmEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KQEAg
LTEwMyw2ICsxMDMsOCBAQCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0
aWVzOjpMYXllclByb3BlcnRpZXMoY29uc3QgTGF5ZXJQcm9wZXJ0aQogICAgICwgZXZlckNoYW5n
ZWRQcm9wZXJ0aWVzKG90aGVyLmV2ZXJDaGFuZ2VkUHJvcGVydGllcykKICAgICAsIG5hbWUob3Ro
ZXIubmFtZSkKICAgICAsIGNoaWxkcmVuKG90aGVyLmNoaWxkcmVuKQorICAgICwgYWRkZWRBbmlt
YXRpb25zKG90aGVyLmFkZGVkQW5pbWF0aW9ucykKKyAgICAsIGtleVBhdGhzT2ZBbmltYXRpb25z
VG9SZW1vdmUob3RoZXIua2V5UGF0aHNPZkFuaW1hdGlvbnNUb1JlbW92ZSkKICAgICAsIHBvc2l0
aW9uKG90aGVyLnBvc2l0aW9uKQogICAgICwgYW5jaG9yUG9pbnQob3RoZXIuYW5jaG9yUG9pbnQp
CiAgICAgLCBzaXplKG90aGVyLnNpemUpCkBAIC0xNDksNiArMTUxLDExIEBAIHZvaWQgUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6ZW5jb2RlKElQQzo6QXJndW1l
bnRFbmNvZGVyJiBlCiAgICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzICYgQ2hpbGRyZW5DaGFuZ2Vk
KQogICAgICAgICBlbmNvZGVyIDw8IGNoaWxkcmVuOwogCisgICAgaWYgKGNoYW5nZWRQcm9wZXJ0
aWVzICYgQW5pbWF0aW9uc0NoYW5nZWQpIHsKKyAgICAgICAgZW5jb2RlciA8PCBhZGRlZEFuaW1h
dGlvbnM7CisgICAgICAgIGVuY29kZXIgPDwga2V5UGF0aHNPZkFuaW1hdGlvbnNUb1JlbW92ZTsK
KyAgICB9CisKICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMgJiBQb3NpdGlvbkNoYW5nZWQpCiAg
ICAgICAgIGVuY29kZXIgPDwgcG9zaXRpb247CiAKQEAgLTI1MSw2ICsyNTgsMTQgQEAgYm9vbCBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzOjpkZWNvZGUoSVBDOjpB
cmd1bWVudERlY29kZXImIGQKICAgICAgICAgfQogICAgIH0KIAorICAgIGlmIChyZXN1bHQuY2hh
bmdlZFByb3BlcnRpZXMgJiBBbmltYXRpb25zQ2hhbmdlZCkgeworICAgICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHJlc3VsdC5hZGRlZEFuaW1hdGlvbnMpKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmtleVBhdGhzT2ZBbmlt
YXRpb25zVG9SZW1vdmUpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwogICAg
IGlmIChyZXN1bHQuY2hhbmdlZFByb3BlcnRpZXMgJiBQb3NpdGlvbkNoYW5nZWQpIHsKICAgICAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQucG9zaXRpb24pKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtNzM2LDYgKzc1MSw4IEBAIHN0YXRpYyB2b2lkIGR1bXBDaGFuZ2VkTGF5
ZXJzKFJlbW90ZUxheWVyVHJlZVRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW1vdGVMYXllclRyCiAg
ICAgICAgIGlmIChsYXllclByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbjo6Q2hpbGRyZW5DaGFuZ2VkKQogICAgICAgICAgICAgZHVtcFByb3Bl
cnR5PFZlY3RvcjxHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+Pih0cywgImNoaWxkcmVu
IiwgbGF5ZXJQcm9wZXJ0aWVzLmNoaWxkcmVuKTsKIAorLy8gRklYTUU6IGR1bXAgYW5pbWF0aW9u
cworCiAgICAgICAgIGlmIChsYXllclByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbjo6UG9zaXRpb25DaGFuZ2VkKQogICAgICAgICAgICAgZHVt
cFByb3BlcnR5PEZsb2F0UG9pbnQzRD4odHMsICJwb3NpdGlvbiIsIGxheWVyUHJvcGVydGllcy5w
b3NpdGlvbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUmVt
b3RlTGF5ZXJUcmVlSG9zdElPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUmVt
b3RlTGF5ZXJUcmVlSG9zdElPUy5tbQppbmRleCA5ZWRhOTU0NDI2NzRjMmE3ODMwZmQ5N2IyMWI4
MjY2ZDExYTFjNjFkLi5hMDZiYmIwOTVhZGUxMTFjZjA1ZTBiMTUxNWI5YTMyYTY3NjMzMDBkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1JlbW90ZUxheWVyVHJlZUhv
c3RJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9SZW1vdGVMYXllclRy
ZWVIb3N0SU9TLm1tCkBAIC0zNywxMCArMzcsNiBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAotQGludGVyZmFjZSBVSVZpZXcoV0tWaWV3SW50ZXJuYWxzKQotLSAodm9pZClfY3JlYXRl
TGF5ZXJXaXRoRnJhbWU6KENHUmVjdClmcmFtZTsKLUBlbmQKLQogQGludGVyZmFjZSBDQUxheWVy
KFdLTGF5ZXJJbnRlcm5hbCkKIC0gKHZvaWQpc2V0Q29udGV4dElkOih1aW50MzJfdCljb250ZXh0
SUQ7CiBAZW5kCkBAIC03Niw2ICs3MiwxMyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKK3N0YXRpYyBOU1N0cmluZyogY29uc3QgV0tMYXllcklEUHJv
cGVydHlLZXkgPSBAIldLTGF5ZXJJRCI7CisKK1dlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRm
b3JtTGF5ZXJJRCBSZW1vdGVMYXllclRyZWVIb3N0OjpsYXllcklEKExheWVyT3JWaWV3KiBsYXll
cikKK3sKKyAgICByZXR1cm4gW1tsYXllciB2YWx1ZUZvcktleTpXS0xheWVySURQcm9wZXJ0eUtl
eV0gdW5zaWduZWRMb25nTG9uZ1ZhbHVlXTsKK30KKwogTGF5ZXJPclZpZXcgKlJlbW90ZUxheWVy
VHJlZUhvc3Q6OmNyZWF0ZUxheWVyKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpM
YXllckNyZWF0aW9uUHJvcGVydGllcyYgcHJvcGVydGllcywgY29uc3QgUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllcyogbGF5ZXJQcm9wZXJ0aWVzKQogewogICAgIFJl
dGFpblB0cjxMYXllck9yVmlldz4mIGxheWVyT3JWaWV3ID0gbV9sYXllcnMuYWRkKHByb3BlcnRp
ZXMubGF5ZXJJRCwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwpAQCAtMTEwLDYgKzExMyw3IEBA
IExheWVyT3JWaWV3ICpSZW1vdGVMYXllclRyZWVIb3N0OjpjcmVhdGVMYXllcihjb25zdCBSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbjo6CiAKICAgICAvLyBGSVhNRTogRG8gdGhyb3VnaCB0aGUg
dmlldy4KICAgICBbW2xheWVyT3JWaWV3IGxheWVyXSB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNdOwor
ICAgIFtbbGF5ZXJPclZpZXcgbGF5ZXJdIHNldFZhbHVlOltOU051bWJlciBudW1iZXJXaXRoVW5z
aWduZWRMb25nTG9uZzpwcm9wZXJ0aWVzLmxheWVySURdIGZvcktleTpXS0xheWVySURQcm9wZXJ0
eUtleV07CiAKICAgICByZXR1cm4gbGF5ZXJPclZpZXcuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eS5oCmluZGV4IGRjZGU3NGFiOWQzNWExZGMyNGEzMjNjMmM0ZWU5OWY3ZjQ1Yjkz
ZWQuLjVhYmYxZDY0Y2I2OWQ1ZDQyYzcyN2E2NjdiZjJiMDBmYjBjOGE3MjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eS5oCkBAIC00NCw2ICs0NCw4IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0
IFJlbW90ZUxheWVyVHJlZUhvc3QmIHJlbW90ZUxheWVyVHJlZUhvc3QoKSBjb25zdCB7IHJldHVy
biBtX3JlbW90ZUxheWVyVHJlZUhvc3Q7IH0KIAorICAgIHZvaWQgYWNjZWxlcmF0ZWRBbmltYXRp
b25EaWRTdGFydCh1aW50NjRfdCAvKmxheWVySUQqLywgZG91YmxlIC8qc3RhcnRUaW1lKi8pOwor
CiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzaXplRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIGRldmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KaW5kZXggMzQxZDg1NjI3OWFkZTBhYzllODI3ZmMz
ZDY1MTNmMTM4ZGE2OTMwYS4uZWI5NGM4NDlhYzUyZTg3NWFkZDY3MDRhZGRiY2VjNTAwZTI4MDE0
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtNDAsNyArNDAsNyBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6UmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eShXZWJQYWdlUHJveHkqIHdlYlBhZ2VQcm94eSkKICAg
ICA6IERyYXdpbmdBcmVhUHJveHkoRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVlLCB3ZWJQ
YWdlUHJveHkpCi0gICAgLCBtX3JlbW90ZUxheWVyVHJlZUhvc3QoKQorICAgICwgbV9yZW1vdGVM
YXllclRyZWVIb3N0KCp0aGlzKQogICAgICwgbV9pc1dhaXRpbmdGb3JEaWRVcGRhdGVHZW9tZXRy
eShmYWxzZSkKIHsKICAgICBtX3dlYlBhZ2VQcm94eS0+cHJvY2VzcygpLmFkZE1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VQcm94eS0+cGFnZUlEKCksICp0aGlzKTsKQEAgLTEzMSw2
ICsxMzEsMTEgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRM
YXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnMKICAgICB9CiB9CiAKK3ZvaWQgUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6YWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFy
dCh1aW50NjRfdCBsYXllcklELCBkb3VibGUgc3RhcnRUaW1lKQoreworICAgIG1fd2ViUGFnZVBy
b3h5LT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWE6OkFjY2VsZXJhdGVkQW5p
bWF0aW9uRGlkU3RhcnQobGF5ZXJJRCwgc3RhcnRUaW1lKSwgbV93ZWJQYWdlUHJveHktPnBhZ2VJ
RCgpKTsKK30KKwogc3RhdGljIGNvbnN0IGZsb2F0IGluZGljYXRvckluc2V0ID0gMTA7CiAKICNp
ZiBQTEFURk9STShNQUMpCkBAIC0yMzYsNyArMjQxLDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5OjpzaG93RGVidWdJbmRpY2F0b3IoYm9vbCBzaG93KQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIAotICAgIG1fZGVidWdJbmRpY2F0b3JMYXllclRyZWVIb3N0ID0g
c3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVMYXllclRyZWVIb3N0PigpOworICAgIG1fZGVidWdJbmRp
Y2F0b3JMYXllclRyZWVIb3N0ID0gc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVMYXllclRyZWVIb3N0
PigqdGhpcyk7CiAgICAgbV9kZWJ1Z0luZGljYXRvckxheWVyVHJlZUhvc3QtPnNldElzRGVidWdM
YXllclRyZWVIb3N0KHRydWUpOwogCiAgICAgbV90aWxlTWFwSG9zdExheWVyID0gYWRvcHROUyhb
W0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9SZW1vdGVMYXllclRyZWVIb3N0LmgKaW5kZXggZjlkNmIzNDE0NmMxMWY0ZjkxMTEwMTM4
MDVmMjRkM2VlNTdjNTEzMS4uMTVlMzZkZTYyN2JhZDc5ZDAwNWZkNDcxYTliNjAyZTI4YTEzNDQ0
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRy
ZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRy
ZWVIb3N0LmgKQEAgLTMyLDI5ICszMiw0MyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCitPQkpDX0NMQVNTIFdLQW5pbWF0aW9uRGVsZWdh
dGU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5OwogY2xhc3MgV2ViUGFnZVByb3h5OwogCiBjbGFzcyBSZW1vdGVMYXllclRyZWVI
b3N0IHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBSZW1vdGVMYXllclRyZWVIb3N0KCk7CisgICAg
ZXhwbGljaXQgUmVtb3RlTGF5ZXJUcmVlSG9zdChSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5Jik7CiAgICAgdmlydHVhbCB+UmVtb3RlTGF5ZXJUcmVlSG9zdCgpOwogCiAgICAgTGF5ZXJP
clZpZXcgKmdldExheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCkg
Y29uc3Q7CiAgICAgTGF5ZXJPclZpZXcgKnJvb3RMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcm9v
dExheWVyOyB9CiAKKyAgICBzdGF0aWMgV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1M
YXllcklEIGxheWVySUQoTGF5ZXJPclZpZXcqKTsKKwogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0
aGUgcm9vdCBsYXllciBjaGFuZ2VkLgogICAgIGJvb2wgdXBkYXRlTGF5ZXJUcmVlKGNvbnN0IFJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiwgZmxvYXQgaW5kaWNhdG9yU2NhbGVGYWN0b3IgID0g
MSk7CiAKICAgICB2b2lkIHNldElzRGVidWdMYXllclRyZWVIb3N0KGJvb2wgZmxhZykgeyBtX2lz
RGVidWdMYXllclRyZWVIb3N0ID0gZmxhZzsgfQogICAgIGJvb2wgaXNEZWJ1Z0xheWVyVHJlZUhv
c3QoKSBjb25zdCB7IHJldHVybiBtX2lzRGVidWdMYXllclRyZWVIb3N0OyB9CiAKKyAgICB0eXBl
ZGVmIEhhc2hNYXA8V2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklELCBSZXRh
aW5QdHI8V0tBbmltYXRpb25EZWxlZ2F0ZT4+IExheWVyQW5pbWF0aW9uRGVsZWdhdGVNYXA7Cisg
ICAgTGF5ZXJBbmltYXRpb25EZWxlZ2F0ZU1hcCYgYW5pbWF0aW9uRGVsZWdhdGVzKCkgeyByZXR1
cm4gbV9hbmltYXRpb25EZWxlZ2F0ZXM7IH0KKworICAgIHZvaWQgYW5pbWF0aW9uRGlkU3RhcnQo
V2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklELCBkb3VibGUgc3RhcnRUaW1l
KTsKKwogcHJpdmF0ZToKICAgICBMYXllck9yVmlldyAqY3JlYXRlTGF5ZXIoY29uc3QgUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ3JlYXRpb25Qcm9wZXJ0aWVzJiwgY29uc3QgUmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllcyopOwogCisgICAgdm9pZCBs
YXllcldpbGxCZVJlbW92ZWQoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklE
KTsKKworICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkmIG1fZHJhd2luZ0FyZWE7
CiAgICAgTGF5ZXJPclZpZXcgKm1fcm9vdExheWVyOwogICAgIEhhc2hNYXA8V2ViQ29yZTo6R3Jh
cGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklELCBSZXRhaW5QdHI8TGF5ZXJPclZpZXc+PiBtX2xh
eWVyczsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJ
RCwgUmV0YWluUHRyPFdLQW5pbWF0aW9uRGVsZWdhdGU+PiBtX2FuaW1hdGlvbkRlbGVnYXRlczsK
ICAgICBib29sIG1faXNEZWJ1Z0xheWVyVHJlZUhvc3Q7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KaW5kZXggNWJjNzFh
MWYxNjQyYzdlMThmNmNkMmMxMmI4MGYzNjJjMWVkMmE3OC4uYWY0NmI4ZmNiN2RhYjNkMzJiNWE4
OTRhZTlmZWEyMTA5ZGRmNmY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbQpAQCAtMjYsNiArMjYsNyBAQAogI2ltcG9ydCAi
Y29uZmlnLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVIb3N0LmgiCiAKKyNpbXBvcnQgIlJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJl
ZVByb3BlcnR5QXBwbGllci5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24u
aCIKICNpbXBvcnQgIlNoYXJlYWJsZUJpdG1hcC5oIgpAQCAtNDEsOCArNDIsOSBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVJlbW90ZUxheWVyVHJl
ZUhvc3Q6OlJlbW90ZUxheWVyVHJlZUhvc3QoKQotICAgIDogbV9yb290TGF5ZXIobnVsbHB0cikK
K1JlbW90ZUxheWVyVHJlZUhvc3Q6OlJlbW90ZUxheWVyVHJlZUhvc3QoUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eSYgZHJhd2luZ0FyZWEpCisgICAgOiBtX2RyYXdpbmdBcmVhKGRyYXdp
bmdBcmVhKQorICAgICwgbV9yb290TGF5ZXIobnVsbHB0cikKICAgICAsIG1faXNEZWJ1Z0xheWVy
VHJlZUhvc3QoZmFsc2UpCiB7CiB9CkBAIC04NywxMyArODksMTMgQEAgYm9vbCBSZW1vdGVMYXll
clRyZWVIb3N0Ojp1cGRhdGVMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b24mIHRyYW4KICAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzQ29weS5jaGFuZ2VkUHJvcGVydGll
cyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpCb3JkZXJXaWR0aENoYW5nZWQpCiAgICAg
ICAgICAgICAgICAgcHJvcGVydGllc0NvcHkuYm9yZGVyV2lkdGggKj0gMSAvIGluZGljYXRvclNj
YWxlRmFjdG9yOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBSZW1vdGVMYXllclRyZWVQcm9w
ZXJ0eUFwcGxpZXI6OmFwcGx5UHJvcGVydGllcyhsYXllciwgcHJvcGVydGllc0NvcHksIHJlbGF0
ZWRMYXllcnMpOworICAgICAgICAgICAgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjph
cHBseVByb3BlcnRpZXMobGF5ZXIsIHRoaXMsIHByb3BlcnRpZXNDb3B5LCByZWxhdGVkTGF5ZXJz
KTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFw
cGxpZXI6OmFwcGx5UHJvcGVydGllcyhsYXllciwgcHJvcGVydGllcywgcmVsYXRlZExheWVycyk7
CisgICAgICAgICAgICBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXI6OmFwcGx5UHJvcGVy
dGllcyhsYXllciwgdGhpcywgcHJvcGVydGllcywgcmVsYXRlZExheWVycyk7CiAgICAgfQogCiAg
ICAgZm9yIChhdXRvJiBkZXN0cm95ZWRMYXllciA6IHRyYW5zYWN0aW9uLmRlc3Ryb3llZExheWVy
cygpKQotICAgICAgICBtX2xheWVycy5yZW1vdmUoZGVzdHJveWVkTGF5ZXIpOworICAgICAgICBs
YXllcldpbGxCZVJlbW92ZWQoZGVzdHJveWVkTGF5ZXIpOwogCiAgICAgcmV0dXJuIHJvb3RMYXll
ckNoYW5nZWQ7CiB9CkBAIC0xMDYsNyArMTA4LDI1IEBAIExheWVyT3JWaWV3ICpSZW1vdGVMYXll
clRyZWVIb3N0OjpnZXRMYXllcihHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgbGF5ZXJJ
CiAgICAgcmV0dXJuIG1fbGF5ZXJzLmdldChsYXllcklEKS5nZXQoKTsKIH0KIAordm9pZCBSZW1v
dGVMYXllclRyZWVIb3N0OjpsYXllcldpbGxCZVJlbW92ZWQoV2ViQ29yZTo6R3JhcGhpY3NMYXll
cjo6UGxhdGZvcm1MYXllcklEIGxheWVySUQpCit7CisgICAgbV9hbmltYXRpb25EZWxlZ2F0ZXMu
cmVtb3ZlKGxheWVySUQpOworICAgIG1fbGF5ZXJzLnJlbW92ZShsYXllcklEKTsKK30KKwordm9p
ZCBSZW1vdGVMYXllclRyZWVIb3N0OjphbmltYXRpb25EaWRTdGFydChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyOjpQbGF0Zm9ybUxheWVySUQgbGF5ZXJJRCwgZG91YmxlIHN0YXJ0VGltZSkKK3sKKyAg
ICBtX2RyYXdpbmdBcmVhLmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQobGF5ZXJJRCwgc3Rh
cnRUaW1lKTsKK30KKwogI2lmICFQTEFURk9STShJT1MpCitzdGF0aWMgTlNTdHJpbmcqIGNvbnN0
IFdLTGF5ZXJJRFByb3BlcnR5S2V5ID0gQCJXS0xheWVySUQiOworCitXZWJDb3JlOjpHcmFwaGlj
c0xheWVyOjpQbGF0Zm9ybUxheWVySUQgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6bGF5ZXJJRChMYXll
ck9yVmlldyogbGF5ZXIpCit7CisgICAgcmV0dXJuIFtbbGF5ZXIgdmFsdWVGb3JLZXk6V0tMYXll
cklEUHJvcGVydHlLZXldIHVuc2lnbmVkTG9uZ0xvbmdWYWx1ZV07Cit9CisKIExheWVyT3JWaWV3
ICpSZW1vdGVMYXllclRyZWVIb3N0OjpjcmVhdGVMYXllcihjb25zdCBSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbjo6TGF5ZXJDcmVhdGlvblByb3BlcnRpZXMmIHByb3BlcnRpZXMsIGNvbnN0IFJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMqKQogewogICAgIFJldGFp
blB0cjxDQUxheWVyPiYgbGF5ZXIgPSBtX2xheWVycy5hZGQocHJvcGVydGllcy5sYXllcklELCBu
dWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CkBAIC0xMzcsNiArMTU3LDcgQEAgTGF5ZXJPclZpZXcg
KlJlbW90ZUxheWVyVHJlZUhvc3Q6OmNyZWF0ZUxheWVyKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjoKICAgICB9CiAKICAgICBbbGF5ZXIgd2ViX2Rpc2FibGVBbGxBY3Rpb25zXTsK
KyAgICBbbGF5ZXIgc2V0VmFsdWU6W05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZExvbmdMb25n
OnByb3BlcnRpZXMubGF5ZXJJRF0gZm9yS2V5OldLTGF5ZXJJRFByb3BlcnR5S2V5XTsKIAogICAg
IHJldHVybiBsYXllci5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhMmZlMmI4OWMzNDc4ZjNkNTRmYjM3ZjE1MTM5
NGU1YzU1NjIxODBkLi40NGE0NjgyNWFlMGFhZDNmZDM5NWVjNGIzMzZkZjU2NWI3MWY4ZmZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC02Myw2ICs2Myw4IEBACiAJCTBGNTk0N0E0MTg3QjNCN0QwMDQzNzg1NyAvKiBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU5NDdBMjE4N0IzQjdEMDA0Mzc4NTcgLyogUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oICovOyB9OwogCQkwRjU5NDdBNzE4N0I1
MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1OTQ3
QTUxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLzsgfTsKIAkJMEY1OTQ3QTgxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTk0N0E2MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvck1lc3NhZ2VzLmggKi87IH07CisJCTBGNUUyMDAzMThFNzcwNTEwMDNF
QzNFNSAvKiBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1RTIwMDExOEU3NzA1MTAwM0VDM0U1IC8qIFBs
YXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0gKi87IH07CisJCTBGNUUyMDA0MThFNzcwNTEwMDNF
QzNFNSAvKiBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVFMjAwMjE4RTc3MDUxMDAzRUMzRTUgLyogUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oICovOyB9OwogCQkwRjkzMUMxQzE4QzU3MTE5MDBEQkE3
QzMgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5MzFDMUExOEM1NzExOTAwREJB
N0MzIC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MuaCAqLzsgfTsKIAkJ
MEY5MzFDMUQxOEM1NzExOTAwREJBN0MzIC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGlu
Z05vZGVJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjkzMUMxQjE4QzU3MTE5MDBEQkE3QzMgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZUlPUy5tbSAqLzsgfTsKIAkJMEZCNjU5MjMxMjA4QjREQjAwNDQ4MTZDIC8qIERyYXdp
bmdBcmVhSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZCNjU5MjIxMjA4QjREQjAwNDQ4MTZDIC8qIERyYXdpbmdBcmVhSW5mby5oICovOyB9OwpA
QCAtMTc5OSw2ICsxODAxLDggQEAKIAkJMEY1OTQ3QTIxODdCM0I3RDAwNDM3ODU3IC8qIFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oOyBwYXRo
ID0gU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1OTQ3QTUxODdCNTE3NjAwNDM3ODU3IC8qIFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1OTQ3QTYxODdC
NTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JN
ZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjVFMjAwMTE4RTc3MDUx
MDAzRUMzRTUgLyogUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNUUyMDAyMThFNzcwNTEwMDNFQzNFNSAvKiBQ
bGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEY5MzFDMUExOEM1NzExOTAwREJBN0MzIC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Nj
cm9sbGluZ05vZGVJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU2Nyb2xs
aW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5oOyBwYXRoID0gU2Nyb2xsaW5nL2lvcy9T
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGOTMxQzFCMThDNTcxMTkwMERCQTdDMyAvKiBTY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBuYW1lID0gU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5tbTsgcGF0aCA9
IFNjcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZCNjU5MjIxMjA4QjREQjAwNDQ4MTZDIC8q
IERyYXdpbmdBcmVhSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEcmF3
aW5nQXJlYUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYwMjAsNiArNjAy
NCw4IEBACiAJCQkJN0M2RDM3RkExNzJGNTU1RjAwOUQyODQ3IC8qIFBhZ2VCYW5uZXJNYWMubW0g
Ki8sCiAJCQkJMkRBMDQ5QjUxODBDQ0QwQTAwQUFGQTlFIC8qIEdyYXBoaWNzTGF5ZXJDQVJlbW90
ZS5jcHAgKi8sCiAJCQkJMkRBMDQ5QjYxODBDQ0QwQTAwQUFGQTlFIC8qIEdyYXBoaWNzTGF5ZXJD
QVJlbW90ZS5oICovLAorCQkJCTBGNUUyMDAxMThFNzcwNTEwMDNFQzNFNSAvKiBQbGF0Zm9ybUNB
QW5pbWF0aW9uUmVtb3RlLm1tICovLAorCQkJCTBGNUUyMDAyMThFNzcwNTEwMDNFQzNFNSAvKiBQ
bGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmggKi8sCiAJCQkJMkRBMDQ5QjExODBDQ0NEMzAwQUFG
QTlFIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAgKi8sCiAJCQkJMkRBMDQ5QjIxODBDQ0NE
MzAwQUFGQTlFIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZS5oICovLAogCQkJCTJEODcxMDE0MTgy
ODQxNUQwMDE4RkEwMSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0gKi8sCkBAIC02
OTIxLDYgKzY5MjcsNyBAQAogCQkJCUJDNEE2MkE4MTQ3NDRFQzcwMDZDNjgxQSAvKiBXZWJDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0I5RTI0MzExMjBEQUNB
MDBBMTM3RTAgLyogV2ViQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFBNTA1RkExNjgw
MDI1NTAwQTkzMEVCIC8qIFdlYkNvbnRleHRDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
NUUyMDA0MThFNzcwNTEwMDNFQzNFNSAvKiBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MTJBOTc2MTE4MEUwMzFEMDAzOUExNDkgLyogRGF0YWJhc2VQcm9j
ZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDlCOEY5MTQ3NDYwRjcwMDVGNTYy
NSAvKiBXZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNE
RTA1OUIxMUNEQThBRTAwRTQxQUYxIC8qIFdlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCkBAIC04NjYyLDYgKzg2NjksNyBAQAogCQkJCTFBQzg2RkYzMTMwQjQ2
RDMwMDJDMTI1NyAvKiBXS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQ0Q1OTdEMTExMkI1NkFDMDBFQzhDMjMgLyogV0tQcmVmZXJlbmNlcy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQ0JBQUNFQzE0NTIyNUUzMDA1M0Y4MkYgLyogV0tQcm9jZXNzR3JvdXAu
bW0gaW4gU291cmNlcyAqLywKKwkJCQkwRjVFMjAwMzE4RTc3MDUxMDAzRUMzRTUgLyogUGxhdGZv
cm1DQUFuaW1hdGlvblJlbW90ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxMkY1OEZCMTJBODhB
NTQwMDYyOTUzMCAvKiBXS1Byb3RlY3Rpb25TcGFjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkz
Nzk0ODQwODE1MEM0Qjk3MDBFNTJDRTkgLyogV0tSZW5kZXJMYXllci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyRDFCNUQ1RDE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9sbGVy
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAppbmRleCA0N2VjNTViNzFkMTE0MjllY2Q3
YjRhMGZiMmViOGNlOTkyNTYwYTE5Li5lNDE3YzI2OTQ2MzI2ODFlNTdiZjJlMTI3YTIwYmZjNjc0
YjE0YzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJh
d2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2lu
Z0FyZWEuaApAQCAtOTEsNiArOTEsNyBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgdmlydHVhbCB2b2lkIHNldEV4cG9zZWRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
ID0gMDsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBleHBvc2VkUmVjdCgpIGNvbnN0
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCh1aW50
NjRfdCAvKmxheWVySUQqLywgZG91YmxlIC8qc3RhcnRUaW1lKi8pIHsgfQogI2VuZGlmCiAjaWYg
UExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwgdm9pZCBzZXRFeHBvc2VkQ29udGVudFJlY3QoY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluCmluZGV4IDkxYmNh
ZjRjYWY2YzY3MWY1NTZlMTliZmI5MDBhMTEzMzExZmYxNDkuLmNjYWUyYWE5YWRkMzE0ZTRlYTg4
NzljNzMyNDIyNjJhY2VkZjRlNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEubWVzc2FnZXMuaW4KQEAgLTMzLDUgKzMzLDcg
QEAgbWVzc2FnZXMgLT4gRHJhd2luZ0FyZWEgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgQWRqdXN0
VHJhbnNpZW50Wm9vbShkb3VibGUgc2NhbGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQgb3JpZ2luKQog
ICAgIENvbW1pdFRyYW5zaWVudFpvb20oZG91YmxlIHNjYWxlLCBXZWJDb3JlOjpGbG9hdFBvaW50
IG9yaWdpbikKKyAgICAKKyAgICBBY2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0YXJ0KHVpbnQ2NF90
IGxheWVySUQsIGRvdWJsZSBzdGFydFRpbWUpCiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNB
UmVtb3RlLmNwcAppbmRleCBjOTVmODVmZTJiY2I5YjhjMTgwYTE3MmJhNzI4MDRhMTY5YmYxYjlk
Li41ZTFjMmY1YTA5MjI5YzI5ZmMzMjFiMWI4N2YxYzc1ZDI1MzBlMzg4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGlj
c0xheWVyQ0FSZW1vdGUuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyQ0FSZW1vdGUuaCIKKyNpbmNsdWRlICJQbGF0Zm9y
bUNBQW5pbWF0aW9uUmVtb3RlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgi
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNTIsNCArNTMsMTIgQEAgUGFzc1JlZlB0
cjxQbGF0Zm9ybUNBTGF5ZXI+IEdyYXBoaWNzTGF5ZXJDQVJlbW90ZTo6Y3JlYXRlUGxhdGZvcm1D
QUxheWVyKFBsYXRmb3IKICAgICByZXR1cm4gUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpjcmVhdGUo
cGxhdGZvcm1MYXllciwgb3duZXIsIG1fY29udGV4dCk7CiB9CiAKK1Bhc3NSZWZQdHI8UGxhdGZv
cm1DQUFuaW1hdGlvbj4gR3JhcGhpY3NMYXllckNBUmVtb3RlOjpjcmVhdGVQbGF0Zm9ybUNBQW5p
bWF0aW9uKFBsYXRmb3JtQ0FBbmltYXRpb246OkFuaW1hdGlvblR5cGUgdHlwZSwgY29uc3QgU3Ry
aW5nJiBrZXlQYXRoKQoreworICAgIHJldHVybiBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpj
cmVhdGUodHlwZSwga2V5UGF0aCk7CiB9CisKKy8vIEZJWE1FOiByZWplY3QgZmlsdGVyIGFuaW1h
dGlvbnMKKworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5o
CmluZGV4IGNmNTM5NzZjNjk4MTA3NTJmM2M0ZmYyMzJhNmRlMzBhYTRiMDliZjMuLjlhMmNmZDhj
MjVlZGNiNzJmNWQ1NjM1NTNiNzUwMmE4YjdmMjg4MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1v
dGUuaApAQCAtNTIsOSArNTIsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcj4gY3JlYXRlUGxhdGZvcm1DQUxheWVyKFdlYkNvcmU6
OlBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlLCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGll
bnQqIG93bmVyKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UGxh
dGZvcm1DQUxheWVyPiBjcmVhdGVQbGF0Zm9ybUNBTGF5ZXIoUGxhdGZvcm1MYXllciosIFdlYkNv
cmU6OlBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIpIG92ZXJyaWRlOwotCi0gICAgLy8gTm8g
YWNjZWxlcmF0ZWQgYW5pbWF0aW9ucyBmb3Igbm93LgotICAgIHZpcnR1YWwgYm9vbCBhZGRBbmlt
YXRpb24oY29uc3QgV2ViQ29yZTo6S2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmLCBjb25zdCBXZWJDb3JlOjpBbmltYXRpb24qLCBjb25zdCBTdHJpbmcmLCBkb3Vi
bGUpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdl
YkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb24+IGNyZWF0ZVBsYXRmb3JtQ0FBbmltYXRpb24oV2Vi
Q29yZTo6UGxhdGZvcm1DQUFuaW1hdGlvbjo6QW5pbWF0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBr
ZXlQYXRoKSBvdmVycmlkZTsKIAogICAgIC8vIFBsYXRmb3JtQ0FMYXllclJlbW90ZSBjYW4ndCBj
dXJyZW50bHkgcHJveHkgZGlyZWN0bHkgY29tcG9zaXRlZCBpbWFnZSBjb250ZW50cywgc28gb3B0
IG91dCBvZiB0aGlzIG9wdGltaXphdGlvbi4KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRGlyZWN0
bHlDb21wb3NpdGVJbWFnZShXZWJDb3JlOjpJbWFnZSopIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIy
N2YwZjdkZDFhNTEyY2QzOGIzMmJkYTMyMmMxMTE5YjQxOGU0MTkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRp
b25SZW1vdGUuaApAQCAtMCwwICsxLDI4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZV9oCisj
ZGVmaW5lIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGVfaAorCisjaW5jbHVkZSA8V2ViQ29yZS9Q
bGF0Zm9ybUNBQW5pbWF0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIEFyZ3VtZW50RW5jb2Rl
cjsKK2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK307CisKK09CSkNfQ0xBU1MgQ0FMYXllcjsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZUxheWVyVHJlZUhvc3Q7CisKK2NsYXNz
IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UGxhdGZv
cm1DQUFuaW1hdGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UGxhdGZvcm1D
QUFuaW1hdGlvbj4gY3JlYXRlKEFuaW1hdGlvblR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCk7
CisKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlKCkgeyB9CisKKyAgICB2
aXJ0dWFsIGJvb2wgaXNQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gdHJ1ZTsgfQorCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmlt
YXRpb24+IGNvcHkoKSBjb25zdCBvdmVycmlkZTsKKyAgICAKKyAgICB2aXJ0dWFsIFN0cmluZyBr
ZXlQYXRoKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgCisgICAgdmlydHVhbCBDRlRpbWVJbnRlcnZh
bCBiZWdpblRpbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QmVnaW5U
aW1lKENGVGltZUludGVydmFsKSBvdmVycmlkZTsKKyAgICAKKyAgICB2aXJ0dWFsIENGVGltZUlu
dGVydmFsIGR1cmF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldER1
cmF0aW9uKENGVGltZUludGVydmFsKSBvdmVycmlkZTsKKyAgICAKKyAgICB2aXJ0dWFsIGZsb2F0
IHNwZWVkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFNwZWVkKGZsb2F0
KSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgQ0ZUaW1lSW50ZXJ2YWwgdGltZU9mZnNldCgpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRUaW1lT2Zmc2V0KENGVGltZUludGVy
dmFsKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgZmxvYXQgcmVwZWF0Q291bnQoKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVwZWF0Q291bnQoZmxvYXQpIG92ZXJyaWRl
OworCisgICAgdmlydHVhbCBib29sIGF1dG9yZXZlcnNlcygpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBzZXRBdXRvcmV2ZXJzZXMoYm9vbCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0
dWFsIEZpbGxNb2RlVHlwZSBmaWxsTW9kZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzZXRGaWxsTW9kZShGaWxsTW9kZVR5cGUpIG92ZXJyaWRlOworICAgIAorICAgIHZpcnR1
YWwgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbihjb25zdCBXZWJDb3JlOjpUaW1pbmdGdW5jdGlvbios
IGJvb2wgcmV2ZXJzZSA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvcHlUaW1pbmdGdW5j
dGlvbkZyb20oY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOwor
CisgICAgdmlydHVhbCBib29sIGlzUmVtb3ZlZE9uQ29tcGxldGlvbigpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBzZXRSZW1vdmVkT25Db21wbGV0aW9uKGJvb2wpIG92ZXJyaWRl
OworCisgICAgdmlydHVhbCBib29sIGlzQWRkaXRpdmUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0QWRkaXRpdmUoYm9vbCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIFZh
bHVlRnVuY3Rpb25UeXBlIHZhbHVlRnVuY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0VmFsdWVGdW5jdGlvbihWYWx1ZUZ1bmN0aW9uVHlwZSkgb3ZlcnJpZGU7CisK
KyAgICAvLyBCYXNpYy1hbmltYXRpb24gcHJvcGVydGllcy4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0
RnJvbVZhbHVlKGZsb2F0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVl
KGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50M0QmKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9y
Jikgb3ZlcnJpZGU7CisjaWYgRU5BQkxFKENTU19GSUxURVJTKQorICAgIHZpcnR1YWwgdm9pZCBz
ZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9uKiwgaW50IGludGVybmFs
RmlsdGVyUHJvcGVydHlJbmRleCkgb3ZlcnJpZGU7CisjZW5kaWYKKyAgICB2aXJ0dWFsIHZvaWQg
Y29weUZyb21WYWx1ZUZyb20oY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1DQUFuaW1hdGlvbiopIG92
ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoZmxvYXQpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9u
TWF0cml4Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3QgV2Vi
Q29yZTo6RmxvYXRQb2ludDNEJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFs
dWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVycmlkZTsKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRF
UlMpCisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3QgV2ViQ29yZTo6RmlsdGVyT3Bl
cmF0aW9uKiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgb3ZlcnJpZGU7CisjZW5k
aWYKKyAgICB2aXJ0dWFsIHZvaWQgY29weVRvVmFsdWVGcm9tKGNvbnN0IFdlYkNvcmU6OlBsYXRm
b3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKKworICAgIC8vIEtleWZyYW1lLWFuaW1hdGlvbiBw
cm9wZXJ0aWVzLgorICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPGZsb2F0
PiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdl
YkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UG9pbnQzRD4mKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb2xv
cj4mKSBvdmVycmlkZTsKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgdmlydHVhbCB2b2lk
IHNldFZhbHVlcyhjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbj4+
JiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgb3ZlcnJpZGU7CisjZW5kaWYKKyAg
ICB2aXJ0dWFsIHZvaWQgY29weVZhbHVlc0Zyb20oY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1DQUFu
aW1hdGlvbiopIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIHNldEtleVRpbWVzKGNvbnN0
IFZlY3RvcjxmbG9hdD4mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29weUtleVRpbWVz
RnJvbShjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0VGltaW5nRnVuY3Rpb25zKGNvbnN0IFZlY3Rvcjxjb25zdCBXZWJD
b3JlOjpUaW1pbmdGdW5jdGlvbio+JiwgYm9vbCByZXZlcnNlID0gZmFsc2UpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShjb25zdCBXZWJDb3JlOjpQ
bGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CisKKyAgICBjbGFzcyBLZXlmcmFtZVZhbHVl
IHsKKyAgICBwdWJsaWM6CisgICAgICAgIGVudW0gS2V5ZnJhbWVUeXBlIHsKKyAgICAgICAgICAg
IE51bWJlcktleVR5cGUsCisgICAgICAgICAgICBDb2xvcktleVR5cGUsCisgICAgICAgICAgICBQ
b2ludEtleVR5cGUsCisgICAgICAgICAgICBUcmFuc2Zvcm1LZXlUeXBlLAorICAgICAgICB9Owor
CisgICAgICAgIEtleWZyYW1lVmFsdWUoZmxvYXQgdmFsdWUgPSAwKQorICAgICAgICAgICAgOiBr
ZXlUeXBlKE51bWJlcktleVR5cGUpCisgICAgICAgICAgICAsIG51bWJlcih2YWx1ZSkKKyAgICAg
ICAgeworICAgICAgICB9CisKKyAgICAgICAgS2V5ZnJhbWVWYWx1ZShXZWJDb3JlOjpDb2xvciB2
YWx1ZSkKKyAgICAgICAgICAgIDoga2V5VHlwZShDb2xvcktleVR5cGUpCisgICAgICAgICAgICAs
IGNvbG9yKHZhbHVlKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBLZXlmcmFtZVZh
bHVlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYgdmFsdWUpCisgICAgICAgICAgICA6IGtl
eVR5cGUoUG9pbnRLZXlUeXBlKQorICAgICAgICAgICAgLCBwb2ludCh2YWx1ZSkKKyAgICAgICAg
eworICAgICAgICB9CisKKyAgICAgICAgS2V5ZnJhbWVWYWx1ZShjb25zdCBXZWJDb3JlOjpUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgdmFsdWUpCisgICAgICAgICAgICA6IGtleVR5cGUoVHJhbnNmb3Jt
S2V5VHlwZSkKKyAgICAgICAgICAgICwgdHJhbnNmb3JtKHZhbHVlKQorICAgICAgICB7CisgICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgIEtleWZyYW1lVmFsdWUoY29uc3QgS2V5ZnJhbWVWYWx1
ZSYgb3RoZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgICp0aGlzID0gb3RoZXI7CisgICAgICAg
IH0KKworICAgICAgICBLZXlmcmFtZVZhbHVlJiBvcGVyYXRvcj0oY29uc3QgS2V5ZnJhbWVWYWx1
ZSYgb3RoZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIGtleVR5cGUgPSBvdGhlci5rZXlUeXBl
OworICAgICAgICAgICAgc3dpdGNoIChrZXlUeXBlKSB7CisgICAgICAgICAgICBjYXNlIE51bWJl
cktleVR5cGU6CisgICAgICAgICAgICAgICAgbnVtYmVyID0gb3RoZXIubnVtYmVyOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDb2xvcktleVR5cGU6CisgICAgICAg
ICAgICAgICAgY29sb3IgPSBvdGhlci5jb2xvcjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgUG9pbnRLZXlUeXBlOgorICAgICAgICAgICAgICAgIHBvaW50ID0gb3Ro
ZXIucG9pbnQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFRyYW5z
Zm9ybUtleVR5cGU6CisgICAgICAgICAgICAgICAgdHJhbnNmb3JtID0gb3RoZXIudHJhbnNmb3Jt
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisg
ICAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIEtl
eWZyYW1lVHlwZSBrZXlmcmFtZVR5cGUoKSBjb25zdCB7IHJldHVybiBrZXlUeXBlOyB9CisKKyAg
ICAgICAgZmxvYXQgbnVtYmVyVmFsdWUoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBB
U1NFUlQoa2V5VHlwZSA9PSBOdW1iZXJLZXlUeXBlKTsKKyAgICAgICAgICAgIHJldHVybiBudW1i
ZXI7CisgICAgICAgIH0KKworICAgICAgICBXZWJDb3JlOjpDb2xvciBjb2xvclZhbHVlKCkgY29u
c3QKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKGtleVR5cGUgPT0gQ29sb3JLZXlUeXBl
KTsKKyAgICAgICAgICAgIHJldHVybiBjb2xvcjsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYgcG9pbnRWYWx1ZSgpIGNvbnN0CisgICAgICAgIHsKKyAg
ICAgICAgICAgIEFTU0VSVChrZXlUeXBlID09IFBvaW50S2V5VHlwZSk7CisgICAgICAgICAgICBy
ZXR1cm4gcG9pbnQ7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBXZWJDb3JlOjpUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtVmFsdWUoKSBjb25zdAorICAgICAgICB7CisgICAgICAg
ICAgICBBU1NFUlQoa2V5VHlwZSA9PSBUcmFuc2Zvcm1LZXlUeXBlKTsKKyAgICAgICAgICAgIHJl
dHVybiB0cmFuc2Zvcm07CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGVuY29kZShJUEM6OkFy
Z3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpB
cmd1bWVudERlY29kZXImLCBLZXlmcmFtZVZhbHVlJik7CisKKyAgICBwcml2YXRlOgorICAgICAg
ICBLZXlmcmFtZVR5cGUga2V5VHlwZTsKKyAgICAgICAgdW5pb24geworICAgICAgICAgICAgZmxv
YXQgbnVtYmVyOworICAgICAgICAgICAgV2ViQ29yZTo6Q29sb3IgY29sb3I7CisgICAgICAgICAg
ICBXZWJDb3JlOjpGbG9hdFBvaW50M0QgcG9pbnQ7CisgICAgICAgICAgICBXZWJDb3JlOjpUcmFu
c2Zvcm1hdGlvbk1hdHJpeCB0cmFuc2Zvcm07CisgICAgICAgIH07CisgICAgfTsKKworICAgIHN0
cnVjdCBQcm9wZXJ0aWVzIHsKKyAgICAgICAgUHJvcGVydGllcygpCisgICAgICAgICAgICA6IGFu
aW1hdGlvblR5cGUoQmFzaWMpCisgICAgICAgICAgICAsIGJlZ2luVGltZSgwKQorICAgICAgICAg
ICAgLCBkdXJhdGlvbigwKQorICAgICAgICAgICAgLCB0aW1lT2Zmc2V0KDApCisgICAgICAgICAg
ICAsIHJlcGVhdENvdW50KDEpCisgICAgICAgICAgICAsIHNwZWVkKDEpCisgICAgICAgICAgICAs
IGZpbGxNb2RlKE5vRmlsbE1vZGUpCisgICAgICAgICAgICAsIHZhbHVlRnVuY3Rpb24oTm9WYWx1
ZUZ1bmN0aW9uKQorICAgICAgICAgICAgLCBhdXRvUmV2ZXJzZXMoZmFsc2UpCisgICAgICAgICAg
ICAsIHJlbW92ZWRPbkNvbXBsZXRpb24odHJ1ZSkKKyAgICAgICAgICAgICwgYWRkaXRpdmUoZmFs
c2UpCisgICAgICAgICAgICAsIHJldmVyc2VUaW1pbmdGdW5jdGlvbnMoZmFsc2UpCisgICAgICAg
ICAgICAsIGhhc05vblplcm9CZWdpblRpbWUoZmFsc2UpCisgICAgICAgIAorICAgICAgICB7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNv
ZGVyJikgY29uc3Q7CisgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVj
b2RlciYsIFByb3BlcnRpZXMmKTsKKworICAgICAgICBTdHJpbmcga2V5UGF0aDsKKyAgICAgICAg
UGxhdGZvcm1DQUFuaW1hdGlvbjo6QW5pbWF0aW9uVHlwZSBhbmltYXRpb25UeXBlOworCisgICAg
ICAgIGRvdWJsZSBiZWdpblRpbWU7CisgICAgICAgIGRvdWJsZSBkdXJhdGlvbjsKKyAgICAgICAg
ZG91YmxlIHRpbWVPZmZzZXQ7CisgICAgICAgIGZsb2F0IHJlcGVhdENvdW50OworICAgICAgICBm
bG9hdCBzcGVlZDsKKyAgICAgICAgCisgICAgICAgIFBsYXRmb3JtQ0FBbmltYXRpb246OkZpbGxN
b2RlVHlwZSBmaWxsTW9kZTsKKyAgICAgICAgUGxhdGZvcm1DQUFuaW1hdGlvbjo6VmFsdWVGdW5j
dGlvblR5cGUgdmFsdWVGdW5jdGlvbjsKKyAgICAgICAgCisgICAgICAgIGJvb2wgYXV0b1JldmVy
c2VzOworICAgICAgICBib29sIHJlbW92ZWRPbkNvbXBsZXRpb247CisgICAgICAgIGJvb2wgYWRk
aXRpdmU7CisgICAgICAgIGJvb2wgcmV2ZXJzZVRpbWluZ0Z1bmN0aW9uczsKKyAgICAgICAgYm9v
bCBoYXNOb25aZXJvQmVnaW5UaW1lOworCisgICAgICAgIC8vIEZvciBiYXNpYyBhbmltYXRpb25z
LCB0aGVzZSB2ZWN0b3JzIGhhdmUgdHdvIGVudHJpZXMuIEZvciBrZXlmcmFtZSBhbmltYXRpb25z
LCB0d28gb3IgbW9yZS4KKyAgICAgICAgLy8gdGltaW5nRnVuY3Rpb25zIGhhcyBuLTEgZW50cmll
cy4KKyAgICAgICAgVmVjdG9yPEtleWZyYW1lVmFsdWU+IGtleVZhbHVlczsKKyAgICAgICAgVmVj
dG9yPGZsb2F0PiBrZXlUaW1lczsKKyAgICAgICAgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpUaW1p
bmdGdW5jdGlvbj4+IHRpbWluZ0Z1bmN0aW9uczsKKyAgICB9OworCisgICAgY29uc3QgUHJvcGVy
dGllcyYgcHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJvcGVydGllczsgfQorCisgICAg
dHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUHJvcGVydGllcz4gQW5pbWF0aW9uc01hcDsKKyAgICBz
dGF0aWMgdm9pZCB1cGRhdGVMYXllckFuaW1hdGlvbnMoQ0FMYXllciAqLCBSZW1vdGVMYXllclRy
ZWVIb3N0KiwgY29uc3QgQW5pbWF0aW9uc01hcCYgYW5pbWF0aW9uc1RvQWRkLCBjb25zdCBIYXNo
U2V0PFN0cmluZz4mIGFuaW1hdGlvbnNUb1JlbW92ZSk7CisKK3ByaXZhdGU6CisgICAgUGxhdGZv
cm1DQUFuaW1hdGlvblJlbW90ZShBbmltYXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGtleVBhdGgp
OworCisgICAgUHJvcGVydGllcyBtX3Byb3BlcnRpZXM7Cit9OworCitQTEFURk9STV9DQUFOSU1B
VElPTl9UWVBFX0NBU1RTKFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUsIGlzUGxhdGZvcm1DQUFu
aW1hdGlvblJlbW90ZSgpKQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBs
YXRmb3JtQ0FBbmltYXRpb25SZW1vdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3Rl
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjRkNjNiY2U5Y2RkZDRhMGNkNzQ4YjE3ZjIzZjhmMzc4NzgyYzE3YjcK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0KQEAgLTAsMCArMSw3MzEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW1wb3J0ICJQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmgiCisKKyNpbXBvcnQgIkFyZ3Vt
ZW50Q29kZXJzLmgiCisjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVIb3N0LmgiCisjaW1wb3J0ICJX
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbXBvcnQgPFdlYkNvcmUvQmxvY2tFeGNlcHRpb25z
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
UGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5oPgorI2ltcG9ydCA8V2ViQ29yZS9UaW1pbmdGdW5jdGlv
bi5oPgorI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CisjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KKwordXNpbmcgbmFtZXNwYWNl
IFdURjsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdGF0aWMgZG91YmxlIG1lZGlhVGlt
ZVRvQ3VycmVudFRpbWUoQ0ZUaW1lSW50ZXJ2YWwgdCkKK3sKKyAgICByZXR1cm4gbW9ub3Rvbmlj
YWxseUluY3JlYXNpbmdUaW1lKCkgKyB0IC0gQ0FDdXJyZW50TWVkaWFUaW1lKCk7Cit9CisKK3N0
YXRpYyBOU1N0cmluZyAqIGNvbnN0IFdLTm9uWmVyb0JlZ2luVGltZUZsYWcgPSBAIldLUGxhdGZv
cm1DQUFuaW1hdGlvbk5vblplcm9CZWdpblRpbWVGbGFnIjsKKworQGludGVyZmFjZSBXS0FuaW1h
dGlvbkRlbGVnYXRlIDogTlNPYmplY3QgeworICAgIEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5
ZXJJRCBfbGF5ZXJJRDsKKyAgICBXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3QqIF9sYXllclRy
ZWVIb3N0OworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhMYXllcklEOihHcmFwaGljc0xh
eWVyOjpQbGF0Zm9ybUxheWVySUQpbGF5ZXJJRCBsYXllclRyZWVIb3N0OihXZWJLaXQ6OlJlbW90
ZUxheWVyVHJlZUhvc3QqKWxheWVyVHJlZUhvc3Q7CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBX
S0FuaW1hdGlvbkRlbGVnYXRlCisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aExheWVySUQ6KEdy
YXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRClsYXllcklEIGxheWVyVHJlZUhvc3Q6KFdlYktp
dDo6UmVtb3RlTGF5ZXJUcmVlSG9zdCopbGF5ZXJUcmVlSG9zdAoreworICAgIGlmICgoc2VsZiA9
IFtzdXBlciBpbml0XSkpIHsKKyAgICAgICAgX2xheWVySUQgPSBsYXllcklEOworICAgICAgICBf
bGF5ZXJUcmVlSG9zdCA9IGxheWVyVHJlZUhvc3Q7CisgICAgfQorICAgIHJldHVybiBzZWxmOwor
fQorCistICh2b2lkKWFuaW1hdGlvbkRpZFN0YXJ0OihDQUFuaW1hdGlvbiAqKWFuaW1hdGlvbgor
eworICAgIGJvb2wgaGFzTm9uWmVyb0JlZ2luVGltZSA9IFtbYW5pbWF0aW9uIHZhbHVlRm9yS2V5
OldLTm9uWmVyb0JlZ2luVGltZUZsYWddIGJvb2xWYWx1ZV07CisgICAgQ0ZUaW1lSW50ZXJ2YWwg
c3RhcnRUaW1lOworCisgICAgaWYgKGhhc05vblplcm9CZWdpblRpbWUpIHsKKyAgICAgICAgLy8g
V2UgZG9uJ3Qga25vdyB3aGF0IHRpbWUgQ0EgdXNlZCB0byBjb21taXQgdGhlIGFuaW1hdGlvbiwg
c28ganVzdCB1c2UgdGhlIGN1cnJlbnQgdGltZQorICAgICAgICAvLyAoZXZlbiB0aG91Z2ggdGhp
cyB3aWxsIGJlIHNsaWdodGx5IG9mZikuCisgICAgICAgIHN0YXJ0VGltZSA9IG1lZGlhVGltZVRv
Q3VycmVudFRpbWUoQ0FDdXJyZW50TWVkaWFUaW1lKCkpOworICAgIH0gZWxzZQorICAgICAgICBz
dGFydFRpbWUgPSBtZWRpYVRpbWVUb0N1cnJlbnRUaW1lKFthbmltYXRpb24gYmVnaW5UaW1lXSk7
CisKKyAgICBfbGF5ZXJUcmVlSG9zdC0+YW5pbWF0aW9uRGlkU3RhcnQoX2xheWVySUQsIHN0YXJ0
VGltZSk7Cit9CitAZW5kCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFBsYXRmb3JtQ0FB
bmltYXRpb25SZW1vdGU6OktleWZyYW1lVmFsdWU6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyLmVuY29kZUVudW0oa2V5VHlwZSk7CisK
KyAgICBzd2l0Y2ggKGtleVR5cGUpIHsKKyAgICBjYXNlIE51bWJlcktleVR5cGU6CisgICAgICAg
IGVuY29kZXIgPDwgbnVtYmVyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbG9yS2V5VHlw
ZToKKyAgICAgICAgZW5jb2RlciA8PCBjb2xvcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQ
b2ludEtleVR5cGU6CisgICAgICAgIGVuY29kZXIgPDwgcG9pbnQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgVHJhbnNmb3JtS2V5VHlwZToKKyAgICAgICAgZW5jb2RlciA8PCB0cmFuc2Zvcm07
CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKworYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVt
b3RlOjpLZXlmcmFtZVZhbHVlOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIs
IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OktleWZyYW1lVmFsdWUmIHZhbHVlKQoreworICAg
IGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHZhbHVlLmtleVR5cGUpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBzd2l0Y2ggKHZhbHVlLmtleVR5cGUpIHsKKyAgICBjYXNlIE51bWJlcktl
eVR5cGU6CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodmFsdWUubnVtYmVyKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb2xvcktleVR5
cGU6CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodmFsdWUuY29sb3IpKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBvaW50S2V5VHlwZToK
KyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2YWx1ZS5wb2ludCkpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVHJhbnNmb3JtS2V5VHlwZToK
KyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2YWx1ZS50cmFuc2Zvcm0pKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpQcm9wZXJ0aWVzOjplbmNv
ZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8
PCBrZXlQYXRoOworICAgIGVuY29kZXIuZW5jb2RlRW51bShhbmltYXRpb25UeXBlKTsKKworICAg
IGVuY29kZXIgPDwgYmVnaW5UaW1lOworICAgIGVuY29kZXIgPDwgZHVyYXRpb247CisgICAgZW5j
b2RlciA8PCB0aW1lT2Zmc2V0OworICAgIGVuY29kZXIgPDwgcmVwZWF0Q291bnQ7CisgICAgZW5j
b2RlciA8PCBzcGVlZDsKKworICAgIGVuY29kZXIuZW5jb2RlRW51bShmaWxsTW9kZSk7CisgICAg
ZW5jb2Rlci5lbmNvZGVFbnVtKHZhbHVlRnVuY3Rpb24pOworCisgICAgZW5jb2RlciA8PCBhdXRv
UmV2ZXJzZXM7CisgICAgZW5jb2RlciA8PCByZW1vdmVkT25Db21wbGV0aW9uOworICAgIGVuY29k
ZXIgPDwgYWRkaXRpdmU7CisgICAgZW5jb2RlciA8PCByZXZlcnNlVGltaW5nRnVuY3Rpb25zOwor
ICAgIGVuY29kZXIgPDwgaGFzTm9uWmVyb0JlZ2luVGltZTsKKyAgICAKKyAgICBlbmNvZGVyIDw8
IGtleVZhbHVlczsKKyAgICBlbmNvZGVyIDw8IGtleVRpbWVzOworICAgIAorICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHRpbWluZ0Z1bmN0aW9ucy5zaXplKCkpOworICAgIGZv
ciAoY29uc3QgYXV0byYgdGltaW5nRnVuY3Rpb24gOiB0aW1pbmdGdW5jdGlvbnMpIHsKKworICAg
ICAgICBzd2l0Y2ggKHRpbWluZ0Z1bmN0aW9uLT50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBUaW1p
bmdGdW5jdGlvbjo6TGluZWFyRnVuY3Rpb246CisgICAgICAgICAgICBlbmNvZGVyIDw8ICpzdGF0
aWNfY2FzdDxMaW5lYXJUaW1pbmdGdW5jdGlvbio+KHRpbWluZ0Z1bmN0aW9uLmdldCgpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAgIGNhc2UgVGltaW5nRnVuY3Rp
b246OkN1YmljQmV6aWVyRnVuY3Rpb246CisgICAgICAgICAgICBlbmNvZGVyIDw8ICpzdGF0aWNf
Y2FzdDxDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uKj4odGltaW5nRnVuY3Rpb24uZ2V0KCkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIAorICAgICAgICBjYXNlIFRpbWluZ0Z1bmN0aW9u
OjpTdGVwc0Z1bmN0aW9uOgorICAgICAgICAgICAgZW5jb2RlciA8PCAqc3RhdGljX2Nhc3Q8U3Rl
cHNUaW1pbmdGdW5jdGlvbio+KHRpbWluZ0Z1bmN0aW9uLmdldCgpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgfQorfQorCitib29sIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1v
dGU6OlByb3BlcnRpZXM6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6UHJvcGVydGllcyYgcHJvcGVydGllcykKK3sKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHByb3BlcnRpZXMua2V5UGF0aCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHByb3BlcnRpZXMuYW5pbWF0aW9u
VHlwZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cHJvcGVydGllcy5iZWdpblRpbWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHByb3BlcnRpZXMuZHVyYXRpb24pKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHByb3BlcnRpZXMudGltZU9mZnNldCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocHJvcGVydGll
cy5yZXBlYXRDb3VudCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocHJvcGVydGllcy5zcGVlZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHByb3BlcnRpZXMuZmlsbE1vZGUpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShwcm9wZXJ0aWVzLnZh
bHVlRnVuY3Rpb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHByb3BlcnRpZXMuYXV0b1JldmVyc2VzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcm9wZXJ0aWVzLnJlbW92ZWRPbkNvbXBsZXRpb24p
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHByb3Bl
cnRpZXMuYWRkaXRpdmUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHByb3BlcnRpZXMucmV2ZXJzZVRpbWluZ0Z1bmN0aW9ucykpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocHJvcGVydGllcy5oYXNOb25a
ZXJvQmVnaW5UaW1lKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShwcm9wZXJ0aWVzLmtleVZhbHVlcykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocHJvcGVydGllcy5rZXlUaW1lcykpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIHVpbnQ2NF90IG51bVRpbWluZ0Z1bmN0aW9uczsKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKG51bVRpbWluZ0Z1bmN0aW9ucykpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAKKyAgICBpZiAobnVtVGltaW5nRnVuY3Rpb25zKSB7CisgICAgICAgIHByb3BlcnRp
ZXMudGltaW5nRnVuY3Rpb25zLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobnVtVGltaW5nRnVuY3Rp
b25zKTsKKworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bVRpbWluZ0Z1bmN0aW9u
czsgKytpKSB7CisgICAgICAgIAorICAgICAgICAgICAgVGltaW5nRnVuY3Rpb246OlRpbWluZ0Z1
bmN0aW9uVHlwZSB0eXBlOworICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0odHlw
ZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBSZWZQdHI8
VGltaW5nRnVuY3Rpb24+IHRpbWluZ0Z1bmN0aW9uOworICAgICAgICAgICAgc3dpdGNoICh0eXBl
KSB7CisgICAgICAgICAgICBjYXNlIFRpbWluZ0Z1bmN0aW9uOjpMaW5lYXJGdW5jdGlvbjoKKyAg
ICAgICAgICAgICAgICB0aW1pbmdGdW5jdGlvbiA9IExpbmVhclRpbWluZ0Z1bmN0aW9uOjpjcmVh
dGUoKTsKKyAgICAgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKCpzdGF0aWNfY2FzdDxM
aW5lYXJUaW1pbmdGdW5jdGlvbio+KHRpbWluZ0Z1bmN0aW9uLmdldCgpKSkpCisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgVGltaW5nRnVuY3Rpb246OkN1YmljQmV6aWVyRnVu
Y3Rpb246CisgICAgICAgICAgICAgICAgdGltaW5nRnVuY3Rpb24gPSBDdWJpY0JlemllclRpbWlu
Z0Z1bmN0aW9uOjpjcmVhdGUoKTsKKyAgICAgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KCpzdGF0aWNfY2FzdDxDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uKj4odGltaW5nRnVuY3Rpb24u
Z2V0KCkpKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIFRpbWluZ0Z1bmN0aW9u
OjpTdGVwc0Z1bmN0aW9uOgorICAgICAgICAgICAgICAgIHRpbWluZ0Z1bmN0aW9uID0gU3RlcHNU
aW1pbmdGdW5jdGlvbjo6Y3JlYXRlKCk7CisgICAgICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZSgqc3RhdGljX2Nhc3Q8U3RlcHNUaW1pbmdGdW5jdGlvbio+KHRpbWluZ0Z1bmN0aW9uLmdl
dCgpKSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHJvcGVy
dGllcy50aW1pbmdGdW5jdGlvbnMudW5jaGVja2VkQXBwZW5kKHRpbWluZ0Z1bmN0aW9uLnJlbGVh
c2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworI3ByYWdt
YSBtYXJrIC0KKworUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5p
bWF0aW9uUmVtb3RlOjpjcmVhdGUoUGxhdGZvcm1DQUFuaW1hdGlvbjo6QW5pbWF0aW9uVHlwZSB0
eXBlLCBjb25zdCBTdHJpbmcmIGtleVBhdGgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQ
bGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlKHR5cGUsIGtleVBhdGgpKTsKK30KKworUGFzc1JlZlB0
cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpjb3B5KCkg
Y29uc3QKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90
ZShBbmltYXRpb25UeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCkKKyAgICA6IFBsYXRm
b3JtQ0FBbmltYXRpb24odHlwZSkKK3sKKyAgICBtX3Byb3BlcnRpZXMua2V5UGF0aCA9IGtleVBh
dGg7CisgICAgbV9wcm9wZXJ0aWVzLmFuaW1hdGlvblR5cGUgPSB0eXBlOworfQorCitTdHJpbmcg
UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6a2V5UGF0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fcHJvcGVydGllcy5rZXlQYXRoOworfQorCitDRlRpbWVJbnRlcnZhbCBQbGF0Zm9ybUNBQW5p
bWF0aW9uUmVtb3RlOjpiZWdpblRpbWUoKSBjb25zdAoreworICAgIHJldHVybiBtX3Byb3BlcnRp
ZXMuYmVnaW5UaW1lOworfQorCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldEJl
Z2luVGltZShDRlRpbWVJbnRlcnZhbCB2YWx1ZSkKK3sKKyAgICBtX3Byb3BlcnRpZXMuYmVnaW5U
aW1lID0gdmFsdWU7CisgICAgCisgICAgLy8gQWxzbyBzZXQgYSBmbGFnIHRvIHRlbGwgdXMgaWYg
d2UndmUgcGFzc2VkIGluIGEgMCB2YWx1ZS4gCisgICAgLy8gVGhlIGZsYWcgaXMgbmVlZGVkIGJl
Y2F1c2UgbGF0ZXIgYmVnaW5UaW1lIHdpbGwgZ2V0IGNoYW5nZWQKKyAgICAvLyB0byB0aGUgdGlt
ZSBhdCB3aGljaCBpdCBmaXJlZCBhbmQgd2UgbmVlZCB0byBrbm93IHdoZXRoZXIKKyAgICAvLyBv
ciBub3QgaXQgd2FzIDAgdG8gYmVnaW4gd2l0aC4KKyAgICBpZiAodmFsdWUpCisgICAgICAgIG1f
cHJvcGVydGllcy5oYXNOb25aZXJvQmVnaW5UaW1lID0gdmFsdWU7Cit9CisKK0NGVGltZUludGVy
dmFsIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmR1cmF0aW9uKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9wcm9wZXJ0aWVzLmR1cmF0aW9uOworfQorCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b25SZW1vdGU6OnNldER1cmF0aW9uKENGVGltZUludGVydmFsIHZhbHVlKQoreworICAgIG1fcHJv
cGVydGllcy5kdXJhdGlvbiA9IHZhbHVlOworfQorCitmbG9hdCBQbGF0Zm9ybUNBQW5pbWF0aW9u
UmVtb3RlOjpzcGVlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJvcGVydGllcy5zcGVlZDsK
K30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRTcGVlZChmbG9hdCB2YWx1
ZSkKK3sKKyAgICBtX3Byb3BlcnRpZXMuc3BlZWQgPSB2YWx1ZTsKK30KKworQ0ZUaW1lSW50ZXJ2
YWwgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6dGltZU9mZnNldCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fcHJvcGVydGllcy50aW1lT2Zmc2V0OworfQorCit2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb25SZW1vdGU6OnNldFRpbWVPZmZzZXQoQ0ZUaW1lSW50ZXJ2YWwgdmFsdWUpCit7CisgICAg
bV9wcm9wZXJ0aWVzLnRpbWVPZmZzZXQgPSB2YWx1ZTsKK30KKworZmxvYXQgUGxhdGZvcm1DQUFu
aW1hdGlvblJlbW90ZTo6cmVwZWF0Q291bnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3Byb3Bl
cnRpZXMucmVwZWF0Q291bnQ7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6
c2V0UmVwZWF0Q291bnQoZmxvYXQgdmFsdWUpCit7CisgICAgbV9wcm9wZXJ0aWVzLnJlcGVhdENv
dW50ID0gdmFsdWU7Cit9CisKK2Jvb2wgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6YXV0b3Jl
dmVyc2VzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcm9wZXJ0aWVzLmF1dG9SZXZlcnNlczsK
K30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRBdXRvcmV2ZXJzZXMoYm9v
bCB2YWx1ZSkKK3sKKyAgICBtX3Byb3BlcnRpZXMuYXV0b1JldmVyc2VzID0gdmFsdWU7Cit9CisK
K1BsYXRmb3JtQ0FBbmltYXRpb246OkZpbGxNb2RlVHlwZSBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVt
b3RlOjpmaWxsTW9kZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJvcGVydGllcy5maWxsTW9k
ZTsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRGaWxsTW9kZShGaWxs
TW9kZVR5cGUgdmFsdWUpCit7CisgICAgbV9wcm9wZXJ0aWVzLmZpbGxNb2RlID0gdmFsdWU7Cit9
CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0VGltaW5nRnVuY3Rpb24oY29u
c3QgVGltaW5nRnVuY3Rpb24qIHZhbHVlLCBib29sIHJldmVyc2UpCit7CisgICAgVmVjdG9yPFJl
ZlB0cjxUaW1pbmdGdW5jdGlvbj4+IHRpbWluZ0Z1bmN0aW9uczsKKyAgICB0aW1pbmdGdW5jdGlv
bnMuYXBwZW5kKHZhbHVlLT5jbG9uZSgpKTsKKworICAgIG1fcHJvcGVydGllcy50aW1pbmdGdW5j
dGlvbnMgPSBzdGQ6Om1vdmUodGltaW5nRnVuY3Rpb25zKTsKKyAgICBtX3Byb3BlcnRpZXMucmV2
ZXJzZVRpbWluZ0Z1bmN0aW9ucyA9IHJldmVyc2U7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1h
dGlvblJlbW90ZTo6Y29weVRpbWluZ0Z1bmN0aW9uRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0
aW9uKiB2YWx1ZSkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworYm9vbCBQbGF0
Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjppc1JlbW92ZWRPbkNvbXBsZXRpb24oKSBjb25zdAorewor
ICAgIHJldHVybiBtX3Byb3BlcnRpZXMucmVtb3ZlZE9uQ29tcGxldGlvbjsKK30KKwordm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRSZW1vdmVkT25Db21wbGV0aW9uKGJvb2wgdmFs
dWUpCit7CisgICAgbV9wcm9wZXJ0aWVzLnJlbW92ZWRPbkNvbXBsZXRpb24gPSB2YWx1ZTsKK30K
KworYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjppc0FkZGl0aXZlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9wcm9wZXJ0aWVzLmFkZGl0aXZlOworfQorCit2b2lkIFBsYXRmb3JtQ0FB
bmltYXRpb25SZW1vdGU6OnNldEFkZGl0aXZlKGJvb2wgdmFsdWUpCit7CisgICAgbV9wcm9wZXJ0
aWVzLmFkZGl0aXZlID0gdmFsdWU7Cit9CisKK1BsYXRmb3JtQ0FBbmltYXRpb246OlZhbHVlRnVu
Y3Rpb25UeXBlIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnZhbHVlRnVuY3Rpb24oKSBjb25z
dAoreworICAgIHJldHVybiBtX3Byb3BlcnRpZXMudmFsdWVGdW5jdGlvbjsKK30KKwordm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRWYWx1ZUZ1bmN0aW9uKFZhbHVlRnVuY3Rpb25U
eXBlIHZhbHVlKQoreworICAgIG1fcHJvcGVydGllcy52YWx1ZUZ1bmN0aW9uID0gdmFsdWU7Cit9
CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0RnJvbVZhbHVlKGZsb2F0IHZh
bHVlKQoreworICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXMucmVzaXplKDIpOworICAgIG1fcHJvcGVy
dGllcy5rZXlWYWx1ZXNbMF0gPSBLZXlmcmFtZVZhbHVlKHZhbHVlKTsKK30KKwordm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRGcm9tVmFsdWUoY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIHZhbHVlKQoreworICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXMucmVzaXplKDIpOworICAg
IG1fcHJvcGVydGllcy5rZXlWYWx1ZXNbMF0gPSBLZXlmcmFtZVZhbHVlKHZhbHVlKTsKK30KKwor
dm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRGcm9tVmFsdWUoY29uc3QgRmxvYXRQ
b2ludDNEJiB2YWx1ZSkKK3sKKyAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzLnJlc2l6ZSgyKTsKKyAg
ICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzWzBdID0gS2V5ZnJhbWVWYWx1ZSh2YWx1ZSk7Cit9CisK
K3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0RnJvbVZhbHVlKGNvbnN0IENvbG9y
JiB2YWx1ZSkKK3sKKyAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzLnJlc2l6ZSgyKTsKKyAgICBtX3By
b3BlcnRpZXMua2V5VmFsdWVzWzBdID0gS2V5ZnJhbWVWYWx1ZSh2YWx1ZSk7Cit9CisKKyNpZiBF
TkFCTEUoQ1NTX0ZJTFRFUlMpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldEZy
b21WYWx1ZShjb25zdCBGaWx0ZXJPcGVyYXRpb24qIG9wZXJhdGlvbiwgaW50IGludGVybmFsRmls
dGVyUHJvcGVydHlJbmRleCkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKyNlbmRp
ZgorCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmNvcHlGcm9tVmFsdWVGcm9tKGNv
bnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworfQorCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFRvVmFsdWUoZmxv
YXQgdmFsdWUpCit7CisgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcy5yZXNpemUoMik7CisgICAgbV9w
cm9wZXJ0aWVzLmtleVZhbHVlc1sxXSA9IEtleWZyYW1lVmFsdWUodmFsdWUpOworfQorCit2b2lk
IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFRvVmFsdWUoY29uc3QgVHJhbnNmb3JtYXRp
b25NYXRyaXgmIHZhbHVlKQoreworICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXMucmVzaXplKDIpOwor
ICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXNbMV0gPSBLZXlmcmFtZVZhbHVlKHZhbHVlKTsKK30K
Kwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRUb1ZhbHVlKGNvbnN0IEZsb2F0
UG9pbnQzRCYgdmFsdWUpCit7CisgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcy5yZXNpemUoMik7Cisg
ICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlc1sxXSA9IEtleWZyYW1lVmFsdWUodmFsdWUpOworfQor
Cit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFRvVmFsdWUoY29uc3QgQ29sb3Im
IHZhbHVlKQoreworICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXMucmVzaXplKDIpOworICAgIG1fcHJv
cGVydGllcy5rZXlWYWx1ZXNbMV0gPSBLZXlmcmFtZVZhbHVlKHZhbHVlKTsKK30KKworI2lmIEVO
QUJMRShDU1NfRklMVEVSUykKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0VG9W
YWx1ZShjb25zdCBGaWx0ZXJPcGVyYXRpb24qIG9wZXJhdGlvbiwgaW50IGludGVybmFsRmlsdGVy
UHJvcGVydHlJbmRleCkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKyNlbmRpZgor
Cit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmNvcHlUb1ZhbHVlRnJvbShjb25zdCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
K30KKworLy8gS2V5ZnJhbWUtYW5pbWF0aW9uIHByb3BlcnRpZXMuCit2b2lkIFBsYXRmb3JtQ0FB
bmltYXRpb25SZW1vdGU6OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8ZmxvYXQ+JiB2YWx1ZXMpCit7
CisgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBLZXlmcmFtZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgVmVjdG9yPEtleWZyYW1lVmFsdWU+IGtleWZyYW1lczsKKyAgICBrZXlmcmFtZXMucmVz
ZXJ2ZUluaXRpYWxDYXBhY2l0eSh2YWx1ZXMuc2l6ZSgpKTsKKyAgICAKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHZhbHVlcy5zaXplKCk7ICsraSkKKyAgICAgICAga2V5ZnJhbWVzLnVuY2hl
Y2tlZEFwcGVuZChLZXlmcmFtZVZhbHVlKHZhbHVlc1tpXSkpOworICAgIAorICAgIG1fcHJvcGVy
dGllcy5rZXlWYWx1ZXMgPSBzdGQ6Om1vdmUoa2V5ZnJhbWVzKTsKK30KKwordm9pZCBQbGF0Zm9y
bUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFRyYW5zZm9ybWF0aW9u
TWF0cml4PiYgdmFsdWVzKQoreworICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gS2V5ZnJhbWUp
CisgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgVmVjdG9yPEtleWZyYW1lVmFsdWU+IGtl
eWZyYW1lczsKKyAgICBrZXlmcmFtZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh2YWx1ZXMuc2l6
ZSgpKTsKKyAgICAKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZhbHVlcy5zaXplKCk7ICsr
aSkKKyAgICAgICAga2V5ZnJhbWVzLnVuY2hlY2tlZEFwcGVuZChLZXlmcmFtZVZhbHVlKHZhbHVl
c1tpXSkpOworICAgIAorICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXMgPSBzdGQ6Om1vdmUoa2V5
ZnJhbWVzKTsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRWYWx1ZXMo
Y29uc3QgVmVjdG9yPEZsb2F0UG9pbnQzRD4mIHZhbHVlcykKK3sKKyAgICBpZiAoYW5pbWF0aW9u
VHlwZSgpICE9IEtleWZyYW1lKQorICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgIFZlY3Rv
cjxLZXlmcmFtZVZhbHVlPiBrZXlmcmFtZXM7CisgICAga2V5ZnJhbWVzLnJlc2VydmVJbml0aWFs
Q2FwYWNpdHkodmFsdWVzLnNpemUoKSk7CisgICAgCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCB2YWx1ZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIGtleWZyYW1lcy51bmNoZWNrZWRBcHBlbmQo
S2V5ZnJhbWVWYWx1ZSh2YWx1ZXNbaV0pKTsKKyAgICAKKyAgICBtX3Byb3BlcnRpZXMua2V5VmFs
dWVzID0gc3RkOjptb3ZlKGtleWZyYW1lcyk7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
blJlbW90ZTo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxDb2xvcj4mIHZhbHVlcykKK3sKKyAgICBp
ZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZyYW1lKQorICAgICAgICByZXR1cm47CisgICAgICAg
IAorICAgIFZlY3RvcjxLZXlmcmFtZVZhbHVlPiBrZXlmcmFtZXM7CisgICAga2V5ZnJhbWVzLnJl
c2VydmVJbml0aWFsQ2FwYWNpdHkodmFsdWVzLnNpemUoKSk7CisgICAgCisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCB2YWx1ZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIGtleWZyYW1lcy51bmNo
ZWNrZWRBcHBlbmQoS2V5ZnJhbWVWYWx1ZSh2YWx1ZXNbaV0pKTsKKyAgICAKKyAgICBtX3Byb3Bl
cnRpZXMua2V5VmFsdWVzID0gc3RkOjptb3ZlKGtleWZyYW1lcyk7Cit9CisKKyNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFZhbHVlcyhj
b25zdCBWZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4+JiwgaW50IGludGVybmFsRmlsdGVy
UHJvcGVydHlJbmRleCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0
eUluZGV4KTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKyNlbmRpZgorCit2b2lkIFBs
YXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmNvcHlWYWx1ZXNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FB
bmltYXRpb24qIHZhbHVlKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lk
IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldEtleVRpbWVzKGNvbnN0IFZlY3RvcjxmbG9h
dD4mIGtleVRpbWVzKQoreworICAgIG1fcHJvcGVydGllcy5rZXlUaW1lcyA9IGtleVRpbWVzOwor
fQorCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmNvcHlLZXlUaW1lc0Zyb20oY29u
c3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0VGltaW5nRnVuY3Rp
b25zKGNvbnN0IFZlY3Rvcjxjb25zdCBUaW1pbmdGdW5jdGlvbio+JiB2YWx1ZXMsIGJvb2wgcmV2
ZXJzZSkKK3sKKyAgICBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlRpbWluZ0Z1bmN0aW9uPj4gdGlt
aW5nRnVuY3Rpb25zOworICAgIHRpbWluZ0Z1bmN0aW9ucy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KHZhbHVlcy5zaXplKCkpOworICAgIAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFsdWVz
LnNpemUoKTsgKytpKQorICAgICAgICB0aW1pbmdGdW5jdGlvbnMudW5jaGVja2VkQXBwZW5kKHZh
bHVlc1tpXS0+Y2xvbmUoKSk7CisgICAgCisgICAgbV9wcm9wZXJ0aWVzLnRpbWluZ0Z1bmN0aW9u
cyA9IHN0ZDo6bW92ZSh0aW1pbmdGdW5jdGlvbnMpOworICAgIG1fcHJvcGVydGllcy5yZXZlcnNl
VGltaW5nRnVuY3Rpb25zID0gcmV2ZXJzZTsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
UmVtb3RlOjpjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9u
KiB2YWx1ZSkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworc3RhdGljIE5TT2Jq
ZWN0KiBhbmltYXRpb25WYWx1ZUZyb21LZXlmcmFtZVZhbHVlKGNvbnN0IFBsYXRmb3JtQ0FBbmlt
YXRpb25SZW1vdGU6OktleWZyYW1lVmFsdWUmIGtleWZyYW1lVmFsdWUpCit7CisgICAgc3dpdGNo
IChrZXlmcmFtZVZhbHVlLmtleWZyYW1lVHlwZSgpKSB7CisgICAgY2FzZSBQbGF0Zm9ybUNBQW5p
bWF0aW9uUmVtb3RlOjpLZXlmcmFtZVZhbHVlOjpOdW1iZXJLZXlUeXBlOgorICAgICAgICByZXR1
cm4gW05TTnVtYmVyIG51bWJlcldpdGhEb3VibGU6a2V5ZnJhbWVWYWx1ZS5udW1iZXJWYWx1ZSgp
XTsKKworICAgIGNhc2UgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6S2V5ZnJhbWVWYWx1ZTo6
Q29sb3JLZXlUeXBlOiB7CisgICAgICAgIENvbG9yIGNvbG9yID0ga2V5ZnJhbWVWYWx1ZS5jb2xv
clZhbHVlKCk7CisgICAgICAgIHJldHVybiBbTlNBcnJheSBhcnJheVdpdGhPYmplY3RzOgorICAg
ICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhEb3VibGU6Y29sb3IucmVkKCldLAorICAgICAg
ICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhEb3VibGU6Y29sb3IuZ3JlZW4oKV0sCisgICAgICAg
ICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aERvdWJsZTpjb2xvci5ibHVlKCldLAorICAgICAgICAg
ICAgW05TTnVtYmVyIG51bWJlcldpdGhEb3VibGU6Y29sb3IuYWxwaGEoKV0sCisgICAgICAgICAg
ICBuaWxdOworICAgIH0KKworICAgIGNhc2UgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6S2V5
ZnJhbWVWYWx1ZTo6UG9pbnRLZXlUeXBlOiB7CisgICAgICAgIEZsb2F0UG9pbnQzRCBwb2ludCA9
IGtleWZyYW1lVmFsdWUucG9pbnRWYWx1ZSgpOworICAgICAgICByZXR1cm4gW05TQXJyYXkgYXJy
YXlXaXRoT2JqZWN0czoKKyAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoRG91YmxlOnBv
aW50LngoKV0sCisgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aERvdWJsZTpwb2ludC55
KCldLAorICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhEb3VibGU6cG9pbnQueigpXSwK
KyAgICAgICAgICAgIG5pbF07CisgICAgfQorICAgIGNhc2UgUGxhdGZvcm1DQUFuaW1hdGlvblJl
bW90ZTo6S2V5ZnJhbWVWYWx1ZTo6VHJhbnNmb3JtS2V5VHlwZToKKyAgICAgICAgcmV0dXJuIFtO
U1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6a2V5ZnJhbWVWYWx1ZS50cmFuc2Zvcm1WYWx1
ZSgpXTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIGFkZEFuaW1hdGlvblRvTGF5ZXIoQ0FMYXll
ciAqbGF5ZXIsIFJlbW90ZUxheWVyVHJlZUhvc3QqIGxheWVyVHJlZUhvc3QsIGNvbnN0IFN0cmlu
ZyYga2V5LCBjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpQcm9wZXJ0aWVzJiBwcm9w
ZXJ0aWVzKQoreworICAgIFJldGFpblB0cjxDQVByb3BlcnR5QW5pbWF0aW9uPiBjYUFuaW1hdGlv
bjsKKyAgICBzd2l0Y2ggKHByb3BlcnRpZXMuYW5pbWF0aW9uVHlwZSkgeworICAgIGNhc2UgUGxh
dGZvcm1DQUFuaW1hdGlvbjo6QmFzaWM6IHsKKyAgICAgICAgUmV0YWluUHRyPENBQmFzaWNBbmlt
YXRpb24+IGJhc2ljQW5pbWF0aW9uOworICAgICAgICBiYXNpY0FuaW1hdGlvbiA9IFtDQUJhc2lj
QW5pbWF0aW9uIGFuaW1hdGlvbldpdGhLZXlQYXRoOnByb3BlcnRpZXMua2V5UGF0aF07CisgICAg
ICAgIAorICAgICAgICBpZiAocHJvcGVydGllcy5rZXlWYWx1ZXMuc2l6ZSgpID4gMSkgeworICAg
ICAgICAgICAgW2Jhc2ljQW5pbWF0aW9uIHNldEZyb21WYWx1ZTphbmltYXRpb25WYWx1ZUZyb21L
ZXlmcmFtZVZhbHVlKHByb3BlcnRpZXMua2V5VmFsdWVzWzBdKV07CisgICAgICAgICAgICBbYmFz
aWNBbmltYXRpb24gc2V0VG9WYWx1ZTphbmltYXRpb25WYWx1ZUZyb21LZXlmcmFtZVZhbHVlKHBy
b3BlcnRpZXMua2V5VmFsdWVzWzFdKV07CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlm
IChwcm9wZXJ0aWVzLnRpbWluZ0Z1bmN0aW9ucy5zaXplKCkpCisgICAgICAgICAgICBbYmFzaWNB
bmltYXRpb24gc2V0VGltaW5nRnVuY3Rpb246dG9DQU1lZGlhVGltaW5nRnVuY3Rpb24ocHJvcGVy
dGllcy50aW1pbmdGdW5jdGlvbnNbMF0uZ2V0KCksIHByb3BlcnRpZXMucmV2ZXJzZVRpbWluZ0Z1
bmN0aW9ucyldOworICAgICAgICAKKyAgICAgICAgY2FBbmltYXRpb24gPSBiYXNpY0FuaW1hdGlv
bjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgUGxhdGZvcm1DQUFuaW1hdGlvbjo6
S2V5ZnJhbWU6IHsKKyAgICAgICAgUmV0YWluUHRyPENBS2V5ZnJhbWVBbmltYXRpb24+IGtleWZy
YW1lQW5pbWF0aW9uOworICAgICAgICBrZXlmcmFtZUFuaW1hdGlvbiA9IFtDQUtleWZyYW1lQW5p
bWF0aW9uIGFuaW1hdGlvbldpdGhLZXlQYXRoOnByb3BlcnRpZXMua2V5UGF0aF07CisKKyAgICAg
ICAgaWYgKHByb3BlcnRpZXMua2V5VmFsdWVzLnNpemUoKSkgeworICAgICAgICAgICAgUmV0YWlu
UHRyPE5TTXV0YWJsZUFycmF5PiBrZXlmcmFtZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkg
YWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6cHJvcGVydGllcy5rZXlWYWx1ZXMuc2l6ZSgpXSk7Cisg
ICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHZhbHVlIDogcHJvcGVydGllcy5rZXlWYWx1ZXMp
CisgICAgICAgICAgICAgICAgW2tleWZyYW1lcyBhZGRPYmplY3Q6YW5pbWF0aW9uVmFsdWVGcm9t
S2V5ZnJhbWVWYWx1ZSh2YWx1ZSldOworICAgICAgICAgICAgCisgICAgICAgICAgICBba2V5ZnJh
bWVBbmltYXRpb24gc2V0VmFsdWVzOmtleWZyYW1lcy5nZXQoKV07CisgICAgICAgIH0KKworICAg
ICAgICBpZiAocHJvcGVydGllcy5rZXlUaW1lcy5zaXplKCkpIHsKKyAgICAgICAgICAgIFJldGFp
blB0cjxOU011dGFibGVBcnJheT4ga2V5VGltZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkg
YWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6cHJvcGVydGllcy5rZXlUaW1lcy5zaXplKCldKTsKKyAg
ICAgICAgICAgIGZvciAoYXV0byBrZXlUaW1lIDogcHJvcGVydGllcy5rZXlUaW1lcykKKyAgICAg
ICAgICAgICAgICBba2V5VGltZXMgYWRkT2JqZWN0OltOU051bWJlciBudW1iZXJXaXRoRmxvYXQ6
a2V5VGltZV1dOworICAgICAgICAgICAgCisgICAgICAgICAgICBba2V5ZnJhbWVBbmltYXRpb24g
c2V0S2V5VGltZXM6a2V5VGltZXMuZ2V0KCldOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHBy
b3BlcnRpZXMudGltaW5nRnVuY3Rpb25zLnNpemUoKSkgeworICAgICAgICAgICAgUmV0YWluUHRy
PE5TTXV0YWJsZUFycmF5PiB0aW1pbmdGdW5jdGlvbnMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJy
YXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6cHJvcGVydGllcy50aW1pbmdGdW5jdGlvbnMuc2l6
ZSgpXSk7CisgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHRpbWluZ0Z1bmN0aW9uIDogcHJv
cGVydGllcy50aW1pbmdGdW5jdGlvbnMpCisgICAgICAgICAgICAgICAgW3RpbWluZ0Z1bmN0aW9u
cyBhZGRPYmplY3Q6dG9DQU1lZGlhVGltaW5nRnVuY3Rpb24odGltaW5nRnVuY3Rpb24uZ2V0KCks
IHByb3BlcnRpZXMucmV2ZXJzZVRpbWluZ0Z1bmN0aW9ucyldOworICAgICAgICAgICAgCisgICAg
ICAgICAgICBba2V5ZnJhbWVBbmltYXRpb24gc2V0VGltaW5nRnVuY3Rpb25zOnRpbWluZ0Z1bmN0
aW9ucy5nZXQoKV07CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGNhQW5pbWF0aW9uID0g
a2V5ZnJhbWVBbmltYXRpb247CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICB9CisgICAgCisg
ICAgW2NhQW5pbWF0aW9uIHNldEJlZ2luVGltZTpwcm9wZXJ0aWVzLmJlZ2luVGltZV07CisgICAg
W2NhQW5pbWF0aW9uIHNldER1cmF0aW9uOnByb3BlcnRpZXMuZHVyYXRpb25dOworICAgIFtjYUFu
aW1hdGlvbiBzZXRUaW1lT2Zmc2V0OnByb3BlcnRpZXMudGltZU9mZnNldF07CisgICAgW2NhQW5p
bWF0aW9uIHNldFJlcGVhdENvdW50OnByb3BlcnRpZXMucmVwZWF0Q291bnRdOworICAgIFtjYUFu
aW1hdGlvbiBzZXRTcGVlZDpwcm9wZXJ0aWVzLnNwZWVkXTsKKyAgICBbY2FBbmltYXRpb24gc2V0
QXV0b3JldmVyc2VzOnByb3BlcnRpZXMuYXV0b1JldmVyc2VzXTsKKyAgICBbY2FBbmltYXRpb24g
c2V0UmVtb3ZlZE9uQ29tcGxldGlvbjpwcm9wZXJ0aWVzLnJlbW92ZWRPbkNvbXBsZXRpb25dOwor
ICAgIFtjYUFuaW1hdGlvbiBzZXRBZGRpdGl2ZTpwcm9wZXJ0aWVzLmFkZGl0aXZlXTsKKyAgICAK
KyAgICBpZiAocHJvcGVydGllcy5maWxsTW9kZSAhPSBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpOb0Zp
bGxNb2RlKQorICAgICAgICBbY2FBbmltYXRpb24gc2V0RmlsbE1vZGU6dG9DQUZpbGxNb2RlVHlw
ZShwcm9wZXJ0aWVzLmZpbGxNb2RlKV07CisKKyAgICBpZiAocHJvcGVydGllcy52YWx1ZUZ1bmN0
aW9uICE9IFBsYXRmb3JtQ0FBbmltYXRpb246Ok5vVmFsdWVGdW5jdGlvbikKKyAgICAgICAgW2Nh
QW5pbWF0aW9uIHNldFZhbHVlRnVuY3Rpb246W0NBVmFsdWVGdW5jdGlvbiBmdW5jdGlvbldpdGhO
YW1lOnRvQ0FWYWx1ZUZ1bmN0aW9uVHlwZShwcm9wZXJ0aWVzLnZhbHVlRnVuY3Rpb24pXV07Cisg
ICAgCisgICAgaWYgKHByb3BlcnRpZXMuaGFzTm9uWmVyb0JlZ2luVGltZSkKKyAgICAgICAgW2Nh
QW5pbWF0aW9uLmdldCgpICBzZXRWYWx1ZTpbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSBm
b3JLZXk6V0tOb25aZXJvQmVnaW5UaW1lRmxhZ107CisgICAgCisgICAgaWYgKGxheWVyVHJlZUhv
c3QpIHsKKyAgICAgICAgR3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIGxheWVySUQgPSBS
ZW1vdGVMYXllclRyZWVIb3N0OjpsYXllcklEKGxheWVyKTsKKyAgICAKKyAgICAgICAgUmV0YWlu
UHRyPFdLQW5pbWF0aW9uRGVsZWdhdGU+JiBkZWxlZ2F0ZSA9IGxheWVyVHJlZUhvc3QtPmFuaW1h
dGlvbkRlbGVnYXRlcygpLmFkZChsYXllcklELCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7Cisg
ICAgICAgIGlmICghZGVsZWdhdGUpCisgICAgICAgICAgICBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tX
S0FuaW1hdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0V2l0aExheWVySUQ6bGF5ZXJJRCBsYXllclRy
ZWVIb3N0OmxheWVyVHJlZUhvc3RdKTsKKworICAgICAgICBbY2FBbmltYXRpb24gc2V0RGVsZWdh
dGU6ZGVsZWdhdGUuZ2V0KCldOworICAgIH0KKyAgICAKKyAgICBbbGF5ZXIgYWRkQW5pbWF0aW9u
OmNhQW5pbWF0aW9uLmdldCgpIGZvcktleTprZXldOworfQorCit2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb25SZW1vdGU6OnVwZGF0ZUxheWVyQW5pbWF0aW9ucyhDQUxheWVyICpsYXllciwgUmVtb3Rl
TGF5ZXJUcmVlSG9zdCogbGF5ZXJUcmVlSG9zdCwgY29uc3QgQW5pbWF0aW9uc01hcCYgYW5pbWF0
aW9uc1RvQWRkLCBjb25zdCBIYXNoU2V0PFN0cmluZz4mIGFuaW1hdGlvbnNUb1JlbW92ZSkKK3sK
KyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8m
IHZhbHVlIDogYW5pbWF0aW9uc1RvUmVtb3ZlKQorICAgICAgICBbbGF5ZXIgcmVtb3ZlQW5pbWF0
aW9uRm9yS2V5OnZhbHVlXTsKKworICAgIGZvciAoY29uc3QgYXV0byYga2V5VmFsdWVQYWlyIDog
YW5pbWF0aW9uc1RvQWRkKQorICAgICAgICBhZGRBbmltYXRpb25Ub0xheWVyKGxheWVyLCBsYXll
clRyZWVIb3N0LCBrZXlWYWx1ZVBhaXIua2V5LCBrZXlWYWx1ZVBhaXIudmFsdWUpOworCisgICAg
RU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKaW5kZXggNzY1OTY2NTc1ZTViOTdjYTk3MzZkZjgw
ZmJkYTA3OTU3MWZjYmQzZC4uNGQ0ZjU2ODMwMTFhNDMwNmM2YWUyOTI0NjM5NzQwOTdmNTIxYjhh
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0
Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcApAQCAtNDIsNyArNDIsOCBAQAogI2lt
cG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLXVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CisKK25hbWVzcGFjZSBXZWJLaXQgewogCiBQYXNzUmVmUHRyPFBs
YXRmb3JtQ0FMYXllclJlbW90ZT4gUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpjcmVhdGUoTGF5ZXJU
eXBlIGxheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lciwgUmVtb3RlTGF5ZXJU
cmVlQ29udGV4dCogY29udGV4dCkKIHsKQEAgLTEyNCw3ICsxMjUsNyBAQCB2b2lkIFBsYXRmb3Jt
Q0FMYXllclJlbW90ZTo6cmVjdXJzaXZlQnVpbGRUcmFuc2FjdGlvbihSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbgogICAgICAgICB9CiAKICAgICAgICAgaWYgKG1fbGF5ZXJUeXBlID09IExheWVy
VHlwZUN1c3RvbSkgewotICAgICAgICAgICAgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVy
OjphcHBseVByb3BlcnRpZXMocGxhdGZvcm1MYXllcigpLCBtX3Byb3BlcnRpZXMsIFJlbW90ZUxh
eWVyVHJlZVByb3BlcnR5QXBwbGllcjo6UmVsYXRlZExheWVyTWFwKCkpOworICAgICAgICAgICAg
UmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjphcHBseVByb3BlcnRpZXMocGxhdGZvcm1M
YXllcigpLCBudWxscHRyLCBtX3Byb3BlcnRpZXMsIFJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBw
bGllcjo6UmVsYXRlZExheWVyTWFwKCkpOwogICAgICAgICAgICAgbV9wcm9wZXJ0aWVzLmNoYW5n
ZWRQcm9wZXJ0aWVzID0gUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246Ok5vQ2hhbmdlOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xNDUsNiArMTQ2LDggQEAgdm9pZCBQbGF0
Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlY3Vyc2l2ZUJ1aWxkVHJhbnNhY3Rpb24oUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb24KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFuaW1hdGlvblN0
YXJ0ZWQoQ0ZUaW1lSW50ZXJ2YWwgYmVnaW5UaW1lKQogeworICAgIGlmIChtX293bmVyKQorICAg
ICAgICBtX293bmVyLT5wbGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkKGJlZ2luVGltZSk7
CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjplbnN1cmVCYWNraW5nU3RvcmUoKQpA
QCAtMjY3LDE4ICsyNzAsMjIgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFkb3B0U3Vi
bGF5ZXJzKFBsYXRmb3JtQ0FMYXllciogc291cmNlKQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllclJl
bW90ZTo6YWRkQW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBQbGF0Zm9ybUNBQW5p
bWF0aW9uKiBhbmltYXRpb24pCiB7Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgbV9w
cm9wZXJ0aWVzLmFkZGVkQW5pbWF0aW9ucy5zZXQoa2V5LCB0b1BsYXRmb3JtQ0FBbmltYXRpb25S
ZW1vdGUoYW5pbWF0aW9uKS0+cHJvcGVydGllcygpKTsKKyAgICBtX3Byb3BlcnRpZXMubm90ZVBy
b3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpBbmltYXRpb25zQ2hh
bmdlZCk7CisgICAgCisgICAgbV9jb250ZXh0LT53aWxsU3RhcnRBbmltYXRpb25PbkxheWVyKHRo
aXMpOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6cmVtb3ZlQW5pbWF0aW9uRm9y
S2V5KGNvbnN0IFN0cmluZyYga2V5KQogewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IC8vIEZJWE1FOiByZW1vdmUgZnJvbSBtX3Byb3BlcnRpZXMuYWRkZWRBbmltYXRpb25zID8KKyAg
ICBtX3Byb3BlcnRpZXMua2V5UGF0aHNPZkFuaW1hdGlvbnNUb1JlbW92ZS5hZGQoa2V5KTsKKyAg
ICBtX3Byb3BlcnRpZXMubm90ZVByb3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uOjpBbmltYXRpb25zQ2hhbmdlZCk7CiB9CiAKIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFu
aW1hdGlvbj4gUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphbmltYXRpb25Gb3JLZXkoY29uc3QgU3Ry
aW5nJiBrZXkpCiB7Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0KKyAgICAvLyBGSVhNRTog
aW1wbGVtZW50LgogICAgIHJldHVybiBudWxscHRyOwogfQogCkBAIC01ODksMyArNTk2LDUgQEAg
dWludDMyX3QgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpob3N0aW5nQ29udGV4dElEKCkKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gMDsKIH0KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tCmluZGV4IDQzNDI5
ZWRlYTcyMGI5YzY0M2Q3YWY3NjBiOTk2NzZmMmJiNDljNWQuLmEyMDJkNjVkZGQ2YWU1ODUyZjQy
NGVkNjhhMjQ3MzI0ZTE0MGUyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3Vz
dG9tLm1tCkBAIC0zNyw3ICszNyw4IEBACiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworbmFtZXNw
YWNlIFdlYktpdCB7CiAKIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IHBsYXRmb3JtQ0FMYXllclBv
aW50ZXIgPSBAIldLUGxhdGZvcm1DQUxheWVyIjsKIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3Rv
bTo6UGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tKFBsYXRmb3JtTGF5ZXIqIGN1c3RvbUxheWVy
LCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyLCBSZW1vdGVMYXllclRyZWVDb250ZXh0KiBj
b250ZXh0KQpAQCAtODMsMyArODQsNSBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3Rv
bTo6c2V0TmVlZHNEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCogcmVjdCkKICAgICB9IGVsc2UKICAg
ICAgICAgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXROZWVkc0Rpc3BsYXkocmVjdCk7CiB9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1v
dGVUaWxlZEJhY2tpbmcuY3BwCmluZGV4IGZmYTNjNWI1MTBiNDE4NzJiM2Q1YzMxYjQ3MWVmNDBj
ZjQzMzEwYzEuLjlmNDBjNWM0ZmRjY2Y0ZWIzNmFhN2NiYzg2YjMzOGE0ZDc1OGVhMzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxh
eWVyUmVtb3RlVGlsZWRCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5jcHAKQEAgLTMz
LDcgKzMzLDggQEAKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7Ci11c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCituYW1lc3BhY2UgV2ViS2l0IHsK
IAogUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nOjpQbGF0Zm9ybUNBTGF5ZXJSZW1v
dGVUaWxlZEJhY2tpbmcoTGF5ZXJUeXBlIGxheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50
KiBvd25lciwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCogY29udGV4dCkKICAgICA6IFBsYXRmb3Jt
Q0FMYXllclJlbW90ZShsYXllclR5cGUsIG93bmVyLCBjb250ZXh0KQpAQCAtMTAyLDMgKzEwMyw1
IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nOjpzZXRCb3JkZXJDb2xv
cihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sCiB7CiAgICAgbV90aWxlQ29udHJvbGxlci0+c2V0
VGlsZURlYnVnQm9yZGVyQ29sb3IoY29sb3IpOwogfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3Rl
TGF5ZXJUcmVlQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9SZW1vdGVMYXllclRyZWVDb250ZXh0LmgKaW5kZXggYWEwMTBlNTAyZmUxNjZkYWFiZWRiZWU3
MGMyNDZmMWNjZmY1Mzc0Yi4uOWFjNDVmZjk3ZDM1MmRjNWYzZWVhODJiNGIwZTRlNWE0NTM4ZjAx
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1v
dGVMYXllclRyZWVDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0LmgKQEAgLTU1LDYgKzU1LDExIEBAIHB1Ymxp
YzoKICAgICB2b2lkIGZsdXNoT3V0T2ZUcmVlTGF5ZXJzKCk7CiAgICAgdm9pZCBidWlsZFRyYW5z
YWN0aW9uKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiwgV2ViQ29yZTo6UGxhdGZvcm1DQUxh
eWVyJiByb290TGF5ZXIpOwogCisgICAgLy8gRnJvbSB0aGUgVUkgcHJvY2VzcworICAgIHZvaWQg
YW5pbWF0aW9uRGlkU3RhcnQoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklE
LCBkb3VibGUgc3RhcnRUaW1lKTsKKworICAgIHZvaWQgd2lsbFN0YXJ0QW5pbWF0aW9uT25MYXll
cihQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUqKTsKKwogcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpH
cmFwaGljc0xheWVyRmFjdG9yeQogICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNsaWVudCopIG92ZXJyaWRlOwpAQCAtNjYsNiArNzEsOCBAQCBwcml2YXRlOgogCiAgICAgVmVj
dG9yPFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllckNyZWF0aW9uUHJvcGVydGllcz4g
bV9jcmVhdGVkTGF5ZXJzOwogICAgIFZlY3RvcjxXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0
Zm9ybUxheWVySUQ+IG1fZGVzdHJveWVkTGF5ZXJzOworICAgIAorICAgIEhhc2hNYXA8V2ViQ29y
ZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklELCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUq
PiBtX2xheWVyc0F3YWl0aW5nQW5pbWF0aW9uU3RhcnQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQppbmRleCBkODgwNjM1ZTJmMzcyNzI3
MmRiNTlhZGZlYTM4MmU2YTY5YTkwZGYyLi5iMzgyZWJjMmI0ZTExMmM2ZjUxNTgwYmM0Y2QwMGIw
YzcwMDM4MDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCkBAIC02NSw2ICs2NSw4
IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6bGF5ZXJXaWxsQmVEZXN0cm95ZWQoUGxh
dGZvcm1DQUxheWVyUmVtb3RlKiBsYXllcikKIHsKICAgICBBU1NFUlQoIW1fZGVzdHJveWVkTGF5
ZXJzLmNvbnRhaW5zKGxheWVyLT5sYXllcklEKCkpKTsKICAgICBtX2Rlc3Ryb3llZExheWVycy5h
cHBlbmQobGF5ZXItPmxheWVySUQoKSk7CisgICAgCisgICAgbV9sYXllcnNBd2FpdGluZ0FuaW1h
dGlvblN0YXJ0LnJlbW92ZShsYXllci0+bGF5ZXJJRCgpKTsKIH0KIAogdm9pZCBSZW1vdGVMYXll
clRyZWVDb250ZXh0OjpvdXRPZlRyZWVMYXllcldhc0FkZGVkKEdyYXBoaWNzTGF5ZXIqIGxheWVy
KQpAQCAtMTAyLDQgKzEwNCwxNiBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmJ1aWxk
VHJhbnNhY3Rpb24oUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mIHRyYW5zYQogICAgIHRyYW5z
YWN0aW9uLnNldERlc3Ryb3llZExheWVySURzKHN0ZDo6bW92ZShtX2Rlc3Ryb3llZExheWVycykp
OwogfQogCit2b2lkIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OndpbGxTdGFydEFuaW1hdGlvbk9u
TGF5ZXIoUGxhdGZvcm1DQUxheWVyUmVtb3RlKiBsYXllcikKK3sKKyAgICBtX2xheWVyc0F3YWl0
aW5nQW5pbWF0aW9uU3RhcnQuYWRkKGxheWVyLT5sYXllcklEKCksIGxheWVyKTsKK30KKwordm9p
ZCBSZW1vdGVMYXllclRyZWVDb250ZXh0OjphbmltYXRpb25EaWRTdGFydChXZWJDb3JlOjpHcmFw
aGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgbGF5ZXJJRCwgZG91YmxlIHN0YXJ0VGltZSkKK3sK
KyAgICBhdXRvIGl0ID0gbV9sYXllcnNBd2FpdGluZ0FuaW1hdGlvblN0YXJ0LmZpbmQobGF5ZXJJ
RCk7CisgICAgaWYgKGl0ICE9IG1fbGF5ZXJzQXdhaXRpbmdBbmltYXRpb25TdGFydC5lbmQoKSkK
KyAgICAgICAgaXQtPnZhbHVlLT5hbmltYXRpb25TdGFydGVkKHN0YXJ0VGltZSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCmlu
ZGV4IDRlNzIyYzBlNjc2NjIyYTkzZmEzNjk1MDU0MzY3OWNjNTA4NGM0NzUuLjIwNjY4M2I1Nzdm
YzIyMzdjMDVkNmZiZjJjYmNhNjRiOWQ2ZTA3NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhLmgKQEAgLTc1LDYgKzc1LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
c2V0RXhwb3NlZFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgZXhwb3NlZFJlY3QoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBtX3Njcm9sbGVkRXhwb3NlZFJlY3Q7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBhY2Nl
bGVyYXRlZEFuaW1hdGlvbkRpZFN0YXJ0KHVpbnQ2NF90IGxheWVySUQsIGRvdWJsZSBzdGFydFRp
bWUpIG92ZXJyaWRlOworCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwgdm9pZCBzZXRF
eHBvc2VkQ29udGVudFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCmluZGV4IDExNjhhZWRj
OGFiMjEwMDc3NmE5YTI0OWUyN2I1NmNjZDg3OGRhNjQuLjI1MWI1Zjc2MTZjNWRiZjg2OTYxN2Y3
MjQ0NjhmMzc0NTUwYjZkNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5t
bQpAQCAtMjQwLDYgKzI0MCwxMSBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpm
b3JjZVJlcGFpbnQoKQogICAgIGZsdXNoTGF5ZXJzKCk7CiB9CiAKK3ZvaWQgUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWE6OmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQodWludDY0X3QgbGF5
ZXJJRCwgZG91YmxlIHN0YXJ0VGltZSkKK3sKKyAgICBtX3JlbW90ZUxheWVyVHJlZUNvbnRleHQt
PmFuaW1hdGlvbkRpZFN0YXJ0KGxheWVySUQsIHN0YXJ0VGltZSk7Cit9CisKIHZvaWQgUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNldEV4cG9zZWRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgZXhw
b3NlZFJlY3QpCiB7CiAgICAgbV9leHBvc2VkUmVjdCA9IGV4cG9zZWRSZWN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KaW5kZXggM2JhNmNmZGJiMzZiYzQxMTdl
MzY4M2U4OTViYzIyNzA1NGFiOGNlOC4uNjAwZWVlMzA5ZDc1MmE4MDA3NTRlMDVmNDBlNzNhNzM4
M2NhZTdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCkBA
IC00NCw2ICs0NCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXJDQS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9NYWluRnJhbWUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgorI2lt
cG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1JlbmRlckxheWVyQmFja2luZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJMYXllckNvbXBv
c2l0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyVmlldy5oPgpAQCAtNzYwLDcgKzc2MSw3
IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmNvbW1pdFRyYW5zaWVudFpv
b20oZG91YmxlIHNjYWxlLCBGbG9hdFBvaW50CiAgICAgdHJhbnNmb3JtLnNjYWxlKHNjYWxlKTsK
IAogICAgIFJldGFpblB0cjxDQUJhc2ljQW5pbWF0aW9uPiByZW5kZXJWaWV3QW5pbWF0aW9uQ0Eg
PSB0cmFuc2llbnRab29tU25hcEFuaW1hdGlvbkZvcktleVBhdGgoInRyYW5zZm9ybSIpOwotICAg
IFJlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiByZW5kZXJWaWV3QW5pbWF0aW9uID0gUGxhdGZv
cm1DQUFuaW1hdGlvbjo6Y3JlYXRlKHJlbmRlclZpZXdBbmltYXRpb25DQS5nZXQoKSk7CisgICAg
UmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IHJlbmRlclZpZXdBbmltYXRpb24gPSBQbGF0Zm9y
bUNBQW5pbWF0aW9uTWFjOjpjcmVhdGUocmVuZGVyVmlld0FuaW1hdGlvbkNBLmdldCgpKTsKICAg
ICByZW5kZXJWaWV3QW5pbWF0aW9uLT5zZXRUb1ZhbHVlKHRyYW5zZm9ybSk7CiAKICAgICBSZXRh
aW5QdHI8Q0FMYXllcj4gc2hhZG93TGF5ZXI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228182</attachid>
            <date>2014-03-31 08:57:48 -0700</date>
            <delta_ts>2014-03-31 13:00:57 -0700</delta_ts>
            <desc>For Win EWS</desc>
            <filename>bug-130946-20140331085725.patch</filename>
            <type>text/plain</type>
            <size>162025</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2MzkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzc5MzA1NmI1YWE3OGIy
YmM1NzVhOTRlNDk0YzY3NGExNDZmOWFmZi4uY2ExMzYxM2IxNDE4NTg3ZmUxZGI2NTJkZWIzYmYz
MzBhMTYyMjkyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE0LTAzLTMwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtVSS1zaWRlIGNv
bXBvc2l0aW5nXSBQcm94eSBhbmltYXRpb25zIHRvIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA5NDYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRvIHByb3h5IENB
IGFuaW1hdGlvbnMsIG1ha2UgUGxhdGZvcm1DQUFuaW1hdGlvbiBhIHB1cmUgdmlydHVhbCBiYXNl
IGNsYXNzCisgICAgICAgIGFuZCBzdWJjbGFzcyBmb3IgTWFjLCBXaW5kb3dzLCBhbmQgUmVtb3Rl
IChqdXN0IGxpa2UgUGxhdGZvcm1DQUxheWVyKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBjb2Rp
bmcgc3VwcG9ydCBmb3IgVGltaW5nRnVuY3Rpb25zLgorICAgICAgICAKKyAgICAgICAgRG8gc29t
ZSBtaW5vciAjaW5jbHVkZSB0aWR5dXAuCisgICAgICAgIAorICAgICAgICBNaW5vciByZWZhY3Rv
ciBpbiBHcmFwaGljc0xheWVyQ0EgdG8gc2hhcmUgc29tZSBhbmltYXRpb25zIGNvZGUuCisKKyAg
ICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9u
Lmg6IEFkZCBzZXR0ZXJzIG5lZWQgZm9yIGVuY29kZS9kZWNvZGUuCisgICAgICAgIChXZWJDb3Jl
OjpDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uOjpzZXRWYWx1ZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbjo6c2V0VGltaW5nRnVuY3Rpb25QcmVzZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6U3RlcHNUaW1pbmdGdW5jdGlvbjo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlN0ZXBzVGltaW5nRnVuY3Rpb246OnNldE51bWJlck9mU3RlcHMpOgorICAgICAg
ICAoV2ViQ29yZTo6U3RlcHNUaW1pbmdGdW5jdGlvbjo6c2V0U3RlcEF0U3RhcnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZVBsYXRmb3JtQ0FBbmltYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjphbmltYXRpb25DYW5CZUFjY2VsZXJhdGVk
KTogTWlub3IgcmVmYWN0b3Igc28gd2UgY2FuIHNoYXJlCisgICAgICAgIGNvZGUgd2l0aCBHcmFw
aGljc0xheWVyQ0FSZW1vdGUuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmFk
ZEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUJh
c2ljQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3NSZWZQdHI8UGxhdGZvcm1DQUFu
aW1hdGlvbj5HcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUtleWZyYW1lQW5pbWF0aW9uKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmg6CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uOjp+UGxhdGZvcm1DQUFuaW1hdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uOjppc1BsYXRmb3JtQ0FBbmltYXRpb25NYWMp
OgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1DQUFuaW1hdGlvbjo6aXNQbGF0Zm9ybUNBQW5p
bWF0aW9uV2luKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb246OmlzUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
Q0FBbmltYXRpb246OnNldFR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1Bs
YXRmb3JtQ0FMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0
Zm9ybUNBQW5pbWF0aW9uTWFjLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW06CisgICAgICAgIChQbGF0Zm9ybUNB
TGF5ZXJNYWM6OmFkZEFuaW1hdGlvbkZvcktleSk6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJN
YWM6OmFuaW1hdGlvbkZvcktleSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFj
L1RpbGVDb250cm9sbGVyLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9Q
bGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5oOiBBZGRlZC4KKwogMjAxNC0wMy0yNyAgSm9z
ZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVz
ZWQgTG9jYWxlTWFjOjpjcmVhdGUgbWV0aG9kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjAxYTk5ZGYxMDdjNmNh
NWEyNjM1YTg0NjY1NjBiZDdmOTYzNGQwOC4uM2E4NmM5YTE3ODdlMTdmMWM5OTIwMzhhMmJjNzZj
ZDFlZGE2NzE0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMiBAQAorMjAxNC0wMy0zMCAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBbVUktc2lkZSBj
b21wb3NpdGluZ10gUHJveHkgYW5pbWF0aW9ucyB0byB0aGUgVUkgcHJvY2VzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwOTQ2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBBZGQgZW5jb2Rp
bmcvZGVjb2Rpbmcgb2YgVGltaW5nRnVuY3Rpb25zLiBBZGQgZW5jb2Rpbmcgc3VwcG9ydAorICAg
ICAgICBmb3IgSGFzaFNldC4KKyAgICAgICAgCisgICAgICAgIEFkZCBQbGF0Zm9ybUNBQW5pbWF0
aW9uUmVtb3RlIGFuZCBoYXZlIFBsYXRmb3JtQ0FMYXllclJlbW90ZSBhbGxvdworICAgICAgICBh
bmltYXRpb25zIG5vdy4gUGxhdGZvcm1DQUxheWVyUmVtb3RlJ3MgcHJvcGVydGllcyBhcmUgZGVm
aW5lZCBpbiB0aGUgY2xhc3MsCisgICAgICAgIGFzIGlzIHRoZSBlbmNvZGluZy9kZWNvZGluZyAo
bXVjaCBjbGVhbmVyIHRoYW4gaGF2aW5nIHRoZW0gaW4gdGhlIHRyYW5zYWN0aW9uCisgICAgICAg
IGNsYXNzIEkgdGhpbmspLgorICAgICAgICAKKyAgICAgICAgQWRkIHN1cHBvcnQgdGhlICJhbmlt
YXRpb25EaWRTdGFydCIgY2FsbGJhY2sgYW5kIHNlbmRpbmcgdGhpcyBiYWNrIHRvIHRoZQorICAg
ICAgICB3ZWIgcHJvY2Vzcy4gVGhpcyBpbnZvbHZlcyBhIEhhc2hNYXAgb2YgbGF5ZXJJRC0+V0tB
bmltYXRpb25EZWxlZ2F0ZSBzdG9yZWQKKyAgICAgICAgb24gdGhlIFJlbW90ZUxheWVyVHJlZUhv
c3QsIGFuZCBhIG1lc3NhZ2Ugc2VuZCB2aWEgdGhlIERyYXdpbmdBcmVhLiBPbiB0aGUKKyAgICAg
ICAgb3RoZXIgc2lkZSwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCBzdG9yZXMgYSBIYXNoTWFwIG9m
IGxheWVySUQtPlBsYXRmb3JtQ0FMYXllclJlbW90ZSoKKyAgICAgICAgZm9yIGxheWVycyB3aGlj
aCBoYXZlIGp1c3Qgc3RhcnRlZCBhbmltYXRpb25zLCB3aGljaCBpcyB1c2VkIHRvIGdldCB0aGUK
KyAgICAgICAgUGxhdGZvcm1DQUxheWVyKiB0byBjYWxsIGFuaW1hdGlvbkRpZFN0YXJ0KCkgb24u
CisgICAgICAgIAorICAgICAgICBUaGlzIHJlcXVpcmVzIHRoYXQgdGhlIFJlbW90ZUxheWVyVHJl
ZUhvc3QqIGJlIHBhc3NlZCBkb3duIGludG8gcHJvcGVydHkgYXBwbGljYXRpb24sCisgICAgICAg
IGFuZCB0aGF0IHRoZSBSZW1vdGVMYXllclRyZWVIb3N0IGhhdmUgYSByZWZlcmVuY2UgdG8gdGhl
IGRyYXdpbmcgYXJlYS4KKyAgICAgICAgCisgICAgICAgIFRvIGV2ZXJ5IENBTGF5ZXIgaW4gdGhl
IFVJIHByb2Nlc3Mgd2UgLXNldFZhbHVlOmZvcktleTogdG8gdHJhY2sgdGhlIFBsYXRmb3JtTGF5
ZXJJRCwKKyAgICAgICAgc28gd2UgY2FuIGdldCBiYWNrIHRvIGl0IGluIG9yZGVyIHRvIGRpc3Bh
dGNoICJhbmltYXRpb25EaWRTdGFydCIuCisgICAgICAgIAorICAgICAgICBSZXBsYWNlIHNvbWUg
InVzaW5nIG5hbWVzcGFjZSBXZWJLaXQiIHdpdGggIm5hbWVzcGFjZSBXZWJLaXQgeyB9Ii4KKwor
ICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVy
PExpbmVhclRpbWluZ0Z1bmN0aW9uPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxMaW5lYXJUaW1pbmdGdW5jdGlvbj46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbj46OmVuY29kZSk6CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbj46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8U3RlcHNUaW1pbmdGdW5jdGlvbj46OmVuY29kZSk6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8U3RlcHNUaW1pbmdGdW5jdGlvbj46OmRlY29k
ZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAq
IFNoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW06CisgICAgICAgICogU2hhcmVk
L21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIuaDoKKyAgICAgICAgKiBTaGFyZWQv
bWFjL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbToKKyAgICAgICAgKFdlYktpdDo6
YXBwbHlQcm9wZXJ0aWVzVG9MYXllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJl
ZVByb3BlcnR5QXBwbGllcjo6YXBwbHlQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBTaGFyZWQvbWFj
L1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmg6CisgICAgICAgICogU2hhcmVkL21hYy9SZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6TGF5ZXJQcm9wZXJ0aWVzKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6
ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246Okxh
eWVyUHJvcGVydGllczo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6ZHVtcENoYW5nZWRMYXll
cnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUmVtb3RlTGF5ZXJUcmVlSG9zdElPUy5tbToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6bGF5ZXJJRCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OmNyZWF0ZUxheWVyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW06CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OlJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5OjphY2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0YXJ0KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6c2hvd0RlYnVnSW5kaWNh
dG9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QuaDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6YW5pbWF0aW9uRGVsZWdhdGVzKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW06CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OlJlbW90ZUxheWVyVHJlZUhvc3QpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0Ojp1cGRhdGVMYXllclRyZWUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjpsYXllcldpbGxCZVJlbW92ZWQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjphbmltYXRpb25EaWRTdGFydCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OmxheWVySUQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjpjcmVhdGVMYXllcik6CisgICAgICAgICog
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9EcmF3aW5nQXJlYS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYTo6YWNj
ZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R3JhcGhpY3NM
YXllckNBUmVtb3RlOjpjcmVhdGVQbGF0Zm9ybUNBQW5pbWF0aW9uKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1v
dGUubW06IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1D
QUxheWVyUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3Rl
OjpyZWN1cnNpdmVCdWlsZFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1D
QUxheWVyUmVtb3RlOjphbmltYXRpb25TdGFydGVkKToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZv
cm1DQUxheWVyUmVtb3RlOjphZGRBbmltYXRpb25Gb3JLZXkpOgorICAgICAgICAoV2ViS2l0OjpQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlbW92ZUFuaW1hdGlvbkZvcktleSk6CisgICAgICAgIChX
ZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZTo6YW5pbWF0aW9uRm9yS2V5KToKKyAgICAgICAg
KFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6cmVjdXJzaXZlQnVpbGRUcmFuc2FjdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFkZEFuaW1hdGlvbkZvcktleSk6
IERlbGV0ZWQuCisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlbW92ZUFuaW1hdGlv
bkZvcktleSk6IERlbGV0ZWQuCisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFuaW1h
dGlvbkZvcktleSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6bGF5ZXJXaWxsQmVEZXN0cm95
ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVDb250ZXh0Ojp3aWxsU3RhcnRB
bmltYXRpb25PbkxheWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlQ29udGV4
dDo6YW5pbWF0aW9uRGlkU3RhcnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6YWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWE6OmNvbW1pdFRyYW5zaWVudFpvb20pOgorCiAyMDE0LTAzLTI3ICBBbGV4ZXkgUHJvc2t1cnlh
a292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIENvbmZpcm0gY29tcG9zaXRpb24gaW4gcmVz
aWduRmlyc3RSZXNwb25kZXIsIGRvbid0IGNhbmNlbCBpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRl
eCBiNTMzNDVmMmIzYzhmNWNkNTcyYjU3NTcxNzRkN2ZjYzNlMGExZTEwLi5hYWRmZjg4NGVlNTZl
ZTRiNzQ3ZGFmMzQzNDNmODI1NTUzZjA5MjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNzE2
LDYgKzcxNiw3IEBAIF9fWk43V2ViQ29yZTE2bmV4dExpbmVQb3NpdGlvbkVSS05TXzE1VmlzaWJs
ZVBvc2l0aW9uRWlOU18xMkVkaXRhYmxlVHlwZUUKIF9fWk43V2ViQ29yZTE2c2NyaXB0TmFtZVRv
Q29kZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE2c3RhcnRPZlBhcmFncmFwaEVSS05T
XzE1VmlzaWJsZVBvc2l0aW9uRU5TXzI3RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlRQogX19a
TjdXZWJDb3JlMTZ0aHJlYWRHbG9iYWxEYXRhRXYKK19fWk43V2ViQ29yZTE2dG9DQUZpbGxNb2Rl
VHlwZUVOU18xOVBsYXRmb3JtQ0FBbmltYXRpb24xMkZpbGxNb2RlVHlwZUUKIF9fWk43V2ViQ29y
ZTE3Q3JlZGVudGlhbFN0b3JhZ2UyNGdldEZyb21QZXJzaXN0ZW50U3RvcmFnZUVSS05TXzE1UHJv
dGVjdGlvblNwYWNlRQogX19aTjdXZWJDb3JlMTdDcmVkZW50aWFsU3RvcmFnZTNnZXRFUktOU18x
NVByb3RlY3Rpb25TcGFjZUUKIF9fWk43V2ViQ29yZTE3RE9NSW1wbGVtZW50YXRpb24xM2lzWE1M
TUlNRVR5cGVFUktOM1dURjZTdHJpbmdFCkBAIC03OTEsOSArNzkyLDYgQEAgX19aTjdXZWJDb3Jl
MTlNZWRpYVNlc3Npb25NYW5hZ2VyMTdiZWdpbkludGVycnVwdGlvbkV2CiBfX1pON1dlYkNvcmUx
OU1lZGlhU2Vzc2lvbk1hbmFnZXIxN3JlbW92ZVJlc3RyaWN0aW9uRU5TXzEyTWVkaWFTZXNzaW9u
OU1lZGlhVHlwZUVqCiBfX1pON1dlYkNvcmUxOU1lZGlhU2Vzc2lvbk1hbmFnZXIzMGRpZFJlY2Vp
dmVSZW1vdGVDb250cm9sQ29tbWFuZEVOU18xMk1lZGlhU2Vzc2lvbjI0UmVtb3RlQ29udHJvbENv
bW1hbmRUeXBlRQogX19aTjdXZWJDb3JlMTlNZWRpYVNlc3Npb25NYW5hZ2VyOWFkZENsaWVudEVQ
TlNfMjVNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50RQotX19aTjdXZWJDb3JlMTlQbGF0Zm9ybUNB
QW5pbWF0aW9uMTBzZXRUb1ZhbHVlRVJLTlNfMjBUcmFuc2Zvcm1hdGlvbk1hdHJpeEUKLV9fWk43
V2ViQ29yZTE5UGxhdGZvcm1DQUFuaW1hdGlvbjZjcmVhdGVFUDE5Q0FQcm9wZXJ0eUFuaW1hdGlv
bgotX19aTjdXZWJDb3JlMTlQbGF0Zm9ybUNBQW5pbWF0aW9uRDFFdgogX19aTjdXZWJDb3JlMTlS
ZXNvdXJjZVJlcXVlc3RCYXNlMTFzZXRIVFRQQm9keUVOM1dURjEwUGFzc1JlZlB0cklOU184Rm9y
bURhdGFFRUUKIF9fWk43V2ViQ29yZTE5UmVzb3VyY2VSZXF1ZXN0QmFzZTEzc2V0SFRUUE1ldGhv
ZEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE5UmVzb3VyY2VSZXF1ZXN0QmFzZTE4c2V0
SFRUUEhlYWRlckZpZWxkRVBLY1JLTjNXVEY2U3RyaW5nRQpAQCAtODk5LDEwICs4OTcsMTIgQEAg
X19aTjdXZWJDb3JlMjFtZW1vcnlQcmVzc3VyZUhhbmRsZXJFdgogX19aTjdXZWJDb3JlMjFyZXNv
dXJjZUxvYWRTY2hlZHVsZXJFdgogX19aTjdXZWJDb3JlMjFzZXRHbG9iYWxJY29uRGF0YWJhc2VF
UE5TXzE2SWNvbkRhdGFiYXNlQmFzZUUKIF9fWk43V2ViQ29yZTIxc2V0UGxhdGZvcm1TdHJhdGVn
aWVzRVBOU18xOFBsYXRmb3JtU3RyYXRlZ2llc0UKK19fWk43V2ViQ29yZTIxdG9DQVZhbHVlRnVu
Y3Rpb25UeXBlRU5TXzE5UGxhdGZvcm1DQUFuaW1hdGlvbjE3VmFsdWVGdW5jdGlvblR5cGVFCiBf
X1pON1dlYkNvcmUyMkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQyNHJlc3RhcnRTbmFwc2hvdHRlZFBs
dWdJbkV2CiBfX1pON1dlYkNvcmUyMkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQyOXNldElzUHJpbWFy
eVNuYXBzaG90dGVkUGx1Z0luRWIKIF9fWk43V2ViQ29yZTIyTXV0YWJsZVN0eWxlUHJvcGVydGll
czI1ZW5zdXJlQ1NTU3R5bGVEZWNsYXJhdGlvbkV2CiBfX1pON1dlYkNvcmUyMk11dGFibGVTdHls
ZVByb3BlcnRpZXNEMUV2CitfX1pON1dlYkNvcmUyMlBsYXRmb3JtQ0FBbmltYXRpb25NYWM2Y3Jl
YXRlRVAxOUNBUHJvcGVydHlBbmltYXRpb24KIF9fWk43V2ViQ29yZTIyUnVudGltZUVuYWJsZWRG
ZWF0dXJlczE0c2hhcmVkRmVhdHVyZXNFdgogX19aTjdXZWJDb3JlMjJTY3JpcHRFeGVjdXRpb25D
b250ZXh0MjZjYW5TdXNwZW5kQWN0aXZlRE9NT2JqZWN0c0V2CiBfX1pON1dlYkNvcmUyMlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQydm1FdgpAQCAtOTM4LDYgKzkzOCw3IEBAIF9fWk43V2ViQ29yZTIz
ZGVjb2RlSG9zdE5hbWVXaXRoUmFuZ2VFUDhOU1N0cmluZzhfTlNSYW5nZQogX19aTjdXZWJDb3Jl
MjNlbmNvZGVIb3N0TmFtZVdpdGhSYW5nZUVQOE5TU3RyaW5nOF9OU1JhbmdlCiBfX1pON1dlYkNv
cmUyM2dldEZpbGVNb2RpZmljYXRpb25UaW1lRVJLTjNXVEY2U3RyaW5nRVJsCiBfX1pON1dlYkNv
cmUyM2dldEhvc3RuYW1lc1dpdGhDb29raWVzRVJLTlNfMjFOZXR3b3JrU3RvcmFnZVNlc3Npb25F
Uk4zV1RGN0hhc2hTZXRJTlMzXzZTdHJpbmdFTlMzXzEwU3RyaW5nSGFzaEVOUzNfMTBIYXNoVHJh
aXRzSVM1X0VFRUUKK19fWk43V2ViQ29yZTIzdG9DQU1lZGlhVGltaW5nRnVuY3Rpb25FUEtOU18x
NFRpbWluZ0Z1bmN0aW9uRWIKIF9fWk43V2ViQ29yZTI0Q2FjaGVkUmVzb3VyY2VIYW5kbGVCYXNl
MTFzZXRSZXNvdXJjZUVQTlNfMTRDYWNoZWRSZXNvdXJjZUUKIF9fWk43V2ViQ29yZTI0RG9jdW1l
bnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJzRm9yRVBOU180Tm9kZUVOU18xNERvY3VtZW50TWFy
a2VyMTFNYXJrZXJUeXBlc0UKIF9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
MTNyZW1vdmVNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxMU1hcmtlclR5cGVzRQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggZjIxMmY3
ODExMTA2ZTZiZjI5Nzc2ZTZlZTQzNTFhODhiYmZmM2E5Yy4uNzZlOTQwODkxNjI5NjViOWY5NjAy
ZTRkZDU5YmJiN2NhYzdjYzkzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0xOTExMSw2ICsxOTExMSw3IEBACiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xhdmZvdW5kYXRpb25cSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUFWRi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1c
Z3JhcGhpY3NcY2Fpcm9cVGlsZUNhaXJvLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxwbGF0Zm9ybVxncmFwaGljc1xjYVxQbGF0Zm9ybUNBRmlsdGVycy5oIiAvPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fcd2luXFBsYXRmb3JtQ0FBbmlt
YXRpb25XaW4uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBo
aWNzXGNhXHdpblxQbGF0Zm9ybUNBTGF5ZXJXaW4uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEdMQ29udGV4dC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgi
IC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggNTAzMjBiMmM5ZTgzNzQxZTY2M2U3NTIwZDhlMjZhN2MwYWQyNjdlMC4uOTk4ZGMx
YzE2OGFhYzc5YmE5MmQ2ZDNlNmQ3M2E0NWU4YWQ0Y2JkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA0LDYgKzUwNCw3IEBA
CiAJCTBGNTgwRkFGMTQ5ODAwRDQwMEZCNUJEOCAvKiBBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTgwRkFFMTQ5ODAw
RDQwMEZCNUJEOCAvKiBBbmltYXRpb25VdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjVCN0E1NDEwRjY1RDdBMDAzNzYzMDIgLyog
UmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY1QjdBNTIxMEY2NUQ3QTAwMzc2MzAyIC8qIFJlbmRlckVtYmVkZGVk
T2JqZWN0LmNwcCAqLzsgfTsKIAkJMEY1QjdBNTUxMEY2NUQ3QTAwMzc2MzAyIC8qIFJlbmRlckVt
YmVkZGVkT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjVCN0E1MzEwRjY1RDdBMDAzNzYzMDIgLyogUmVuZGVyRW1iZWRkZWRPYmplY3QuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjVFMjAw
NjE4RTc3MUZDMDAzRUMzRTUgLyogUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1RTIwMDUxOEU3NzFGQzAwM0VD
M0U1IC8qIFBsYXRmb3JtQ0FBbmltYXRpb25NYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjYwNUFFQzE1Rjk0ODQ4MDA0REYwQzAgLyogU2Ny
b2xsaW5nQ29uc3RyYWludHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY2MDVBRUExNUY5NDg0ODAwNERGMEMwIC8qIFNjcm9sbGluZ0NvbnN0cmFp
bnRzLmNwcCAqLzsgfTsKIAkJMEY2MDVBRUQxNUY5NDg0ODAwNERGMEMwIC8qIFNjcm9sbGluZ0Nv
bnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjYwNUFFQjE1Rjk0ODQ4MDA0REYwQzAgLyogU2Nyb2xsaW5nQ29uc3RyYWludHMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjYzODNERDE4
NjE1QjI5MDAzRTVEQjUgLyogVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNjM4M0RCMTg2MTVCMjkwMDNFNURC
NSAvKiBUaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwICovOyB9OwpAQCAtNzMyMCw2ICs3MzIxLDcg
QEAKIAkJMEY1ODBGQUUxNDk4MDBENDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGllcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBBbmltYXRpb25VdGlsaXRpZXMuaDsgcGF0
aCA9IGFuaW1hdGlvbi9BbmltYXRpb25VdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY1QjdBNTIxMEY2NUQ3QTAwMzc2MzAyIC8qIFJlbmRlckVtYmVkZGVkT2JqZWN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckVtYmVkZGVk
T2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1QjdBNTMxMEY2NUQ3
QTAwMzc2MzAyIC8qIFJlbmRlckVtYmVkZGVkT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbmRlckVtYmVkZGVkT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTBGNUUyMDA1MThFNzcxRkMwMDNFQzNFNSAvKiBQbGF0Zm9ybUNBQW5pbWF0aW9u
TWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFBsYXRmb3JtQ0FBbmltYXRp
b25NYWMuaDsgcGF0aCA9IGNhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNjA1QUVBMTVGOTQ4NDgwMDRERjBDMCAvKiBTY3JvbGxp
bmdDb25zdHJhaW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
Y3JvbGxpbmdDb25zdHJhaW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
NjA1QUVCMTVGOTQ4NDgwMDRERjBDMCAvKiBTY3JvbGxpbmdDb25zdHJhaW50cy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdDb25zdHJhaW50cy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjYzODNEQjE4NjE1QjI5MDAzRTVEQjUgLyogVGhyZWFk
ZWRTY3JvbGxpbmdUcmVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFRocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNTU4NCw2ICsxNTU4Niw3IEBACiAJCQkJMjkxN0I1NjUxNDczNDk5NTAwNTJDOUQwIC8qIExh
eWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwICovLAogCQkJCTkzRjcyQUYxMTY2NkVERkMwMDJBMDJC
RCAvKiBMYXllclBvb2wuaCAqLywKIAkJCQk5M0Y3MkFGMjE2NjZFREZDMDAyQTAyQkQgLyogTGF5
ZXJQb29sLm1tICovLAorCQkJCTBGNUUyMDA1MThFNzcxRkMwMDNFQzNFNSAvKiBQbGF0Zm9ybUNB
QW5pbWF0aW9uTWFjLmggKi8sCiAJCQkJNDk1ODc4MUYxMkE1N0RERjAwNzIzOEFDIC8qIFBsYXRm
b3JtQ0FBbmltYXRpb25NYWMubW0gKi8sCiAJCQkJRDY2QjJENUIxODY4MzAwNTAwNzNDNEREIC8q
IFBsYXRmb3JtQ0FGaWx0ZXJzTWFjLmggKi8sCiAJCQkJMEYxMzE2M0YxNkVEMENERTAwMzVDQzA0
IC8qIFBsYXRmb3JtQ0FGaWx0ZXJzTWFjLm1tICovLApAQCAtMjQzNjcsNiArMjQzNzAsNyBAQAog
CQkJCTFBODVCMTkwMEExQjE4QTIwMEQ4Qzg3QyAvKiBKU0hUTUxIdG1sRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkM0OTE4QzkwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTElGcmFtZUVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTJBQTk4MEExQ0REMkQwMEI0MkIyNSAvKiBK
U0hUTUxJbWFnZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNUUyMDA2MThFNzcxRkMw
MDNFQzNFNSAvKiBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
ODBFN0U5NzBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MSW5wdXRFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMUFEMTQyMzEyOTVFQTdGMDBBQ0E5ODkgLyogSlNIVE1MSW5wdXRFbGVtZW50
Q3VzdG9tLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNjE0OEE3OTEyRTQxRTNCMDA0NEE3ODQgLyog
SlNIVE1MS2V5Z2VuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5oCmluZGV4IDYxMTM5OTM0MGMw
YjliMjEzNjU0NTlmMTU3ZWRkMjU1MDIxNThkMTguLjM3NWZmYmIyZWI4ODNlMWE3NDU4NTY3Y2Qz
YWE2YWQ5ZjIzYzQ4MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1h
dGlvbi9UaW1pbmdGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1h
dGlvbi9UaW1pbmdGdW5jdGlvbi5oCkBAIC0zMiw2ICszMiw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIFRpbWluZ0Z1bmN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8VGltaW5nRnVuY3Rp
b24+IHsKIHB1YmxpYzoKIAorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUaW1pbmdGdW5jdGlvbj4g
Y2xvbmUoKSBjb25zdCA9IDA7CisKICAgICBlbnVtIFRpbWluZ0Z1bmN0aW9uVHlwZSB7CiAgICAg
ICAgIExpbmVhckZ1bmN0aW9uLCBDdWJpY0JlemllckZ1bmN0aW9uLCBTdGVwc0Z1bmN0aW9uCiAg
ICAgfTsKQEAgLTY4LDE0ICs3MCwxOSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4g
b3RoZXIuaXNMaW5lYXJUaW1pbmdGdW5jdGlvbigpOwogICAgIH0KLSAgICAKKwogcHJpdmF0ZToK
ICAgICBMaW5lYXJUaW1pbmdGdW5jdGlvbigpCiAgICAgICAgIDogVGltaW5nRnVuY3Rpb24oTGlu
ZWFyRnVuY3Rpb24pCiAgICAgewogICAgIH0KKworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUaW1p
bmdGdW5jdGlvbj4gY2xvbmUoKSBjb25zdCBvdmVycmlkZQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBMaW5lYXJUaW1pbmdGdW5jdGlvbik7CisgICAgfQogfTsKLSAgICAKKwog
Y2xhc3MgQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbiA6IHB1YmxpYyBUaW1pbmdGdW5jdGlvbiB7
CiBwdWJsaWM6CiAgICAgZW51bSBUaW1pbmdGdW5jdGlvblByZXNldCB7CkBAIC0xMzIsNyArMTM5
LDE2IEBAIHB1YmxpYzoKICAgICBkb3VibGUgeDIoKSBjb25zdCB7IHJldHVybiBtX3gyOyB9CiAg
ICAgZG91YmxlIHkyKCkgY29uc3QgeyByZXR1cm4gbV95MjsgfQogICAgIAorICAgIHZvaWQgc2V0
VmFsdWVzKGRvdWJsZSB4MSwgZG91YmxlIHkxLCBkb3VibGUgeDIsIGRvdWJsZSB5MikKKyAgICB7
CisgICAgICAgIG1feDEgPSB4MTsKKyAgICAgICAgbV95MSA9IHkxOworICAgICAgICBtX3gyID0g
eDI7CisgICAgICAgIG1feTIgPSB5MjsKKyAgICB9CisgICAgCiAgICAgVGltaW5nRnVuY3Rpb25Q
cmVzZXQgdGltaW5nRnVuY3Rpb25QcmVzZXQoKSBjb25zdCB7IHJldHVybiBtX3RpbWluZ0Z1bmN0
aW9uUHJlc2V0OyB9CisgICAgdm9pZCBzZXRUaW1pbmdGdW5jdGlvblByZXNldChUaW1pbmdGdW5j
dGlvblByZXNldCBwcmVzZXQpIHsgbV90aW1pbmdGdW5jdGlvblByZXNldCA9IHByZXNldDsgfQog
ICAgIAogICAgIHN0YXRpYyBjb25zdCBDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uKiBkZWZhdWx0
VGltaW5nRnVuY3Rpb24oKQogICAgIHsKQEAgLTE1Niw2ICsxNzIsMTEgQEAgcHJpdmF0ZToKICAg
ICB7CiAgICAgfQogCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiBjbG9u
ZSgpIGNvbnN0IG92ZXJyaWRlCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEN1
YmljQmV6aWVyVGltaW5nRnVuY3Rpb24obV90aW1pbmdGdW5jdGlvblByZXNldCwgbV94MSwgbV95
MSwgbV94MiwgbV95MikpOworICAgIH0KKwogICAgIGRvdWJsZSBtX3gxOwogICAgIGRvdWJsZSBt
X3kxOwogICAgIGRvdWJsZSBtX3gyOwpAQCAtMTY5LDYgKzE5MCwxMCBAQCBwdWJsaWM6CiAgICAg
ewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0ZXBzVGltaW5nRnVuY3Rpb24oc3RlcHMs
IHN0ZXBBdFN0YXJ0KSk7CiAgICAgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0ZXBzVGltaW5n
RnVuY3Rpb24+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0
ZXBzVGltaW5nRnVuY3Rpb24oMSwgdHJ1ZSkpOworICAgIH0KICAgICAKICAgICB2aXJ0dWFsIH5T
dGVwc1RpbWluZ0Z1bmN0aW9uKCkgeyB9CiAgICAgCkBAIC0xODIsNyArMjA3LDEwIEBAIHB1Ymxp
YzoKICAgICB9CiAgICAgCiAgICAgaW50IG51bWJlck9mU3RlcHMoKSBjb25zdCB7IHJldHVybiBt
X3N0ZXBzOyB9CisgICAgdm9pZCBzZXROdW1iZXJPZlN0ZXBzKGludCBzdGVwcykgeyBtX3N0ZXBz
ID0gc3RlcHM7IH0KKwogICAgIGJvb2wgc3RlcEF0U3RhcnQoKSBjb25zdCB7IHJldHVybiBtX3N0
ZXBBdFN0YXJ0OyB9CisgICAgdm9pZCBzZXRTdGVwQXRTdGFydChib29sIHN0ZXBzQXRTdGFydCkg
eyBtX3N0ZXBBdFN0YXJ0ID0gc3RlcHNBdFN0YXJ0OyB9CiAgICAgCiBwcml2YXRlOgogICAgIFN0
ZXBzVGltaW5nRnVuY3Rpb24oaW50IHN0ZXBzLCBib29sIHN0ZXBBdFN0YXJ0KQpAQCAtMTkxLDEx
ICsyMTksMTYgQEAgcHJpdmF0ZToKICAgICAgICAgLCBtX3N0ZXBBdFN0YXJ0KHN0ZXBBdFN0YXJ0
KQogICAgIHsKICAgICB9CisKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGltaW5nRnVuY3Rpb24+
IGNsb25lKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU3RlcHNUaW1pbmdGdW5jdGlvbihtX3N0ZXBzLCBtX3N0ZXBBdFN0YXJ0KSk7CisgICAgfQog
ICAgIAogICAgIGludCBtX3N0ZXBzOwogICAgIGJvb2wgbV9zdGVwQXRTdGFydDsKIH07Ci0gICAg
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFRpbWluZ0Z1bmN0aW9uX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGlj
c0xheWVyQ0EuY3BwCmluZGV4IDE0MzUxMGE0MDcxODQxNjZhMDQzYTY2ZGVhOTVjYTI5N2UyZTc3
NWYuLjA5YjViODk0ZmM3OTU2MGQyMjA5MGJiMmM5NTBiYWU2Y2FmNGYwMmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2lu
Y2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJGYWN0b3J5LmgiCisj
aW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNBRmlsdGVycy5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtQ0FMYXllci5oIgogI2luY2x1ZGUgIlJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bi5oIgpAQCAtNTEsMTEgKzUyLDEzIEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQor
I2luY2x1ZGUgIlBsYXRmb3JtQ0FBbmltYXRpb25NYWMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNB
TGF5ZXJNYWMuaCIKICNpbmNsdWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCiAjZW5kaWYK
IAogI2lmIFBMQVRGT1JNKFdJTikKKyNpbmNsdWRlICJQbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVyV2luLmgiCiAjZW5kaWYKIApAQCAtMzQxLDYgKzM0
NCwxNSBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gR3JhcGhpY3NMYXllckNBOjpjcmVh
dGVQbGF0Zm9ybUNBTGF5ZXIoUGxhdGZvcm1MYXllcgogI2VuZGlmCiB9CiAKK1Bhc3NSZWZQdHI8
UGxhdGZvcm1DQUFuaW1hdGlvbj4gR3JhcGhpY3NMYXllckNBOjpjcmVhdGVQbGF0Zm9ybUNBQW5p
bWF0aW9uKFBsYXRmb3JtQ0FBbmltYXRpb246OkFuaW1hdGlvblR5cGUgdHlwZSwgY29uc3QgU3Ry
aW5nJiBrZXlQYXRoKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHJldHVybiBQbGF0Zm9y
bUNBQW5pbWF0aW9uTWFjOjpjcmVhdGUodHlwZSwga2V5UGF0aCk7CisjZWxpZiBQTEFURk9STShX
SU4pCisgICAgcmV0dXJuIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OmNyZWF0ZSh0eXBlLCBrZXlQ
YXRoKTsKKyNlbmRpZgorfQorCiBHcmFwaGljc0xheWVyQ0E6OkdyYXBoaWNzTGF5ZXJDQShHcmFw
aGljc0xheWVyQ2xpZW50KiBjbGllbnQpCiAgICAgOiBHcmFwaGljc0xheWVyKGNsaWVudCkKICAg
ICAsIG1fY29udGVudHNMYXllclB1cnBvc2UoTm9Db250ZW50c0xheWVyKQpAQCAtNzg3LDE4ICs3
OTksMjQgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNob3VsZFJlcGFpbnRPblNpemVDaGFuZ2Uo
KSBjb25zdAogICAgIHJldHVybiBkcmF3c0NvbnRlbnQoKSAmJiAhdGlsZWRCYWNraW5nKCk7CiB9
CiAKLWJvb2wgR3JhcGhpY3NMYXllckNBOjphZGRBbmltYXRpb24oY29uc3QgS2V5ZnJhbWVWYWx1
ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgRmxvYXRTaXplJiBib3hTaXplLCBjb25zdCBBbmltYXRp
b24qIGFuaW0sIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIHRpbWVPZmZzZXQp
Citib29sIEdyYXBoaWNzTGF5ZXJDQTo6YW5pbWF0aW9uQ2FuQmVBY2NlbGVyYXRlZChjb25zdCBL
ZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBBbmltYXRpb24qIGFuaW0pIGNvbnN0
CiB7Ci0gICAgQVNTRVJUKCFhbmltYXRpb25OYW1lLmlzRW1wdHkoKSk7Ci0KICAgICBpZiAoIWFu
aW0gfHwgYW5pbS0+aXNFbXB0eU9yWmVyb0R1cmF0aW9uKCkgfHwgdmFsdWVMaXN0LnNpemUoKSA8
IDIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIC8vIENvcmVBbmltYXRpb24gZG9lcyBu
b3QgaGFuZGxlIHRoZSBzdGVwcygpIHRpbWluZyBmdW5jdGlvbi4gRmFsbCBiYWNrCi0gICAgLy8g
dG8gc29mdHdhcmUgYW5pbWF0aW9uIGluIHRoYXQgY2FzZS4KICAgICBpZiAoYW5pbWF0aW9uSGFz
U3RlcHNUaW1pbmdGdW5jdGlvbih2YWx1ZUxpc3QsIGFuaW0pKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBHcmFwaGljc0xheWVyQ0E6OmFkZEFu
aW1hdGlvbihjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBGbG9hdFNp
emUmIGJveFNpemUsIGNvbnN0IEFuaW1hdGlvbiogYW5pbSwgY29uc3QgU3RyaW5nJiBhbmltYXRp
b25OYW1lLCBkb3VibGUgdGltZU9mZnNldCkKK3sKKyAgICBBU1NFUlQoIWFuaW1hdGlvbk5hbWUu
aXNFbXB0eSgpKTsKKworICAgIGlmICghYW5pbWF0aW9uQ2FuQmVBY2NlbGVyYXRlZCh2YWx1ZUxp
c3QsIGFuaW0pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBib29sIGNyZWF0ZWRBbmlt
YXRpb25zID0gZmFsc2U7CiAgICAgaWYgKHZhbHVlTGlzdC5wcm9wZXJ0eSgpID09IEFuaW1hdGVk
UHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pCiAgICAgICAgIGNyZWF0ZWRBbmltYXRpb25zID0gY3Jl
YXRlVHJhbnNmb3JtQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXModmFsdWVMaXN0LCBhbmltLCBhbmlt
YXRpb25OYW1lLCB0aW1lT2Zmc2V0LCBib3hTaXplKTsKQEAgLTI1NjIsMTQgKzI1ODAsMTQgQEAg
Ym9vbCBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUZpbHRlckFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVz
KGNvbnN0IEtleWZyYW1lVmFsdWVMaXMKIAogUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9u
PiBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUJhc2ljQW5pbWF0aW9uKGNvbnN0IEFuaW1hdGlvbiog
YW5pbSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIGFkZGl0aXZlKQogewotICAgIFJlZlB0
cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBiYXNpY0FuaW0gPSBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpj
cmVhdGUoUGxhdGZvcm1DQUFuaW1hdGlvbjo6QmFzaWMsIGtleVBhdGgpOworICAgIFJlZlB0cjxQ
bGF0Zm9ybUNBQW5pbWF0aW9uPiBiYXNpY0FuaW0gPSBjcmVhdGVQbGF0Zm9ybUNBQW5pbWF0aW9u
KFBsYXRmb3JtQ0FBbmltYXRpb246OkJhc2ljLCBrZXlQYXRoKTsKICAgICBzZXR1cEFuaW1hdGlv
bihiYXNpY0FuaW0uZ2V0KCksIGFuaW0sIGFkZGl0aXZlKTsKICAgICByZXR1cm4gYmFzaWNBbmlt
OwogfQogCiBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+R3JhcGhpY3NMYXllckNBOjpj
cmVhdGVLZXlmcmFtZUFuaW1hdGlvbihjb25zdCBBbmltYXRpb24qIGFuaW0sIGNvbnN0IFN0cmlu
ZyYga2V5UGF0aCwgYm9vbCBhZGRpdGl2ZSkKIHsKLSAgICBSZWZQdHI8UGxhdGZvcm1DQUFuaW1h
dGlvbj4ga2V5ZnJhbWVBbmltID0gUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y3JlYXRlKFBsYXRmb3Jt
Q0FBbmltYXRpb246OktleWZyYW1lLCBrZXlQYXRoKTsKKyAgICBSZWZQdHI8UGxhdGZvcm1DQUFu
aW1hdGlvbj4ga2V5ZnJhbWVBbmltID0gY3JlYXRlUGxhdGZvcm1DQUFuaW1hdGlvbihQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpLZXlmcmFtZSwga2V5UGF0aCk7CiAgICAgc2V0dXBBbmltYXRpb24oa2V5
ZnJhbWVBbmltLmdldCgpLCBhbmltLCBhZGRpdGl2ZSk7CiAgICAgcmV0dXJuIGtleWZyYW1lQW5p
bTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3Jh
cGhpY3NMYXllckNBLmgKaW5kZXggMmE0M2QxZmM1OGI1NDEwY2Y4OTU4ZjMwNjA2ODg4N2JkZmQ3
ZmIwZi4uNTQwZTRkM2E5Y2VjNTkyMTNhMTYzZjUwY2I1ZGVmYjAzZGEzZGUzYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmgKQEAgLTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgR3JhcGhpY3NMYXllckNBX2gKIAogI2luY2x1
ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKLSNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtQ0FBbmltYXRpb24uaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNBTGF5ZXIuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaCIKQEAgLTQyLDYgKzQxLDcgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitjbGFzcyBJbWFnZTsKIGNsYXNzIFRyYW5zZm9ybVN0YXRlOwogCiBjbGFz
cyBHcmFwaGljc0xheWVyQ0EgOiBwdWJsaWMgR3JhcGhpY3NMYXllciwgcHVibGljIFBsYXRmb3Jt
Q0FMYXllckNsaWVudCB7CkBAIC0xNzAsNiArMTcwLDggQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6
CiAgICAgdmlydHVhbCB2b2lkIHNldE9wYWNpdHlJbnRlcm5hbChmbG9hdCk7CisgICAgCisgICAg
Ym9vbCBhbmltYXRpb25DYW5CZUFjY2VsZXJhdGVkKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0Jiwg
Y29uc3QgQW5pbWF0aW9uKikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlz
R3JhcGhpY3NMYXllckNBKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtMjEyLDYgKzIxNCw3
IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBj
cmVhdGVQbGF0Zm9ybUNBTGF5ZXIoUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGUsIFBsYXRmb3Jt
Q0FMYXllckNsaWVudCogb3duZXIpOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9ybUNB
TGF5ZXI+IGNyZWF0ZVBsYXRmb3JtQ0FMYXllcihQbGF0Zm9ybUxheWVyKiwgUGxhdGZvcm1DQUxh
eWVyQ2xpZW50KiBvd25lcik7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmlt
YXRpb24+IGNyZWF0ZVBsYXRmb3JtQ0FBbmltYXRpb24oUGxhdGZvcm1DQUFuaW1hdGlvbjo6QW5p
bWF0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKTsKIAogICAgIFBsYXRmb3JtQ0FMYXll
ciogcHJpbWFyeUxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9zdHJ1Y3R1cmFsTGF5ZXIuZ2V0KCkg
PyBtX3N0cnVjdHVyYWxMYXllci5nZXQoKSA6IG1fbGF5ZXIuZ2V0KCk7IH0KICAgICBQbGF0Zm9y
bUNBTGF5ZXIqIGhvc3RMYXllckZvclN1YmxheWVycygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5o
CmluZGV4IDI2MDQ4MWNjMzgzZjk5YzZjZGJlOTIyODMyOTVjMDljMzdhNTM5ZWEuLjg5NjYyNGNk
MTY5NGYwNDA2OGZjZWMzZjA4ZmQ5ZjQ0YmEyYmM0ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmltYXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmgKQEAg
LTMxLDEzNiArMzEsMTE5IEBACiAjaW5jbHVkZSAiRmxvYXRQb2ludDNELmgiCiAjaW5jbHVkZSAi
VHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKLSNpZiBQ
TEFURk9STShDT0NPQSkKLU9CSkNfQ0xBU1MgQ0FQcm9wZXJ0eUFuaW1hdGlvbjsKLXR5cGVkZWYg
Q0FQcm9wZXJ0eUFuaW1hdGlvbiogUGxhdGZvcm1BbmltYXRpb25SZWY7Ci0jZWxpZiBQTEFURk9S
TShXSU4pCi10eXBlZGVmIHN0cnVjdCBfQ0FDRkFuaW1hdGlvbiogQ0FDRkFuaW1hdGlvblJlZjsK
LXR5cGVkZWYgQ0FDRkFuaW1hdGlvblJlZiBQbGF0Zm9ybUFuaW1hdGlvblJlZjsKLSNlbmRpZgot
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZsb2F0UmVjdDsKLWNsYXNzIFBsYXRmb3Jt
Q0FBbmltYXRpb247CiBjbGFzcyBUaW1pbmdGdW5jdGlvbjsKIAogY2xhc3MgUGxhdGZvcm1DQUFu
aW1hdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFBsYXRmb3JtQ0FBbmltYXRpb24+IHsKIHB1Ymxp
YzoKLSAgICBmcmllbmQgY2xhc3MgUGxhdGZvcm1DQUxheWVyOwotI2lmIFBMQVRGT1JNKENPQ09B
KQotICAgIGZyaWVuZCBjbGFzcyBQbGF0Zm9ybUNBTGF5ZXJNYWM7Ci0jZWxpZiBQTEFURk9STShX
SU4pCi0gICAgZnJpZW5kIGNsYXNzIFBsYXRmb3JtQ0FMYXllcldpbjsKLSNlbmRpZgotICAgIAog
ICAgIGVudW0gQW5pbWF0aW9uVHlwZSB7IEJhc2ljLCBLZXlmcmFtZSB9OwogICAgIGVudW0gRmls
bE1vZGVUeXBlIHsgTm9GaWxsTW9kZSwgRm9yd2FyZHMsIEJhY2t3YXJkcywgQm90aCB9OwogICAg
IGVudW0gVmFsdWVGdW5jdGlvblR5cGUgeyBOb1ZhbHVlRnVuY3Rpb24sIFJvdGF0ZVgsIFJvdGF0
ZVksIFJvdGF0ZVosIFNjYWxlWCwgU2NhbGVZLCBTY2FsZVosIFNjYWxlLCBUcmFuc2xhdGVYLCBU
cmFuc2xhdGVZLCBUcmFuc2xhdGVaLCBUcmFuc2xhdGUgfTsKIAotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGNyZWF0ZShBbmltYXRpb25UeXBlLCBjb25zdCBTdHJp
bmcmIGtleVBhdGgpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+
IGNyZWF0ZShQbGF0Zm9ybUFuaW1hdGlvblJlZik7CisgICAgdmlydHVhbCB+UGxhdGZvcm1DQUFu
aW1hdGlvbigpIHsgfQogCi0gICAgflBsYXRmb3JtQ0FBbmltYXRpb24oKTsKKyAgICB2aXJ0dWFs
IGJvb2wgaXNQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaXNQbGF0Zm9ybUNBQW5pbWF0aW9uV2luKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3Rl
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAKLSAgICBQYXNzUmVmUHRyPFBsYXRmb3Jt
Q0FBbmltYXRpb24+IGNvcHkoKSBjb25zdDsKLQotICAgIFBsYXRmb3JtQW5pbWF0aW9uUmVmIHBs
YXRmb3JtQW5pbWF0aW9uKCkgY29uc3Q7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBsYXRmb3Jt
Q0FBbmltYXRpb24+IGNvcHkoKSBjb25zdCA9IDA7CiAgICAgCiAgICAgQW5pbWF0aW9uVHlwZSBh
bmltYXRpb25UeXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9Ci0gICAgU3RyaW5nIGtleVBh
dGgoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFN0cmluZyBrZXlQYXRoKCkgY29uc3QgPSAwOwogICAg
IAotICAgIENGVGltZUludGVydmFsIGJlZ2luVGltZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0QmVn
aW5UaW1lKENGVGltZUludGVydmFsKTsKKyAgICB2aXJ0dWFsIENGVGltZUludGVydmFsIGJlZ2lu
VGltZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QmVnaW5UaW1lKENGVGltZUlu
dGVydmFsKSA9IDA7CiAgICAgCi0gICAgQ0ZUaW1lSW50ZXJ2YWwgZHVyYXRpb24oKSBjb25zdDsK
LSAgICB2b2lkIHNldER1cmF0aW9uKENGVGltZUludGVydmFsKTsKKyAgICB2aXJ0dWFsIENGVGlt
ZUludGVydmFsIGR1cmF0aW9uKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXREdXJh
dGlvbihDRlRpbWVJbnRlcnZhbCkgPSAwOwogICAgIAotICAgIGZsb2F0IHNwZWVkKCkgY29uc3Q7
Ci0gICAgdm9pZCBzZXRTcGVlZChmbG9hdCk7CisgICAgdmlydHVhbCBmbG9hdCBzcGVlZCgpIGNv
bnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U3BlZWQoZmxvYXQpID0gMDsKIAotICAgIENG
VGltZUludGVydmFsIHRpbWVPZmZzZXQoKSBjb25zdDsKLSAgICB2b2lkIHNldFRpbWVPZmZzZXQo
Q0ZUaW1lSW50ZXJ2YWwpOworICAgIHZpcnR1YWwgQ0ZUaW1lSW50ZXJ2YWwgdGltZU9mZnNldCgp
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGltZU9mZnNldChDRlRpbWVJbnRlcnZh
bCkgPSAwOwogCi0gICAgZmxvYXQgcmVwZWF0Q291bnQoKSBjb25zdDsKLSAgICB2b2lkIHNldFJl
cGVhdENvdW50KGZsb2F0KTsKKyAgICB2aXJ0dWFsIGZsb2F0IHJlcGVhdENvdW50KCkgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRSZXBlYXRDb3VudChmbG9hdCkgPSAwOwogCi0gICAg
Ym9vbCBhdXRvcmV2ZXJzZXMoKSBjb25zdDsKLSAgICB2b2lkIHNldEF1dG9yZXZlcnNlcyhib29s
KTsKKyAgICB2aXJ0dWFsIGJvb2wgYXV0b3JldmVyc2VzKCkgY29uc3QgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzZXRBdXRvcmV2ZXJzZXMoYm9vbCkgPSAwOwogCi0gICAgRmlsbE1vZGVUeXBlIGZp
bGxNb2RlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRGaWxsTW9kZShGaWxsTW9kZVR5cGUpOworICAg
IHZpcnR1YWwgRmlsbE1vZGVUeXBlIGZpbGxNb2RlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBzZXRGaWxsTW9kZShGaWxsTW9kZVR5cGUpID0gMDsKICAgICAKLSAgICB2b2lkIHNldFRp
bWluZ0Z1bmN0aW9uKGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiwgYm9vbCByZXZlcnNlID0gZmFsc2Up
OwotICAgIHZvaWQgY29weVRpbWluZ0Z1bmN0aW9uRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0
aW9uKik7CisgICAgdmlydHVhbCB2b2lkIHNldFRpbWluZ0Z1bmN0aW9uKGNvbnN0IFRpbWluZ0Z1
bmN0aW9uKiwgYm9vbCByZXZlcnNlID0gZmFsc2UpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29w
eVRpbWluZ0Z1bmN0aW9uRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgPSAwOwogCi0g
ICAgYm9vbCBpc1JlbW92ZWRPbkNvbXBsZXRpb24oKSBjb25zdDsKLSAgICB2b2lkIHNldFJlbW92
ZWRPbkNvbXBsZXRpb24oYm9vbCk7CisgICAgdmlydHVhbCBib29sIGlzUmVtb3ZlZE9uQ29tcGxl
dGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVtb3ZlZE9uQ29tcGxldGlv
bihib29sKSA9IDA7CiAKLSAgICBib29sIGlzQWRkaXRpdmUoKSBjb25zdDsKLSAgICB2b2lkIHNl
dEFkZGl0aXZlKGJvb2wpOworICAgIHZpcnR1YWwgYm9vbCBpc0FkZGl0aXZlKCkgY29uc3QgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBzZXRBZGRpdGl2ZShib29sKSA9IDA7CiAKLSAgICBWYWx1ZUZ1
bmN0aW9uVHlwZSB2YWx1ZUZ1bmN0aW9uKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRWYWx1ZUZ1bmN0
aW9uKFZhbHVlRnVuY3Rpb25UeXBlKTsKKyAgICB2aXJ0dWFsIFZhbHVlRnVuY3Rpb25UeXBlIHZh
bHVlRnVuY3Rpb24oKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlRnVuY3Rp
b24oVmFsdWVGdW5jdGlvblR5cGUpID0gMDsKIAogICAgIC8vIEJhc2ljLWFuaW1hdGlvbiBwcm9w
ZXJ0aWVzLgotICAgIHZvaWQgc2V0RnJvbVZhbHVlKGZsb2F0KTsKLSAgICB2b2lkIHNldEZyb21W
YWx1ZShjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwotICAgIHZvaWQgc2V0
RnJvbVZhbHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYpOwotICAgIHZvaWQgc2V0RnJvbVZhbHVlKGNv
bnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShmbG9h
dCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6VHJh
bnNmb3JtYXRpb25NYXRyaXgmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShj
b25zdCBGbG9hdFBvaW50M0QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShj
b25zdCBXZWJDb3JlOjpDb2xvciYpID0gMDsKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0gICAg
dm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiwgaW50IGludGVybmFsRmls
dGVyUHJvcGVydHlJbmRleCk7CisgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShjb25zdCBG
aWx0ZXJPcGVyYXRpb24qLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KSA9IDA7CiAj
ZW5kaWYKLSAgICB2b2lkIGNvcHlGcm9tVmFsdWVGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRp
b24qKTsKKyAgICB2aXJ0dWFsIHZvaWQgY29weUZyb21WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1D
QUFuaW1hdGlvbiopID0gMDsKIAotICAgIHZvaWQgc2V0VG9WYWx1ZShmbG9hdCk7Ci0gICAgdm9p
ZCBzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jik7Ci0gICAg
dm9pZCBzZXRUb1ZhbHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYpOwotICAgIHZvaWQgc2V0VG9WYWx1
ZShjb25zdCBXZWJDb3JlOjpDb2xvciYpOworICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGZs
b2F0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3QgV2ViQ29yZTo6VHJh
bnNmb3JtYXRpb25NYXRyaXgmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoY29u
c3QgRmxvYXRQb2ludDNEJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0
IFdlYkNvcmU6OkNvbG9yJikgPSAwOwogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSAgICB2b2lk
IHNldFRvVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiwgaW50IGludGVybmFsRmlsdGVyUHJv
cGVydHlJbmRleCk7CisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3QgRmlsdGVyT3Bl
cmF0aW9uKiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgPSAwOwogI2VuZGlmCi0g
ICAgdm9pZCBjb3B5VG9WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopOworICAg
IHZpcnR1YWwgdm9pZCBjb3B5VG9WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiop
ID0gMDsKIAogICAgIC8vIEtleWZyYW1lLWFuaW1hdGlvbiBwcm9wZXJ0aWVzLgotICAgIHZvaWQg
c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mKTsKLSAgICB2b2lkIHNldFZhbHVlcyhjb25z
dCBWZWN0b3I8V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg+Jik7Ci0gICAgdm9pZCBzZXRW
YWx1ZXMoY29uc3QgVmVjdG9yPEZsb2F0UG9pbnQzRD4mKTsKLSAgICB2b2lkIHNldFZhbHVlcyhj
b25zdCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+Jik7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVl
cyhjb25zdCBWZWN0b3I8ZmxvYXQ+JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMo
Y29uc3QgVmVjdG9yPFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxGbG9hdFBvaW50M0Q+JikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbG9yPiYp
ID0gMDsKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0gICAgdm9pZCBzZXRWYWx1ZXMoY29uc3Qg
VmVjdG9yPFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+PiYsIGludCBpbnRlcm5hbEZpbHRlclByb3Bl
cnR5SW5kZXgpOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFJlZlB0
cjxGaWx0ZXJPcGVyYXRpb24+PiYsIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpID0g
MDsKICNlbmRpZgotICAgIHZvaWQgY29weVZhbHVlc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1h
dGlvbiopOworICAgIHZpcnR1YWwgdm9pZCBjb3B5VmFsdWVzRnJvbShjb25zdCBQbGF0Zm9ybUNB
QW5pbWF0aW9uKikgPSAwOwogCi0gICAgdm9pZCBzZXRLZXlUaW1lcyhjb25zdCBWZWN0b3I8Zmxv
YXQ+Jik7Ci0gICAgdm9pZCBjb3B5S2V5VGltZXNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRp
b24qKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0S2V5VGltZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29weUtleVRpbWVzRnJvbShjb25zdCBQbGF0Zm9ybUNB
QW5pbWF0aW9uKikgPSAwOwogCi0gICAgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVj
dG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4mLCBib29sIHJldmVyc2UgPSBmYWxzZSk7Ci0gICAg
dm9pZCBjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKik7
CisgICAgdmlydHVhbCB2b2lkIHNldFRpbWluZ0Z1bmN0aW9ucyhjb25zdCBWZWN0b3I8Y29uc3Qg
VGltaW5nRnVuY3Rpb24qPiYsIGJvb2wgcmV2ZXJzZSA9IGZhbHNlKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGNvcHlUaW1pbmdGdW5jdGlvbnNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24q
KSA9IDA7CiAKIHByb3RlY3RlZDoKLSAgICBQbGF0Zm9ybUNBQW5pbWF0aW9uKEFuaW1hdGlvblR5
cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCk7Ci0gICAgUGxhdGZvcm1DQUFuaW1hdGlvbihQbGF0
Zm9ybUFuaW1hdGlvblJlZik7CisgICAgUGxhdGZvcm1DQUFuaW1hdGlvbihBbmltYXRpb25UeXBl
IHR5cGUgPSBCYXNpYykKKyAgICAgICAgOiBtX3R5cGUodHlwZSkKKyAgICB7CisgICAgfQogCiAg
ICAgdm9pZCBzZXRBY3R1YWxTdGFydFRpbWVJZk5lZWRlZChDRlRpbWVJbnRlcnZhbCB0KQogICAg
IHsKICAgICAgICAgaWYgKGJlZ2luVGltZSgpIDw9IDApCiAgICAgICAgICAgICBzZXRCZWdpblRp
bWUodCk7CiAgICAgfQorICAgIAorICAgIHZvaWQgc2V0VHlwZShBbmltYXRpb25UeXBlIHR5cGUp
IHsgbV90eXBlID0gdHlwZTsgfQogCiBwcml2YXRlOgogICAgIEFuaW1hdGlvblR5cGUgbV90eXBl
OwotICAgIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFJldGFpblB0cjxDQVByb3BlcnR5QW5p
bWF0aW9uPiBtX2FuaW1hdGlvbjsKLSNlbGlmIFBMQVRGT1JNKFdJTikKLSAgICBSZXRhaW5QdHI8
Q0FDRkFuaW1hdGlvblJlZj4gbV9hbmltYXRpb247Ci0jZW5kaWYKIH07CiAKKyNkZWZpbmUgUExB
VEZPUk1fQ0FBTklNQVRJT05fVFlQRV9DQVNUUyhUb1ZhbHVlVHlwZU5hbWUsIHByZWRpY2F0ZSkg
XAorICAgIFRZUEVfQ0FTVFNfQkFTRShUb1ZhbHVlVHlwZU5hbWUsIFdlYkNvcmU6OlBsYXRmb3Jt
Q0FBbmltYXRpb24sIG9iamVjdCwgb2JqZWN0LT5wcmVkaWNhdGUsIG9iamVjdC5wcmVkaWNhdGUp
CisKIH0KIAogI2VuZGlmIC8vIFBsYXRmb3JtQ0FBbmltYXRpb25faApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaAppbmRleCA4
MWRiNzEyMTZiM2ZlNjExMWJiNjNjMzY3ZTgwM2EwMWRhNzBhNDU4Li4xZTAwNjgzMDQxNjZlNTU3
MTRkZTJjZjJjMDQ4OGZlZGY0MjkwOGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaApAQCAtMjYsOSArMjYsNyBAQAog
I2lmbmRlZiBQbGF0Zm9ybUNBTGF5ZXJfaAogI2RlZmluZSBQbGF0Zm9ybUNBTGF5ZXJfaAogCi0j
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgot
I2luY2x1ZGUgIlBsYXRmb3JtQ0FBbmltYXRpb24uaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNBTGF5
ZXJDbGllbnQuaCIKICNpbmNsdWRlIDxRdWFydHpDb3JlL0NBQmFzZS5oPgogI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgpAQCAtNDIsOSArNDAsMTQgQEAKIAogT0JKQ19DTEFTUyBBVlBsYXll
ckxheWVyOwogCisjaWYgUExBVEZPUk0oQ09DT0EpCit0eXBlZGVmIHN0cnVjdCBDR0NvbnRleHQg
KkNHQ29udGV4dFJlZjsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFBs
YXRmb3JtQ0FMYXllcjsKK2NsYXNzIFBsYXRmb3JtQ0FBbmltYXRpb247CiAKIHR5cGVkZWYgVmVj
dG9yPFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+PiBQbGF0Zm9ybUNBTGF5ZXJMaXN0OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1D
QUFuaW1hdGlvbk1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFj
L1BsYXRmb3JtQ0FBbmltYXRpb25NYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDBjYTcyY2E0NTJiYTk0Mzlh
MzI1YTc5ZmIxY2ZiMTVjZTljYTU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMuaApAQCAtMCww
ICsxLDEzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaWZuZGVmIFBsYXRmb3JtQ0FBbmltYXRpb25NYWNfaAorI2RlZmluZSBQbGF0Zm9ybUNBQW5p
bWF0aW9uTWFjX2gKKworI2luY2x1ZGUgIlBsYXRmb3JtQ0FBbmltYXRpb24uaCIKKyNpbmNsdWRl
IDx3dGYvUmV0YWluUHRyLmg+CisKK09CSkNfQ0xBU1MgQ0FQcm9wZXJ0eUFuaW1hdGlvbjsKK09C
SkNfQ0xBU1MgTlNTdHJpbmc7CitPQkpDX0NMQVNTIENBTWVkaWFUaW1pbmdGdW5jdGlvbjsKK3R5
cGVkZWYgQ0FQcm9wZXJ0eUFuaW1hdGlvbiogUGxhdGZvcm1BbmltYXRpb25SZWY7CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworTlNTdHJpbmcqIHRvQ0FGaWxsTW9kZVR5cGUoUGxhdGZvcm1DQUFu
aW1hdGlvbjo6RmlsbE1vZGVUeXBlKTsKK05TU3RyaW5nKiB0b0NBVmFsdWVGdW5jdGlvblR5cGUo
UGxhdGZvcm1DQUFuaW1hdGlvbjo6VmFsdWVGdW5jdGlvblR5cGUpOworQ0FNZWRpYVRpbWluZ0Z1
bmN0aW9uKiB0b0NBTWVkaWFUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiosIGJv
b2wgcmV2ZXJzZSk7CisKK2NsYXNzIFBsYXRmb3JtQ0FBbmltYXRpb25NYWMgZmluYWwgOiBwdWJs
aWMgUGxhdGZvcm1DQUFuaW1hdGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
UGxhdGZvcm1DQUFuaW1hdGlvbj4gY3JlYXRlKEFuaW1hdGlvblR5cGUsIGNvbnN0IFN0cmluZyYg
a2V5UGF0aCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY3Jl
YXRlKFBsYXRmb3JtQW5pbWF0aW9uUmVmKTsKKworICAgIHZpcnR1YWwgflBsYXRmb3JtQ0FBbmlt
YXRpb25NYWMoKTsKKworICAgIHZpcnR1YWwgYm9vbCBpc1BsYXRmb3JtQ0FBbmltYXRpb25NYWMo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisKKyAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY29weSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgUGxh
dGZvcm1BbmltYXRpb25SZWYgcGxhdGZvcm1BbmltYXRpb24oKSBjb25zdDsKKyAgICAKKyAgICB2
aXJ0dWFsIFN0cmluZyBrZXlQYXRoKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgCisgICAgdmlydHVh
bCBDRlRpbWVJbnRlcnZhbCBiZWdpblRpbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0QmVnaW5UaW1lKENGVGltZUludGVydmFsKSBvdmVycmlkZTsKKyAgICAKKyAgICB2
aXJ0dWFsIENGVGltZUludGVydmFsIGR1cmF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHNldER1cmF0aW9uKENGVGltZUludGVydmFsKSBvdmVycmlkZTsKKyAgICAKKyAg
ICB2aXJ0dWFsIGZsb2F0IHNwZWVkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHNldFNwZWVkKGZsb2F0KSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgQ0ZUaW1lSW50ZXJ2YWwg
dGltZU9mZnNldCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRUaW1lT2Zm
c2V0KENGVGltZUludGVydmFsKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgZmxvYXQgcmVwZWF0
Q291bnQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVwZWF0Q291bnQo
ZmxvYXQpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBib29sIGF1dG9yZXZlcnNlcygpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRBdXRvcmV2ZXJzZXMoYm9vbCkgb3ZlcnJp
ZGU7CisKKyAgICB2aXJ0dWFsIEZpbGxNb2RlVHlwZSBmaWxsTW9kZSgpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBzZXRGaWxsTW9kZShGaWxsTW9kZVR5cGUpIG92ZXJyaWRlOwor
ICAgIAorICAgIHZpcnR1YWwgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5j
dGlvbiosIGJvb2wgcmV2ZXJzZSA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvcHlUaW1p
bmdGdW5jdGlvbkZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOworCisg
ICAgdmlydHVhbCBib29sIGlzUmVtb3ZlZE9uQ29tcGxldGlvbigpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRSZW1vdmVkT25Db21wbGV0aW9uKGJvb2wpIG92ZXJyaWRlOwor
CisgICAgdmlydHVhbCBib29sIGlzQWRkaXRpdmUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0QWRkaXRpdmUoYm9vbCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIFZhbHVl
RnVuY3Rpb25UeXBlIHZhbHVlRnVuY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0VmFsdWVGdW5jdGlvbihWYWx1ZUZ1bmN0aW9uVHlwZSkgb3ZlcnJpZGU7CisKKyAg
ICAvLyBCYXNpYy1hbmltYXRpb24gcHJvcGVydGllcy4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJv
bVZhbHVlKGZsb2F0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNv
bnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHNldEZyb21WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgb3ZlcnJpZGU7
CisjaWYgRU5BQkxFKENTU19GSUxURVJTKQorICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUo
Y29uc3QgRmlsdGVyT3BlcmF0aW9uKiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkg
b3ZlcnJpZGU7CisjZW5kaWYKKyAgICB2aXJ0dWFsIHZvaWQgY29weUZyb21WYWx1ZUZyb20oY29u
c3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIHNl
dFRvVmFsdWUoZmxvYXQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNv
bnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHNldFRvVmFsdWUoY29uc3QgRmxvYXRQb2ludDNEJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVycmlkZTsKKyNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3Qg
RmlsdGVyT3BlcmF0aW9uKiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgb3ZlcnJp
ZGU7CisjZW5kaWYKKyAgICB2aXJ0dWFsIHZvaWQgY29weVRvVmFsdWVGcm9tKGNvbnN0IFBsYXRm
b3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKKworICAgIC8vIEtleWZyYW1lLWFuaW1hdGlvbiBw
cm9wZXJ0aWVzLgorICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPGZsb2F0
PiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdl
YkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPEZsb2F0UG9pbnQzRD4mKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb2xvcj4mKSBvdmVy
cmlkZTsKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVl
cyhjb25zdCBWZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4+JiwgaW50IGludGVybmFsRmls
dGVyUHJvcGVydHlJbmRleCkgb3ZlcnJpZGU7CisjZW5kaWYKKyAgICB2aXJ0dWFsIHZvaWQgY29w
eVZhbHVlc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOworCisgICAg
dmlydHVhbCB2b2lkIHNldEtleVRpbWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgY29weUtleVRpbWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0
aW9uKikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGltaW5nRnVuY3Rpb25zKGNv
bnN0IFZlY3Rvcjxjb25zdCBUaW1pbmdGdW5jdGlvbio+JiwgYm9vbCByZXZlcnNlID0gZmFsc2Up
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShjb25z
dCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CisKK3Byb3RlY3RlZDoKKyAgICBQbGF0
Zm9ybUNBQW5pbWF0aW9uTWFjKEFuaW1hdGlvblR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCk7
CisgICAgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYyhQbGF0Zm9ybUFuaW1hdGlvblJlZik7CisKK3By
aXZhdGU6CisgICAgUmV0YWluUHRyPENBUHJvcGVydHlBbmltYXRpb24+IG1fYW5pbWF0aW9uOwor
fTsKKworUExBVEZPUk1fQ0FBTklNQVRJT05fVFlQRV9DQVNUUyhQbGF0Zm9ybUNBQW5pbWF0aW9u
TWFjLCBpc1BsYXRmb3JtQ0FBbmltYXRpb25NYWMoKSkKKworfQorCisjZW5kaWYgLy8gUGxhdGZv
cm1DQUFuaW1hdGlvbk1hY19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLm1tCmluZGV4
IGMwN2M3YWM2MjE3MzlhYjNiNDMzZTUwNWQ5NDllMzljYzg1NzRhMTMuLjJlYTI4NmFmMDE0ZjU2
NjgxYmIyZGNhZjFlNmM3ZTIyYWVkNDNjZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9u
TWFjLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yNSw3ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2ltcG9ydCAiUGxhdGZv
cm1DQUFuaW1hdGlvbi5oIgorI2ltcG9ydCAiUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5oIgogCiAj
aW1wb3J0ICJGbG9hdENvbnZlcnNpb24uaCIKICNpbXBvcnQgIlBsYXRmb3JtQ0FGaWx0ZXJzLmgi
CkBAIC00MCwxNSArNDAsMTUgQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgV0tOb25aZXJvQmVn
aW5UaW1lRmxhZyA9IEAiV0tQbGF0Zm9ybUNBQW5pbWF0aW9uTm9uWmVyb0IKIAogc3RhdGljIGJv
b2wgaGFzTm9uWmVyb0JlZ2luVGltZUZsYWcoY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogYW5p
bWF0aW9uKQogewotICAgIHJldHVybiBbW2FuaW1hdGlvbi0+cGxhdGZvcm1BbmltYXRpb24oKSB2
YWx1ZUZvcktleTpXS05vblplcm9CZWdpblRpbWVGbGFnXSBib29sVmFsdWVdOworICAgIHJldHVy
biBbW3RvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYyhhbmltYXRpb24pLT5wbGF0Zm9ybUFuaW1hdGlv
bigpIHZhbHVlRm9yS2V5OldLTm9uWmVyb0JlZ2luVGltZUZsYWddIGJvb2xWYWx1ZV07CiB9CiAK
IHN0YXRpYyB2b2lkIHNldE5vblplcm9CZWdpblRpbWVGbGFnKFBsYXRmb3JtQ0FBbmltYXRpb24q
IGFuaW1hdGlvbiwgYm9vbCB2YWx1ZSkKIHsKLSAgICBbYW5pbWF0aW9uLT5wbGF0Zm9ybUFuaW1h
dGlvbigpIHNldFZhbHVlOltOU051bWJlciBudW1iZXJXaXRoQm9vbDp2YWx1ZV0gZm9yS2V5OldL
Tm9uWmVyb0JlZ2luVGltZUZsYWddOworICAgIFt0b1BsYXRmb3JtQ0FBbmltYXRpb25NYWMoYW5p
bWF0aW9uKS0+cGxhdGZvcm1BbmltYXRpb24oKSBzZXRWYWx1ZTpbTlNOdW1iZXIgbnVtYmVyV2l0
aEJvb2w6dmFsdWVdIGZvcktleTpXS05vblplcm9CZWdpblRpbWVGbGFnXTsKIH0KICAgICAKLXN0
YXRpYyBOU1N0cmluZyogdG9DQUZpbGxNb2RlVHlwZShQbGF0Zm9ybUNBQW5pbWF0aW9uOjpGaWxs
TW9kZVR5cGUgdHlwZSkKK05TU3RyaW5nKiBXZWJDb3JlOjp0b0NBRmlsbE1vZGVUeXBlKFBsYXRm
b3JtQ0FBbmltYXRpb246OkZpbGxNb2RlVHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkg
ewogICAgIGNhc2UgUGxhdGZvcm1DQUFuaW1hdGlvbjo6Tm9GaWxsTW9kZToKQEAgLTcwLDcgKzcw
LDcgQEAgc3RhdGljIFBsYXRmb3JtQ0FBbmltYXRpb246OkZpbGxNb2RlVHlwZSBmcm9tQ0FGaWxs
TW9kZVR5cGUoTlNTdHJpbmcqIHN0cmluZykKICAgICByZXR1cm4gUGxhdGZvcm1DQUFuaW1hdGlv
bjo6Rm9yd2FyZHM7CiB9CiAKLXN0YXRpYyBOU1N0cmluZyogdG9DQVZhbHVlRnVuY3Rpb25UeXBl
KFBsYXRmb3JtQ0FBbmltYXRpb246OlZhbHVlRnVuY3Rpb25UeXBlIHR5cGUpCitOU1N0cmluZyog
V2ViQ29yZTo6dG9DQVZhbHVlRnVuY3Rpb25UeXBlKFBsYXRmb3JtQ0FBbmltYXRpb246OlZhbHVl
RnVuY3Rpb25UeXBlIHR5cGUpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpOb1ZhbHVlRnVuY3Rpb246IHJldHVybiBAIiI7CkBAIC0xMjcsNyAr
MTI3LDcgQEAgc3RhdGljIFBsYXRmb3JtQ0FBbmltYXRpb246OlZhbHVlRnVuY3Rpb25UeXBlIGZy
b21DQVZhbHVlRnVuY3Rpb25UeXBlKE5TU3RyaW5nKgogICAgIHJldHVybiBQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpOb1ZhbHVlRnVuY3Rpb247CiB9CiAKLXN0YXRpYyBDQU1lZGlhVGltaW5nRnVuY3Rp
b24qIHRvQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uKGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdG
dW5jdGlvbiwgYm9vbCByZXZlcnNlKQorQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uKiBXZWJDb3JlOjp0
b0NBTWVkaWFUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rp
b24sIGJvb2wgcmV2ZXJzZSkKIHsKICAgICBBU1NFUlQodGltaW5nRnVuY3Rpb24pOwogICAgIGlm
ICh0aW1pbmdGdW5jdGlvbi0+aXNDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uKCkpIHsKQEAgLTE0
NiwyMSArMTQ2LDIyIEBAIHN0YXRpYyBDQU1lZGlhVGltaW5nRnVuY3Rpb24qIHRvQ0FNZWRpYVRp
bWluZ0Z1bmN0aW9uKGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pCiAgICAgICAgIHJldHVybiBb
Q0FNZWRpYVRpbWluZ0Z1bmN0aW9uIGZ1bmN0aW9uV2l0aENvbnRyb2xQb2ludHM6IHgxIDogeTEg
OiB4MiA6IHkyXTsKICAgICB9CiAgICAgCisgICAgQVNTRVJUKHRpbWluZ0Z1bmN0aW9uLT50eXBl
KCkgPT0gVGltaW5nRnVuY3Rpb246OkxpbmVhckZ1bmN0aW9uKTsKICAgICByZXR1cm4gW0NBTWVk
aWFUaW1pbmdGdW5jdGlvbiBmdW5jdGlvbldpdGhOYW1lOmtDQU1lZGlhVGltaW5nRnVuY3Rpb25M
aW5lYXJdOwogfQogCi1QYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRmb3JtQ0FB
bmltYXRpb246OmNyZWF0ZShBbmltYXRpb25UeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0
aCkKK1Bhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUFuaW1hdGlvbk1h
Yzo6Y3JlYXRlKEFuaW1hdGlvblR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGxhdGZvcm1DQUFuaW1hdGlvbih0eXBlLCBrZXlQYXRo
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKHR5cGUs
IGtleVBhdGgpKTsKIH0KIAotUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpjcmVhdGUoUGxhdGZvcm1BbmltYXRpb25SZWYgYW5pbWF0aW9uKQorUGFz
c1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpjcmVh
dGUoUGxhdGZvcm1BbmltYXRpb25SZWYgYW5pbWF0aW9uKQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgUGxhdGZvcm1DQUFuaW1hdGlvbihhbmltYXRpb24pKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFBsYXRmb3JtQ0FBbmltYXRpb25NYWMoYW5pbWF0aW9uKSk7CiB9CiAKLVBsYXRmb3Jt
Q0FBbmltYXRpb246OlBsYXRmb3JtQ0FBbmltYXRpb24oQW5pbWF0aW9uVHlwZSB0eXBlLCBjb25z
dCBTdHJpbmcmIGtleVBhdGgpCi0gICAgOiBtX3R5cGUodHlwZSkKK1BsYXRmb3JtQ0FBbmltYXRp
b25NYWM6OlBsYXRmb3JtQ0FBbmltYXRpb25NYWMoQW5pbWF0aW9uVHlwZSB0eXBlLCBjb25zdCBT
dHJpbmcmIGtleVBhdGgpCisgICAgOiBQbGF0Zm9ybUNBQW5pbWF0aW9uKHR5cGUpCiB7CiAgICAg
aWYgKHR5cGUgPT0gQmFzaWMpCiAgICAgICAgIG1fYW5pbWF0aW9uID0gW0NBQmFzaWNBbmltYXRp
b24gYW5pbWF0aW9uV2l0aEtleVBhdGg6a2V5UGF0aF07CkBAIC0xNjgsMTIgKzE2OSwxMiBAQCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKEFuaW1hdGlvblR5cGUgdHlw
ZSwgY29uc3QgU3RyaW5nJiBrZXlQYQogICAgICAgICBtX2FuaW1hdGlvbiA9IFtDQUtleWZyYW1l
QW5pbWF0aW9uIGFuaW1hdGlvbldpdGhLZXlQYXRoOmtleVBhdGhdOwogfQogCi1QbGF0Zm9ybUNB
QW5pbWF0aW9uOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKFBsYXRmb3JtQW5pbWF0aW9uUmVmIGFuaW1h
dGlvbikKK1BsYXRmb3JtQ0FBbmltYXRpb25NYWM6OlBsYXRmb3JtQ0FBbmltYXRpb25NYWMoUGxh
dGZvcm1BbmltYXRpb25SZWYgYW5pbWF0aW9uKQogewogICAgIGlmIChbc3RhdGljX2Nhc3Q8Q0FB
bmltYXRpb24qPihhbmltYXRpb24pIGlzS2luZE9mQ2xhc3M6W0NBQmFzaWNBbmltYXRpb24gY2xh
c3NdXSkKLSAgICAgICAgbV90eXBlID0gQmFzaWM7CisgICAgICAgIHNldFR5cGUoQmFzaWMpOwog
ICAgIGVsc2UgaWYgKFtzdGF0aWNfY2FzdDxDQUFuaW1hdGlvbio+KGFuaW1hdGlvbikgaXNLaW5k
T2ZDbGFzczpbQ0FLZXlmcmFtZUFuaW1hdGlvbiBjbGFzc11dKQotICAgICAgICBtX3R5cGUgPSBL
ZXlmcmFtZTsKKyAgICAgICAgc2V0VHlwZShLZXlmcmFtZSk7CiAgICAgZWxzZSB7CiAgICAgICAg
IEFTU0VSVCgwKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTgyLDcgKzE4MywxMSBAQCBQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKFBsYXRmb3JtQW5pbWF0aW9uUmVmIGFu
aW1hdGlvbikKICAgICBtX2FuaW1hdGlvbiA9IHN0YXRpY19jYXN0PENBUHJvcGVydHlBbmltYXRp
b24qPihhbmltYXRpb24pOwogfQogCi1QYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBs
YXRmb3JtQ0FBbmltYXRpb246OmNvcHkoKSBjb25zdAorUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6
flBsYXRmb3JtQ0FBbmltYXRpb25NYWMoKQoreworfQorCitQYXNzUmVmUHRyPFBsYXRmb3JtQ0FB
bmltYXRpb24+IFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OmNvcHkoKSBjb25zdAogewogICAgIFJl
ZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBhbmltYXRpb24gPSBjcmVhdGUoYW5pbWF0aW9uVHlw
ZSgpLCBrZXlQYXRoKCkpOwogICAgIApAQCAtMjEyLDI2ICsyMTcsMjMgQEAgUGFzc1JlZlB0cjxQ
bGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5KCkgY29uc3QKICAg
ICAKICAgICByZXR1cm4gYW5pbWF0aW9uOwogfQotUGxhdGZvcm1DQUFuaW1hdGlvbjo6flBsYXRm
b3JtQ0FBbmltYXRpb24oKQotewotfQogCi1QbGF0Zm9ybUFuaW1hdGlvblJlZiBQbGF0Zm9ybUNB
QW5pbWF0aW9uOjpwbGF0Zm9ybUFuaW1hdGlvbigpIGNvbnN0CitQbGF0Zm9ybUFuaW1hdGlvblJl
ZiBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpwbGF0Zm9ybUFuaW1hdGlvbigpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIG1fYW5pbWF0aW9uLmdldCgpOwogfQogCi1TdHJpbmcgUGxhdGZvcm1DQUFuaW1h
dGlvbjo6a2V5UGF0aCgpIGNvbnN0CitTdHJpbmcgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6a2V5
UGF0aCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFttX2FuaW1hdGlvbi5nZXQoKSBrZXlQYXRoXTsK
IH0KIAotQ0ZUaW1lSW50ZXJ2YWwgUGxhdGZvcm1DQUFuaW1hdGlvbjo6YmVnaW5UaW1lKCkgY29u
c3QKK0NGVGltZUludGVydmFsIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OmJlZ2luVGltZSgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIFttX2FuaW1hdGlvbi5nZXQoKSBiZWdpblRpbWVdOwogfQogCi12
b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEJlZ2luVGltZShDRlRpbWVJbnRlcnZhbCB2YWx1
ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0QmVnaW5UaW1lKENGVGltZUludGVy
dmFsIHZhbHVlKQogewogICAgIFttX2FuaW1hdGlvbi5nZXQoKSBzZXRCZWdpblRpbWU6dmFsdWVd
OwogICAgIApAQCAtMjQzLDExNSArMjQ1LDExNSBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246
OnNldEJlZ2luVGltZShDRlRpbWVJbnRlcnZhbCB2YWx1ZSkKICAgICAgICAgc2V0Tm9uWmVyb0Jl
Z2luVGltZUZsYWcodGhpcywgdHJ1ZSk7CiB9CiAKLUNGVGltZUludGVydmFsIFBsYXRmb3JtQ0FB
bmltYXRpb246OmR1cmF0aW9uKCkgY29uc3QKK0NGVGltZUludGVydmFsIFBsYXRmb3JtQ0FBbmlt
YXRpb25NYWM6OmR1cmF0aW9uKCkgY29uc3QKIHsKICAgICByZXR1cm4gW21fYW5pbWF0aW9uLmdl
dCgpIGR1cmF0aW9uXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXREdXJhdGlv
bihDRlRpbWVJbnRlcnZhbCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0
RHVyYXRpb24oQ0ZUaW1lSW50ZXJ2YWwgdmFsdWUpCiB7CiAgICAgW21fYW5pbWF0aW9uLmdldCgp
IHNldER1cmF0aW9uOnZhbHVlXTsKIH0KIAotZmxvYXQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c3Bl
ZWQoKSBjb25zdAorZmxvYXQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c3BlZWQoKSBjb25zdAog
ewogICAgIHJldHVybiBbbV9hbmltYXRpb24uZ2V0KCkgc3BlZWRdOwogfQogCi12b2lkIFBsYXRm
b3JtQ0FBbmltYXRpb246OnNldFNwZWVkKGZsb2F0IHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uTWFjOjpzZXRTcGVlZChmbG9hdCB2YWx1ZSkKIHsKICAgICBbbV9hbmltYXRpb24uZ2V0
KCkgc2V0U3BlZWQ6dmFsdWVdOwogfQogCi1DRlRpbWVJbnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0
aW9uOjp0aW1lT2Zmc2V0KCkgY29uc3QKK0NGVGltZUludGVydmFsIFBsYXRmb3JtQ0FBbmltYXRp
b25NYWM6OnRpbWVPZmZzZXQoKSBjb25zdAogewogICAgIHJldHVybiBbbV9hbmltYXRpb24uZ2V0
KCkgdGltZU9mZnNldF07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VGltZU9m
ZnNldChDRlRpbWVJbnRlcnZhbCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6
c2V0VGltZU9mZnNldChDRlRpbWVJbnRlcnZhbCB2YWx1ZSkKIHsKICAgICBbbV9hbmltYXRpb24u
Z2V0KCkgc2V0VGltZU9mZnNldDp2YWx1ZV07CiB9CiAKLWZsb2F0IFBsYXRmb3JtQ0FBbmltYXRp
b246OnJlcGVhdENvdW50KCkgY29uc3QKK2Zsb2F0IFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnJl
cGVhdENvdW50KCkgY29uc3QKIHsKICAgICByZXR1cm4gW21fYW5pbWF0aW9uLmdldCgpIHJlcGVh
dENvdW50XTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRSZXBlYXRDb3VudChm
bG9hdCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0UmVwZWF0Q291bnQo
ZmxvYXQgdmFsdWUpCiB7CiAgICAgW21fYW5pbWF0aW9uLmdldCgpIHNldFJlcGVhdENvdW50OnZh
bHVlXTsKIH0KIAotYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjphdXRvcmV2ZXJzZXMoKSBjb25z
dAorYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjphdXRvcmV2ZXJzZXMoKSBjb25zdAogewog
ICAgIHJldHVybiBbbV9hbmltYXRpb24uZ2V0KCkgYXV0b3JldmVyc2VzXTsKIH0KIAotdm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRBdXRvcmV2ZXJzZXMoYm9vbCB2YWx1ZSkKK3ZvaWQgUGxh
dGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0QXV0b3JldmVyc2VzKGJvb2wgdmFsdWUpCiB7CiAgICAg
W21fYW5pbWF0aW9uLmdldCgpIHNldEF1dG9yZXZlcnNlczp2YWx1ZV07CiB9CiAKLVBsYXRmb3Jt
Q0FBbmltYXRpb246OkZpbGxNb2RlVHlwZSBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpmaWxsTW9kZSgp
IGNvbnN0CitQbGF0Zm9ybUNBQW5pbWF0aW9uOjpGaWxsTW9kZVR5cGUgUGxhdGZvcm1DQUFuaW1h
dGlvbk1hYzo6ZmlsbE1vZGUoKSBjb25zdAogewogICAgIHJldHVybiBmcm9tQ0FGaWxsTW9kZVR5
cGUoW21fYW5pbWF0aW9uLmdldCgpIGZpbGxNb2RlXSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvbjo6c2V0RmlsbE1vZGUoRmlsbE1vZGVUeXBlIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNB
QW5pbWF0aW9uTWFjOjpzZXRGaWxsTW9kZShGaWxsTW9kZVR5cGUgdmFsdWUpCiB7CiAgICAgW21f
YW5pbWF0aW9uLmdldCgpIHNldEZpbGxNb2RlOnRvQ0FGaWxsTW9kZVR5cGUodmFsdWUpXTsKIH0K
IAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1p
bmdGdW5jdGlvbiogdmFsdWUsIGJvb2wgcmV2ZXJzZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
bk1hYzo6c2V0VGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24qIHZhbHVlLCBib29s
IHJldmVyc2UpCiB7CiAgICAgW21fYW5pbWF0aW9uLmdldCgpIHNldFRpbWluZ0Z1bmN0aW9uOnRv
Q0FNZWRpYVRpbWluZ0Z1bmN0aW9uKHZhbHVlLCByZXZlcnNlKV07CiB9CiAKLXZvaWQgUGxhdGZv
cm1DQUFuaW1hdGlvbjo6Y29weVRpbWluZ0Z1bmN0aW9uRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5p
bWF0aW9uKiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6Y29weVRpbWluZ0Z1
bmN0aW9uRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIHsKLSAgICBbbV9h
bmltYXRpb24uZ2V0KCkgc2V0VGltaW5nRnVuY3Rpb246W3ZhbHVlLT5tX2FuaW1hdGlvbi5nZXQo
KSB0aW1pbmdGdW5jdGlvbl1dOworICAgIFttX2FuaW1hdGlvbi5nZXQoKSBzZXRUaW1pbmdGdW5j
dGlvbjpbdG9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKHZhbHVlKS0+bV9hbmltYXRpb24uZ2V0KCkg
dGltaW5nRnVuY3Rpb25dXTsKIH0KIAotYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjppc1JlbW92
ZWRPbkNvbXBsZXRpb24oKSBjb25zdAorYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjppc1Jl
bW92ZWRPbkNvbXBsZXRpb24oKSBjb25zdAogewogICAgIHJldHVybiBbbV9hbmltYXRpb24uZ2V0
KCkgaXNSZW1vdmVkT25Db21wbGV0aW9uXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpzZXRSZW1vdmVkT25Db21wbGV0aW9uKGJvb2wgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb25NYWM6OnNldFJlbW92ZWRPbkNvbXBsZXRpb24oYm9vbCB2YWx1ZSkKIHsKICAgICBbbV9h
bmltYXRpb24uZ2V0KCkgc2V0UmVtb3ZlZE9uQ29tcGxldGlvbjp2YWx1ZV07CiB9CiAKLWJvb2wg
UGxhdGZvcm1DQUFuaW1hdGlvbjo6aXNBZGRpdGl2ZSgpIGNvbnN0Citib29sIFBsYXRmb3JtQ0FB
bmltYXRpb25NYWM6OmlzQWRkaXRpdmUoKSBjb25zdAogewogICAgIHJldHVybiBbbV9hbmltYXRp
b24uZ2V0KCkgaXNBZGRpdGl2ZV07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0
QWRkaXRpdmUoYm9vbCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0QWRk
aXRpdmUoYm9vbCB2YWx1ZSkKIHsKICAgICBbbV9hbmltYXRpb24uZ2V0KCkgc2V0QWRkaXRpdmU6
dmFsdWVdOwogfQogCi1QbGF0Zm9ybUNBQW5pbWF0aW9uOjpWYWx1ZUZ1bmN0aW9uVHlwZSBQbGF0
Zm9ybUNBQW5pbWF0aW9uOjp2YWx1ZUZ1bmN0aW9uKCkgY29uc3QKK1BsYXRmb3JtQ0FBbmltYXRp
b246OlZhbHVlRnVuY3Rpb25UeXBlIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnZhbHVlRnVuY3Rp
b24oKSBjb25zdAogewogICAgIENBVmFsdWVGdW5jdGlvbiogdmYgPSBbbV9hbmltYXRpb24uZ2V0
KCkgdmFsdWVGdW5jdGlvbl07CiAgICAgcmV0dXJuIGZyb21DQVZhbHVlRnVuY3Rpb25UeXBlKFt2
ZiBuYW1lXSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFsdWVGdW5jdGlv
bihWYWx1ZUZ1bmN0aW9uVHlwZSB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6
c2V0VmFsdWVGdW5jdGlvbihWYWx1ZUZ1bmN0aW9uVHlwZSB2YWx1ZSkKIHsKICAgICBbbV9hbmlt
YXRpb24uZ2V0KCkgc2V0VmFsdWVGdW5jdGlvbjpbQ0FWYWx1ZUZ1bmN0aW9uIGZ1bmN0aW9uV2l0
aE5hbWU6dG9DQVZhbHVlRnVuY3Rpb25UeXBlKHZhbHVlKV1dOwogfQogCi12b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb246OnNldEZyb21WYWx1ZShmbG9hdCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvbk1hYzo6c2V0RnJvbVZhbHVlKGZsb2F0IHZhbHVlKQogewogICAgIGlmIChhbmltYXRp
b25UeXBlKCkgIT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKICAgICBbc3RhdGljX2Nhc3Q8Q0FC
YXNpY0FuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRGcm9tVmFsdWU6W05TTnVtYmVy
IG51bWJlcldpdGhEb3VibGU6dmFsdWVdXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmIHZhbHVl
KQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29y
ZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmIHZhbHVlKQogewogICAgIGlmIChhbmltYXRpb25UeXBl
KCkgIT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKQEAgLTM1OSw3ICszNjEsNyBAQCB2b2lkIFBs
YXRmb3JtQ0FBbmltYXRpb246OnNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgdmFsdQogICAgIFtzdGF0aWNfY2FzdDxDQUJhc2ljQW5pbWF0aW9uKj4obV9h
bmltYXRpb24uZ2V0KCkpIHNldEZyb21WYWx1ZTpbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9y
bTNEOnZhbHVlXV07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0RnJvbVZhbHVl
KGNvbnN0IEZsb2F0UG9pbnQzRCYgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6
OnNldEZyb21WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmIHZhbHVlKQogewogICAgIGlmIChhbmlt
YXRpb25UeXBlKCkgIT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKQEAgLTM3Miw3ICszNzQsNyBA
QCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEZyb21WYWx1ZShjb25zdCBGbG9hdFBvaW50
M0QmIHZhbHVlKQogICAgIFtzdGF0aWNfY2FzdDxDQUJhc2ljQW5pbWF0aW9uKj4obV9hbmltYXRp
b24uZ2V0KCkpIHNldEZyb21WYWx1ZTphcnJheV07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1h
dGlvbjo6c2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiB2YWx1ZSkKK3ZvaWQgUGxh
dGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiB2
YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1
cm47CkBAIC0zODcsMzAgKzM4OSwzMCBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEZy
b21WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYgdmFsdWUpCiB9CiAKICNpZiBFTkFCTEUoQ1NT
X0ZJTFRFUlMpCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEZyb21WYWx1ZShjb25zdCBG
aWx0ZXJPcGVyYXRpb24qIG9wZXJhdGlvbiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRl
eCkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0RnJvbVZhbHVlKGNvbnN0IEZpbHRl
ck9wZXJhdGlvbiogb3BlcmF0aW9uLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KQog
ewogICAgIFJldGFpblB0cjxpZD4gdmFsdWUgPSBQbGF0Zm9ybUNBRmlsdGVyczo6ZmlsdGVyVmFs
dWVGb3JPcGVyYXRpb24ob3BlcmF0aW9uLCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpOwog
ICAgIFtzdGF0aWNfY2FzdDxDQUJhc2ljQW5pbWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNl
dEZyb21WYWx1ZTp2YWx1ZS5nZXQoKV07CiB9CiAjZW5kaWYKIAotdm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpjb3B5RnJvbVZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1
ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6Y29weUZyb21WYWx1ZUZyb20oY29uc3Qg
UGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAh
PSBCYXNpYyB8fCB2YWx1ZS0+YW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1
cm47CiAgICAgICAgIAotICAgIENBQmFzaWNBbmltYXRpb24qIG90aGVyQW5pbWF0aW9uID0gc3Rh
dGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KHZhbHVlLT5tX2FuaW1hdGlvbi5nZXQoKSk7Cisg
ICAgQ0FCYXNpY0FuaW1hdGlvbiogb3RoZXJBbmltYXRpb24gPSBzdGF0aWNfY2FzdDxDQUJhc2lj
QW5pbWF0aW9uKj4odG9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKHZhbHVlKS0+bV9hbmltYXRpb24u
Z2V0KCkpOwogICAgIFtzdGF0aWNfY2FzdDxDQUJhc2ljQW5pbWF0aW9uKj4obV9hbmltYXRpb24u
Z2V0KCkpIHNldEZyb21WYWx1ZTpbb3RoZXJBbmltYXRpb24gZnJvbVZhbHVlXV07CiB9CiAKLXZv
aWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VG9WYWx1ZShmbG9hdCB2YWx1ZSkKK3ZvaWQgUGxh
dGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0VG9WYWx1ZShmbG9hdCB2YWx1ZSkKIHsKICAgICBpZiAo
YW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CiAgICAgW3N0YXRpY19j
YXN0PENBQmFzaWNBbmltYXRpb24qPihtX2FuaW1hdGlvbi5nZXQoKSkgc2V0VG9WYWx1ZTpbTlNO
dW1iZXIgbnVtYmVyV2l0aERvdWJsZTp2YWx1ZV1dOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb246OnNldFRvVmFsdWUoY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmIHZh
bHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNv
cmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlw
ZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CkBAIC00MTgsNyArNDIwLDcgQEAgdm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0
aW9uTWF0cml4JiB2YWx1ZSkKICAgICBbc3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KG1f
YW5pbWF0aW9uLmdldCgpKSBzZXRUb1ZhbHVlOltOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3Jt
M0Q6dmFsdWVdXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUb1ZhbHVlKGNv
bnN0IEZsb2F0UG9pbnQzRCYgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNl
dFRvVmFsdWUoY29uc3QgRmxvYXRQb2ludDNEJiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9u
VHlwZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CkBAIC00MzEsNyArNDMzLDcgQEAgdm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUb1ZhbHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYgdmFs
dWUpCiAgICAgW3N0YXRpY19jYXN0PENBQmFzaWNBbmltYXRpb24qPihtX2FuaW1hdGlvbi5nZXQo
KSkgc2V0VG9WYWx1ZTphcnJheV07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0
VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb25NYWM6OnNldFRvVmFsdWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImIHZhbHVlKQogewogICAg
IGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKQEAgLTQ0Niwy
NSArNDQ4LDI1IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VG9WYWx1ZShjb25zdCBX
ZWJDb3JlOjpDb2xvciYgdmFsdWUpCiB9CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi12b2lk
IFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRvVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiBv
cGVyYXRpb24sIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpCit2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25NYWM6OnNldFRvVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiBvcGVyYXRp
b24sIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpCiB7CiAgICAgUmV0YWluUHRyPGlk
PiB2YWx1ZSA9IFBsYXRmb3JtQ0FGaWx0ZXJzOjpmaWx0ZXJWYWx1ZUZvck9wZXJhdGlvbihvcGVy
YXRpb24sIGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCk7CiAgICAgW3N0YXRpY19jYXN0PENB
QmFzaWNBbmltYXRpb24qPihtX2FuaW1hdGlvbi5nZXQoKSkgc2V0VG9WYWx1ZTp2YWx1ZS5nZXQo
KV07CiB9CiAjZW5kaWYKIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5VG9WYWx1ZUZy
b20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb25NYWM6OmNvcHlUb1ZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1
ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljIHx8IHZhbHVlLT5hbmltYXRp
b25UeXBlKCkgIT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKICAgICAgICAgCi0gICAgQ0FCYXNp
Y0FuaW1hdGlvbiogb3RoZXJBbmltYXRpb24gPSBzdGF0aWNfY2FzdDxDQUJhc2ljQW5pbWF0aW9u
Kj4odmFsdWUtPm1fYW5pbWF0aW9uLmdldCgpKTsKKyAgICBDQUJhc2ljQW5pbWF0aW9uKiBvdGhl
ckFuaW1hdGlvbiA9IHN0YXRpY19jYXN0PENBQmFzaWNBbmltYXRpb24qPih0b1BsYXRmb3JtQ0FB
bmltYXRpb25NYWModmFsdWUpLT5tX2FuaW1hdGlvbi5nZXQoKSk7CiAgICAgW3N0YXRpY19jYXN0
PENBQmFzaWNBbmltYXRpb24qPihtX2FuaW1hdGlvbi5nZXQoKSkgc2V0VG9WYWx1ZTpbb3RoZXJB
bmltYXRpb24gdG9WYWx1ZV1dOwogfQogCiAKIC8vIEtleWZyYW1lLWFuaW1hdGlvbiBwcm9wZXJ0
aWVzLgotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPGZs
b2F0PiYgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFZhbHVlcyhjb25z
dCBWZWN0b3I8ZmxvYXQ+JiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtl
eWZyYW1lKQogICAgICAgICByZXR1cm47CkBAIC00NzUsNyArNDc3LDcgQEAgdm9pZCBQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYgdmFsdWUpCiAgICAg
W3N0YXRpY19jYXN0PENBS2V5ZnJhbWVBbmltYXRpb24qPihtX2FuaW1hdGlvbi5nZXQoKSkgc2V0
VmFsdWVzOmFycmF5XTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRWYWx1ZXMo
Y29uc3QgVmVjdG9yPFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiYgdmFsdWUpCit2b2lk
IFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6
VHJhbnNmb3JtYXRpb25NYXRyaXg+JiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgp
ICE9IEtleWZyYW1lKQogICAgICAgICByZXR1cm47CkBAIC00ODgsNyArNDkwLDcgQEAgdm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRyYW5z
Zm9ybWF0aW9uTWF0cml4PiYKICAgICBbc3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+
KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRWYWx1ZXM6YXJyYXldOwogfQogCi12b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb246OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8RmxvYXRQb2ludDNEPiYgdmFsdWUp
Cit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8Rmxv
YXRQb2ludDNEPiYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBLZXlmcmFt
ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNTA2LDcgKzUwOCw3IEBAIHZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxGbG9hdFBvaW50M0Q+JiB2YWx1ZSkKICAg
ICBbc3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBz
ZXRWYWx1ZXM6YXJyYXldOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFZhbHVl
cyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+JiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvbk1hYzo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb2xvcj4mIHZhbHVl
KQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gS2V5ZnJhbWUpCiAgICAgICAgIHJldHVy
bjsKQEAgLTUyNiw3ICs1MjgsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFZhbHVl
cyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+JiB2YWx1ZSkKIH0KIAogI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0IFZl
Y3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPj4mIHZhbHVlcywgaW50IGludGVybmFsRmlsdGVy
UHJvcGVydHlJbmRleCkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0VmFsdWVzKGNv
bnN0IFZlY3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPj4mIHZhbHVlcywgaW50IGludGVybmFs
RmlsdGVyUHJvcGVydHlJbmRleCkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZy
YW1lKQogICAgICAgICByZXR1cm47CkBAIC01NDEsMTYgKzU0MywxNiBAQCB2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb246OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlv
bj4+JiB2YWx1ZQogfQogI2VuZGlmCiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weVZh
bHVlc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCit2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25NYWM6OmNvcHlWYWx1ZXNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24q
IHZhbHVlKQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gS2V5ZnJhbWUgfHwgdmFsdWUt
PmFuaW1hdGlvblR5cGUoKSAhPSBLZXlmcmFtZSkKICAgICAgICAgcmV0dXJuOwogICAgICAgICAK
LSAgICBDQUtleWZyYW1lQW5pbWF0aW9uKiBvdGhlckFuaW1hdGlvbiA9IHN0YXRpY19jYXN0PENB
S2V5ZnJhbWVBbmltYXRpb24qPih2YWx1ZS0+bV9hbmltYXRpb24uZ2V0KCkpOworICAgIENBS2V5
ZnJhbWVBbmltYXRpb24qIG90aGVyQW5pbWF0aW9uID0gc3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFu
aW1hdGlvbio+KHRvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYyh2YWx1ZSktPm1fYW5pbWF0aW9uLmdl
dCgpKTsKICAgICBbc3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+KG1fYW5pbWF0aW9u
LmdldCgpKSBzZXRWYWx1ZXM6W290aGVyQW5pbWF0aW9uIHZhbHVlc11dOwogfQogCi12b2lkIFBs
YXRmb3JtQ0FBbmltYXRpb246OnNldEtleVRpbWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mIHZhbHVl
KQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRLZXlUaW1lcyhjb25zdCBWZWN0b3I8
ZmxvYXQ+JiB2YWx1ZSkKIHsKICAgICBOU011dGFibGVBcnJheSogYXJyYXkgPSBbTlNNdXRhYmxl
QXJyYXkgYXJyYXldOwogCkBAIC01NjAsMTMgKzU2MiwxMyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb246OnNldEtleVRpbWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mIHZhbHVlKQogICAgIFtzdGF0
aWNfY2FzdDxDQUtleWZyYW1lQW5pbWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNldEtleVRp
bWVzOmFycmF5XTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5S2V5VGltZXNG
cm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uTWFjOjpjb3B5S2V5VGltZXNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZh
bHVlKQogewotICAgIENBS2V5ZnJhbWVBbmltYXRpb24qIG90aGVyID0gc3RhdGljX2Nhc3Q8Q0FL
ZXlmcmFtZUFuaW1hdGlvbio+KHZhbHVlLT5tX2FuaW1hdGlvbi5nZXQoKSk7CisgICAgQ0FLZXlm
cmFtZUFuaW1hdGlvbiogb3RoZXIgPSBzdGF0aWNfY2FzdDxDQUtleWZyYW1lQW5pbWF0aW9uKj4o
dG9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKHZhbHVlKS0+bV9hbmltYXRpb24uZ2V0KCkpOwogICAg
IFtzdGF0aWNfY2FzdDxDQUtleWZyYW1lQW5pbWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNl
dEtleVRpbWVzOltvdGhlciBrZXlUaW1lc11dOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b246OnNldFRpbWluZ0Z1bmN0aW9ucyhjb25zdCBWZWN0b3I8Y29uc3QgVGltaW5nRnVuY3Rpb24q
PiYgdmFsdWUsIGJvb2wgcmV2ZXJzZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0
VGltaW5nRnVuY3Rpb25zKGNvbnN0IFZlY3Rvcjxjb25zdCBUaW1pbmdGdW5jdGlvbio+JiB2YWx1
ZSwgYm9vbCByZXZlcnNlKQogewogICAgIE5TTXV0YWJsZUFycmF5KiBhcnJheSA9IFtOU011dGFi
bGVBcnJheSBhcnJheV07CiAKQEAgLTU3Niw4ICs1NzgsOCBAQCB2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb246OnNldFRpbWluZ0Z1bmN0aW9ucyhjb25zdCBWZWN0b3I8Y29uc3QgVGltaW5nRnVuY3Rp
b24qPgogICAgIFtzdGF0aWNfY2FzdDxDQUtleWZyYW1lQW5pbWF0aW9uKj4obV9hbmltYXRpb24u
Z2V0KCkpIHNldFRpbWluZ0Z1bmN0aW9uczphcnJheV07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvbjo6Y29weVRpbWluZ0Z1bmN0aW9uc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlv
biogdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OmNvcHlUaW1pbmdGdW5jdGlv
bnNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQogewotICAgIENBS2V5ZnJh
bWVBbmltYXRpb24qIG90aGVyID0gc3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+KHZh
bHVlLT5tX2FuaW1hdGlvbi5nZXQoKSk7CisgICAgQ0FLZXlmcmFtZUFuaW1hdGlvbiogb3RoZXIg
PSBzdGF0aWNfY2FzdDxDQUtleWZyYW1lQW5pbWF0aW9uKj4odG9QbGF0Zm9ybUNBQW5pbWF0aW9u
TWFjKHZhbHVlKS0+bV9hbmltYXRpb24uZ2V0KCkpOwogICAgIFtzdGF0aWNfY2FzdDxDQUtleWZy
YW1lQW5pbWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNldFRpbWluZ0Z1bmN0aW9uczpbb3Ro
ZXIgdGltaW5nRnVuY3Rpb25zXV07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQppbmRleCA2
ODU2YTIyZjRjNDNmNTQyZTEwODgxNWFhYWNjZWRhMGYzODQ3MDkzLi5jZjhlMzBhZmUxNmZlNzlh
MGNkOGJiYmU1OTFhYWE3ZjQ1MDkwYTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0KQEAg
LTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiR3Jh
cGhpY3NMYXllckNBLmgiCiAjaW1wb3J0ICJMZW5ndGhGdW5jdGlvbnMuaCIKKyNpbXBvcnQgIlBs
YXRmb3JtQ0FBbmltYXRpb25NYWMuaCIKICNpbXBvcnQgIlBsYXRmb3JtQ0FGaWx0ZXJzLmgiCiAj
aW1wb3J0ICJQbGF0Zm9ybUNBRmlsdGVyc01hYy5oIgogI2ltcG9ydCAiU2Nyb2xsYmFyVGhlbWVN
YWMuaCIKQEAgLTM5NSwxMiArMzk2LDEyIEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjphZGRB
bmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIFBsYXRmb3JtQ0FBbmltYXRpCiAgICAg
ICAgIFt3ZWJBbmltYXRpb25EZWxlZ2F0ZSBzZXRPd25lcjp0aGlzXTsKICAgICB9CiAgICAgCi0g
ICAgQ0FQcm9wZXJ0eUFuaW1hdGlvbiogcHJvcGVydHlBbmltYXRpb24gPSBzdGF0aWNfY2FzdDxD
QVByb3BlcnR5QW5pbWF0aW9uKj4oYW5pbWF0aW9uLT5wbGF0Zm9ybUFuaW1hdGlvbigpKTsKKyAg
ICBDQVByb3BlcnR5QW5pbWF0aW9uKiBwcm9wZXJ0eUFuaW1hdGlvbiA9IHN0YXRpY19jYXN0PENB
UHJvcGVydHlBbmltYXRpb24qPih0b1BsYXRmb3JtQ0FBbmltYXRpb25NYWMoYW5pbWF0aW9uKS0+
cGxhdGZvcm1BbmltYXRpb24oKSk7CiAgICAgaWYgKCFbcHJvcGVydHlBbmltYXRpb24gZGVsZWdh
dGVdKQogICAgICAgICBbcHJvcGVydHlBbmltYXRpb24gc2V0RGVsZWdhdGU6c3RhdGljX2Nhc3Q8
aWQ+KG1fZGVsZWdhdGUuZ2V0KCkpXTsKICAgICAgCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENF
UFRJT05TCi0gICAgW21fbGF5ZXIuZ2V0KCkgYWRkQW5pbWF0aW9uOmFuaW1hdGlvbi0+bV9hbmlt
YXRpb24uZ2V0KCkgZm9yS2V5OmtleV07CisgICAgW21fbGF5ZXIuZ2V0KCkgYWRkQW5pbWF0aW9u
OnByb3BlcnR5QW5pbWF0aW9uIGZvcktleTprZXldOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMKIH0KIApAQCAtNDE2LDcgKzQxNyw3IEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1h
dGlvbj4gUGxhdGZvcm1DQUxheWVyTWFjOjphbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nCiAg
ICAgQ0FQcm9wZXJ0eUFuaW1hdGlvbiogcHJvcGVydHlBbmltYXRpb24gPSBzdGF0aWNfY2FzdDxD
QVByb3BlcnR5QW5pbWF0aW9uKj4oW21fbGF5ZXIuZ2V0KCkgYW5pbWF0aW9uRm9yS2V5OmtleV0p
OwogICAgIGlmICghcHJvcGVydHlBbmltYXRpb24pCiAgICAgICAgIHJldHVybiAwOwotICAgIHJl
dHVybiBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjcmVhdGUocHJvcGVydHlBbmltYXRpb24pOworICAg
IHJldHVybiBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpjcmVhdGUocHJvcGVydHlBbmltYXRpb24p
OwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6c2V0TWFzayhQbGF0Zm9ybUNBTGF5ZXIq
IGxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
bWFjL1RpbGVDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvbWFjL1RpbGVDb250cm9sbGVyLm1tCmluZGV4IGZlM2U4MGViMDY1YWI0OGFlNzdiYjdjNTI2
NmIxYzRjOGM4NzQ1ZTYuLmZlYzM5YmE3M2E1ODc0NzQyNWI1N2YxZDMyZTk2NGMxNGIzYTcxZTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxl
Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9t
YWMvVGlsZUNvbnRyb2xsZXIubW0KQEAgLTI2LDYgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5o
IgogI2ltcG9ydCAiVGlsZUNvbnRyb2xsZXIuaCIKIAorI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0
LmgiCiAjaW1wb3J0ICJJbnRSZWN0LmgiCiAjaW1wb3J0ICJQbGF0Zm9ybUNBTGF5ZXIuaCIKICNp
bXBvcnQgIlJlZ2lvbi5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FBbmltYXRpb25XaW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FBbmltYXRpb25XaW4uY3BwCmluZGV4
IDJhNWMzZjIyODIxNWU2YTY4YWRjYWFhN2IzNDliYjgzZWViNWFjOTEuLjVmNmMyNGM4NzliMmI0
YWQyYzgxMjUxYWZiZDAzNjdjY2M1Mzc5NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUFuaW1hdGlv
bldpbi5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI1LDcgKzI1LDggQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaW5jbHVkZSAiUGxh
dGZvcm1DQUFuaW1hdGlvbi5oIgorI2lmIFBMQVRGT1JNKFdJTikKKyNpbmNsdWRlICJQbGF0Zm9y
bUNBQW5pbWF0aW9uV2luLmgiCiAKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKICNpbmNs
dWRlICJUaW1pbmdGdW5jdGlvbi5oIgpAQCAtMTQxLDE3ICsxNDIsMTcgQEAgc3RhdGljIFJldGFp
blB0cjxDQUNGVGltaW5nRnVuY3Rpb25SZWY+IHRvQ0FDRlRpbWluZ0Z1bmN0aW9uKGNvbnN0IFRp
bWluZ0Z1bmN0aW8KICAgICByZXR1cm4gQ0FDRlRpbWluZ0Z1bmN0aW9uR2V0RnVuY3Rpb25XaXRo
TmFtZShrQ0FDRlRpbWluZ0Z1bmN0aW9uTGluZWFyKTsKIH0KIAotUGFzc1JlZlB0cjxQbGF0Zm9y
bUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjcmVhdGUoQW5pbWF0aW9uVHlwZSB0
eXBlLCBjb25zdCBTdHJpbmcmIGtleVBhdGgpCitQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRp
b24+IFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OmNyZWF0ZShBbmltYXRpb25UeXBlIHR5cGUsIGNv
bnN0IFN0cmluZyYga2V5UGF0aCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBsYXRmb3Jt
Q0FBbmltYXRpb24odHlwZSwga2V5UGF0aCkpOwogfQogCi1QYXNzUmVmUHRyPFBsYXRmb3JtQ0FB
bmltYXRpb24+IFBsYXRmb3JtQ0FBbmltYXRpb246OmNyZWF0ZShQbGF0Zm9ybUFuaW1hdGlvblJl
ZiBhbmltYXRpb24pCitQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRmb3JtQ0FB
bmltYXRpb25XaW46OmNyZWF0ZShQbGF0Zm9ybUFuaW1hdGlvblJlZiBhbmltYXRpb24pCiB7CiAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQbGF0Zm9ybUNBQW5pbWF0aW9uKGFuaW1hdGlvbikpOwog
fQogCi1QbGF0Zm9ybUNBQW5pbWF0aW9uOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKEFuaW1hdGlvblR5
cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKQorUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6
UGxhdGZvcm1DQUFuaW1hdGlvbldpbihBbmltYXRpb25UeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYg
a2V5UGF0aCkKICAgICA6IG1fdHlwZSh0eXBlKQogewogICAgIGlmICh0eXBlID09IEJhc2ljKQpA
QCAtMTYyLDcgKzE2Myw3IEBAIFBsYXRmb3JtQ0FBbmltYXRpb246OlBsYXRmb3JtQ0FBbmltYXRp
b24oQW5pbWF0aW9uVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIGtleVBhCiAgICAgQ0FDRkFuaW1h
dGlvblNldEtleVBhdGgobV9hbmltYXRpb24uZ2V0KCksIGtleVBhdGguY3JlYXRlQ0ZTdHJpbmco
KS5nZXQoKSk7CiB9CiAKLVBsYXRmb3JtQ0FBbmltYXRpb246OlBsYXRmb3JtQ0FBbmltYXRpb24o
UGxhdGZvcm1BbmltYXRpb25SZWYgYW5pbWF0aW9uKQorUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6
UGxhdGZvcm1DQUFuaW1hdGlvbldpbihQbGF0Zm9ybUFuaW1hdGlvblJlZiBhbmltYXRpb24pCiB7
CiAgICAgaWYgKENBQ0ZBbmltYXRpb25HZXRDbGFzcyhhbmltYXRpb24pID09IGtDQUNGQmFzaWNB
bmltYXRpb24pCiAgICAgICAgIG1fdHlwZSA9IEJhc2ljOwpAQCAtMTc2LDcgKzE3Nyw3IEBAIFBs
YXRmb3JtQ0FBbmltYXRpb246OlBsYXRmb3JtQ0FBbmltYXRpb24oUGxhdGZvcm1BbmltYXRpb25S
ZWYgYW5pbWF0aW9uKQogICAgIG1fYW5pbWF0aW9uID0gYW5pbWF0aW9uOwogfQogCi1QYXNzUmVm
UHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRmb3JtQ0FBbmltYXRpb246OmNvcHkoKSBjb25z
dAorUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5pbWF0aW9uV2lu
Ojpjb3B5KCkgY29uc3QKIHsKICAgICBSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gYW5pbWF0
aW9uID0gY3JlYXRlKGFuaW1hdGlvblR5cGUoKSwga2V5UGF0aCgpKTsKICAgICAKQEAgLTIwNiwx
MzYgKzIwNywxMzYgQEAgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNB
QW5pbWF0aW9uOjpjb3B5KCkgY29uc3QKICAgICByZXR1cm4gYW5pbWF0aW9uOwogfQogCi1QbGF0
Zm9ybUNBQW5pbWF0aW9uOjp+UGxhdGZvcm1DQUFuaW1hdGlvbigpCitQbGF0Zm9ybUNBQW5pbWF0
aW9uV2luOjp+UGxhdGZvcm1DQUFuaW1hdGlvbldpbigpCiB7CiB9CiAKLVBsYXRmb3JtQW5pbWF0
aW9uUmVmIFBsYXRmb3JtQ0FBbmltYXRpb246OnBsYXRmb3JtQW5pbWF0aW9uKCkgY29uc3QKK1Bs
YXRmb3JtQW5pbWF0aW9uUmVmIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnBsYXRmb3JtQW5pbWF0
aW9uKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9hbmltYXRpb24uZ2V0KCk7CiB9CiAKLVN0cmlu
ZyBQbGF0Zm9ybUNBQW5pbWF0aW9uOjprZXlQYXRoKCkgY29uc3QKK1N0cmluZyBQbGF0Zm9ybUNB
QW5pbWF0aW9uV2luOjprZXlQYXRoKCkgY29uc3QKIHsKICAgICByZXR1cm4gQ0FDRkFuaW1hdGlv
bkdldEtleVBhdGgobV9hbmltYXRpb24uZ2V0KCkpOwogfQogCi1DRlRpbWVJbnRlcnZhbCBQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpiZWdpblRpbWUoKSBjb25zdAorQ0ZUaW1lSW50ZXJ2YWwgUGxhdGZv
cm1DQUFuaW1hdGlvbldpbjo6YmVnaW5UaW1lKCkgY29uc3QKIHsKICAgICByZXR1cm4gQ0FDRkFu
aW1hdGlvbkdldEJlZ2luVGltZShtX2FuaW1hdGlvbi5nZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZv
cm1DQUFuaW1hdGlvbjo6c2V0QmVnaW5UaW1lKENGVGltZUludGVydmFsIHZhbHVlKQordm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRCZWdpblRpbWUoQ0ZUaW1lSW50ZXJ2YWwgdmFsdWUp
CiB7CiAgICAgQ0FDRkFuaW1hdGlvblNldEJlZ2luVGltZShtX2FuaW1hdGlvbi5nZXQoKSwgdmFs
dWUpOwogfQogCi1DRlRpbWVJbnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpkdXJhdGlvbigp
IGNvbnN0CitDRlRpbWVJbnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpkdXJhdGlvbigp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIENBQ0ZBbmltYXRpb25HZXREdXJhdGlvbihtX2FuaW1hdGlv
bi5nZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0RHVyYXRpb24oQ0ZU
aW1lSW50ZXJ2YWwgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldER1cmF0
aW9uKENGVGltZUludGVydmFsIHZhbHVlKQogewogICAgIENBQ0ZBbmltYXRpb25TZXREdXJhdGlv
bihtX2FuaW1hdGlvbi5nZXQoKSwgdmFsdWUpOwogfQogCi1mbG9hdCBQbGF0Zm9ybUNBQW5pbWF0
aW9uOjpzcGVlZCgpIGNvbnN0CitmbG9hdCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzcGVlZCgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIENBQ0ZBbmltYXRpb25HZXRTcGVlZChtX2FuaW1hdGlvbi5n
ZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0U3BlZWQoZmxvYXQgdmFs
dWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldFNwZWVkKGZsb2F0IHZhbHVlKQog
ewogICAgIENBQ0ZBbmltYXRpb25TZXRTcGVlZChtX2FuaW1hdGlvbi5nZXQoKSwgdmFsdWUpOwog
fQogCi1DRlRpbWVJbnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjp0aW1lT2Zmc2V0KCkgY29u
c3QKK0NGVGltZUludGVydmFsIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnRpbWVPZmZzZXQoKSBj
b25zdAogewogICAgIHJldHVybiBDQUNGQW5pbWF0aW9uR2V0VGltZU9mZnNldChtX2FuaW1hdGlv
bi5nZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VGltZU9mZnNldChD
RlRpbWVJbnRlcnZhbCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0VGlt
ZU9mZnNldChDRlRpbWVJbnRlcnZhbCB2YWx1ZSkKIHsKICAgICBDQUNGQW5pbWF0aW9uU2V0VGlt
ZU9mZnNldChtX2FuaW1hdGlvbi5nZXQoKSwgdmFsdWUpOwogfQogCi1mbG9hdCBQbGF0Zm9ybUNB
QW5pbWF0aW9uOjpyZXBlYXRDb3VudCgpIGNvbnN0CitmbG9hdCBQbGF0Zm9ybUNBQW5pbWF0aW9u
V2luOjpyZXBlYXRDb3VudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIENBQ0ZBbmltYXRpb25HZXRS
ZXBlYXRDb3VudChtX2FuaW1hdGlvbi5nZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1h
dGlvbjo6c2V0UmVwZWF0Q291bnQoZmxvYXQgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b25XaW46OnNldFJlcGVhdENvdW50KGZsb2F0IHZhbHVlKQogewogICAgIENBQ0ZBbmltYXRpb25T
ZXRSZXBlYXRDb3VudChtX2FuaW1hdGlvbi5nZXQoKSwgdmFsdWUpOwogfQogCi1ib29sIFBsYXRm
b3JtQ0FBbmltYXRpb246OmF1dG9yZXZlcnNlcygpIGNvbnN0Citib29sIFBsYXRmb3JtQ0FBbmlt
YXRpb25XaW46OmF1dG9yZXZlcnNlcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIENBQ0ZBbmltYXRp
b25HZXRBdXRvcmV2ZXJzZXMobV9hbmltYXRpb24uZ2V0KCkpOwogfQogCi12b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb246OnNldEF1dG9yZXZlcnNlcyhib29sIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNB
QW5pbWF0aW9uV2luOjpzZXRBdXRvcmV2ZXJzZXMoYm9vbCB2YWx1ZSkKIHsKICAgICBDQUNGQW5p
bWF0aW9uU2V0QXV0b3JldmVyc2VzKG1fYW5pbWF0aW9uLmdldCgpLCB2YWx1ZSk7CiB9CiAKLVBs
YXRmb3JtQ0FBbmltYXRpb246OkZpbGxNb2RlVHlwZSBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpmaWxs
TW9kZSgpIGNvbnN0CitQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpGaWxsTW9kZVR5cGUgUGxhdGZv
cm1DQUFuaW1hdGlvbldpbjo6ZmlsbE1vZGUoKSBjb25zdAogewogICAgIHJldHVybiBmcm9tQ0FD
RkZpbGxNb2RlVHlwZShDQUNGQW5pbWF0aW9uR2V0RmlsbE1vZGUobV9hbmltYXRpb24uZ2V0KCkp
KTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRGaWxsTW9kZShGaWxsTW9kZVR5
cGUgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldEZpbGxNb2RlKEZpbGxN
b2RlVHlwZSB2YWx1ZSkKIHsKICAgICBDQUNGQW5pbWF0aW9uU2V0RmlsbE1vZGUobV9hbmltYXRp
b24uZ2V0KCksIHRvQ0FDRkZpbGxNb2RlVHlwZSh2YWx1ZSkpOwogfQogCi12b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb246OnNldFRpbWluZ0Z1bmN0aW9uKGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB2YWx1
ZSwgYm9vbCByZXZlcnNlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRUaW1pbmdG
dW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiogdmFsdWUsIGJvb2wgcmV2ZXJzZSkKIHsKICAg
ICBVTlVTRURfUEFSQU0ocmV2ZXJzZSk7CiAgICAgQ0FDRkFuaW1hdGlvblNldFRpbWluZ0Z1bmN0
aW9uKG1fYW5pbWF0aW9uLmdldCgpLCB0b0NBQ0ZUaW1pbmdGdW5jdGlvbih2YWx1ZSwgcmV2ZXJz
ZSkuZ2V0KCkpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OmNvcHlUaW1pbmdGdW5j
dGlvbkZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCit2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25XaW46OmNvcHlUaW1pbmdGdW5jdGlvbkZyb20oY29uc3QgUGxhdGZvcm1DQUFu
aW1hdGlvbiogdmFsdWUpCiB7CiAgICAgQ0FDRlRpbWluZ0Z1bmN0aW9uUmVmIHRpbWluZ0Z1bmMg
PSBDQUNGQW5pbWF0aW9uR2V0VGltaW5nRnVuY3Rpb24odmFsdWUtPm1fYW5pbWF0aW9uLmdldCgp
KTsKICAgICBpZiAodGltaW5nRnVuYykKICAgICAgICAgQ0FDRkFuaW1hdGlvblNldFRpbWluZ0Z1
bmN0aW9uKG1fYW5pbWF0aW9uLmdldCgpLCB0aW1pbmdGdW5jKTsKIH0KIAotYm9vbCBQbGF0Zm9y
bUNBQW5pbWF0aW9uOjppc1JlbW92ZWRPbkNvbXBsZXRpb24oKSBjb25zdAorYm9vbCBQbGF0Zm9y
bUNBQW5pbWF0aW9uV2luOjppc1JlbW92ZWRPbkNvbXBsZXRpb24oKSBjb25zdAogewogICAgIHJl
dHVybiBDQUNGQW5pbWF0aW9uSXNSZW1vdmVkT25Db21wbGV0aW9uKG1fYW5pbWF0aW9uLmdldCgp
KTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRSZW1vdmVkT25Db21wbGV0aW9u
KGJvb2wgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldFJlbW92ZWRPbkNv
bXBsZXRpb24oYm9vbCB2YWx1ZSkKIHsKICAgICBDQUNGQW5pbWF0aW9uU2V0UmVtb3ZlZE9uQ29t
cGxldGlvbihtX2FuaW1hdGlvbi5nZXQoKSwgdmFsdWUpOwogfQogCi1ib29sIFBsYXRmb3JtQ0FB
bmltYXRpb246OmlzQWRkaXRpdmUoKSBjb25zdAorYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2lu
Ojppc0FkZGl0aXZlKCkgY29uc3QKIHsKICAgICByZXR1cm4gQ0FDRkFuaW1hdGlvbklzQWRkaXRp
dmUobV9hbmltYXRpb24uZ2V0KCkpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNl
dEFkZGl0aXZlKGJvb2wgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldEFk
ZGl0aXZlKGJvb2wgdmFsdWUpCiB7CiAgICAgQ0FDRkFuaW1hdGlvblNldEFkZGl0aXZlKG1fYW5p
bWF0aW9uLmdldCgpLCB2YWx1ZSk7CiB9CiAKLVBsYXRmb3JtQ0FBbmltYXRpb246OlZhbHVlRnVu
Y3Rpb25UeXBlIFBsYXRmb3JtQ0FBbmltYXRpb246OnZhbHVlRnVuY3Rpb24oKSBjb25zdAorUGxh
dGZvcm1DQUFuaW1hdGlvbjo6VmFsdWVGdW5jdGlvblR5cGUgUGxhdGZvcm1DQUFuaW1hdGlvbldp
bjo6dmFsdWVGdW5jdGlvbigpIGNvbnN0CiB7CiAgICAgQ0FDRlZhbHVlRnVuY3Rpb25SZWYgZnVu
YyA9IENBQ0ZBbmltYXRpb25HZXRWYWx1ZUZ1bmN0aW9uKG1fYW5pbWF0aW9uLmdldCgpKTsKICAg
ICByZXR1cm4gZnVuYyA/IGZyb21DQUNGVmFsdWVGdW5jdGlvblR5cGUoQ0FDRlZhbHVlRnVuY3Rp
b25HZXROYW1lKGZ1bmMpKSA6IE5vVmFsdWVGdW5jdGlvbjsKIH0KIAotdm9pZCBQbGF0Zm9ybUNB
QW5pbWF0aW9uOjpzZXRWYWx1ZUZ1bmN0aW9uKFZhbHVlRnVuY3Rpb25UeXBlIHZhbHVlKQordm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRWYWx1ZUZ1bmN0aW9uKFZhbHVlRnVuY3Rpb25U
eXBlIHZhbHVlKQogewogICAgIENGU3RyaW5nUmVmIHZhbHVlU3RyaW5nID0gdG9DQUNGVmFsdWVG
dW5jdGlvblR5cGUodmFsdWUpOwogICAgIENBQ0ZBbmltYXRpb25TZXRWYWx1ZUZ1bmN0aW9uKG1f
YW5pbWF0aW9uLmdldCgpLCB2YWx1ZVN0cmluZyA/IENBQ0ZWYWx1ZUZ1bmN0aW9uR2V0RnVuY3Rp
b25XaXRoTmFtZSh2YWx1ZVN0cmluZykgOiAwKTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0
aW9uOjpzZXRGcm9tVmFsdWUoZmxvYXQgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25X
aW46OnNldEZyb21WYWx1ZShmbG9hdCB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgp
ICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CkBAIC0zNDQsNyArMzQ1LDcgQEAgdm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpzZXRGcm9tVmFsdWUoZmxvYXQgdmFsdWUpCiAgICAgQ0FDRkFuaW1h
dGlvblNldEZyb21WYWx1ZShtX2FuaW1hdGlvbi5nZXQoKSwgdi5nZXQoKSk7CiB9CiAKLXZvaWQg
UGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9y
bWF0aW9uTWF0cml4JiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0RnJv
bVZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JiB2YWx1ZSkKIHsKICAg
ICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CkBAIC0zNTMs
NyArMzU0LDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRGcm9tVmFsdWUoY29uc3Qg
V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmIHZhbHUKICAgICBDQUNGQW5pbWF0aW9uU2V0
RnJvbVZhbHVlKG1fYW5pbWF0aW9uLmdldCgpLCB2LmdldCgpKTsKIH0KIAotdm9pZCBQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpzZXRGcm9tVmFsdWUoY29uc3QgRmxvYXRQb2ludDNEJiB2YWx1ZSkKK3Zv
aWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0RnJvbVZhbHVlKGNvbnN0IEZsb2F0UG9pbnQz
RCYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKICAgICAgICAg
cmV0dXJuOwpAQCAtMzYzLDcgKzM2NCw3IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0
RnJvbVZhbHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYgdmFsdWUpCiAgICAgQ0FDRkFuaW1hdGlvblNl
dEZyb21WYWx1ZShtX2FuaW1hdGlvbi5nZXQoKSwgdi5nZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZv
cm1DQUFuaW1hdGlvbjo6c2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiB2YWx1ZSkK
K3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6
OkNvbG9yJiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQogICAg
ICAgICByZXR1cm47CkBAIC0zNzQsMTMgKzM3NSwxMyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b246OnNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYgdmFsdWUpCiB9CiAKICNpZiBF
TkFCTEUoQ1NTX0ZJTFRFUlMpCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEZyb21WYWx1
ZShjb25zdCBGaWx0ZXJPcGVyYXRpb24qLCBpbnQpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25X
aW46OnNldEZyb21WYWx1ZShjb25zdCBGaWx0ZXJPcGVyYXRpb24qLCBpbnQpCiB7CiAgICAgLy8g
RklYTUU6IEhhcmR3YXJlIGZpbHRlciBhbmltYXRpb24gbm90IGltcGxlbWVudGVkIG9uIFdpbmRv
d3MKIH0KICNlbmRpZgogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OmNvcHlGcm9tVmFsdWVG
cm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uV2luOjpjb3B5RnJvbVZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2
YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljIHx8IHZhbHVlLT5hbmlt
YXRpb25UeXBlKCkgIT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKQEAgLTM4OCw3ICszODksNyBA
QCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OmNvcHlGcm9tVmFsdWVGcm9tKGNvbnN0IFBsYXRm
b3JtQ0FBbmltYXRpb24qIHZhbHVlKQogICAgIENBQ0ZBbmltYXRpb25TZXRGcm9tVmFsdWUobV9h
bmltYXRpb24uZ2V0KCksIENBQ0ZBbmltYXRpb25HZXRGcm9tVmFsdWUodmFsdWUtPnBsYXRmb3Jt
QW5pbWF0aW9uKCkpKTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUb1ZhbHVl
KGZsb2F0IHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRUb1ZhbHVlKGZs
b2F0IHZhbHVlKQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCiAgICAgICAg
IHJldHVybjsKQEAgLTM5Nyw3ICszOTgsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNl
dFRvVmFsdWUoZmxvYXQgdmFsdWUpCiAgICAgQ0FDRkFuaW1hdGlvblNldFRvVmFsdWUobV9hbmlt
YXRpb24uZ2V0KCksIHYuZ2V0KCkpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNl
dFRvVmFsdWUoY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmIHZhbHVlKQordm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5z
Zm9ybWF0aW9uTWF0cml4JiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJh
c2ljKQogICAgICAgICByZXR1cm47CkBAIC00MDYsNyArNDA3LDcgQEAgdm9pZCBQbGF0Zm9ybUNB
QW5pbWF0aW9uOjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4
JiB2YWx1ZSkKICAgICBDQUNGQW5pbWF0aW9uU2V0VG9WYWx1ZShtX2FuaW1hdGlvbi5nZXQoKSwg
di5nZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VG9WYWx1ZShjb25z
dCBGbG9hdFBvaW50M0QmIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRU
b1ZhbHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5
cGUoKSAhPSBCYXNpYykKICAgICAgICAgcmV0dXJuOwpAQCAtNDE2LDcgKzQxNyw3IEBAIHZvaWQg
UGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VG9WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmIHZhbHVl
KQogICAgIENBQ0ZBbmltYXRpb25TZXRUb1ZhbHVlKG1fYW5pbWF0aW9uLmdldCgpLCB2LmdldCgp
KTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNv
cmU6OkNvbG9yJiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0VG9WYWx1
ZShjb25zdCBXZWJDb3JlOjpDb2xvciYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUo
KSAhPSBCYXNpYykKICAgICAgICAgcmV0dXJuOwpAQCAtNDI3LDEzICs0MjgsMTMgQEAgdm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiB2YWx1
ZSkKIH0KIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
bjo6c2V0VG9WYWx1ZShjb25zdCBGaWx0ZXJPcGVyYXRpb24qLCBpbnQpCit2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25XaW46OnNldFRvVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiwgaW50KQog
ewogICAgIC8vIEZJWE1FOiBIYXJkd2FyZSBmaWx0ZXIgYW5pbWF0aW9uIG5vdCBpbXBsZW1lbnRl
ZCBvbiBXaW5kb3dzCiB9CiAjZW5kaWYKIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5
VG9WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCit2b2lkIFBsYXRm
b3JtQ0FBbmltYXRpb25XaW46OmNvcHlUb1ZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0
aW9uKiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljIHx8IHZhbHVl
LT5hbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKQEAgLTQ0Myw3ICs0
NDQsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OmNvcHlUb1ZhbHVlRnJvbShjb25zdCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIAogCiAvLyBLZXlmcmFtZS1hbmltYXRpb24gcHJv
cGVydGllcy4KLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3Rv
cjxmbG9hdD4mIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRWYWx1ZXMo
Y29uc3QgVmVjdG9yPGZsb2F0PiYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAh
PSBLZXlmcmFtZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDU3LDcgKzQ1OCw3IEBAIHZvaWQgUGxh
dGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mIHZhbHVlKQog
ICAgIENBQ0ZBbmltYXRpb25TZXRWYWx1ZXMobV9hbmltYXRpb24uZ2V0KCksIGFycmF5LmdldCgp
KTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9y
PFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiYgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FB
bmltYXRpb25XaW46OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6VHJhbnNmb3JtYXRp
b25NYXRyaXg+JiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZyYW1l
KQogICAgICAgICByZXR1cm47CkBAIC00NzEsNyArNDcyLDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0
cml4PiYKICAgICBDQUNGQW5pbWF0aW9uU2V0VmFsdWVzKG1fYW5pbWF0aW9uLmdldCgpLCBhcnJh
eS5nZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0
IFZlY3RvcjxGbG9hdFBvaW50M0Q+JiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldp
bjo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxGbG9hdFBvaW50M0Q+JiB2YWx1ZSkKIHsKICAgICBp
ZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZyYW1lKQogICAgICAgICByZXR1cm47CkBAIC00ODYs
NyArNDg3LDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVj
dG9yPEZsb2F0UG9pbnQzRD4mIHZhbHVlKQogICAgIENBQ0ZBbmltYXRpb25TZXRWYWx1ZXMobV9h
bmltYXRpb24uZ2V0KCksIGFycmF5LmdldCgpKTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0
aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbG9yPiYgdmFsdWUpCit2b2lk
IFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6
Q29sb3I+JiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZyYW1lKQog
ICAgICAgICByZXR1cm47CkBAIC01MDIsMTMgKzUwMywxMyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb246OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+JiB2YWx1ZSkKIH0K
IAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0
VmFsdWVzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiA+JiwgaW50KQordm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxG
aWx0ZXJPcGVyYXRpb24+ID4mLCBpbnQpCiB7CiAgICAgLy8gRklYTUU6IEhhcmR3YXJlIGZpbHRl
ciBhbmltYXRpb24gbm90IGltcGxlbWVudGVkIG9uIFdpbmRvd3MKIH0KICNlbmRpZgogCi12b2lk
IFBsYXRmb3JtQ0FBbmltYXRpb246OmNvcHlWYWx1ZXNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmlt
YXRpb24qIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpjb3B5VmFsdWVzRnJv
bShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9u
VHlwZSgpICE9IEtleWZyYW1lIHx8IHZhbHVlLT5hbmltYXRpb25UeXBlKCkgIT0gS2V5ZnJhbWUp
CiAgICAgICAgIHJldHVybjsKQEAgLTUxNiw3ICs1MTcsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb246OmNvcHlWYWx1ZXNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQog
ICAgIENBQ0ZBbmltYXRpb25TZXRWYWx1ZXMobV9hbmltYXRpb24uZ2V0KCksIENBQ0ZBbmltYXRp
b25HZXRWYWx1ZXModmFsdWUtPnBsYXRmb3JtQW5pbWF0aW9uKCkpKTsKIH0KIAotdm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpzZXRLZXlUaW1lcyhjb25zdCBWZWN0b3I8ZmxvYXQ+JiB2YWx1ZSkK
K3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0S2V5VGltZXMoY29uc3QgVmVjdG9yPGZs
b2F0PiYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBLZXlmcmFtZSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtNTMwLDcgKzUzMSw3IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
bjo6c2V0S2V5VGltZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYgdmFsdWUpCiAgICAgQ0FDRkFuaW1h
dGlvblNldEtleVRpbWVzKG1fYW5pbWF0aW9uLmdldCgpLCBhcnJheS5nZXQoKSk7CiB9CiAKLXZv
aWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weUtleVRpbWVzRnJvbShjb25zdCBQbGF0Zm9ybUNB
QW5pbWF0aW9uKiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6Y29weUtleVRp
bWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIHsKICAgICBpZiAoYW5p
bWF0aW9uVHlwZSgpICE9IEtleWZyYW1lKQogICAgICAgICByZXR1cm47CkBAIC01MzgsNyArNTM5
LDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5S2V5VGltZXNGcm9tKGNvbnN0IFBs
YXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQogICAgIENBQ0ZBbmltYXRpb25TZXRLZXlUaW1lcyht
X2FuaW1hdGlvbi5nZXQoKSwgQ0FDRkFuaW1hdGlvbkdldEtleVRpbWVzKHZhbHVlLT5wbGF0Zm9y
bUFuaW1hdGlvbigpKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VGltaW5n
RnVuY3Rpb25zKGNvbnN0IFZlY3Rvcjxjb25zdCBUaW1pbmdGdW5jdGlvbio+JiB2YWx1ZSwgYm9v
bCByZXZlcnNlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRUaW1pbmdGdW5jdGlv
bnMoY29uc3QgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4mIHZhbHVlLCBib29sIHJldmVy
c2UpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHJldmVyc2UpOwogICAgIGlmIChhbmltYXRpb25UeXBl
KCkgIT0gS2V5ZnJhbWUpCkBAIC01NTMsNyArNTU0LDkgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0
aW9uOjpzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9u
Kj4KICAgICBDQUNGQW5pbWF0aW9uU2V0VGltaW5nRnVuY3Rpb25zKG1fYW5pbWF0aW9uLmdldCgp
LCBhcnJheS5nZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weVRpbWlu
Z0Z1bmN0aW9uc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCit2b2lkIFBs
YXRmb3JtQ0FBbmltYXRpb25XaW46OmNvcHlUaW1pbmdGdW5jdGlvbnNGcm9tKGNvbnN0IFBsYXRm
b3JtQ0FBbmltYXRpb24qIHZhbHVlKQogewogICAgIENBQ0ZBbmltYXRpb25TZXRUaW1pbmdGdW5j
dGlvbnMobV9hbmltYXRpb24uZ2V0KCksIENBQ0ZBbmltYXRpb25HZXRUaW1pbmdGdW5jdGlvbnMo
dmFsdWUtPnBsYXRmb3JtQW5pbWF0aW9uKCkpKTsKIH0KKworI2VuZGlmIC8vIFBMQVRGT1JNKFdJ
TikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9Q
bGF0Zm9ybUNBQW5pbWF0aW9uV2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkMmIxOWY0M2I3
NDUwN2FjYTQ1NmNjN2M1MTUzOGM0MmMzMzcxOGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5o
CkBAIC0wLDAgKzEsMTM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgUGxhdGZvcm1DQUFuaW1hdGlvbldpbl9oCisjZGVmaW5lIFBsYXRm
b3JtQ0FBbmltYXRpb25XaW5faAorCisjaWYgUExBVEZPUk0oV0lOKQorCisjaW5jbHVkZSAiUGxh
dGZvcm1DQUFuaW1hdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKwordHlwZWRl
ZiBzdHJ1Y3QgX0NBQ0ZBbmltYXRpb24qIENBQ0ZBbmltYXRpb25SZWY7Cit0eXBlZGVmIENBQ0ZB
bmltYXRpb25SZWYgUGxhdGZvcm1BbmltYXRpb25SZWY7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgUGxhdGZvcm1DQUFuaW1hdGlvbldpbiBmaW5hbCA6IHB1YmxpYyBQbGF0Zm9ybUNB
QW5pbWF0aW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5p
bWF0aW9uPiBjcmVhdGUoQW5pbWF0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKTsKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBjcmVhdGUoUGxhdGZvcm1B
bmltYXRpb25SZWYpOworCisgICAgdmlydHVhbCB+UGxhdGZvcm1DQUFuaW1hdGlvbldpbigpOwor
CisgICAgdmlydHVhbCBib29sIGlzUGxhdGZvcm1DQUFuaW1hdGlvbldpbigpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UGxhdGZv
cm1DQUFuaW1hdGlvbj4gY29weSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgUGxhdGZvcm1Bbmlt
YXRpb25SZWYgcGxhdGZvcm1BbmltYXRpb24oKSBjb25zdDsKKyAgICAKKyAgICB2aXJ0dWFsIFN0
cmluZyBrZXlQYXRoKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgCisgICAgdmlydHVhbCBDRlRpbWVJ
bnRlcnZhbCBiZWdpblRpbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
QmVnaW5UaW1lKENGVGltZUludGVydmFsKSBvdmVycmlkZTsKKyAgICAKKyAgICB2aXJ0dWFsIENG
VGltZUludGVydmFsIGR1cmF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHNldER1cmF0aW9uKENGVGltZUludGVydmFsKSBvdmVycmlkZTsKKyAgICAKKyAgICB2aXJ0dWFs
IGZsb2F0IHNwZWVkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFNwZWVk
KGZsb2F0KSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgQ0ZUaW1lSW50ZXJ2YWwgdGltZU9mZnNl
dCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRUaW1lT2Zmc2V0KENGVGlt
ZUludGVydmFsKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgZmxvYXQgcmVwZWF0Q291bnQoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVwZWF0Q291bnQoZmxvYXQpIG92
ZXJyaWRlOworCisgICAgdmlydHVhbCBib29sIGF1dG9yZXZlcnNlcygpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBzZXRBdXRvcmV2ZXJzZXMoYm9vbCkgb3ZlcnJpZGU7CisKKyAg
ICB2aXJ0dWFsIEZpbGxNb2RlVHlwZSBmaWxsTW9kZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBzZXRGaWxsTW9kZShGaWxsTW9kZVR5cGUpIG92ZXJyaWRlOworICAgIAorICAg
IHZpcnR1YWwgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiosIGJv
b2wgcmV2ZXJzZSA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvcHlUaW1pbmdGdW5jdGlv
bkZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOworCisgICAgdmlydHVh
bCBib29sIGlzUmVtb3ZlZE9uQ29tcGxldGlvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBzZXRSZW1vdmVkT25Db21wbGV0aW9uKGJvb2wpIG92ZXJyaWRlOworCisgICAgdmly
dHVhbCBib29sIGlzQWRkaXRpdmUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0QWRkaXRpdmUoYm9vbCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIFZhbHVlRnVuY3Rpb25U
eXBlIHZhbHVlRnVuY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
VmFsdWVGdW5jdGlvbihWYWx1ZUZ1bmN0aW9uVHlwZSkgb3ZlcnJpZGU7CisKKyAgICAvLyBCYXNp
Yy1hbmltYXRpb24gcHJvcGVydGllcy4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGZs
b2F0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNv
cmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNl
dEZyb21WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgb3ZlcnJpZGU7CisjaWYgRU5B
QkxFKENTU19GSUxURVJTKQorICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgRmls
dGVyT3BlcmF0aW9uKiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgb3ZlcnJpZGU7
CisjZW5kaWYKKyAgICB2aXJ0dWFsIHZvaWQgY29weUZyb21WYWx1ZUZyb20oY29uc3QgUGxhdGZv
cm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUo
ZmxvYXQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IFdlYkNv
cmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNl
dFRvVmFsdWUoY29uc3QgRmxvYXRQb2ludDNEJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHNldFRvVmFsdWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVycmlkZTsKKyNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3QgRmlsdGVyT3Bl
cmF0aW9uKiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgb3ZlcnJpZGU7CisjZW5k
aWYKKyAgICB2aXJ0dWFsIHZvaWQgY29weVRvVmFsdWVGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmlt
YXRpb24qKSBvdmVycmlkZTsKKworICAgIC8vIEtleWZyYW1lLWFuaW1hdGlvbiBwcm9wZXJ0aWVz
LgorICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRy
YW5zZm9ybWF0aW9uTWF0cml4PiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1
ZXMoY29uc3QgVmVjdG9yPEZsb2F0UG9pbnQzRD4mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb2xvcj4mKSBvdmVycmlkZTsKKyNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlcyhjb25zdCBW
ZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4+JiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVy
dHlJbmRleCkgb3ZlcnJpZGU7CisjZW5kaWYKKyAgICB2aXJ0dWFsIHZvaWQgY29weVZhbHVlc0Zy
b20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2
b2lkIHNldEtleVRpbWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgY29weUtleVRpbWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3Zl
cnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGltaW5nRnVuY3Rpb25zKGNvbnN0IFZlY3Rv
cjxjb25zdCBUaW1pbmdGdW5jdGlvbio+JiwgYm9vbCByZXZlcnNlID0gZmFsc2UpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShjb25zdCBQbGF0Zm9y
bUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CisKK3Byb3RlY3RlZDoKKyAgICBQbGF0Zm9ybUNBQW5p
bWF0aW9uV2luKEFuaW1hdGlvblR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCk7CisgICAgUGxh
dGZvcm1DQUFuaW1hdGlvbldpbihQbGF0Zm9ybUFuaW1hdGlvblJlZik7CisKK3ByaXZhdGU6Cisg
ICAgUmV0YWluUHRyPENBQ0ZBbmltYXRpb25SZWY+IG1fYW5pbWF0aW9uOworfTsKKworUExBVEZP
Uk1fQ0FBTklNQVRJT05fVFlQRV9DQVNUUyhQbGF0Zm9ybUNBQW5pbWF0aW9uV2luLCBpc1BsYXRm
b3JtQ0FBbmltYXRpb25XaW4oKSkKKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oV0lOKQorCisj
ZW5kaWYgLy8gUGxhdGZvcm1DQUFuaW1hdGlvbldpbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCmluZGV4IDI5NzQxM2YzOGExY2FlNTQ3OGJjMTZhODMx
MDM1YTFkM2ExOWFiZTMuLmFlOGM2ZmJhN2YwOTIzNmU5MDE2ZmVkOTY5MGRjOTRmMjhmMjBhMzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSA8dXRpbGl0eT4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtMTkzLDYgKzE5NCw0
MCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5h
bWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogICAgIH0KIH07CiAKK3RlbXBsYXRlPHR5cGVu
YW1lIEtleUFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxIYXNoU2V0PEtleUFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnPj4g
eworICAgIHR5cGVkZWYgSGFzaFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZz4gSGFz
aFNldFR5cGU7CisKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBIYXNoU2V0VHlwZSYgaGFzaFNldCkKKyAgICB7CisgICAgICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGhhc2hTZXQuc2l6ZSgpKTsKKyAgICAgICAgZm9yICh0
eXBlbmFtZSBIYXNoU2V0VHlwZTo6Y29uc3RfaXRlcmF0b3IgaXQgPSBoYXNoU2V0LmJlZ2luKCks
IGVuZCA9IGhhc2hTZXQuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgICAgIGVuY29k
ZXIgPDwgKml0OworICAgIH0KKworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIEhhc2hTZXRUeXBlJiBoYXNoU2V0KQorICAgIHsKKyAgICAgICAgdWludDY0
X3QgaGFzaFNldFNpemU7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzaFNldFNpemUp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIEhhc2hTZXRUeXBlIHRlbXBI
YXNoU2V0OworICAgICAgICBmb3IgKHVpbnQ2NF90IGkgPSAwOyBpIDwgaGFzaFNldFNpemU7ICsr
aSkgeworICAgICAgICAgICAgS2V5QXJnIGtleTsKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoa2V5KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAg
IGlmICghdGVtcEhhc2hTZXQuYWRkKGtleSkuaXNOZXdFbnRyeSkgeworICAgICAgICAgICAgICAg
IC8vIFRoZSBoYXNoIG1hcCBhbHJlYWR5IGhhcyB0aGUgc3BlY2lmaWVkIGtleSwgYmFpbC4KKyAg
ICAgICAgICAgICAgICBkZWNvZGVyLm1hcmtJbnZhbGlkKCk7CisgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaGFzaFNldC5z
d2FwKHRlbXBIYXNoU2V0KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfTsKKwogdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxBdG9taWNTdHJpbmc+IHsKICAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAg
c3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIEF0b21pY1N0cmluZyYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCAx
NDNmYTc4MTRlMTNlYzE2OGFkMjYxMjUzYWM3OGM2YTBlNjZjNmFiLi5iYTliYTliZDgyZWVkYTY2
ZGIxMzcwOWQ1YTRkYzFlMThjMmNmYjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtNTksNiArNTksNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25J
RC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1RpbWluZ0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UcmFuc2Zvcm1hdGlv
bk1hdHJpeC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9V
c2VyU2NyaXB0Lmg+CkBAIC05MCw3ICs5MSw2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxBZmZpbmVU
cmFuc2Zvcm0+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBBZmZpbmVUcmFuCiAg
ICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKGRl
Y29kZXIsIGFmZmluZVRyYW5zZm9ybSk7CiB9CiAKLQogdm9pZCBBcmd1bWVudENvZGVyPFRyYW5z
Zm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybWF0aW9uTWF0cml4KQogewogICAgIFNpbXBs
ZUFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjplbmNvZGUoZW5jb2RlciwgdHJh
bnNmb3JtYXRpb25NYXRyaXgpOwpAQCAtMTAxLDYgKzEwMSw4MyBAQCBib29sIEFyZ3VtZW50Q29k
ZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBUcmFucwogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0
cml4Pjo6ZGVjb2RlKGRlY29kZXIsIHRyYW5zZm9ybWF0aW9uTWF0cml4KTsKIH0KIAordm9pZCBB
cmd1bWVudENvZGVyPExpbmVhclRpbWluZ0Z1bmN0aW9uPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgTGluZWFyVGltaW5nRnVuY3Rpb24mIHRpbWluZ0Z1bmN0aW9uKQor
eworICAgIGVuY29kZXIuZW5jb2RlRW51bSh0aW1pbmdGdW5jdGlvbi50eXBlKCkpOworfQorCiti
b29sIEFyZ3VtZW50Q29kZXI8TGluZWFyVGltaW5nRnVuY3Rpb24+OjpkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBMaW5lYXJUaW1pbmdGdW5jdGlvbiYgdGltaW5nRnVuY3Rpb24pCit7
CisgICAgLy8gVHlwZSBpcyBkZWNvZGVkIGJ5IHRoZSBjYWxsZXIuIE5vdGhpbmcgZWxzZSB0byBk
ZWNvZGUuCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgQXJndW1lbnRDb2RlcjxDdWJpY0Jl
emllclRpbWluZ0Z1bmN0aW9uPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29u
c3QgQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbiYgdGltaW5nRnVuY3Rpb24pCit7CisgICAgZW5j
b2Rlci5lbmNvZGVFbnVtKHRpbWluZ0Z1bmN0aW9uLnR5cGUoKSk7CisgICAgCisgICAgZW5jb2Rl
ciA8PCB0aW1pbmdGdW5jdGlvbi54MSgpOworICAgIGVuY29kZXIgPDwgdGltaW5nRnVuY3Rpb24u
eTEoKTsKKyAgICBlbmNvZGVyIDw8IHRpbWluZ0Z1bmN0aW9uLngyKCk7CisgICAgZW5jb2RlciA8
PCB0aW1pbmdGdW5jdGlvbi55MigpOworICAgIAorICAgIGVuY29kZXIuZW5jb2RlRW51bSh0aW1p
bmdGdW5jdGlvbi50aW1pbmdGdW5jdGlvblByZXNldCgpKTsKK30KKworYm9vbCBBcmd1bWVudENv
ZGVyPEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBk
ZWNvZGVyLCBDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uJiB0aW1pbmdGdW5jdGlvbikKK3sKKyAg
ICAvLyBUeXBlIGlzIGRlY29kZWQgYnkgdGhlIGNhbGxlci4KKyAgICBkb3VibGUgeDE7CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZSh4MSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGRv
dWJsZSB5MTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHkxKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgZG91YmxlIHgyOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoeDIpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBkb3VibGUgeTI7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZSh5MikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEN1YmljQmV6aWVyVGltaW5n
RnVuY3Rpb246OlRpbWluZ0Z1bmN0aW9uUHJlc2V0IHByZXNldDsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlRW51bShwcmVzZXQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB0aW1pbmdG
dW5jdGlvbi5zZXRWYWx1ZXMoeDEsIHkxLCB4MiwgeTIpOworICAgIHRpbWluZ0Z1bmN0aW9uLnNl
dFRpbWluZ0Z1bmN0aW9uUHJlc2V0KHByZXNldCk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
dm9pZCBBcmd1bWVudENvZGVyPFN0ZXBzVGltaW5nRnVuY3Rpb24+OjplbmNvZGUoQXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTdGVwc1RpbWluZ0Z1bmN0aW9uJiB0aW1pbmdGdW5jdGlv
bikKK3sKKyAgICBlbmNvZGVyLmVuY29kZUVudW0odGltaW5nRnVuY3Rpb24udHlwZSgpKTsKKyAg
ICAKKyAgICBlbmNvZGVyIDw8IHRpbWluZ0Z1bmN0aW9uLm51bWJlck9mU3RlcHMoKTsKKyAgICBl
bmNvZGVyIDw8IHRpbWluZ0Z1bmN0aW9uLnN0ZXBBdFN0YXJ0KCk7Cit9CisKK2Jvb2wgQXJndW1l
bnRDb2RlcjxTdGVwc1RpbWluZ0Z1bmN0aW9uPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgU3RlcHNUaW1pbmdGdW5jdGlvbiYgdGltaW5nRnVuY3Rpb24pCit7CisgICAgLy8gVHlw
ZSBpcyBkZWNvZGVkIGJ5IHRoZSBjYWxsZXIuCisgICAgaW50IG51bVN0ZXBzOworICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUobnVtU3RlcHMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBi
b29sIHN0ZXBBdFN0YXJ0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RlcEF0U3RhcnQpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB0aW1pbmdGdW5jdGlvbi5zZXROdW1iZXJPZlN0
ZXBzKG51bVN0ZXBzKTsKKyAgICB0aW1pbmdGdW5jdGlvbi5zZXRTdGVwQXRTdGFydChzdGVwQXRT
dGFydCk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0
UG9pbnQ+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFBvaW50
JiBmbG9hdFBvaW50KQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmVu
Y29kZShlbmNvZGVyLCBmbG9hdFBvaW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBmNTlmZDMxZjdiZGQwYjM3ZDllMmZmNWE5NWU2MDgy
ODk1MzZkMTIzLi5iYTNlN2I1N2E2MWQ5MTBhN2RjNGZlZWEzYzUyNTVmNTU1MzgwYzBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0zNCw2
ICszNCw3IEBAIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOwogY2xhc3MgQ2VydGlmaWNh
dGVJbmZvOwogY2xhc3MgQ29sb3I7CiBjbGFzcyBDcmVkZW50aWFsOworY2xhc3MgQ3ViaWNCZXpp
ZXJUaW1pbmdGdW5jdGlvbjsKIGNsYXNzIEN1cnNvcjsKIGNsYXNzIERhdGFiYXNlRGV0YWlsczsK
IGNsYXNzIEZpbHRlck9wZXJhdGlvbnM7CkBAIC00OCw3ICs0OSw3IEBAIGNsYXNzIEludFBvaW50
OwogY2xhc3MgSW50UmVjdDsKIGNsYXNzIEludFNpemU7CiBjbGFzcyBLZXlmcmFtZVZhbHVlTGlz
dDsKLWNsYXNzIFVSTDsKK2NsYXNzIExpbmVhclRpbWluZ0Z1bmN0aW9uOwogY2xhc3MgTm90aWZp
Y2F0aW9uOwogY2xhc3MgUHJvdGVjdGlvblNwYWNlOwogY2xhc3MgUmVnaW9uOwpAQCAtNTYsMTEg
KzU3LDEzIEBAIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBj
bGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgU2Vzc2lvbklEOworY2xhc3MgU3RlcHNUaW1p
bmdGdW5jdGlvbjsKIGNsYXNzIFN0aWNreVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsKIGNs
YXNzIFRleHRDaGVja2luZ1JlcXVlc3REYXRhOwogY2xhc3MgVHJhbnNmb3JtYXRpb25NYXRyaXg7
CiBjbGFzcyBVc2VyU3R5bGVTaGVldDsKIGNsYXNzIFVzZXJTY3JpcHQ7CitjbGFzcyBVUkw7CiBz
dHJ1Y3QgQ29tcG9zaXRpb25VbmRlcmxpbmU7CiBzdHJ1Y3QgQ29va2llOwogc3RydWN0IERpY3Rh
dGlvbkFsdGVybmF0aXZlOwpAQCAtMTEyLDYgKzExNSwyMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiB7CiAgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0
cml4Jik7CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Okxp
bmVhclRpbWluZ0Z1bmN0aW9uPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5j
b2RlciYsIGNvbnN0IFdlYkNvcmU6OkxpbmVhclRpbWluZ0Z1bmN0aW9uJik7CisgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkxpbmVhclRpbWluZ0Z1bmN0
aW9uJik7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkN1
YmljQmV6aWVyVGltaW5nRnVuY3Rpb24+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1l
bnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbiYpOwor
ICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpDdWJpY0Jl
emllclRpbWluZ0Z1bmN0aW9uJik7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OlN0ZXBzVGltaW5nRnVuY3Rpb24+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6U3RlcHNUaW1pbmdGdW5jdGlvbiYp
OworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpTdGVw
c1RpbWluZ0Z1bmN0aW9uJik7Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1
bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKTsKICAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZv
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFj
a2luZ1N0b3JlLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tp
bmdTdG9yZS5tbQppbmRleCA2N2RhOWViNzIwMDE5NDQ1ZjhlM2I0ODhlNDRkMjU4NzkxZTU0MTJl
Li40ZTcyZTViZWUyNWM5MWJiMzFmMjBiMWY0YWMxZTU3OWNmNTYyODBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KQEAg
LTQ5LDcgKzQ5LDggQEAKIEBlbmQKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci11c2luZyBu
YW1lc3BhY2UgV2ViS2l0OworCituYW1lc3BhY2UgV2ViS2l0IHsKIAogUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmU6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlKCkKICAgICA6IG1fbGF5ZXIobnVsbHB0
cikKQEAgLTMyMSwzICszMjIsNSBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjphcHBs
eUJhY2tpbmdTdG9yZVRvTGF5ZXIoQ0FMYXllciAqbGF5ZXIpCiAKICAgICBsYXllci5jb250ZW50
c09wYXF1ZSA9IG1faXNPcGFxdWU7CiB9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFw
cGxpZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlUHJvcGVy
dHlBcHBsaWVyLmgKaW5kZXggZTdjMDI2ODYxYWQ5Y2M1MzkwZDIxMWEyYmQ4MGFhM2VkMWRkNGFi
My4uMzdlYWY1ZGJhMzFjNmM5YjE3MDZhYjdmYzYwNGYzN2NjODc1OGFiZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5
QXBwbGllci5oCkBAIC0zMiwxMiArMzIsMTQgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2Ns
YXNzIFJlbW90ZUxheWVyVHJlZUhvc3Q7CisKIGNsYXNzIFJlbW90ZUxheWVyVHJlZVByb3BlcnR5
QXBwbGllciB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBIYXNoTWFwPFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCwgTGF5ZXJPclZpZXcgKj4gUmVsYXRlZExheWVyTWFwOwot
ICAgIHN0YXRpYyB2b2lkIGFwcGx5UHJvcGVydGllcyhDQUxheWVyICosIGNvbnN0IFJlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMmLCBjb25zdCBSZWxhdGVkTGF5ZXJN
YXAmKTsKKyAgICBzdGF0aWMgdm9pZCBhcHBseVByb3BlcnRpZXMoQ0FMYXllciAqLCBSZW1vdGVM
YXllclRyZWVIb3N0KiwgY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJv
cGVydGllcyYsIGNvbnN0IFJlbGF0ZWRMYXllck1hcCYpOwogI2lmIFBMQVRGT1JNKElPUykKLSAg
ICBzdGF0aWMgdm9pZCBhcHBseVByb3BlcnRpZXMoVUlWaWV3ICosIGNvbnN0IFJlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMmLCBjb25zdCBSZWxhdGVkTGF5ZXJNYXAm
KTsKKyAgICBzdGF0aWMgdm9pZCBhcHBseVByb3BlcnRpZXMoVUlWaWV3ICosIFJlbW90ZUxheWVy
VHJlZUhvc3QqLCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0
aWVzJiwgY29uc3QgUmVsYXRlZExheWVyTWFwJik7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVy
Lm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFw
cGxpZXIubW0KaW5kZXggZGQyZTcyMjkxOWNmNWI5OTI1Zjc4YjMyNTQ3ZmFiOWI5YjNjZWUwZC4u
OGIwODMxNTNlODNmMjlkYzVlZDA3ZmE4ZTY1NGVmZjc4NGNjNDRjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIubW0K
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFw
cGxpZXIubW0KQEAgLTI2LDcgKzI2LDkgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAi
UmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLmgiCiAKKyNpbXBvcnQgIlBsYXRmb3JtQ0FB
bmltYXRpb25SZW1vdGUuaCIKICNpbXBvcnQgIlBsYXRmb3JtQ0FMYXllclJlbW90ZS5oIgorI2lt
cG9ydCAiUmVtb3RlTGF5ZXJUcmVlSG9zdC5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9DQUxheWVy
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Jsb2NrRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9QbGF0Zm9ybUNBRmlsdGVycy5oPgpAQCAtMTExLDcgKzExMyw3IEBAIHN0YXRpYyB2b2lkIHVw
ZGF0ZUN1c3RvbUFwcGVhcmFuY2UoQ0FMYXllciAqbGF5ZXIsIEdyYXBoaWNzTGF5ZXI6OkN1c3Rv
bUFwcGVhcmFuCiAjZW5kaWYKIH0KIAotc3RhdGljIHZvaWQgYXBwbHlQcm9wZXJ0aWVzVG9MYXll
cihDQUxheWVyICpsYXllciwgY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVy
UHJvcGVydGllcyYgcHJvcGVydGllcykKK3N0YXRpYyB2b2lkIGFwcGx5UHJvcGVydGllc1RvTGF5
ZXIoQ0FMYXllciAqbGF5ZXIsIFJlbW90ZUxheWVyVHJlZUhvc3QqIGxheWVyVHJlZUhvc3QsIGNv
bnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMmIHByb3BlcnRp
ZXMpCiB7CiAgICAgaWYgKHByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbjo6TmFtZUNoYW5nZWQpCiAgICAgICAgIGxheWVyLm5hbWUgPSBwcm9w
ZXJ0aWVzLm5hbWU7CkBAIC0xMjgsNyArMTMwLDcgQEAgc3RhdGljIHZvaWQgYXBwbHlQcm9wZXJ0
aWVzVG9MYXllcihDQUxheWVyICpsYXllciwgY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3QK
IAogICAgIGlmIChwcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb246OlNpemVDaGFuZ2VkKQogICAgICAgICBsYXllci5ib3VuZHMgPSBGbG9hdFJl
Y3QoRmxvYXRQb2ludCgpLCBwcm9wZXJ0aWVzLnNpemUpOwotCisgICAgCiAgICAgaWYgKHByb3Bl
cnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6QmFj
a2dyb3VuZENvbG9yQ2hhbmdlZCkKICAgICAgICAgbGF5ZXIuYmFja2dyb3VuZENvbG9yID0gY2dD
b2xvckZyb21Db2xvcihwcm9wZXJ0aWVzLmJhY2tncm91bmRDb2xvcikuZ2V0KCk7CiAKQEAgLTE5
Miw2ICsxOTQsOSBAQCBzdGF0aWMgdm9pZCBhcHBseVByb3BlcnRpZXNUb0xheWVyKENBTGF5ZXIg
KmxheWVyLCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdAogICAgIGlmIChwcm9wZXJ0aWVz
LmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkZpbHRlcnND
aGFuZ2VkKQogICAgICAgICBQbGF0Zm9ybUNBRmlsdGVyczo6c2V0RmlsdGVyc09uTGF5ZXIobGF5
ZXIsIHByb3BlcnRpZXMuZmlsdGVycyA/ICpwcm9wZXJ0aWVzLmZpbHRlcnMgOiBGaWx0ZXJPcGVy
YXRpb25zKCkpOwogCisgICAgaWYgKHByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbjo6QW5pbWF0aW9uc0NoYW5nZWQpCisgICAgICAgIFBsYXRm
b3JtQ0FBbmltYXRpb25SZW1vdGU6OnVwZGF0ZUxheWVyQW5pbWF0aW9ucyhsYXllciwgbGF5ZXJU
cmVlSG9zdCwgcHJvcGVydGllcy5hZGRlZEFuaW1hdGlvbnMsIHByb3BlcnRpZXMua2V5UGF0aHNP
ZkFuaW1hdGlvbnNUb1JlbW92ZSk7CisKICAgICBpZiAocHJvcGVydGllcy5jaGFuZ2VkUHJvcGVy
dGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpFZGdlQW50aWFsaWFzaW5nTWFza0No
YW5nZWQpCiAgICAgICAgIGxheWVyLmVkZ2VBbnRpYWxpYXNpbmdNYXNrID0gcHJvcGVydGllcy5l
ZGdlQW50aWFsaWFzaW5nTWFzazsKIApAQCAtMTk5LDEwICsyMDQsMTAgQEAgc3RhdGljIHZvaWQg
YXBwbHlQcm9wZXJ0aWVzVG9MYXllcihDQUxheWVyICpsYXllciwgY29uc3QgUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3QKICAgICAgICAgdXBkYXRlQ3VzdG9tQXBwZWFyYW5jZShsYXllciwgcHJvcGVy
dGllcy5jdXN0b21BcHBlYXJhbmNlKTsKIH0KIAotdm9pZCBSZW1vdGVMYXllclRyZWVQcm9wZXJ0
eUFwcGxpZXI6OmFwcGx5UHJvcGVydGllcyhDQUxheWVyICpsYXllciwgY29uc3QgUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllcyYgcHJvcGVydGllcywgY29uc3QgUmVs
YXRlZExheWVyTWFwJiByZWxhdGVkTGF5ZXJzKQordm9pZCBSZW1vdGVMYXllclRyZWVQcm9wZXJ0
eUFwcGxpZXI6OmFwcGx5UHJvcGVydGllcyhDQUxheWVyICpsYXllciwgUmVtb3RlTGF5ZXJUcmVl
SG9zdCogbGF5ZXJUcmVlSG9zdCwgY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246Okxh
eWVyUHJvcGVydGllcyYgcHJvcGVydGllcywgY29uc3QgUmVsYXRlZExheWVyTWFwJiByZWxhdGVk
TGF5ZXJzKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKLSAgICBhcHBseVBy
b3BlcnRpZXNUb0xheWVyKGxheWVyLCBwcm9wZXJ0aWVzKTsKKyAgICBhcHBseVByb3BlcnRpZXNU
b0xheWVyKGxheWVyLCBsYXllclRyZWVIb3N0LCBwcm9wZXJ0aWVzKTsKIAogICAgIGlmIChwcm9w
ZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkNo
aWxkcmVuQ2hhbmdlZCkgewogICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IGNoaWxk
cmVuID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OnBy
b3BlcnRpZXMuY2hpbGRyZW4uc2l6ZSgpXSk7CkBAIC0yMzYsMTAgKzI0MSwxMCBAQCB2b2lkIFJl
bW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6YXBwbHlQcm9wZXJ0aWVzKENBTGF5ZXIgKmxh
eWVyLCBjb25zdCBSZW1vdAogfQogCiAjaWYgUExBVEZPUk0oSU9TKQotdm9pZCBSZW1vdGVMYXll
clRyZWVQcm9wZXJ0eUFwcGxpZXI6OmFwcGx5UHJvcGVydGllcyhVSVZpZXcgKnZpZXcsIGNvbnN0
IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMmIHByb3BlcnRpZXMs
IGNvbnN0IFJlbGF0ZWRMYXllck1hcCYgcmVsYXRlZExheWVycykKK3ZvaWQgUmVtb3RlTGF5ZXJU
cmVlUHJvcGVydHlBcHBsaWVyOjphcHBseVByb3BlcnRpZXMoVUlWaWV3ICp2aWV3LCBSZW1vdGVM
YXllclRyZWVIb3N0KiBsYXllclRyZWVIb3N0LCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbjo6TGF5ZXJQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLCBjb25zdCBSZWxhdGVkTGF5ZXJNYXAm
IHJlbGF0ZWRMYXllcnMpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwotICAg
IGFwcGx5UHJvcGVydGllc1RvTGF5ZXIodmlldy5sYXllciwgcHJvcGVydGllcyk7CisgICAgYXBw
bHlQcm9wZXJ0aWVzVG9MYXllcih2aWV3LmxheWVyLCBsYXllclRyZWVIb3N0LCBwcm9wZXJ0aWVz
KTsKIAogICAgIGlmIChwcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb246OkNoaWxkcmVuQ2hhbmdlZCkgewogICAgICAgICBSZXRhaW5QdHI8TlNN
dXRhYmxlQXJyYXk+IGNoaWxkcmVuID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBp
bml0V2l0aENhcGFjaXR5OnByb3BlcnRpZXMuY2hpbGRyZW4uc2l6ZSgpXSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgK
aW5kZXggMjE4YjhkMDZhMjQwODkwNjBiZmNhMTdhY2JjMTQ5YmU0MzcxYThmMi4uNmQwOTMxMDky
NzViN2ZhNzllODFjMTYxMGM2OGZkZTdhMGYxNzI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaApAQCAtMjYsNiAr
MjYsNyBAQAogI2lmbmRlZiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbl9oCiAjZGVmaW5lIFJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uX2gKIAorI2luY2x1ZGUgIlBsYXRmb3JtQ0FBbmltYXRp
b25SZW1vdGUuaCIKICNpbmNsdWRlICJSZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQ29sb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbHRlck9wZXJhdGlvbnMu
aD4KQEAgLTM0LDYgKzM1LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ0FMYXllci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvVHJhbnNmb3JtYXRpb25NYXRyaXguaD4KICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtNzQsOSArNzYsMTAgQEAgcHVi
bGljOgogICAgICAgICBUaW1lT2Zmc2V0Q2hhbmdlZCA9IDEgPDwgMjMsCiAgICAgICAgIEJhY2tp
bmdTdG9yZUNoYW5nZWQgPSAxIDw8IDI0LAogICAgICAgICBGaWx0ZXJzQ2hhbmdlZCA9IDEgPDwg
MjUsCi0gICAgICAgIEVkZ2VBbnRpYWxpYXNpbmdNYXNrQ2hhbmdlZCA9IDEgPDwgMjYsCi0gICAg
ICAgIEN1c3RvbUFwcGVhcmFuY2VDaGFuZ2VkID0gMSA8PCAyNywKLSAgICAgICAgQ3VzdG9tQmVo
YXZpb3JDaGFuZ2VkID0gMSA8PCAyOAorICAgICAgICBBbmltYXRpb25zQ2hhbmdlZCA9IDEgPDwg
MjYsCisgICAgICAgIEVkZ2VBbnRpYWxpYXNpbmdNYXNrQ2hhbmdlZCA9IDEgPDwgMjcsCisgICAg
ICAgIEN1c3RvbUFwcGVhcmFuY2VDaGFuZ2VkID0gMSA8PCAyOCwKKyAgICAgICAgQ3VzdG9tQmVo
YXZpb3JDaGFuZ2VkID0gMSA8PCAyOQogICAgIH07CiAgICAgdHlwZWRlZiB1bnNpZ25lZCBMYXll
ckNoYW5nZTsKIApAQCAtMTEyLDYgKzExNSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeD4gdHJhbnNmb3JtOwogICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg+IHN1YmxheWVy
VHJhbnNmb3JtOwogICAgICAgICBWZWN0b3I8V2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZv
cm1MYXllcklEPiBjaGlsZHJlbjsKKworICAgICAgICBIYXNoTWFwPFN0cmluZywgUGxhdGZvcm1D
QUFuaW1hdGlvblJlbW90ZTo6UHJvcGVydGllcz4gYWRkZWRBbmltYXRpb25zOworICAgICAgICBI
YXNoU2V0PFN0cmluZz4ga2V5UGF0aHNPZkFuaW1hdGlvbnNUb1JlbW92ZTsKKwogICAgICAgICBX
ZWJDb3JlOjpGbG9hdFBvaW50M0QgcG9zaXRpb247CiAgICAgICAgIFdlYkNvcmU6OkZsb2F0UG9p
bnQzRCBhbmNob3JQb2ludDsKICAgICAgICAgV2ViQ29yZTo6RmxvYXRTaXplIHNpemU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0
aW9uLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbi5tbQppbmRleCA5MDdhMzg3YzQ4YWQ4MzZhYWMzMjc3NGYzZWQxMmFhMzM5NDY0NzA1Li5i
OGNhZjZjMDFjYmYyYTIyYWU4YWYzZTg2Njk5YzA5OTM3OGY5NmEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0K
QEAgLTEwMyw2ICsxMDMsOCBAQCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9w
ZXJ0aWVzOjpMYXllclByb3BlcnRpZXMoY29uc3QgTGF5ZXJQcm9wZXJ0aQogICAgICwgZXZlckNo
YW5nZWRQcm9wZXJ0aWVzKG90aGVyLmV2ZXJDaGFuZ2VkUHJvcGVydGllcykKICAgICAsIG5hbWUo
b3RoZXIubmFtZSkKICAgICAsIGNoaWxkcmVuKG90aGVyLmNoaWxkcmVuKQorICAgICwgYWRkZWRB
bmltYXRpb25zKG90aGVyLmFkZGVkQW5pbWF0aW9ucykKKyAgICAsIGtleVBhdGhzT2ZBbmltYXRp
b25zVG9SZW1vdmUob3RoZXIua2V5UGF0aHNPZkFuaW1hdGlvbnNUb1JlbW92ZSkKICAgICAsIHBv
c2l0aW9uKG90aGVyLnBvc2l0aW9uKQogICAgICwgYW5jaG9yUG9pbnQob3RoZXIuYW5jaG9yUG9p
bnQpCiAgICAgLCBzaXplKG90aGVyLnNpemUpCkBAIC0xNDksNiArMTUxLDExIEBAIHZvaWQgUmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6ZW5jb2RlKElQQzo6QXJn
dW1lbnRFbmNvZGVyJiBlCiAgICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzICYgQ2hpbGRyZW5DaGFu
Z2VkKQogICAgICAgICBlbmNvZGVyIDw8IGNoaWxkcmVuOwogCisgICAgaWYgKGNoYW5nZWRQcm9w
ZXJ0aWVzICYgQW5pbWF0aW9uc0NoYW5nZWQpIHsKKyAgICAgICAgZW5jb2RlciA8PCBhZGRlZEFu
aW1hdGlvbnM7CisgICAgICAgIGVuY29kZXIgPDwga2V5UGF0aHNPZkFuaW1hdGlvbnNUb1JlbW92
ZTsKKyAgICB9CisKICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMgJiBQb3NpdGlvbkNoYW5nZWQp
CiAgICAgICAgIGVuY29kZXIgPDwgcG9zaXRpb247CiAKQEAgLTI1MSw2ICsyNTgsMTQgQEAgYm9v
bCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzOjpkZWNvZGUoSVBD
OjpBcmd1bWVudERlY29kZXImIGQKICAgICAgICAgfQogICAgIH0KIAorICAgIGlmIChyZXN1bHQu
Y2hhbmdlZFByb3BlcnRpZXMgJiBBbmltYXRpb25zQ2hhbmdlZCkgeworICAgICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5hZGRlZEFuaW1hdGlvbnMpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmtleVBhdGhzT2ZB
bmltYXRpb25zVG9SZW1vdmUpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwog
ICAgIGlmIChyZXN1bHQuY2hhbmdlZFByb3BlcnRpZXMgJiBQb3NpdGlvbkNoYW5nZWQpIHsKICAg
ICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQucG9zaXRpb24pKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtNzM2LDYgKzc1MSw4IEBAIHN0YXRpYyB2b2lkIGR1bXBDaGFuZ2Vk
TGF5ZXJzKFJlbW90ZUxheWVyVHJlZVRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW1vdGVMYXllclRy
CiAgICAgICAgIGlmIChsYXllclByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbjo6Q2hpbGRyZW5DaGFuZ2VkKQogICAgICAgICAgICAgZHVtcFBy
b3BlcnR5PFZlY3RvcjxHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+Pih0cywgImNoaWxk
cmVuIiwgbGF5ZXJQcm9wZXJ0aWVzLmNoaWxkcmVuKTsKIAorLy8gRklYTUU6IGR1bXAgYW5pbWF0
aW9ucworCiAgICAgICAgIGlmIChsYXllclByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6UG9zaXRpb25DaGFuZ2VkKQogICAgICAgICAgICAg
ZHVtcFByb3BlcnR5PEZsb2F0UG9pbnQzRD4odHMsICJwb3NpdGlvbiIsIGxheWVyUHJvcGVydGll
cy5wb3NpdGlvbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
UmVtb3RlTGF5ZXJUcmVlSG9zdElPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
UmVtb3RlTGF5ZXJUcmVlSG9zdElPUy5tbQppbmRleCA5ZWRhOTU0NDI2NzRjMmE3ODMwZmQ5N2Iy
MWI4MjY2ZDExYTFjNjFkLi5hMDZiYmIwOTVhZGUxMTFjZjA1ZTBiMTUxNWI5YTMyYTY3NjMzMDBk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1JlbW90ZUxheWVyVHJl
ZUhvc3RJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9SZW1vdGVMYXll
clRyZWVIb3N0SU9TLm1tCkBAIC0zNywxMCArMzcsNiBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIAotQGludGVyZmFjZSBVSVZpZXcoV0tWaWV3SW50ZXJuYWxzKQotLSAodm9pZClfY3Jl
YXRlTGF5ZXJXaXRoRnJhbWU6KENHUmVjdClmcmFtZTsKLUBlbmQKLQogQGludGVyZmFjZSBDQUxh
eWVyKFdLTGF5ZXJJbnRlcm5hbCkKIC0gKHZvaWQpc2V0Q29udGV4dElkOih1aW50MzJfdCljb250
ZXh0SUQ7CiBAZW5kCkBAIC03Niw2ICs3MiwxMyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK3N0YXRpYyBOU1N0cmluZyogY29uc3QgV0tMYXllcklE
UHJvcGVydHlLZXkgPSBAIldLTGF5ZXJJRCI7CisKK1dlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBs
YXRmb3JtTGF5ZXJJRCBSZW1vdGVMYXllclRyZWVIb3N0OjpsYXllcklEKExheWVyT3JWaWV3KiBs
YXllcikKK3sKKyAgICByZXR1cm4gW1tsYXllciB2YWx1ZUZvcktleTpXS0xheWVySURQcm9wZXJ0
eUtleV0gdW5zaWduZWRMb25nTG9uZ1ZhbHVlXTsKK30KKwogTGF5ZXJPclZpZXcgKlJlbW90ZUxh
eWVyVHJlZUhvc3Q6OmNyZWF0ZUxheWVyKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
OjpMYXllckNyZWF0aW9uUHJvcGVydGllcyYgcHJvcGVydGllcywgY29uc3QgUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllcyogbGF5ZXJQcm9wZXJ0aWVzKQogewogICAg
IFJldGFpblB0cjxMYXllck9yVmlldz4mIGxheWVyT3JWaWV3ID0gbV9sYXllcnMuYWRkKHByb3Bl
cnRpZXMubGF5ZXJJRCwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwpAQCAtMTEwLDYgKzExMyw3
IEBAIExheWVyT3JWaWV3ICpSZW1vdGVMYXllclRyZWVIb3N0OjpjcmVhdGVMYXllcihjb25zdCBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6CiAKICAgICAvLyBGSVhNRTogRG8gdGhyb3VnaCB0
aGUgdmlldy4KICAgICBbW2xheWVyT3JWaWV3IGxheWVyXSB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNd
OworICAgIFtbbGF5ZXJPclZpZXcgbGF5ZXJdIHNldFZhbHVlOltOU051bWJlciBudW1iZXJXaXRo
VW5zaWduZWRMb25nTG9uZzpwcm9wZXJ0aWVzLmxheWVySURdIGZvcktleTpXS0xheWVySURQcm9w
ZXJ0eUtleV07CiAKICAgICByZXR1cm4gbGF5ZXJPclZpZXcuZ2V0KCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWFQcm94eS5oCmluZGV4IGRjZGU3NGFiOWQzNWExZGMyNGEzMjNjMmM0ZWU5OWY3ZjQ1
YjkzZWQuLjVhYmYxZDY0Y2I2OWQ1ZDQyYzcyN2E2NjdiZjJiMDBmYjBjOGE3MjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eS5oCkBAIC00NCw2ICs0NCw4IEBAIHB1YmxpYzoKIAogICAgIGNv
bnN0IFJlbW90ZUxheWVyVHJlZUhvc3QmIHJlbW90ZUxheWVyVHJlZUhvc3QoKSBjb25zdCB7IHJl
dHVybiBtX3JlbW90ZUxheWVyVHJlZUhvc3Q7IH0KIAorICAgIHZvaWQgYWNjZWxlcmF0ZWRBbmlt
YXRpb25EaWRTdGFydCh1aW50NjRfdCAvKmxheWVySUQqLywgZG91YmxlIC8qc3RhcnRUaW1lKi8p
OworCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzaXplRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIGRldmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KaW5kZXggMzQxZDg1NjI3OWFkZTBhYzllODI3
ZmMzZDY1MTNmMTM4ZGE2OTMwYS4uZWI5NGM4NDlhYzUyZTg3NWFkZDY3MDRhZGRiY2VjNTAwZTI4
MDE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtNDAsNyArNDAsNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6UmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eShXZWJQYWdlUHJveHkqIHdlYlBhZ2VQcm94eSkK
ICAgICA6IERyYXdpbmdBcmVhUHJveHkoRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVlLCB3
ZWJQYWdlUHJveHkpCi0gICAgLCBtX3JlbW90ZUxheWVyVHJlZUhvc3QoKQorICAgICwgbV9yZW1v
dGVMYXllclRyZWVIb3N0KCp0aGlzKQogICAgICwgbV9pc1dhaXRpbmdGb3JEaWRVcGRhdGVHZW9t
ZXRyeShmYWxzZSkKIHsKICAgICBtX3dlYlBhZ2VQcm94eS0+cHJvY2VzcygpLmFkZE1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VQcm94eS0+cGFnZUlEKCksICp0aGlzKTsKQEAgLTEz
MSw2ICsxMzEsMTEgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21t
aXRMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnMKICAgICB9CiB9CiAKK3ZvaWQg
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6YWNjZWxlcmF0ZWRBbmltYXRpb25EaWRT
dGFydCh1aW50NjRfdCBsYXllcklELCBkb3VibGUgc3RhcnRUaW1lKQoreworICAgIG1fd2ViUGFn
ZVByb3h5LT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWE6OkFjY2VsZXJhdGVk
QW5pbWF0aW9uRGlkU3RhcnQobGF5ZXJJRCwgc3RhcnRUaW1lKSwgbV93ZWJQYWdlUHJveHktPnBh
Z2VJRCgpKTsKK30KKwogc3RhdGljIGNvbnN0IGZsb2F0IGluZGljYXRvckluc2V0ID0gMTA7CiAK
ICNpZiBQTEFURk9STShNQUMpCkBAIC0yMzYsNyArMjQxLDcgQEAgdm9pZCBSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5OjpzaG93RGVidWdJbmRpY2F0b3IoYm9vbCBzaG93KQogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIAotICAgIG1fZGVidWdJbmRpY2F0b3JMYXllclRyZWVIb3N0
ID0gc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVMYXllclRyZWVIb3N0PigpOworICAgIG1fZGVidWdJ
bmRpY2F0b3JMYXllclRyZWVIb3N0ID0gc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVMYXllclRyZWVI
b3N0PigqdGhpcyk7CiAgICAgbV9kZWJ1Z0luZGljYXRvckxheWVyVHJlZUhvc3QtPnNldElzRGVi
dWdMYXllclRyZWVIb3N0KHRydWUpOwogCiAgICAgbV90aWxlTWFwSG9zdExheWVyID0gYWRvcHRO
UyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0LmgKaW5kZXggZjlkNmIzNDE0NmMxMWY0ZjkxMTEw
MTM4MDVmMjRkM2VlNTdjNTEzMS4uMTVlMzZkZTYyN2JhZDc5ZDAwNWZkNDcxYTliNjAyZTI4YTEz
NDQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXll
clRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXll
clRyZWVIb3N0LmgKQEAgLTMyLDI5ICszMiw0MyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCitPQkpDX0NMQVNTIFdLQW5pbWF0aW9uRGVs
ZWdhdGU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5OwogY2xhc3MgV2ViUGFnZVByb3h5OwogCiBjbGFzcyBSZW1vdGVMYXllclRy
ZWVIb3N0IHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBSZW1vdGVMYXllclRyZWVIb3N0KCk7Cisg
ICAgZXhwbGljaXQgUmVtb3RlTGF5ZXJUcmVlSG9zdChSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5Jik7CiAgICAgdmlydHVhbCB+UmVtb3RlTGF5ZXJUcmVlSG9zdCgpOwogCiAgICAgTGF5
ZXJPclZpZXcgKmdldExheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJ
RCkgY29uc3Q7CiAgICAgTGF5ZXJPclZpZXcgKnJvb3RMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1f
cm9vdExheWVyOyB9CiAKKyAgICBzdGF0aWMgV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZv
cm1MYXllcklEIGxheWVySUQoTGF5ZXJPclZpZXcqKTsKKwogICAgIC8vIFJldHVybnMgdHJ1ZSBp
ZiB0aGUgcm9vdCBsYXllciBjaGFuZ2VkLgogICAgIGJvb2wgdXBkYXRlTGF5ZXJUcmVlKGNvbnN0
IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiwgZmxvYXQgaW5kaWNhdG9yU2NhbGVGYWN0b3Ig
ID0gMSk7CiAKICAgICB2b2lkIHNldElzRGVidWdMYXllclRyZWVIb3N0KGJvb2wgZmxhZykgeyBt
X2lzRGVidWdMYXllclRyZWVIb3N0ID0gZmxhZzsgfQogICAgIGJvb2wgaXNEZWJ1Z0xheWVyVHJl
ZUhvc3QoKSBjb25zdCB7IHJldHVybiBtX2lzRGVidWdMYXllclRyZWVIb3N0OyB9CiAKKyAgICB0
eXBlZGVmIEhhc2hNYXA8V2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklELCBS
ZXRhaW5QdHI8V0tBbmltYXRpb25EZWxlZ2F0ZT4+IExheWVyQW5pbWF0aW9uRGVsZWdhdGVNYXA7
CisgICAgTGF5ZXJBbmltYXRpb25EZWxlZ2F0ZU1hcCYgYW5pbWF0aW9uRGVsZWdhdGVzKCkgeyBy
ZXR1cm4gbV9hbmltYXRpb25EZWxlZ2F0ZXM7IH0KKworICAgIHZvaWQgYW5pbWF0aW9uRGlkU3Rh
cnQoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklELCBkb3VibGUgc3RhcnRU
aW1lKTsKKwogcHJpdmF0ZToKICAgICBMYXllck9yVmlldyAqY3JlYXRlTGF5ZXIoY29uc3QgUmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ3JlYXRpb25Qcm9wZXJ0aWVzJiwgY29uc3Qg
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllcyopOwogCisgICAgdm9p
ZCBsYXllcldpbGxCZVJlbW92ZWQoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXll
cklEKTsKKworICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkmIG1fZHJhd2luZ0Fy
ZWE7CiAgICAgTGF5ZXJPclZpZXcgKm1fcm9vdExheWVyOwogICAgIEhhc2hNYXA8V2ViQ29yZTo6
R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklELCBSZXRhaW5QdHI8TGF5ZXJPclZpZXc+PiBt
X2xheWVyczsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5
ZXJJRCwgUmV0YWluUHRyPFdLQW5pbWF0aW9uRGVsZWdhdGU+PiBtX2FuaW1hdGlvbkRlbGVnYXRl
czsKICAgICBib29sIG1faXNEZWJ1Z0xheWVyVHJlZUhvc3Q7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KaW5kZXggNWJj
NzFhMWYxNjQyYzdlMThmNmNkMmMxMmI4MGYzNjJjMWVkMmE3OC4uYWY0NmI4ZmNiN2RhYjNkMzJi
NWE4OTRhZTlmZWEyMTA5ZGRmNmY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbQpAQCAtMjYsNiArMjYsNyBAQAogI2ltcG9y
dCAiY29uZmlnLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVIb3N0LmgiCiAKKyNpbXBvcnQg
IlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVy
VHJlZVByb3BlcnR5QXBwbGllci5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b24uaCIKICNpbXBvcnQgIlNoYXJlYWJsZUJpdG1hcC5oIgpAQCAtNDEsOCArNDIsOSBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVJlbW90ZUxheWVy
VHJlZUhvc3Q6OlJlbW90ZUxheWVyVHJlZUhvc3QoKQotICAgIDogbV9yb290TGF5ZXIobnVsbHB0
cikKK1JlbW90ZUxheWVyVHJlZUhvc3Q6OlJlbW90ZUxheWVyVHJlZUhvc3QoUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eSYgZHJhd2luZ0FyZWEpCisgICAgOiBtX2RyYXdpbmdBcmVhKGRy
YXdpbmdBcmVhKQorICAgICwgbV9yb290TGF5ZXIobnVsbHB0cikKICAgICAsIG1faXNEZWJ1Z0xh
eWVyVHJlZUhvc3QoZmFsc2UpCiB7CiB9CkBAIC04NywxMyArODksMTMgQEAgYm9vbCBSZW1vdGVM
YXllclRyZWVIb3N0Ojp1cGRhdGVMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb24mIHRyYW4KICAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzQ29weS5jaGFuZ2VkUHJvcGVy
dGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpCb3JkZXJXaWR0aENoYW5nZWQpCiAg
ICAgICAgICAgICAgICAgcHJvcGVydGllc0NvcHkuYm9yZGVyV2lkdGggKj0gMSAvIGluZGljYXRv
clNjYWxlRmFjdG9yOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBSZW1vdGVMYXllclRyZWVQ
cm9wZXJ0eUFwcGxpZXI6OmFwcGx5UHJvcGVydGllcyhsYXllciwgcHJvcGVydGllc0NvcHksIHJl
bGF0ZWRMYXllcnMpOworICAgICAgICAgICAgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVy
OjphcHBseVByb3BlcnRpZXMobGF5ZXIsIHRoaXMsIHByb3BlcnRpZXNDb3B5LCByZWxhdGVkTGF5
ZXJzKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBSZW1vdGVMYXllclRyZWVQcm9wZXJ0
eUFwcGxpZXI6OmFwcGx5UHJvcGVydGllcyhsYXllciwgcHJvcGVydGllcywgcmVsYXRlZExheWVy
cyk7CisgICAgICAgICAgICBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXI6OmFwcGx5UHJv
cGVydGllcyhsYXllciwgdGhpcywgcHJvcGVydGllcywgcmVsYXRlZExheWVycyk7CiAgICAgfQog
CiAgICAgZm9yIChhdXRvJiBkZXN0cm95ZWRMYXllciA6IHRyYW5zYWN0aW9uLmRlc3Ryb3llZExh
eWVycygpKQotICAgICAgICBtX2xheWVycy5yZW1vdmUoZGVzdHJveWVkTGF5ZXIpOworICAgICAg
ICBsYXllcldpbGxCZVJlbW92ZWQoZGVzdHJveWVkTGF5ZXIpOwogCiAgICAgcmV0dXJuIHJvb3RM
YXllckNoYW5nZWQ7CiB9CkBAIC0xMDYsNyArMTA4LDI1IEBAIExheWVyT3JWaWV3ICpSZW1vdGVM
YXllclRyZWVIb3N0OjpnZXRMYXllcihHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgbGF5
ZXJJCiAgICAgcmV0dXJuIG1fbGF5ZXJzLmdldChsYXllcklEKS5nZXQoKTsKIH0KIAordm9pZCBS
ZW1vdGVMYXllclRyZWVIb3N0OjpsYXllcldpbGxCZVJlbW92ZWQoV2ViQ29yZTo6R3JhcGhpY3NM
YXllcjo6UGxhdGZvcm1MYXllcklEIGxheWVySUQpCit7CisgICAgbV9hbmltYXRpb25EZWxlZ2F0
ZXMucmVtb3ZlKGxheWVySUQpOworICAgIG1fbGF5ZXJzLnJlbW92ZShsYXllcklEKTsKK30KKwor
dm9pZCBSZW1vdGVMYXllclRyZWVIb3N0OjphbmltYXRpb25EaWRTdGFydChXZWJDb3JlOjpHcmFw
aGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgbGF5ZXJJRCwgZG91YmxlIHN0YXJ0VGltZSkKK3sK
KyAgICBtX2RyYXdpbmdBcmVhLmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQobGF5ZXJJRCwg
c3RhcnRUaW1lKTsKK30KKwogI2lmICFQTEFURk9STShJT1MpCitzdGF0aWMgTlNTdHJpbmcqIGNv
bnN0IFdLTGF5ZXJJRFByb3BlcnR5S2V5ID0gQCJXS0xheWVySUQiOworCitXZWJDb3JlOjpHcmFw
aGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6bGF5ZXJJRChM
YXllck9yVmlldyogbGF5ZXIpCit7CisgICAgcmV0dXJuIFtbbGF5ZXIgdmFsdWVGb3JLZXk6V0tM
YXllcklEUHJvcGVydHlLZXldIHVuc2lnbmVkTG9uZ0xvbmdWYWx1ZV07Cit9CisKIExheWVyT3JW
aWV3ICpSZW1vdGVMYXllclRyZWVIb3N0OjpjcmVhdGVMYXllcihjb25zdCBSZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbjo6TGF5ZXJDcmVhdGlvblByb3BlcnRpZXMmIHByb3BlcnRpZXMsIGNvbnN0
IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMqKQogewogICAgIFJl
dGFpblB0cjxDQUxheWVyPiYgbGF5ZXIgPSBtX2xheWVycy5hZGQocHJvcGVydGllcy5sYXllcklE
LCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CkBAIC0xMzcsNiArMTU3LDcgQEAgTGF5ZXJPclZp
ZXcgKlJlbW90ZUxheWVyVHJlZUhvc3Q6OmNyZWF0ZUxheWVyKGNvbnN0IFJlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uOjoKICAgICB9CiAKICAgICBbbGF5ZXIgd2ViX2Rpc2FibGVBbGxBY3Rpb25z
XTsKKyAgICBbbGF5ZXIgc2V0VmFsdWU6W05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZExvbmdM
b25nOnByb3BlcnRpZXMubGF5ZXJJRF0gZm9yS2V5OldLTGF5ZXJJRFByb3BlcnR5S2V5XTsKIAog
ICAgIHJldHVybiBsYXllci5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhMmZlMmI4OWMzNDc4ZjNkNTRmYjM3ZjE1
MTM5NGU1YzU1NjIxODBkLi40NGE0NjgyNWFlMGFhZDNmZDM5NWVjNGIzMzZkZjU2NWI3MWY4ZmZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC02Myw2ICs2Myw4IEBACiAJCTBGNTk0N0E0MTg3QjNCN0QwMDQzNzg1NyAvKiBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU5NDdBMjE4N0IzQjdEMDA0Mzc4NTcgLyogUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oICovOyB9OwogCQkwRjU5NDdBNzE4
N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1
OTQ3QTUxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMEY1OTQ3QTgxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTk0N0E2MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VzLmggKi87IH07CisJCTBGNUUyMDAzMThFNzcwNTEw
MDNFQzNFNSAvKiBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1RTIwMDExOEU3NzA1MTAwM0VDM0U1IC8q
IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0gKi87IH07CisJCTBGNUUyMDA0MThFNzcwNTEw
MDNFQzNFNSAvKiBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVFMjAwMjE4RTc3MDUxMDAzRUMzRTUgLyog
UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oICovOyB9OwogCQkwRjkzMUMxQzE4QzU3MTE5MDBE
QkE3QzMgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5MzFDMUExOEM1NzExOTAw
REJBN0MzIC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MuaCAqLzsgfTsK
IAkJMEY5MzFDMUQxOEM1NzExOTAwREJBN0MzIC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9s
bGluZ05vZGVJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjkzMUMxQjE4QzU3MTE5MDBEQkE3QzMgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZUlPUy5tbSAqLzsgfTsKIAkJMEZCNjU5MjMxMjA4QjREQjAwNDQ4MTZDIC8qIERy
YXdpbmdBcmVhSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZCNjU5MjIxMjA4QjREQjAwNDQ4MTZDIC8qIERyYXdpbmdBcmVhSW5mby5oICovOyB9
OwpAQCAtMTc5OSw2ICsxODAxLDggQEAKIAkJMEY1OTQ3QTIxODdCM0I3RDAwNDM3ODU3IC8qIFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oOyBw
YXRoID0gU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1OTQ3QTUxODdCNTE3NjAwNDM3ODU3IC8q
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVz
c2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1OTQ3QTYx
ODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjVFMjAwMTE4RTc3
MDUxMDAzRUMzRTUgLyogUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNUUyMDAyMThFNzcwNTEwMDNFQzNFNSAv
KiBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY5MzFDMUExOEM1NzExOTAwREJBN0MzIC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU2Ny
b2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5oOyBwYXRoID0gU2Nyb2xsaW5nL2lv
cy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGOTMxQzFCMThDNTcxMTkwMERCQTdDMyAvKiBTY3JvbGxpbmdUcmVl
T3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5tbTsgcGF0
aCA9IFNjcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZCNjU5MjIxMjA4QjREQjAwNDQ4MTZD
IC8qIERyYXdpbmdBcmVhSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
cmF3aW5nQXJlYUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYwMjAsNiAr
NjAyNCw4IEBACiAJCQkJN0M2RDM3RkExNzJGNTU1RjAwOUQyODQ3IC8qIFBhZ2VCYW5uZXJNYWMu
bW0gKi8sCiAJCQkJMkRBMDQ5QjUxODBDQ0QwQTAwQUFGQTlFIC8qIEdyYXBoaWNzTGF5ZXJDQVJl
bW90ZS5jcHAgKi8sCiAJCQkJMkRBMDQ5QjYxODBDQ0QwQTAwQUFGQTlFIC8qIEdyYXBoaWNzTGF5
ZXJDQVJlbW90ZS5oICovLAorCQkJCTBGNUUyMDAxMThFNzcwNTEwMDNFQzNFNSAvKiBQbGF0Zm9y
bUNBQW5pbWF0aW9uUmVtb3RlLm1tICovLAorCQkJCTBGNUUyMDAyMThFNzcwNTEwMDNFQzNFNSAv
KiBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmggKi8sCiAJCQkJMkRBMDQ5QjExODBDQ0NEMzAw
QUFGQTlFIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAgKi8sCiAJCQkJMkRBMDQ5QjIxODBD
Q0NEMzAwQUFGQTlFIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZS5oICovLAogCQkJCTJEODcxMDE0
MTgyODQxNUQwMDE4RkEwMSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0gKi8sCkBA
IC02OTIxLDYgKzY5MjcsNyBAQAogCQkJCUJDNEE2MkE4MTQ3NDRFQzcwMDZDNjgxQSAvKiBXZWJD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0I5RTI0MzExMjBE
QUNBMDBBMTM3RTAgLyogV2ViQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFBNTA1RkEx
NjgwMDI1NTAwQTkzMEVCIC8qIFdlYkNvbnRleHRDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGNUUyMDA0MThFNzcwNTEwMDNFQzNFNSAvKiBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTJBOTc2MTE4MEUwMzFEMDAzOUExNDkgLyogRGF0YWJhc2VQ
cm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDlCOEY5MTQ3NDYwRjcwMDVG
NTYyNSAvKiBXZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNERTA1OUIxMUNEQThBRTAwRTQxQUYxIC8qIFdlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC04NjYyLDYgKzg2NjksNyBAQAogCQkJCTFBQzg2RkYzMTMw
QjQ2RDMwMDJDMTI1NyAvKiBXS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQ0Q1OTdEMTExMkI1NkFDMDBFQzhDMjMgLyogV0tQcmVmZXJlbmNlcy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQ0JBQUNFQzE0NTIyNUUzMDA1M0Y4MkYgLyogV0tQcm9jZXNzR3Jv
dXAubW0gaW4gU291cmNlcyAqLywKKwkJCQkwRjVFMjAwMzE4RTc3MDUxMDAzRUMzRTUgLyogUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxMkY1OEZCMTJB
ODhBNTQwMDYyOTUzMCAvKiBXS1Byb3RlY3Rpb25TcGFjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkzNzk0ODQwODE1MEM0Qjk3MDBFNTJDRTkgLyogV0tSZW5kZXJMYXllci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyRDFCNUQ1RDE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9s
bGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAppbmRleCA0N2VjNTViNzFkMTE0Mjll
Y2Q3YjRhMGZiMmViOGNlOTkyNTYwYTE5Li5lNDE3YzI2OTQ2MzI2ODFlNTdiZjJlMTI3YTIwYmZj
Njc0YjE0YzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJh
d2luZ0FyZWEuaApAQCAtOTEsNiArOTEsNyBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgdmlydHVhbCB2b2lkIHNldEV4cG9zZWRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYpID0gMDsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBleHBvc2VkUmVjdCgpIGNv
bnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCh1
aW50NjRfdCAvKmxheWVySUQqLywgZG91YmxlIC8qc3RhcnRUaW1lKi8pIHsgfQogI2VuZGlmCiAj
aWYgUExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwgdm9pZCBzZXRFeHBvc2VkQ29udGVudFJlY3Qo
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluCmluZGV4IDkx
YmNhZjRjYWY2YzY3MWY1NTZlMTliZmI5MDBhMTEzMzExZmYxNDkuLmNjYWUyYWE5YWRkMzE0ZTRl
YTg4NzljNzMyNDIyNjJhY2VkZjRlNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEubWVzc2FnZXMuaW4KQEAgLTMzLDUgKzMz
LDcgQEAgbWVzc2FnZXMgLT4gRHJhd2luZ0FyZWEgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgQWRq
dXN0VHJhbnNpZW50Wm9vbShkb3VibGUgc2NhbGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQgb3JpZ2lu
KQogICAgIENvbW1pdFRyYW5zaWVudFpvb20oZG91YmxlIHNjYWxlLCBXZWJDb3JlOjpGbG9hdFBv
aW50IG9yaWdpbikKKyAgICAKKyAgICBBY2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0YXJ0KHVpbnQ2
NF90IGxheWVySUQsIGRvdWJsZSBzdGFydFRpbWUpCiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3Rl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXll
ckNBUmVtb3RlLmNwcAppbmRleCBjOTVmODVmZTJiY2I5YjhjMTgwYTE3MmJhNzI4MDRhMTY5YmYx
YjlkLi41ZTFjMmY1YTA5MjI5YzI5ZmMzMjFiMWI4N2YxYzc1ZDI1MzBlMzg4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJl
bW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFw
aGljc0xheWVyQ0FSZW1vdGUuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyQ0FSZW1vdGUuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVyUmVtb3Rl
LmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNTIsNCArNTMsMTIgQEAgUGFzc1Jl
ZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IEdyYXBoaWNzTGF5ZXJDQVJlbW90ZTo6Y3JlYXRlUGxhdGZv
cm1DQUxheWVyKFBsYXRmb3IKICAgICByZXR1cm4gUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpjcmVh
dGUocGxhdGZvcm1MYXllciwgb3duZXIsIG1fY29udGV4dCk7CiB9CiAKK1Bhc3NSZWZQdHI8UGxh
dGZvcm1DQUFuaW1hdGlvbj4gR3JhcGhpY3NMYXllckNBUmVtb3RlOjpjcmVhdGVQbGF0Zm9ybUNB
QW5pbWF0aW9uKFBsYXRmb3JtQ0FBbmltYXRpb246OkFuaW1hdGlvblR5cGUgdHlwZSwgY29uc3Qg
U3RyaW5nJiBrZXlQYXRoKQoreworICAgIHJldHVybiBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3Rl
OjpjcmVhdGUodHlwZSwga2V5UGF0aCk7CiB9CisKKy8vIEZJWE1FOiByZWplY3QgZmlsdGVyIGFu
aW1hdGlvbnMKKworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90
ZS5oCmluZGV4IGNmNTM5NzZjNjk4MTA3NTJmM2M0ZmYyMzJhNmRlMzBhYTRiMDliZjMuLjlhMmNm
ZDhjMjVlZGNiNzJmNWQ1NjM1NTNiNzUwMmE4YjdmMjg4MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FS
ZW1vdGUuaApAQCAtNTIsOSArNTIsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcj4gY3JlYXRlUGxhdGZvcm1DQUxheWVyKFdlYkNv
cmU6OlBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlLCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJD
bGllbnQqIG93bmVyKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
UGxhdGZvcm1DQUxheWVyPiBjcmVhdGVQbGF0Zm9ybUNBTGF5ZXIoUGxhdGZvcm1MYXllciosIFdl
YkNvcmU6OlBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIpIG92ZXJyaWRlOwotCi0gICAgLy8g
Tm8gYWNjZWxlcmF0ZWQgYW5pbWF0aW9ucyBmb3Igbm93LgotICAgIHZpcnR1YWwgYm9vbCBhZGRB
bmltYXRpb24oY29uc3QgV2ViQ29yZTo6S2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmLCBjb25zdCBXZWJDb3JlOjpBbmltYXRpb24qLCBjb25zdCBTdHJpbmcmLCBk
b3VibGUpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb24+IGNyZWF0ZVBsYXRmb3JtQ0FBbmltYXRpb24o
V2ViQ29yZTo6UGxhdGZvcm1DQUFuaW1hdGlvbjo6QW5pbWF0aW9uVHlwZSwgY29uc3QgU3RyaW5n
JiBrZXlQYXRoKSBvdmVycmlkZTsKIAogICAgIC8vIFBsYXRmb3JtQ0FMYXllclJlbW90ZSBjYW4n
dCBjdXJyZW50bHkgcHJveHkgZGlyZWN0bHkgY29tcG9zaXRlZCBpbWFnZSBjb250ZW50cywgc28g
b3B0IG91dCBvZiB0aGlzIG9wdGltaXphdGlvbi4KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRGly
ZWN0bHlDb21wb3NpdGVJbWFnZShXZWJDb3JlOjpJbWFnZSopIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjIyN2YwZjdkZDFhNTEyY2QzOGIzMmJkYTMyMmMxMTE5YjQxOGU0MTkKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmlt
YXRpb25SZW1vdGUuaApAQCAtMCwwICsxLDI4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZV9o
CisjZGVmaW5lIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGVfaAorCisjaW5jbHVkZSA8V2ViQ29y
ZS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIEFyZ3VtZW50RW5j
b2RlcjsKK2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK307CisKK09CSkNfQ0xBU1MgQ0FMYXllcjsK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZUxheWVyVHJlZUhvc3Q7CisKK2Ns
YXNzIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UGxh
dGZvcm1DQUFuaW1hdGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UGxhdGZv
cm1DQUFuaW1hdGlvbj4gY3JlYXRlKEFuaW1hdGlvblR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0
aCk7CisKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlKCkgeyB9CisKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FB
bmltYXRpb24+IGNvcHkoKSBjb25zdCBvdmVycmlkZTsKKyAgICAKKyAgICB2aXJ0dWFsIFN0cmlu
ZyBrZXlQYXRoKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgCisgICAgdmlydHVhbCBDRlRpbWVJbnRl
cnZhbCBiZWdpblRpbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QmVn
aW5UaW1lKENGVGltZUludGVydmFsKSBvdmVycmlkZTsKKyAgICAKKyAgICB2aXJ0dWFsIENGVGlt
ZUludGVydmFsIGR1cmF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNl
dER1cmF0aW9uKENGVGltZUludGVydmFsKSBvdmVycmlkZTsKKyAgICAKKyAgICB2aXJ0dWFsIGZs
b2F0IHNwZWVkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFNwZWVkKGZs
b2F0KSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgQ0ZUaW1lSW50ZXJ2YWwgdGltZU9mZnNldCgp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRUaW1lT2Zmc2V0KENGVGltZUlu
dGVydmFsKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgZmxvYXQgcmVwZWF0Q291bnQoKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVwZWF0Q291bnQoZmxvYXQpIG92ZXJy
aWRlOworCisgICAgdmlydHVhbCBib29sIGF1dG9yZXZlcnNlcygpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRBdXRvcmV2ZXJzZXMoYm9vbCkgb3ZlcnJpZGU7CisKKyAgICB2
aXJ0dWFsIEZpbGxNb2RlVHlwZSBmaWxsTW9kZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBzZXRGaWxsTW9kZShGaWxsTW9kZVR5cGUpIG92ZXJyaWRlOworICAgIAorICAgIHZp
cnR1YWwgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbihjb25zdCBXZWJDb3JlOjpUaW1pbmdGdW5jdGlv
biosIGJvb2wgcmV2ZXJzZSA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvcHlUaW1pbmdG
dW5jdGlvbkZyb20oY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRl
OworCisgICAgdmlydHVhbCBib29sIGlzUmVtb3ZlZE9uQ29tcGxldGlvbigpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRSZW1vdmVkT25Db21wbGV0aW9uKGJvb2wpIG92ZXJy
aWRlOworCisgICAgdmlydHVhbCBib29sIGlzQWRkaXRpdmUoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0QWRkaXRpdmUoYm9vbCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFs
IFZhbHVlRnVuY3Rpb25UeXBlIHZhbHVlRnVuY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0VmFsdWVGdW5jdGlvbihWYWx1ZUZ1bmN0aW9uVHlwZSkgb3ZlcnJpZGU7
CisKKyAgICAvLyBCYXNpYy1hbmltYXRpb24gcHJvcGVydGllcy4KKyAgICB2aXJ0dWFsIHZvaWQg
c2V0RnJvbVZhbHVlKGZsb2F0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZh
bHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50M0QmKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OkNv
bG9yJikgb3ZlcnJpZGU7CisjaWYgRU5BQkxFKENTU19GSUxURVJTKQorICAgIHZpcnR1YWwgdm9p
ZCBzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9uKiwgaW50IGludGVy
bmFsRmlsdGVyUHJvcGVydHlJbmRleCkgb3ZlcnJpZGU7CisjZW5kaWYKKyAgICB2aXJ0dWFsIHZv
aWQgY29weUZyb21WYWx1ZUZyb20oY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1DQUFuaW1hdGlvbiop
IG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoZmxvYXQpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0
aW9uTWF0cml4Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3Qg
V2ViQ29yZTo6RmxvYXRQb2ludDNEJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFRv
VmFsdWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVycmlkZTsKKyNpZiBFTkFCTEUoQ1NTX0ZJ
TFRFUlMpCisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3QgV2ViQ29yZTo6RmlsdGVy
T3BlcmF0aW9uKiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgb3ZlcnJpZGU7Cisj
ZW5kaWYKKyAgICB2aXJ0dWFsIHZvaWQgY29weVRvVmFsdWVGcm9tKGNvbnN0IFdlYkNvcmU6OlBs
YXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKKworICAgIC8vIEtleWZyYW1lLWFuaW1hdGlv
biBwcm9wZXJ0aWVzLgorICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPGZs
b2F0PiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9y
PFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UG9pbnQzRD4mKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpD
b2xvcj4mKSBvdmVycmlkZTsKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgdmlydHVhbCB2
b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlv
bj4+JiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgb3ZlcnJpZGU7CisjZW5kaWYK
KyAgICB2aXJ0dWFsIHZvaWQgY29weVZhbHVlc0Zyb20oY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1D
QUFuaW1hdGlvbiopIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIHNldEtleVRpbWVzKGNv
bnN0IFZlY3RvcjxmbG9hdD4mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29weUtleVRp
bWVzRnJvbShjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CisK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0VGltaW5nRnVuY3Rpb25zKGNvbnN0IFZlY3Rvcjxjb25zdCBX
ZWJDb3JlOjpUaW1pbmdGdW5jdGlvbio+JiwgYm9vbCByZXZlcnNlID0gZmFsc2UpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShjb25zdCBXZWJDb3Jl
OjpQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CisKKyAgICBjbGFzcyBLZXlmcmFtZVZh
bHVlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIGVudW0gS2V5ZnJhbWVUeXBlIHsKKyAgICAgICAg
ICAgIE51bWJlcktleVR5cGUsCisgICAgICAgICAgICBDb2xvcktleVR5cGUsCisgICAgICAgICAg
ICBQb2ludEtleVR5cGUsCisgICAgICAgICAgICBUcmFuc2Zvcm1LZXlUeXBlLAorICAgICAgICB9
OworCisgICAgICAgIEtleWZyYW1lVmFsdWUoZmxvYXQgdmFsdWUgPSAwKQorICAgICAgICAgICAg
OiBrZXlUeXBlKE51bWJlcktleVR5cGUpCisgICAgICAgICAgICAsIG51bWJlcih2YWx1ZSkKKyAg
ICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgS2V5ZnJhbWVWYWx1ZShXZWJDb3JlOjpDb2xv
ciB2YWx1ZSkKKyAgICAgICAgICAgIDoga2V5VHlwZShDb2xvcktleVR5cGUpCisgICAgICAgICAg
ICAsIGNvbG9yKHZhbHVlKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBLZXlmcmFt
ZVZhbHVlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYgdmFsdWUpCisgICAgICAgICAgICA6
IGtleVR5cGUoUG9pbnRLZXlUeXBlKQorICAgICAgICAgICAgLCBwb2ludCh2YWx1ZSkKKyAgICAg
ICAgeworICAgICAgICB9CisKKyAgICAgICAgS2V5ZnJhbWVWYWx1ZShjb25zdCBXZWJDb3JlOjpU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgdmFsdWUpCisgICAgICAgICAgICA6IGtleVR5cGUoVHJhbnNm
b3JtS2V5VHlwZSkKKyAgICAgICAgICAgICwgdHJhbnNmb3JtKHZhbHVlKQorICAgICAgICB7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIEtleWZyYW1lVmFsdWUoY29uc3QgS2V5ZnJhbWVW
YWx1ZSYgb3RoZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgICp0aGlzID0gb3RoZXI7CisgICAg
ICAgIH0KKworICAgICAgICBLZXlmcmFtZVZhbHVlJiBvcGVyYXRvcj0oY29uc3QgS2V5ZnJhbWVW
YWx1ZSYgb3RoZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIGtleVR5cGUgPSBvdGhlci5rZXlU
eXBlOworICAgICAgICAgICAgc3dpdGNoIChrZXlUeXBlKSB7CisgICAgICAgICAgICBjYXNlIE51
bWJlcktleVR5cGU6CisgICAgICAgICAgICAgICAgbnVtYmVyID0gb3RoZXIubnVtYmVyOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDb2xvcktleVR5cGU6CisgICAg
ICAgICAgICAgICAgY29sb3IgPSBvdGhlci5jb2xvcjsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgUG9pbnRLZXlUeXBlOgorICAgICAgICAgICAgICAgIHBvaW50ID0g
b3RoZXIucG9pbnQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFRy
YW5zZm9ybUtleVR5cGU6CisgICAgICAgICAgICAgICAgdHJhbnNmb3JtID0gb3RoZXIudHJhbnNm
b3JtOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
CisgICAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
IEtleWZyYW1lVHlwZSBrZXlmcmFtZVR5cGUoKSBjb25zdCB7IHJldHVybiBrZXlUeXBlOyB9CisK
KyAgICAgICAgZmxvYXQgbnVtYmVyVmFsdWUoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAg
ICBBU1NFUlQoa2V5VHlwZSA9PSBOdW1iZXJLZXlUeXBlKTsKKyAgICAgICAgICAgIHJldHVybiBu
dW1iZXI7CisgICAgICAgIH0KKworICAgICAgICBXZWJDb3JlOjpDb2xvciBjb2xvclZhbHVlKCkg
Y29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKGtleVR5cGUgPT0gQ29sb3JLZXlU
eXBlKTsKKyAgICAgICAgICAgIHJldHVybiBjb2xvcjsKKyAgICAgICAgfQorCisgICAgICAgIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYgcG9pbnRWYWx1ZSgpIGNvbnN0CisgICAgICAgIHsK
KyAgICAgICAgICAgIEFTU0VSVChrZXlUeXBlID09IFBvaW50S2V5VHlwZSk7CisgICAgICAgICAg
ICByZXR1cm4gcG9pbnQ7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBXZWJDb3JlOjpUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtVmFsdWUoKSBjb25zdAorICAgICAgICB7CisgICAg
ICAgICAgICBBU1NFUlQoa2V5VHlwZSA9PSBUcmFuc2Zvcm1LZXlUeXBlKTsKKyAgICAgICAgICAg
IHJldHVybiB0cmFuc2Zvcm07CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGVuY29kZShJUEM6
OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBD
OjpBcmd1bWVudERlY29kZXImLCBLZXlmcmFtZVZhbHVlJik7CisKKyAgICBwcml2YXRlOgorICAg
ICAgICBLZXlmcmFtZVR5cGUga2V5VHlwZTsKKyAgICAgICAgdW5pb24geworICAgICAgICAgICAg
ZmxvYXQgbnVtYmVyOworICAgICAgICAgICAgV2ViQ29yZTo6Q29sb3IgY29sb3I7CisgICAgICAg
ICAgICBXZWJDb3JlOjpGbG9hdFBvaW50M0QgcG9pbnQ7CisgICAgICAgICAgICBXZWJDb3JlOjpU
cmFuc2Zvcm1hdGlvbk1hdHJpeCB0cmFuc2Zvcm07CisgICAgICAgIH07CisgICAgfTsKKworICAg
IHN0cnVjdCBQcm9wZXJ0aWVzIHsKKyAgICAgICAgUHJvcGVydGllcygpCisgICAgICAgICAgICA6
IGFuaW1hdGlvblR5cGUoQmFzaWMpCisgICAgICAgICAgICAsIGJlZ2luVGltZSgwKQorICAgICAg
ICAgICAgLCBkdXJhdGlvbigwKQorICAgICAgICAgICAgLCB0aW1lT2Zmc2V0KDApCisgICAgICAg
ICAgICAsIHJlcGVhdENvdW50KDEpCisgICAgICAgICAgICAsIHNwZWVkKDEpCisgICAgICAgICAg
ICAsIGZpbGxNb2RlKE5vRmlsbE1vZGUpCisgICAgICAgICAgICAsIHZhbHVlRnVuY3Rpb24oTm9W
YWx1ZUZ1bmN0aW9uKQorICAgICAgICAgICAgLCBhdXRvUmV2ZXJzZXMoZmFsc2UpCisgICAgICAg
ICAgICAsIHJlbW92ZWRPbkNvbXBsZXRpb24odHJ1ZSkKKyAgICAgICAgICAgICwgYWRkaXRpdmUo
ZmFsc2UpCisgICAgICAgICAgICAsIHJldmVyc2VUaW1pbmdGdW5jdGlvbnMoZmFsc2UpCisgICAg
ICAgICAgICAsIGhhc05vblplcm9CZWdpblRpbWUoZmFsc2UpCisgICAgICAgIAorICAgICAgICB7
CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRF
bmNvZGVyJikgY29uc3Q7CisgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50
RGVjb2RlciYsIFByb3BlcnRpZXMmKTsKKworICAgICAgICBTdHJpbmcga2V5UGF0aDsKKyAgICAg
ICAgUGxhdGZvcm1DQUFuaW1hdGlvbjo6QW5pbWF0aW9uVHlwZSBhbmltYXRpb25UeXBlOworCisg
ICAgICAgIGRvdWJsZSBiZWdpblRpbWU7CisgICAgICAgIGRvdWJsZSBkdXJhdGlvbjsKKyAgICAg
ICAgZG91YmxlIHRpbWVPZmZzZXQ7CisgICAgICAgIGZsb2F0IHJlcGVhdENvdW50OworICAgICAg
ICBmbG9hdCBzcGVlZDsKKyAgICAgICAgCisgICAgICAgIFBsYXRmb3JtQ0FBbmltYXRpb246OkZp
bGxNb2RlVHlwZSBmaWxsTW9kZTsKKyAgICAgICAgUGxhdGZvcm1DQUFuaW1hdGlvbjo6VmFsdWVG
dW5jdGlvblR5cGUgdmFsdWVGdW5jdGlvbjsKKyAgICAgICAgCisgICAgICAgIGJvb2wgYXV0b1Jl
dmVyc2VzOworICAgICAgICBib29sIHJlbW92ZWRPbkNvbXBsZXRpb247CisgICAgICAgIGJvb2wg
YWRkaXRpdmU7CisgICAgICAgIGJvb2wgcmV2ZXJzZVRpbWluZ0Z1bmN0aW9uczsKKyAgICAgICAg
Ym9vbCBoYXNOb25aZXJvQmVnaW5UaW1lOworCisgICAgICAgIC8vIEZvciBiYXNpYyBhbmltYXRp
b25zLCB0aGVzZSB2ZWN0b3JzIGhhdmUgdHdvIGVudHJpZXMuIEZvciBrZXlmcmFtZSBhbmltYXRp
b25zLCB0d28gb3IgbW9yZS4KKyAgICAgICAgLy8gdGltaW5nRnVuY3Rpb25zIGhhcyBuLTEgZW50
cmllcy4KKyAgICAgICAgVmVjdG9yPEtleWZyYW1lVmFsdWU+IGtleVZhbHVlczsKKyAgICAgICAg
VmVjdG9yPGZsb2F0PiBrZXlUaW1lczsKKyAgICAgICAgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpU
aW1pbmdGdW5jdGlvbj4+IHRpbWluZ0Z1bmN0aW9uczsKKyAgICB9OworCisgICAgY29uc3QgUHJv
cGVydGllcyYgcHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJvcGVydGllczsgfQorCisg
ICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUHJvcGVydGllcz4gQW5pbWF0aW9uc01hcDsKKyAg
ICBzdGF0aWMgdm9pZCB1cGRhdGVMYXllckFuaW1hdGlvbnMoQ0FMYXllciAqLCBSZW1vdGVMYXll
clRyZWVIb3N0KiwgY29uc3QgQW5pbWF0aW9uc01hcCYgYW5pbWF0aW9uc1RvQWRkLCBjb25zdCBI
YXNoU2V0PFN0cmluZz4mIGFuaW1hdGlvbnNUb1JlbW92ZSk7CisKK3ByaXZhdGU6CisgICAgUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZShBbmltYXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGtleVBh
dGgpOworCisgICAgUHJvcGVydGllcyBtX3Byb3BlcnRpZXM7Cit9OworCitQTEFURk9STV9DQUFO
SU1BVElPTl9UWVBFX0NBU1RTKFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUsIGlzUGxhdGZvcm1D
QUFuaW1hdGlvblJlbW90ZSgpKQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVt
b3RlLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjRkNjNiY2U5Y2RkZDRhMGNkNzQ4YjE3ZjIzZjhmMzc4NzgyYzE3
YjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0KQEAgLTAsMCArMSw3MzEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW1wb3J0ICJQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmgiCisKKyNpbXBvcnQgIkFy
Z3VtZW50Q29kZXJzLmgiCisjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVIb3N0LmgiCisjaW1wb3J0
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbXBvcnQgPFdlYkNvcmUvQmxvY2tFeGNlcHRp
b25zLmg+CisjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5oPgorI2ltcG9ydCA8V2ViQ29yZS9UaW1pbmdGdW5j
dGlvbi5oPgorI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW1wb3J0IDx3dGYvUmV0YWlu
UHRyLmg+CisjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KKwordXNpbmcgbmFtZXNw
YWNlIFdURjsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdGF0aWMgZG91YmxlIG1lZGlh
VGltZVRvQ3VycmVudFRpbWUoQ0ZUaW1lSW50ZXJ2YWwgdCkKK3sKKyAgICByZXR1cm4gbW9ub3Rv
bmljYWxseUluY3JlYXNpbmdUaW1lKCkgKyB0IC0gQ0FDdXJyZW50TWVkaWFUaW1lKCk7Cit9CisK
K3N0YXRpYyBOU1N0cmluZyAqIGNvbnN0IFdLTm9uWmVyb0JlZ2luVGltZUZsYWcgPSBAIldLUGxh
dGZvcm1DQUFuaW1hdGlvbk5vblplcm9CZWdpblRpbWVGbGFnIjsKKworQGludGVyZmFjZSBXS0Fu
aW1hdGlvbkRlbGVnYXRlIDogTlNPYmplY3QgeworICAgIEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3Jt
TGF5ZXJJRCBfbGF5ZXJJRDsKKyAgICBXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3QqIF9sYXll
clRyZWVIb3N0OworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhMYXllcklEOihHcmFwaGlj
c0xheWVyOjpQbGF0Zm9ybUxheWVySUQpbGF5ZXJJRCBsYXllclRyZWVIb3N0OihXZWJLaXQ6OlJl
bW90ZUxheWVyVHJlZUhvc3QqKWxheWVyVHJlZUhvc3Q7CitAZW5kCisKK0BpbXBsZW1lbnRhdGlv
biBXS0FuaW1hdGlvbkRlbGVnYXRlCisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aExheWVySUQ6
KEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRClsYXllcklEIGxheWVyVHJlZUhvc3Q6KFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdCopbGF5ZXJUcmVlSG9zdAoreworICAgIGlmICgoc2Vs
ZiA9IFtzdXBlciBpbml0XSkpIHsKKyAgICAgICAgX2xheWVySUQgPSBsYXllcklEOworICAgICAg
ICBfbGF5ZXJUcmVlSG9zdCA9IGxheWVyVHJlZUhvc3Q7CisgICAgfQorICAgIHJldHVybiBzZWxm
OworfQorCistICh2b2lkKWFuaW1hdGlvbkRpZFN0YXJ0OihDQUFuaW1hdGlvbiAqKWFuaW1hdGlv
bgoreworICAgIGJvb2wgaGFzTm9uWmVyb0JlZ2luVGltZSA9IFtbYW5pbWF0aW9uIHZhbHVlRm9y
S2V5OldLTm9uWmVyb0JlZ2luVGltZUZsYWddIGJvb2xWYWx1ZV07CisgICAgQ0ZUaW1lSW50ZXJ2
YWwgc3RhcnRUaW1lOworCisgICAgaWYgKGhhc05vblplcm9CZWdpblRpbWUpIHsKKyAgICAgICAg
Ly8gV2UgZG9uJ3Qga25vdyB3aGF0IHRpbWUgQ0EgdXNlZCB0byBjb21taXQgdGhlIGFuaW1hdGlv
biwgc28ganVzdCB1c2UgdGhlIGN1cnJlbnQgdGltZQorICAgICAgICAvLyAoZXZlbiB0aG91Z2gg
dGhpcyB3aWxsIGJlIHNsaWdodGx5IG9mZikuCisgICAgICAgIHN0YXJ0VGltZSA9IG1lZGlhVGlt
ZVRvQ3VycmVudFRpbWUoQ0FDdXJyZW50TWVkaWFUaW1lKCkpOworICAgIH0gZWxzZQorICAgICAg
ICBzdGFydFRpbWUgPSBtZWRpYVRpbWVUb0N1cnJlbnRUaW1lKFthbmltYXRpb24gYmVnaW5UaW1l
XSk7CisKKyAgICBfbGF5ZXJUcmVlSG9zdC0+YW5pbWF0aW9uRGlkU3RhcnQoX2xheWVySUQsIHN0
YXJ0VGltZSk7Cit9CitAZW5kCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25SZW1vdGU6OktleWZyYW1lVmFsdWU6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyLmVuY29kZUVudW0oa2V5VHlwZSk7
CisKKyAgICBzd2l0Y2ggKGtleVR5cGUpIHsKKyAgICBjYXNlIE51bWJlcktleVR5cGU6CisgICAg
ICAgIGVuY29kZXIgPDwgbnVtYmVyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbG9yS2V5
VHlwZToKKyAgICAgICAgZW5jb2RlciA8PCBjb2xvcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBQb2ludEtleVR5cGU6CisgICAgICAgIGVuY29kZXIgPDwgcG9pbnQ7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgVHJhbnNmb3JtS2V5VHlwZToKKyAgICAgICAgZW5jb2RlciA8PCB0cmFuc2Zv
cm07CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKworYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9u
UmVtb3RlOjpLZXlmcmFtZVZhbHVlOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29k
ZXIsIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OktleWZyYW1lVmFsdWUmIHZhbHVlKQorewor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHZhbHVlLmtleVR5cGUpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBzd2l0Y2ggKHZhbHVlLmtleVR5cGUpIHsKKyAgICBjYXNlIE51bWJl
cktleVR5cGU6CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodmFsdWUubnVtYmVyKSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb2xvcktl
eVR5cGU6CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodmFsdWUuY29sb3IpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBvaW50S2V5VHlw
ZToKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2YWx1ZS5wb2ludCkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVHJhbnNmb3JtS2V5VHlw
ZToKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2YWx1ZS50cmFuc2Zvcm0pKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpQcm9wZXJ0aWVzOjpl
bmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2Rl
ciA8PCBrZXlQYXRoOworICAgIGVuY29kZXIuZW5jb2RlRW51bShhbmltYXRpb25UeXBlKTsKKwor
ICAgIGVuY29kZXIgPDwgYmVnaW5UaW1lOworICAgIGVuY29kZXIgPDwgZHVyYXRpb247CisgICAg
ZW5jb2RlciA8PCB0aW1lT2Zmc2V0OworICAgIGVuY29kZXIgPDwgcmVwZWF0Q291bnQ7CisgICAg
ZW5jb2RlciA8PCBzcGVlZDsKKworICAgIGVuY29kZXIuZW5jb2RlRW51bShmaWxsTW9kZSk7Cisg
ICAgZW5jb2Rlci5lbmNvZGVFbnVtKHZhbHVlRnVuY3Rpb24pOworCisgICAgZW5jb2RlciA8PCBh
dXRvUmV2ZXJzZXM7CisgICAgZW5jb2RlciA8PCByZW1vdmVkT25Db21wbGV0aW9uOworICAgIGVu
Y29kZXIgPDwgYWRkaXRpdmU7CisgICAgZW5jb2RlciA8PCByZXZlcnNlVGltaW5nRnVuY3Rpb25z
OworICAgIGVuY29kZXIgPDwgaGFzTm9uWmVyb0JlZ2luVGltZTsKKyAgICAKKyAgICBlbmNvZGVy
IDw8IGtleVZhbHVlczsKKyAgICBlbmNvZGVyIDw8IGtleVRpbWVzOworICAgIAorICAgIGVuY29k
ZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHRpbWluZ0Z1bmN0aW9ucy5zaXplKCkpOworICAg
IGZvciAoY29uc3QgYXV0byYgdGltaW5nRnVuY3Rpb24gOiB0aW1pbmdGdW5jdGlvbnMpIHsKKwor
ICAgICAgICBzd2l0Y2ggKHRpbWluZ0Z1bmN0aW9uLT50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBU
aW1pbmdGdW5jdGlvbjo6TGluZWFyRnVuY3Rpb246CisgICAgICAgICAgICBlbmNvZGVyIDw8ICpz
dGF0aWNfY2FzdDxMaW5lYXJUaW1pbmdGdW5jdGlvbio+KHRpbWluZ0Z1bmN0aW9uLmdldCgpKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAgIGNhc2UgVGltaW5nRnVu
Y3Rpb246OkN1YmljQmV6aWVyRnVuY3Rpb246CisgICAgICAgICAgICBlbmNvZGVyIDw8ICpzdGF0
aWNfY2FzdDxDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uKj4odGltaW5nRnVuY3Rpb24uZ2V0KCkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIAorICAgICAgICBjYXNlIFRpbWluZ0Z1bmN0
aW9uOjpTdGVwc0Z1bmN0aW9uOgorICAgICAgICAgICAgZW5jb2RlciA8PCAqc3RhdGljX2Nhc3Q8
U3RlcHNUaW1pbmdGdW5jdGlvbio+KHRpbWluZ0Z1bmN0aW9uLmdldCgpKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCitib29sIFBsYXRmb3JtQ0FBbmltYXRpb25S
ZW1vdGU6OlByb3BlcnRpZXM6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwg
UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6UHJvcGVydGllcyYgcHJvcGVydGllcykKK3sKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHByb3BlcnRpZXMua2V5UGF0aCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHByb3BlcnRpZXMuYW5pbWF0
aW9uVHlwZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocHJvcGVydGllcy5iZWdpblRpbWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHByb3BlcnRpZXMuZHVyYXRpb24pKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHByb3BlcnRpZXMudGltZU9mZnNldCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocHJvcGVy
dGllcy5yZXBlYXRDb3VudCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocHJvcGVydGllcy5zcGVlZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHByb3BlcnRpZXMuZmlsbE1vZGUpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShwcm9wZXJ0aWVz
LnZhbHVlRnVuY3Rpb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHByb3BlcnRpZXMuYXV0b1JldmVyc2VzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcm9wZXJ0aWVzLnJlbW92ZWRPbkNvbXBsZXRp
b24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBy
b3BlcnRpZXMuYWRkaXRpdmUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHByb3BlcnRpZXMucmV2ZXJzZVRpbWluZ0Z1bmN0aW9ucykpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocHJvcGVydGllcy5oYXNO
b25aZXJvQmVnaW5UaW1lKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShwcm9wZXJ0aWVzLmtleVZhbHVlcykpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocHJvcGVydGllcy5rZXlUaW1lcykpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIHVpbnQ2NF90IG51bVRpbWluZ0Z1bmN0aW9uczsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKG51bVRpbWluZ0Z1bmN0aW9ucykpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAKKyAgICBpZiAobnVtVGltaW5nRnVuY3Rpb25zKSB7CisgICAgICAgIHByb3Bl
cnRpZXMudGltaW5nRnVuY3Rpb25zLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobnVtVGltaW5nRnVu
Y3Rpb25zKTsKKworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bVRpbWluZ0Z1bmN0
aW9uczsgKytpKSB7CisgICAgICAgIAorICAgICAgICAgICAgVGltaW5nRnVuY3Rpb246OlRpbWlu
Z0Z1bmN0aW9uVHlwZSB0eXBlOworICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0o
dHlwZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBSZWZQ
dHI8VGltaW5nRnVuY3Rpb24+IHRpbWluZ0Z1bmN0aW9uOworICAgICAgICAgICAgc3dpdGNoICh0
eXBlKSB7CisgICAgICAgICAgICBjYXNlIFRpbWluZ0Z1bmN0aW9uOjpMaW5lYXJGdW5jdGlvbjoK
KyAgICAgICAgICAgICAgICB0aW1pbmdGdW5jdGlvbiA9IExpbmVhclRpbWluZ0Z1bmN0aW9uOjpj
cmVhdGUoKTsKKyAgICAgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKCpzdGF0aWNfY2Fz
dDxMaW5lYXJUaW1pbmdGdW5jdGlvbio+KHRpbWluZ0Z1bmN0aW9uLmdldCgpKSkpCisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgVGltaW5nRnVuY3Rpb246OkN1YmljQmV6aWVy
RnVuY3Rpb246CisgICAgICAgICAgICAgICAgdGltaW5nRnVuY3Rpb24gPSBDdWJpY0JlemllclRp
bWluZ0Z1bmN0aW9uOjpjcmVhdGUoKTsKKyAgICAgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKCpzdGF0aWNfY2FzdDxDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uKj4odGltaW5nRnVuY3Rp
b24uZ2V0KCkpKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIFRpbWluZ0Z1bmN0
aW9uOjpTdGVwc0Z1bmN0aW9uOgorICAgICAgICAgICAgICAgIHRpbWluZ0Z1bmN0aW9uID0gU3Rl
cHNUaW1pbmdGdW5jdGlvbjo6Y3JlYXRlKCk7CisgICAgICAgICAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZSgqc3RhdGljX2Nhc3Q8U3RlcHNUaW1pbmdGdW5jdGlvbio+KHRpbWluZ0Z1bmN0aW9u
LmdldCgpKSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHJv
cGVydGllcy50aW1pbmdGdW5jdGlvbnMudW5jaGVja2VkQXBwZW5kKHRpbWluZ0Z1bmN0aW9uLnJl
bGVhc2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworI3By
YWdtYSBtYXJrIC0KKworUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNB
QW5pbWF0aW9uUmVtb3RlOjpjcmVhdGUoUGxhdGZvcm1DQUFuaW1hdGlvbjo6QW5pbWF0aW9uVHlw
ZSB0eXBlLCBjb25zdCBTdHJpbmcmIGtleVBhdGgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlKHR5cGUsIGtleVBhdGgpKTsKK30KKworUGFzc1Jl
ZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpjb3B5
KCkgY29uc3QKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6UGxhdGZvcm1DQUFuaW1hdGlvblJl
bW90ZShBbmltYXRpb25UeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCkKKyAgICA6IFBs
YXRmb3JtQ0FBbmltYXRpb24odHlwZSkKK3sKKyAgICBtX3Byb3BlcnRpZXMua2V5UGF0aCA9IGtl
eVBhdGg7CisgICAgbV9wcm9wZXJ0aWVzLmFuaW1hdGlvblR5cGUgPSB0eXBlOworfQorCitTdHJp
bmcgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6a2V5UGF0aCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fcHJvcGVydGllcy5rZXlQYXRoOworfQorCitDRlRpbWVJbnRlcnZhbCBQbGF0Zm9ybUNB
QW5pbWF0aW9uUmVtb3RlOjpiZWdpblRpbWUoKSBjb25zdAoreworICAgIHJldHVybiBtX3Byb3Bl
cnRpZXMuYmVnaW5UaW1lOworfQorCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNl
dEJlZ2luVGltZShDRlRpbWVJbnRlcnZhbCB2YWx1ZSkKK3sKKyAgICBtX3Byb3BlcnRpZXMuYmVn
aW5UaW1lID0gdmFsdWU7CisgICAgCisgICAgLy8gQWxzbyBzZXQgYSBmbGFnIHRvIHRlbGwgdXMg
aWYgd2UndmUgcGFzc2VkIGluIGEgMCB2YWx1ZS4gCisgICAgLy8gVGhlIGZsYWcgaXMgbmVlZGVk
IGJlY2F1c2UgbGF0ZXIgYmVnaW5UaW1lIHdpbGwgZ2V0IGNoYW5nZWQKKyAgICAvLyB0byB0aGUg
dGltZSBhdCB3aGljaCBpdCBmaXJlZCBhbmQgd2UgbmVlZCB0byBrbm93IHdoZXRoZXIKKyAgICAv
LyBvciBub3QgaXQgd2FzIDAgdG8gYmVnaW4gd2l0aC4KKyAgICBpZiAodmFsdWUpCisgICAgICAg
IG1fcHJvcGVydGllcy5oYXNOb25aZXJvQmVnaW5UaW1lID0gdmFsdWU7Cit9CisKK0NGVGltZUlu
dGVydmFsIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmR1cmF0aW9uKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9wcm9wZXJ0aWVzLmR1cmF0aW9uOworfQorCit2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb25SZW1vdGU6OnNldER1cmF0aW9uKENGVGltZUludGVydmFsIHZhbHVlKQoreworICAgIG1f
cHJvcGVydGllcy5kdXJhdGlvbiA9IHZhbHVlOworfQorCitmbG9hdCBQbGF0Zm9ybUNBQW5pbWF0
aW9uUmVtb3RlOjpzcGVlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJvcGVydGllcy5zcGVl
ZDsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRTcGVlZChmbG9hdCB2
YWx1ZSkKK3sKKyAgICBtX3Byb3BlcnRpZXMuc3BlZWQgPSB2YWx1ZTsKK30KKworQ0ZUaW1lSW50
ZXJ2YWwgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6dGltZU9mZnNldCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fcHJvcGVydGllcy50aW1lT2Zmc2V0OworfQorCit2b2lkIFBsYXRmb3JtQ0FB
bmltYXRpb25SZW1vdGU6OnNldFRpbWVPZmZzZXQoQ0ZUaW1lSW50ZXJ2YWwgdmFsdWUpCit7Cisg
ICAgbV9wcm9wZXJ0aWVzLnRpbWVPZmZzZXQgPSB2YWx1ZTsKK30KKworZmxvYXQgUGxhdGZvcm1D
QUFuaW1hdGlvblJlbW90ZTo6cmVwZWF0Q291bnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3By
b3BlcnRpZXMucmVwZWF0Q291bnQ7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90
ZTo6c2V0UmVwZWF0Q291bnQoZmxvYXQgdmFsdWUpCit7CisgICAgbV9wcm9wZXJ0aWVzLnJlcGVh
dENvdW50ID0gdmFsdWU7Cit9CisKK2Jvb2wgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6YXV0
b3JldmVyc2VzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcm9wZXJ0aWVzLmF1dG9SZXZlcnNl
czsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRBdXRvcmV2ZXJzZXMo
Ym9vbCB2YWx1ZSkKK3sKKyAgICBtX3Byb3BlcnRpZXMuYXV0b1JldmVyc2VzID0gdmFsdWU7Cit9
CisKK1BsYXRmb3JtQ0FBbmltYXRpb246OkZpbGxNb2RlVHlwZSBQbGF0Zm9ybUNBQW5pbWF0aW9u
UmVtb3RlOjpmaWxsTW9kZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJvcGVydGllcy5maWxs
TW9kZTsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRGaWxsTW9kZShG
aWxsTW9kZVR5cGUgdmFsdWUpCit7CisgICAgbV9wcm9wZXJ0aWVzLmZpbGxNb2RlID0gdmFsdWU7
Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0VGltaW5nRnVuY3Rpb24o
Y29uc3QgVGltaW5nRnVuY3Rpb24qIHZhbHVlLCBib29sIHJldmVyc2UpCit7CisgICAgVmVjdG9y
PFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4+IHRpbWluZ0Z1bmN0aW9uczsKKyAgICB0aW1pbmdGdW5j
dGlvbnMuYXBwZW5kKHZhbHVlLT5jbG9uZSgpKTsKKworICAgIG1fcHJvcGVydGllcy50aW1pbmdG
dW5jdGlvbnMgPSBzdGQ6Om1vdmUodGltaW5nRnVuY3Rpb25zKTsKKyAgICBtX3Byb3BlcnRpZXMu
cmV2ZXJzZVRpbWluZ0Z1bmN0aW9ucyA9IHJldmVyc2U7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvblJlbW90ZTo6Y29weVRpbWluZ0Z1bmN0aW9uRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5p
bWF0aW9uKiB2YWx1ZSkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworYm9vbCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjppc1JlbW92ZWRPbkNvbXBsZXRpb24oKSBjb25zdAor
eworICAgIHJldHVybiBtX3Byb3BlcnRpZXMucmVtb3ZlZE9uQ29tcGxldGlvbjsKK30KKwordm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRSZW1vdmVkT25Db21wbGV0aW9uKGJvb2wg
dmFsdWUpCit7CisgICAgbV9wcm9wZXJ0aWVzLnJlbW92ZWRPbkNvbXBsZXRpb24gPSB2YWx1ZTsK
K30KKworYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjppc0FkZGl0aXZlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9wcm9wZXJ0aWVzLmFkZGl0aXZlOworfQorCit2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25SZW1vdGU6OnNldEFkZGl0aXZlKGJvb2wgdmFsdWUpCit7CisgICAgbV9wcm9w
ZXJ0aWVzLmFkZGl0aXZlID0gdmFsdWU7Cit9CisKK1BsYXRmb3JtQ0FBbmltYXRpb246OlZhbHVl
RnVuY3Rpb25UeXBlIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnZhbHVlRnVuY3Rpb24oKSBj
b25zdAoreworICAgIHJldHVybiBtX3Byb3BlcnRpZXMudmFsdWVGdW5jdGlvbjsKK30KKwordm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRWYWx1ZUZ1bmN0aW9uKFZhbHVlRnVuY3Rp
b25UeXBlIHZhbHVlKQoreworICAgIG1fcHJvcGVydGllcy52YWx1ZUZ1bmN0aW9uID0gdmFsdWU7
Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0RnJvbVZhbHVlKGZsb2F0
IHZhbHVlKQoreworICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXMucmVzaXplKDIpOworICAgIG1fcHJv
cGVydGllcy5rZXlWYWx1ZXNbMF0gPSBLZXlmcmFtZVZhbHVlKHZhbHVlKTsKK30KKwordm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRGcm9tVmFsdWUoY29uc3QgVHJhbnNmb3JtYXRp
b25NYXRyaXgmIHZhbHVlKQoreworICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXMucmVzaXplKDIpOwor
ICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXNbMF0gPSBLZXlmcmFtZVZhbHVlKHZhbHVlKTsKK30K
Kwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRGcm9tVmFsdWUoY29uc3QgRmxv
YXRQb2ludDNEJiB2YWx1ZSkKK3sKKyAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzLnJlc2l6ZSgyKTsK
KyAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzWzBdID0gS2V5ZnJhbWVWYWx1ZSh2YWx1ZSk7Cit9
CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0RnJvbVZhbHVlKGNvbnN0IENv
bG9yJiB2YWx1ZSkKK3sKKyAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzLnJlc2l6ZSgyKTsKKyAgICBt
X3Byb3BlcnRpZXMua2V5VmFsdWVzWzBdID0gS2V5ZnJhbWVWYWx1ZSh2YWx1ZSk7Cit9CisKKyNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNl
dEZyb21WYWx1ZShjb25zdCBGaWx0ZXJPcGVyYXRpb24qIG9wZXJhdGlvbiwgaW50IGludGVybmFs
RmlsdGVyUHJvcGVydHlJbmRleCkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKyNl
bmRpZgorCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmNvcHlGcm9tVmFsdWVGcm9t
KGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQoreworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworfQorCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFRvVmFsdWUo
ZmxvYXQgdmFsdWUpCit7CisgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcy5yZXNpemUoMik7CisgICAg
bV9wcm9wZXJ0aWVzLmtleVZhbHVlc1sxXSA9IEtleWZyYW1lVmFsdWUodmFsdWUpOworfQorCit2
b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFRvVmFsdWUoY29uc3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXgmIHZhbHVlKQoreworICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXMucmVzaXplKDIp
OworICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXNbMV0gPSBLZXlmcmFtZVZhbHVlKHZhbHVlKTsK
K30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRUb1ZhbHVlKGNvbnN0IEZs
b2F0UG9pbnQzRCYgdmFsdWUpCit7CisgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcy5yZXNpemUoMik7
CisgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlc1sxXSA9IEtleWZyYW1lVmFsdWUodmFsdWUpOwor
fQorCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFRvVmFsdWUoY29uc3QgQ29s
b3ImIHZhbHVlKQoreworICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXMucmVzaXplKDIpOworICAgIG1f
cHJvcGVydGllcy5rZXlWYWx1ZXNbMV0gPSBLZXlmcmFtZVZhbHVlKHZhbHVlKTsKK30KKworI2lm
IEVOQUJMRShDU1NfRklMVEVSUykKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0
VG9WYWx1ZShjb25zdCBGaWx0ZXJPcGVyYXRpb24qIG9wZXJhdGlvbiwgaW50IGludGVybmFsRmls
dGVyUHJvcGVydHlJbmRleCkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKyNlbmRp
ZgorCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmNvcHlUb1ZhbHVlRnJvbShjb25z
dCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKK30KKworLy8gS2V5ZnJhbWUtYW5pbWF0aW9uIHByb3BlcnRpZXMuCit2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25SZW1vdGU6OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8ZmxvYXQ+JiB2YWx1ZXMp
Cit7CisgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBLZXlmcmFtZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgVmVjdG9yPEtleWZyYW1lVmFsdWU+IGtleWZyYW1lczsKKyAgICBrZXlmcmFtZXMu
cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh2YWx1ZXMuc2l6ZSgpKTsKKyAgICAKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHZhbHVlcy5zaXplKCk7ICsraSkKKyAgICAgICAga2V5ZnJhbWVzLnVu
Y2hlY2tlZEFwcGVuZChLZXlmcmFtZVZhbHVlKHZhbHVlc1tpXSkpOworICAgIAorICAgIG1fcHJv
cGVydGllcy5rZXlWYWx1ZXMgPSBzdGQ6Om1vdmUoa2V5ZnJhbWVzKTsKK30KKwordm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFRyYW5zZm9ybWF0
aW9uTWF0cml4PiYgdmFsdWVzKQoreworICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gS2V5ZnJh
bWUpCisgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgVmVjdG9yPEtleWZyYW1lVmFsdWU+
IGtleWZyYW1lczsKKyAgICBrZXlmcmFtZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh2YWx1ZXMu
c2l6ZSgpKTsKKyAgICAKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZhbHVlcy5zaXplKCk7
ICsraSkKKyAgICAgICAga2V5ZnJhbWVzLnVuY2hlY2tlZEFwcGVuZChLZXlmcmFtZVZhbHVlKHZh
bHVlc1tpXSkpOworICAgIAorICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXMgPSBzdGQ6Om1vdmUo
a2V5ZnJhbWVzKTsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRWYWx1
ZXMoY29uc3QgVmVjdG9yPEZsb2F0UG9pbnQzRD4mIHZhbHVlcykKK3sKKyAgICBpZiAoYW5pbWF0
aW9uVHlwZSgpICE9IEtleWZyYW1lKQorICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgIFZl
Y3RvcjxLZXlmcmFtZVZhbHVlPiBrZXlmcmFtZXM7CisgICAga2V5ZnJhbWVzLnJlc2VydmVJbml0
aWFsQ2FwYWNpdHkodmFsdWVzLnNpemUoKSk7CisgICAgCisgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCB2YWx1ZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIGtleWZyYW1lcy51bmNoZWNrZWRBcHBl
bmQoS2V5ZnJhbWVWYWx1ZSh2YWx1ZXNbaV0pKTsKKyAgICAKKyAgICBtX3Byb3BlcnRpZXMua2V5
VmFsdWVzID0gc3RkOjptb3ZlKGtleWZyYW1lcyk7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1h
dGlvblJlbW90ZTo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxDb2xvcj4mIHZhbHVlcykKK3sKKyAg
ICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZyYW1lKQorICAgICAgICByZXR1cm47CisgICAg
ICAgIAorICAgIFZlY3RvcjxLZXlmcmFtZVZhbHVlPiBrZXlmcmFtZXM7CisgICAga2V5ZnJhbWVz
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodmFsdWVzLnNpemUoKSk7CisgICAgCisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCB2YWx1ZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIGtleWZyYW1lcy51
bmNoZWNrZWRBcHBlbmQoS2V5ZnJhbWVWYWx1ZSh2YWx1ZXNbaV0pKTsKKyAgICAKKyAgICBtX3By
b3BlcnRpZXMua2V5VmFsdWVzID0gc3RkOjptb3ZlKGtleWZyYW1lcyk7Cit9CisKKyNpZiBFTkFC
TEUoQ1NTX0ZJTFRFUlMpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFZhbHVl
cyhjb25zdCBWZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4+JiwgaW50IGludGVybmFsRmls
dGVyUHJvcGVydHlJbmRleCkKK3sKKyAgICBVTlVTRURfUEFSQU0oaW50ZXJuYWxGaWx0ZXJQcm9w
ZXJ0eUluZGV4KTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKyNlbmRpZgorCit2b2lk
IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmNvcHlWYWx1ZXNGcm9tKGNvbnN0IFBsYXRmb3Jt
Q0FBbmltYXRpb24qIHZhbHVlKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2
b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldEtleVRpbWVzKGNvbnN0IFZlY3Rvcjxm
bG9hdD4mIGtleVRpbWVzKQoreworICAgIG1fcHJvcGVydGllcy5rZXlUaW1lcyA9IGtleVRpbWVz
OworfQorCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmNvcHlLZXlUaW1lc0Zyb20o
Y29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCit7CisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0VGltaW5nRnVu
Y3Rpb25zKGNvbnN0IFZlY3Rvcjxjb25zdCBUaW1pbmdGdW5jdGlvbio+JiB2YWx1ZXMsIGJvb2wg
cmV2ZXJzZSkKK3sKKyAgICBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlRpbWluZ0Z1bmN0aW9uPj4g
dGltaW5nRnVuY3Rpb25zOworICAgIHRpbWluZ0Z1bmN0aW9ucy5yZXNlcnZlSW5pdGlhbENhcGFj
aXR5KHZhbHVlcy5zaXplKCkpOworICAgIAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFs
dWVzLnNpemUoKTsgKytpKQorICAgICAgICB0aW1pbmdGdW5jdGlvbnMudW5jaGVja2VkQXBwZW5k
KHZhbHVlc1tpXS0+Y2xvbmUoKSk7CisgICAgCisgICAgbV9wcm9wZXJ0aWVzLnRpbWluZ0Z1bmN0
aW9ucyA9IHN0ZDo6bW92ZSh0aW1pbmdGdW5jdGlvbnMpOworICAgIG1fcHJvcGVydGllcy5yZXZl
cnNlVGltaW5nRnVuY3Rpb25zID0gcmV2ZXJzZTsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0
aW9uUmVtb3RlOjpjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0
aW9uKiB2YWx1ZSkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworc3RhdGljIE5T
T2JqZWN0KiBhbmltYXRpb25WYWx1ZUZyb21LZXlmcmFtZVZhbHVlKGNvbnN0IFBsYXRmb3JtQ0FB
bmltYXRpb25SZW1vdGU6OktleWZyYW1lVmFsdWUmIGtleWZyYW1lVmFsdWUpCit7CisgICAgc3dp
dGNoIChrZXlmcmFtZVZhbHVlLmtleWZyYW1lVHlwZSgpKSB7CisgICAgY2FzZSBQbGF0Zm9ybUNB
QW5pbWF0aW9uUmVtb3RlOjpLZXlmcmFtZVZhbHVlOjpOdW1iZXJLZXlUeXBlOgorICAgICAgICBy
ZXR1cm4gW05TTnVtYmVyIG51bWJlcldpdGhEb3VibGU6a2V5ZnJhbWVWYWx1ZS5udW1iZXJWYWx1
ZSgpXTsKKworICAgIGNhc2UgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6S2V5ZnJhbWVWYWx1
ZTo6Q29sb3JLZXlUeXBlOiB7CisgICAgICAgIENvbG9yIGNvbG9yID0ga2V5ZnJhbWVWYWx1ZS5j
b2xvclZhbHVlKCk7CisgICAgICAgIHJldHVybiBbTlNBcnJheSBhcnJheVdpdGhPYmplY3RzOgor
ICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhEb3VibGU6Y29sb3IucmVkKCldLAorICAg
ICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhEb3VibGU6Y29sb3IuZ3JlZW4oKV0sCisgICAg
ICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aERvdWJsZTpjb2xvci5ibHVlKCldLAorICAgICAg
ICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhEb3VibGU6Y29sb3IuYWxwaGEoKV0sCisgICAgICAg
ICAgICBuaWxdOworICAgIH0KKworICAgIGNhc2UgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6
S2V5ZnJhbWVWYWx1ZTo6UG9pbnRLZXlUeXBlOiB7CisgICAgICAgIEZsb2F0UG9pbnQzRCBwb2lu
dCA9IGtleWZyYW1lVmFsdWUucG9pbnRWYWx1ZSgpOworICAgICAgICByZXR1cm4gW05TQXJyYXkg
YXJyYXlXaXRoT2JqZWN0czoKKyAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoRG91Ymxl
OnBvaW50LngoKV0sCisgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aERvdWJsZTpwb2lu
dC55KCldLAorICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhEb3VibGU6cG9pbnQueigp
XSwKKyAgICAgICAgICAgIG5pbF07CisgICAgfQorICAgIGNhc2UgUGxhdGZvcm1DQUFuaW1hdGlv
blJlbW90ZTo6S2V5ZnJhbWVWYWx1ZTo6VHJhbnNmb3JtS2V5VHlwZToKKyAgICAgICAgcmV0dXJu
IFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6a2V5ZnJhbWVWYWx1ZS50cmFuc2Zvcm1W
YWx1ZSgpXTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIGFkZEFuaW1hdGlvblRvTGF5ZXIoQ0FM
YXllciAqbGF5ZXIsIFJlbW90ZUxheWVyVHJlZUhvc3QqIGxheWVyVHJlZUhvc3QsIGNvbnN0IFN0
cmluZyYga2V5LCBjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpQcm9wZXJ0aWVzJiBw
cm9wZXJ0aWVzKQoreworICAgIFJldGFpblB0cjxDQVByb3BlcnR5QW5pbWF0aW9uPiBjYUFuaW1h
dGlvbjsKKyAgICBzd2l0Y2ggKHByb3BlcnRpZXMuYW5pbWF0aW9uVHlwZSkgeworICAgIGNhc2Ug
UGxhdGZvcm1DQUFuaW1hdGlvbjo6QmFzaWM6IHsKKyAgICAgICAgUmV0YWluUHRyPENBQmFzaWNB
bmltYXRpb24+IGJhc2ljQW5pbWF0aW9uOworICAgICAgICBiYXNpY0FuaW1hdGlvbiA9IFtDQUJh
c2ljQW5pbWF0aW9uIGFuaW1hdGlvbldpdGhLZXlQYXRoOnByb3BlcnRpZXMua2V5UGF0aF07Cisg
ICAgICAgIAorICAgICAgICBpZiAocHJvcGVydGllcy5rZXlWYWx1ZXMuc2l6ZSgpID4gMSkgewor
ICAgICAgICAgICAgW2Jhc2ljQW5pbWF0aW9uIHNldEZyb21WYWx1ZTphbmltYXRpb25WYWx1ZUZy
b21LZXlmcmFtZVZhbHVlKHByb3BlcnRpZXMua2V5VmFsdWVzWzBdKV07CisgICAgICAgICAgICBb
YmFzaWNBbmltYXRpb24gc2V0VG9WYWx1ZTphbmltYXRpb25WYWx1ZUZyb21LZXlmcmFtZVZhbHVl
KHByb3BlcnRpZXMua2V5VmFsdWVzWzFdKV07CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
IGlmIChwcm9wZXJ0aWVzLnRpbWluZ0Z1bmN0aW9ucy5zaXplKCkpCisgICAgICAgICAgICBbYmFz
aWNBbmltYXRpb24gc2V0VGltaW5nRnVuY3Rpb246dG9DQU1lZGlhVGltaW5nRnVuY3Rpb24ocHJv
cGVydGllcy50aW1pbmdGdW5jdGlvbnNbMF0uZ2V0KCksIHByb3BlcnRpZXMucmV2ZXJzZVRpbWlu
Z0Z1bmN0aW9ucyldOworICAgICAgICAKKyAgICAgICAgY2FBbmltYXRpb24gPSBiYXNpY0FuaW1h
dGlvbjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgUGxhdGZvcm1DQUFuaW1hdGlv
bjo6S2V5ZnJhbWU6IHsKKyAgICAgICAgUmV0YWluUHRyPENBS2V5ZnJhbWVBbmltYXRpb24+IGtl
eWZyYW1lQW5pbWF0aW9uOworICAgICAgICBrZXlmcmFtZUFuaW1hdGlvbiA9IFtDQUtleWZyYW1l
QW5pbWF0aW9uIGFuaW1hdGlvbldpdGhLZXlQYXRoOnByb3BlcnRpZXMua2V5UGF0aF07CisKKyAg
ICAgICAgaWYgKHByb3BlcnRpZXMua2V5VmFsdWVzLnNpemUoKSkgeworICAgICAgICAgICAgUmV0
YWluUHRyPE5TTXV0YWJsZUFycmF5PiBrZXlmcmFtZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJy
YXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6cHJvcGVydGllcy5rZXlWYWx1ZXMuc2l6ZSgpXSk7
CisgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHZhbHVlIDogcHJvcGVydGllcy5rZXlWYWx1
ZXMpCisgICAgICAgICAgICAgICAgW2tleWZyYW1lcyBhZGRPYmplY3Q6YW5pbWF0aW9uVmFsdWVG
cm9tS2V5ZnJhbWVWYWx1ZSh2YWx1ZSldOworICAgICAgICAgICAgCisgICAgICAgICAgICBba2V5
ZnJhbWVBbmltYXRpb24gc2V0VmFsdWVzOmtleWZyYW1lcy5nZXQoKV07CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAocHJvcGVydGllcy5rZXlUaW1lcy5zaXplKCkpIHsKKyAgICAgICAgICAgIFJl
dGFpblB0cjxOU011dGFibGVBcnJheT4ga2V5VGltZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJy
YXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6cHJvcGVydGllcy5rZXlUaW1lcy5zaXplKCldKTsK
KyAgICAgICAgICAgIGZvciAoYXV0byBrZXlUaW1lIDogcHJvcGVydGllcy5rZXlUaW1lcykKKyAg
ICAgICAgICAgICAgICBba2V5VGltZXMgYWRkT2JqZWN0OltOU051bWJlciBudW1iZXJXaXRoRmxv
YXQ6a2V5VGltZV1dOworICAgICAgICAgICAgCisgICAgICAgICAgICBba2V5ZnJhbWVBbmltYXRp
b24gc2V0S2V5VGltZXM6a2V5VGltZXMuZ2V0KCldOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KHByb3BlcnRpZXMudGltaW5nRnVuY3Rpb25zLnNpemUoKSkgeworICAgICAgICAgICAgUmV0YWlu
UHRyPE5TTXV0YWJsZUFycmF5PiB0aW1pbmdGdW5jdGlvbnMgPSBhZG9wdE5TKFtbTlNNdXRhYmxl
QXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6cHJvcGVydGllcy50aW1pbmdGdW5jdGlvbnMu
c2l6ZSgpXSk7CisgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHRpbWluZ0Z1bmN0aW9uIDog
cHJvcGVydGllcy50aW1pbmdGdW5jdGlvbnMpCisgICAgICAgICAgICAgICAgW3RpbWluZ0Z1bmN0
aW9ucyBhZGRPYmplY3Q6dG9DQU1lZGlhVGltaW5nRnVuY3Rpb24odGltaW5nRnVuY3Rpb24uZ2V0
KCksIHByb3BlcnRpZXMucmV2ZXJzZVRpbWluZ0Z1bmN0aW9ucyldOworICAgICAgICAgICAgCisg
ICAgICAgICAgICBba2V5ZnJhbWVBbmltYXRpb24gc2V0VGltaW5nRnVuY3Rpb25zOnRpbWluZ0Z1
bmN0aW9ucy5nZXQoKV07CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGNhQW5pbWF0aW9u
ID0ga2V5ZnJhbWVBbmltYXRpb247CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICB9CisgICAg
CisgICAgW2NhQW5pbWF0aW9uIHNldEJlZ2luVGltZTpwcm9wZXJ0aWVzLmJlZ2luVGltZV07Cisg
ICAgW2NhQW5pbWF0aW9uIHNldER1cmF0aW9uOnByb3BlcnRpZXMuZHVyYXRpb25dOworICAgIFtj
YUFuaW1hdGlvbiBzZXRUaW1lT2Zmc2V0OnByb3BlcnRpZXMudGltZU9mZnNldF07CisgICAgW2Nh
QW5pbWF0aW9uIHNldFJlcGVhdENvdW50OnByb3BlcnRpZXMucmVwZWF0Q291bnRdOworICAgIFtj
YUFuaW1hdGlvbiBzZXRTcGVlZDpwcm9wZXJ0aWVzLnNwZWVkXTsKKyAgICBbY2FBbmltYXRpb24g
c2V0QXV0b3JldmVyc2VzOnByb3BlcnRpZXMuYXV0b1JldmVyc2VzXTsKKyAgICBbY2FBbmltYXRp
b24gc2V0UmVtb3ZlZE9uQ29tcGxldGlvbjpwcm9wZXJ0aWVzLnJlbW92ZWRPbkNvbXBsZXRpb25d
OworICAgIFtjYUFuaW1hdGlvbiBzZXRBZGRpdGl2ZTpwcm9wZXJ0aWVzLmFkZGl0aXZlXTsKKyAg
ICAKKyAgICBpZiAocHJvcGVydGllcy5maWxsTW9kZSAhPSBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpO
b0ZpbGxNb2RlKQorICAgICAgICBbY2FBbmltYXRpb24gc2V0RmlsbE1vZGU6dG9DQUZpbGxNb2Rl
VHlwZShwcm9wZXJ0aWVzLmZpbGxNb2RlKV07CisKKyAgICBpZiAocHJvcGVydGllcy52YWx1ZUZ1
bmN0aW9uICE9IFBsYXRmb3JtQ0FBbmltYXRpb246Ok5vVmFsdWVGdW5jdGlvbikKKyAgICAgICAg
W2NhQW5pbWF0aW9uIHNldFZhbHVlRnVuY3Rpb246W0NBVmFsdWVGdW5jdGlvbiBmdW5jdGlvbldp
dGhOYW1lOnRvQ0FWYWx1ZUZ1bmN0aW9uVHlwZShwcm9wZXJ0aWVzLnZhbHVlRnVuY3Rpb24pXV07
CisgICAgCisgICAgaWYgKHByb3BlcnRpZXMuaGFzTm9uWmVyb0JlZ2luVGltZSkKKyAgICAgICAg
W2NhQW5pbWF0aW9uLmdldCgpICBzZXRWYWx1ZTpbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVT
XSBmb3JLZXk6V0tOb25aZXJvQmVnaW5UaW1lRmxhZ107CisgICAgCisgICAgaWYgKGxheWVyVHJl
ZUhvc3QpIHsKKyAgICAgICAgR3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIGxheWVySUQg
PSBSZW1vdGVMYXllclRyZWVIb3N0OjpsYXllcklEKGxheWVyKTsKKyAgICAKKyAgICAgICAgUmV0
YWluUHRyPFdLQW5pbWF0aW9uRGVsZWdhdGU+JiBkZWxlZ2F0ZSA9IGxheWVyVHJlZUhvc3QtPmFu
aW1hdGlvbkRlbGVnYXRlcygpLmFkZChsYXllcklELCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7
CisgICAgICAgIGlmICghZGVsZWdhdGUpCisgICAgICAgICAgICBkZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tXS0FuaW1hdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0V2l0aExheWVySUQ6bGF5ZXJJRCBsYXll
clRyZWVIb3N0OmxheWVyVHJlZUhvc3RdKTsKKworICAgICAgICBbY2FBbmltYXRpb24gc2V0RGVs
ZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworICAgIH0KKyAgICAKKyAgICBbbGF5ZXIgYWRkQW5pbWF0
aW9uOmNhQW5pbWF0aW9uLmdldCgpIGZvcktleTprZXldOworfQorCit2b2lkIFBsYXRmb3JtQ0FB
bmltYXRpb25SZW1vdGU6OnVwZGF0ZUxheWVyQW5pbWF0aW9ucyhDQUxheWVyICpsYXllciwgUmVt
b3RlTGF5ZXJUcmVlSG9zdCogbGF5ZXJUcmVlSG9zdCwgY29uc3QgQW5pbWF0aW9uc01hcCYgYW5p
bWF0aW9uc1RvQWRkLCBjb25zdCBIYXNoU2V0PFN0cmluZz4mIGFuaW1hdGlvbnNUb1JlbW92ZSkK
K3sKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisKKyAgICBmb3IgKGNvbnN0IGF1
dG8mIHZhbHVlIDogYW5pbWF0aW9uc1RvUmVtb3ZlKQorICAgICAgICBbbGF5ZXIgcmVtb3ZlQW5p
bWF0aW9uRm9yS2V5OnZhbHVlXTsKKworICAgIGZvciAoY29uc3QgYXV0byYga2V5VmFsdWVQYWly
IDogYW5pbWF0aW9uc1RvQWRkKQorICAgICAgICBhZGRBbmltYXRpb25Ub0xheWVyKGxheWVyLCBs
YXllclRyZWVIb3N0LCBrZXlWYWx1ZVBhaXIua2V5LCBrZXlWYWx1ZVBhaXIudmFsdWUpOworCisg
ICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRm
b3JtQ0FMYXllclJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKaW5kZXggNzY1OTY2NTc1ZTViOTdjYTk3MzZk
ZjgwZmJkYTA3OTU3MWZjYmQzZC4uNGQ0ZjU2ODMwMTFhNDMwNmM2YWUyOTI0NjM5NzQwOTdmNTIx
YjhhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcApAQCAtNDIsNyArNDIsOCBAQAog
I2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLXVz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK25hbWVzcGFjZSBXZWJLaXQgewogCiBQYXNzUmVmUHRy
PFBsYXRmb3JtQ0FMYXllclJlbW90ZT4gUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpjcmVhdGUoTGF5
ZXJUeXBlIGxheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lciwgUmVtb3RlTGF5
ZXJUcmVlQ29udGV4dCogY29udGV4dCkKIHsKQEAgLTEyNCw3ICsxMjUsNyBAQCB2b2lkIFBsYXRm
b3JtQ0FMYXllclJlbW90ZTo6cmVjdXJzaXZlQnVpbGRUcmFuc2FjdGlvbihSZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbgogICAgICAgICB9CiAKICAgICAgICAgaWYgKG1fbGF5ZXJUeXBlID09IExh
eWVyVHlwZUN1c3RvbSkgewotICAgICAgICAgICAgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBs
aWVyOjphcHBseVByb3BlcnRpZXMocGxhdGZvcm1MYXllcigpLCBtX3Byb3BlcnRpZXMsIFJlbW90
ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6UmVsYXRlZExheWVyTWFwKCkpOworICAgICAgICAg
ICAgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjphcHBseVByb3BlcnRpZXMocGxhdGZv
cm1MYXllcigpLCBudWxscHRyLCBtX3Byb3BlcnRpZXMsIFJlbW90ZUxheWVyVHJlZVByb3BlcnR5
QXBwbGllcjo6UmVsYXRlZExheWVyTWFwKCkpOwogICAgICAgICAgICAgbV9wcm9wZXJ0aWVzLmNo
YW5nZWRQcm9wZXJ0aWVzID0gUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246Ok5vQ2hhbmdlOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xNDUsNiArMTQ2LDggQEAgdm9pZCBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlY3Vyc2l2ZUJ1aWxkVHJhbnNhY3Rpb24oUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb24KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFuaW1hdGlv
blN0YXJ0ZWQoQ0ZUaW1lSW50ZXJ2YWwgYmVnaW5UaW1lKQogeworICAgIGlmIChtX293bmVyKQor
ICAgICAgICBtX293bmVyLT5wbGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkKGJlZ2luVGlt
ZSk7CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjplbnN1cmVCYWNraW5nU3RvcmUo
KQpAQCAtMjY3LDE4ICsyNzAsMjIgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFkb3B0
U3VibGF5ZXJzKFBsYXRmb3JtQ0FMYXllciogc291cmNlKQogCiB2b2lkIFBsYXRmb3JtQ0FMYXll
clJlbW90ZTo6YWRkQW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBQbGF0Zm9ybUNB
QW5pbWF0aW9uKiBhbmltYXRpb24pCiB7Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
bV9wcm9wZXJ0aWVzLmFkZGVkQW5pbWF0aW9ucy5zZXQoa2V5LCB0b1BsYXRmb3JtQ0FBbmltYXRp
b25SZW1vdGUoYW5pbWF0aW9uKS0+cHJvcGVydGllcygpKTsKKyAgICBtX3Byb3BlcnRpZXMubm90
ZVByb3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpBbmltYXRpb25z
Q2hhbmdlZCk7CisgICAgCisgICAgbV9jb250ZXh0LT53aWxsU3RhcnRBbmltYXRpb25PbkxheWVy
KHRoaXMpOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6cmVtb3ZlQW5pbWF0aW9u
Rm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KQogewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIC8vIEZJWE1FOiByZW1vdmUgZnJvbSBtX3Byb3BlcnRpZXMuYWRkZWRBbmltYXRpb25zID8K
KyAgICBtX3Byb3BlcnRpZXMua2V5UGF0aHNPZkFuaW1hdGlvbnNUb1JlbW92ZS5hZGQoa2V5KTsK
KyAgICBtX3Byb3BlcnRpZXMubm90ZVByb3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjpBbmltYXRpb25zQ2hhbmdlZCk7CiB9CiAKIFBhc3NSZWZQdHI8UGxhdGZvcm1D
QUFuaW1hdGlvbj4gUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphbmltYXRpb25Gb3JLZXkoY29uc3Qg
U3RyaW5nJiBrZXkpCiB7Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0KKyAgICAvLyBGSVhN
RTogaW1wbGVtZW50LgogICAgIHJldHVybiBudWxscHRyOwogfQogCkBAIC01ODksMyArNTk2LDUg
QEAgdWludDMyX3QgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpob3N0aW5nQ29udGV4dElEKCkKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gMDsKIH0KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tCmluZGV4IDQz
NDI5ZWRlYTcyMGI5YzY0M2Q3YWY3NjBiOTk2NzZmMmJiNDljNWQuLmEyMDJkNjVkZGQ2YWU1ODUy
ZjQyNGVkNjhhMjQ3MzI0ZTE0MGUyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3Rl
Q3VzdG9tLm1tCkBAIC0zNyw3ICszNyw4IEBACiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IHBsYXRmb3JtQ0FMYXll
clBvaW50ZXIgPSBAIldLUGxhdGZvcm1DQUxheWVyIjsKIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1
c3RvbTo6UGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tKFBsYXRmb3JtTGF5ZXIqIGN1c3RvbUxh
eWVyLCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyLCBSZW1vdGVMYXllclRyZWVDb250ZXh0
KiBjb250ZXh0KQpAQCAtODMsMyArODQsNSBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1
c3RvbTo6c2V0TmVlZHNEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCogcmVjdCkKICAgICB9IGVsc2UK
ICAgICAgICAgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXROZWVkc0Rpc3BsYXkocmVjdCk7CiB9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGVUaWxlZEJhY2tpbmcuY3BwCmluZGV4IGZmYTNjNWI1MTBiNDE4NzJiM2Q1YzMxYjQ3MWVm
NDBjZjQzMzEwYzEuLjlmNDBjNWM0ZmRjY2Y0ZWIzNmFhN2NiYzg2YjMzOGE0ZDc1OGVhMzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1D
QUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5jcHAKQEAg
LTMzLDcgKzMzLDggQEAKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7Ci11c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCituYW1lc3BhY2UgV2ViS2l0
IHsKIAogUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nOjpQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGVUaWxlZEJhY2tpbmcoTGF5ZXJUeXBlIGxheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xp
ZW50KiBvd25lciwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCogY29udGV4dCkKICAgICA6IFBsYXRm
b3JtQ0FMYXllclJlbW90ZShsYXllclR5cGUsIG93bmVyLCBjb250ZXh0KQpAQCAtMTAyLDMgKzEw
Myw1IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nOjpzZXRCb3JkZXJD
b2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sCiB7CiAgICAgbV90aWxlQ29udHJvbGxlci0+
c2V0VGlsZURlYnVnQm9yZGVyQ29sb3IoY29sb3IpOwogfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVt
b3RlTGF5ZXJUcmVlQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0LmgKaW5kZXggYWEwMTBlNTAyZmUxNjZkYWFiZWRi
ZWU3MGMyNDZmMWNjZmY1Mzc0Yi4uOWFjNDVmZjk3ZDM1MmRjNWYzZWVhODJiNGIwZTRlNWE0NTM4
ZjAxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9S
ZW1vdGVMYXllclRyZWVDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0LmgKQEAgLTU1LDYgKzU1LDExIEBAIHB1
YmxpYzoKICAgICB2b2lkIGZsdXNoT3V0T2ZUcmVlTGF5ZXJzKCk7CiAgICAgdm9pZCBidWlsZFRy
YW5zYWN0aW9uKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiwgV2ViQ29yZTo6UGxhdGZvcm1D
QUxheWVyJiByb290TGF5ZXIpOwogCisgICAgLy8gRnJvbSB0aGUgVUkgcHJvY2VzcworICAgIHZv
aWQgYW5pbWF0aW9uRGlkU3RhcnQoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXll
cklELCBkb3VibGUgc3RhcnRUaW1lKTsKKworICAgIHZvaWQgd2lsbFN0YXJ0QW5pbWF0aW9uT25M
YXllcihQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUqKTsKKwogcHJpdmF0ZToKICAgICAvLyBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyRmFjdG9yeQogICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NM
YXllckNsaWVudCopIG92ZXJyaWRlOwpAQCAtNjYsNiArNzEsOCBAQCBwcml2YXRlOgogCiAgICAg
VmVjdG9yPFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllckNyZWF0aW9uUHJvcGVydGll
cz4gbV9jcmVhdGVkTGF5ZXJzOwogICAgIFZlY3RvcjxXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQ
bGF0Zm9ybUxheWVySUQ+IG1fZGVzdHJveWVkTGF5ZXJzOworICAgIAorICAgIEhhc2hNYXA8V2Vi
Q29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklELCBQbGF0Zm9ybUNBTGF5ZXJSZW1v
dGUqPiBtX2xheWVyc0F3YWl0aW5nQW5pbWF0aW9uU3RhcnQ7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQppbmRleCBkODgwNjM1ZTJmMzcy
NzI3MmRiNTlhZGZlYTM4MmU2YTY5YTkwZGYyLi5iMzgyZWJjMmI0ZTExMmM2ZjUxNTgwYmM0Y2Qw
MGIwYzcwMDM4MDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCkBAIC02NSw2ICs2
NSw4IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6bGF5ZXJXaWxsQmVEZXN0cm95ZWQo
UGxhdGZvcm1DQUxheWVyUmVtb3RlKiBsYXllcikKIHsKICAgICBBU1NFUlQoIW1fZGVzdHJveWVk
TGF5ZXJzLmNvbnRhaW5zKGxheWVyLT5sYXllcklEKCkpKTsKICAgICBtX2Rlc3Ryb3llZExheWVy
cy5hcHBlbmQobGF5ZXItPmxheWVySUQoKSk7CisgICAgCisgICAgbV9sYXllcnNBd2FpdGluZ0Fu
aW1hdGlvblN0YXJ0LnJlbW92ZShsYXllci0+bGF5ZXJJRCgpKTsKIH0KIAogdm9pZCBSZW1vdGVM
YXllclRyZWVDb250ZXh0OjpvdXRPZlRyZWVMYXllcldhc0FkZGVkKEdyYXBoaWNzTGF5ZXIqIGxh
eWVyKQpAQCAtMTAyLDQgKzEwNCwxNiBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmJ1
aWxkVHJhbnNhY3Rpb24oUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mIHRyYW5zYQogICAgIHRy
YW5zYWN0aW9uLnNldERlc3Ryb3llZExheWVySURzKHN0ZDo6bW92ZShtX2Rlc3Ryb3llZExheWVy
cykpOwogfQogCit2b2lkIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OndpbGxTdGFydEFuaW1hdGlv
bk9uTGF5ZXIoUGxhdGZvcm1DQUxheWVyUmVtb3RlKiBsYXllcikKK3sKKyAgICBtX2xheWVyc0F3
YWl0aW5nQW5pbWF0aW9uU3RhcnQuYWRkKGxheWVyLT5sYXllcklEKCksIGxheWVyKTsKK30KKwor
dm9pZCBSZW1vdGVMYXllclRyZWVDb250ZXh0OjphbmltYXRpb25EaWRTdGFydChXZWJDb3JlOjpH
cmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgbGF5ZXJJRCwgZG91YmxlIHN0YXJ0VGltZSkK
K3sKKyAgICBhdXRvIGl0ID0gbV9sYXllcnNBd2FpdGluZ0FuaW1hdGlvblN0YXJ0LmZpbmQobGF5
ZXJJRCk7CisgICAgaWYgKGl0ICE9IG1fbGF5ZXJzQXdhaXRpbmdBbmltYXRpb25TdGFydC5lbmQo
KSkKKyAgICAgICAgaXQtPnZhbHVlLT5hbmltYXRpb25TdGFydGVkKHN0YXJ0VGltZSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5o
CmluZGV4IDRlNzIyYzBlNjc2NjIyYTkzZmEzNjk1MDU0MzY3OWNjNTA4NGM0NzUuLjIwNjY4M2I1
NzdmYzIyMzdjMDVkNmZiZjJjYmNhNjRiOWQ2ZTA3NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhLmgKQEAgLTc1LDYgKzc1LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgc2V0RXhwb3NlZFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgZXhwb3NlZFJlY3QoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBtX3Njcm9sbGVkRXhwb3NlZFJlY3Q7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBh
Y2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0YXJ0KHVpbnQ2NF90IGxheWVySUQsIGRvdWJsZSBzdGFy
dFRpbWUpIG92ZXJyaWRlOworCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwgdm9pZCBz
ZXRFeHBvc2VkQ29udGVudFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikgb3ZlcnJpZGU7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCmluZGV4IDExNjhh
ZWRjOGFiMjEwMDc3NmE5YTI0OWUyN2I1NmNjZDg3OGRhNjQuLjI1MWI1Zjc2MTZjNWRiZjg2OTYx
N2Y3MjQ0NjhmMzc0NTUwYjZkNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YS5tbQpAQCAtMjQwLDYgKzI0MCwxMSBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
Ojpmb3JjZVJlcGFpbnQoKQogICAgIGZsdXNoTGF5ZXJzKCk7CiB9CiAKK3ZvaWQgUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWE6OmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQodWludDY0X3Qg
bGF5ZXJJRCwgZG91YmxlIHN0YXJ0VGltZSkKK3sKKyAgICBtX3JlbW90ZUxheWVyVHJlZUNvbnRl
eHQtPmFuaW1hdGlvbkRpZFN0YXJ0KGxheWVySUQsIHN0YXJ0VGltZSk7Cit9CisKIHZvaWQgUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNldEV4cG9zZWRSZWN0KGNvbnN0IEZsb2F0UmVjdCYg
ZXhwb3NlZFJlY3QpCiB7CiAgICAgbV9leHBvc2VkUmVjdCA9IGV4cG9zZWRSZWN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KaW5kZXggM2JhNmNmZGJiMzZiYzQx
MTdlMzY4M2U4OTViYzIyNzA1NGFiOGNlOC4uNjAwZWVlMzA5ZDc1MmE4MDA3NTRlMDVmNDBlNzNh
NzM4M2NhZTdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1t
CkBAIC00NCw2ICs0NCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXJDQS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9NYWluRnJhbWUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgor
I2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1JlbmRlckxheWVyQmFja2luZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJMYXllckNv
bXBvc2l0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyVmlldy5oPgpAQCAtNzYwLDcgKzc2
MSw3IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmNvbW1pdFRyYW5zaWVu
dFpvb20oZG91YmxlIHNjYWxlLCBGbG9hdFBvaW50CiAgICAgdHJhbnNmb3JtLnNjYWxlKHNjYWxl
KTsKIAogICAgIFJldGFpblB0cjxDQUJhc2ljQW5pbWF0aW9uPiByZW5kZXJWaWV3QW5pbWF0aW9u
Q0EgPSB0cmFuc2llbnRab29tU25hcEFuaW1hdGlvbkZvcktleVBhdGgoInRyYW5zZm9ybSIpOwot
ICAgIFJlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiByZW5kZXJWaWV3QW5pbWF0aW9uID0gUGxh
dGZvcm1DQUFuaW1hdGlvbjo6Y3JlYXRlKHJlbmRlclZpZXdBbmltYXRpb25DQS5nZXQoKSk7Cisg
ICAgUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IHJlbmRlclZpZXdBbmltYXRpb24gPSBQbGF0
Zm9ybUNBQW5pbWF0aW9uTWFjOjpjcmVhdGUocmVuZGVyVmlld0FuaW1hdGlvbkNBLmdldCgpKTsK
ICAgICByZW5kZXJWaWV3QW5pbWF0aW9uLT5zZXRUb1ZhbHVlKHRyYW5zZm9ybSk7CiAKICAgICBS
ZXRhaW5QdHI8Q0FMYXllcj4gc2hhZG93TGF5ZXI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228195</attachid>
            <date>2014-03-31 13:01:01 -0700</date>
            <delta_ts>2014-03-31 14:03:02 -0700</delta_ts>
            <desc>For Win EWS</desc>
            <filename>bug-130946-20140331130152.patch</filename>
            <type>text/plain</type>
            <size>163586</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2NTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTA4NmUzZDgyYmYzODUx
MGQ2MmQyMTFlNDJhNzc1ZDYyMzRiZDRkNS4uMjVmN2Q4YWIzNjIxMTlmODJjNWUwOGE5MGMwMGU1
OGIwOGIyOGQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE0LTAzLTMxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtVSS1zaWRlIGNv
bXBvc2l0aW5nXSBQcm94eSBhbmltYXRpb25zIHRvIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA5NDYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRvIHByb3h5IENB
IGFuaW1hdGlvbnMsIG1ha2UgUGxhdGZvcm1DQUFuaW1hdGlvbiBhIHB1cmUgdmlydHVhbCBiYXNl
IGNsYXNzCisgICAgICAgIGFuZCBzdWJjbGFzcyBmb3IgTWFjLCBXaW5kb3dzLCBhbmQgUmVtb3Rl
IChqdXN0IGxpa2UgUGxhdGZvcm1DQUxheWVyKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBjb2Rp
bmcgc3VwcG9ydCBmb3IgVGltaW5nRnVuY3Rpb25zLgorICAgICAgICAKKyAgICAgICAgRG8gc29t
ZSBtaW5vciAjaW5jbHVkZSB0aWR5dXAuCisgICAgICAgIAorICAgICAgICBNaW5vciByZWZhY3Rv
ciBpbiBHcmFwaGljc0xheWVyQ0EgdG8gc2hhcmUgc29tZSBhbmltYXRpb25zIGNvZGUuCisKKyAg
ICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9u
Lmg6IEFkZCBzZXR0ZXJzIG5lZWQgZm9yIGVuY29kZS9kZWNvZGUuCisgICAgICAgIChXZWJDb3Jl
OjpDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uOjpzZXRWYWx1ZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbjo6c2V0VGltaW5nRnVuY3Rpb25QcmVzZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6U3RlcHNUaW1pbmdGdW5jdGlvbjo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlN0ZXBzVGltaW5nRnVuY3Rpb246OnNldE51bWJlck9mU3RlcHMpOgorICAgICAg
ICAoV2ViQ29yZTo6U3RlcHNUaW1pbmdGdW5jdGlvbjo6c2V0U3RlcEF0U3RhcnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZVBsYXRmb3JtQ0FBbmltYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjphbmltYXRpb25DYW5CZUFjY2VsZXJhdGVk
KTogTWlub3IgcmVmYWN0b3Igc28gd2UgY2FuIHNoYXJlCisgICAgICAgIGNvZGUgd2l0aCBHcmFw
aGljc0xheWVyQ0FSZW1vdGUuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmFk
ZEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUJh
c2ljQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3NSZWZQdHI8UGxhdGZvcm1DQUFu
aW1hdGlvbj5HcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUtleWZyYW1lQW5pbWF0aW9uKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmg6CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uOjp+UGxhdGZvcm1DQUFuaW1hdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uOjppc1BsYXRmb3JtQ0FBbmltYXRpb25NYWMp
OgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1DQUFuaW1hdGlvbjo6aXNQbGF0Zm9ybUNBQW5p
bWF0aW9uV2luKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb246OmlzUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
Q0FBbmltYXRpb246OnNldFR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1Bs
YXRmb3JtQ0FMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0
Zm9ybUNBQW5pbWF0aW9uTWFjLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW06CisgICAgICAgIChQbGF0Zm9ybUNB
TGF5ZXJNYWM6OmFkZEFuaW1hdGlvbkZvcktleSk6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJN
YWM6OmFuaW1hdGlvbkZvcktleSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFj
L1RpbGVDb250cm9sbGVyLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9Q
bGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5oOiBBZGRlZC4KKwogMjAxNC0wMy0zMSAgQmV0
aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmFkaW8gYnV0dG9ucyBhbmQg
Y2hlY2tib3hlcyBzaG91bGQgc2hhcmUgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDhiMGEzMTFhZDkwOTIz
M2YzYTM0ZGY0MGYyM2VlYzljNjU2YWJmOTkuLjhmNDU3YmJhZGYxMmQ2ZWRjMzNkMTYxMjg2NzBh
YjIyNTZiMDEyZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDIgQEAKKzIwMTQtMDMtMzEgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgW1VJLXNpZGUg
Y29tcG9zaXRpbmddIFByb3h5IGFuaW1hdGlvbnMgdG8gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDk0NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgQWRkIGVuY29k
aW5nL2RlY29kaW5nIG9mIFRpbWluZ0Z1bmN0aW9ucy4gQWRkIGVuY29kaW5nIHN1cHBvcnQKKyAg
ICAgICAgZm9yIEhhc2hTZXQuCisgICAgICAgIAorICAgICAgICBBZGQgUGxhdGZvcm1DQUFuaW1h
dGlvblJlbW90ZSBhbmQgaGF2ZSBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUgYWxsb3cKKyAgICAgICAg
YW5pbWF0aW9ucyBub3cuIFBsYXRmb3JtQ0FMYXllclJlbW90ZSdzIHByb3BlcnRpZXMgYXJlIGRl
ZmluZWQgaW4gdGhlIGNsYXNzLAorICAgICAgICBhcyBpcyB0aGUgZW5jb2RpbmcvZGVjb2Rpbmcg
KG11Y2ggY2xlYW5lciB0aGFuIGhhdmluZyB0aGVtIGluIHRoZSB0cmFuc2FjdGlvbgorICAgICAg
ICBjbGFzcyBJIHRoaW5rKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBzdXBwb3J0IHRoZSAiYW5p
bWF0aW9uRGlkU3RhcnQiIGNhbGxiYWNrIGFuZCBzZW5kaW5nIHRoaXMgYmFjayB0byB0aGUKKyAg
ICAgICAgd2ViIHByb2Nlc3MuIFRoaXMgaW52b2x2ZXMgYSBIYXNoTWFwIG9mIGxheWVySUQtPldL
QW5pbWF0aW9uRGVsZWdhdGUgc3RvcmVkCisgICAgICAgIG9uIHRoZSBSZW1vdGVMYXllclRyZWVI
b3N0LCBhbmQgYSBtZXNzYWdlIHNlbmQgdmlhIHRoZSBEcmF3aW5nQXJlYS4gT24gdGhlCisgICAg
ICAgIG90aGVyIHNpZGUsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQgc3RvcmVzIGEgSGFzaE1hcCBv
ZiBsYXllcklELT5QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUqCisgICAgICAgIGZvciBsYXllcnMgd2hp
Y2ggaGF2ZSBqdXN0IHN0YXJ0ZWQgYW5pbWF0aW9ucywgd2hpY2ggaXMgdXNlZCB0byBnZXQgdGhl
CisgICAgICAgIFBsYXRmb3JtQ0FMYXllciogdG8gY2FsbCBhbmltYXRpb25EaWRTdGFydCgpIG9u
LgorICAgICAgICAKKyAgICAgICAgVGhpcyByZXF1aXJlcyB0aGF0IHRoZSBSZW1vdGVMYXllclRy
ZWVIb3N0KiBiZSBwYXNzZWQgZG93biBpbnRvIHByb3BlcnR5IGFwcGxpY2F0aW9uLAorICAgICAg
ICBhbmQgdGhhdCB0aGUgUmVtb3RlTGF5ZXJUcmVlSG9zdCBoYXZlIGEgcmVmZXJlbmNlIHRvIHRo
ZSBkcmF3aW5nIGFyZWEuCisgICAgICAgIAorICAgICAgICBUbyBldmVyeSBDQUxheWVyIGluIHRo
ZSBVSSBwcm9jZXNzIHdlIC1zZXRWYWx1ZTpmb3JLZXk6IHRvIHRyYWNrIHRoZSBQbGF0Zm9ybUxh
eWVySUQsCisgICAgICAgIHNvIHdlIGNhbiBnZXQgYmFjayB0byBpdCBpbiBvcmRlciB0byBkaXNw
YXRjaCAiYW5pbWF0aW9uRGlkU3RhcnQiLgorICAgICAgICAKKyAgICAgICAgUmVwbGFjZSBzb21l
ICJ1c2luZyBuYW1lc3BhY2UgV2ViS2l0IiB3aXRoICJuYW1lc3BhY2UgV2ViS2l0IHsgfSIuCisK
KyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBTaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxMaW5lYXJUaW1pbmdGdW5jdGlvbj46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8TGluZWFyVGltaW5nRnVuY3Rpb24+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24+OjplbmNvZGUpOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24+OjpkZWNvZGUpOgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFN0ZXBzVGltaW5nRnVuY3Rpb24+OjplbmNvZGUp
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFN0ZXBzVGltaW5nRnVuY3Rpb24+OjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAg
KiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tOgorICAgICAgICAqIFNoYXJl
ZC9tYWMvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLmg6CisgICAgICAgICogU2hhcmVk
L21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIubW06CisgICAgICAgIChXZWJLaXQ6
OmFwcGx5UHJvcGVydGllc1RvTGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRy
ZWVQcm9wZXJ0eUFwcGxpZXI6OmFwcGx5UHJvcGVydGllcyk6CisgICAgICAgICogU2hhcmVkL21h
Yy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvUmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OkxheWVyUHJvcGVydGllcyk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6
OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpM
YXllclByb3BlcnRpZXM6OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OmR1bXBDaGFuZ2VkTGF5
ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1JlbW90ZUxheWVyVHJlZUhvc3RJT1MubW06
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OmxheWVySUQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjpjcmVhdGVMYXllcik6CisgICAgICAgICog
VUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eTo6YWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnNob3dEZWJ1Z0luZGlj
YXRvcik6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lmg6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OmFuaW1hdGlvbkRlbGVnYXRlcyk6
CisgICAgICAgICogVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1tOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjpSZW1vdGVMYXllclRyZWVIb3N0KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6dXBkYXRlTGF5ZXJUcmVlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6bGF5ZXJXaWxsQmVSZW1vdmVkKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6YW5pbWF0aW9uRGlkU3RhcnQp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjpsYXllcklEKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlTGF5ZXIpOgorICAgICAgICAq
IFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OmFj
Y2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9EcmF3aW5nQXJlYS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdyYXBoaWNz
TGF5ZXJDQVJlbW90ZTo6Y3JlYXRlUGxhdGZvcm1DQUFuaW1hdGlvbik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaDogQWRkZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVt
b3RlLm1tOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90
ZTo6cmVjdXJzaXZlQnVpbGRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3Jt
Q0FMYXllclJlbW90ZTo6YW5pbWF0aW9uU3RhcnRlZCk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRm
b3JtQ0FMYXllclJlbW90ZTo6YWRkQW5pbWF0aW9uRm9yS2V5KToKKyAgICAgICAgKFdlYktpdDo6
UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZW1vdmVBbmltYXRpb25Gb3JLZXkpOgorICAgICAgICAo
V2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFuaW1hdGlvbkZvcktleSk6CisgICAgICAg
IChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlY3Vyc2l2ZUJ1aWxkVHJhbnNhY3Rpb24pOiBEZWxl
dGVkLgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphZGRBbmltYXRpb25Gb3JLZXkp
OiBEZWxldGVkLgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZW1vdmVBbmltYXRp
b25Gb3JLZXkpOiBEZWxldGVkLgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphbmlt
YXRpb25Gb3JLZXkpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW06Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmxheWVyV2lsbEJlRGVzdHJv
eWVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6d2lsbFN0YXJ0
QW5pbWF0aW9uT25MYXllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUNvbnRl
eHQ6OmFuaW1hdGlvbkRpZFN0YXJ0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWEubW06CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjpjb21taXRUcmFuc2llbnRab29tKToKKwogMjAxNC0wMy0zMSAgUGV0ZXIgTW9sbmFyICA8
cG1vbG5hci51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgogCiAgICAgICAgIEJ1aWxkZml4
IGFmdGVyIHIxNjY0OTcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
biBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDQ5ZjFmMWRjMTk5ZDBjOTE2
MWM4YWU3ZmIwNjExMjI3NDY2ZGJlZWUuLmVkYjgyMjU3MDg5NjMwZmQxOGJmZGU1ZjJkNjc2ZDcz
M2ExOTVjZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC03MTYsNiArNzE2LDcgQEAgX19aTjdX
ZWJDb3JlMTZuZXh0TGluZVBvc2l0aW9uRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25FaU5TXzEyRWRp
dGFibGVUeXBlRQogX19aTjdXZWJDb3JlMTZzY3JpcHROYW1lVG9Db2RlRVJLTjNXVEY2U3RyaW5n
RQogX19aTjdXZWJDb3JlMTZzdGFydE9mUGFyYWdyYXBoRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25F
TlNfMjdFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGVFCiBfX1pON1dlYkNvcmUxNnRocmVhZEds
b2JhbERhdGFFdgorX19aTjdXZWJDb3JlMTZ0b0NBRmlsbE1vZGVUeXBlRU5TXzE5UGxhdGZvcm1D
QUFuaW1hdGlvbjEyRmlsbE1vZGVUeXBlRQogX19aTjdXZWJDb3JlMTdDcmVkZW50aWFsU3RvcmFn
ZTI0Z2V0RnJvbVBlcnNpc3RlbnRTdG9yYWdlRVJLTlNfMTVQcm90ZWN0aW9uU3BhY2VFCiBfX1pO
N1dlYkNvcmUxN0NyZWRlbnRpYWxTdG9yYWdlM2dldEVSS05TXzE1UHJvdGVjdGlvblNwYWNlRQog
X19aTjdXZWJDb3JlMTdET01JbXBsZW1lbnRhdGlvbjEzaXNYTUxNSU1FVHlwZUVSS04zV1RGNlN0
cmluZ0UKQEAgLTc5MSw5ICs3OTIsNiBAQCBfX1pON1dlYkNvcmUxOU1lZGlhU2Vzc2lvbk1hbmFn
ZXIxN2JlZ2luSW50ZXJydXB0aW9uRXYKIF9fWk43V2ViQ29yZTE5TWVkaWFTZXNzaW9uTWFuYWdl
cjE3cmVtb3ZlUmVzdHJpY3Rpb25FTlNfMTJNZWRpYVNlc3Npb245TWVkaWFUeXBlRWoKIF9fWk43
V2ViQ29yZTE5TWVkaWFTZXNzaW9uTWFuYWdlcjMwZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21t
YW5kRU5TXzEyTWVkaWFTZXNzaW9uMjRSZW1vdGVDb250cm9sQ29tbWFuZFR5cGVFCiBfX1pON1dl
YkNvcmUxOU1lZGlhU2Vzc2lvbk1hbmFnZXI5YWRkQ2xpZW50RVBOU18yNU1lZGlhU2Vzc2lvbk1h
bmFnZXJDbGllbnRFCi1fX1pON1dlYkNvcmUxOVBsYXRmb3JtQ0FBbmltYXRpb24xMHNldFRvVmFs
dWVFUktOU18yMFRyYW5zZm9ybWF0aW9uTWF0cml4RQotX19aTjdXZWJDb3JlMTlQbGF0Zm9ybUNB
QW5pbWF0aW9uNmNyZWF0ZUVQMTlDQVByb3BlcnR5QW5pbWF0aW9uCi1fX1pON1dlYkNvcmUxOVBs
YXRmb3JtQ0FBbmltYXRpb25EMUV2CiBfX1pON1dlYkNvcmUxOVJlc291cmNlUmVxdWVzdEJhc2Ux
MXNldEhUVFBCb2R5RU4zV1RGMTBQYXNzUmVmUHRySU5TXzhGb3JtRGF0YUVFRQogX19aTjdXZWJD
b3JlMTlSZXNvdXJjZVJlcXVlc3RCYXNlMTNzZXRIVFRQTWV0aG9kRVJLTjNXVEY2U3RyaW5nRQog
X19aTjdXZWJDb3JlMTlSZXNvdXJjZVJlcXVlc3RCYXNlMThzZXRIVFRQSGVhZGVyRmllbGRFUEtj
UktOM1dURjZTdHJpbmdFCkBAIC05MDAsMTAgKzg5OCwxMiBAQCBfX1pON1dlYkNvcmUyMW1lbW9y
eVByZXNzdXJlSGFuZGxlckV2CiBfX1pON1dlYkNvcmUyMXJlc291cmNlTG9hZFNjaGVkdWxlckV2
CiBfX1pON1dlYkNvcmUyMXNldEdsb2JhbEljb25EYXRhYmFzZUVQTlNfMTZJY29uRGF0YWJhc2VC
YXNlRQogX19aTjdXZWJDb3JlMjFzZXRQbGF0Zm9ybVN0cmF0ZWdpZXNFUE5TXzE4UGxhdGZvcm1T
dHJhdGVnaWVzRQorX19aTjdXZWJDb3JlMjF0b0NBVmFsdWVGdW5jdGlvblR5cGVFTlNfMTlQbGF0
Zm9ybUNBQW5pbWF0aW9uMTdWYWx1ZUZ1bmN0aW9uVHlwZUUKIF9fWk43V2ViQ29yZTIySFRNTFBs
dWdJbkltYWdlRWxlbWVudDI0cmVzdGFydFNuYXBzaG90dGVkUGx1Z0luRXYKIF9fWk43V2ViQ29y
ZTIySFRNTFBsdWdJbkltYWdlRWxlbWVudDI5c2V0SXNQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5F
YgogX19aTjdXZWJDb3JlMjJNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzMjVlbnN1cmVDU1NTdHlsZURl
Y2xhcmF0aW9uRXYKIF9fWk43V2ViQ29yZTIyTXV0YWJsZVN0eWxlUHJvcGVydGllc0QxRXYKK19f
Wk43V2ViQ29yZTIyUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzZjcmVhdGVFUDE5Q0FQcm9wZXJ0eUFu
aW1hdGlvbgogX19aTjdXZWJDb3JlMjJSdW50aW1lRW5hYmxlZEZlYXR1cmVzMTRzaGFyZWRGZWF0
dXJlc0V2CiBfX1pON1dlYkNvcmUyMlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQyNmNhblN1c3BlbmRB
Y3RpdmVET01PYmplY3RzRXYKIF9fWk43V2ViQ29yZTIyU2NyaXB0RXhlY3V0aW9uQ29udGV4dDJ2
bUV2CkBAIC05MzksNiArOTM5LDcgQEAgX19aTjdXZWJDb3JlMjNkZWNvZGVIb3N0TmFtZVdpdGhS
YW5nZUVQOE5TU3RyaW5nOF9OU1JhbmdlCiBfX1pON1dlYkNvcmUyM2VuY29kZUhvc3ROYW1lV2l0
aFJhbmdlRVA4TlNTdHJpbmc4X05TUmFuZ2UKIF9fWk43V2ViQ29yZTIzZ2V0RmlsZU1vZGlmaWNh
dGlvblRpbWVFUktOM1dURjZTdHJpbmdFUmwKIF9fWk43V2ViQ29yZTIzZ2V0SG9zdG5hbWVzV2l0
aENvb2tpZXNFUktOU18yMU5ldHdvcmtTdG9yYWdlU2Vzc2lvbkVSTjNXVEY3SGFzaFNldElOUzNf
NlN0cmluZ0VOUzNfMTBTdHJpbmdIYXNoRU5TM18xMEhhc2hUcmFpdHNJUzVfRUVFRQorX19aTjdX
ZWJDb3JlMjN0b0NBTWVkaWFUaW1pbmdGdW5jdGlvbkVQS05TXzE0VGltaW5nRnVuY3Rpb25FYgog
X19aTjdXZWJDb3JlMjRDYWNoZWRSZXNvdXJjZUhhbmRsZUJhc2UxMXNldFJlc291cmNlRVBOU18x
NENhY2hlZFJlc291cmNlRQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIx
MG1hcmtlcnNGb3JFUE5TXzROb2RlRU5TXzE0RG9jdW1lbnRNYXJrZXIxMU1hcmtlclR5cGVzRQog
X19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIxM3JlbW92ZU1hcmtlcnNFTlNf
MTREb2N1bWVudE1hcmtlcjExTWFya2VyVHlwZXNFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCAxNTY2MGJlNWQwMjc2ODJlYWJmYTczY2Y2
ZWM0NjAzYjdhYmJmM2UyLi5kMGY1ZWE4MzllMDM5YzhmNzFiYTI1MDQwZDA1MTU4MGQ1ZGVlZWI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oK
QEAgLTE5MTUyLDYgKzE5MTUyLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRm
b3JtXGdyYXBoaWNzXGF2Zm91bmRhdGlvblxJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xjYWlyb1xUaWxl
Q2Fpcm8uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNz
XGNhXFBsYXRmb3JtQ0FGaWx0ZXJzLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxw
bGF0Zm9ybVxncmFwaGljc1xjYVx3aW5cUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fcd2luXFBsYXRmb3Jt
Q0FMYXllcldpbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3Jh
cGhpY3NcR0xDb250ZXh0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVxncmFwaGljc1xHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCIgLz4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhNTE2MzM5YzIx
NTY4OGU5M2JiYzA5ZTRjOTg4YTA0ZGZlMGI1MzVjLi45NmExNGY3NzZlN2Q5YzRjNWJlYTAzOWM3
M2RiZjYyZmJlNDJiOWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MDQsNiArNTA0LDcgQEAKIAkJMEY1ODBGQUYxNDk4MDBE
NDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1ODBGQUUxNDk4MDBENDAwRkI1QkQ4IC8qIEFuaW1h
dGlvblV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTBGNUI3QTU0MTBGNjVEN0EwMDM3NjMwMiAvKiBSZW5kZXJFbWJlZGRlZE9iamVj
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVC
N0E1MjEwRjY1RDdBMDAzNzYzMDIgLyogUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwICovOyB9Owog
CQkwRjVCN0E1NTEwRjY1RDdBMDAzNzYzMDIgLyogUmVuZGVyRW1iZWRkZWRPYmplY3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUI3QTUzMTBGNjVE
N0EwMDM3NjMwMiAvKiBSZW5kZXJFbWJlZGRlZE9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNUUyMDA2MThFNzcxRkMwMDNFQzNFNSAv
KiBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjVFMjAwNTE4RTc3MUZDMDAzRUMzRTUgLyogUGxhdGZvcm1DQUFu
aW1hdGlvbk1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTBGNjA1QUVDMTVGOTQ4NDgwMDRERjBDMCAvKiBTY3JvbGxpbmdDb25zdHJhaW50cy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjYwNUFF
QTE1Rjk0ODQ4MDA0REYwQzAgLyogU2Nyb2xsaW5nQ29uc3RyYWludHMuY3BwICovOyB9OwogCQkw
RjYwNUFFRDE1Rjk0ODQ4MDA0REYwQzAgLyogU2Nyb2xsaW5nQ29uc3RyYWludHMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNjA1QUVCMTVGOTQ4NDgw
MDRERjBDMCAvKiBTY3JvbGxpbmdDb25zdHJhaW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNjM4M0REMTg2MTVCMjkwMDNFNURCNSAvKiBU
aHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY2MzgzREIxODYxNUIyOTAwM0U1REI1IC8qIFRocmVhZGVkU2Nyb2xs
aW5nVHJlZS5jcHAgKi87IH07CkBAIC03MzI0LDYgKzczMjUsNyBAQAogCQkwRjU4MEZBRTE0OTgw
MEQ0MDBGQjVCRDggLyogQW5pbWF0aW9uVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEFuaW1hdGlvblV0aWxpdGllcy5oOyBwYXRoID0gYW5pbWF0aW9uL0FuaW1h
dGlvblV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVCN0E1MjEw
RjY1RDdBMDAzNzYzMDIgLyogUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVCN0E1MzEwRjY1RDdBMDAzNzYzMDIgLyogUmVuZGVy
RW1iZWRkZWRPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVy
RW1iZWRkZWRPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY1RTIwMDUx
OEU3NzFGQzAwM0VDM0U1IC8qIFBsYXRmb3JtQ0FBbmltYXRpb25NYWMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5oOyBwYXRoID0gY2Ev
bWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY2MDVBRUExNUY5NDg0ODAwNERGMEMwIC8qIFNjcm9sbGluZ0NvbnN0cmFpbnRzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbGluZ0NvbnN0cmFpbnRz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2MDVBRUIxNUY5NDg0ODAwNERG
MEMwIC8qIFNjcm9sbGluZ0NvbnN0cmFpbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNjcm9sbGluZ0NvbnN0cmFpbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGNjM4M0RCMTg2MTVCMjkwMDNFNURCNSAvKiBUaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGhyZWFkZWRTY3JvbGxpbmdU
cmVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NTkzLDYgKzE1NTk1LDcg
QEAKIAkJCQkyOTE3QjU2NTE0NzM0OTk1MDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlck1h
Yy5jcHAgKi8sCiAJCQkJOTNGNzJBRjExNjY2RURGQzAwMkEwMkJEIC8qIExheWVyUG9vbC5oICov
LAogCQkJCTkzRjcyQUYyMTY2NkVERkMwMDJBMDJCRCAvKiBMYXllclBvb2wubW0gKi8sCisJCQkJ
MEY1RTIwMDUxOEU3NzFGQzAwM0VDM0U1IC8qIFBsYXRmb3JtQ0FBbmltYXRpb25NYWMuaCAqLywK
IAkJCQk0OTU4NzgxRjEyQTU3RERGMDA3MjM4QUMgLyogUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5t
bSAqLywKIAkJCQlENjZCMkQ1QjE4NjgzMDA1MDA3M0M0REQgLyogUGxhdGZvcm1DQUZpbHRlcnNN
YWMuaCAqLywKIAkJCQkwRjEzMTYzRjE2RUQwQ0RFMDAzNUNDMDQgLyogUGxhdGZvcm1DQUZpbHRl
cnNNYWMubW0gKi8sCkBAIC0yNDM4Miw2ICsyNDM4NSw3IEBACiAJCQkJMUE4NUIxOTAwQTFCMThB
MjAwRDhDODdDIC8qIEpTSFRNTEh0bWxFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQ5
MThDOTBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1MSUZyYW1lRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUFFMkFBOTgwQTFDREQyRDAwQjQyQjI1IC8qIEpTSFRNTEltYWdlRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEY1RTIwMDYxOEU3NzFGQzAwM0VDM0U1IC8qIFBsYXRmb3Jt
Q0FBbmltYXRpb25NYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU3RTk3MEExQTgzRTMwMDdG
QjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQUQxNDIz
MTI5NUVBN0YwMEFDQTk4OSAvKiBKU0hUTUxJbnB1dEVsZW1lbnRDdXN0b20uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE2MTQ4QTc5MTJFNDFFM0IwMDQ0QTc4NCAvKiBKU0hUTUxLZXlnZW5FbGVtZW50
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Fu
aW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0
aW9uL1RpbWluZ0Z1bmN0aW9uLmgKaW5kZXggNjExMzk5MzQwYzBiOWIyMTM2NTQ1OWYxNTdlZGQy
NTUwMjE1OGQxOC4uMzc1ZmZiYjJlYjg4M2UxYTc0NTg1NjdjZDNhYTZhZDlmMjNjNDgyMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9u
LmgKQEAgLTMyLDYgKzMyLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgVGltaW5nRnVu
Y3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxUaW1pbmdGdW5jdGlvbj4gewogcHVibGljOgogCisg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiBjbG9uZSgpIGNvbnN0ID0gMDsK
KwogICAgIGVudW0gVGltaW5nRnVuY3Rpb25UeXBlIHsKICAgICAgICAgTGluZWFyRnVuY3Rpb24s
IEN1YmljQmV6aWVyRnVuY3Rpb24sIFN0ZXBzRnVuY3Rpb24KICAgICB9OwpAQCAtNjgsMTQgKzcw
LDE5IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBvdGhlci5pc0xpbmVhclRpbWlu
Z0Z1bmN0aW9uKCk7CiAgICAgfQotICAgIAorCiBwcml2YXRlOgogICAgIExpbmVhclRpbWluZ0Z1
bmN0aW9uKCkKICAgICAgICAgOiBUaW1pbmdGdW5jdGlvbihMaW5lYXJGdW5jdGlvbikKICAgICB7
CiAgICAgfQorCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiBjbG9uZSgp
IGNvbnN0IG92ZXJyaWRlCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IExpbmVh
clRpbWluZ0Z1bmN0aW9uKTsKKyAgICB9CiB9OwotICAgIAorCiBjbGFzcyBDdWJpY0JlemllclRp
bWluZ0Z1bmN0aW9uIDogcHVibGljIFRpbWluZ0Z1bmN0aW9uIHsKIHB1YmxpYzoKICAgICBlbnVt
IFRpbWluZ0Z1bmN0aW9uUHJlc2V0IHsKQEAgLTEzMiw3ICsxMzksMTYgQEAgcHVibGljOgogICAg
IGRvdWJsZSB4MigpIGNvbnN0IHsgcmV0dXJuIG1feDI7IH0KICAgICBkb3VibGUgeTIoKSBjb25z
dCB7IHJldHVybiBtX3kyOyB9CiAgICAgCisgICAgdm9pZCBzZXRWYWx1ZXMoZG91YmxlIHgxLCBk
b3VibGUgeTEsIGRvdWJsZSB4MiwgZG91YmxlIHkyKQorICAgIHsKKyAgICAgICAgbV94MSA9IHgx
OworICAgICAgICBtX3kxID0geTE7CisgICAgICAgIG1feDIgPSB4MjsKKyAgICAgICAgbV95MiA9
IHkyOworICAgIH0KKyAgICAKICAgICBUaW1pbmdGdW5jdGlvblByZXNldCB0aW1pbmdGdW5jdGlv
blByZXNldCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltaW5nRnVuY3Rpb25QcmVzZXQ7IH0KKyAgICB2
b2lkIHNldFRpbWluZ0Z1bmN0aW9uUHJlc2V0KFRpbWluZ0Z1bmN0aW9uUHJlc2V0IHByZXNldCkg
eyBtX3RpbWluZ0Z1bmN0aW9uUHJlc2V0ID0gcHJlc2V0OyB9CiAgICAgCiAgICAgc3RhdGljIGNv
bnN0IEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24qIGRlZmF1bHRUaW1pbmdGdW5jdGlvbigpCiAg
ICAgewpAQCAtMTU2LDYgKzE3MiwxMSBAQCBwcml2YXRlOgogICAgIHsKICAgICB9CiAKKyAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8VGltaW5nRnVuY3Rpb24+IGNsb25lKCkgY29uc3Qgb3ZlcnJpZGUK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ3ViaWNCZXppZXJUaW1pbmdGdW5j
dGlvbihtX3RpbWluZ0Z1bmN0aW9uUHJlc2V0LCBtX3gxLCBtX3kxLCBtX3gyLCBtX3kyKSk7Cisg
ICAgfQorCiAgICAgZG91YmxlIG1feDE7CiAgICAgZG91YmxlIG1feTE7CiAgICAgZG91YmxlIG1f
eDI7CkBAIC0xNjksNiArMTkwLDEwIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgU3RlcHNUaW1pbmdGdW5jdGlvbihzdGVwcywgc3RlcEF0U3RhcnQpKTsKICAg
ICB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RlcHNUaW1pbmdGdW5jdGlvbj4gY3JlYXRlKCkK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RlcHNUaW1pbmdGdW5jdGlvbigx
LCB0cnVlKSk7CisgICAgfQogICAgIAogICAgIHZpcnR1YWwgflN0ZXBzVGltaW5nRnVuY3Rpb24o
KSB7IH0KICAgICAKQEAgLTE4Miw3ICsyMDcsMTAgQEAgcHVibGljOgogICAgIH0KICAgICAKICAg
ICBpbnQgbnVtYmVyT2ZTdGVwcygpIGNvbnN0IHsgcmV0dXJuIG1fc3RlcHM7IH0KKyAgICB2b2lk
IHNldE51bWJlck9mU3RlcHMoaW50IHN0ZXBzKSB7IG1fc3RlcHMgPSBzdGVwczsgfQorCiAgICAg
Ym9vbCBzdGVwQXRTdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RlcEF0U3RhcnQ7IH0KKyAgICB2
b2lkIHNldFN0ZXBBdFN0YXJ0KGJvb2wgc3RlcHNBdFN0YXJ0KSB7IG1fc3RlcEF0U3RhcnQgPSBz
dGVwc0F0U3RhcnQ7IH0KICAgICAKIHByaXZhdGU6CiAgICAgU3RlcHNUaW1pbmdGdW5jdGlvbihp
bnQgc3RlcHMsIGJvb2wgc3RlcEF0U3RhcnQpCkBAIC0xOTEsMTEgKzIxOSwxNiBAQCBwcml2YXRl
OgogICAgICAgICAsIG1fc3RlcEF0U3RhcnQoc3RlcEF0U3RhcnQpCiAgICAgewogICAgIH0KKwor
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUaW1pbmdGdW5jdGlvbj4gY2xvbmUoKSBjb25zdCBvdmVy
cmlkZQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdGVwc1RpbWluZ0Z1bmN0
aW9uKG1fc3RlcHMsIG1fc3RlcEF0U3RhcnQpKTsKKyAgICB9CiAgICAgCiAgICAgaW50IG1fc3Rl
cHM7CiAgICAgYm9vbCBtX3N0ZXBBdFN0YXJ0OwogfTsKLSAgICAKKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gVGltaW5nRnVuY3Rpb25faApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXgg
MTQzNTEwYTQwNzE4NDE2NmEwNDNhNjZkZWE5NWNhMjk3ZTJlNzc1Zi4uMDliNWI4OTRmYzc5NTYw
ZDIyMDkwYmIyYzk1MGJhZTZjYWY0ZjAyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC0zMSw2ICszMSw3
IEBACiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0Lmgi
CiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllckZhY3RvcnkuaCIKKyNpbmNsdWRlICJJbWFnZS5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtQ0FGaWx0ZXJzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVy
LmgiCiAjaW5jbHVkZSAiUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCkBAIC01MSwxMSArNTIs
MTMgQEAKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiUGxhdGZvcm1D
QUFuaW1hdGlvbk1hYy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllck1hYy5oIgogI2luY2x1
ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lO
KQorI2luY2x1ZGUgIlBsYXRmb3JtQ0FBbmltYXRpb25XaW4uaCIKICNpbmNsdWRlICJQbGF0Zm9y
bUNBTGF5ZXJXaW4uaCIKICNlbmRpZgogCkBAIC0zNDEsNiArMzQ0LDE1IEBAIFBhc3NSZWZQdHI8
UGxhdGZvcm1DQUxheWVyPiBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZVBsYXRmb3JtQ0FMYXllcihQ
bGF0Zm9ybUxheWVyCiAjZW5kaWYKIH0KIAorUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9u
PiBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZVBsYXRmb3JtQ0FBbmltYXRpb24oUGxhdGZvcm1DQUFu
aW1hdGlvbjo6QW5pbWF0aW9uVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIGtleVBhdGgpCit7Cisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgcmV0dXJuIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OmNy
ZWF0ZSh0eXBlLCBrZXlQYXRoKTsKKyNlbGlmIFBMQVRGT1JNKFdJTikKKyAgICByZXR1cm4gUGxh
dGZvcm1DQUFuaW1hdGlvbldpbjo6Y3JlYXRlKHR5cGUsIGtleVBhdGgpOworI2VuZGlmCit9CisK
IEdyYXBoaWNzTGF5ZXJDQTo6R3JhcGhpY3NMYXllckNBKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNs
aWVudCkKICAgICA6IEdyYXBoaWNzTGF5ZXIoY2xpZW50KQogICAgICwgbV9jb250ZW50c0xheWVy
UHVycG9zZShOb0NvbnRlbnRzTGF5ZXIpCkBAIC03ODcsMTggKzc5OSwyNCBAQCBib29sIEdyYXBo
aWNzTGF5ZXJDQTo6c2hvdWxkUmVwYWludE9uU2l6ZUNoYW5nZSgpIGNvbnN0CiAgICAgcmV0dXJu
IGRyYXdzQ29udGVudCgpICYmICF0aWxlZEJhY2tpbmcoKTsKIH0KIAotYm9vbCBHcmFwaGljc0xh
eWVyQ0E6OmFkZEFuaW1hdGlvbihjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBj
b25zdCBGbG9hdFNpemUmIGJveFNpemUsIGNvbnN0IEFuaW1hdGlvbiogYW5pbSwgY29uc3QgU3Ry
aW5nJiBhbmltYXRpb25OYW1lLCBkb3VibGUgdGltZU9mZnNldCkKK2Jvb2wgR3JhcGhpY3NMYXll
ckNBOjphbmltYXRpb25DYW5CZUFjY2VsZXJhdGVkKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2
YWx1ZUxpc3QsIGNvbnN0IEFuaW1hdGlvbiogYW5pbSkgY29uc3QKIHsKLSAgICBBU1NFUlQoIWFu
aW1hdGlvbk5hbWUuaXNFbXB0eSgpKTsKLQogICAgIGlmICghYW5pbSB8fCBhbmltLT5pc0VtcHR5
T3JaZXJvRHVyYXRpb24oKSB8fCB2YWx1ZUxpc3Quc2l6ZSgpIDwgMikKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgLy8gQ29yZUFuaW1hdGlvbiBkb2VzIG5vdCBoYW5kbGUgdGhlIHN0ZXBz
KCkgdGltaW5nIGZ1bmN0aW9uLiBGYWxsIGJhY2sKLSAgICAvLyB0byBzb2Z0d2FyZSBhbmltYXRp
b24gaW4gdGhhdCBjYXNlLgogICAgIGlmIChhbmltYXRpb25IYXNTdGVwc1RpbWluZ0Z1bmN0aW9u
KHZhbHVlTGlzdCwgYW5pbSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIHJldHVybiB0
cnVlOworfQorCitib29sIEdyYXBoaWNzTGF5ZXJDQTo6YWRkQW5pbWF0aW9uKGNvbnN0IEtleWZy
YW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNvbnN0IEZsb2F0U2l6ZSYgYm94U2l6ZSwgY29uc3Qg
QW5pbWF0aW9uKiBhbmltLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSB0aW1l
T2Zmc2V0KQoreworICAgIEFTU0VSVCghYW5pbWF0aW9uTmFtZS5pc0VtcHR5KCkpOworCisgICAg
aWYgKCFhbmltYXRpb25DYW5CZUFjY2VsZXJhdGVkKHZhbHVlTGlzdCwgYW5pbSkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKwogICAgIGJvb2wgY3JlYXRlZEFuaW1hdGlvbnMgPSBmYWxzZTsKICAg
ICBpZiAodmFsdWVMaXN0LnByb3BlcnR5KCkgPT0gQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdFRyYW5z
Zm9ybSkKICAgICAgICAgY3JlYXRlZEFuaW1hdGlvbnMgPSBjcmVhdGVUcmFuc2Zvcm1BbmltYXRp
b25zRnJvbUtleWZyYW1lcyh2YWx1ZUxpc3QsIGFuaW0sIGFuaW1hdGlvbk5hbWUsIHRpbWVPZmZz
ZXQsIGJveFNpemUpOwpAQCAtMjU2MiwxNCArMjU4MCwxNCBAQCBib29sIEdyYXBoaWNzTGF5ZXJD
QTo6Y3JlYXRlRmlsdGVyQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1
ZUxpcwogCiBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IEdyYXBoaWNzTGF5ZXJDQTo6
Y3JlYXRlQmFzaWNBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uKiBhbmltLCBjb25zdCBTdHJpbmcm
IGtleVBhdGgsIGJvb2wgYWRkaXRpdmUpCiB7Ci0gICAgUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRp
b24+IGJhc2ljQW5pbSA9IFBsYXRmb3JtQ0FBbmltYXRpb246OmNyZWF0ZShQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpCYXNpYywga2V5UGF0aCk7CisgICAgUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+
IGJhc2ljQW5pbSA9IGNyZWF0ZVBsYXRmb3JtQ0FBbmltYXRpb24oUGxhdGZvcm1DQUFuaW1hdGlv
bjo6QmFzaWMsIGtleVBhdGgpOwogICAgIHNldHVwQW5pbWF0aW9uKGJhc2ljQW5pbS5nZXQoKSwg
YW5pbSwgYWRkaXRpdmUpOwogICAgIHJldHVybiBiYXNpY0FuaW07CiB9CiAKIFBhc3NSZWZQdHI8
UGxhdGZvcm1DQUFuaW1hdGlvbj5HcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUtleWZyYW1lQW5pbWF0
aW9uKGNvbnN0IEFuaW1hdGlvbiogYW5pbSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIGFk
ZGl0aXZlKQogewotICAgIFJlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBrZXlmcmFtZUFuaW0g
PSBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjcmVhdGUoUGxhdGZvcm1DQUFuaW1hdGlvbjo6S2V5ZnJh
bWUsIGtleVBhdGgpOworICAgIFJlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBrZXlmcmFtZUFu
aW0gPSBjcmVhdGVQbGF0Zm9ybUNBQW5pbWF0aW9uKFBsYXRmb3JtQ0FBbmltYXRpb246OktleWZy
YW1lLCBrZXlQYXRoKTsKICAgICBzZXR1cEFuaW1hdGlvbihrZXlmcmFtZUFuaW0uZ2V0KCksIGFu
aW0sIGFkZGl0aXZlKTsKICAgICByZXR1cm4ga2V5ZnJhbWVBbmltOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAppbmRl
eCAyYTQzZDFmYzU4YjU0MTBjZjg5NThmMzA2MDY4ODg3YmRmZDdmYjBmLi41NDBlNGQzYTljZWM1
OTIxM2ExNjNmNTBjYjVkZWZiMDNkYTNkZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaApAQCAtMjcsNyArMjcsNiBA
QAogI2RlZmluZSBHcmFwaGljc0xheWVyQ0FfaAogCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5o
IgotI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUFuaW1hdGlvbi5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllckNs
aWVudC5oIgpAQCAtNDIsNiArNDEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IEltYWdlOwogY2xhc3MgVHJhbnNmb3JtU3RhdGU7CiAKIGNsYXNzIEdyYXBoaWNzTGF5ZXJDQSA6
IHB1YmxpYyBHcmFwaGljc0xheWVyLCBwdWJsaWMgUGxhdGZvcm1DQUxheWVyQ2xpZW50IHsKQEAg
LTE3MCw2ICsxNzAsOCBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQg
c2V0T3BhY2l0eUludGVybmFsKGZsb2F0KTsKKyAgICAKKyAgICBib29sIGFuaW1hdGlvbkNhbkJl
QWNjZWxlcmF0ZWQoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBBbmltYXRpb24qKSBj
b25zdDsKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNHcmFwaGljc0xheWVyQ0EoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CkBAIC0yMTIsNiArMjE0LDcgQEAgcHJpdmF0ZToKIAogICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IGNyZWF0ZVBsYXRmb3JtQ0FMYXll
cihQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25l
cik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gY3JlYXRlUGxhdGZv
cm1DQUxheWVyKFBsYXRmb3JtTGF5ZXIqLCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyKTsK
KyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY3JlYXRlUGxhdGZv
cm1DQUFuaW1hdGlvbihQbGF0Zm9ybUNBQW5pbWF0aW9uOjpBbmltYXRpb25UeXBlLCBjb25zdCBT
dHJpbmcmIGtleVBhdGgpOwogCiAgICAgUGxhdGZvcm1DQUxheWVyKiBwcmltYXJ5TGF5ZXIoKSBj
b25zdCB7IHJldHVybiBtX3N0cnVjdHVyYWxMYXllci5nZXQoKSA/IG1fc3RydWN0dXJhbExheWVy
LmdldCgpIDogbV9sYXllci5nZXQoKTsgfQogICAgIFBsYXRmb3JtQ0FMYXllciogaG9zdExheWVy
Rm9yU3VibGF5ZXJzKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmgKaW5kZXggMjYwNDgxY2MzODNm
OTljNmNkYmU5MjI4MzI5NWMwOWMzN2E1MzllYS4uMDViNDMwYWNjMjU0ZGFmNjI3ODRiMTk4YjNj
OGRhNWRiNGU5MzZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmltYXRpb24uaApAQCAtMzEsMTM2ICszMSwxMTkgQEAK
ICNpbmNsdWRlICJGbG9hdFBvaW50M0QuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJp
eC5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAotI2lmIFBMQVRGT1JNKENPQ09BKQotT0JK
Q19DTEFTUyBDQVByb3BlcnR5QW5pbWF0aW9uOwotdHlwZWRlZiBDQVByb3BlcnR5QW5pbWF0aW9u
KiBQbGF0Zm9ybUFuaW1hdGlvblJlZjsKLSNlbGlmIFBMQVRGT1JNKFdJTikKLXR5cGVkZWYgc3Ry
dWN0IF9DQUNGQW5pbWF0aW9uKiBDQUNGQW5pbWF0aW9uUmVmOwotdHlwZWRlZiBDQUNGQW5pbWF0
aW9uUmVmIFBsYXRmb3JtQW5pbWF0aW9uUmVmOwotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgRmxvYXRSZWN0OwotY2xhc3MgUGxhdGZvcm1DQUFuaW1hdGlvbjsKIGNsYXNz
IFRpbWluZ0Z1bmN0aW9uOwogCiBjbGFzcyBQbGF0Zm9ybUNBQW5pbWF0aW9uIDogcHVibGljIFJl
ZkNvdW50ZWQ8UGxhdGZvcm1DQUFuaW1hdGlvbj4gewogcHVibGljOgotICAgIGZyaWVuZCBjbGFz
cyBQbGF0Zm9ybUNBTGF5ZXI7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgZnJpZW5kIGNsYXNz
IFBsYXRmb3JtQ0FMYXllck1hYzsKLSNlbGlmIFBMQVRGT1JNKFdJTikKLSAgICBmcmllbmQgY2xh
c3MgUGxhdGZvcm1DQUxheWVyV2luOwotI2VuZGlmCi0gICAgCiAgICAgZW51bSBBbmltYXRpb25U
eXBlIHsgQmFzaWMsIEtleWZyYW1lIH07CiAgICAgZW51bSBGaWxsTW9kZVR5cGUgeyBOb0ZpbGxN
b2RlLCBGb3J3YXJkcywgQmFja3dhcmRzLCBCb3RoIH07CiAgICAgZW51bSBWYWx1ZUZ1bmN0aW9u
VHlwZSB7IE5vVmFsdWVGdW5jdGlvbiwgUm90YXRlWCwgUm90YXRlWSwgUm90YXRlWiwgU2NhbGVY
LCBTY2FsZVksIFNjYWxlWiwgU2NhbGUsIFRyYW5zbGF0ZVgsIFRyYW5zbGF0ZVksIFRyYW5zbGF0
ZVosIFRyYW5zbGF0ZSB9OwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1h
dGlvbj4gY3JlYXRlKEFuaW1hdGlvblR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCk7Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY3JlYXRlKFBsYXRmb3JtQW5p
bWF0aW9uUmVmKTsKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybUNBQW5pbWF0aW9uKCkgeyB9CiAKLSAg
ICB+UGxhdGZvcm1DQUFuaW1hdGlvbigpOworICAgIHZpcnR1YWwgYm9vbCBpc1BsYXRmb3JtQ0FB
bmltYXRpb25NYWMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBp
c1BsYXRmb3JtQ0FBbmltYXRpb25XaW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBpc1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIAotICAgIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY29weSgp
IGNvbnN0OwotCi0gICAgUGxhdGZvcm1BbmltYXRpb25SZWYgcGxhdGZvcm1BbmltYXRpb24oKSBj
b25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY29weSgp
IGNvbnN0ID0gMDsKICAgICAKICAgICBBbmltYXRpb25UeXBlIGFuaW1hdGlvblR5cGUoKSBjb25z
dCB7IHJldHVybiBtX3R5cGU7IH0KLSAgICBTdHJpbmcga2V5UGF0aCgpIGNvbnN0OworICAgIHZp
cnR1YWwgU3RyaW5nIGtleVBhdGgoKSBjb25zdCA9IDA7CiAgICAgCi0gICAgQ0ZUaW1lSW50ZXJ2
YWwgYmVnaW5UaW1lKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRCZWdpblRpbWUoQ0ZUaW1lSW50ZXJ2
YWwpOworICAgIHZpcnR1YWwgQ0ZUaW1lSW50ZXJ2YWwgYmVnaW5UaW1lKCkgY29uc3QgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRCZWdpblRpbWUoQ0ZUaW1lSW50ZXJ2YWwpID0gMDsKICAgICAK
LSAgICBDRlRpbWVJbnRlcnZhbCBkdXJhdGlvbigpIGNvbnN0OwotICAgIHZvaWQgc2V0RHVyYXRp
b24oQ0ZUaW1lSW50ZXJ2YWwpOworICAgIHZpcnR1YWwgQ0ZUaW1lSW50ZXJ2YWwgZHVyYXRpb24o
KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldER1cmF0aW9uKENGVGltZUludGVydmFs
KSA9IDA7CiAgICAgCi0gICAgZmxvYXQgc3BlZWQoKSBjb25zdDsKLSAgICB2b2lkIHNldFNwZWVk
KGZsb2F0KTsKKyAgICB2aXJ0dWFsIGZsb2F0IHNwZWVkKCkgY29uc3QgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzZXRTcGVlZChmbG9hdCkgPSAwOwogCi0gICAgQ0ZUaW1lSW50ZXJ2YWwgdGltZU9m
ZnNldCgpIGNvbnN0OwotICAgIHZvaWQgc2V0VGltZU9mZnNldChDRlRpbWVJbnRlcnZhbCk7Cisg
ICAgdmlydHVhbCBDRlRpbWVJbnRlcnZhbCB0aW1lT2Zmc2V0KCkgY29uc3QgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBzZXRUaW1lT2Zmc2V0KENGVGltZUludGVydmFsKSA9IDA7CiAKLSAgICBmbG9h
dCByZXBlYXRDb3VudCgpIGNvbnN0OwotICAgIHZvaWQgc2V0UmVwZWF0Q291bnQoZmxvYXQpOwor
ICAgIHZpcnR1YWwgZmxvYXQgcmVwZWF0Q291bnQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHNldFJlcGVhdENvdW50KGZsb2F0KSA9IDA7CiAKLSAgICBib29sIGF1dG9yZXZlcnNlcygp
IGNvbnN0OwotICAgIHZvaWQgc2V0QXV0b3JldmVyc2VzKGJvb2wpOworICAgIHZpcnR1YWwgYm9v
bCBhdXRvcmV2ZXJzZXMoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEF1dG9yZXZl
cnNlcyhib29sKSA9IDA7CiAKLSAgICBGaWxsTW9kZVR5cGUgZmlsbE1vZGUoKSBjb25zdDsKLSAg
ICB2b2lkIHNldEZpbGxNb2RlKEZpbGxNb2RlVHlwZSk7CisgICAgdmlydHVhbCBGaWxsTW9kZVR5
cGUgZmlsbE1vZGUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEZpbGxNb2RlKEZp
bGxNb2RlVHlwZSkgPSAwOwogICAgIAotICAgIHZvaWQgc2V0VGltaW5nRnVuY3Rpb24oY29uc3Qg
VGltaW5nRnVuY3Rpb24qLCBib29sIHJldmVyc2UgPSBmYWxzZSk7Ci0gICAgdm9pZCBjb3B5VGlt
aW5nRnVuY3Rpb25Gcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qKTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0VGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24qLCBib29sIHJldmVy
c2UgPSBmYWxzZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb3B5VGltaW5nRnVuY3Rpb25Gcm9t
KGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qKSA9IDA7CiAKLSAgICBib29sIGlzUmVtb3ZlZE9u
Q29tcGxldGlvbigpIGNvbnN0OwotICAgIHZvaWQgc2V0UmVtb3ZlZE9uQ29tcGxldGlvbihib29s
KTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW1vdmVkT25Db21wbGV0aW9uKCkgY29uc3QgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRSZW1vdmVkT25Db21wbGV0aW9uKGJvb2wpID0gMDsKIAotICAg
IGJvb2wgaXNBZGRpdGl2ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0QWRkaXRpdmUoYm9vbCk7Cisg
ICAgdmlydHVhbCBib29sIGlzQWRkaXRpdmUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHNldEFkZGl0aXZlKGJvb2wpID0gMDsKIAotICAgIFZhbHVlRnVuY3Rpb25UeXBlIHZhbHVlRnVu
Y3Rpb24oKSBjb25zdDsKLSAgICB2b2lkIHNldFZhbHVlRnVuY3Rpb24oVmFsdWVGdW5jdGlvblR5
cGUpOworICAgIHZpcnR1YWwgVmFsdWVGdW5jdGlvblR5cGUgdmFsdWVGdW5jdGlvbigpIGNvbnN0
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVGdW5jdGlvbihWYWx1ZUZ1bmN0aW9uVHlw
ZSkgPSAwOwogCiAgICAgLy8gQmFzaWMtYW5pbWF0aW9uIHByb3BlcnRpZXMuCi0gICAgdm9pZCBz
ZXRGcm9tVmFsdWUoZmxvYXQpOwotICAgIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4Jik7Ci0gICAgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgRmxv
YXRQb2ludDNEJik7Ci0gICAgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6Q29sb3Im
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGZsb2F0KSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9y
JikgPSAwOwogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSAgICB2b2lkIHNldEZyb21WYWx1ZShj
b25zdCBGaWx0ZXJPcGVyYXRpb24qLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0IEZpbHRlck9wZXJhdGlvbiosIGlu
dCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpID0gMDsKICNlbmRpZgotICAgIHZvaWQgY29w
eUZyb21WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopOworICAgIHZpcnR1YWwg
dm9pZCBjb3B5RnJvbVZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgPSAwOwog
Ci0gICAgdm9pZCBzZXRUb1ZhbHVlKGZsb2F0KTsKLSAgICB2b2lkIHNldFRvVmFsdWUoY29uc3Qg
V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKLSAgICB2b2lkIHNldFRvVmFsdWUoY29u
c3QgRmxvYXRQb2ludDNEJik7Ci0gICAgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OkNv
bG9yJik7CisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoZmxvYXQpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSA9
IDA7CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQotICAgIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBG
aWx0ZXJPcGVyYXRpb24qLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBGaWx0ZXJPcGVyYXRpb24qLCBpbnQgaW50ZXJu
YWxGaWx0ZXJQcm9wZXJ0eUluZGV4KSA9IDA7CiAjZW5kaWYKLSAgICB2b2lkIGNvcHlUb1ZhbHVl
RnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKik7CisgICAgdmlydHVhbCB2b2lkIGNvcHlU
b1ZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgPSAwOwogCiAgICAgLy8gS2V5
ZnJhbWUtYW5pbWF0aW9uIHByb3BlcnRpZXMuCi0gICAgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVj
dG9yPGZsb2F0PiYpOwotICAgIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpU
cmFuc2Zvcm1hdGlvbk1hdHJpeD4mKTsKLSAgICB2b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8
RmxvYXRQb2ludDNEPiYpOwotICAgIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpDb2xvcj4mKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxmbG9h
dD4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg+JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1
ZXMoY29uc3QgVmVjdG9yPEZsb2F0UG9pbnQzRD4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNl
dFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+JikgPSAwOwogI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKLSAgICB2b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8UmVmUHRyPEZpbHRl
ck9wZXJhdGlvbj4+JiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCk7CisgICAgdmly
dHVhbCB2b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4+
JiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgPSAwOwogI2VuZGlmCi0gICAgdm9p
ZCBjb3B5VmFsdWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKik7Ci0KLSAgICB2b2lk
IHNldEtleVRpbWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mKTsKLSAgICB2b2lkIGNvcHlLZXlUaW1l
c0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopOworICAgIHZpcnR1YWwgdm9pZCBjb3B5
VmFsdWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgPSAwOwogCi0gICAgdm9pZCBz
ZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4mLCBi
b29sIHJldmVyc2UgPSBmYWxzZSk7Ci0gICAgdm9pZCBjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShj
b25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKik7CisgICAgdmlydHVhbCB2b2lkIHNldEtleVRpbWVz
KGNvbnN0IFZlY3RvcjxmbG9hdD4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvcHlLZXlUaW1l
c0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopID0gMDsKIAotcHJvdGVjdGVkOgotICAg
IFBsYXRmb3JtQ0FBbmltYXRpb24oQW5pbWF0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRo
KTsKLSAgICBQbGF0Zm9ybUNBQW5pbWF0aW9uKFBsYXRmb3JtQW5pbWF0aW9uUmVmKTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0VGltaW5nRnVuY3Rpb25zKGNvbnN0IFZlY3Rvcjxjb25zdCBUaW1pbmdG
dW5jdGlvbio+JiwgYm9vbCByZXZlcnNlID0gZmFsc2UpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
Y29weVRpbWluZ0Z1bmN0aW9uc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopID0gMDsK
IAogICAgIHZvaWQgc2V0QWN0dWFsU3RhcnRUaW1lSWZOZWVkZWQoQ0ZUaW1lSW50ZXJ2YWwgdCkK
ICAgICB7CiAgICAgICAgIGlmIChiZWdpblRpbWUoKSA8PSAwKQogICAgICAgICAgICAgc2V0QmVn
aW5UaW1lKHQpOwogICAgIH0KKyAgICAKK3Byb3RlY3RlZDoKKyAgICBQbGF0Zm9ybUNBQW5pbWF0
aW9uKEFuaW1hdGlvblR5cGUgdHlwZSA9IEJhc2ljKQorICAgICAgICA6IG1fdHlwZSh0eXBlKQor
ICAgIHsKKyAgICB9CisKKyAgICB2b2lkIHNldFR5cGUoQW5pbWF0aW9uVHlwZSB0eXBlKSB7IG1f
dHlwZSA9IHR5cGU7IH0KIAogcHJpdmF0ZToKICAgICBBbmltYXRpb25UeXBlIG1fdHlwZTsKLSAg
ICAKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBSZXRhaW5QdHI8Q0FQcm9wZXJ0eUFuaW1hdGlv
bj4gbV9hbmltYXRpb247Ci0jZWxpZiBQTEFURk9STShXSU4pCi0gICAgUmV0YWluUHRyPENBQ0ZB
bmltYXRpb25SZWY+IG1fYW5pbWF0aW9uOwotI2VuZGlmCiB9OwogCisjZGVmaW5lIFBMQVRGT1JN
X0NBQU5JTUFUSU9OX1RZUEVfQ0FTVFMoVG9WYWx1ZVR5cGVOYW1lLCBwcmVkaWNhdGUpIFwKKyAg
ICBUWVBFX0NBU1RTX0JBU0UoVG9WYWx1ZVR5cGVOYW1lLCBXZWJDb3JlOjpQbGF0Zm9ybUNBQW5p
bWF0aW9uLCBvYmplY3QsIG9iamVjdC0+cHJlZGljYXRlLCBvYmplY3QucHJlZGljYXRlKQorCiB9
CiAKICNlbmRpZiAvLyBQbGF0Zm9ybUNBQW5pbWF0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKaW5kZXggODFkYjcx
MjE2YjNmZTYxMTFiYjYzYzM2N2U4MDNhMDFkYTcwYTQ1OC4uMWUwMDY4MzA0MTY2ZTU1NzE0ZGUy
Y2YyYzA0ODhmZWRmNDI5MDhmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKQEAgLTI2LDkgKzI2LDcgQEAKICNpZm5k
ZWYgUGxhdGZvcm1DQUxheWVyX2gKICNkZWZpbmUgUGxhdGZvcm1DQUxheWVyX2gKIAotI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKLSNpbmNs
dWRlICJQbGF0Zm9ybUNBQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVyQ2xp
ZW50LmgiCiAjaW5jbHVkZSA8UXVhcnR6Q29yZS9DQUJhc2UuaD4KICNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KQEAgLTQyLDkgKzQwLDE0IEBACiAKIE9CSkNfQ0xBU1MgQVZQbGF5ZXJMYXll
cjsKIAorI2lmIFBMQVRGT1JNKENPQ09BKQordHlwZWRlZiBzdHJ1Y3QgQ0dDb250ZXh0ICpDR0Nv
bnRleHRSZWY7CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBQbGF0Zm9y
bUNBTGF5ZXI7CitjbGFzcyBQbGF0Zm9ybUNBQW5pbWF0aW9uOwogCiB0eXBlZGVmIFZlY3RvcjxS
ZWZQdHI8UGxhdGZvcm1DQUxheWVyPj4gUGxhdGZvcm1DQUxheWVyTGlzdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmlt
YXRpb25NYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0
Zm9ybUNBQW5pbWF0aW9uTWFjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzQwY2E3MmNhNDUyYmE5NDM5YTMyNWE3
OWZiMWNmYjE1Y2U5Y2E1NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLmgKQEAgLTAsMCArMSwx
MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjX2gKKyNkZWZpbmUgUGxhdGZvcm1DQUFuaW1hdGlv
bk1hY19oCisKKyNpbmNsdWRlICJQbGF0Zm9ybUNBQW5pbWF0aW9uLmgiCisjaW5jbHVkZSA8d3Rm
L1JldGFpblB0ci5oPgorCitPQkpDX0NMQVNTIENBUHJvcGVydHlBbmltYXRpb247CitPQkpDX0NM
QVNTIE5TU3RyaW5nOworT0JKQ19DTEFTUyBDQU1lZGlhVGltaW5nRnVuY3Rpb247Cit0eXBlZGVm
IENBUHJvcGVydHlBbmltYXRpb24qIFBsYXRmb3JtQW5pbWF0aW9uUmVmOworCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK05TU3RyaW5nKiB0b0NBRmlsbE1vZGVUeXBlKFBsYXRmb3JtQ0FBbmltYXRp
b246OkZpbGxNb2RlVHlwZSk7CitOU1N0cmluZyogdG9DQVZhbHVlRnVuY3Rpb25UeXBlKFBsYXRm
b3JtQ0FBbmltYXRpb246OlZhbHVlRnVuY3Rpb25UeXBlKTsKK0NBTWVkaWFUaW1pbmdGdW5jdGlv
biogdG9DQU1lZGlhVGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24qLCBib29sIHJl
dmVyc2UpOworCitjbGFzcyBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjIGZpbmFsIDogcHVibGljIFBs
YXRmb3JtQ0FBbmltYXRpb24geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsYXRm
b3JtQ0FBbmltYXRpb24+IGNyZWF0ZShBbmltYXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGtleVBh
dGgpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGNyZWF0ZShQ
bGF0Zm9ybUFuaW1hdGlvblJlZik7CisKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybUNBQW5pbWF0aW9u
TWFjKCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBs
YXRmb3JtQ0FBbmltYXRpb24+IGNvcHkoKSBjb25zdCBvdmVycmlkZTsKKworICAgIFBsYXRmb3Jt
QW5pbWF0aW9uUmVmIHBsYXRmb3JtQW5pbWF0aW9uKCkgY29uc3Q7CisgICAgCisgICAgdmlydHVh
bCBTdHJpbmcga2V5UGF0aCgpIGNvbnN0IG92ZXJyaWRlOworICAgIAorICAgIHZpcnR1YWwgQ0ZU
aW1lSW50ZXJ2YWwgYmVnaW5UaW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHNldEJlZ2luVGltZShDRlRpbWVJbnRlcnZhbCkgb3ZlcnJpZGU7CisgICAgCisgICAgdmlydHVh
bCBDRlRpbWVJbnRlcnZhbCBkdXJhdGlvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzZXREdXJhdGlvbihDRlRpbWVJbnRlcnZhbCkgb3ZlcnJpZGU7CisgICAgCisgICAgdmly
dHVhbCBmbG9hdCBzcGVlZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRT
cGVlZChmbG9hdCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIENGVGltZUludGVydmFsIHRpbWVP
ZmZzZXQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGltZU9mZnNldChD
RlRpbWVJbnRlcnZhbCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIGZsb2F0IHJlcGVhdENvdW50
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFJlcGVhdENvdW50KGZsb2F0
KSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgYm9vbCBhdXRvcmV2ZXJzZXMoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QXV0b3JldmVyc2VzKGJvb2wpIG92ZXJyaWRlOwor
CisgICAgdmlydHVhbCBGaWxsTW9kZVR5cGUgZmlsbE1vZGUoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0RmlsbE1vZGUoRmlsbE1vZGVUeXBlKSBvdmVycmlkZTsKKyAgICAK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0VGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24q
LCBib29sIHJldmVyc2UgPSBmYWxzZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBjb3B5VGltaW5nRnVu
Y3Rpb25Gcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKKworICAgIHZp
cnR1YWwgYm9vbCBpc1JlbW92ZWRPbkNvbXBsZXRpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0UmVtb3ZlZE9uQ29tcGxldGlvbihib29sKSBvdmVycmlkZTsKKworICAg
IHZpcnR1YWwgYm9vbCBpc0FkZGl0aXZlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHNldEFkZGl0aXZlKGJvb2wpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBWYWx1ZUZ1bmN0
aW9uVHlwZSB2YWx1ZUZ1bmN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHNldFZhbHVlRnVuY3Rpb24oVmFsdWVGdW5jdGlvblR5cGUpIG92ZXJyaWRlOworCisgICAgLy8g
QmFzaWMtYW5pbWF0aW9uIHByb3BlcnRpZXMuCisgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1
ZShmbG9hdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShjb25zdCBX
ZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRGcm9tVmFsdWUoY29uc3QgRmxvYXRQb2ludDNEJikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYpIG92ZXJyaWRlOworI2lm
IEVOQUJMRShDU1NfRklMVEVSUykKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0
IEZpbHRlck9wZXJhdGlvbiosIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpIG92ZXJy
aWRlOworI2VuZGlmCisgICAgdmlydHVhbCB2b2lkIGNvcHlGcm9tVmFsdWVGcm9tKGNvbnN0IFBs
YXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRUb1Zh
bHVlKGZsb2F0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBX
ZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRUb1ZhbHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgb3ZlcnJpZGU7CisjaWYgRU5B
QkxFKENTU19GSUxURVJTKQorICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IEZpbHRl
ck9wZXJhdGlvbiosIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpIG92ZXJyaWRlOwor
I2VuZGlmCisgICAgdmlydHVhbCB2b2lkIGNvcHlUb1ZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNB
QW5pbWF0aW9uKikgb3ZlcnJpZGU7CisKKyAgICAvLyBLZXlmcmFtZS1hbmltYXRpb24gcHJvcGVy
dGllcy4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpUcmFuc2Zvcm1hdGlvbk1hdHJpeD4mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
VmFsdWVzKGNvbnN0IFZlY3RvcjxGbG9hdFBvaW50M0Q+Jikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+Jikgb3ZlcnJpZGU7
CisjaWYgRU5BQkxFKENTU19GSUxURVJTKQorICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29u
c3QgVmVjdG9yPFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+PiYsIGludCBpbnRlcm5hbEZpbHRlclBy
b3BlcnR5SW5kZXgpIG92ZXJyaWRlOworI2VuZGlmCisgICAgdmlydHVhbCB2b2lkIGNvcHlWYWx1
ZXNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKKworICAgIHZpcnR1
YWwgdm9pZCBzZXRLZXlUaW1lcyhjb25zdCBWZWN0b3I8ZmxvYXQ+Jikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGNvcHlLZXlUaW1lc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiop
IG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIHNldFRpbWluZ0Z1bmN0aW9ucyhjb25zdCBW
ZWN0b3I8Y29uc3QgVGltaW5nRnVuY3Rpb24qPiYsIGJvb2wgcmV2ZXJzZSA9IGZhbHNlKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29weVRpbWluZ0Z1bmN0aW9uc0Zyb20oY29uc3QgUGxh
dGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOworCitwcm90ZWN0ZWQ6CisgICAgUGxhdGZvcm1D
QUFuaW1hdGlvbk1hYyhBbmltYXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGtleVBhdGgpOworICAg
IFBsYXRmb3JtQ0FBbmltYXRpb25NYWMoUGxhdGZvcm1BbmltYXRpb25SZWYpOworCitwcml2YXRl
OgorICAgIFJldGFpblB0cjxDQVByb3BlcnR5QW5pbWF0aW9uPiBtX2FuaW1hdGlvbjsKK307CisK
K1BMQVRGT1JNX0NBQU5JTUFUSU9OX1RZUEVfQ0FTVFMoUGxhdGZvcm1DQUFuaW1hdGlvbk1hYywg
aXNQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKCkpCisKK30KKworI2VuZGlmIC8vIFBsYXRmb3JtQ0FB
bmltYXRpb25NYWNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5tbQppbmRleCBjMDdj
N2FjNjIxNzM5YWIzYjQzM2U1MDVkOTQ5ZTM5Y2M4NTc0YTEzLi4yZWEyODZhZjAxNGY1NjY4MWJi
MmRjYWYxZTZjN2UyMmFlZDQzY2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5t
bQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjUs
NyArMjUsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpbXBvcnQgIlBsYXRmb3JtQ0FB
bmltYXRpb24uaCIKKyNpbXBvcnQgIlBsYXRmb3JtQ0FBbmltYXRpb25NYWMuaCIKIAogI2ltcG9y
dCAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybUNBRmlsdGVycy5oIgpAQCAt
NDAsMTUgKzQwLDE1IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IFdLTm9uWmVyb0JlZ2luVGlt
ZUZsYWcgPSBAIldLUGxhdGZvcm1DQUFuaW1hdGlvbk5vblplcm9CCiAKIHN0YXRpYyBib29sIGhh
c05vblplcm9CZWdpblRpbWVGbGFnKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIGFuaW1hdGlv
bikKIHsKLSAgICByZXR1cm4gW1thbmltYXRpb24tPnBsYXRmb3JtQW5pbWF0aW9uKCkgdmFsdWVG
b3JLZXk6V0tOb25aZXJvQmVnaW5UaW1lRmxhZ10gYm9vbFZhbHVlXTsKKyAgICByZXR1cm4gW1t0
b1BsYXRmb3JtQ0FBbmltYXRpb25NYWMoYW5pbWF0aW9uKS0+cGxhdGZvcm1BbmltYXRpb24oKSB2
YWx1ZUZvcktleTpXS05vblplcm9CZWdpblRpbWVGbGFnXSBib29sVmFsdWVdOwogfQogCiBzdGF0
aWMgdm9pZCBzZXROb25aZXJvQmVnaW5UaW1lRmxhZyhQbGF0Zm9ybUNBQW5pbWF0aW9uKiBhbmlt
YXRpb24sIGJvb2wgdmFsdWUpCiB7Ci0gICAgW2FuaW1hdGlvbi0+cGxhdGZvcm1BbmltYXRpb24o
KSBzZXRWYWx1ZTpbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6dmFsdWVdIGZvcktleTpXS05vblpl
cm9CZWdpblRpbWVGbGFnXTsKKyAgICBbdG9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKGFuaW1hdGlv
biktPnBsYXRmb3JtQW5pbWF0aW9uKCkgc2V0VmFsdWU6W05TTnVtYmVyIG51bWJlcldpdGhCb29s
OnZhbHVlXSBmb3JLZXk6V0tOb25aZXJvQmVnaW5UaW1lRmxhZ107CiB9CiAgICAgCi1zdGF0aWMg
TlNTdHJpbmcqIHRvQ0FGaWxsTW9kZVR5cGUoUGxhdGZvcm1DQUFuaW1hdGlvbjo6RmlsbE1vZGVU
eXBlIHR5cGUpCitOU1N0cmluZyogV2ViQ29yZTo6dG9DQUZpbGxNb2RlVHlwZShQbGF0Zm9ybUNB
QW5pbWF0aW9uOjpGaWxsTW9kZVR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAg
ICBjYXNlIFBsYXRmb3JtQ0FBbmltYXRpb246Ok5vRmlsbE1vZGU6CkBAIC03MCw3ICs3MCw3IEBA
IHN0YXRpYyBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpGaWxsTW9kZVR5cGUgZnJvbUNBRmlsbE1vZGVU
eXBlKE5TU3RyaW5nKiBzdHJpbmcpCiAgICAgcmV0dXJuIFBsYXRmb3JtQ0FBbmltYXRpb246OkZv
cndhcmRzOwogfQogCi1zdGF0aWMgTlNTdHJpbmcqIHRvQ0FWYWx1ZUZ1bmN0aW9uVHlwZShQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpWYWx1ZUZ1bmN0aW9uVHlwZSB0eXBlKQorTlNTdHJpbmcqIFdlYkNv
cmU6OnRvQ0FWYWx1ZUZ1bmN0aW9uVHlwZShQbGF0Zm9ybUNBQW5pbWF0aW9uOjpWYWx1ZUZ1bmN0
aW9uVHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgUGxhdGZvcm1D
QUFuaW1hdGlvbjo6Tm9WYWx1ZUZ1bmN0aW9uOiByZXR1cm4gQCIiOwpAQCAtMTI3LDcgKzEyNyw3
IEBAIHN0YXRpYyBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpWYWx1ZUZ1bmN0aW9uVHlwZSBmcm9tQ0FW
YWx1ZUZ1bmN0aW9uVHlwZShOU1N0cmluZyoKICAgICByZXR1cm4gUGxhdGZvcm1DQUFuaW1hdGlv
bjo6Tm9WYWx1ZUZ1bmN0aW9uOwogfQogCi1zdGF0aWMgQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uKiB0
b0NBTWVkaWFUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rp
b24sIGJvb2wgcmV2ZXJzZSkKK0NBTWVkaWFUaW1pbmdGdW5jdGlvbiogV2ViQ29yZTo6dG9DQU1l
ZGlhVGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uLCBi
b29sIHJldmVyc2UpCiB7CiAgICAgQVNTRVJUKHRpbWluZ0Z1bmN0aW9uKTsKICAgICBpZiAodGlt
aW5nRnVuY3Rpb24tPmlzQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbigpKSB7CkBAIC0xNDYsMjEg
KzE0NiwyMiBAQCBzdGF0aWMgQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uKiB0b0NBTWVkaWFUaW1pbmdG
dW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaQogICAgICAgICByZXR1cm4gW0NBTWVk
aWFUaW1pbmdGdW5jdGlvbiBmdW5jdGlvbldpdGhDb250cm9sUG9pbnRzOiB4MSA6IHkxIDogeDIg
OiB5Ml07CiAgICAgfQogICAgIAorICAgIEFTU0VSVCh0aW1pbmdGdW5jdGlvbi0+dHlwZSgpID09
IFRpbWluZ0Z1bmN0aW9uOjpMaW5lYXJGdW5jdGlvbik7CiAgICAgcmV0dXJuIFtDQU1lZGlhVGlt
aW5nRnVuY3Rpb24gZnVuY3Rpb25XaXRoTmFtZTprQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uTGluZWFy
XTsKIH0KIAotUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5pbWF0
aW9uOjpjcmVhdGUoQW5pbWF0aW9uVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIGtleVBhdGgpCitQ
YXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OmNy
ZWF0ZShBbmltYXRpb25UeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFBsYXRmb3JtQ0FBbmltYXRpb24odHlwZSwga2V5UGF0aCkpOwor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYyh0eXBlLCBrZXlQ
YXRoKSk7CiB9CiAKLVBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUFu
aW1hdGlvbjo6Y3JlYXRlKFBsYXRmb3JtQW5pbWF0aW9uUmVmIGFuaW1hdGlvbikKK1Bhc3NSZWZQ
dHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6Y3JlYXRlKFBs
YXRmb3JtQW5pbWF0aW9uUmVmIGFuaW1hdGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFBsYXRmb3JtQ0FBbmltYXRpb24oYW5pbWF0aW9uKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKGFuaW1hdGlvbikpOwogfQogCi1QbGF0Zm9ybUNBQW5p
bWF0aW9uOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKEFuaW1hdGlvblR5cGUgdHlwZSwgY29uc3QgU3Ry
aW5nJiBrZXlQYXRoKQotICAgIDogbV90eXBlKHR5cGUpCitQbGF0Zm9ybUNBQW5pbWF0aW9uTWFj
OjpQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKEFuaW1hdGlvblR5cGUgdHlwZSwgY29uc3QgU3RyaW5n
JiBrZXlQYXRoKQorICAgIDogUGxhdGZvcm1DQUFuaW1hdGlvbih0eXBlKQogewogICAgIGlmICh0
eXBlID09IEJhc2ljKQogICAgICAgICBtX2FuaW1hdGlvbiA9IFtDQUJhc2ljQW5pbWF0aW9uIGFu
aW1hdGlvbldpdGhLZXlQYXRoOmtleVBhdGhdOwpAQCAtMTY4LDEyICsxNjksMTIgQEAgUGxhdGZv
cm1DQUFuaW1hdGlvbjo6UGxhdGZvcm1DQUFuaW1hdGlvbihBbmltYXRpb25UeXBlIHR5cGUsIGNv
bnN0IFN0cmluZyYga2V5UGEKICAgICAgICAgbV9hbmltYXRpb24gPSBbQ0FLZXlmcmFtZUFuaW1h
dGlvbiBhbmltYXRpb25XaXRoS2V5UGF0aDprZXlQYXRoXTsKIH0KIAotUGxhdGZvcm1DQUFuaW1h
dGlvbjo6UGxhdGZvcm1DQUFuaW1hdGlvbihQbGF0Zm9ybUFuaW1hdGlvblJlZiBhbmltYXRpb24p
CitQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKFBsYXRmb3Jt
QW5pbWF0aW9uUmVmIGFuaW1hdGlvbikKIHsKICAgICBpZiAoW3N0YXRpY19jYXN0PENBQW5pbWF0
aW9uKj4oYW5pbWF0aW9uKSBpc0tpbmRPZkNsYXNzOltDQUJhc2ljQW5pbWF0aW9uIGNsYXNzXV0p
Ci0gICAgICAgIG1fdHlwZSA9IEJhc2ljOworICAgICAgICBzZXRUeXBlKEJhc2ljKTsKICAgICBl
bHNlIGlmIChbc3RhdGljX2Nhc3Q8Q0FBbmltYXRpb24qPihhbmltYXRpb24pIGlzS2luZE9mQ2xh
c3M6W0NBS2V5ZnJhbWVBbmltYXRpb24gY2xhc3NdXSkKLSAgICAgICAgbV90eXBlID0gS2V5ZnJh
bWU7CisgICAgICAgIHNldFR5cGUoS2V5ZnJhbWUpOwogICAgIGVsc2UgewogICAgICAgICBBU1NF
UlQoMCk7CiAgICAgICAgIHJldHVybjsKQEAgLTE4Miw3ICsxODMsMTEgQEAgUGxhdGZvcm1DQUFu
aW1hdGlvbjo6UGxhdGZvcm1DQUFuaW1hdGlvbihQbGF0Zm9ybUFuaW1hdGlvblJlZiBhbmltYXRp
b24pCiAgICAgbV9hbmltYXRpb24gPSBzdGF0aWNfY2FzdDxDQVByb3BlcnR5QW5pbWF0aW9uKj4o
YW5pbWF0aW9uKTsKIH0KIAotUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpjb3B5KCkgY29uc3QKK1BsYXRmb3JtQ0FBbmltYXRpb25NYWM6On5QbGF0
Zm9ybUNBQW5pbWF0aW9uTWFjKCkKK3sKK30KKworUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0
aW9uPiBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpjb3B5KCkgY29uc3QKIHsKICAgICBSZWZQdHI8
UGxhdGZvcm1DQUFuaW1hdGlvbj4gYW5pbWF0aW9uID0gY3JlYXRlKGFuaW1hdGlvblR5cGUoKSwg
a2V5UGF0aCgpKTsKICAgICAKQEAgLTIxMiwyNiArMjE3LDIzIEBAIFBhc3NSZWZQdHI8UGxhdGZv
cm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weSgpIGNvbnN0CiAgICAgCiAg
ICAgcmV0dXJuIGFuaW1hdGlvbjsKIH0KLVBsYXRmb3JtQ0FBbmltYXRpb246On5QbGF0Zm9ybUNB
QW5pbWF0aW9uKCkKLXsKLX0KIAotUGxhdGZvcm1BbmltYXRpb25SZWYgUGxhdGZvcm1DQUFuaW1h
dGlvbjo6cGxhdGZvcm1BbmltYXRpb24oKSBjb25zdAorUGxhdGZvcm1BbmltYXRpb25SZWYgUGxh
dGZvcm1DQUFuaW1hdGlvbk1hYzo6cGxhdGZvcm1BbmltYXRpb24oKSBjb25zdAogewogICAgIHJl
dHVybiBtX2FuaW1hdGlvbi5nZXQoKTsKIH0KIAotU3RyaW5nIFBsYXRmb3JtQ0FBbmltYXRpb246
OmtleVBhdGgoKSBjb25zdAorU3RyaW5nIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OmtleVBhdGgo
KSBjb25zdAogewogICAgIHJldHVybiBbbV9hbmltYXRpb24uZ2V0KCkga2V5UGF0aF07CiB9CiAK
LUNGVGltZUludGVydmFsIFBsYXRmb3JtQ0FBbmltYXRpb246OmJlZ2luVGltZSgpIGNvbnN0CitD
RlRpbWVJbnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpiZWdpblRpbWUoKSBjb25zdAog
ewogICAgIHJldHVybiBbbV9hbmltYXRpb24uZ2V0KCkgYmVnaW5UaW1lXTsKIH0KIAotdm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRCZWdpblRpbWUoQ0ZUaW1lSW50ZXJ2YWwgdmFsdWUpCit2
b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldEJlZ2luVGltZShDRlRpbWVJbnRlcnZhbCB2
YWx1ZSkKIHsKICAgICBbbV9hbmltYXRpb24uZ2V0KCkgc2V0QmVnaW5UaW1lOnZhbHVlXTsKICAg
ICAKQEAgLTI0MywxMTUgKzI0NSwxMTUgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRC
ZWdpblRpbWUoQ0ZUaW1lSW50ZXJ2YWwgdmFsdWUpCiAgICAgICAgIHNldE5vblplcm9CZWdpblRp
bWVGbGFnKHRoaXMsIHRydWUpOwogfQogCi1DRlRpbWVJbnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0
aW9uOjpkdXJhdGlvbigpIGNvbnN0CitDRlRpbWVJbnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0aW9u
TWFjOjpkdXJhdGlvbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFttX2FuaW1hdGlvbi5nZXQoKSBk
dXJhdGlvbl07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0RHVyYXRpb24oQ0ZU
aW1lSW50ZXJ2YWwgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldER1cmF0
aW9uKENGVGltZUludGVydmFsIHZhbHVlKQogewogICAgIFttX2FuaW1hdGlvbi5nZXQoKSBzZXRE
dXJhdGlvbjp2YWx1ZV07CiB9CiAKLWZsb2F0IFBsYXRmb3JtQ0FBbmltYXRpb246OnNwZWVkKCkg
Y29uc3QKK2Zsb2F0IFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNwZWVkKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gW21fYW5pbWF0aW9uLmdldCgpIHNwZWVkXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNB
QW5pbWF0aW9uOjpzZXRTcGVlZChmbG9hdCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
bk1hYzo6c2V0U3BlZWQoZmxvYXQgdmFsdWUpCiB7CiAgICAgW21fYW5pbWF0aW9uLmdldCgpIHNl
dFNwZWVkOnZhbHVlXTsKIH0KIAotQ0ZUaW1lSW50ZXJ2YWwgUGxhdGZvcm1DQUFuaW1hdGlvbjo6
dGltZU9mZnNldCgpIGNvbnN0CitDRlRpbWVJbnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFj
Ojp0aW1lT2Zmc2V0KCkgY29uc3QKIHsKICAgICByZXR1cm4gW21fYW5pbWF0aW9uLmdldCgpIHRp
bWVPZmZzZXRdOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRpbWVPZmZzZXQo
Q0ZUaW1lSW50ZXJ2YWwgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFRp
bWVPZmZzZXQoQ0ZUaW1lSW50ZXJ2YWwgdmFsdWUpCiB7CiAgICAgW21fYW5pbWF0aW9uLmdldCgp
IHNldFRpbWVPZmZzZXQ6dmFsdWVdOwogfQogCi1mbG9hdCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpy
ZXBlYXRDb3VudCgpIGNvbnN0CitmbG9hdCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpyZXBlYXRD
b3VudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFttX2FuaW1hdGlvbi5nZXQoKSByZXBlYXRDb3Vu
dF07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0UmVwZWF0Q291bnQoZmxvYXQg
dmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFJlcGVhdENvdW50KGZsb2F0
IHZhbHVlKQogewogICAgIFttX2FuaW1hdGlvbi5nZXQoKSBzZXRSZXBlYXRDb3VudDp2YWx1ZV07
CiB9CiAKLWJvb2wgUGxhdGZvcm1DQUFuaW1hdGlvbjo6YXV0b3JldmVyc2VzKCkgY29uc3QKK2Jv
b2wgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6YXV0b3JldmVyc2VzKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gW21fYW5pbWF0aW9uLmdldCgpIGF1dG9yZXZlcnNlc107CiB9CiAKLXZvaWQgUGxhdGZv
cm1DQUFuaW1hdGlvbjo6c2V0QXV0b3JldmVyc2VzKGJvb2wgdmFsdWUpCit2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25NYWM6OnNldEF1dG9yZXZlcnNlcyhib29sIHZhbHVlKQogewogICAgIFttX2Fu
aW1hdGlvbi5nZXQoKSBzZXRBdXRvcmV2ZXJzZXM6dmFsdWVdOwogfQogCi1QbGF0Zm9ybUNBQW5p
bWF0aW9uOjpGaWxsTW9kZVR5cGUgUGxhdGZvcm1DQUFuaW1hdGlvbjo6ZmlsbE1vZGUoKSBjb25z
dAorUGxhdGZvcm1DQUFuaW1hdGlvbjo6RmlsbE1vZGVUeXBlIFBsYXRmb3JtQ0FBbmltYXRpb25N
YWM6OmZpbGxNb2RlKCkgY29uc3QKIHsKICAgICByZXR1cm4gZnJvbUNBRmlsbE1vZGVUeXBlKFtt
X2FuaW1hdGlvbi5nZXQoKSBmaWxsTW9kZV0pOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b246OnNldEZpbGxNb2RlKEZpbGxNb2RlVHlwZSB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1h
dGlvbk1hYzo6c2V0RmlsbE1vZGUoRmlsbE1vZGVUeXBlIHZhbHVlKQogewogICAgIFttX2FuaW1h
dGlvbi5nZXQoKSBzZXRGaWxsTW9kZTp0b0NBRmlsbE1vZGVUeXBlKHZhbHVlKV07CiB9CiAKLXZv
aWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVu
Y3Rpb24qIHZhbHVlLCBib29sIHJldmVyc2UpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6
OnNldFRpbWluZ0Z1bmN0aW9uKGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB2YWx1ZSwgYm9vbCByZXZl
cnNlKQogewogICAgIFttX2FuaW1hdGlvbi5nZXQoKSBzZXRUaW1pbmdGdW5jdGlvbjp0b0NBTWVk
aWFUaW1pbmdGdW5jdGlvbih2YWx1ZSwgcmV2ZXJzZSldOwogfQogCi12b2lkIFBsYXRmb3JtQ0FB
bmltYXRpb246OmNvcHlUaW1pbmdGdW5jdGlvbkZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlv
biogdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OmNvcHlUaW1pbmdGdW5jdGlv
bkZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCiB7Ci0gICAgW21fYW5pbWF0
aW9uLmdldCgpIHNldFRpbWluZ0Z1bmN0aW9uOlt2YWx1ZS0+bV9hbmltYXRpb24uZ2V0KCkgdGlt
aW5nRnVuY3Rpb25dXTsKKyAgICBbbV9hbmltYXRpb24uZ2V0KCkgc2V0VGltaW5nRnVuY3Rpb246
W3RvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYyh2YWx1ZSktPm1fYW5pbWF0aW9uLmdldCgpIHRpbWlu
Z0Z1bmN0aW9uXV07CiB9CiAKLWJvb2wgUGxhdGZvcm1DQUFuaW1hdGlvbjo6aXNSZW1vdmVkT25D
b21wbGV0aW9uKCkgY29uc3QKK2Jvb2wgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6aXNSZW1vdmVk
T25Db21wbGV0aW9uKCkgY29uc3QKIHsKICAgICByZXR1cm4gW21fYW5pbWF0aW9uLmdldCgpIGlz
UmVtb3ZlZE9uQ29tcGxldGlvbl07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0
UmVtb3ZlZE9uQ29tcGxldGlvbihib29sIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
TWFjOjpzZXRSZW1vdmVkT25Db21wbGV0aW9uKGJvb2wgdmFsdWUpCiB7CiAgICAgW21fYW5pbWF0
aW9uLmdldCgpIHNldFJlbW92ZWRPbkNvbXBsZXRpb246dmFsdWVdOwogfQogCi1ib29sIFBsYXRm
b3JtQ0FBbmltYXRpb246OmlzQWRkaXRpdmUoKSBjb25zdAorYm9vbCBQbGF0Zm9ybUNBQW5pbWF0
aW9uTWFjOjppc0FkZGl0aXZlKCkgY29uc3QKIHsKICAgICByZXR1cm4gW21fYW5pbWF0aW9uLmdl
dCgpIGlzQWRkaXRpdmVdOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEFkZGl0
aXZlKGJvb2wgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldEFkZGl0aXZl
KGJvb2wgdmFsdWUpCiB7CiAgICAgW21fYW5pbWF0aW9uLmdldCgpIHNldEFkZGl0aXZlOnZhbHVl
XTsKIH0KIAotUGxhdGZvcm1DQUFuaW1hdGlvbjo6VmFsdWVGdW5jdGlvblR5cGUgUGxhdGZvcm1D
QUFuaW1hdGlvbjo6dmFsdWVGdW5jdGlvbigpIGNvbnN0CitQbGF0Zm9ybUNBQW5pbWF0aW9uOjpW
YWx1ZUZ1bmN0aW9uVHlwZSBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjp2YWx1ZUZ1bmN0aW9uKCkg
Y29uc3QKIHsKICAgICBDQVZhbHVlRnVuY3Rpb24qIHZmID0gW21fYW5pbWF0aW9uLmdldCgpIHZh
bHVlRnVuY3Rpb25dOwogICAgIHJldHVybiBmcm9tQ0FWYWx1ZUZ1bmN0aW9uVHlwZShbdmYgbmFt
ZV0pOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFZhbHVlRnVuY3Rpb24oVmFs
dWVGdW5jdGlvblR5cGUgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFZh
bHVlRnVuY3Rpb24oVmFsdWVGdW5jdGlvblR5cGUgdmFsdWUpCiB7CiAgICAgW21fYW5pbWF0aW9u
LmdldCgpIHNldFZhbHVlRnVuY3Rpb246W0NBVmFsdWVGdW5jdGlvbiBmdW5jdGlvbldpdGhOYW1l
OnRvQ0FWYWx1ZUZ1bmN0aW9uVHlwZSh2YWx1ZSldXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpzZXRGcm9tVmFsdWUoZmxvYXQgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b25NYWM6OnNldEZyb21WYWx1ZShmbG9hdCB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlw
ZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CiAgICAgW3N0YXRpY19jYXN0PENBQmFzaWNB
bmltYXRpb24qPihtX2FuaW1hdGlvbi5nZXQoKSkgc2V0RnJvbVZhbHVlOltOU051bWJlciBudW1i
ZXJXaXRoRG91YmxlOnZhbHVlXV07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0
RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JiB2YWx1ZSkKK3Zv
aWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OlRy
YW5zZm9ybWF0aW9uTWF0cml4JiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9
IEJhc2ljKQogICAgICAgICByZXR1cm47CkBAIC0zNTksNyArMzYxLDcgQEAgdm9pZCBQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25N
YXRyaXgmIHZhbHUKICAgICBbc3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KG1fYW5pbWF0
aW9uLmdldCgpKSBzZXRGcm9tVmFsdWU6W05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDp2
YWx1ZV1dOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEZyb21WYWx1ZShjb25z
dCBGbG9hdFBvaW50M0QmIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRG
cm9tVmFsdWUoY29uc3QgRmxvYXRQb2ludDNEJiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9u
VHlwZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CkBAIC0zNzIsNyArMzc0LDcgQEAgdm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRGcm9tVmFsdWUoY29uc3QgRmxvYXRQb2ludDNEJiB2
YWx1ZSkKICAgICBbc3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdl
dCgpKSBzZXRGcm9tVmFsdWU6YXJyYXldOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246
OnNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYgdmFsdWUpCit2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25NYWM6OnNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYgdmFsdWUp
CiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKICAgICAgICAgcmV0dXJuOwpA
QCAtMzg3LDMwICszODksMzAgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRGcm9tVmFs
dWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImIHZhbHVlKQogfQogCiAjaWYgRU5BQkxFKENTU19GSUxU
RVJTKQotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRGcm9tVmFsdWUoY29uc3QgRmlsdGVy
T3BlcmF0aW9uKiBvcGVyYXRpb24sIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpCit2
b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldEZyb21WYWx1ZShjb25zdCBGaWx0ZXJPcGVy
YXRpb24qIG9wZXJhdGlvbiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkKIHsKICAg
ICBSZXRhaW5QdHI8aWQ+IHZhbHVlID0gUGxhdGZvcm1DQUZpbHRlcnM6OmZpbHRlclZhbHVlRm9y
T3BlcmF0aW9uKG9wZXJhdGlvbiwgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KTsKICAgICBb
c3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRGcm9t
VmFsdWU6dmFsdWUuZ2V0KCldOwogfQogI2VuZGlmCiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
bjo6Y29weUZyb21WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCit2
b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OmNvcHlGcm9tVmFsdWVGcm9tKGNvbnN0IFBsYXRm
b3JtQ0FBbmltYXRpb24qIHZhbHVlKQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFz
aWMgfHwgdmFsdWUtPmFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAKLSAgICBDQUJhc2ljQW5pbWF0aW9uKiBvdGhlckFuaW1hdGlvbiA9IHN0YXRpY19j
YXN0PENBQmFzaWNBbmltYXRpb24qPih2YWx1ZS0+bV9hbmltYXRpb24uZ2V0KCkpOworICAgIENB
QmFzaWNBbmltYXRpb24qIG90aGVyQW5pbWF0aW9uID0gc3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1h
dGlvbio+KHRvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYyh2YWx1ZSktPm1fYW5pbWF0aW9uLmdldCgp
KTsKICAgICBbc3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgp
KSBzZXRGcm9tVmFsdWU6W290aGVyQW5pbWF0aW9uIGZyb21WYWx1ZV1dOwogfQogCi12b2lkIFBs
YXRmb3JtQ0FBbmltYXRpb246OnNldFRvVmFsdWUoZmxvYXQgdmFsdWUpCit2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25NYWM6OnNldFRvVmFsdWUoZmxvYXQgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1h
dGlvblR5cGUoKSAhPSBCYXNpYykKICAgICAgICAgcmV0dXJuOwogICAgIFtzdGF0aWNfY2FzdDxD
QUJhc2ljQW5pbWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNldFRvVmFsdWU6W05TTnVtYmVy
IG51bWJlcldpdGhEb3VibGU6dmFsdWVdXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JiB2YWx1ZSkK
K3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAh
PSBCYXNpYykKICAgICAgICAgcmV0dXJuOwpAQCAtNDE4LDcgKzQyMCw3IEBAIHZvaWQgUGxhdGZv
cm1DQUFuaW1hdGlvbjo6c2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgdmFsdWUpCiAgICAgW3N0YXRpY19jYXN0PENBQmFzaWNBbmltYXRpb24qPihtX2FuaW1h
dGlvbi5nZXQoKSkgc2V0VG9WYWx1ZTpbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOnZh
bHVlXV07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VG9WYWx1ZShjb25zdCBG
bG9hdFBvaW50M0QmIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRUb1Zh
bHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUo
KSAhPSBCYXNpYykKICAgICAgICAgcmV0dXJuOwpAQCAtNDMxLDcgKzQzMyw3IEBAIHZvaWQgUGxh
dGZvcm1DQUFuaW1hdGlvbjo6c2V0VG9WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmIHZhbHVlKQog
ICAgIFtzdGF0aWNfY2FzdDxDQUJhc2ljQW5pbWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNl
dFRvVmFsdWU6YXJyYXldOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRvVmFs
dWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
TWFjOjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiB2YWx1ZSkKIHsKICAgICBpZiAo
YW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CkBAIC00NDYsMjUgKzQ0
OCwyNSBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRvVmFsdWUoY29uc3QgV2ViQ29y
ZTo6Q29sb3ImIHZhbHVlKQogfQogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQotdm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpzZXRUb1ZhbHVlKGNvbnN0IEZpbHRlck9wZXJhdGlvbiogb3BlcmF0
aW9uLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KQordm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uTWFjOjpzZXRUb1ZhbHVlKGNvbnN0IEZpbHRlck9wZXJhdGlvbiogb3BlcmF0aW9uLCBp
bnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KQogewogICAgIFJldGFpblB0cjxpZD4gdmFs
dWUgPSBQbGF0Zm9ybUNBRmlsdGVyczo6ZmlsdGVyVmFsdWVGb3JPcGVyYXRpb24ob3BlcmF0aW9u
LCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpOwogICAgIFtzdGF0aWNfY2FzdDxDQUJhc2lj
QW5pbWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNldFRvVmFsdWU6dmFsdWUuZ2V0KCldOwog
fQogI2VuZGlmCiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weVRvVmFsdWVGcm9tKGNv
bnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
TWFjOjpjb3B5VG9WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCiB7
CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYyB8fCB2YWx1ZS0+YW5pbWF0aW9uVHlw
ZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CiAgICAgICAgIAotICAgIENBQmFzaWNBbmlt
YXRpb24qIG90aGVyQW5pbWF0aW9uID0gc3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KHZh
bHVlLT5tX2FuaW1hdGlvbi5nZXQoKSk7CisgICAgQ0FCYXNpY0FuaW1hdGlvbiogb3RoZXJBbmlt
YXRpb24gPSBzdGF0aWNfY2FzdDxDQUJhc2ljQW5pbWF0aW9uKj4odG9QbGF0Zm9ybUNBQW5pbWF0
aW9uTWFjKHZhbHVlKS0+bV9hbmltYXRpb24uZ2V0KCkpOwogICAgIFtzdGF0aWNfY2FzdDxDQUJh
c2ljQW5pbWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNldFRvVmFsdWU6W290aGVyQW5pbWF0
aW9uIHRvVmFsdWVdXTsKIH0KIAogCiAvLyBLZXlmcmFtZS1hbmltYXRpb24gcHJvcGVydGllcy4K
LXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4m
IHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRWYWx1ZXMoY29uc3QgVmVj
dG9yPGZsb2F0PiYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBLZXlmcmFt
ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDc1LDcgKzQ3Nyw3IEBAIHZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mIHZhbHVlKQogICAgIFtzdGF0
aWNfY2FzdDxDQUtleWZyYW1lQW5pbWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNldFZhbHVl
czphcnJheV07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeD4mIHZhbHVlKQordm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRyYW5z
Zm9ybWF0aW9uTWF0cml4PiYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBL
ZXlmcmFtZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDg4LDcgKzQ5MCw3IEBAIHZvaWQgUGxhdGZv
cm1DQUFuaW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpUcmFuc2Zvcm1h
dGlvbk1hdHJpeD4mCiAgICAgW3N0YXRpY19jYXN0PENBS2V5ZnJhbWVBbmltYXRpb24qPihtX2Fu
aW1hdGlvbi5nZXQoKSkgc2V0VmFsdWVzOmFycmF5XTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPEZsb2F0UG9pbnQzRD4mIHZhbHVlKQordm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPEZsb2F0UG9p
bnQzRD4mIHZhbHVlKQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gS2V5ZnJhbWUpCiAg
ICAgICAgIHJldHVybjsKQEAgLTUwNiw3ICs1MDgsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b246OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8RmxvYXRQb2ludDNEPiYgdmFsdWUpCiAgICAgW3N0
YXRpY19jYXN0PENBS2V5ZnJhbWVBbmltYXRpb24qPihtX2FuaW1hdGlvbi5nZXQoKSkgc2V0VmFs
dWVzOmFycmF5XTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRWYWx1ZXMoY29u
c3QgVmVjdG9yPFdlYkNvcmU6OkNvbG9yPiYgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b25NYWM6OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+JiB2YWx1ZSkKIHsK
ICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZyYW1lKQogICAgICAgICByZXR1cm47CkBA
IC01MjYsNyArNTI4LDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRWYWx1ZXMoY29u
c3QgVmVjdG9yPFdlYkNvcmU6OkNvbG9yPiYgdmFsdWUpCiB9CiAKICNpZiBFTkFCTEUoQ1NTX0ZJ
TFRFUlMpCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8
UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4+JiB2YWx1ZXMsIGludCBpbnRlcm5hbEZpbHRlclByb3Bl
cnR5SW5kZXgpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFZhbHVlcyhjb25zdCBW
ZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4+JiB2YWx1ZXMsIGludCBpbnRlcm5hbEZpbHRl
clByb3BlcnR5SW5kZXgpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBLZXlmcmFtZSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtNTQxLDE2ICs1NDMsMTYgQEAgdm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+PiYg
dmFsdWUKIH0KICNlbmRpZgogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OmNvcHlWYWx1ZXNG
cm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uTWFjOjpjb3B5VmFsdWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1
ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZyYW1lIHx8IHZhbHVlLT5hbmlt
YXRpb25UeXBlKCkgIT0gS2V5ZnJhbWUpCiAgICAgICAgIHJldHVybjsKICAgICAgICAgCi0gICAg
Q0FLZXlmcmFtZUFuaW1hdGlvbiogb3RoZXJBbmltYXRpb24gPSBzdGF0aWNfY2FzdDxDQUtleWZy
YW1lQW5pbWF0aW9uKj4odmFsdWUtPm1fYW5pbWF0aW9uLmdldCgpKTsKKyAgICBDQUtleWZyYW1l
QW5pbWF0aW9uKiBvdGhlckFuaW1hdGlvbiA9IHN0YXRpY19jYXN0PENBS2V5ZnJhbWVBbmltYXRp
b24qPih0b1BsYXRmb3JtQ0FBbmltYXRpb25NYWModmFsdWUpLT5tX2FuaW1hdGlvbi5nZXQoKSk7
CiAgICAgW3N0YXRpY19jYXN0PENBS2V5ZnJhbWVBbmltYXRpb24qPihtX2FuaW1hdGlvbi5nZXQo
KSkgc2V0VmFsdWVzOltvdGhlckFuaW1hdGlvbiB2YWx1ZXNdXTsKIH0KIAotdm9pZCBQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpzZXRLZXlUaW1lcyhjb25zdCBWZWN0b3I8ZmxvYXQ+JiB2YWx1ZSkKK3Zv
aWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0S2V5VGltZXMoY29uc3QgVmVjdG9yPGZsb2F0
PiYgdmFsdWUpCiB7CiAgICAgTlNNdXRhYmxlQXJyYXkqIGFycmF5ID0gW05TTXV0YWJsZUFycmF5
IGFycmF5XTsKIApAQCAtNTYwLDEzICs1NjIsMTMgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpzZXRLZXlUaW1lcyhjb25zdCBWZWN0b3I8ZmxvYXQ+JiB2YWx1ZSkKICAgICBbc3RhdGljX2Nh
c3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRLZXlUaW1lczph
cnJheV07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weUtleVRpbWVzRnJvbShj
b25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
bk1hYzo6Y29weUtleVRpbWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkK
IHsKLSAgICBDQUtleWZyYW1lQW5pbWF0aW9uKiBvdGhlciA9IHN0YXRpY19jYXN0PENBS2V5ZnJh
bWVBbmltYXRpb24qPih2YWx1ZS0+bV9hbmltYXRpb24uZ2V0KCkpOworICAgIENBS2V5ZnJhbWVB
bmltYXRpb24qIG90aGVyID0gc3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+KHRvUGxh
dGZvcm1DQUFuaW1hdGlvbk1hYyh2YWx1ZSktPm1fYW5pbWF0aW9uLmdldCgpKTsKICAgICBbc3Rh
dGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRLZXlU
aW1lczpbb3RoZXIga2V5VGltZXNdXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpz
ZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4mIHZh
bHVlLCBib29sIHJldmVyc2UpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFRpbWlu
Z0Z1bmN0aW9ucyhjb25zdCBWZWN0b3I8Y29uc3QgVGltaW5nRnVuY3Rpb24qPiYgdmFsdWUsIGJv
b2wgcmV2ZXJzZSkKIHsKICAgICBOU011dGFibGVBcnJheSogYXJyYXkgPSBbTlNNdXRhYmxlQXJy
YXkgYXJyYXldOwogCkBAIC01NzYsOCArNTc4LDggQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4K
ICAgICBbc3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgp
KSBzZXRUaW1pbmdGdW5jdGlvbnM6YXJyYXldOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b246OmNvcHlUaW1pbmdGdW5jdGlvbnNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZh
bHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpjb3B5VGltaW5nRnVuY3Rpb25zRnJv
bShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIHsKLSAgICBDQUtleWZyYW1lQW5p
bWF0aW9uKiBvdGhlciA9IHN0YXRpY19jYXN0PENBS2V5ZnJhbWVBbmltYXRpb24qPih2YWx1ZS0+
bV9hbmltYXRpb24uZ2V0KCkpOworICAgIENBS2V5ZnJhbWVBbmltYXRpb24qIG90aGVyID0gc3Rh
dGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+KHRvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYyh2
YWx1ZSktPm1fYW5pbWF0aW9uLmdldCgpKTsKICAgICBbc3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFu
aW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRUaW1pbmdGdW5jdGlvbnM6W290aGVyIHRp
bWluZ0Z1bmN0aW9uc11dOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0KaW5kZXggNjg1NmEy
MmY0YzQzZjU0MmUxMDg4MTVhYWFjY2VkYTBmMzg0NzA5My4uY2Y4ZTMwYWZlMTZmZTc5YTBjZDhi
YmJlNTkxYWFhN2Y0NTA5MGE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCkBAIC0zMiw2
ICszMiw3IEBACiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHQuaCIKICNpbXBvcnQgIkdyYXBoaWNz
TGF5ZXJDQS5oIgogI2ltcG9ydCAiTGVuZ3RoRnVuY3Rpb25zLmgiCisjaW1wb3J0ICJQbGF0Zm9y
bUNBQW5pbWF0aW9uTWFjLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybUNBRmlsdGVycy5oIgogI2ltcG9y
dCAiUGxhdGZvcm1DQUZpbHRlcnNNYWMuaCIKICNpbXBvcnQgIlNjcm9sbGJhclRoZW1lTWFjLmgi
CkBAIC0zOTUsMTIgKzM5NiwxMiBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6YWRkQW5pbWF0
aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBQbGF0Zm9ybUNBQW5pbWF0aQogICAgICAgICBb
d2ViQW5pbWF0aW9uRGVsZWdhdGUgc2V0T3duZXI6dGhpc107CiAgICAgfQogICAgIAotICAgIENB
UHJvcGVydHlBbmltYXRpb24qIHByb3BlcnR5QW5pbWF0aW9uID0gc3RhdGljX2Nhc3Q8Q0FQcm9w
ZXJ0eUFuaW1hdGlvbio+KGFuaW1hdGlvbi0+cGxhdGZvcm1BbmltYXRpb24oKSk7CisgICAgQ0FQ
cm9wZXJ0eUFuaW1hdGlvbiogcHJvcGVydHlBbmltYXRpb24gPSBzdGF0aWNfY2FzdDxDQVByb3Bl
cnR5QW5pbWF0aW9uKj4odG9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKGFuaW1hdGlvbiktPnBsYXRm
b3JtQW5pbWF0aW9uKCkpOwogICAgIGlmICghW3Byb3BlcnR5QW5pbWF0aW9uIGRlbGVnYXRlXSkK
ICAgICAgICAgW3Byb3BlcnR5QW5pbWF0aW9uIHNldERlbGVnYXRlOnN0YXRpY19jYXN0PGlkPiht
X2RlbGVnYXRlLmdldCgpKV07CiAgICAgIAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UwotICAgIFttX2xheWVyLmdldCgpIGFkZEFuaW1hdGlvbjphbmltYXRpb24tPm1fYW5pbWF0aW9u
LmdldCgpIGZvcktleTprZXldOworICAgIFttX2xheWVyLmdldCgpIGFkZEFuaW1hdGlvbjpwcm9w
ZXJ0eUFuaW1hdGlvbiBmb3JLZXk6a2V5XTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
CiB9CiAKQEAgLTQxNiw3ICs0MTcsNyBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+
IFBsYXRmb3JtQ0FMYXllck1hYzo6YW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZwogICAgIENB
UHJvcGVydHlBbmltYXRpb24qIHByb3BlcnR5QW5pbWF0aW9uID0gc3RhdGljX2Nhc3Q8Q0FQcm9w
ZXJ0eUFuaW1hdGlvbio+KFttX2xheWVyLmdldCgpIGFuaW1hdGlvbkZvcktleTprZXldKTsKICAg
ICBpZiAoIXByb3BlcnR5QW5pbWF0aW9uKQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4g
UGxhdGZvcm1DQUFuaW1hdGlvbjo6Y3JlYXRlKHByb3BlcnR5QW5pbWF0aW9uKTsKKyAgICByZXR1
cm4gUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6Y3JlYXRlKHByb3BlcnR5QW5pbWF0aW9uKTsKIH0K
IAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldE1hc2soUGxhdGZvcm1DQUxheWVyKiBsYXll
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9U
aWxlQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21h
Yy9UaWxlQ29udHJvbGxlci5tbQppbmRleCBmZTNlODBlYjA2NWFiNDhhZTc3YmI3YzUyNjZiMWM0
YzhjODc0NWU2Li5mZWMzOWJhNzNhNTg3NDc0MjViNTdmMWQzMmU5NjRjMTRiM2E3MWUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNvbnRy
b2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1Rp
bGVDb250cm9sbGVyLm1tCkBAIC0yNiw2ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNp
bXBvcnQgIlRpbGVDb250cm9sbGVyLmgiCiAKKyNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgog
I2ltcG9ydCAiSW50UmVjdC5oIgogI2ltcG9ydCAiUGxhdGZvcm1DQUxheWVyLmgiCiAjaW1wb3J0
ICJSZWdpb24uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcAppbmRleCAyYTVj
M2YyMjgyMTVlNmE2OGFkY2FhYTdiMzQ5YmI4M2VlYjVhYzkxLi5jYzFjMjZlMTc0MTcxMTUwNTMy
N2ZhM2Y5NDNlZGZiYmYxZTY0MmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FBbmltYXRpb25XaW4u
Y3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
NSw3ICsyNSw4IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2luY2x1ZGUgIlBsYXRmb3Jt
Q0FBbmltYXRpb24uaCIKKyNpZiBQTEFURk9STShXSU4pCisjaW5jbHVkZSAiUGxhdGZvcm1DQUFu
aW1hdGlvbldpbi5oIgogCiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAi
VGltaW5nRnVuY3Rpb24uaCIKQEAgLTE0MSwxOCArMTQyLDE4IEBAIHN0YXRpYyBSZXRhaW5QdHI8
Q0FDRlRpbWluZ0Z1bmN0aW9uUmVmPiB0b0NBQ0ZUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdG
dW5jdGlvCiAgICAgcmV0dXJuIENBQ0ZUaW1pbmdGdW5jdGlvbkdldEZ1bmN0aW9uV2l0aE5hbWUo
a0NBQ0ZUaW1pbmdGdW5jdGlvbkxpbmVhcik7CiB9CiAKLVBhc3NSZWZQdHI8UGxhdGZvcm1DQUFu
aW1hdGlvbj4gUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y3JlYXRlKEFuaW1hdGlvblR5cGUgdHlwZSwg
Y29uc3QgU3RyaW5nJiBrZXlQYXRoKQorUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQ
bGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpjcmVhdGUoQW5pbWF0aW9uVHlwZSB0eXBlLCBjb25zdCBT
dHJpbmcmIGtleVBhdGgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQbGF0Zm9ybUNBQW5p
bWF0aW9uKHR5cGUsIGtleVBhdGgpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBsYXRmb3Jt
Q0FBbmltYXRpb25XaW4odHlwZSwga2V5UGF0aCkpOwogfQogCi1QYXNzUmVmUHRyPFBsYXRmb3Jt
Q0FBbmltYXRpb24+IFBsYXRmb3JtQ0FBbmltYXRpb246OmNyZWF0ZShQbGF0Zm9ybUFuaW1hdGlv
blJlZiBhbmltYXRpb24pCitQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRmb3Jt
Q0FBbmltYXRpb25XaW46OmNyZWF0ZShQbGF0Zm9ybUFuaW1hdGlvblJlZiBhbmltYXRpb24pCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQbGF0Zm9ybUNBQW5pbWF0aW9uKGFuaW1hdGlvbikp
OworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGxhdGZvcm1DQUFuaW1hdGlvbldpbihhbmltYXRp
b24pKTsKIH0KIAotUGxhdGZvcm1DQUFuaW1hdGlvbjo6UGxhdGZvcm1DQUFuaW1hdGlvbihBbmlt
YXRpb25UeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCkKLSAgICA6IG1fdHlwZSh0eXBl
KQorUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6UGxhdGZvcm1DQUFuaW1hdGlvbldpbihBbmltYXRp
b25UeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCkKKyAgICA6IFBsYXRmb3JtQ0FBbmlt
YXRpb24odHlwZSkKIHsKICAgICBpZiAodHlwZSA9PSBCYXNpYykKICAgICAgICAgbV9hbmltYXRp
b24gPSBhZG9wdENGKENBQ0ZBbmltYXRpb25DcmVhdGUoa0NBQ0ZCYXNpY0FuaW1hdGlvbikpOwpA
QCAtMTYyLDEyICsxNjMsMTIgQEAgUGxhdGZvcm1DQUFuaW1hdGlvbjo6UGxhdGZvcm1DQUFuaW1h
dGlvbihBbmltYXRpb25UeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGEKICAgICBDQUNGQW5p
bWF0aW9uU2V0S2V5UGF0aChtX2FuaW1hdGlvbi5nZXQoKSwga2V5UGF0aC5jcmVhdGVDRlN0cmlu
ZygpLmdldCgpKTsKIH0KIAotUGxhdGZvcm1DQUFuaW1hdGlvbjo6UGxhdGZvcm1DQUFuaW1hdGlv
bihQbGF0Zm9ybUFuaW1hdGlvblJlZiBhbmltYXRpb24pCitQbGF0Zm9ybUNBQW5pbWF0aW9uV2lu
OjpQbGF0Zm9ybUNBQW5pbWF0aW9uV2luKFBsYXRmb3JtQW5pbWF0aW9uUmVmIGFuaW1hdGlvbikK
IHsKICAgICBpZiAoQ0FDRkFuaW1hdGlvbkdldENsYXNzKGFuaW1hdGlvbikgPT0ga0NBQ0ZCYXNp
Y0FuaW1hdGlvbikKLSAgICAgICAgbV90eXBlID0gQmFzaWM7CisgICAgICAgIHNldFR5cGUoQmFz
aWMpOwogICAgIGVsc2UgaWYgKENBQ0ZBbmltYXRpb25HZXRDbGFzcyhhbmltYXRpb24pID09IGtD
QUNGS2V5ZnJhbWVBbmltYXRpb24pCi0gICAgICAgIG1fdHlwZSA9IEtleWZyYW1lOworICAgICAg
ICBzZXRUeXBlKEtleWZyYW1lKTsKICAgICBlbHNlIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTE3Niw3ICsxNzcsNyBAQCBQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKFBsYXRmb3JtQW5pbWF0aW9uUmVmIGFuaW1hdGlv
bikKICAgICBtX2FuaW1hdGlvbiA9IGFuaW1hdGlvbjsKIH0KIAotUGFzc1JlZlB0cjxQbGF0Zm9y
bUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5KCkgY29uc3QKK1Bhc3NSZWZQ
dHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6Y29weSgpIGNv
bnN0CiB7CiAgICAgUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGFuaW1hdGlvbiA9IGNyZWF0
ZShhbmltYXRpb25UeXBlKCksIGtleVBhdGgoKSk7CiAgICAgCkBAIC0yMDYsMTM2ICsyMDcsMTM2
IEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUFuaW1hdGlvbjo6
Y29weSgpIGNvbnN0CiAgICAgcmV0dXJuIGFuaW1hdGlvbjsKIH0KIAotUGxhdGZvcm1DQUFuaW1h
dGlvbjo6flBsYXRmb3JtQ0FBbmltYXRpb24oKQorUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6flBs
YXRmb3JtQ0FBbmltYXRpb25XaW4oKQogewogfQogCi1QbGF0Zm9ybUFuaW1hdGlvblJlZiBQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpwbGF0Zm9ybUFuaW1hdGlvbigpIGNvbnN0CitQbGF0Zm9ybUFuaW1h
dGlvblJlZiBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpwbGF0Zm9ybUFuaW1hdGlvbigpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIG1fYW5pbWF0aW9uLmdldCgpOwogfQogCi1TdHJpbmcgUGxhdGZvcm1D
QUFuaW1hdGlvbjo6a2V5UGF0aCgpIGNvbnN0CitTdHJpbmcgUGxhdGZvcm1DQUFuaW1hdGlvbldp
bjo6a2V5UGF0aCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIENBQ0ZBbmltYXRpb25HZXRLZXlQYXRo
KG1fYW5pbWF0aW9uLmdldCgpKTsKIH0KIAotQ0ZUaW1lSW50ZXJ2YWwgUGxhdGZvcm1DQUFuaW1h
dGlvbjo6YmVnaW5UaW1lKCkgY29uc3QKK0NGVGltZUludGVydmFsIFBsYXRmb3JtQ0FBbmltYXRp
b25XaW46OmJlZ2luVGltZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIENBQ0ZBbmltYXRpb25HZXRC
ZWdpblRpbWUobV9hbmltYXRpb24uZ2V0KCkpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b246OnNldEJlZ2luVGltZShDRlRpbWVJbnRlcnZhbCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvbldpbjo6c2V0QmVnaW5UaW1lKENGVGltZUludGVydmFsIHZhbHVlKQogewogICAgIENB
Q0ZBbmltYXRpb25TZXRCZWdpblRpbWUobV9hbmltYXRpb24uZ2V0KCksIHZhbHVlKTsKIH0KIAot
Q0ZUaW1lSW50ZXJ2YWwgUGxhdGZvcm1DQUFuaW1hdGlvbjo6ZHVyYXRpb24oKSBjb25zdAorQ0ZU
aW1lSW50ZXJ2YWwgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6ZHVyYXRpb24oKSBjb25zdAogewog
ICAgIHJldHVybiBDQUNGQW5pbWF0aW9uR2V0RHVyYXRpb24obV9hbmltYXRpb24uZ2V0KCkpOwog
fQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldER1cmF0aW9uKENGVGltZUludGVydmFs
IHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXREdXJhdGlvbihDRlRpbWVJ
bnRlcnZhbCB2YWx1ZSkKIHsKICAgICBDQUNGQW5pbWF0aW9uU2V0RHVyYXRpb24obV9hbmltYXRp
b24uZ2V0KCksIHZhbHVlKTsKIH0KIAotZmxvYXQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c3BlZWQo
KSBjb25zdAorZmxvYXQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c3BlZWQoKSBjb25zdAogewog
ICAgIHJldHVybiBDQUNGQW5pbWF0aW9uR2V0U3BlZWQobV9hbmltYXRpb24uZ2V0KCkpOwogfQog
Ci12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFNwZWVkKGZsb2F0IHZhbHVlKQordm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRTcGVlZChmbG9hdCB2YWx1ZSkKIHsKICAgICBDQUNG
QW5pbWF0aW9uU2V0U3BlZWQobV9hbmltYXRpb24uZ2V0KCksIHZhbHVlKTsKIH0KIAotQ0ZUaW1l
SW50ZXJ2YWwgUGxhdGZvcm1DQUFuaW1hdGlvbjo6dGltZU9mZnNldCgpIGNvbnN0CitDRlRpbWVJ
bnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjp0aW1lT2Zmc2V0KCkgY29uc3QKIHsKICAg
ICByZXR1cm4gQ0FDRkFuaW1hdGlvbkdldFRpbWVPZmZzZXQobV9hbmltYXRpb24uZ2V0KCkpOwog
fQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRpbWVPZmZzZXQoQ0ZUaW1lSW50ZXJ2
YWwgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldFRpbWVPZmZzZXQoQ0ZU
aW1lSW50ZXJ2YWwgdmFsdWUpCiB7CiAgICAgQ0FDRkFuaW1hdGlvblNldFRpbWVPZmZzZXQobV9h
bmltYXRpb24uZ2V0KCksIHZhbHVlKTsKIH0KIAotZmxvYXQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6
cmVwZWF0Q291bnQoKSBjb25zdAorZmxvYXQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6cmVwZWF0
Q291bnQoKSBjb25zdAogewogICAgIHJldHVybiBDQUNGQW5pbWF0aW9uR2V0UmVwZWF0Q291bnQo
bV9hbmltYXRpb24uZ2V0KCkpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFJl
cGVhdENvdW50KGZsb2F0IHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRS
ZXBlYXRDb3VudChmbG9hdCB2YWx1ZSkKIHsKICAgICBDQUNGQW5pbWF0aW9uU2V0UmVwZWF0Q291
bnQobV9hbmltYXRpb24uZ2V0KCksIHZhbHVlKTsKIH0KIAotYm9vbCBQbGF0Zm9ybUNBQW5pbWF0
aW9uOjphdXRvcmV2ZXJzZXMoKSBjb25zdAorYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjph
dXRvcmV2ZXJzZXMoKSBjb25zdAogewogICAgIHJldHVybiBDQUNGQW5pbWF0aW9uR2V0QXV0b3Jl
dmVyc2VzKG1fYW5pbWF0aW9uLmdldCgpKTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpzZXRBdXRvcmV2ZXJzZXMoYm9vbCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldp
bjo6c2V0QXV0b3JldmVyc2VzKGJvb2wgdmFsdWUpCiB7CiAgICAgQ0FDRkFuaW1hdGlvblNldEF1
dG9yZXZlcnNlcyhtX2FuaW1hdGlvbi5nZXQoKSwgdmFsdWUpOwogfQogCi1QbGF0Zm9ybUNBQW5p
bWF0aW9uOjpGaWxsTW9kZVR5cGUgUGxhdGZvcm1DQUFuaW1hdGlvbjo6ZmlsbE1vZGUoKSBjb25z
dAorUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6RmlsbE1vZGVUeXBlIFBsYXRmb3JtQ0FBbmltYXRp
b25XaW46OmZpbGxNb2RlKCkgY29uc3QKIHsKICAgICByZXR1cm4gZnJvbUNBQ0ZGaWxsTW9kZVR5
cGUoQ0FDRkFuaW1hdGlvbkdldEZpbGxNb2RlKG1fYW5pbWF0aW9uLmdldCgpKSk7CiB9CiAKLXZv
aWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0RmlsbE1vZGUoRmlsbE1vZGVUeXBlIHZhbHVlKQor
dm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRGaWxsTW9kZShGaWxsTW9kZVR5cGUgdmFs
dWUpCiB7CiAgICAgQ0FDRkFuaW1hdGlvblNldEZpbGxNb2RlKG1fYW5pbWF0aW9uLmdldCgpLCB0
b0NBQ0ZGaWxsTW9kZVR5cGUodmFsdWUpKTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpzZXRUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiogdmFsdWUsIGJvb2wgcmV2
ZXJzZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0VGltaW5nRnVuY3Rpb24oY29u
c3QgVGltaW5nRnVuY3Rpb24qIHZhbHVlLCBib29sIHJldmVyc2UpCiB7CiAgICAgVU5VU0VEX1BB
UkFNKHJldmVyc2UpOwogICAgIENBQ0ZBbmltYXRpb25TZXRUaW1pbmdGdW5jdGlvbihtX2FuaW1h
dGlvbi5nZXQoKSwgdG9DQUNGVGltaW5nRnVuY3Rpb24odmFsdWUsIHJldmVyc2UpLmdldCgpKTsK
IH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5VGltaW5nRnVuY3Rpb25Gcm9tKGNv
bnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
V2luOjpjb3B5VGltaW5nRnVuY3Rpb25Gcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZh
bHVlKQogewotICAgIENBQ0ZUaW1pbmdGdW5jdGlvblJlZiB0aW1pbmdGdW5jID0gQ0FDRkFuaW1h
dGlvbkdldFRpbWluZ0Z1bmN0aW9uKHZhbHVlLT5tX2FuaW1hdGlvbi5nZXQoKSk7CisgICAgQ0FD
RlRpbWluZ0Z1bmN0aW9uUmVmIHRpbWluZ0Z1bmMgPSBDQUNGQW5pbWF0aW9uR2V0VGltaW5nRnVu
Y3Rpb24odG9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luKHZhbHVlKS0+bV9hbmltYXRpb24uZ2V0KCkp
OwogICAgIGlmICh0aW1pbmdGdW5jKQogICAgICAgICBDQUNGQW5pbWF0aW9uU2V0VGltaW5nRnVu
Y3Rpb24obV9hbmltYXRpb24uZ2V0KCksIHRpbWluZ0Z1bmMpOwogfQogCi1ib29sIFBsYXRmb3Jt
Q0FBbmltYXRpb246OmlzUmVtb3ZlZE9uQ29tcGxldGlvbigpIGNvbnN0Citib29sIFBsYXRmb3Jt
Q0FBbmltYXRpb25XaW46OmlzUmVtb3ZlZE9uQ29tcGxldGlvbigpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIENBQ0ZBbmltYXRpb25Jc1JlbW92ZWRPbkNvbXBsZXRpb24obV9hbmltYXRpb24uZ2V0KCkp
OwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFJlbW92ZWRPbkNvbXBsZXRpb24o
Ym9vbCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0UmVtb3ZlZE9uQ29t
cGxldGlvbihib29sIHZhbHVlKQogewogICAgIENBQ0ZBbmltYXRpb25TZXRSZW1vdmVkT25Db21w
bGV0aW9uKG1fYW5pbWF0aW9uLmdldCgpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgUGxhdGZvcm1DQUFu
aW1hdGlvbjo6aXNBZGRpdGl2ZSgpIGNvbnN0Citib29sIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46
OmlzQWRkaXRpdmUoKSBjb25zdAogewogICAgIHJldHVybiBDQUNGQW5pbWF0aW9uSXNBZGRpdGl2
ZShtX2FuaW1hdGlvbi5nZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0
QWRkaXRpdmUoYm9vbCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0QWRk
aXRpdmUoYm9vbCB2YWx1ZSkKIHsKICAgICBDQUNGQW5pbWF0aW9uU2V0QWRkaXRpdmUobV9hbmlt
YXRpb24uZ2V0KCksIHZhbHVlKTsKIH0KIAotUGxhdGZvcm1DQUFuaW1hdGlvbjo6VmFsdWVGdW5j
dGlvblR5cGUgUGxhdGZvcm1DQUFuaW1hdGlvbjo6dmFsdWVGdW5jdGlvbigpIGNvbnN0CitQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpWYWx1ZUZ1bmN0aW9uVHlwZSBQbGF0Zm9ybUNBQW5pbWF0aW9uV2lu
Ojp2YWx1ZUZ1bmN0aW9uKCkgY29uc3QKIHsKICAgICBDQUNGVmFsdWVGdW5jdGlvblJlZiBmdW5j
ID0gQ0FDRkFuaW1hdGlvbkdldFZhbHVlRnVuY3Rpb24obV9hbmltYXRpb24uZ2V0KCkpOwogICAg
IHJldHVybiBmdW5jID8gZnJvbUNBQ0ZWYWx1ZUZ1bmN0aW9uVHlwZShDQUNGVmFsdWVGdW5jdGlv
bkdldE5hbWUoZnVuYykpIDogTm9WYWx1ZUZ1bmN0aW9uOwogfQogCi12b2lkIFBsYXRmb3JtQ0FB
bmltYXRpb246OnNldFZhbHVlRnVuY3Rpb24oVmFsdWVGdW5jdGlvblR5cGUgdmFsdWUpCit2b2lk
IFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldFZhbHVlRnVuY3Rpb24oVmFsdWVGdW5jdGlvblR5
cGUgdmFsdWUpCiB7CiAgICAgQ0ZTdHJpbmdSZWYgdmFsdWVTdHJpbmcgPSB0b0NBQ0ZWYWx1ZUZ1
bmN0aW9uVHlwZSh2YWx1ZSk7CiAgICAgQ0FDRkFuaW1hdGlvblNldFZhbHVlRnVuY3Rpb24obV9h
bmltYXRpb24uZ2V0KCksIHZhbHVlU3RyaW5nID8gQ0FDRlZhbHVlRnVuY3Rpb25HZXRGdW5jdGlv
bldpdGhOYW1lKHZhbHVlU3RyaW5nKSA6IDApOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b246OnNldEZyb21WYWx1ZShmbG9hdCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldp
bjo6c2V0RnJvbVZhbHVlKGZsb2F0IHZhbHVlKQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkg
IT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKQEAgLTM0NCw3ICszNDUsNyBAQCB2b2lkIFBsYXRm
b3JtQ0FBbmltYXRpb246OnNldEZyb21WYWx1ZShmbG9hdCB2YWx1ZSkKICAgICBDQUNGQW5pbWF0
aW9uU2V0RnJvbVZhbHVlKG1fYW5pbWF0aW9uLmdldCgpLCB2LmdldCgpKTsKIH0KIAotdm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6VHJhbnNmb3Jt
YXRpb25NYXRyaXgmIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRGcm9t
VmFsdWUoY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmIHZhbHVlKQogewogICAg
IGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKQEAgLTM1Myw3
ICszNTQsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEZyb21WYWx1ZShjb25zdCBX
ZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdmFsdQogICAgIENBQ0ZBbmltYXRpb25TZXRG
cm9tVmFsdWUobV9hbmltYXRpb24uZ2V0KCksIHYuZ2V0KCkpOwogfQogCi12b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb246OnNldEZyb21WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmIHZhbHVlKQordm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRGcm9tVmFsdWUoY29uc3QgRmxvYXRQb2ludDNE
JiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQogICAgICAgICBy
ZXR1cm47CkBAIC0zNjMsNyArMzY0LDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRG
cm9tVmFsdWUoY29uc3QgRmxvYXRQb2ludDNEJiB2YWx1ZSkKICAgICBDQUNGQW5pbWF0aW9uU2V0
RnJvbVZhbHVlKG1fYW5pbWF0aW9uLmdldCgpLCB2LmdldCgpKTsKIH0KIAotdm9pZCBQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImIHZhbHVlKQor
dm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6
Q29sb3ImIHZhbHVlKQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCiAgICAg
ICAgIHJldHVybjsKQEAgLTM3NCwyMSArMzc1LDIxIEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
bjo6c2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiB2YWx1ZSkKIH0KIAogI2lmIEVO
QUJMRShDU1NfRklMVEVSUykKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0RnJvbVZhbHVl
KGNvbnN0IEZpbHRlck9wZXJhdGlvbiosIGludCkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldp
bjo6c2V0RnJvbVZhbHVlKGNvbnN0IEZpbHRlck9wZXJhdGlvbiosIGludCkKIHsKICAgICAvLyBG
SVhNRTogSGFyZHdhcmUgZmlsdGVyIGFuaW1hdGlvbiBub3QgaW1wbGVtZW50ZWQgb24gV2luZG93
cwogfQogI2VuZGlmCiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weUZyb21WYWx1ZUZy
b20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb25XaW46OmNvcHlGcm9tVmFsdWVGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZh
bHVlKQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMgfHwgdmFsdWUtPmFuaW1h
dGlvblR5cGUoKSAhPSBCYXNpYykKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIENBQ0ZBbmlt
YXRpb25TZXRGcm9tVmFsdWUobV9hbmltYXRpb24uZ2V0KCksIENBQ0ZBbmltYXRpb25HZXRGcm9t
VmFsdWUodmFsdWUtPnBsYXRmb3JtQW5pbWF0aW9uKCkpKTsKKyAgICBDQUNGQW5pbWF0aW9uU2V0
RnJvbVZhbHVlKG1fYW5pbWF0aW9uLmdldCgpLCBDQUNGQW5pbWF0aW9uR2V0RnJvbVZhbHVlKHRv
UGxhdGZvcm1DQUFuaW1hdGlvbldpbih2YWx1ZSktPnBsYXRmb3JtQW5pbWF0aW9uKCkpKTsKIH0K
IAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUb1ZhbHVlKGZsb2F0IHZhbHVlKQordm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRUb1ZhbHVlKGZsb2F0IHZhbHVlKQogewogICAg
IGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKQEAgLTM5Nyw3
ICszOTgsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRvVmFsdWUoZmxvYXQgdmFs
dWUpCiAgICAgQ0FDRkFuaW1hdGlvblNldFRvVmFsdWUobV9hbmltYXRpb24uZ2V0KCksIHYuZ2V0
KCkpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRvVmFsdWUoY29uc3QgV2Vi
Q29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0
aW9uV2luOjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JiB2
YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1
cm47CkBAIC00MDYsNyArNDA3LDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUb1Zh
bHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JiB2YWx1ZSkKICAgICBDQUNG
QW5pbWF0aW9uU2V0VG9WYWx1ZShtX2FuaW1hdGlvbi5nZXQoKSwgdi5nZXQoKSk7CiB9CiAKLXZv
aWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VG9WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmIHZh
bHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRUb1ZhbHVlKGNvbnN0IEZsb2F0
UG9pbnQzRCYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKICAg
ICAgICAgcmV0dXJuOwpAQCAtNDE2LDcgKzQxNyw3IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
bjo6c2V0VG9WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmIHZhbHVlKQogICAgIENBQ0ZBbmltYXRp
b25TZXRUb1ZhbHVlKG1fYW5pbWF0aW9uLmdldCgpLCB2LmdldCgpKTsKIH0KIAotdm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiB2YWx1ZSkK
K3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpD
b2xvciYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKICAgICAg
ICAgcmV0dXJuOwpAQCAtNDI3LDIzICs0MjgsMjIgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiB2YWx1ZSkKIH0KIAogI2lmIEVOQUJM
RShDU1NfRklMVEVSUykKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VG9WYWx1ZShjb25z
dCBGaWx0ZXJPcGVyYXRpb24qLCBpbnQpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNl
dFRvVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiwgaW50KQogewogICAgIC8vIEZJWE1FOiBI
YXJkd2FyZSBmaWx0ZXIgYW5pbWF0aW9uIG5vdCBpbXBsZW1lbnRlZCBvbiBXaW5kb3dzCiB9CiAj
ZW5kaWYKIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5VG9WYWx1ZUZyb20oY29uc3Qg
UGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46
OmNvcHlUb1ZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIHsKICAg
ICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljIHx8IHZhbHVlLT5hbmltYXRpb25UeXBlKCkg
IT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKICAgICAgICAgCi0gICAgQ0FDRkFuaW1hdGlvblNl
dFRvVmFsdWUobV9hbmltYXRpb24uZ2V0KCksIENBQ0ZBbmltYXRpb25HZXRUb1ZhbHVlKHZhbHVl
LT5wbGF0Zm9ybUFuaW1hdGlvbigpKSk7CisgICAgQ0FDRkFuaW1hdGlvblNldFRvVmFsdWUobV9h
bmltYXRpb24uZ2V0KCksIENBQ0ZBbmltYXRpb25HZXRUb1ZhbHVlKHRvUGxhdGZvcm1DQUFuaW1h
dGlvbldpbih2YWx1ZSktPnBsYXRmb3JtQW5pbWF0aW9uKCkpKTsKIH0KIAotCiAvLyBLZXlmcmFt
ZS1hbmltYXRpb24gcHJvcGVydGllcy4KLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFs
dWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
V2luOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYgdmFsdWUpCiB7CiAgICAgaWYgKGFu
aW1hdGlvblR5cGUoKSAhPSBLZXlmcmFtZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDU3LDcgKzQ1
Nyw3IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3Rvcjxm
bG9hdD4mIHZhbHVlKQogICAgIENBQ0ZBbmltYXRpb25TZXRWYWx1ZXMobV9hbmltYXRpb24uZ2V0
KCksIGFycmF5LmdldCgpKTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRWYWx1
ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiYgdmFsdWUpCit2
b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg+JiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlw
ZSgpICE9IEtleWZyYW1lKQogICAgICAgICByZXR1cm47CkBAIC00NzEsNyArNDcxLDcgQEAgdm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRy
YW5zZm9ybWF0aW9uTWF0cml4PiYKICAgICBDQUNGQW5pbWF0aW9uU2V0VmFsdWVzKG1fYW5pbWF0
aW9uLmdldCgpLCBhcnJheS5nZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6
c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxGbG9hdFBvaW50M0Q+JiB2YWx1ZSkKK3ZvaWQgUGxhdGZv
cm1DQUFuaW1hdGlvbldpbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxGbG9hdFBvaW50M0Q+JiB2
YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZyYW1lKQogICAgICAgICBy
ZXR1cm47CkBAIC00ODYsNyArNDg2LDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRW
YWx1ZXMoY29uc3QgVmVjdG9yPEZsb2F0UG9pbnQzRD4mIHZhbHVlKQogICAgIENBQ0ZBbmltYXRp
b25TZXRWYWx1ZXMobV9hbmltYXRpb24uZ2V0KCksIGFycmF5LmdldCgpKTsKIH0KIAotdm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbG9y
PiYgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldFZhbHVlcyhjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6Q29sb3I+JiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgp
ICE9IEtleWZyYW1lKQogICAgICAgICByZXR1cm47CkBAIC01MDIsMjEgKzUwMiwyMSBAQCB2b2lk
IFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29s
b3I+JiB2YWx1ZSkKIH0KIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLXZvaWQgUGxhdGZvcm1D
QUFuaW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0aW9u
PiA+JiwgaW50KQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRWYWx1ZXMoY29uc3Qg
VmVjdG9yPFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+ID4mLCBpbnQpCiB7CiAgICAgLy8gRklYTUU6
IEhhcmR3YXJlIGZpbHRlciBhbmltYXRpb24gbm90IGltcGxlbWVudGVkIG9uIFdpbmRvd3MKIH0K
ICNlbmRpZgogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OmNvcHlWYWx1ZXNGcm9tKGNvbnN0
IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2lu
Ojpjb3B5VmFsdWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIHsKICAg
ICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZyYW1lIHx8IHZhbHVlLT5hbmltYXRpb25UeXBl
KCkgIT0gS2V5ZnJhbWUpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBDQUNGQW5pbWF0aW9u
U2V0VmFsdWVzKG1fYW5pbWF0aW9uLmdldCgpLCBDQUNGQW5pbWF0aW9uR2V0VmFsdWVzKHZhbHVl
LT5wbGF0Zm9ybUFuaW1hdGlvbigpKSk7CisgICAgQ0FDRkFuaW1hdGlvblNldFZhbHVlcyhtX2Fu
aW1hdGlvbi5nZXQoKSwgQ0FDRkFuaW1hdGlvbkdldFZhbHVlcyh0b1BsYXRmb3JtQ0FBbmltYXRp
b25XaW4odmFsdWUpLT5wbGF0Zm9ybUFuaW1hdGlvbigpKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1D
QUFuaW1hdGlvbjo6c2V0S2V5VGltZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYgdmFsdWUpCit2b2lk
IFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldEtleVRpbWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4m
IHZhbHVlKQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gS2V5ZnJhbWUpCiAgICAgICAg
IHJldHVybjsKQEAgLTUzMCwxNSArNTMwLDE1IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6
c2V0S2V5VGltZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYgdmFsdWUpCiAgICAgQ0FDRkFuaW1hdGlv
blNldEtleVRpbWVzKG1fYW5pbWF0aW9uLmdldCgpLCBhcnJheS5nZXQoKSk7CiB9CiAKLXZvaWQg
UGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weUtleVRpbWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5p
bWF0aW9uKiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6Y29weUtleVRpbWVz
RnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0
aW9uVHlwZSgpICE9IEtleWZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBDQUNGQW5pbWF0
aW9uU2V0S2V5VGltZXMobV9hbmltYXRpb24uZ2V0KCksIENBQ0ZBbmltYXRpb25HZXRLZXlUaW1l
cyh2YWx1ZS0+cGxhdGZvcm1BbmltYXRpb24oKSkpOworICAgIENBQ0ZBbmltYXRpb25TZXRLZXlU
aW1lcyhtX2FuaW1hdGlvbi5nZXQoKSwgQ0FDRkFuaW1hdGlvbkdldEtleVRpbWVzKHRvUGxhdGZv
cm1DQUFuaW1hdGlvbldpbih2YWx1ZSktPnBsYXRmb3JtQW5pbWF0aW9uKCkpKTsKIH0KIAotdm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNv
bnN0IFRpbWluZ0Z1bmN0aW9uKj4mIHZhbHVlLCBib29sIHJldmVyc2UpCit2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25XaW46OnNldFRpbWluZ0Z1bmN0aW9ucyhjb25zdCBWZWN0b3I8Y29uc3QgVGlt
aW5nRnVuY3Rpb24qPiYgdmFsdWUsIGJvb2wgcmV2ZXJzZSkKIHsKICAgICBVTlVTRURfUEFSQU0o
cmV2ZXJzZSk7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBLZXlmcmFtZSkKQEAgLTU1Myw3
ICs1NTMsOSBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRpbWluZ0Z1bmN0aW9ucyhj
b25zdCBWZWN0b3I8Y29uc3QgVGltaW5nRnVuY3Rpb24qPgogICAgIENBQ0ZBbmltYXRpb25TZXRU
aW1pbmdGdW5jdGlvbnMobV9hbmltYXRpb24uZ2V0KCksIGFycmF5LmdldCgpKTsKIH0KIAotdm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShjb25zdCBQbGF0
Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6Y29w
eVRpbWluZ0Z1bmN0aW9uc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCiB7
Ci0gICAgQ0FDRkFuaW1hdGlvblNldFRpbWluZ0Z1bmN0aW9ucyhtX2FuaW1hdGlvbi5nZXQoKSwg
Q0FDRkFuaW1hdGlvbkdldFRpbWluZ0Z1bmN0aW9ucyh2YWx1ZS0+cGxhdGZvcm1BbmltYXRpb24o
KSkpOworICAgIENBQ0ZBbmltYXRpb25TZXRUaW1pbmdGdW5jdGlvbnMobV9hbmltYXRpb24uZ2V0
KCksIENBQ0ZBbmltYXRpb25HZXRUaW1pbmdGdW5jdGlvbnModG9QbGF0Zm9ybUNBQW5pbWF0aW9u
V2luKHZhbHVlKS0+cGxhdGZvcm1BbmltYXRpb24oKSkpOwogfQorCisjZW5kaWYgLy8gUExBVEZP
Uk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
d2luL1BsYXRmb3JtQ0FBbmltYXRpb25XaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQyYjE5
ZjQzYjc0NTA3YWNhNDU2Y2M3YzUxNTM4YzQyYzMzNzE4YwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9u
V2luLmgKQEAgLTAsMCArMSwxMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luX2gKKyNkZWZpbmUg
UGxhdGZvcm1DQUFuaW1hdGlvbldpbl9oCisKKyNpZiBQTEFURk9STShXSU4pCisKKyNpbmNsdWRl
ICJQbGF0Zm9ybUNBQW5pbWF0aW9uLmgiCisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCit0
eXBlZGVmIHN0cnVjdCBfQ0FDRkFuaW1hdGlvbiogQ0FDRkFuaW1hdGlvblJlZjsKK3R5cGVkZWYg
Q0FDRkFuaW1hdGlvblJlZiBQbGF0Zm9ybUFuaW1hdGlvblJlZjsKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luIGZpbmFsIDogcHVibGljIFBsYXRm
b3JtQ0FBbmltYXRpb24geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsYXRmb3Jt
Q0FBbmltYXRpb24+IGNyZWF0ZShBbmltYXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGtleVBhdGgp
OworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGNyZWF0ZShQbGF0
Zm9ybUFuaW1hdGlvblJlZik7CisKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybUNBQW5pbWF0aW9uV2lu
KCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNQbGF0Zm9ybUNBQW5pbWF0aW9uV2luKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIAorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQ
bGF0Zm9ybUNBQW5pbWF0aW9uPiBjb3B5KCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICBQbGF0Zm9y
bUFuaW1hdGlvblJlZiBwbGF0Zm9ybUFuaW1hdGlvbigpIGNvbnN0OworICAgIAorICAgIHZpcnR1
YWwgU3RyaW5nIGtleVBhdGgoKSBjb25zdCBvdmVycmlkZTsKKyAgICAKKyAgICB2aXJ0dWFsIENG
VGltZUludGVydmFsIGJlZ2luVGltZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRCZWdpblRpbWUoQ0ZUaW1lSW50ZXJ2YWwpIG92ZXJyaWRlOworICAgIAorICAgIHZpcnR1
YWwgQ0ZUaW1lSW50ZXJ2YWwgZHVyYXRpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0RHVyYXRpb24oQ0ZUaW1lSW50ZXJ2YWwpIG92ZXJyaWRlOworICAgIAorICAgIHZp
cnR1YWwgZmxvYXQgc3BlZWQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
U3BlZWQoZmxvYXQpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBDRlRpbWVJbnRlcnZhbCB0aW1l
T2Zmc2V0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFRpbWVPZmZzZXQo
Q0ZUaW1lSW50ZXJ2YWwpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBmbG9hdCByZXBlYXRDb3Vu
dCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRSZXBlYXRDb3VudChmbG9h
dCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIGJvb2wgYXV0b3JldmVyc2VzKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEF1dG9yZXZlcnNlcyhib29sKSBvdmVycmlkZTsK
KworICAgIHZpcnR1YWwgRmlsbE1vZGVUeXBlIGZpbGxNb2RlKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHNldEZpbGxNb2RlKEZpbGxNb2RlVHlwZSkgb3ZlcnJpZGU7CisgICAg
CisgICAgdmlydHVhbCB2b2lkIHNldFRpbWluZ0Z1bmN0aW9uKGNvbnN0IFRpbWluZ0Z1bmN0aW9u
KiwgYm9vbCByZXZlcnNlID0gZmFsc2UpIG92ZXJyaWRlOworICAgIHZvaWQgY29weVRpbWluZ0Z1
bmN0aW9uRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CisKKyAgICB2
aXJ0dWFsIGJvb2wgaXNSZW1vdmVkT25Db21wbGV0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHNldFJlbW92ZWRPbkNvbXBsZXRpb24oYm9vbCkgb3ZlcnJpZGU7CisKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNBZGRpdGl2ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzZXRBZGRpdGl2ZShib29sKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgVmFsdWVGdW5j
dGlvblR5cGUgdmFsdWVGdW5jdGlvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRWYWx1ZUZ1bmN0aW9uKFZhbHVlRnVuY3Rpb25UeXBlKSBvdmVycmlkZTsKKworICAgIC8v
IEJhc2ljLWFuaW1hdGlvbiBwcm9wZXJ0aWVzLgorICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFs
dWUoZmxvYXQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3Qg
V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0RnJvbVZhbHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVycmlkZTsKKyNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShjb25z
dCBGaWx0ZXJPcGVyYXRpb24qLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KSBvdmVy
cmlkZTsKKyNlbmRpZgorICAgIHZpcnR1YWwgdm9pZCBjb3B5RnJvbVZhbHVlRnJvbShjb25zdCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9W
YWx1ZShmbG9hdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3Qg
V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0VG9WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYpIG92ZXJyaWRlOworI2lmIEVO
QUJMRShDU1NfRklMVEVSUykKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBGaWx0
ZXJPcGVyYXRpb24qLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KSBvdmVycmlkZTsK
KyNlbmRpZgorICAgIHZpcnR1YWwgdm9pZCBjb3B5VG9WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1D
QUFuaW1hdGlvbiopIG92ZXJyaWRlOworCisgICAgLy8gS2V5ZnJhbWUtYW5pbWF0aW9uIHByb3Bl
cnRpZXMuCisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8ZmxvYXQ+Jikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg+Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNl
dFZhbHVlcyhjb25zdCBWZWN0b3I8RmxvYXRQb2ludDNEPiYpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbG9yPiYpIG92ZXJyaWRl
OworI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNv
bnN0IFZlY3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPj4mLCBpbnQgaW50ZXJuYWxGaWx0ZXJQ
cm9wZXJ0eUluZGV4KSBvdmVycmlkZTsKKyNlbmRpZgorICAgIHZpcnR1YWwgdm9pZCBjb3B5VmFs
dWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0S2V5VGltZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBjb3B5S2V5VGltZXNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24q
KSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3Qg
VmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4mLCBib29sIHJldmVyc2UgPSBmYWxzZSkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvcHlUaW1pbmdGdW5jdGlvbnNGcm9tKGNvbnN0IFBs
YXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKKworcHJvdGVjdGVkOgorICAgIFBsYXRmb3Jt
Q0FBbmltYXRpb25XaW4oQW5pbWF0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKTsKKyAg
ICBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luKFBsYXRmb3JtQW5pbWF0aW9uUmVmKTsKKworcHJpdmF0
ZToKKyAgICBSZXRhaW5QdHI8Q0FDRkFuaW1hdGlvblJlZj4gbV9hbmltYXRpb247Cit9OworCitQ
TEFURk9STV9DQUFOSU1BVElPTl9UWVBFX0NBU1RTKFBsYXRmb3JtQ0FBbmltYXRpb25XaW4sIGlz
UGxhdGZvcm1DQUFuaW1hdGlvbldpbigpKQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShXSU4p
CisKKyNlbmRpZiAvLyBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW5JbnRl
cm5hbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZv
cm1DQUxheWVyV2luSW50ZXJuYWwuY3BwCmluZGV4IDNlZDg5MTU3ZjcyMTA5NDE2Nzg1NTc3MDE5
MjU5Y2IzODRmMjczNzQuLjM5ZjM5ZmE1NWIyZDNiZjU3MjMwMTk5YTEwZGZkMDk1YTUzZWNiNzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0
Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbkludGVybmFsLmNwcApAQCAtMjksNiAr
MjksNyBAQAogCiAjaW5jbHVkZSAiRm9udC5oIgogI2luY2x1ZGUgIkZvbnRDYWNoZS5oIgorI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllci5oIgog
I2luY2x1ZGUgIlRleHRSdW4uaCIKICNpbmNsdWRlIDxRdWFydHpDb3JlL0NBQ0ZMYXllci5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAppbmRleCAyOTc0
MTNmMzhhMWNhZTU0NzhiYzE2YTgzMTAzNWExZDNhMTlhYmUzLi5hZThjNmZiYTdmMDkyMzZlOTAx
NmZlZDk2OTBkYzk0ZjI4ZjIwYTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9JUEMvQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
QXJndW1lbnRDb2RlcnMuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPHV0aWxpdHk+CiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2Ug
SVBDIHsKQEAgLTE5Myw2ICsxOTQsNDAgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBl
bmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWkKICAgICB9
CiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVu
YW1lIEtleVRyYWl0c0FyZz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8SGFzaFNldDxLZXlBcmcsIEhh
c2hBcmcsIEtleVRyYWl0c0FyZz4+IHsKKyAgICB0eXBlZGVmIEhhc2hTZXQ8S2V5QXJnLCBIYXNo
QXJnLCBLZXlUcmFpdHNBcmc+IEhhc2hTZXRUeXBlOworCisgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgSGFzaFNldFR5cGUmIGhhc2hTZXQpCisg
ICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihoYXNoU2V0LnNp
emUoKSk7CisgICAgICAgIGZvciAodHlwZW5hbWUgSGFzaFNldFR5cGU6OmNvbnN0X2l0ZXJhdG9y
IGl0ID0gaGFzaFNldC5iZWdpbigpLCBlbmQgPSBoYXNoU2V0LmVuZCgpOyBpdCAhPSBlbmQ7ICsr
aXQpCisgICAgICAgICAgICBlbmNvZGVyIDw8ICppdDsKKyAgICB9CisKKyAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBIYXNoU2V0VHlwZSYgaGFzaFNldCkK
KyAgICB7CisgICAgICAgIHVpbnQ2NF90IGhhc2hTZXRTaXplOworICAgICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGhhc2hTZXRTaXplKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
ICAgICBIYXNoU2V0VHlwZSB0ZW1wSGFzaFNldDsKKyAgICAgICAgZm9yICh1aW50NjRfdCBpID0g
MDsgaSA8IGhhc2hTZXRTaXplOyArK2kpIHsKKyAgICAgICAgICAgIEtleUFyZyBrZXk7CisgICAg
ICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGtleSkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgICAgICAgICBpZiAoIXRlbXBIYXNoU2V0LmFkZChrZXkpLmlzTmV3RW50
cnkpIHsKKyAgICAgICAgICAgICAgICAvLyBUaGUgaGFzaCBtYXAgYWxyZWFkeSBoYXMgdGhlIHNw
ZWNpZmllZCBrZXksIGJhaWwuCisgICAgICAgICAgICAgICAgZGVjb2Rlci5tYXJrSW52YWxpZCgp
OworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorCisgICAgICAgIGhhc2hTZXQuc3dhcCh0ZW1wSGFzaFNldCk7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KK307CisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8QXRvbWlj
U3RyaW5nPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0
IEF0b21pY1N0cmluZyYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIm
LCBBdG9taWNTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAKaW5kZXggMTQzZmE3ODE0ZTEzZWMxNjhhZDI2MTI1M2FjNzhjNmEwZTY2
YzZhYi4uYmE5YmE5YmQ4MmVlZGE2NmRiMTM3MDlkNWE0ZGMxZTE4YzJjZmI1NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTU5LDYg
KzU5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRDaGVja2Vy
Q2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UaW1pbmdGdW5jdGlvbi5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvVHJhbnNmb3JtYXRpb25NYXRyaXguaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VSTC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlclNjcmlwdC5oPgpAQCAtOTAsNyArOTEsNiBAQCBib29s
IEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYg
ZGVjb2RlciwgQWZmaW5lVHJhbgogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEFmZmlu
ZVRyYW5zZm9ybT46OmRlY29kZShkZWNvZGVyLCBhZmZpbmVUcmFuc2Zvcm0pOwogfQogCi0KIHZv
aWQgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD46OmVuY29kZShBcmd1bWVudEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm1hdGlv
bk1hdHJpeCkKIHsKICAgICBTaW1wbGVBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4
Pjo6ZW5jb2RlKGVuY29kZXIsIHRyYW5zZm9ybWF0aW9uTWF0cml4KTsKQEAgLTEwMSw2ICsxMDEs
ODMgQEAgYm9vbCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYgZGVjb2RlciwgVHJhbnMKICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRD
b2RlcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD46OmRlY29kZShkZWNvZGVyLCB0cmFuc2Zvcm1hdGlv
bk1hdHJpeCk7CiB9CiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxMaW5lYXJUaW1pbmdGdW5jdGlvbj46
OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IExpbmVhclRpbWluZ0Z1bmN0
aW9uJiB0aW1pbmdGdW5jdGlvbikKK3sKKyAgICBlbmNvZGVyLmVuY29kZUVudW0odGltaW5nRnVu
Y3Rpb24udHlwZSgpKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPExpbmVhclRpbWluZ0Z1bmN0
aW9uPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgTGluZWFyVGltaW5nRnVuY3Rp
b24mIHRpbWluZ0Z1bmN0aW9uKQoreworICAgIC8vIFR5cGUgaXMgZGVjb2RlZCBieSB0aGUgY2Fs
bGVyLiBOb3RoaW5nIGVsc2UgdG8gZGVjb2RlLgorICAgIHJldHVybiB0cnVlOworfQorCit2b2lk
IEFyZ3VtZW50Q29kZXI8Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbj46OmVuY29kZShBcmd1bWVu
dEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24mIHRpbWlu
Z0Z1bmN0aW9uKQoreworICAgIGVuY29kZXIuZW5jb2RlRW51bSh0aW1pbmdGdW5jdGlvbi50eXBl
KCkpOworICAgIAorICAgIGVuY29kZXIgPDwgdGltaW5nRnVuY3Rpb24ueDEoKTsKKyAgICBlbmNv
ZGVyIDw8IHRpbWluZ0Z1bmN0aW9uLnkxKCk7CisgICAgZW5jb2RlciA8PCB0aW1pbmdGdW5jdGlv
bi54MigpOworICAgIGVuY29kZXIgPDwgdGltaW5nRnVuY3Rpb24ueTIoKTsKKyAgICAKKyAgICBl
bmNvZGVyLmVuY29kZUVudW0odGltaW5nRnVuY3Rpb24udGltaW5nRnVuY3Rpb25QcmVzZXQoKSk7
Cit9CisKK2Jvb2wgQXJndW1lbnRDb2RlcjxDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uPjo6ZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbiYg
dGltaW5nRnVuY3Rpb24pCit7CisgICAgLy8gVHlwZSBpcyBkZWNvZGVkIGJ5IHRoZSBjYWxsZXIu
CisgICAgZG91YmxlIHgxOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoeDEpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBkb3VibGUgeTE7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh5
MSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGRvdWJsZSB4MjsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHgyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZG91YmxlIHky
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoeTIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uOjpUaW1pbmdGdW5jdGlvblByZXNldCBwcmVz
ZXQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocHJlc2V0KSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgdGltaW5nRnVuY3Rpb24uc2V0VmFsdWVzKHgxLCB5MSwgeDIsIHkyKTsK
KyAgICB0aW1pbmdGdW5jdGlvbi5zZXRUaW1pbmdGdW5jdGlvblByZXNldChwcmVzZXQpOworCisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgQXJndW1lbnRDb2RlcjxTdGVwc1RpbWluZ0Z1bmN0
aW9uPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgU3RlcHNUaW1pbmdG
dW5jdGlvbiYgdGltaW5nRnVuY3Rpb24pCit7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHRpbWlu
Z0Z1bmN0aW9uLnR5cGUoKSk7CisgICAgCisgICAgZW5jb2RlciA8PCB0aW1pbmdGdW5jdGlvbi5u
dW1iZXJPZlN0ZXBzKCk7CisgICAgZW5jb2RlciA8PCB0aW1pbmdGdW5jdGlvbi5zdGVwQXRTdGFy
dCgpOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8U3RlcHNUaW1pbmdGdW5jdGlvbj46OmRlY29k
ZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFN0ZXBzVGltaW5nRnVuY3Rpb24mIHRpbWluZ0Z1
bmN0aW9uKQoreworICAgIC8vIFR5cGUgaXMgZGVjb2RlZCBieSB0aGUgY2FsbGVyLgorICAgIGlu
dCBudW1TdGVwczsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG51bVN0ZXBzKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgYm9vbCBzdGVwQXRTdGFydDsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHN0ZXBBdFN0YXJ0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgdGltaW5n
RnVuY3Rpb24uc2V0TnVtYmVyT2ZTdGVwcyhudW1TdGVwcyk7CisgICAgdGltaW5nRnVuY3Rpb24u
c2V0U3RlcEF0U3RhcnQoc3RlcEF0U3RhcnQpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZv
aWQgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5j
b2RlciwgY29uc3QgRmxvYXRQb2ludCYgZmxvYXRQb2ludCkKIHsKICAgICBTaW1wbGVBcmd1bWVu
dENvZGVyPEZsb2F0UG9pbnQ+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRQb2ludCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggZjU5ZmQzMWY3
YmRkMGIzN2Q5ZTJmZjVhOTVlNjA4Mjg5NTM2ZDEyMy4uYmEzZTdiNTdhNjFkOTEwYTdkYzRmZWVh
M2M1MjU1ZjU1NTM4MGMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaApAQCAtMzQsNiArMzQsNyBAQCBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTsKIGNsYXNzIENlcnRpZmljYXRlSW5mbzsKIGNsYXNzIENvbG9yOwogY2xhc3MgQ3JlZGVu
dGlhbDsKK2NsYXNzIEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb247CiBjbGFzcyBDdXJzb3I7CiBj
bGFzcyBEYXRhYmFzZURldGFpbHM7CiBjbGFzcyBGaWx0ZXJPcGVyYXRpb25zOwpAQCAtNDgsNyAr
NDksNyBAQCBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBJbnRTaXplOwog
Y2xhc3MgS2V5ZnJhbWVWYWx1ZUxpc3Q7Ci1jbGFzcyBVUkw7CitjbGFzcyBMaW5lYXJUaW1pbmdG
dW5jdGlvbjsKIGNsYXNzIE5vdGlmaWNhdGlvbjsKIGNsYXNzIFByb3RlY3Rpb25TcGFjZTsKIGNs
YXNzIFJlZ2lvbjsKQEAgLTU2LDExICs1NywxMyBAQCBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xh
c3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIGNsYXNzIFNlc3Np
b25JRDsKK2NsYXNzIFN0ZXBzVGltaW5nRnVuY3Rpb247CiBjbGFzcyBTdGlja3lQb3NpdGlvblZp
ZXdwb3J0Q29uc3RyYWludHM7CiBjbGFzcyBUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YTsKIGNsYXNz
IFRyYW5zZm9ybWF0aW9uTWF0cml4OwogY2xhc3MgVXNlclN0eWxlU2hlZXQ7CiBjbGFzcyBVc2Vy
U2NyaXB0OworY2xhc3MgVVJMOwogc3RydWN0IENvbXBvc2l0aW9uVW5kZXJsaW5lOwogc3RydWN0
IENvb2tpZTsKIHN0cnVjdCBEaWN0YXRpb25BbHRlcm5hdGl2ZTsKQEAgLTExMiw2ICsxMTUsMjEg
QEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUcmFuc2Zvcm1hdGlv
bk1hdHJpeD4gewogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJD
b3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpMaW5lYXJUaW1pbmdGdW5jdGlvbj4geworICAgIHN0YXRpYyB2
b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpMaW5lYXJUaW1pbmdG
dW5jdGlvbiYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJD
b3JlOjpMaW5lYXJUaW1pbmdGdW5jdGlvbiYpOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uPiB7CisgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkN1YmljQmV6
aWVyVGltaW5nRnVuY3Rpb24mKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNv
ZGVyJiwgV2ViQ29yZTo6Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbiYpOworfTsKKwordGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTdGVwc1RpbWluZ0Z1bmN0aW9uPiB7
CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6
OlN0ZXBzVGltaW5nRnVuY3Rpb24mKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiwgV2ViQ29yZTo6U3RlcHNUaW1pbmdGdW5jdGlvbiYpOworfTsKKwogdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+IHsKICAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Q2VydGlm
aWNhdGVJbmZvJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdl
YkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KaW5kZXggNjdkYTllYjcyMDAxOTQ0NWY4
ZTNiNDg4ZTQ0ZDI1ODc5MWU1NDEyZS4uNGU3MmU1YmVlMjVjOTFiYjMxZjIwYjFmNGFjMWU1Nzlj
ZjU2MjgwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXll
ckJhY2tpbmdTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxh
eWVyQmFja2luZ1N0b3JlLm1tCkBAIC00OSw3ICs0OSw4IEBACiBAZW5kCiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworbmFtZXNwYWNlIFdlYktp
dCB7CiAKIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZSgp
CiAgICAgOiBtX2xheWVyKG51bGxwdHIpCkBAIC0zMjEsMyArMzIyLDUgQEAgdm9pZCBSZW1vdGVM
YXllckJhY2tpbmdTdG9yZTo6YXBwbHlCYWNraW5nU3RvcmVUb0xheWVyKENBTGF5ZXIgKmxheWVy
KQogCiAgICAgbGF5ZXIuY29udGVudHNPcGFxdWUgPSBtX2lzT3BhcXVlOwogfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVt
b3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5oCmluZGV4IGU3YzAyNjg2MWFkOWNjNTM5
MGQyMTFhMmJkODBhYTNlZDFkZDRhYjMuLjM3ZWFmNWRiYTMxYzZjOWIxNzA2YWI3ZmM2MDRmMzdj
Yzg3NThhYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5
ZXJUcmVlUHJvcGVydHlBcHBsaWVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9S
ZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIuaApAQCAtMzIsMTIgKzMyLDE0IEBACiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBSZW1vdGVMYXllclRyZWVIb3N0OworCiBjbGFzcyBS
ZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIgewogcHVibGljOgogICAgIHR5cGVkZWYgSGFz
aE1hcDxXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQsIExheWVyT3JWaWV3
ICo+IFJlbGF0ZWRMYXllck1hcDsKLSAgICBzdGF0aWMgdm9pZCBhcHBseVByb3BlcnRpZXMoQ0FM
YXllciAqLCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVz
JiwgY29uc3QgUmVsYXRlZExheWVyTWFwJik7CisgICAgc3RhdGljIHZvaWQgYXBwbHlQcm9wZXJ0
aWVzKENBTGF5ZXIgKiwgUmVtb3RlTGF5ZXJUcmVlSG9zdCosIGNvbnN0IFJlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMmLCBjb25zdCBSZWxhdGVkTGF5ZXJNYXAmKTsK
ICNpZiBQTEFURk9STShJT1MpCi0gICAgc3RhdGljIHZvaWQgYXBwbHlQcm9wZXJ0aWVzKFVJVmll
dyAqLCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzJiwg
Y29uc3QgUmVsYXRlZExheWVyTWFwJik7CisgICAgc3RhdGljIHZvaWQgYXBwbHlQcm9wZXJ0aWVz
KFVJVmlldyAqLCBSZW1vdGVMYXllclRyZWVIb3N0KiwgY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJh
bnNhY3Rpb246OkxheWVyUHJvcGVydGllcyYsIGNvbnN0IFJlbGF0ZWRMYXllck1hcCYpOwogI2Vu
ZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxh
eWVyVHJlZVByb3BlcnR5QXBwbGllci5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVt
b3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLm1tCmluZGV4IGRkMmU3MjI5MTljZjViOTkyNWY3
OGIzMjU0N2ZhYjliOWIzY2VlMGQuLjhiMDgzMTUzZTgzZjI5ZGM1ZWQwN2ZhOGU2NTRlZmY3ODRj
YzQ0YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJU
cmVlUHJvcGVydHlBcHBsaWVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVt
b3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLm1tCkBAIC0yNiw3ICsyNiw5IEBACiAjaW1wb3J0
ICJjb25maWcuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5oIgog
CisjaW1wb3J0ICJQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmgiCiAjaW1wb3J0ICJQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGUuaCIKKyNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZUhvc3QuaCIKICNpbXBv
cnQgPFF1YXJ0ekNvcmUvQ0FMYXllci5oPgogI2ltcG9ydCA8V2ViQ29yZS9CbG9ja0V4Y2VwdGlv
bnMuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1DQUZpbHRlcnMuaD4KQEAgLTExMSw3ICsx
MTMsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVDdXN0b21BcHBlYXJhbmNlKENBTGF5ZXIgKmxheWVy
LCBHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbgogI2VuZGlmCiB9CiAKLXN0YXRpYyB2b2lk
IGFwcGx5UHJvcGVydGllc1RvTGF5ZXIoQ0FMYXllciAqbGF5ZXIsIGNvbnN0IFJlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMmIHByb3BlcnRpZXMpCitzdGF0aWMgdm9p
ZCBhcHBseVByb3BlcnRpZXNUb0xheWVyKENBTGF5ZXIgKmxheWVyLCBSZW1vdGVMYXllclRyZWVI
b3N0KiBsYXllclRyZWVIb3N0LCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5
ZXJQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzKQogewogICAgIGlmIChwcm9wZXJ0aWVzLmNoYW5nZWRQ
cm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246Ok5hbWVDaGFuZ2VkKQogICAg
ICAgICBsYXllci5uYW1lID0gcHJvcGVydGllcy5uYW1lOwpAQCAtMTI4LDcgKzEzMCw3IEBAIHN0
YXRpYyB2b2lkIGFwcGx5UHJvcGVydGllc1RvTGF5ZXIoQ0FMYXllciAqbGF5ZXIsIGNvbnN0IFJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0CiAKICAgICBpZiAocHJvcGVydGllcy5jaGFuZ2VkUHJvcGVy
dGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpTaXplQ2hhbmdlZCkKICAgICAgICAg
bGF5ZXIuYm91bmRzID0gRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgcHJvcGVydGllcy5zaXplKTsK
LQorICAgIAogICAgIGlmIChwcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb246OkJhY2tncm91bmRDb2xvckNoYW5nZWQpCiAgICAgICAgIGxheWVy
LmJhY2tncm91bmRDb2xvciA9IGNnQ29sb3JGcm9tQ29sb3IocHJvcGVydGllcy5iYWNrZ3JvdW5k
Q29sb3IpLmdldCgpOwogCkBAIC0xOTIsNiArMTk0LDkgQEAgc3RhdGljIHZvaWQgYXBwbHlQcm9w
ZXJ0aWVzVG9MYXllcihDQUxheWVyICpsYXllciwgY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3QKICAgICBpZiAocHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uOjpGaWx0ZXJzQ2hhbmdlZCkKICAgICAgICAgUGxhdGZvcm1DQUZpbHRlcnM6
OnNldEZpbHRlcnNPbkxheWVyKGxheWVyLCBwcm9wZXJ0aWVzLmZpbHRlcnMgPyAqcHJvcGVydGll
cy5maWx0ZXJzIDogRmlsdGVyT3BlcmF0aW9ucygpKTsKIAorICAgIGlmIChwcm9wZXJ0aWVzLmNo
YW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkFuaW1hdGlvbnND
aGFuZ2VkKQorICAgICAgICBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjp1cGRhdGVMYXllckFu
aW1hdGlvbnMobGF5ZXIsIGxheWVyVHJlZUhvc3QsIHByb3BlcnRpZXMuYWRkZWRBbmltYXRpb25z
LCBwcm9wZXJ0aWVzLmtleVBhdGhzT2ZBbmltYXRpb25zVG9SZW1vdmUpOworCiAgICAgaWYgKHBy
b3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6
RWRnZUFudGlhbGlhc2luZ01hc2tDaGFuZ2VkKQogICAgICAgICBsYXllci5lZGdlQW50aWFsaWFz
aW5nTWFzayA9IHByb3BlcnRpZXMuZWRnZUFudGlhbGlhc2luZ01hc2s7CiAKQEAgLTE5OSwxMCAr
MjA0LDEwIEBAIHN0YXRpYyB2b2lkIGFwcGx5UHJvcGVydGllc1RvTGF5ZXIoQ0FMYXllciAqbGF5
ZXIsIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0CiAgICAgICAgIHVwZGF0ZUN1c3RvbUFw
cGVhcmFuY2UobGF5ZXIsIHByb3BlcnRpZXMuY3VzdG9tQXBwZWFyYW5jZSk7CiB9CiAKLXZvaWQg
UmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjphcHBseVByb3BlcnRpZXMoQ0FMYXllciAq
bGF5ZXIsIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMm
IHByb3BlcnRpZXMsIGNvbnN0IFJlbGF0ZWRMYXllck1hcCYgcmVsYXRlZExheWVycykKK3ZvaWQg
UmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjphcHBseVByb3BlcnRpZXMoQ0FMYXllciAq
bGF5ZXIsIFJlbW90ZUxheWVyVHJlZUhvc3QqIGxheWVyVHJlZUhvc3QsIGNvbnN0IFJlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMmIHByb3BlcnRpZXMsIGNvbnN0IFJl
bGF0ZWRMYXllck1hcCYgcmVsYXRlZExheWVycykKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7Ci0gICAgYXBwbHlQcm9wZXJ0aWVzVG9MYXllcihsYXllciwgcHJvcGVydGllcyk7
CisgICAgYXBwbHlQcm9wZXJ0aWVzVG9MYXllcihsYXllciwgbGF5ZXJUcmVlSG9zdCwgcHJvcGVy
dGllcyk7CiAKICAgICBpZiAocHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uOjpDaGlsZHJlbkNoYW5nZWQpIHsKICAgICAgICAgUmV0YWluUHRy
PE5TTXV0YWJsZUFycmF5PiBjaGlsZHJlbiA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxv
Y10gaW5pdFdpdGhDYXBhY2l0eTpwcm9wZXJ0aWVzLmNoaWxkcmVuLnNpemUoKV0pOwpAQCAtMjM2
LDEwICsyNDEsMTAgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXI6OmFwcGx5
UHJvcGVydGllcyhDQUxheWVyICpsYXllciwgY29uc3QgUmVtb3QKIH0KIAogI2lmIFBMQVRGT1JN
KElPUykKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjphcHBseVByb3BlcnRp
ZXMoVUlWaWV3ICp2aWV3LCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQ
cm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLCBjb25zdCBSZWxhdGVkTGF5ZXJNYXAmIHJlbGF0ZWRMYXll
cnMpCit2b2lkIFJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6YXBwbHlQcm9wZXJ0aWVz
KFVJVmlldyAqdmlldywgUmVtb3RlTGF5ZXJUcmVlSG9zdCogbGF5ZXJUcmVlSG9zdCwgY29uc3Qg
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllcyYgcHJvcGVydGllcywg
Y29uc3QgUmVsYXRlZExheWVyTWFwJiByZWxhdGVkTGF5ZXJzKQogewogICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKLSAgICBhcHBseVByb3BlcnRpZXNUb0xheWVyKHZpZXcubGF5ZXIs
IHByb3BlcnRpZXMpOworICAgIGFwcGx5UHJvcGVydGllc1RvTGF5ZXIodmlldy5sYXllciwgbGF5
ZXJUcmVlSG9zdCwgcHJvcGVydGllcyk7CiAKICAgICBpZiAocHJvcGVydGllcy5jaGFuZ2VkUHJv
cGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpDaGlsZHJlbkNoYW5nZWQpIHsK
ICAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiBjaGlsZHJlbiA9IGFkb3B0TlMoW1tO
U011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTpwcm9wZXJ0aWVzLmNoaWxkcmVu
LnNpemUoKV0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbi5oCmluZGV4IDIxOGI4ZDA2YTI0MDg5MDYwYmZjYTE3YWNiYzE0
OWJlNDM3MWE4ZjIuLjZkMDkzMTA5Mjc1YjdmYTc5ZTgxYzE2MTBjNjhmZGU3YTBmMTcyNjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgUmVtb3RlTGF5ZXJUcmVlVHJh
bnNhY3Rpb25faAogI2RlZmluZSBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbl9oCiAKKyNpbmNs
dWRlICJQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9GaWx0ZXJPcGVyYXRpb25zLmg+CkBAIC0zNCw2ICszNSw3IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9QbGF0Zm9ybUNBTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RyYW5zZm9ybWF0aW9u
TWF0cml4Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSVBDIHsK
QEAgLTc0LDkgKzc2LDEwIEBAIHB1YmxpYzoKICAgICAgICAgVGltZU9mZnNldENoYW5nZWQgPSAx
IDw8IDIzLAogICAgICAgICBCYWNraW5nU3RvcmVDaGFuZ2VkID0gMSA8PCAyNCwKICAgICAgICAg
RmlsdGVyc0NoYW5nZWQgPSAxIDw8IDI1LAotICAgICAgICBFZGdlQW50aWFsaWFzaW5nTWFza0No
YW5nZWQgPSAxIDw8IDI2LAotICAgICAgICBDdXN0b21BcHBlYXJhbmNlQ2hhbmdlZCA9IDEgPDwg
MjcsCi0gICAgICAgIEN1c3RvbUJlaGF2aW9yQ2hhbmdlZCA9IDEgPDwgMjgKKyAgICAgICAgQW5p
bWF0aW9uc0NoYW5nZWQgPSAxIDw8IDI2LAorICAgICAgICBFZGdlQW50aWFsaWFzaW5nTWFza0No
YW5nZWQgPSAxIDw8IDI3LAorICAgICAgICBDdXN0b21BcHBlYXJhbmNlQ2hhbmdlZCA9IDEgPDwg
MjgsCisgICAgICAgIEN1c3RvbUJlaGF2aW9yQ2hhbmdlZCA9IDEgPDwgMjkKICAgICB9OwogICAg
IHR5cGVkZWYgdW5zaWduZWQgTGF5ZXJDaGFuZ2U7CiAKQEAgLTExMiw2ICsxMTUsMTAgQEAgcHVi
bGljOgogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRy
aXg+IHRyYW5zZm9ybTsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlRyYW5zZm9y
bWF0aW9uTWF0cml4PiBzdWJsYXllclRyYW5zZm9ybTsKICAgICAgICAgVmVjdG9yPFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRD4gY2hpbGRyZW47CisKKyAgICAgICAgSGFz
aE1hcDxTdHJpbmcsIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OlByb3BlcnRpZXM+IGFkZGVk
QW5pbWF0aW9uczsKKyAgICAgICAgSGFzaFNldDxTdHJpbmc+IGtleVBhdGhzT2ZBbmltYXRpb25z
VG9SZW1vdmU7CisKICAgICAgICAgV2ViQ29yZTo6RmxvYXRQb2ludDNEIHBvc2l0aW9uOwogICAg
ICAgICBXZWJDb3JlOjpGbG9hdFBvaW50M0QgYW5jaG9yUG9pbnQ7CiAgICAgICAgIFdlYkNvcmU6
OkZsb2F0U2l6ZSBzaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9S
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KaW5kZXggOTA3YTM4N2M0OGFkODM2YWFjMzI3
NzRmM2VkMTJhYTMzOTQ2NDcwNS4uYjhjYWY2YzAxY2JmMmEyMmFlOGFmM2U4NjY5OWMwOTkzNzhm
OTZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uLm1tCkBAIC0xMDMsNiArMTAzLDggQEAgUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6TGF5ZXJQcm9wZXJ0aWVzKGNvbnN0IExheWVy
UHJvcGVydGkKICAgICAsIGV2ZXJDaGFuZ2VkUHJvcGVydGllcyhvdGhlci5ldmVyQ2hhbmdlZFBy
b3BlcnRpZXMpCiAgICAgLCBuYW1lKG90aGVyLm5hbWUpCiAgICAgLCBjaGlsZHJlbihvdGhlci5j
aGlsZHJlbikKKyAgICAsIGFkZGVkQW5pbWF0aW9ucyhvdGhlci5hZGRlZEFuaW1hdGlvbnMpCisg
ICAgLCBrZXlQYXRoc09mQW5pbWF0aW9uc1RvUmVtb3ZlKG90aGVyLmtleVBhdGhzT2ZBbmltYXRp
b25zVG9SZW1vdmUpCiAgICAgLCBwb3NpdGlvbihvdGhlci5wb3NpdGlvbikKICAgICAsIGFuY2hv
clBvaW50KG90aGVyLmFuY2hvclBvaW50KQogICAgICwgc2l6ZShvdGhlci5zaXplKQpAQCAtMTQ5
LDYgKzE1MSwxMSBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3Bl
cnRpZXM6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZQogICAgIGlmIChjaGFuZ2VkUHJv
cGVydGllcyAmIENoaWxkcmVuQ2hhbmdlZCkKICAgICAgICAgZW5jb2RlciA8PCBjaGlsZHJlbjsK
IAorICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcyAmIEFuaW1hdGlvbnNDaGFuZ2VkKSB7CisgICAg
ICAgIGVuY29kZXIgPDwgYWRkZWRBbmltYXRpb25zOworICAgICAgICBlbmNvZGVyIDw8IGtleVBh
dGhzT2ZBbmltYXRpb25zVG9SZW1vdmU7CisgICAgfQorCiAgICAgaWYgKGNoYW5nZWRQcm9wZXJ0
aWVzICYgUG9zaXRpb25DaGFuZ2VkKQogICAgICAgICBlbmNvZGVyIDw8IHBvc2l0aW9uOwogCkBA
IC0yNTEsNiArMjU4LDE0IEBAIGJvb2wgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVy
UHJvcGVydGllczo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkCiAgICAgICAgIH0KICAg
ICB9CiAKKyAgICBpZiAocmVzdWx0LmNoYW5nZWRQcm9wZXJ0aWVzICYgQW5pbWF0aW9uc0NoYW5n
ZWQpIHsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuYWRkZWRBbmltYXRpb25z
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5rZXlQYXRoc09mQW5pbWF0aW9uc1RvUmVtb3ZlKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisKICAgICBpZiAocmVzdWx0LmNoYW5nZWRQcm9wZXJ0aWVzICYg
UG9zaXRpb25DaGFuZ2VkKSB7CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnBv
c2l0aW9uKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTczNiw2ICs3NTEsOCBAQCBz
dGF0aWMgdm9pZCBkdW1wQ2hhbmdlZExheWVycyhSZW1vdGVMYXllclRyZWVUZXh0U3RyZWFtJiB0
cywgY29uc3QgUmVtb3RlTGF5ZXJUcgogICAgICAgICBpZiAobGF5ZXJQcm9wZXJ0aWVzLmNoYW5n
ZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkNoaWxkcmVuQ2hhbmdl
ZCkKICAgICAgICAgICAgIGR1bXBQcm9wZXJ0eTxWZWN0b3I8R3JhcGhpY3NMYXllcjo6UGxhdGZv
cm1MYXllcklEPj4odHMsICJjaGlsZHJlbiIsIGxheWVyUHJvcGVydGllcy5jaGlsZHJlbik7CiAK
Ky8vIEZJWE1FOiBkdW1wIGFuaW1hdGlvbnMKKwogICAgICAgICBpZiAobGF5ZXJQcm9wZXJ0aWVz
LmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OlBvc2l0aW9u
Q2hhbmdlZCkKICAgICAgICAgICAgIGR1bXBQcm9wZXJ0eTxGbG9hdFBvaW50M0Q+KHRzLCAicG9z
aXRpb24iLCBsYXllclByb3BlcnRpZXMucG9zaXRpb24pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1JlbW90ZUxheWVyVHJlZUhvc3RJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1JlbW90ZUxheWVyVHJlZUhvc3RJT1MubW0KaW5kZXggOWVk
YTk1NDQyNjc0YzJhNzgzMGZkOTdiMjFiODI2NmQxMWExYzYxZC4uYTA2YmJiMDk1YWRlMTExY2Yw
NWUwYjE1MTViOWEzMmE2NzYzMzAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9SZW1vdGVMYXllclRyZWVIb3N0SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvUmVtb3RlTGF5ZXJUcmVlSG9zdElPUy5tbQpAQCAtMzcsMTAgKzM3LDYgQEAK
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLUBpbnRlcmZhY2UgVUlWaWV3KFdLVmlld0lu
dGVybmFscykKLS0gKHZvaWQpX2NyZWF0ZUxheWVyV2l0aEZyYW1lOihDR1JlY3QpZnJhbWU7Ci1A
ZW5kCi0KIEBpbnRlcmZhY2UgQ0FMYXllcihXS0xheWVySW50ZXJuYWwpCiAtICh2b2lkKXNldENv
bnRleHRJZDoodWludDMyX3QpY29udGV4dElEOwogQGVuZApAQCAtNzYsNiArNzIsMTMgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitzdGF0aWMgTlNT
dHJpbmcqIGNvbnN0IFdLTGF5ZXJJRFByb3BlcnR5S2V5ID0gQCJXS0xheWVySUQiOworCitXZWJD
b3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6
bGF5ZXJJRChMYXllck9yVmlldyogbGF5ZXIpCit7CisgICAgcmV0dXJuIFtbbGF5ZXIgdmFsdWVG
b3JLZXk6V0tMYXllcklEUHJvcGVydHlLZXldIHVuc2lnbmVkTG9uZ0xvbmdWYWx1ZV07Cit9CisK
IExheWVyT3JWaWV3ICpSZW1vdGVMYXllclRyZWVIb3N0OjpjcmVhdGVMYXllcihjb25zdCBSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJDcmVhdGlvblByb3BlcnRpZXMmIHByb3BlcnRp
ZXMsIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMqIGxh
eWVyUHJvcGVydGllcykKIHsKICAgICBSZXRhaW5QdHI8TGF5ZXJPclZpZXc+JiBsYXllck9yVmll
dyA9IG1fbGF5ZXJzLmFkZChwcm9wZXJ0aWVzLmxheWVySUQsIG51bGxwdHIpLml0ZXJhdG9yLT52
YWx1ZTsKQEAgLTExMCw2ICsxMTMsNyBAQCBMYXllck9yVmlldyAqUmVtb3RlTGF5ZXJUcmVlSG9z
dDo6Y3JlYXRlTGF5ZXIoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OgogCiAgICAg
Ly8gRklYTUU6IERvIHRocm91Z2ggdGhlIHZpZXcuCiAgICAgW1tsYXllck9yVmlldyBsYXllcl0g
d2ViX2Rpc2FibGVBbGxBY3Rpb25zXTsKKyAgICBbW2xheWVyT3JWaWV3IGxheWVyXSBzZXRWYWx1
ZTpbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkTG9uZ0xvbmc6cHJvcGVydGllcy5sYXllcklE
XSBmb3JLZXk6V0tMYXllcklEUHJvcGVydHlLZXldOwogCiAgICAgcmV0dXJuIGxheWVyT3JWaWV3
LmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaAppbmRleCBkY2RlNzRhYjlkMzVh
MWRjMjRhMzIzYzJjNGVlOTlmN2Y0NWI5M2VkLi41YWJmMWQ2NGNiNjlkNWQ0MmM3MjdhNjY3YmYy
YjAwZmIwYzhhNzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaApAQCAtNDQsNiArNDQs
OCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBSZW1vdGVMYXllclRyZWVIb3N0JiByZW1vdGVMYXll
clRyZWVIb3N0KCkgY29uc3QgeyByZXR1cm4gbV9yZW1vdGVMYXllclRyZWVIb3N0OyB9CiAKKyAg
ICB2b2lkIGFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQodWludDY0X3QgLypsYXllcklEKi8s
IGRvdWJsZSAvKnN0YXJ0VGltZSovKTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2l6
ZURpZENoYW5nZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VTY2FsZUZhY3Rv
ckRpZENoYW5nZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4
IDM0MWQ4NTYyNzlhZGUwYWM5ZTgyN2ZjM2Q2NTEzZjEzOGRhNjkzMGEuLmViOTRjODQ5YWM1MmU4
NzVhZGQ2NzA0YWRkYmNlYzUwMGUyODAxNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHku
bW0KQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIFJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHk6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkoV2ViUGFn
ZVByb3h5KiB3ZWJQYWdlUHJveHkpCiAgICAgOiBEcmF3aW5nQXJlYVByb3h5KERyYXdpbmdBcmVh
VHlwZVJlbW90ZUxheWVyVHJlZSwgd2ViUGFnZVByb3h5KQotICAgICwgbV9yZW1vdGVMYXllclRy
ZWVIb3N0KCkKKyAgICAsIG1fcmVtb3RlTGF5ZXJUcmVlSG9zdCgqdGhpcykKICAgICAsIG1faXNX
YWl0aW5nRm9yRGlkVXBkYXRlR2VvbWV0cnkoZmFsc2UpCiB7CiAgICAgbV93ZWJQYWdlUHJveHkt
PnByb2Nlc3MoKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdlUHJveHktPnBh
Z2VJRCgpLCAqdGhpcyk7CkBAIC0xMzEsNiArMTMxLDExIEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRy
YW5zCiAgICAgfQogfQogCit2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmFj
Y2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQodWludDY0X3QgbGF5ZXJJRCwgZG91YmxlIHN0YXJ0
VGltZSkKK3sKKyAgICBtX3dlYlBhZ2VQcm94eS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OkRy
YXdpbmdBcmVhOjpBY2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0YXJ0KGxheWVySUQsIHN0YXJ0VGlt
ZSksIG1fd2ViUGFnZVByb3h5LT5wYWdlSUQoKSk7Cit9CisKIHN0YXRpYyBjb25zdCBmbG9hdCBp
bmRpY2F0b3JJbnNldCA9IDEwOwogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMjM2LDcgKzI0MSw3
IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6c2hvd0RlYnVnSW5kaWNh
dG9yKGJvb2wgc2hvdykKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBtX2RlYnVn
SW5kaWNhdG9yTGF5ZXJUcmVlSG9zdCA9IHN0ZDo6bWFrZV91bmlxdWU8UmVtb3RlTGF5ZXJUcmVl
SG9zdD4oKTsKKyAgICBtX2RlYnVnSW5kaWNhdG9yTGF5ZXJUcmVlSG9zdCA9IHN0ZDo6bWFrZV91
bmlxdWU8UmVtb3RlTGF5ZXJUcmVlSG9zdD4oKnRoaXMpOwogICAgIG1fZGVidWdJbmRpY2F0b3JM
YXllclRyZWVIb3N0LT5zZXRJc0RlYnVnTGF5ZXJUcmVlSG9zdCh0cnVlKTsKIAogICAgIG1fdGls
ZU1hcEhvc3RMYXllciA9IGFkb3B0TlMoW1tDQUxheWVyIGFsbG9jXSBpbml0XSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5oCmluZGV4
IGY5ZDZiMzQxNDZjMTFmNGY5MTExMDEzODA1ZjI0ZDNlZTU3YzUxMzEuLjE1ZTM2ZGU2MjdiYWQ3
OWQwMDVmZDQ3MWE5YjYwMmUyOGExMzQ0NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5oCkBAIC0zMiwyOSArMzIsNDMgQEAKICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAorT0JK
Q19DTEFTUyBXS0FuaW1hdGlvbkRlbGVnYXRlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xh
c3MgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTsKIGNsYXNzIFdlYlBhZ2VQcm94eTsK
IAogY2xhc3MgUmVtb3RlTGF5ZXJUcmVlSG9zdCB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgUmVt
b3RlTGF5ZXJUcmVlSG9zdCgpOworICAgIGV4cGxpY2l0IFJlbW90ZUxheWVyVHJlZUhvc3QoUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSYpOwogICAgIHZpcnR1YWwgflJlbW90ZUxheWVy
VHJlZUhvc3QoKTsKIAogICAgIExheWVyT3JWaWV3ICpnZXRMYXllcihXZWJDb3JlOjpHcmFwaGlj
c0xheWVyOjpQbGF0Zm9ybUxheWVySUQpIGNvbnN0OwogICAgIExheWVyT3JWaWV3ICpyb290TGF5
ZXIoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RMYXllcjsgfQogCisgICAgc3RhdGljIFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXllcklEKExheWVyT3JWaWV3Kik7CisK
ICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHJvb3QgbGF5ZXIgY2hhbmdlZC4KICAgICBib29s
IHVwZGF0ZUxheWVyVHJlZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYsIGZsb2F0
IGluZGljYXRvclNjYWxlRmFjdG9yICA9IDEpOwogCiAgICAgdm9pZCBzZXRJc0RlYnVnTGF5ZXJU
cmVlSG9zdChib29sIGZsYWcpIHsgbV9pc0RlYnVnTGF5ZXJUcmVlSG9zdCA9IGZsYWc7IH0KICAg
ICBib29sIGlzRGVidWdMYXllclRyZWVIb3N0KCkgY29uc3QgeyByZXR1cm4gbV9pc0RlYnVnTGF5
ZXJUcmVlSG9zdDsgfQogCisgICAgdHlwZWRlZiBIYXNoTWFwPFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXI6OlBsYXRmb3JtTGF5ZXJJRCwgUmV0YWluUHRyPFdLQW5pbWF0aW9uRGVsZWdhdGU+PiBMYXll
ckFuaW1hdGlvbkRlbGVnYXRlTWFwOworICAgIExheWVyQW5pbWF0aW9uRGVsZWdhdGVNYXAmIGFu
aW1hdGlvbkRlbGVnYXRlcygpIHsgcmV0dXJuIG1fYW5pbWF0aW9uRGVsZWdhdGVzOyB9CisKKyAg
ICB2b2lkIGFuaW1hdGlvbkRpZFN0YXJ0KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3Jt
TGF5ZXJJRCwgZG91YmxlIHN0YXJ0VGltZSk7CisKIHByaXZhdGU6CiAgICAgTGF5ZXJPclZpZXcg
KmNyZWF0ZUxheWVyKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllckNyZWF0
aW9uUHJvcGVydGllcyYsIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclBy
b3BlcnRpZXMqKTsKIAorICAgIHZvaWQgbGF5ZXJXaWxsQmVSZW1vdmVkKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCk7CisKKyAgICBSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5JiBtX2RyYXdpbmdBcmVhOwogICAgIExheWVyT3JWaWV3ICptX3Jvb3RMYXllcjsK
ICAgICBIYXNoTWFwPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCwgUmV0
YWluUHRyPExheWVyT3JWaWV3Pj4gbV9sYXllcnM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpHcmFw
aGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQsIFJldGFpblB0cjxXS0FuaW1hdGlvbkRlbGVnYXRl
Pj4gbV9hbmltYXRpb25EZWxlZ2F0ZXM7CiAgICAgYm9vbCBtX2lzRGVidWdMYXllclRyZWVIb3N0
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVM
YXllclRyZWVIb3N0Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXll
clRyZWVIb3N0Lm1tCmluZGV4IDViYzcxYTFmMTY0MmM3ZTE4ZjZjZDJjMTJiODBmMzYyYzFlZDJh
NzguLmFmNDZiOGZjYjdkYWIzZDMyYjVhODk0YWU5ZmVhMjEwOWRkZjZmOWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KQEAg
LTI2LDYgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJU
cmVlSG9zdC5oIgogCisjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lmgi
CiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIuaCIKICNpbXBvcnQgIlJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgiCiAjaW1wb3J0ICJTaGFyZWFibGVCaXRtYXAuaCIK
QEAgLTQxLDggKzQyLDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCi1SZW1vdGVMYXllclRyZWVIb3N0OjpSZW1vdGVMYXllclRyZWVIb3N0KCkKLSAg
ICA6IG1fcm9vdExheWVyKG51bGxwdHIpCitSZW1vdGVMYXllclRyZWVIb3N0OjpSZW1vdGVMYXll
clRyZWVIb3N0KFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkmIGRyYXdpbmdBcmVhKQor
ICAgIDogbV9kcmF3aW5nQXJlYShkcmF3aW5nQXJlYSkKKyAgICAsIG1fcm9vdExheWVyKG51bGxw
dHIpCiAgICAgLCBtX2lzRGVidWdMYXllclRyZWVIb3N0KGZhbHNlKQogewogfQpAQCAtODcsMTMg
Kzg5LDEzIEBAIGJvb2wgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6dXBkYXRlTGF5ZXJUcmVlKGNvbnN0
IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiB0cmFuCiAgICAgICAgICAgICBpZiAocHJvcGVy
dGllc0NvcHkuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6
Qm9yZGVyV2lkdGhDaGFuZ2VkKQogICAgICAgICAgICAgICAgIHByb3BlcnRpZXNDb3B5LmJvcmRl
cldpZHRoICo9IDEgLyBpbmRpY2F0b3JTY2FsZUZhY3RvcjsKICAgICAgICAgICAgIAotICAgICAg
ICAgICAgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjphcHBseVByb3BlcnRpZXMobGF5
ZXIsIHByb3BlcnRpZXNDb3B5LCByZWxhdGVkTGF5ZXJzKTsKKyAgICAgICAgICAgIFJlbW90ZUxh
eWVyVHJlZVByb3BlcnR5QXBwbGllcjo6YXBwbHlQcm9wZXJ0aWVzKGxheWVyLCB0aGlzLCBwcm9w
ZXJ0aWVzQ29weSwgcmVsYXRlZExheWVycyk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
UmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjphcHBseVByb3BlcnRpZXMobGF5ZXIsIHBy
b3BlcnRpZXMsIHJlbGF0ZWRMYXllcnMpOworICAgICAgICAgICAgUmVtb3RlTGF5ZXJUcmVlUHJv
cGVydHlBcHBsaWVyOjphcHBseVByb3BlcnRpZXMobGF5ZXIsIHRoaXMsIHByb3BlcnRpZXMsIHJl
bGF0ZWRMYXllcnMpOwogICAgIH0KIAogICAgIGZvciAoYXV0byYgZGVzdHJveWVkTGF5ZXIgOiB0
cmFuc2FjdGlvbi5kZXN0cm95ZWRMYXllcnMoKSkKLSAgICAgICAgbV9sYXllcnMucmVtb3ZlKGRl
c3Ryb3llZExheWVyKTsKKyAgICAgICAgbGF5ZXJXaWxsQmVSZW1vdmVkKGRlc3Ryb3llZExheWVy
KTsKIAogICAgIHJldHVybiByb290TGF5ZXJDaGFuZ2VkOwogfQpAQCAtMTA2LDcgKzEwOCwyNSBA
QCBMYXllck9yVmlldyAqUmVtb3RlTGF5ZXJUcmVlSG9zdDo6Z2V0TGF5ZXIoR3JhcGhpY3NMYXll
cjo6UGxhdGZvcm1MYXllcklEIGxheWVySQogICAgIHJldHVybiBtX2xheWVycy5nZXQobGF5ZXJJ
RCkuZ2V0KCk7CiB9CiAKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6bGF5ZXJXaWxsQmVSZW1v
dmVkKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXllcklEKQorewor
ICAgIG1fYW5pbWF0aW9uRGVsZWdhdGVzLnJlbW92ZShsYXllcklEKTsKKyAgICBtX2xheWVycy5y
ZW1vdmUobGF5ZXJJRCk7Cit9CisKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6YW5pbWF0aW9u
RGlkU3RhcnQoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIGxheWVySUQs
IGRvdWJsZSBzdGFydFRpbWUpCit7CisgICAgbV9kcmF3aW5nQXJlYS5hY2NlbGVyYXRlZEFuaW1h
dGlvbkRpZFN0YXJ0KGxheWVySUQsIHN0YXJ0VGltZSk7Cit9CisKICNpZiAhUExBVEZPUk0oSU9T
KQorc3RhdGljIE5TU3RyaW5nKiBjb25zdCBXS0xheWVySURQcm9wZXJ0eUtleSA9IEAiV0tMYXll
cklEIjsKKworV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIFJlbW90ZUxh
eWVyVHJlZUhvc3Q6OmxheWVySUQoTGF5ZXJPclZpZXcqIGxheWVyKQoreworICAgIHJldHVybiBb
W2xheWVyIHZhbHVlRm9yS2V5OldLTGF5ZXJJRFByb3BlcnR5S2V5XSB1bnNpZ25lZExvbmdMb25n
VmFsdWVdOworfQorCiBMYXllck9yVmlldyAqUmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlTGF5
ZXIoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ3JlYXRpb25Qcm9wZXJ0
aWVzJiBwcm9wZXJ0aWVzLCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQ
cm9wZXJ0aWVzKikKIHsKICAgICBSZXRhaW5QdHI8Q0FMYXllcj4mIGxheWVyID0gbV9sYXllcnMu
YWRkKHByb3BlcnRpZXMubGF5ZXJJRCwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwpAQCAtMTM3
LDYgKzE1Nyw3IEBAIExheWVyT3JWaWV3ICpSZW1vdGVMYXllclRyZWVIb3N0OjpjcmVhdGVMYXll
cihjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6CiAgICAgfQogCiAgICAgW2xheWVy
IHdlYl9kaXNhYmxlQWxsQWN0aW9uc107CisgICAgW2xheWVyIHNldFZhbHVlOltOU051bWJlciBu
dW1iZXJXaXRoVW5zaWduZWRMb25nTG9uZzpwcm9wZXJ0aWVzLmxheWVySURdIGZvcktleTpXS0xh
eWVySURQcm9wZXJ0eUtleV07CiAKICAgICByZXR1cm4gbGF5ZXIuZ2V0KCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTJm
ZTJiODljMzQ3OGYzZDU0ZmIzN2YxNTEzOTRlNWM1NTYyMTgwZC4uNDRhNDY4MjVhZTBhYWQzZmQz
OTVlYzRiMzM2ZGY1NjViNzFmOGZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjMsNiArNjMsOCBAQAogCQkwRjU5NDdBNDE4
N0IzQjdEMDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1OTQ3QTIx
ODdCM0I3RDAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24u
aCAqLzsgfTsKIAkJMEY1OTQ3QTcxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTk0N0E1MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTBGNTk0N0E4MTg3
QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU5NDdBNjE4N0I1
MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlcy5oICovOyB9
OworCQkwRjVFMjAwMzE4RTc3MDUxMDAzRUMzRTUgLyogUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90
ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUUy
MDAxMThFNzcwNTEwMDNFQzNFNSAvKiBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tICovOyB9
OworCQkwRjVFMjAwNDE4RTc3MDUxMDAzRUMzRTUgLyogUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1RTIw
MDIxOEU3NzA1MTAwM0VDM0U1IC8qIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaCAqLzsgfTsK
IAkJMEY5MzFDMUMxOEM1NzExOTAwREJBN0MzIC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9s
bGluZ05vZGVJT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGOTMxQzFBMThDNTcxMTkwMERCQTdDMyAvKiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlSU9TLmggKi87IH07CiAJCTBGOTMxQzFEMThDNTcxMTkwMERCQTdDMyAvKiBTY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5MzFDMUIxOEM1NzExOTAwREJBN0MzIC8qIFNj
cm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MubW0gKi87IH07CiAJCTBGQjY1OTIz
MTIwOEI0REIwMDQ0ODE2QyAvKiBEcmF3aW5nQXJlYUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQjY1OTIyMTIwOEI0REIwMDQ0ODE2QyAvKiBE
cmF3aW5nQXJlYUluZm8uaCAqLzsgfTsKQEAgLTE3OTksNiArMTgwMSw4IEBACiAJCTBGNTk0N0Ey
MTg3QjNCN0QwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yVHJhbnNhY3Rpb24uaDsgcGF0aCA9IFNjcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclRyYW5zYWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTk0
N0E1MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGNTk0N0E2MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMEY1RTIwMDExOEU3NzA1MTAwM0VDM0U1IC8qIFBsYXRmb3JtQ0FBbmltYXRpb25S
ZW1vdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9y
bUNBQW5pbWF0aW9uUmVtb3RlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjVF
MjAwMjE4RTc3MDUxMDAzRUMzRTUgLyogUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOTMxQzFBMThDNTcxMTkwMERCQTdDMyAv
KiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1Mu
aDsgcGF0aCA9IFNjcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9k
ZUlPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjkzMUMxQjE4QzU3MTE5MDBE
QkE3QzMgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Nj
cm9sbGluZ05vZGVJT1MubW07IHBhdGggPSBTY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVPdmVy
Zmxvd1Njcm9sbGluZ05vZGVJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
QjY1OTIyMTIwOEI0REIwMDQ0ODE2QyAvKiBEcmF3aW5nQXJlYUluZm8uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhd2luZ0FyZWFJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC02MDIwLDYgKzYwMjQsOCBAQAogCQkJCTdDNkQzN0ZBMTcyRjU1NUYwMDlE
Mjg0NyAvKiBQYWdlQmFubmVyTWFjLm1tICovLAogCQkJCTJEQTA0OUI1MTgwQ0NEMEEwMEFBRkE5
RSAvKiBHcmFwaGljc0xheWVyQ0FSZW1vdGUuY3BwICovLAogCQkJCTJEQTA0OUI2MTgwQ0NEMEEw
MEFBRkE5RSAvKiBHcmFwaGljc0xheWVyQ0FSZW1vdGUuaCAqLywKKwkJCQkwRjVFMjAwMTE4RTc3
MDUxMDAzRUMzRTUgLyogUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbSAqLywKKwkJCQkwRjVF
MjAwMjE4RTc3MDUxMDAzRUMzRTUgLyogUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oICovLAog
CQkJCTJEQTA0OUIxMTgwQ0NDRDMwMEFBRkE5RSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3Bw
ICovLAogCQkJCTJEQTA0OUIyMTgwQ0NDRDMwMEFBRkE5RSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1v
dGUuaCAqLywKIAkJCQkyRDg3MTAxNDE4Mjg0MTVEMDAxOEZBMDEgLyogUGxhdGZvcm1DQUxheWVy
UmVtb3RlQ3VzdG9tLm1tICovLApAQCAtNjkyMSw2ICs2OTI3LDcgQEAKIAkJCQlCQzRBNjJBODE0
NzQ0RUM3MDA2QzY4MUEgLyogV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNCOUUyNDMxMTIwREFDQTAwQTEzN0UwIC8qIFdlYkNvbnRleHQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTMxQTUwNUZBMTY4MDAyNTUwMEE5MzBFQiAvKiBXZWJDb250ZXh0Q2xpZW50
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjVFMjAwNDE4RTc3MDUxMDAzRUMzRTUgLyogUGxhdGZv
cm1DQUFuaW1hdGlvblJlbW90ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyQTk3NjExODBFMDMx
RDAwMzlBMTQ5IC8qIERhdGFiYXNlUHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzA5QjhGOTE0NzQ2MEY3MDA1RjU2MjUgLyogV2ViQ29udGV4dENvbm5lY3Rpb25DbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDREUwNTlCMTFDREE4QUUwMEU0MUFGMSAvKiBXZWJDb250
ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtODY2Miw2ICs4NjY5
LDcgQEAKIAkJCQkxQUM4NkZGMzEzMEI0NkQzMDAyQzEyNTcgLyogV0tQbHVnaW5TaXRlRGF0YU1h
bmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNENTk3RDExMTJCNTZBQzAwRUM4QzIzIC8q
IFdLUHJlZmVyZW5jZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCQUFDRUMxNDUyMjVFMzAw
NTNGODJGIC8qIFdLUHJvY2Vzc0dyb3VwLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMEY1RTIwMDMx
OEU3NzA1MTAwM0VDM0U1IC8qIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0gaW4gU291cmNl
cyAqLywKIAkJCQk1MTJGNThGQjEyQTg4QTU0MDA2Mjk1MzAgLyogV0tQcm90ZWN0aW9uU3BhY2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc5NDg0MDgxNTBDNEI5NzAwRTUyQ0U5IC8qIFdLUmVu
ZGVyTGF5ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxQjVENUQxODU4NjlDODAwNkM2NTk2
IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5n
QXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgK
aW5kZXggNDdlYzU1YjcxZDExNDI5ZWNkN2I0YTBmYjJlYjhjZTk5MjU2MGExOS4uZTQxN2MyNjk0
NjMyNjgxZTU3YmYyZTEyN2EyMGJmYzY3NGIxNGMwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKQEAgLTkxLDYgKzkxLDcgQEAgcHVibGlj
OgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZpcnR1YWwgdm9pZCBzZXRFeHBvc2VkUmVjdChj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9h
dFJlY3QgZXhwb3NlZFJlY3QoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFjY2VsZXJh
dGVkQW5pbWF0aW9uRGlkU3RhcnQodWludDY0X3QgLypsYXllcklEKi8sIGRvdWJsZSAvKnN0YXJ0
VGltZSovKSB7IH0KICNlbmRpZgogI2lmIFBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFsIHZvaWQg
c2V0RXhwb3NlZENvbnRlbnRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJl
YS5tZXNzYWdlcy5pbgppbmRleCA5MWJjYWY0Y2FmNmM2NzFmNTU2ZTE5YmZiOTAwYTExMzMxMWZm
MTQ5Li5jY2FlMmFhOWFkZDMxNGU0ZWE4ODc5YzczMjQyMjYyYWNlZGY0ZTY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1l
c3NhZ2VzLmluCkBAIC0zMyw1ICszMyw3IEBAIG1lc3NhZ2VzIC0+IERyYXdpbmdBcmVhIExlZ2Fj
eVJlY2VpdmVyIHsKIAogICAgIEFkanVzdFRyYW5zaWVudFpvb20oZG91YmxlIHNjYWxlLCBXZWJD
b3JlOjpGbG9hdFBvaW50IG9yaWdpbikKICAgICBDb21taXRUcmFuc2llbnRab29tKGRvdWJsZSBz
Y2FsZSwgV2ViQ29yZTo6RmxvYXRQb2ludCBvcmlnaW4pCisgICAgCisgICAgQWNjZWxlcmF0ZWRB
bmltYXRpb25EaWRTdGFydCh1aW50NjRfdCBsYXllcklELCBkb3VibGUgc3RhcnRUaW1lKQogI2Vu
ZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5jcHAKaW5kZXggYzk1Zjg1ZmUyYmNiOWI4
YzE4MGExNzJiYTcyODA0YTE2OWJmMWI5ZC4uNWUxYzJmNWEwOTIyOWMyOWZjMzIxYjFiODdmMWM3
NWQyNTMwZTM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmNwcApAQCAtMjUsNiArMjUs
NyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllckNBUmVt
b3RlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtQ0FMYXllclJlbW90ZS5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAg
LTUyLDQgKzUzLDEyIEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBHcmFwaGljc0xheWVy
Q0FSZW1vdGU6OmNyZWF0ZVBsYXRmb3JtQ0FMYXllcihQbGF0Zm9yCiAgICAgcmV0dXJuIFBsYXRm
b3JtQ0FMYXllclJlbW90ZTo6Y3JlYXRlKHBsYXRmb3JtTGF5ZXIsIG93bmVyLCBtX2NvbnRleHQp
OwogfQogCitQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IEdyYXBoaWNzTGF5ZXJDQVJl
bW90ZTo6Y3JlYXRlUGxhdGZvcm1DQUFuaW1hdGlvbihQbGF0Zm9ybUNBQW5pbWF0aW9uOjpBbmlt
YXRpb25UeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCkKK3sKKyAgICByZXR1cm4gUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6Y3JlYXRlKHR5cGUsIGtleVBhdGgpOwogfQorCisvLyBG
SVhNRTogcmVqZWN0IGZpbHRlciBhbmltYXRpb25zCisKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBo
aWNzTGF5ZXJDQVJlbW90ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuaAppbmRleCBjZjUzOTc2YzY5ODEwNzUyZjNjNGZmMjMy
YTZkZTMwYWE0YjA5YmYzLi45YTJjZmQ4YzI1ZWRjYjcyZjVkNTYzNTUzYjc1MDJhOGI3ZjI4ODBk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBo
aWNzTGF5ZXJDQVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmgKQEAgLTUyLDkgKzUyLDcgQEAgcHJpdmF0ZToK
IAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI+IGNyZWF0
ZVBsYXRmb3JtQ0FMYXllcihXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSwgV2Vi
Q29yZTo6UGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcj4gY3JlYXRlUGxhdGZvcm1DQUxh
eWVyKFBsYXRmb3JtTGF5ZXIqLCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVy
KSBvdmVycmlkZTsKLQotICAgIC8vIE5vIGFjY2VsZXJhdGVkIGFuaW1hdGlvbnMgZm9yIG5vdy4K
LSAgICB2aXJ0dWFsIGJvb2wgYWRkQW5pbWF0aW9uKGNvbnN0IFdlYkNvcmU6OktleWZyYW1lVmFs
dWVMaXN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgY29uc3QgV2ViQ29yZTo6QW5pbWF0
aW9uKiwgY29uc3QgU3RyaW5nJiwgZG91YmxlKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uPiBjcmVh
dGVQbGF0Zm9ybUNBQW5pbWF0aW9uKFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb246OkFuaW1h
dGlvblR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCkgb3ZlcnJpZGU7CiAKICAgICAvLyBQbGF0
Zm9ybUNBTGF5ZXJSZW1vdGUgY2FuJ3QgY3VycmVudGx5IHByb3h5IGRpcmVjdGx5IGNvbXBvc2l0
ZWQgaW1hZ2UgY29udGVudHMsIHNvIG9wdCBvdXQgb2YgdGhpcyBvcHRpbWl6YXRpb24uCiAgICAg
dmlydHVhbCBib29sIHNob3VsZERpcmVjdGx5Q29tcG9zaXRlSW1hZ2UoV2ViQ29yZTo6SW1hZ2Uq
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRp
b25SZW1vdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjdmMGY3ZGQxYTUxMmNkMzhiMzJiZGEzMjJjMTExOWI0
MThlNDE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmgKQEAgLTAsMCArMSwyODQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBsYXRm
b3JtQ0FBbmltYXRpb25SZW1vdGVfaAorI2RlZmluZSBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3Rl
X2gKKworI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1DQUFuaW1hdGlvbi5oPgorI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKworbmFtZXNwYWNlIElQ
QyB7CitjbGFzcyBBcmd1bWVudEVuY29kZXI7CitjbGFzcyBBcmd1bWVudERlY29kZXI7Cit9Owor
CitPQkpDX0NMQVNTIENBTGF5ZXI7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1v
dGVMYXllclRyZWVIb3N0OworCitjbGFzcyBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlIGZpbmFs
IDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb24geworcHVibGljOgorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGNyZWF0ZShBbmltYXRpb25UeXBl
LCBjb25zdCBTdHJpbmcmIGtleVBhdGgpOworCisgICAgdmlydHVhbCB+UGxhdGZvcm1DQUFuaW1h
dGlvblJlbW90ZSgpIHsgfQorCisgICAgdmlydHVhbCBib29sIGlzUGxhdGZvcm1DQUFuaW1hdGlv
blJlbW90ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKworICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBjb3B5KCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgCisgICAgdmlydHVhbCBTdHJpbmcga2V5UGF0aCgpIGNvbnN0IG92ZXJyaWRlOworICAgIAor
ICAgIHZpcnR1YWwgQ0ZUaW1lSW50ZXJ2YWwgYmVnaW5UaW1lKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHNldEJlZ2luVGltZShDRlRpbWVJbnRlcnZhbCkgb3ZlcnJpZGU7Cisg
ICAgCisgICAgdmlydHVhbCBDRlRpbWVJbnRlcnZhbCBkdXJhdGlvbigpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBzZXREdXJhdGlvbihDRlRpbWVJbnRlcnZhbCkgb3ZlcnJpZGU7
CisgICAgCisgICAgdmlydHVhbCBmbG9hdCBzcGVlZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBzZXRTcGVlZChmbG9hdCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIENGVGlt
ZUludGVydmFsIHRpbWVPZmZzZXQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0VGltZU9mZnNldChDRlRpbWVJbnRlcnZhbCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIGZs
b2F0IHJlcGVhdENvdW50KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFJl
cGVhdENvdW50KGZsb2F0KSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgYm9vbCBhdXRvcmV2ZXJz
ZXMoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QXV0b3JldmVyc2VzKGJv
b2wpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBGaWxsTW9kZVR5cGUgZmlsbE1vZGUoKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RmlsbE1vZGUoRmlsbE1vZGVUeXBlKSBv
dmVycmlkZTsKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGltaW5nRnVuY3Rpb24oY29uc3Qg
V2ViQ29yZTo6VGltaW5nRnVuY3Rpb24qLCBib29sIHJldmVyc2UgPSBmYWxzZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBjb3B5VGltaW5nRnVuY3Rpb25Gcm9tKGNvbnN0IFdlYkNvcmU6OlBsYXRmb3Jt
Q0FBbmltYXRpb24qKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgYm9vbCBpc1JlbW92ZWRPbkNv
bXBsZXRpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVtb3ZlZE9u
Q29tcGxldGlvbihib29sKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgYm9vbCBpc0FkZGl0aXZl
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEFkZGl0aXZlKGJvb2wpIG92
ZXJyaWRlOworCisgICAgdmlydHVhbCBWYWx1ZUZ1bmN0aW9uVHlwZSB2YWx1ZUZ1bmN0aW9uKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlRnVuY3Rpb24oVmFsdWVG
dW5jdGlvblR5cGUpIG92ZXJyaWRlOworCisgICAgLy8gQmFzaWMtYW5pbWF0aW9uIHByb3BlcnRp
ZXMuCisgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShmbG9hdCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgV2Vi
Q29yZTo6RmxvYXRQb2ludDNEJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEZyb21W
YWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYpIG92ZXJyaWRlOworI2lmIEVOQUJMRShDU1NfRklM
VEVSUykKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OkZpbHRl
ck9wZXJhdGlvbiosIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpIG92ZXJyaWRlOwor
I2VuZGlmCisgICAgdmlydHVhbCB2b2lkIGNvcHlGcm9tVmFsdWVGcm9tKGNvbnN0IFdlYkNvcmU6
OlBsYXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRU
b1ZhbHVlKGZsb2F0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25z
dCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgb3ZlcnJp
ZGU7CisjaWYgRU5BQkxFKENTU19GSUxURVJTKQorICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVl
KGNvbnN0IFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbiosIGludCBpbnRlcm5hbEZpbHRlclByb3Bl
cnR5SW5kZXgpIG92ZXJyaWRlOworI2VuZGlmCisgICAgdmlydHVhbCB2b2lkIGNvcHlUb1ZhbHVl
RnJvbShjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CisKKyAg
ICAvLyBLZXlmcmFtZS1hbmltYXRpb24gcHJvcGVydGllcy4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0
VmFsdWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeD4mKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpGbG9hdFBvaW50M0Q+Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlcyhj
b25zdCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+Jikgb3ZlcnJpZGU7CisjaWYgRU5BQkxFKENTU19G
SUxURVJTKQorICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxX
ZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb24+PiYsIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5k
ZXgpIG92ZXJyaWRlOworI2VuZGlmCisgICAgdmlydHVhbCB2b2lkIGNvcHlWYWx1ZXNGcm9tKGNv
bnN0IFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKKworICAgIHZpcnR1
YWwgdm9pZCBzZXRLZXlUaW1lcyhjb25zdCBWZWN0b3I8ZmxvYXQ+Jikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGNvcHlLZXlUaW1lc0Zyb20oY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1DQUFu
aW1hdGlvbiopIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIHNldFRpbWluZ0Z1bmN0aW9u
cyhjb25zdCBWZWN0b3I8Y29uc3QgV2ViQ29yZTo6VGltaW5nRnVuY3Rpb24qPiYsIGJvb2wgcmV2
ZXJzZSA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29weVRpbWluZ0Z1bmN0
aW9uc0Zyb20oY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOwor
CisgICAgY2xhc3MgS2V5ZnJhbWVWYWx1ZSB7CisgICAgcHVibGljOgorICAgICAgICBlbnVtIEtl
eWZyYW1lVHlwZSB7CisgICAgICAgICAgICBOdW1iZXJLZXlUeXBlLAorICAgICAgICAgICAgQ29s
b3JLZXlUeXBlLAorICAgICAgICAgICAgUG9pbnRLZXlUeXBlLAorICAgICAgICAgICAgVHJhbnNm
b3JtS2V5VHlwZSwKKyAgICAgICAgfTsKKworICAgICAgICBLZXlmcmFtZVZhbHVlKGZsb2F0IHZh
bHVlID0gMCkKKyAgICAgICAgICAgIDoga2V5VHlwZShOdW1iZXJLZXlUeXBlKQorICAgICAgICAg
ICAgLCBudW1iZXIodmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIEtleWZy
YW1lVmFsdWUoV2ViQ29yZTo6Q29sb3IgdmFsdWUpCisgICAgICAgICAgICA6IGtleVR5cGUoQ29s
b3JLZXlUeXBlKQorICAgICAgICAgICAgLCBjb2xvcih2YWx1ZSkKKyAgICAgICAgeworICAgICAg
ICB9CisKKyAgICAgICAgS2V5ZnJhbWVWYWx1ZShjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50M0Qm
IHZhbHVlKQorICAgICAgICAgICAgOiBrZXlUeXBlKFBvaW50S2V5VHlwZSkKKyAgICAgICAgICAg
ICwgcG9pbnQodmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIEtleWZyYW1l
VmFsdWUoY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmIHZhbHVlKQorICAgICAg
ICAgICAgOiBrZXlUeXBlKFRyYW5zZm9ybUtleVR5cGUpCisgICAgICAgICAgICAsIHRyYW5zZm9y
bSh2YWx1ZSkKKyAgICAgICAgeworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBLZXlmcmFt
ZVZhbHVlKGNvbnN0IEtleWZyYW1lVmFsdWUmIG90aGVyKQorICAgICAgICB7CisgICAgICAgICAg
ICAqdGhpcyA9IG90aGVyOworICAgICAgICB9CisKKyAgICAgICAgS2V5ZnJhbWVWYWx1ZSYgb3Bl
cmF0b3I9KGNvbnN0IEtleWZyYW1lVmFsdWUmIG90aGVyKQorICAgICAgICB7CisgICAgICAgICAg
ICBrZXlUeXBlID0gb3RoZXIua2V5VHlwZTsKKyAgICAgICAgICAgIHN3aXRjaCAoa2V5VHlwZSkg
eworICAgICAgICAgICAgY2FzZSBOdW1iZXJLZXlUeXBlOgorICAgICAgICAgICAgICAgIG51bWJl
ciA9IG90aGVyLm51bWJlcjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQ29sb3JLZXlUeXBlOgorICAgICAgICAgICAgICAgIGNvbG9yID0gb3RoZXIuY29sb3I7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFBvaW50S2V5VHlwZToKKyAg
ICAgICAgICAgICAgICBwb2ludCA9IG90aGVyLnBvaW50OworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBUcmFuc2Zvcm1LZXlUeXBlOgorICAgICAgICAgICAgICAgIHRy
YW5zZm9ybSA9IG90aGVyLnRyYW5zZm9ybTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICBLZXlmcmFtZVR5cGUga2V5ZnJhbWVUeXBlKCkgY29uc3Qg
eyByZXR1cm4ga2V5VHlwZTsgfQorCisgICAgICAgIGZsb2F0IG51bWJlclZhbHVlKCkgY29uc3QK
KyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKGtleVR5cGUgPT0gTnVtYmVyS2V5VHlwZSk7
CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyOworICAgICAgICB9CisKKyAgICAgICAgV2ViQ29y
ZTo6Q29sb3IgY29sb3JWYWx1ZSgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VS
VChrZXlUeXBlID09IENvbG9yS2V5VHlwZSk7CisgICAgICAgICAgICByZXR1cm4gY29sb3I7Cisg
ICAgICAgIH0KKworICAgICAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50M0QmIHBvaW50VmFs
dWUoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQoa2V5VHlwZSA9PSBQb2lu
dEtleVR5cGUpOworICAgICAgICAgICAgcmV0dXJuIHBvaW50OworICAgICAgICB9CisKKyAgICAg
ICAgY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybVZhbHVlKCkg
Y29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKGtleVR5cGUgPT0gVHJhbnNmb3Jt
S2V5VHlwZSk7CisgICAgICAgICAgICByZXR1cm4gdHJhbnNmb3JtOworICAgICAgICB9CisKKyAg
ICAgICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICAgICAg
c3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgS2V5ZnJhbWVWYWx1ZSYp
OworCisgICAgcHJpdmF0ZToKKyAgICAgICAgS2V5ZnJhbWVUeXBlIGtleVR5cGU7CisgICAgICAg
IHVuaW9uIHsKKyAgICAgICAgICAgIGZsb2F0IG51bWJlcjsKKyAgICAgICAgICAgIFdlYkNvcmU6
OkNvbG9yIGNvbG9yOworICAgICAgICAgICAgV2ViQ29yZTo6RmxvYXRQb2ludDNEIHBvaW50Owor
ICAgICAgICAgICAgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtOworICAg
ICAgICB9OworICAgIH07CisKKyAgICBzdHJ1Y3QgUHJvcGVydGllcyB7CisgICAgICAgIFByb3Bl
cnRpZXMoKQorICAgICAgICAgICAgOiBhbmltYXRpb25UeXBlKEJhc2ljKQorICAgICAgICAgICAg
LCBiZWdpblRpbWUoMCkKKyAgICAgICAgICAgICwgZHVyYXRpb24oMCkKKyAgICAgICAgICAgICwg
dGltZU9mZnNldCgwKQorICAgICAgICAgICAgLCByZXBlYXRDb3VudCgxKQorICAgICAgICAgICAg
LCBzcGVlZCgxKQorICAgICAgICAgICAgLCBmaWxsTW9kZShOb0ZpbGxNb2RlKQorICAgICAgICAg
ICAgLCB2YWx1ZUZ1bmN0aW9uKE5vVmFsdWVGdW5jdGlvbikKKyAgICAgICAgICAgICwgYXV0b1Jl
dmVyc2VzKGZhbHNlKQorICAgICAgICAgICAgLCByZW1vdmVkT25Db21wbGV0aW9uKHRydWUpCisg
ICAgICAgICAgICAsIGFkZGl0aXZlKGZhbHNlKQorICAgICAgICAgICAgLCByZXZlcnNlVGltaW5n
RnVuY3Rpb25zKGZhbHNlKQorICAgICAgICAgICAgLCBoYXNOb25aZXJvQmVnaW5UaW1lKGZhbHNl
KQorICAgICAgICAKKyAgICAgICAgeworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB2b2lk
IGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgICAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBQcm9wZXJ0aWVzJik7CisKKyAgICAgICAg
U3RyaW5nIGtleVBhdGg7CisgICAgICAgIFBsYXRmb3JtQ0FBbmltYXRpb246OkFuaW1hdGlvblR5
cGUgYW5pbWF0aW9uVHlwZTsKKworICAgICAgICBkb3VibGUgYmVnaW5UaW1lOworICAgICAgICBk
b3VibGUgZHVyYXRpb247CisgICAgICAgIGRvdWJsZSB0aW1lT2Zmc2V0OworICAgICAgICBmbG9h
dCByZXBlYXRDb3VudDsKKyAgICAgICAgZmxvYXQgc3BlZWQ7CisgICAgICAgIAorICAgICAgICBQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjpGaWxsTW9kZVR5cGUgZmlsbE1vZGU7CisgICAgICAgIFBsYXRm
b3JtQ0FBbmltYXRpb246OlZhbHVlRnVuY3Rpb25UeXBlIHZhbHVlRnVuY3Rpb247CisgICAgICAg
IAorICAgICAgICBib29sIGF1dG9SZXZlcnNlczsKKyAgICAgICAgYm9vbCByZW1vdmVkT25Db21w
bGV0aW9uOworICAgICAgICBib29sIGFkZGl0aXZlOworICAgICAgICBib29sIHJldmVyc2VUaW1p
bmdGdW5jdGlvbnM7CisgICAgICAgIGJvb2wgaGFzTm9uWmVyb0JlZ2luVGltZTsKKworICAgICAg
ICAvLyBGb3IgYmFzaWMgYW5pbWF0aW9ucywgdGhlc2UgdmVjdG9ycyBoYXZlIHR3byBlbnRyaWVz
LiBGb3Iga2V5ZnJhbWUgYW5pbWF0aW9ucywgdHdvIG9yIG1vcmUuCisgICAgICAgIC8vIHRpbWlu
Z0Z1bmN0aW9ucyBoYXMgbi0xIGVudHJpZXMuCisgICAgICAgIFZlY3RvcjxLZXlmcmFtZVZhbHVl
PiBrZXlWYWx1ZXM7CisgICAgICAgIFZlY3RvcjxmbG9hdD4ga2V5VGltZXM7CisgICAgICAgIFZl
Y3RvcjxSZWZQdHI8V2ViQ29yZTo6VGltaW5nRnVuY3Rpb24+PiB0aW1pbmdGdW5jdGlvbnM7Cisg
ICAgfTsKKworICAgIGNvbnN0IFByb3BlcnRpZXMmIHByb3BlcnRpZXMoKSBjb25zdCB7IHJldHVy
biBtX3Byb3BlcnRpZXM7IH0KKworICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFByb3BlcnRp
ZXM+IEFuaW1hdGlvbnNNYXA7CisgICAgc3RhdGljIHZvaWQgdXBkYXRlTGF5ZXJBbmltYXRpb25z
KENBTGF5ZXIgKiwgUmVtb3RlTGF5ZXJUcmVlSG9zdCosIGNvbnN0IEFuaW1hdGlvbnNNYXAmIGFu
aW1hdGlvbnNUb0FkZCwgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBhbmltYXRpb25zVG9SZW1vdmUp
OworCitwcml2YXRlOgorICAgIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUoQW5pbWF0aW9uVHlw
ZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKTsKKworICAgIFByb3BlcnRpZXMgbV9wcm9wZXJ0aWVz
OworfTsKKworUExBVEZPUk1fQ0FBTklNQVRJT05fVFlQRV9DQVNUUyhQbGF0Zm9ybUNBQW5pbWF0
aW9uUmVtb3RlLCBpc1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUoKSkKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFu
aW1hdGlvblJlbW90ZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZDYzYmNlOWNkZGQ0YTBj
ZDc0OGIxN2YyM2Y4ZjM3ODc4MmMxN2I3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCkBA
IC0wLDAgKzEsNzMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2ltcG9ydCAiUGxhdGZvcm1DQUFuaW1hdGlvblJl
bW90ZS5oIgorCisjaW1wb3J0ICJBcmd1bWVudENvZGVycy5oIgorI2ltcG9ydCAiUmVtb3RlTGF5
ZXJUcmVlSG9zdC5oIgorI2ltcG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW1wb3J0
IDxXZWJDb3JlL0Jsb2NrRXhjZXB0aW9ucy5oPgorI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0xh
eWVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvVGltaW5nRnVuY3Rpb24uaD4KKyNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5o
PgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpD
b3JlLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXVEY7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
Kworc3RhdGljIGRvdWJsZSBtZWRpYVRpbWVUb0N1cnJlbnRUaW1lKENGVGltZUludGVydmFsIHQp
Cit7CisgICAgcmV0dXJuIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpICsgdCAtIENBQ3Vy
cmVudE1lZGlhVGltZSgpOworfQorCitzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBXS05vblplcm9C
ZWdpblRpbWVGbGFnID0gQCJXS1BsYXRmb3JtQ0FBbmltYXRpb25Ob25aZXJvQmVnaW5UaW1lRmxh
ZyI7CisKK0BpbnRlcmZhY2UgV0tBbmltYXRpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IHsKKyAgICBH
cmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgX2xheWVySUQ7CisgICAgV2ViS2l0OjpSZW1v
dGVMYXllclRyZWVIb3N0KiBfbGF5ZXJUcmVlSG9zdDsKK30KKworLSAoaW5zdGFuY2V0eXBlKWlu
aXRXaXRoTGF5ZXJJRDooR3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEKWxheWVySUQgbGF5
ZXJUcmVlSG9zdDooV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0KilsYXllclRyZWVIb3N0Owor
QGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tBbmltYXRpb25EZWxlZ2F0ZQorCistIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhMYXllcklEOihHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQpbGF5
ZXJJRCBsYXllclRyZWVIb3N0OihXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3QqKWxheWVyVHJl
ZUhvc3QKK3sKKyAgICBpZiAoKHNlbGYgPSBbc3VwZXIgaW5pdF0pKSB7CisgICAgICAgIF9sYXll
cklEID0gbGF5ZXJJRDsKKyAgICAgICAgX2xheWVyVHJlZUhvc3QgPSBsYXllclRyZWVIb3N0Owor
ICAgIH0KKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClhbmltYXRpb25EaWRTdGFydDoo
Q0FBbmltYXRpb24gKilhbmltYXRpb24KK3sKKyAgICBib29sIGhhc05vblplcm9CZWdpblRpbWUg
PSBbW2FuaW1hdGlvbiB2YWx1ZUZvcktleTpXS05vblplcm9CZWdpblRpbWVGbGFnXSBib29sVmFs
dWVdOworICAgIENGVGltZUludGVydmFsIHN0YXJ0VGltZTsKKworICAgIGlmIChoYXNOb25aZXJv
QmVnaW5UaW1lKSB7CisgICAgICAgIC8vIFdlIGRvbid0IGtub3cgd2hhdCB0aW1lIENBIHVzZWQg
dG8gY29tbWl0IHRoZSBhbmltYXRpb24sIHNvIGp1c3QgdXNlIHRoZSBjdXJyZW50IHRpbWUKKyAg
ICAgICAgLy8gKGV2ZW4gdGhvdWdoIHRoaXMgd2lsbCBiZSBzbGlnaHRseSBvZmYpLgorICAgICAg
ICBzdGFydFRpbWUgPSBtZWRpYVRpbWVUb0N1cnJlbnRUaW1lKENBQ3VycmVudE1lZGlhVGltZSgp
KTsKKyAgICB9IGVsc2UKKyAgICAgICAgc3RhcnRUaW1lID0gbWVkaWFUaW1lVG9DdXJyZW50VGlt
ZShbYW5pbWF0aW9uIGJlZ2luVGltZV0pOworCisgICAgX2xheWVyVHJlZUhvc3QtPmFuaW1hdGlv
bkRpZFN0YXJ0KF9sYXllcklELCBzdGFydFRpbWUpOworfQorQGVuZAorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpLZXlmcmFtZVZhbHVlOjpl
bmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2Rl
ci5lbmNvZGVFbnVtKGtleVR5cGUpOworCisgICAgc3dpdGNoIChrZXlUeXBlKSB7CisgICAgY2Fz
ZSBOdW1iZXJLZXlUeXBlOgorICAgICAgICBlbmNvZGVyIDw8IG51bWJlcjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDb2xvcktleVR5cGU6CisgICAgICAgIGVuY29kZXIgPDwgY29sb3I7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUG9pbnRLZXlUeXBlOgorICAgICAgICBlbmNvZGVyIDw8
IHBvaW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFRyYW5zZm9ybUtleVR5cGU6CisgICAg
ICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK2Jv
b2wgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6S2V5ZnJhbWVWYWx1ZTo6ZGVjb2RlKElQQzo6
QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpLZXlm
cmFtZVZhbHVlJiB2YWx1ZSkKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bSh2YWx1ZS5r
ZXlUeXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgc3dpdGNoICh2YWx1ZS5rZXlU
eXBlKSB7CisgICAgY2FzZSBOdW1iZXJLZXlUeXBlOgorICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHZhbHVlLm51bWJlcikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ29sb3JLZXlUeXBlOgorICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHZhbHVlLmNvbG9yKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBQb2ludEtleVR5cGU6CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodmFs
dWUucG9pbnQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFRyYW5zZm9ybUtleVR5cGU6CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodmFs
dWUudHJhbnNmb3JtKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
blJlbW90ZTo6UHJvcGVydGllczo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAoreworICAgIGVuY29kZXIgPDwga2V5UGF0aDsKKyAgICBlbmNvZGVyLmVuY29kZUVu
dW0oYW5pbWF0aW9uVHlwZSk7CisKKyAgICBlbmNvZGVyIDw8IGJlZ2luVGltZTsKKyAgICBlbmNv
ZGVyIDw8IGR1cmF0aW9uOworICAgIGVuY29kZXIgPDwgdGltZU9mZnNldDsKKyAgICBlbmNvZGVy
IDw8IHJlcGVhdENvdW50OworICAgIGVuY29kZXIgPDwgc3BlZWQ7CisKKyAgICBlbmNvZGVyLmVu
Y29kZUVudW0oZmlsbE1vZGUpOworICAgIGVuY29kZXIuZW5jb2RlRW51bSh2YWx1ZUZ1bmN0aW9u
KTsKKworICAgIGVuY29kZXIgPDwgYXV0b1JldmVyc2VzOworICAgIGVuY29kZXIgPDwgcmVtb3Zl
ZE9uQ29tcGxldGlvbjsKKyAgICBlbmNvZGVyIDw8IGFkZGl0aXZlOworICAgIGVuY29kZXIgPDwg
cmV2ZXJzZVRpbWluZ0Z1bmN0aW9uczsKKyAgICBlbmNvZGVyIDw8IGhhc05vblplcm9CZWdpblRp
bWU7CisgICAgCisgICAgZW5jb2RlciA8PCBrZXlWYWx1ZXM7CisgICAgZW5jb2RlciA8PCBrZXlU
aW1lczsKKyAgICAKKyAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90Pih0aW1pbmdG
dW5jdGlvbnMuc2l6ZSgpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHRpbWluZ0Z1bmN0aW9uIDog
dGltaW5nRnVuY3Rpb25zKSB7CisKKyAgICAgICAgc3dpdGNoICh0aW1pbmdGdW5jdGlvbi0+dHlw
ZSgpKSB7CisgICAgICAgIGNhc2UgVGltaW5nRnVuY3Rpb246OkxpbmVhckZ1bmN0aW9uOgorICAg
ICAgICAgICAgZW5jb2RlciA8PCAqc3RhdGljX2Nhc3Q8TGluZWFyVGltaW5nRnVuY3Rpb24qPih0
aW1pbmdGdW5jdGlvbi5nZXQoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAor
ICAgICAgICBjYXNlIFRpbWluZ0Z1bmN0aW9uOjpDdWJpY0JlemllckZ1bmN0aW9uOgorICAgICAg
ICAgICAgZW5jb2RlciA8PCAqc3RhdGljX2Nhc3Q8Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbio+
KHRpbWluZ0Z1bmN0aW9uLmdldCgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAKKyAg
ICAgICAgY2FzZSBUaW1pbmdGdW5jdGlvbjo6U3RlcHNGdW5jdGlvbjoKKyAgICAgICAgICAgIGVu
Y29kZXIgPDwgKnN0YXRpY19jYXN0PFN0ZXBzVGltaW5nRnVuY3Rpb24qPih0aW1pbmdGdW5jdGlv
bi5nZXQoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKworYm9v
bCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpQcm9wZXJ0aWVzOjpkZWNvZGUoSVBDOjpBcmd1
bWVudERlY29kZXImIGRlY29kZXIsIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OlByb3BlcnRp
ZXMmIHByb3BlcnRpZXMpCit7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcm9wZXJ0aWVzLmtl
eVBhdGgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
RW51bShwcm9wZXJ0aWVzLmFuaW1hdGlvblR5cGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHByb3BlcnRpZXMuYmVnaW5UaW1lKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcm9wZXJ0aWVzLmR1cmF0
aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShw
cm9wZXJ0aWVzLnRpbWVPZmZzZXQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHByb3BlcnRpZXMucmVwZWF0Q291bnQpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHByb3BlcnRpZXMuc3BlZWQpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShwcm9wZXJ0
aWVzLmZpbGxNb2RlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZUVudW0ocHJvcGVydGllcy52YWx1ZUZ1bmN0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcm9wZXJ0aWVzLmF1dG9SZXZlcnNlcykp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocHJvcGVy
dGllcy5yZW1vdmVkT25Db21wbGV0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwcm9wZXJ0aWVzLmFkZGl0aXZlKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcm9wZXJ0aWVzLnJldmVyc2VUaW1p
bmdGdW5jdGlvbnMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHByb3BlcnRpZXMuaGFzTm9uWmVyb0JlZ2luVGltZSkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocHJvcGVydGllcy5rZXlWYWx1ZXMpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHByb3BlcnRp
ZXMua2V5VGltZXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB1aW50NjRfdCBudW1U
aW1pbmdGdW5jdGlvbnM7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShudW1UaW1pbmdGdW5jdGlv
bnMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgaWYgKG51bVRpbWluZ0Z1bmN0
aW9ucykgeworICAgICAgICBwcm9wZXJ0aWVzLnRpbWluZ0Z1bmN0aW9ucy5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KG51bVRpbWluZ0Z1bmN0aW9ucyk7CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBudW1UaW1pbmdGdW5jdGlvbnM7ICsraSkgeworICAgICAgICAKKyAgICAgICAgICAg
IFRpbWluZ0Z1bmN0aW9uOjpUaW1pbmdGdW5jdGlvblR5cGUgdHlwZTsKKyAgICAgICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGVFbnVtKHR5cGUpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgICAgICAgICAgUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiB0aW1pbmdGdW5jdGlvbjsK
KyAgICAgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICAgICAgY2FzZSBUaW1pbmdGdW5j
dGlvbjo6TGluZWFyRnVuY3Rpb246CisgICAgICAgICAgICAgICAgdGltaW5nRnVuY3Rpb24gPSBM
aW5lYXJUaW1pbmdGdW5jdGlvbjo6Y3JlYXRlKCk7CisgICAgICAgICAgICAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZSgqc3RhdGljX2Nhc3Q8TGluZWFyVGltaW5nRnVuY3Rpb24qPih0aW1pbmdGdW5j
dGlvbi5nZXQoKSkpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIFRpbWlu
Z0Z1bmN0aW9uOjpDdWJpY0JlemllckZ1bmN0aW9uOgorICAgICAgICAgICAgICAgIHRpbWluZ0Z1
bmN0aW9uID0gQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbjo6Y3JlYXRlKCk7CisgICAgICAgICAg
ICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSgqc3RhdGljX2Nhc3Q8Q3ViaWNCZXppZXJUaW1pbmdG
dW5jdGlvbio+KHRpbWluZ0Z1bmN0aW9uLmdldCgpKSkpCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgY2FzZSBUaW1pbmdGdW5jdGlvbjo6U3RlcHNGdW5jdGlvbjoKKyAgICAgICAgICAgICAg
ICB0aW1pbmdGdW5jdGlvbiA9IFN0ZXBzVGltaW5nRnVuY3Rpb246OmNyZWF0ZSgpOworICAgICAg
ICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoKnN0YXRpY19jYXN0PFN0ZXBzVGltaW5nRnVu
Y3Rpb24qPih0aW1pbmdGdW5jdGlvbi5nZXQoKSkpKQorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIHByb3BlcnRpZXMudGltaW5nRnVuY3Rpb25zLnVuY2hlY2tlZEFw
cGVuZCh0aW1pbmdGdW5jdGlvbi5yZWxlYXNlKCkpOworICAgICAgICB9CisgICAgfQorCisgICAg
cmV0dXJuIHRydWU7Cit9CisKKyNwcmFnbWEgbWFyayAtCisKK1Bhc3NSZWZQdHI8UGxhdGZvcm1D
QUFuaW1hdGlvbj4gUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6Y3JlYXRlKFBsYXRmb3JtQ0FB
bmltYXRpb246OkFuaW1hdGlvblR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKQorewor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZSh0eXBlLCBr
ZXlQYXRoKSk7Cit9CisKK1Bhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1D
QUFuaW1hdGlvblJlbW90ZTo6Y29weSgpIGNvbnN0Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6
OlBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUoQW5pbWF0aW9uVHlwZSB0eXBlLCBjb25zdCBTdHJp
bmcmIGtleVBhdGgpCisgICAgOiBQbGF0Zm9ybUNBQW5pbWF0aW9uKHR5cGUpCit7CisgICAgbV9w
cm9wZXJ0aWVzLmtleVBhdGggPSBrZXlQYXRoOworICAgIG1fcHJvcGVydGllcy5hbmltYXRpb25U
eXBlID0gdHlwZTsKK30KKworU3RyaW5nIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmtleVBh
dGgoKSBjb25zdAoreworICAgIHJldHVybiBtX3Byb3BlcnRpZXMua2V5UGF0aDsKK30KKworQ0ZU
aW1lSW50ZXJ2YWwgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6YmVnaW5UaW1lKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9wcm9wZXJ0aWVzLmJlZ2luVGltZTsKK30KKwordm9pZCBQbGF0Zm9y
bUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRCZWdpblRpbWUoQ0ZUaW1lSW50ZXJ2YWwgdmFsdWUpCit7
CisgICAgbV9wcm9wZXJ0aWVzLmJlZ2luVGltZSA9IHZhbHVlOworICAgIAorICAgIC8vIEFsc28g
c2V0IGEgZmxhZyB0byB0ZWxsIHVzIGlmIHdlJ3ZlIHBhc3NlZCBpbiBhIDAgdmFsdWUuIAorICAg
IC8vIFRoZSBmbGFnIGlzIG5lZWRlZCBiZWNhdXNlIGxhdGVyIGJlZ2luVGltZSB3aWxsIGdldCBj
aGFuZ2VkCisgICAgLy8gdG8gdGhlIHRpbWUgYXQgd2hpY2ggaXQgZmlyZWQgYW5kIHdlIG5lZWQg
dG8ga25vdyB3aGV0aGVyCisgICAgLy8gb3Igbm90IGl0IHdhcyAwIHRvIGJlZ2luIHdpdGguCisg
ICAgaWYgKHZhbHVlKQorICAgICAgICBtX3Byb3BlcnRpZXMuaGFzTm9uWmVyb0JlZ2luVGltZSA9
IHZhbHVlOworfQorCitDRlRpbWVJbnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpk
dXJhdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJvcGVydGllcy5kdXJhdGlvbjsKK30K
Kwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXREdXJhdGlvbihDRlRpbWVJbnRl
cnZhbCB2YWx1ZSkKK3sKKyAgICBtX3Byb3BlcnRpZXMuZHVyYXRpb24gPSB2YWx1ZTsKK30KKwor
ZmxvYXQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c3BlZWQoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3Byb3BlcnRpZXMuc3BlZWQ7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJl
bW90ZTo6c2V0U3BlZWQoZmxvYXQgdmFsdWUpCit7CisgICAgbV9wcm9wZXJ0aWVzLnNwZWVkID0g
dmFsdWU7Cit9CisKK0NGVGltZUludGVydmFsIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnRp
bWVPZmZzZXQoKSBjb25zdAoreworICAgIHJldHVybiBtX3Byb3BlcnRpZXMudGltZU9mZnNldDsK
K30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRUaW1lT2Zmc2V0KENGVGlt
ZUludGVydmFsIHZhbHVlKQoreworICAgIG1fcHJvcGVydGllcy50aW1lT2Zmc2V0ID0gdmFsdWU7
Cit9CisKK2Zsb2F0IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnJlcGVhdENvdW50KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9wcm9wZXJ0aWVzLnJlcGVhdENvdW50OworfQorCit2b2lkIFBs
YXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFJlcGVhdENvdW50KGZsb2F0IHZhbHVlKQorewor
ICAgIG1fcHJvcGVydGllcy5yZXBlYXRDb3VudCA9IHZhbHVlOworfQorCitib29sIFBsYXRmb3Jt
Q0FBbmltYXRpb25SZW1vdGU6OmF1dG9yZXZlcnNlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
cHJvcGVydGllcy5hdXRvUmV2ZXJzZXM7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJl
bW90ZTo6c2V0QXV0b3JldmVyc2VzKGJvb2wgdmFsdWUpCit7CisgICAgbV9wcm9wZXJ0aWVzLmF1
dG9SZXZlcnNlcyA9IHZhbHVlOworfQorCitQbGF0Zm9ybUNBQW5pbWF0aW9uOjpGaWxsTW9kZVR5
cGUgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6ZmlsbE1vZGUoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3Byb3BlcnRpZXMuZmlsbE1vZGU7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
blJlbW90ZTo6c2V0RmlsbE1vZGUoRmlsbE1vZGVUeXBlIHZhbHVlKQoreworICAgIG1fcHJvcGVy
dGllcy5maWxsTW9kZSA9IHZhbHVlOworfQorCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1v
dGU6OnNldFRpbWluZ0Z1bmN0aW9uKGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB2YWx1ZSwgYm9vbCBy
ZXZlcnNlKQoreworICAgIFZlY3RvcjxSZWZQdHI8VGltaW5nRnVuY3Rpb24+PiB0aW1pbmdGdW5j
dGlvbnM7CisgICAgdGltaW5nRnVuY3Rpb25zLmFwcGVuZCh2YWx1ZS0+Y2xvbmUoKSk7CisKKyAg
ICBtX3Byb3BlcnRpZXMudGltaW5nRnVuY3Rpb25zID0gc3RkOjptb3ZlKHRpbWluZ0Z1bmN0aW9u
cyk7CisgICAgbV9wcm9wZXJ0aWVzLnJldmVyc2VUaW1pbmdGdW5jdGlvbnMgPSByZXZlcnNlOwor
fQorCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmNvcHlUaW1pbmdGdW5jdGlvbkZy
b20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCit7CisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Cit9CisKK2Jvb2wgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6aXNSZW1vdmVk
T25Db21wbGV0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcm9wZXJ0aWVzLnJlbW92ZWRP
bkNvbXBsZXRpb247Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0UmVt
b3ZlZE9uQ29tcGxldGlvbihib29sIHZhbHVlKQoreworICAgIG1fcHJvcGVydGllcy5yZW1vdmVk
T25Db21wbGV0aW9uID0gdmFsdWU7Cit9CisKK2Jvb2wgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90
ZTo6aXNBZGRpdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJvcGVydGllcy5hZGRpdGl2
ZTsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRBZGRpdGl2ZShib29s
IHZhbHVlKQoreworICAgIG1fcHJvcGVydGllcy5hZGRpdGl2ZSA9IHZhbHVlOworfQorCitQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpWYWx1ZUZ1bmN0aW9uVHlwZSBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVt
b3RlOjp2YWx1ZUZ1bmN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcm9wZXJ0aWVzLnZh
bHVlRnVuY3Rpb247Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0VmFs
dWVGdW5jdGlvbihWYWx1ZUZ1bmN0aW9uVHlwZSB2YWx1ZSkKK3sKKyAgICBtX3Byb3BlcnRpZXMu
dmFsdWVGdW5jdGlvbiA9IHZhbHVlOworfQorCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1v
dGU6OnNldEZyb21WYWx1ZShmbG9hdCB2YWx1ZSkKK3sKKyAgICBpZiAoYW5pbWF0aW9uVHlwZSgp
ICE9IEJhc2ljKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVz
LnJlc2l6ZSgyKTsKKyAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzWzBdID0gS2V5ZnJhbWVWYWx1
ZSh2YWx1ZSk7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0RnJvbVZh
bHVlKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB2YWx1ZSkKK3sKKyAgICBpZiAoYW5pbWF0
aW9uVHlwZSgpICE9IEJhc2ljKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb3BlcnRpZXMu
a2V5VmFsdWVzLnJlc2l6ZSgyKTsKKyAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzWzBdID0gS2V5
ZnJhbWVWYWx1ZSh2YWx1ZSk7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6
c2V0RnJvbVZhbHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYgdmFsdWUpCit7CisgICAgaWYgKGFuaW1h
dGlvblR5cGUoKSAhPSBCYXNpYykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcm9wZXJ0aWVz
LmtleVZhbHVlcy5yZXNpemUoMik7CisgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlc1swXSA9IEtl
eWZyYW1lVmFsdWUodmFsdWUpOworfQorCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6
OnNldEZyb21WYWx1ZShjb25zdCBDb2xvciYgdmFsdWUpCit7CisgICAgaWYgKGFuaW1hdGlvblR5
cGUoKSAhPSBCYXNpYykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcm9wZXJ0aWVzLmtleVZh
bHVlcy5yZXNpemUoMik7CisgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlc1swXSA9IEtleWZyYW1l
VmFsdWUodmFsdWUpOworfQorCisjaWYgRU5BQkxFKENTU19GSUxURVJTKQordm9pZCBQbGF0Zm9y
bUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRGcm9tVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiBv
cGVyYXRpb24sIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpCit7CisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Cit9CisjZW5kaWYKKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVt
b3RlOjpjb3B5RnJvbVZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkK
K3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0
aW9uUmVtb3RlOjpzZXRUb1ZhbHVlKGZsb2F0IHZhbHVlKQoreworICAgIGlmIChhbmltYXRpb25U
eXBlKCkgIT0gQmFzaWMpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJvcGVydGllcy5rZXlW
YWx1ZXMucmVzaXplKDIpOworICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXNbMV0gPSBLZXlmcmFt
ZVZhbHVlKHZhbHVlKTsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRU
b1ZhbHVlKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB2YWx1ZSkKK3sKKyAgICBpZiAoYW5p
bWF0aW9uVHlwZSgpICE9IEJhc2ljKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb3BlcnRp
ZXMua2V5VmFsdWVzLnJlc2l6ZSgyKTsKKyAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzWzFdID0g
S2V5ZnJhbWVWYWx1ZSh2YWx1ZSk7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90
ZTo6c2V0VG9WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmIHZhbHVlKQoreworICAgIGlmIChhbmlt
YXRpb25UeXBlKCkgIT0gQmFzaWMpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJvcGVydGll
cy5rZXlWYWx1ZXMucmVzaXplKDIpOworICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXNbMV0gPSBL
ZXlmcmFtZVZhbHVlKHZhbHVlKTsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3Rl
OjpzZXRUb1ZhbHVlKGNvbnN0IENvbG9yJiB2YWx1ZSkKK3sKKyAgICBpZiAoYW5pbWF0aW9uVHlw
ZSgpICE9IEJhc2ljKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb3BlcnRpZXMua2V5VmFs
dWVzLnJlc2l6ZSgyKTsKKyAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzWzFdID0gS2V5ZnJhbWVW
YWx1ZSh2YWx1ZSk7Cit9CisKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCit2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25SZW1vdGU6OnNldFRvVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiBvcGVy
YXRpb24sIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpCit7CisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Cit9CisjZW5kaWYKKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3Rl
Ojpjb3B5VG9WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCit7Cisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKKy8vIEtleWZyYW1lLWFuaW1hdGlvbiBwcm9w
ZXJ0aWVzLgordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRWYWx1ZXMoY29uc3Qg
VmVjdG9yPGZsb2F0PiYgdmFsdWVzKQoreworICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gS2V5
ZnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIFZlY3RvcjxLZXlmcmFtZVZhbHVlPiBrZXlm
cmFtZXM7CisgICAga2V5ZnJhbWVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodmFsdWVzLnNpemUo
KSk7CisgICAgCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2YWx1ZXMuc2l6ZSgpOyArK2kp
CisgICAgICAgIGtleWZyYW1lcy51bmNoZWNrZWRBcHBlbmQoS2V5ZnJhbWVWYWx1ZSh2YWx1ZXNb
aV0pKTsKKyAgICAKKyAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzID0gc3RkOjptb3ZlKGtleWZy
YW1lcyk7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0VmFsdWVzKGNv
bnN0IFZlY3RvcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD4mIHZhbHVlcykKK3sKKyAgICBpZiAoYW5p
bWF0aW9uVHlwZSgpICE9IEtleWZyYW1lKQorICAgICAgICByZXR1cm47CisgICAgICAgIAorICAg
IFZlY3RvcjxLZXlmcmFtZVZhbHVlPiBrZXlmcmFtZXM7CisgICAga2V5ZnJhbWVzLnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkodmFsdWVzLnNpemUoKSk7CisgICAgCisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCB2YWx1ZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIGtleWZyYW1lcy51bmNoZWNrZWRB
cHBlbmQoS2V5ZnJhbWVWYWx1ZSh2YWx1ZXNbaV0pKTsKKyAgICAKKyAgICBtX3Byb3BlcnRpZXMu
a2V5VmFsdWVzID0gc3RkOjptb3ZlKGtleWZyYW1lcyk7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvblJlbW90ZTo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxGbG9hdFBvaW50M0Q+JiB2YWx1
ZXMpCit7CisgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBLZXlmcmFtZSkKKyAgICAgICAgcmV0
dXJuOworICAgICAgICAKKyAgICBWZWN0b3I8S2V5ZnJhbWVWYWx1ZT4ga2V5ZnJhbWVzOworICAg
IGtleWZyYW1lcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHZhbHVlcy5zaXplKCkpOworICAgIAor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFsdWVzLnNpemUoKTsgKytpKQorICAgICAgICBr
ZXlmcmFtZXMudW5jaGVja2VkQXBwZW5kKEtleWZyYW1lVmFsdWUodmFsdWVzW2ldKSk7CisgICAg
CisgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcyA9IHN0ZDo6bW92ZShrZXlmcmFtZXMpOworfQor
Cit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8
Q29sb3I+JiB2YWx1ZXMpCit7CisgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBLZXlmcmFtZSkK
KyAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICBWZWN0b3I8S2V5ZnJhbWVWYWx1ZT4ga2V5
ZnJhbWVzOworICAgIGtleWZyYW1lcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHZhbHVlcy5zaXpl
KCkpOworICAgIAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFsdWVzLnNpemUoKTsgKytp
KQorICAgICAgICBrZXlmcmFtZXMudW5jaGVja2VkQXBwZW5kKEtleWZyYW1lVmFsdWUodmFsdWVz
W2ldKSk7CisgICAgCisgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcyA9IHN0ZDo6bW92ZShrZXlm
cmFtZXMpOworfQorCisjaWYgRU5BQkxFKENTU19GSUxURVJTKQordm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uUmVtb3RlOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxGaWx0ZXJPcGVyYXRp
b24+PiYsIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpCit7CisgICAgVU5VU0VEX1BB
UkFNKGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Cit9CisjZW5kaWYKKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpjb3B5VmFs
dWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKK3sKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRL
ZXlUaW1lcyhjb25zdCBWZWN0b3I8ZmxvYXQ+JiBrZXlUaW1lcykKK3sKKyAgICBtX3Byb3BlcnRp
ZXMua2V5VGltZXMgPSBrZXlUaW1lczsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVt
b3RlOjpjb3B5S2V5VGltZXNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQor
eworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b25SZW1vdGU6OnNldFRpbWluZ0Z1bmN0aW9ucyhjb25zdCBWZWN0b3I8Y29uc3QgVGltaW5nRnVu
Y3Rpb24qPiYgdmFsdWVzLCBib29sIHJldmVyc2UpCit7CisgICAgVmVjdG9yPFJlZlB0cjxXZWJD
b3JlOjpUaW1pbmdGdW5jdGlvbj4+IHRpbWluZ0Z1bmN0aW9uczsKKyAgICB0aW1pbmdGdW5jdGlv
bnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh2YWx1ZXMuc2l6ZSgpKTsKKyAgICAKKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHZhbHVlcy5zaXplKCk7ICsraSkKKyAgICAgICAgdGltaW5nRnVu
Y3Rpb25zLnVuY2hlY2tlZEFwcGVuZCh2YWx1ZXNbaV0tPmNsb25lKCkpOworICAgIAorICAgIG1f
cHJvcGVydGllcy50aW1pbmdGdW5jdGlvbnMgPSBzdGQ6Om1vdmUodGltaW5nRnVuY3Rpb25zKTsK
KyAgICBtX3Byb3BlcnRpZXMucmV2ZXJzZVRpbWluZ0Z1bmN0aW9ucyA9IHJldmVyc2U7Cit9CisK
K3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6Y29weVRpbWluZ0Z1bmN0aW9uc0Zyb20o
Y29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCit7CisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Cit9CisKK3N0YXRpYyBOU09iamVjdCogYW5pbWF0aW9uVmFsdWVGcm9tS2V5ZnJhbWVW
YWx1ZShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpLZXlmcmFtZVZhbHVlJiBrZXlm
cmFtZVZhbHVlKQoreworICAgIHN3aXRjaCAoa2V5ZnJhbWVWYWx1ZS5rZXlmcmFtZVR5cGUoKSkg
eworICAgIGNhc2UgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6S2V5ZnJhbWVWYWx1ZTo6TnVt
YmVyS2V5VHlwZToKKyAgICAgICAgcmV0dXJuIFtOU051bWJlciBudW1iZXJXaXRoRG91YmxlOmtl
eWZyYW1lVmFsdWUubnVtYmVyVmFsdWUoKV07CisKKyAgICBjYXNlIFBsYXRmb3JtQ0FBbmltYXRp
b25SZW1vdGU6OktleWZyYW1lVmFsdWU6OkNvbG9yS2V5VHlwZTogeworICAgICAgICBDb2xvciBj
b2xvciA9IGtleWZyYW1lVmFsdWUuY29sb3JWYWx1ZSgpOworICAgICAgICByZXR1cm4gW05TQXJy
YXkgYXJyYXlXaXRoT2JqZWN0czoKKyAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoRG91
YmxlOmNvbG9yLnJlZCgpXSwKKyAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoRG91Ymxl
OmNvbG9yLmdyZWVuKCldLAorICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhEb3VibGU6
Y29sb3IuYmx1ZSgpXSwKKyAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoRG91YmxlOmNv
bG9yLmFscGhhKCldLAorICAgICAgICAgICAgbmlsXTsKKyAgICB9CisKKyAgICBjYXNlIFBsYXRm
b3JtQ0FBbmltYXRpb25SZW1vdGU6OktleWZyYW1lVmFsdWU6OlBvaW50S2V5VHlwZTogeworICAg
ICAgICBGbG9hdFBvaW50M0QgcG9pbnQgPSBrZXlmcmFtZVZhbHVlLnBvaW50VmFsdWUoKTsKKyAg
ICAgICAgcmV0dXJuIFtOU0FycmF5IGFycmF5V2l0aE9iamVjdHM6CisgICAgICAgICAgICBbTlNO
dW1iZXIgbnVtYmVyV2l0aERvdWJsZTpwb2ludC54KCldLAorICAgICAgICAgICAgW05TTnVtYmVy
IG51bWJlcldpdGhEb3VibGU6cG9pbnQueSgpXSwKKyAgICAgICAgICAgIFtOU051bWJlciBudW1i
ZXJXaXRoRG91YmxlOnBvaW50LnooKV0sCisgICAgICAgICAgICBuaWxdOworICAgIH0KKyAgICBj
YXNlIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OktleWZyYW1lVmFsdWU6OlRyYW5zZm9ybUtl
eVR5cGU6CisgICAgICAgIHJldHVybiBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOmtl
eWZyYW1lVmFsdWUudHJhbnNmb3JtVmFsdWUoKV07CisgICAgfQorfQorCitzdGF0aWMgdm9pZCBh
ZGRBbmltYXRpb25Ub0xheWVyKENBTGF5ZXIgKmxheWVyLCBSZW1vdGVMYXllclRyZWVIb3N0KiBs
YXllclRyZWVIb3N0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlv
blJlbW90ZTo6UHJvcGVydGllcyYgcHJvcGVydGllcykKK3sKKyAgICBSZXRhaW5QdHI8Q0FQcm9w
ZXJ0eUFuaW1hdGlvbj4gY2FBbmltYXRpb247CisgICAgc3dpdGNoIChwcm9wZXJ0aWVzLmFuaW1h
dGlvblR5cGUpIHsKKyAgICBjYXNlIFBsYXRmb3JtQ0FBbmltYXRpb246OkJhc2ljOiB7CisgICAg
ICAgIFJldGFpblB0cjxDQUJhc2ljQW5pbWF0aW9uPiBiYXNpY0FuaW1hdGlvbjsKKyAgICAgICAg
YmFzaWNBbmltYXRpb24gPSBbQ0FCYXNpY0FuaW1hdGlvbiBhbmltYXRpb25XaXRoS2V5UGF0aDpw
cm9wZXJ0aWVzLmtleVBhdGhdOworICAgICAgICAKKyAgICAgICAgaWYgKHByb3BlcnRpZXMua2V5
VmFsdWVzLnNpemUoKSA+IDEpIHsKKyAgICAgICAgICAgIFtiYXNpY0FuaW1hdGlvbiBzZXRGcm9t
VmFsdWU6YW5pbWF0aW9uVmFsdWVGcm9tS2V5ZnJhbWVWYWx1ZShwcm9wZXJ0aWVzLmtleVZhbHVl
c1swXSldOworICAgICAgICAgICAgW2Jhc2ljQW5pbWF0aW9uIHNldFRvVmFsdWU6YW5pbWF0aW9u
VmFsdWVGcm9tS2V5ZnJhbWVWYWx1ZShwcm9wZXJ0aWVzLmtleVZhbHVlc1sxXSldOworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICBpZiAocHJvcGVydGllcy50aW1pbmdGdW5jdGlvbnMuc2l6
ZSgpKQorICAgICAgICAgICAgW2Jhc2ljQW5pbWF0aW9uIHNldFRpbWluZ0Z1bmN0aW9uOnRvQ0FN
ZWRpYVRpbWluZ0Z1bmN0aW9uKHByb3BlcnRpZXMudGltaW5nRnVuY3Rpb25zWzBdLmdldCgpLCBw
cm9wZXJ0aWVzLnJldmVyc2VUaW1pbmdGdW5jdGlvbnMpXTsKKyAgICAgICAgCisgICAgICAgIGNh
QW5pbWF0aW9uID0gYmFzaWNBbmltYXRpb247CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBj
YXNlIFBsYXRmb3JtQ0FBbmltYXRpb246OktleWZyYW1lOiB7CisgICAgICAgIFJldGFpblB0cjxD
QUtleWZyYW1lQW5pbWF0aW9uPiBrZXlmcmFtZUFuaW1hdGlvbjsKKyAgICAgICAga2V5ZnJhbWVB
bmltYXRpb24gPSBbQ0FLZXlmcmFtZUFuaW1hdGlvbiBhbmltYXRpb25XaXRoS2V5UGF0aDpwcm9w
ZXJ0aWVzLmtleVBhdGhdOworCisgICAgICAgIGlmIChwcm9wZXJ0aWVzLmtleVZhbHVlcy5zaXpl
KCkpIHsKKyAgICAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheT4ga2V5ZnJhbWVzID0g
YWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OnByb3BlcnRp
ZXMua2V5VmFsdWVzLnNpemUoKV0pOworICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiB2YWx1
ZSA6IHByb3BlcnRpZXMua2V5VmFsdWVzKQorICAgICAgICAgICAgICAgIFtrZXlmcmFtZXMgYWRk
T2JqZWN0OmFuaW1hdGlvblZhbHVlRnJvbUtleWZyYW1lVmFsdWUodmFsdWUpXTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgW2tleWZyYW1lQW5pbWF0aW9uIHNldFZhbHVlczprZXlmcmFtZXMu
Z2V0KCldOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHByb3BlcnRpZXMua2V5VGltZXMuc2l6
ZSgpKSB7CisgICAgICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IGtleVRpbWVzID0g
YWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OnByb3BlcnRp
ZXMua2V5VGltZXMuc2l6ZSgpXSk7CisgICAgICAgICAgICBmb3IgKGF1dG8ga2V5VGltZSA6IHBy
b3BlcnRpZXMua2V5VGltZXMpCisgICAgICAgICAgICAgICAgW2tleVRpbWVzIGFkZE9iamVjdDpb
TlNOdW1iZXIgbnVtYmVyV2l0aEZsb2F0OmtleVRpbWVdXTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgW2tleWZyYW1lQW5pbWF0aW9uIHNldEtleVRpbWVzOmtleVRpbWVzLmdldCgpXTsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChwcm9wZXJ0aWVzLnRpbWluZ0Z1bmN0aW9ucy5zaXplKCkp
IHsKKyAgICAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheT4gdGltaW5nRnVuY3Rpb25z
ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OnByb3Bl
cnRpZXMudGltaW5nRnVuY3Rpb25zLnNpemUoKV0pOworICAgICAgICAgICAgZm9yIChjb25zdCBh
dXRvJiB0aW1pbmdGdW5jdGlvbiA6IHByb3BlcnRpZXMudGltaW5nRnVuY3Rpb25zKQorICAgICAg
ICAgICAgICAgIFt0aW1pbmdGdW5jdGlvbnMgYWRkT2JqZWN0OnRvQ0FNZWRpYVRpbWluZ0Z1bmN0
aW9uKHRpbWluZ0Z1bmN0aW9uLmdldCgpLCBwcm9wZXJ0aWVzLnJldmVyc2VUaW1pbmdGdW5jdGlv
bnMpXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgW2tleWZyYW1lQW5pbWF0aW9uIHNldFRp
bWluZ0Z1bmN0aW9uczp0aW1pbmdGdW5jdGlvbnMuZ2V0KCldOworICAgICAgICB9CisgICAgICAg
IAorICAgICAgICBjYUFuaW1hdGlvbiA9IGtleWZyYW1lQW5pbWF0aW9uOworICAgICAgICBicmVh
azsKKyAgICB9CisgICAgfQorICAgIAorICAgIFtjYUFuaW1hdGlvbiBzZXRCZWdpblRpbWU6cHJv
cGVydGllcy5iZWdpblRpbWVdOworICAgIFtjYUFuaW1hdGlvbiBzZXREdXJhdGlvbjpwcm9wZXJ0
aWVzLmR1cmF0aW9uXTsKKyAgICBbY2FBbmltYXRpb24gc2V0VGltZU9mZnNldDpwcm9wZXJ0aWVz
LnRpbWVPZmZzZXRdOworICAgIFtjYUFuaW1hdGlvbiBzZXRSZXBlYXRDb3VudDpwcm9wZXJ0aWVz
LnJlcGVhdENvdW50XTsKKyAgICBbY2FBbmltYXRpb24gc2V0U3BlZWQ6cHJvcGVydGllcy5zcGVl
ZF07CisgICAgW2NhQW5pbWF0aW9uIHNldEF1dG9yZXZlcnNlczpwcm9wZXJ0aWVzLmF1dG9SZXZl
cnNlc107CisgICAgW2NhQW5pbWF0aW9uIHNldFJlbW92ZWRPbkNvbXBsZXRpb246cHJvcGVydGll
cy5yZW1vdmVkT25Db21wbGV0aW9uXTsKKyAgICBbY2FBbmltYXRpb24gc2V0QWRkaXRpdmU6cHJv
cGVydGllcy5hZGRpdGl2ZV07CisgICAgCisgICAgaWYgKHByb3BlcnRpZXMuZmlsbE1vZGUgIT0g
UGxhdGZvcm1DQUFuaW1hdGlvbjo6Tm9GaWxsTW9kZSkKKyAgICAgICAgW2NhQW5pbWF0aW9uIHNl
dEZpbGxNb2RlOnRvQ0FGaWxsTW9kZVR5cGUocHJvcGVydGllcy5maWxsTW9kZSldOworCisgICAg
aWYgKHByb3BlcnRpZXMudmFsdWVGdW5jdGlvbiAhPSBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpOb1Zh
bHVlRnVuY3Rpb24pCisgICAgICAgIFtjYUFuaW1hdGlvbiBzZXRWYWx1ZUZ1bmN0aW9uOltDQVZh
bHVlRnVuY3Rpb24gZnVuY3Rpb25XaXRoTmFtZTp0b0NBVmFsdWVGdW5jdGlvblR5cGUocHJvcGVy
dGllcy52YWx1ZUZ1bmN0aW9uKV1dOworICAgIAorICAgIGlmIChwcm9wZXJ0aWVzLmhhc05vblpl
cm9CZWdpblRpbWUpCisgICAgICAgIFtjYUFuaW1hdGlvbi5nZXQoKSAgc2V0VmFsdWU6W05TTnVt
YmVyIG51bWJlcldpdGhCb29sOllFU10gZm9yS2V5OldLTm9uWmVyb0JlZ2luVGltZUZsYWddOwor
ICAgIAorICAgIGlmIChsYXllclRyZWVIb3N0KSB7CisgICAgICAgIEdyYXBoaWNzTGF5ZXI6OlBs
YXRmb3JtTGF5ZXJJRCBsYXllcklEID0gUmVtb3RlTGF5ZXJUcmVlSG9zdDo6bGF5ZXJJRChsYXll
cik7CisgICAgCisgICAgICAgIFJldGFpblB0cjxXS0FuaW1hdGlvbkRlbGVnYXRlPiYgZGVsZWdh
dGUgPSBsYXllclRyZWVIb3N0LT5hbmltYXRpb25EZWxlZ2F0ZXMoKS5hZGQobGF5ZXJJRCwgbnVs
bHB0cikuaXRlcmF0b3ItPnZhbHVlOworICAgICAgICBpZiAoIWRlbGVnYXRlKQorICAgICAgICAg
ICAgZGVsZWdhdGUgPSBhZG9wdE5TKFtbV0tBbmltYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdFdp
dGhMYXllcklEOmxheWVySUQgbGF5ZXJUcmVlSG9zdDpsYXllclRyZWVIb3N0XSk7CisKKyAgICAg
ICAgW2NhQW5pbWF0aW9uIHNldERlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKyAgICB9CisgICAg
CisgICAgW2xheWVyIGFkZEFuaW1hdGlvbjpjYUFuaW1hdGlvbi5nZXQoKSBmb3JLZXk6a2V5XTsK
K30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjp1cGRhdGVMYXllckFuaW1hdGlv
bnMoQ0FMYXllciAqbGF5ZXIsIFJlbW90ZUxheWVyVHJlZUhvc3QqIGxheWVyVHJlZUhvc3QsIGNv
bnN0IEFuaW1hdGlvbnNNYXAmIGFuaW1hdGlvbnNUb0FkZCwgY29uc3QgSGFzaFNldDxTdHJpbmc+
JiBhbmltYXRpb25zVG9SZW1vdmUpCit7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
OworCisgICAgZm9yIChjb25zdCBhdXRvJiB2YWx1ZSA6IGFuaW1hdGlvbnNUb1JlbW92ZSkKKyAg
ICAgICAgW2xheWVyIHJlbW92ZUFuaW1hdGlvbkZvcktleTp2YWx1ZV07CisKKyAgICBmb3IgKGNv
bnN0IGF1dG8mIGtleVZhbHVlUGFpciA6IGFuaW1hdGlvbnNUb0FkZCkKKyAgICAgICAgYWRkQW5p
bWF0aW9uVG9MYXllcihsYXllciwgbGF5ZXJUcmVlSG9zdCwga2V5VmFsdWVQYWlyLmtleSwga2V5
VmFsdWVQYWlyLnZhbHVlKTsKKworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCmluZGV4
IDc2NTk2NjU3NWU1Yjk3Y2E5NzM2ZGY4MGZiZGEwNzk1NzFmY2JkM2QuLjRkNGY1NjgzMDExYTQz
MDZjNmFlMjkyNDYzOTc0MDk3ZjUyMWI4YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5j
cHAKQEAgLTQyLDcgKzQyLDggQEAKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7Ci11c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCituYW1lc3BhY2Ug
V2ViS2l0IHsKIAogUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU+IFBsYXRmb3JtQ0FM
YXllclJlbW90ZTo6Y3JlYXRlKExheWVyVHlwZSBsYXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckNs
aWVudCogb3duZXIsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQqIGNvbnRleHQpCiB7CkBAIC0xMjQs
NyArMTI1LDcgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlY3Vyc2l2ZUJ1aWxkVHJh
bnNhY3Rpb24oUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24KICAgICAgICAgfQogCiAgICAgICAg
IGlmIChtX2xheWVyVHlwZSA9PSBMYXllclR5cGVDdXN0b20pIHsKLSAgICAgICAgICAgIFJlbW90
ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6YXBwbHlQcm9wZXJ0aWVzKHBsYXRmb3JtTGF5ZXIo
KSwgbV9wcm9wZXJ0aWVzLCBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXI6OlJlbGF0ZWRM
YXllck1hcCgpKTsKKyAgICAgICAgICAgIFJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6
YXBwbHlQcm9wZXJ0aWVzKHBsYXRmb3JtTGF5ZXIoKSwgbnVsbHB0ciwgbV9wcm9wZXJ0aWVzLCBS
ZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXI6OlJlbGF0ZWRMYXllck1hcCgpKTsKICAgICAg
ICAgICAgIG1fcHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyA9IFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjpOb0NoYW5nZTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAt
MTQ1LDYgKzE0Niw4IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZWN1cnNpdmVCdWls
ZFRyYW5zYWN0aW9uKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uCiAKIHZvaWQgUGxhdGZvcm1D
QUxheWVyUmVtb3RlOjphbmltYXRpb25TdGFydGVkKENGVGltZUludGVydmFsIGJlZ2luVGltZSkK
IHsKKyAgICBpZiAobV9vd25lcikKKyAgICAgICAgbV9vd25lci0+cGxhdGZvcm1DQUxheWVyQW5p
bWF0aW9uU3RhcnRlZChiZWdpblRpbWUpOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90
ZTo6ZW5zdXJlQmFja2luZ1N0b3JlKCkKQEAgLTI2NywxOCArMjcwLDIyIEBAIHZvaWQgUGxhdGZv
cm1DQUxheWVyUmVtb3RlOjphZG9wdFN1YmxheWVycyhQbGF0Zm9ybUNBTGF5ZXIqIHNvdXJjZSkK
IAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFkZEFuaW1hdGlvbkZvcktleShjb25zdCBT
dHJpbmcmIGtleSwgUGxhdGZvcm1DQUFuaW1hdGlvbiogYW5pbWF0aW9uKQogewotICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIG1fcHJvcGVydGllcy5hZGRlZEFuaW1hdGlvbnMuc2V0KGtl
eSwgdG9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlKGFuaW1hdGlvbiktPnByb3BlcnRpZXMoKSk7
CisgICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hhbmdlZChSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbjo6QW5pbWF0aW9uc0NoYW5nZWQpOworICAgIAorICAgIG1fY29udGV4dC0+d2ls
bFN0YXJ0QW5pbWF0aW9uT25MYXllcih0aGlzKTsKIH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGU6OnJlbW92ZUFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSkKIHsKLSAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAvLyBGSVhNRTogcmVtb3ZlIGZyb20gbV9wcm9wZXJ0
aWVzLmFkZGVkQW5pbWF0aW9ucyA/CisgICAgbV9wcm9wZXJ0aWVzLmtleVBhdGhzT2ZBbmltYXRp
b25zVG9SZW1vdmUuYWRkKGtleSk7CisgICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hh
bmdlZChSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6QW5pbWF0aW9uc0NoYW5nZWQpOwogfQog
CiBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6
YW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KQogewotICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotCisgICAgLy8gRklYTUU6IGltcGxlbWVudC4KICAgICByZXR1cm4gbnVsbHB0cjsK
IH0KIApAQCAtNTg5LDMgKzU5Niw1IEBAIHVpbnQzMl90IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6
aG9zdGluZ0NvbnRleHRJRCgpCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJu
IDA7CiB9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJl
bW90ZUN1c3RvbS5tbQppbmRleCA0MzQyOWVkZWE3MjBiOWM2NDNkN2FmNzYwYjk5Njc2ZjJiYjQ5
YzVkLi5hMjAyZDY1ZGRkNmFlNTg1MmY0MjRlZDY4YTI0NzMyNGUxNDBlMjIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJl
bW90ZUN1c3RvbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5tbQpAQCAtMzcsNyArMzcsOCBAQAogI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLXVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CisKK25hbWVzcGFjZSBXZWJLaXQgewogCiBzdGF0aWMgTlNTdHJpbmcg
KiBjb25zdCBwbGF0Zm9ybUNBTGF5ZXJQb2ludGVyID0gQCJXS1BsYXRmb3JtQ0FMYXllciI7CiBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206OlBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbShQ
bGF0Zm9ybUxheWVyKiBjdXN0b21MYXllciwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lciwg
UmVtb3RlTGF5ZXJUcmVlQ29udGV4dCogY29udGV4dCkKQEAgLTgzLDMgKzg0LDUgQEAgdm9pZCBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206OnNldE5lZWRzRGlzcGxheShjb25zdCBGbG9hdFJl
Y3QqIHJlY3QpCiAgICAgfSBlbHNlCiAgICAgICAgIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0
TmVlZHNEaXNwbGF5KHJlY3QpOwogfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVy
UmVtb3RlVGlsZWRCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmNwcAppbmRleCBmZmEzYzVi
NTEwYjQxODcyYjNkNWMzMWI0NzFlZjQwY2Y0MzMxMGMxLi45ZjQwYzVjNGZkY2NmNGViMzZhYTdj
YmM4NmIzMzhhNGQ3NThlYTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1v
dGVUaWxlZEJhY2tpbmcuY3BwCkBAIC0zMyw3ICszMyw4IEBACiAjaW1wb3J0IDx3dGYvUmV0YWlu
UHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotdXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKKworbmFtZXNwYWNlIFdlYktpdCB7CiAKIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFj
a2luZzo6UGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nKExheWVyVHlwZSBsYXllclR5
cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQq
IGNvbnRleHQpCiAgICAgOiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUobGF5ZXJUeXBlLCBvd25lciwg
Y29udGV4dCkKQEAgLTEwMiwzICsxMDMsNSBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRp
bGVkQmFja2luZzo6c2V0Qm9yZGVyQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbAogewog
ICAgIG1fdGlsZUNvbnRyb2xsZXItPnNldFRpbGVEZWJ1Z0JvcmRlckNvbG9yKGNvbG9yKTsKIH0K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCmluZGV4
IGFhMDEwZTUwMmZlMTY2ZGFhYmVkYmVlNzBjMjQ2ZjFjY2ZmNTM3NGIuLjlhYzQ1ZmY5N2QzNTJk
YzVmM2VlYTgyYjRiMGU0ZTVhNDUzOGYwMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5o
CkBAIC01NSw2ICs1NSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBmbHVzaE91dE9mVHJlZUxheWVy
cygpOwogICAgIHZvaWQgYnVpbGRUcmFuc2FjdGlvbihSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
biYsIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllciYgcm9vdExheWVyKTsKIAorICAgIC8vIEZyb20g
dGhlIFVJIHByb2Nlc3MKKyAgICB2b2lkIGFuaW1hdGlvbkRpZFN0YXJ0KFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCwgZG91YmxlIHN0YXJ0VGltZSk7CisKKyAgICB2b2lk
IHdpbGxTdGFydEFuaW1hdGlvbk9uTGF5ZXIoUGxhdGZvcm1DQUxheWVyUmVtb3RlKik7CisKIHBy
aXZhdGU6CiAgICAgLy8gV2ViQ29yZTo6R3JhcGhpY3NMYXllckZhY3RvcnkKICAgICB2aXJ0dWFs
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBjcmVhdGVHcmFwaGljc0xh
eWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQqKSBvdmVycmlkZTsKQEAgLTY2LDYgKzcx
LDggQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6
TGF5ZXJDcmVhdGlvblByb3BlcnRpZXM+IG1fY3JlYXRlZExheWVyczsKICAgICBWZWN0b3I8V2Vi
Q29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPiBtX2Rlc3Ryb3llZExheWVyczsK
KyAgICAKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJ
RCwgUGxhdGZvcm1DQUxheWVyUmVtb3RlKj4gbV9sYXllcnNBd2FpdGluZ0FuaW1hdGlvblN0YXJ0
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQu
bW0KaW5kZXggZDg4MDYzNWUyZjM3MjcyNzJkYjU5YWRmZWEzODJlNmE2OWE5MGRmMi4uYjM4MmVi
YzJiNGUxMTJjNmY1MTU4MGJjNGNkMDBiMGM3MDAzODA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVl
Q29udGV4dC5tbQpAQCAtNjUsNiArNjUsOCBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ6
OmxheWVyV2lsbEJlRGVzdHJveWVkKFBsYXRmb3JtQ0FMYXllclJlbW90ZSogbGF5ZXIpCiB7CiAg
ICAgQVNTRVJUKCFtX2Rlc3Ryb3llZExheWVycy5jb250YWlucyhsYXllci0+bGF5ZXJJRCgpKSk7
CiAgICAgbV9kZXN0cm95ZWRMYXllcnMuYXBwZW5kKGxheWVyLT5sYXllcklEKCkpOworICAgIAor
ICAgIG1fbGF5ZXJzQXdhaXRpbmdBbmltYXRpb25TdGFydC5yZW1vdmUobGF5ZXItPmxheWVySUQo
KSk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6b3V0T2ZUcmVlTGF5ZXJXYXNB
ZGRlZChHcmFwaGljc0xheWVyKiBsYXllcikKQEAgLTEwMiw0ICsxMDQsMTYgQEAgdm9pZCBSZW1v
dGVMYXllclRyZWVDb250ZXh0OjpidWlsZFRyYW5zYWN0aW9uKFJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uJiB0cmFuc2EKICAgICB0cmFuc2FjdGlvbi5zZXREZXN0cm95ZWRMYXllcklEcyhzdGQ6
Om1vdmUobV9kZXN0cm95ZWRMYXllcnMpKTsKIH0KIAordm9pZCBSZW1vdGVMYXllclRyZWVDb250
ZXh0Ojp3aWxsU3RhcnRBbmltYXRpb25PbkxheWVyKFBsYXRmb3JtQ0FMYXllclJlbW90ZSogbGF5
ZXIpCit7CisgICAgbV9sYXllcnNBd2FpdGluZ0FuaW1hdGlvblN0YXJ0LmFkZChsYXllci0+bGF5
ZXJJRCgpLCBsYXllcik7Cit9CisKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6YW5pbWF0
aW9uRGlkU3RhcnQoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIGxheWVy
SUQsIGRvdWJsZSBzdGFydFRpbWUpCit7CisgICAgYXV0byBpdCA9IG1fbGF5ZXJzQXdhaXRpbmdB
bmltYXRpb25TdGFydC5maW5kKGxheWVySUQpOworICAgIGlmIChpdCAhPSBtX2xheWVyc0F3YWl0
aW5nQW5pbWF0aW9uU3RhcnQuZW5kKCkpCisgICAgICAgIGl0LT52YWx1ZS0+YW5pbWF0aW9uU3Rh
cnRlZChzdGFydFRpbWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAppbmRleCA0ZTcyMmMwZTY3NjYyMmE5M2ZhMzY5NTA1NDM2
NzljYzUwODRjNDc1Li4yMDY2ODNiNTc3ZmMyMjM3YzA1ZDZmYmYyY2JjYTY0YjlkNmUwNzRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCkBAIC03NSw2ICs3NSw4IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldEV4cG9zZWRSZWN0KGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGV4cG9z
ZWRSZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zY3JvbGxlZEV4cG9zZWRSZWN0OyB9
CiAKKyAgICB2aXJ0dWFsIHZvaWQgYWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCh1aW50NjRf
dCBsYXllcklELCBkb3VibGUgc3RhcnRUaW1lKSBvdmVycmlkZTsKKwogI2lmIFBMQVRGT1JNKElP
UykKICAgICB2aXJ0dWFsIHZvaWQgc2V0RXhwb3NlZENvbnRlbnRSZWN0KGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYpIG92ZXJyaWRlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYS5tbQppbmRleCAxMTY4YWVkYzhhYjIxMDA3NzZhOWEyNDllMjdiNTZjY2Q4NzhkYTY0
Li4yNTFiNWY3NjE2YzVkYmY4Njk2MTdmNzI0NDY4ZjM3NDU1MGI2ZDYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KQEAgLTI0MCw2ICsyNDAsMTEgQEAgdm9pZCBSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zm9yY2VSZXBhaW50KCkKICAgICBmbHVzaExheWVycygp
OwogfQogCit2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjphY2NlbGVyYXRlZEFuaW1h
dGlvbkRpZFN0YXJ0KHVpbnQ2NF90IGxheWVySUQsIGRvdWJsZSBzdGFydFRpbWUpCit7CisgICAg
bV9yZW1vdGVMYXllclRyZWVDb250ZXh0LT5hbmltYXRpb25EaWRTdGFydChsYXllcklELCBzdGFy
dFRpbWUpOworfQorCiB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpzZXRFeHBvc2Vk
UmVjdChjb25zdCBGbG9hdFJlY3QmIGV4cG9zZWRSZWN0KQogewogICAgIG1fZXhwb3NlZFJlY3Qg
PSBleHBvc2VkUmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1t
CmluZGV4IDNiYTZjZmRiYjM2YmM0MTE3ZTM2ODNlODk1YmMyMjcwNTRhYjhjZTguLjYwMGVlZTMw
OWQ3NTJhODAwNzU0ZTA1ZjQwZTczYTczODNjYWU3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYS5tbQpAQCAtNDQsNiArNDQsNyBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9HcmFwaGljc0xheWVyQ0EuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1BhZ2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1DQUFuaW1hdGlv
bk1hYy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJMYXllckJhY2tpbmcuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRl
clZpZXcuaD4KQEAgLTc2MCw3ICs3NjEsNyBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhOjpjb21taXRUcmFuc2llbnRab29tKGRvdWJsZSBzY2FsZSwgRmxvYXRQb2ludAogICAg
IHRyYW5zZm9ybS5zY2FsZShzY2FsZSk7CiAKICAgICBSZXRhaW5QdHI8Q0FCYXNpY0FuaW1hdGlv
bj4gcmVuZGVyVmlld0FuaW1hdGlvbkNBID0gdHJhbnNpZW50Wm9vbVNuYXBBbmltYXRpb25Gb3JL
ZXlQYXRoKCJ0cmFuc2Zvcm0iKTsKLSAgICBSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gcmVu
ZGVyVmlld0FuaW1hdGlvbiA9IFBsYXRmb3JtQ0FBbmltYXRpb246OmNyZWF0ZShyZW5kZXJWaWV3
QW5pbWF0aW9uQ0EuZ2V0KCkpOworICAgIFJlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiByZW5k
ZXJWaWV3QW5pbWF0aW9uID0gUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6Y3JlYXRlKHJlbmRlclZp
ZXdBbmltYXRpb25DQS5nZXQoKSk7CiAgICAgcmVuZGVyVmlld0FuaW1hdGlvbi0+c2V0VG9WYWx1
ZSh0cmFuc2Zvcm0pOwogCiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IHNoYWRvd0xheWVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>228200</attachid>
            <date>2014-03-31 13:56:29 -0700</date>
            <delta_ts>2014-03-31 13:56:29 -0700</delta_ts>
            <desc>Archive of layout-test-results from webkit-ews-15 for mac-mountainlion-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>565727</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
KJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsDBAoAAAAAABNof0QAAAAAAAAAAAAAAAAM
ABwAZmFzdC9mcmFtZXMvVVQJAANmyTlTc885U3V4CwABBPUBAAAEFAAAAFBLAwQUAAIACACpan9E
2wjTQjsAAAA/AAAALwAcAGZhc3QvZnJhbWVzL2ZyYW1lLWRpc3BsYXktbm9uZS1mb2N1cy1zdGRl
cnIudHh0VVQJAAM9zjlTZsk5U3V4CwABBPUBAAAEFAAAAHMsKUnNLShRKMlXSM0rLE0tTVVIVCjP
L8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsDBAoAAAAAABxof0QAAAAAAAAA
AAAAAAAMABwAZmFzdC9sb2FkZXIvVVQJAAN3yTlTc885U3V4CwABBPUBAAAEFAAAAFBLAwQUAAIA
CACsan9E2wjTQjsAAAA/AAAAUgAcAGZhc3QvbG9hZGVyL2Rpc3BsYXktaW1hZ2UtdW5zZXQtY2Fu
LWJsb2NrLWltYWdlLWFuZC1jYW4tcmVsb2FkLWluLXBsYWNlLXN0ZGVyci50eHRVVAkAA0TOOVNu
yTlTdXgLAAEE9QEAAAQUAAAAcywpSc0tKFEoyVdIzSssTS1NVUhUKM8vylbIBEoolGdk5qQqQMQz
ixWSUjPz0hUKivKTU4uLU1P0uABQSwMEFAACAAgArWp/RNsI00I7AAAAPwAAAFMAHABmYXN0L2xv
YWRlci9pbWFnZXMtZW5hYmxlZC11bnNldC1jYW4tYmxvY2staW1hZ2UtYW5kLWNhbi1yZWxvYWQt
aW4tcGxhY2Utc3RkZXJyLnR4dFVUCQADRs45U2/JOVN1eAsAAQT1AQAABBQAAABzLClJzS0oUSjJ
V0jNKyxNLU1VSFQozy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQUAAIA
CACxan9E2wjTQjsAAAA/AAAALQAcAGZhc3QvbG9hZGVyL3JlbG9hZC1wb2xpY3ktZGVsZWdhdGUt
c3RkZXJyLnR4dFVUCQADTs45U3fJOVN1eAsAAQT1AQAABBQAAABzLClJzS0oUSjJV0jNKyxNLU1V
SFQozy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQKAAAAAAAkaH9EAAAA
AAAAAAAAAAAADQAcAGZhc3QvcmVwYWludC9VVAkAA4PJOVNzzzlTdXgLAAEE9QEAAAQUAAAAUEsD
BBQAAgAIALdqf0Qe3qVl7gAAAGoBAAA2ABwAZmFzdC9yZXBhaW50L29ic2N1cmVkLWJhY2tncm91
bmQtbm8tcmVwYWludC1hY3R1YWwudHh0VVQJAANZzjlTg8k5U3V4CwABBPUBAAAEFAAAAF2Q3WrD
MAyF7/UUh1ytMEKSrSO3petg0NHQBnbtpkpicOPNsil9+ymwDjqQhDn69OeWJSKOJsIfpUuBTzCT
PZuoj8H2OHkWTF6ZYIeBAwJ/GTtFydGOVhDn+sDfyQYFX/dtTrSbIKnrWOQRV59wsc5BmGE0Bquc
75E1q8Mhw1kpM7CSvXfOX3Ts8Yqs3RxarHcfzXbTbjLtSW+r9+1t+J67KJDRJ6c4I8enETz8ZpXS
NGEWuoga9TPKoph98acuC1TVC8rZ7tTlsv6v1qi0RVWqP1ULWlBO8/K3I/vk3LUxQXT3+UdCYqK7
A4hA9ANQSwMEFAACAAgAt2p/RFQmLasxAQAAQwIAADQAHABmYXN0L3JlcGFpbnQvb2JzY3VyZWQt
YmFja2dyb3VuZC1uby1yZXBhaW50LWRpZmYudHh0VVQJAANZzjlTWc45U3V4CwABBPUBAAAEFAAA
AL1Qy07DMBC85ytWOYFS101CIccUCBKiqFVT0bOTbEqEiSuvrbZ/z6aKhCruyLu2NLOPGQshQH4Y
7b+R5LNySha7Uu6weuvc+Dz6TjdygxoVodTqbLwTDskJi+S1I9kqctLiQXW9k6ai2ltsRKXqr701
vm9Eb8RICzwdsHbYTN3JBVEU/e92VTuv9GV3noNIJw8QpZM4hTwPYNUD+bpGognwGjh2WgMhguLb
dkhgWgjXi7IMgQWT2iNXtkZrc8QGqjOE26LcwtPqfb0stkU4DYCPGDpgVLBh8wQdQRgG0cvidXlN
0KfxmkchTGGnCG5GlquYDiIYkNpBBtkdxLPZkLe/8HwGSXIP8RDX8Hye/YEzSHhKEnOmCeMcrPii
dvyH1mt9XitLbI81O+txsHTlMvgBUEsDBBQAAgAIALdqf0RGk2YrqwAAAPQAAAA4ABwAZmFzdC9y
ZXBhaW50L29ic2N1cmVkLWJhY2tncm91bmQtbm8tcmVwYWludC1leHBlY3RlZC50eHRVVAkAA1nO
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
U3V4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAAzaH9EAAAAAAAAAAAAAAAACwAcAGh0dHAvdGVzdHMv
VVQJAAOiyTlTc885U3V4CwABBPUBAAAEFAAAAFBLAwQKAAAAAABhZ39EAAAAAAAAAAAAAAAAEQAc
AGh0dHAvdGVzdHMvY2FjaGUvVVQJAAMGyTlTc885U3V4CwABBPUBAAAEFAAAAFBLAwQUAAIACABz
an9EQ2NuTz8AAAC9AAAAOwAcAGh0dHAvdGVzdHMvY2FjaGUvc3VicmVzb3VyY2UtZmFpbG92ZXIt
dG8tbmV0d29yay1zdGRlcnIudHh0VVQJAAPazTlTBsk5U3V4CwABBPUBAAAEFAAAAHMsKUnNLShR
KMlXSM0rLE0tTVVIVCjPL8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgcB1Q7AFBL
AwQKAAAAAAAYaH9EAAAAAAAAAAAAAAAAEAAcAGh0dHAvdGVzdHMvbWlzYy9VVAkAA2/JOVNzzzlT
dXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAKtqf0QVNTWSegAAALwAAAAqABwAaHR0cC90ZXN0cy9t
aXNjL3hzbHQtYmFkLWltcG9ydC1zdGRlcnIudHh0VVQJAANCzjlTb8k5U3V4CwABBPUBAAAEFAAA
AI2OQQ7DIAwE73mFP0Ag7aEVvyHEVSwZjIyR+vwS5QPVXlY7h9kspREnI6mAqqIRPsQIp1mL3m+P
1xpmtvgOIfhCPXvFLkMzdv/tbG5Ph6PSRM0NpXVuwFQRnoCMBavBTZdJ4l0hwqhpnxoTYEnHf7oq
feTzupcsMS8/UEsDBAoAAAAAABxof0QAAAAAAAAAAAAAAAAWABwAaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL1VUCQADeMk5U3PPOVN1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAr2p/RNsI00I7AAAAPwAA
ADcAHABodHRwL3Rlc3RzL25hdmlnYXRpb24vZmFsbGJhY2stYW5jaG9yLXJlbG9hZC1zdGRlcnIu
dHh0VVQJAANKzjlTeMk5U3V4CwABBPUBAAAEFAAAAHMsKUnNLShRKMlXSM0rLE0tTVVIVCjPL8pW
yARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsDBAoAAAAAADlof0QAAAAAAAAAAAAA
AAAUABwAaHR0cC90ZXN0cy9zZWN1cml0eS9VVAkAA67JOVNzzzlTdXgLAAEE9QEAAAQUAAAAUEsD
BAoAAAAAADpof0QAAAAAAAAAAAAAAAAqABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvVVQJAAOvyTlTc885U3V4CwABBPUBAAAEFAAAAFBLAwQUAAIACADOan9EY6qs
bIIAAACoAAAAQAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hz
bC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAA4POOVOuyTlTdXgLAAEE9QEAAAQUAAAALY1BCsMwDATv
eYVeEDu9pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1ytsKbF6kEVdFEe2HQ4d5SCMttnePIku4xxmDI
lxbvIUt1VH/++0O45B4UJpdmWDDvjPljTFwqaCUwziHQD9gB+DRoekNtXCeSyp2WOdKOza8xRJuC
7GpN1PGavlBLAwQUAAIACADOan9EY6qsbIIAAACoAAAAUgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L3hzbC11bmFmZmVjdGVkLWJ5LXN0eWxlLXNyYy0yLXN0ZGVy
ci50eHRVVAkAA4POOVOvyTlTdXgLAAEE9QEAAAQUAAAALY1BCsMwDATveYVeEDu9pPgVhb4guBti
UCwjKaX+fU0pe1qG2c1ytsKbF6kEVdFEe2HQ4d5SCMttnePIku4xxmDIlxbvIUt1VH/++0O45B4U
JpdmWDDvjPljTFwqaCUwziHQD9gB+DRoekNtXCeSyp2WOdKOza8xRJuC7GpN1PGavlBLAwQUAAIA
CADHan9EYEtmEJEAAAD7AQAARQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC14c2wt
ZG9jdW1lbnQtc2VjdXJpdHlPcmlnaW4tc3RkZXJyLnR4dFVUCQADds45U6LJOVN1eAsAAQT1AQAA
BBQAAADtjjEOgzAMRXdO4QuEBJZWmWHo0p4BBVMimSSynQpuXzr0Bh2rv76v90LeSqRJY06AzJk9
LJEQVtXire36S+vOdf7qnLOCoXLUw+4iZhjvt3Ewu5CZc6gbJjVf4MHxGVO7bwQUE0IPSPghQPQg
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
tXdfUEsDBAoAAAAAAANrf0QAAAAAAAAAAAAAAAAKABwAbWVkaWEvVzNDL1VUCQAD5c45U3PPOVN1
eAsAAQT1AQAABBQAAABQSwMECgAAAAAAA2t/RAAAAAAAAAAAAAAAABAAHABtZWRpYS9XM0MvYXVk
aW8vVVQJAAPlzjlTc885U3V4CwABBPUBAAAEFAAAAFBLAwQKAAAAAABMa39EAAAAAAAAAAAAAAAA
HAAcAG1lZGlhL1czQy9hdWRpby9jYW5QbGF5VHlwZS9VVAkAA3DPOVNzzzlTdXgLAAEE9QEAAAQU
AAAAUEsDBBQAAgAIAANrf0R36txNpgAAANkAAABcABwAbWVkaWEvVzNDL2F1ZGlvL2NhblBsYXlU
eXBlL2NhblBsYXlUeXBlX2FwcGxpY2F0aW9uX29jdGV0X3N0cmVhbV93aXRoX2NvZGVjc18xLWNy
YXNoLWxvZy50eHRVVAkAA+XOOVPlzjlTdXgLAAEE9QEAAAQUAAAATY7NDoIwEITv+xSbeNGDHNCL
XA0mXoBQf84tXaARuqQtxse3GGO8TGZ28mWnYGyc9D0O3GHLs9VRHd5JVY4b8j5LD+l+l8A3YivN
QBoDo6KGR0JHfmLrzZPiJbKEwYzGdshzSAB80NFkcDFjxKKNn6ReeqmWQg3SPn5kT2jpFTCQDwtK
zmWwqurymAuB16LORVUW4nzLcfs3EteT0fhZuoFVXp4A3lBLAwQUAAIACABMa39EhQiVvHBpAAAN
2gIAWQAcAG1lZGlhL1czQy9hdWRpby9jYW5QbGF5VHlwZS9jYW5QbGF5VHlwZV9hcHBsaWNhdGlv
bl9vY3RldF9zdHJlYW1fd2l0aF9jb2RlY3NfMS1zYW1wbGUudHh0VVQJAANwzzlTcM85U3V4CwAB
BPUBAAAEFAAAAOxdbW/bOLb+3l+hAQaDtKOmfBdlLBZI06Y3mLTp1unMXgwKg5KoRFtZ8vVL2wz2
x19K8gtFSbGcZlo6TT+kli2RfJ5zeHgOeUgdZSK9niUzJ4+dmRhP0iS7dP6QwdtpHsrZzDmYJJGD
fETwY0d+ktNrBwJnnKRpMpNhnkWzR8s7B87qn/b0n+WTHx69FfOrzQ3q37Pf83QxlrNnL8RcPHv5
x/CZeuq3ZL787/kiSaNn72QqxUwuv0OH8VSM5ed8+vHZpopDMZk8O86zuczms2evRXg+1H59dJaL
yDmKoumqheALBJhTAQB4dBqph5I4kdNl28J8XJSXykOtiN/ldJbk2ab5FPNfnQP19xB5vz5+dJxH
0rm4nsjVHf/m7CkjzsEbMU8+yccK/FTV42x4qvBcyNn83SLL5LSiCX549EixIZ9dJON1WQhA8hTg
pxg6EA8QGlB+SBB1ngJPATgfOvXWKfyO+vLfSkiH/JA6BxCdEPr40Ts5yadz7Wbv0aNjkabO5VRM
rgaPimd9VezF1VSKaOQjD0PK1ZcvktlEzMOrfy3kQo7gQKNoLJLs6bx8wHEOZnKaiPRxWdKvZVmz
uVBVOgdJ5qRJEF2n0aH6kwSP1e/Qcf4EX7w4jn3oCeBJBb56smpHUXb16EYQxXOI+eWTlQwjEm8e
qx5MFNEVvYPB8ZVSouXDr1WB/1j9sCnTdbTvllqkPfFCKeClEsk/VUvmrhNeiemTJ4/XDSuUsmgV
9vCqVb4UXLWqlHGzvMPxeAA51tpctfrpn2+GR4rUJFQqk2fOdJF9qGpR36paikoo9NakcUmZhAJ/
qJXUXlYmv8xfflLteF3IUfXu12L2cbBQip8W2jZIstdKgQeR/L9CxINGvRBxvV6PRTEy661qHr14
O3yzqs0shnFaK8ajGDeLqQp6nubhx/dFC9+YjT9LZvPTssVVBf9zepHnaZB/KetAmyq471MhW6uo
KnknQ6m657qG43w8zrOWUjFl9WJDitqLXRa8yI4X06LLl+We5fmks8UI+PWyZUC6ynYcDqlzfKLK
L8pU/w0nMlTmK6wKPs6n8iRfZFEp97LliGxKFzLGENxQ+k9l+aPRuoYX+XmgurUy+rPOGpjWfhEr
3ebwphqcTR3v35ydn78dnQ5Hx0dnZ6dvXo3O31+MLs5HR29G58+HL9/9/vJd+dPzo+PfRifv3xxf
nJ6/GY26moJwvSUEeje3ZMnn0WBwMRXZTIRFSYNBvsQ8CpV9DET48UCjZEXIE9dZZLPkMpORk+bZ
pet8ypNoZRr+tVCW76+iiaVWag3jkkAA8LaGdTRN2d5xMj9oraUmiaIaKL3t1WwqKo3Vl/mqktF8
U/GB0ZB2mIjBegN6CKDehDNxrUbiQSqu88V8JLJoFKnRR12OkniUSRnJqF9TMK21JAhx3K8ljbbc
sgHUr8s8VEN23xZUbXj6pxpAhonyx2TZFGfZkg/rwWdVF1mNPco0c4yCauwpHyqGG0R574o74ber
HISc12EKwT7sUNuqvueqlynbPpyrgt9PVJeWo1axEo/U6ouiGOxWXxe5U/H5NFt1gSbH0EMayQSE
Jsmet2MzqoYsq1AalaSyqH6ap2lBvGJ9HufTsbJ/RR1vle8wXzm5B+un3tbveuJuCnxV+HVJOFti
+kX76STNxVyNfnPly2Wz+S+Pm3A5WMFlkkeQKLj1FpaOjE92Bm3ALngvm77Gdvxq2WIdTAvOi5PB
4HeFIZ/+ownMdegiXd50PBWzq/PsXBntOM0//7MFbuFPr6Xrhb5vSBdi7xZADagrgSx71qSQaO27
pni/ToZru0DCABNe+KS1+g7DyWSAbwnNAPdOZpGclsUu+/ISYTeoquOVrb9Zb9fjbOmC78AA495K
rISBgBUMNBta0oAQorfkoS8Tp9k8L7++LRX6T6owDbrJkX7Vou2Aa7RwyG+gBXrs1rR0E7NkpJ/W
67BrZWwMo2ruaRbnrWw08SOE192dkMjDQZ2AErnyXryvQL4duwpjDlqNmHavgg467VhPTbkTyiDG
G8ZiLGkbY4rWr2Ksn758Oz3xlmFfCTqIy0HQBI05Al8J2tpuAhHQugkLeWs3+Wqh92DgRH1/OS2C
PfXpZCouxxUVbd2nfG51j+vAzv6zpqEPozf8dFZGKzVrHKj4/uvE0Xj6PPiPquHJquzib4tlr3VT
GsE2iREE70Bit5TZH8n86u2VmEnNhy3uLr/r8Or+HoneoVCagsA+XAuCAkm8VkFQ704E0SqKcgZt
KQqD6wLfLw0FfpsXM6ddrhTia83CIYDxZsgsKyoBQeVK3BGgrZAq5u8AGCFsAwwKX7YAQ5CAOwO2
FVpLlHdrqUGigSMBawMH7lBqfeAVc/JTme0MTw8HtSfaLeEmflXAKQStwBG9U+D9oB+YN+RfuqDd
FRmoxgYjvJUNetds3Eu79ENYqB/GVj1YrQf79WDJfjCb9j2sG4e6ccOwVYMB/ZvxtgdtSSZVJy4m
pBravO7ixep1uo5Bd+ej/L85QetvJuJYFPtamLRpVEUO+/u5MdnJcwUtrRpy237e+PF9lsxbv2yb
wF+lulCKBSDlpJveqJVN+AbMGNxUTThRQfd34sanqyGBRGpIoIW3UGtUxQ30yDchp5Wel6ksZiy+
E0NonZJEoiCKCVwztGlXSRLn34iiH2YU/aHH1B80ftiBgJNUfkmCVBtWvlF0sVn2gwHnGy9aa1C1
qEHgN2bpIfR4MKYPZvXBwD6Y2m/I14PRvWPuXov51euz84mcink+vTs77MNNmOzJIMJrPuo1VgaZ
cu+7ElNQg7ZREydpWqwFv/yizFOxI+VVej25+voA6WYiMdaJ9ML4ZiIx/85EDhxCvV5a1oe+8p5i
t1Uf8txt1ZallfVcTJPxOMkuW8ygzzS+KQc38w3Yd+f7vw4kmvKeqOGzSlIt4fbLvqnyiotHN2Q/
MeXwfBHHq5w/RXaZXdCS39hnFg2xtYtCQhz65WRIUf1rERbZq5j4FvBaJJHBDbrZVb7ktDADR9En
kYVS47eBfjvBeubwOm1D1TOda7cMk7/k+rK2g6NlAo4yuiE2AjiqEws9agWxPzlQ+WZr+MNWaje7
ZlaqW3q3fLNpxCcECS+IP1gCauBAAMrM/NFlCacdAvN1CMzjsefbA+G/DkfONJmEoxdrK7LeEvnu
9O3hkbYnUt/dIHjERMRtQvKrQ1mF5ZWcV3a83LQh5rILkgoIdEhhHKPYLkg/ORitQR2nyeRGPND1
MHcPDw9rggLIg652SSkq7rENKNwBKGeY1TAigkLbAA0KSKrhZVLdOzlJRXiD5KCPGpIjCPmufim5
jZLj/QWHUV1uAAfMPrkxE1D4sRzLO0AR4mLWEB6iMXdrl8BG4Q0ctCvaBkz7MDkKlXI5VnjKESGc
tw/Ryjpqe2CVnwFjEK4sZnUZ+NYNCzuMCr7Z5zCxT2IloFQBysdyPr3uNpSoOcJh4lFXv/St7GrQ
efG/Zy+eDi/eP//557p2HueLbN6FGehgYyKhtAsZpDv6XdClDXsZxpJ5rn7pS/uEuKuHyQ0HUwae
bVrJqo73Ts7ydFEeydElNR2KBFJaZkXwrlpIPEM4sYVmvm4nNkcCtY9lkLnAGMoYqg1l3YeDfB+M
aFepYbNLScukVvker0oUulPVLjHg+obAiFcXGLAJHgR95wuIislc0BirPRGErj6LgIRtZp72hagf
6FNiYbbNiGzm3VZnRRVGpNhC1m4+XGSaD0Rq2oitGr9wX0l52JCUh23C4ZSGfm0yLgp5KUzFaVjr
g5mahgPWJ0e5F7v6JbfIcEC4faoUupDBusEoZ0zDYIOLeT4Glk2C4O3QCDMgSYtmq1qU79VUyuKY
heK8vdlVnkad3oapg35dB31rdJDfbgkCa8fLVUsQNkVfBaijOE4yWZ75VBxCc5p9ktOOmQ5IoMvM
HkaQjwPf1S+ZVT3Mu53kGPRcCFgDreC4pqOMWDVZAG+HFmpn6VWwbHL0oW5gijXKDhDUkBQL9l0s
mJliscZ8OE2xlOvP7SOY6WtAO2DgfVu0V9EdpJToK/cocDer+MjOVXy0Xzwz4jKupZ0INextPhOD
4++a5ri3HEOuYkNYpNNtdBmSNc8RxCbPHNiR6rNfPCM9f0pgYZCKvQdSdyd1ncRbkuoBOy1C3e+o
YrO3+SzZTNM3HI76OE24Je7GviXXQajrR3k8ZXXy0+HVV5xK+WNz6lGguz0x00mlvg2ODkRwz/Jr
sa/7OYDLuiVD2A7/EYLq6P8y+JuFUymz4mPjOH+kTalLIn1CrZlSJ8gZjSoE+mpVMUN7kk9PlXCK
TmcC4iYgKeyJy5VrsRbKaJTMhtezuRy3CsbTcVCu/gZWrUsV6rUST/G2k1iEslzoULDOFmESCdVp
lciaGld78YOU0Ke2LeJ0IYvFOEmv34hxExX0XO4bq2+F2BBbreeUlzSM7EuyILcB7AMDqIhsW8wn
zmg2SbJRsU3s59+P3p0evbn4eTxZr1nNyt43CrXMHxdqC1dBELO4DGS1y8g22eXBf8LReHY5VAZy
Da34sr44bC4N+zziiAlXvyQWpnHBW/VGQA3tDEL7stNKyZUvWPosxcdRlmejy7BThLgmu5B54h4I
iptmRBlI27JLoHM+HCo7cla+hagwJjdZEMN8+FZlKHj9rAWkLkEt5oLErmE9LDMX5LZOCXSx6ZZ4
kVvzUmzaCYV7u5EFsKZXEpOaVxIzZtsSfy89xWq8btNTKuvDWmgTOhXx3iKsQbURTcU1lFnkNkM9
rklmp5EU6Ws5n6qQ/TxLrxtaif06GOYRu8xktxnZig2anlYJkGO3dmndljD2NZiRoZzMD2zLer2f
IQ7aOcRpBjjRPRAVR8Bt+pLcc212Le+px/zTffKYf13Fadt8Ed0EVk6Ib1fmbt95AgxuniSgFuXj
0b6ycVGrn+jXkbF74CdSaPiJPrYscGk3eVdidpyn+bRa+tkya+wDDK2yerwT1ySfzWfhNJnM22eq
Gt4iRRzGwNUvZbw/gfYWvNyvQ0WE2zahes88Ktg3lm4E0fag8G5rNqCLuWE4AHX1SyRsStvdd1HB
W63Zwtq77ItBC0Q2nTt0Q2j8Ql0t0vlJ8kVGb5N5eLU9Nkb+fljyLaudnPZY7bTu/BR8LycC8H0b
tPpPAJMeE8C2LVTArzIo0Jw8RXjvhjCLo2V+q7CLqcAZ4ebEL/WlPvFLo8CuzU+3wMqIkWFlz7l0
Ttm1lgsRkyKbr0iYbPYgVHMKUegjS+arYc8ZDeoi2rZAS11jfsMaZYO90hGBoVrEik11KobYryRV
SJF2VmlIYmocAguQHUrBnD9+G8r58auicTUDtMakNANV54C70NsoPQRYxJEXE3f1mXPPHnX3+gMj
QAPEgTU7uMmmx051ADd2WkqpJNakSvR0I1GXG0msdSNpf/3yPF2/kDVpA3S9G1YBGV7lizQ6yuaJ
SBMxK1B1HluBGpvMGQGYufolsWjKFPeXFfd1WWFoT0dab08pjli6eN1xBkDrCQA+FPoJAD6CeC+F
gxjUpRNFH6zctFZ1peEimKgYMl1tX7upR+nSAh6z54Av2DQRO+Ai0LARPrMpUB6L60COwnxyPSok
N5ptjmFrnD1U708WnTXxdRJihoBsOSVqF6PgId0oSG6Tye6QzL8WQg20f8mbJGOumFcCEkFtlA0C
mwLMphHs409Qapo/K5QQefv24hGsbYwMYmlujETcjkMf2vrFOM/nV71HEmWAiTVTrv4u4wghBg7P
qmSesbgUfyWZHIk0zcMOCMBteJggkrF2gLi6DC3LmCDOl9FYjitgo1nnsT/FCW9NdAGK3dqlVfu0
dtJAxgwN9Ildx7tVI/5cJB0HPmgbpgsA3BfQrjTu4xOz+Sf5IotE4YpVU8eQEeOYWBmqkX1zpLu6
DCixbekWOaNt2FDtdRcKRmjX8cvFUcXnw6N5Pk7C43w8EVN5lEXDz2LCyHMxnSZy2m/5ltdXb8OQ
2HX43LZexIxO5Fs007GLNXM5bE53MMr16Q4msFV5pbsARMDwGCw6jrPoTJv2j6YylWLWhaMGA4rI
A7ZEmrt7oxi7yDdUDgc1lbPl2OjWmalt+Axnm0bxQ0B2i4CMQKKfVOObARnhlrwIUu8C3YeVUuNg
YIqtWWaCYN8dR7LdbSSF32j4jJIZPqNNW4j33lvEd+QruqDhLepnmoQ2nY3Rx8mHxaZ2aIiOYF0V
w9Cm7fr6e6i2iLQLtC5CgAUWyKZ55m22TwmseQw693no1gyiRelKrOegBMxBybMnfaPoSIZPXFcq
gpHLvMZcgId9oHUmDyHLApjtwAgxEYU2hS33eg6A1nz+7r4DXOg33xZAwkh/WwCRwKZcgV5GgVC3
5TUIFCMdGAXWrJ0pN2jPIhtfP6IZxMZpwogzW5J51xl0YzGfJl8+NHOpm/s/JYT6wQXqkliU2Mh7
b7mGdPuWa7vStLZJiyBDTra8laEYU3qJBbiNnRcEuDZuxOiZyg/qifxcWJHID/G+JYwzpptUyo3X
YmDoWeKWd7E3GFyWiYkH3TecZmG6iOQL+SkJ5TAUqeyiw9+8Y0FEPAwVGUZpx68Ow8lkADGA1sRh
a+TGK6oGg5lUgixM2kGUL4JUuk6//1sOFV8R43s0EFARY1RW0kKZNelp3aQYXxw0Xu217jMNElZZ
upTFTIZYsbB+qIxBKrKXOkL9PSDj7jSE1zSEd2kI/6FIwVhnJezqNwzb9pKnv9PKMk+3sgHeDyvb
KxFe+VmkLQ++9t4/GEJ7vF/0jWTuAl3oHnM3n0G3AiiybHsFyEPP+A7EEKIT49/gmFEbdjhCsG9x
APL1JF4OjZkV6Nuyu7JO66zMLHg/k1VyQZJdHtzgu4YoDvEK2tJhBbaNvLsAAzVkoo7MBgOxd8ns
vPZCKj8OjHiYIQvn2nvm1wDXWLbyaSRr6UMQ2OKU7J4dxVxk5hgjUE+OsmKhhO5bl4BYHxoiau7v
8GzxY3/TXfQOrdF2cOlbbv1QWrip81Vv5a8nSTEchdLSt1L3zQUkBqBovwUEDTi2vPxq924Da92G
2ZJvqqXa7IZnfQpHABDlVuAhezZEUMBcc21WuJav0+7bUg3FWogWQhiYpPoPpO4e9xKus0oiM/D1
PWsyUOqvJ64mqDsdfd5MRMGhqGXYAGt2eu2d1lCqaw2FnnnMFrMzb2nYuQGVKZ1pyV2KSC13ybfm
LZZoz1TGxy4ESA+kaOSuPzO2VKAXsjpDPcmzw6sBxOiB6p2p5rRGsxGvQs6tX3eZpGJerA0uvzjo
tEP6mgrgwvJZcbR3r/xGtVd+cxtf+b1vpBLsuYTUiC13oK8+C9OtJQ8k3yKtC+h7ACkhZloXsX71
ME7StHzFw3AiQtlpAzcm0I8D0LKUXBpAxOl9AcxrgHknYPbQb27Rb0gtHZJJs9/QfVh1H16JKP98
UMdf+P6Knrj4/ItGTqlyjS9KHezmSdNBn8IuHQT8gS2jx/q0s8cC/6HH7t5jua+feM2YGYojZr27
X/x9oWheHjV4sL3XCfD/7F3rb+O2lv9X8uGiSAttIYovyegOkGaa3ulOJkEy035YXBiUSCW+dSyv
7EybxcX+7UtSlkxSzzwGQ/emHzq2Y4vnd3h4eHh4Hpz1rToKXs3Sp8hRTAOQmEf0jOA82AuW8FGw
nlRnw658qK79vbiMAod2MU6geYoJqY8X4+DgHPKR5ZBPsI8O+YPjKrZqwiDBPO0LMbBLbvpL2fbu
mNQ8K8W0Z8eEIH6VqSes1MS+Okt9lKmD4yoxnLrKc8N89NwcHldjanI1cU8JXsQ3g8OzmUPLXI5d
Exm+cvUJZmVocjWJXK6iVwvoKVy1PHsJJi5XXzXAU7hKzANzQlyuYvDK1adoAGhpAGVZGYN8fztL
vr5mBdAI26l6ZZyz7e35+4u1KNm2KGezNZNgNeF7Pl+qz1TT029cDu6Za/7pPXso7i22BWPD6qfp
cT6Wi7u7xeqmnTpDQG0QYEQFIolkcdfTdtfnftiy0dD5KFsu1o4T+0pk295kdiPwjeUcJr3BAwn0
IwZOdQtvvF2nEu3HQgPs9HFRaPu4UuhN/DhCTVjWGAoYOjAy5lFcv26poSBILNnvJ5z3A4kip7iv
8Kly+b9UusHpz4r8d1K6yo18sSh6axqCsJXjDeI0NHK85Vsa+lZHH0+GiACwwWUM+tX4HB/ld+xP
t0jenVnwyImAxTDN4qwpPKnfcg97HRh5DHuIQ33BEkAYJl4tpumChiJH0LLIL0EDUtDq6qadgmYm
HSqhSsIDnQscOYueA+BXD43RuQid5S48KnAMpm+WcZIEBLajseVCN/NZRdUP1a82OtMQAuCk6gqc
+oPjSCNR1CtjU54jNgOGDU66in5GsVX0E8TYq0q6cLIF6jacSBOf1hStepqcFuuHneD1NjSxEmSB
oAnzrH3TfumclkLiOL/fsnSpsfUcDrADiWPfjLQpjd3kAkJhu/dZHqLAafTmma2mjINp3d1I6PR1
80nbVQeDxwpfFBJb+uI49GtyoJqcAbkLuzrusTwOrLeJf1IXjQCLsCNtftlxVYnXaS0fW80e/QMy
sb+j29gxPHgFQGmQ0JYfRMQZDcy3APq2gsCT0IYuzNC3w1GFarAdh40hEalfXWCnmXI0aLvfBI1x
YL2N/BI7MBkeciSNMuLT0chaPVeDvfeg3Xsv4d64fPVNwkQXvFszK+Pcn/mgKkOhKAd8IjgAkesJ
ZXkIcGC9zfxaLvgoE4vlCCwLkiC5CUm+zbxqs9Z44W5Ktuy7WYhIx0mIAmbapDHgvqm2KeAgcMzS
2KeucUqvjUgciW15o9AfdUYmqzMEHXXGI4/UGXjE1UFEpAqI2xdxWRpZF3Fx7O9yOexrODB6Cde6
fjvIaYgTZxr8OoeOTgNypoGHhzgNvt9Pjd5OAXcecuZpr8rDvHh2IPQdglsQvFFK8fRbmcg9lPjk
Ua5vz07W6+WD21ul2ziMUIABaLcKza17tCSEXtm+0yeMoEDdFLY6Q6RpbuLL/HJbgOlmZezgYrk/
fTc76s+erLYLtlywzbiOQEBg4YmaQ48JgAxASDskDlolv1PiTZwafsHgViNVPs8EGIhtRX7Ve302
ciPNgeU8FN6H9aKjNrrZrNjFX++2kv6aCEZfmYiKBAT717rsbP3IHWoE/CqO8Oz5jpAp6nk8MN/+
167RCQOL1c3bxUbdx/DjKQVoKOwrhYH+UpAjC3PWi5n4lXLz7yXhICQHnBUDQBQZaTGERB1SdjvD
iQ/pMHE8IGSl2EjU4nJXSVNbfx0ddCKrgmaK+itoEj92y5jsTcCrCuPPA5eJ0I6vFkx443Mgyc4s
V9eIGsiU4CkgUpR7lAKzz+UZvAulztV7KryKAAP4SAnUfKOAzMshJMi51eWxZ6kh9Oj0rDUXZ8X9
iusWrVXawd4VFzORUehTVGv1Lz26uD7ZFneL7LS4W7NSnKz49R9sTdCPrCwXovzbrydX704+fPzb
3dp1OmZmHowdSB6naU6ytM6D2b3N/YtymzCNICCJ7VPRkwkECIy3KEl9jBw1fJUjE90H32iBnoaQ
QeZV6gzah/hxMRT+C2mAW7feAISh4RkDoYhi32YRTtaZEQpgO2aJcWr0J1NvmY+hctXu9lHbG0P7
gr3BZTH3C0gVp7kTxYFITWonCoTcp50axNPMDZg45kaWepvtMGw3OdYG8yu7rooyz0vRF/Yb2MYr
wsIMTpBvgW+x5dO0NowDZJu0oQCZpbBB7meyxrgKiJCjAlLs1+qZNkcIBKiVmqYnxt5YkX8b6+QQ
U7mBtvfVhANzX01S7h/CqbKIAgrac8iZiVDuUZ7NIZ22TSHqbFMc+rXQuO5MPs3Es2UwQ4mfhlzV
bH1wWpywM5H5lK1CpolW7HqNcuTX6egv4KRAL+OiiIPQcU9kyHZPZH6V6Bh3TFAcGAlDevaiODe9
ElFE/ApPn7CmCHSdmNCvTXWzLYvfn6Ku0xBEfqrraw1pcFocTZfR+PAkiwRR25CTAkbMpK409cwH
FE1Dh7Fr5qR+KbRSXxguVjfjWEDggMmglXiXwcSn+Zl8msV0+DQb5Z4GunZsRgPRrlniVcDu1FMQ
CN3zD/UmRjKcdo0ZRQElHSouSiwVh726iqHTsLnJ0SlO/In+pFLKlovNVhoEd8VnMb8VjM/79ICj
2zjwB8fRYxw/7TzCtuMHehVrrP6brhBQyx/yD0/aPD0mOsM5ZzM/vPRSo43G1XSE0mArPo2invg0
EPnRaoT2gtQTto9A/c/jwS/2h63BMAD7Os4MIG3N7l6HvDOyCoDYk87hX5g7IDE5A6Auv5xfblVx
axT61ZP+EYsghuYiSOBhT/L/dX183BVzHoD9/baeUwiwCJrXUOitxphjjD2Pw54YQGjGnzMesjr+
XL0OB6IJkedBuv0inoSWiLNePY8PFiKwICJ2sKHW/RBhYkLUXTN/FZkqeH87Ix50w6HgkJsLhNhs
LoC793rsRYtmEhotJNnnx0QTcwI98Zpi3BxUFYaeM0PiUB97c68Akn2mpS5INlR40UGReuTuBcSs
hxcOHOCS2LmzJ9SzgOj0f0VZNDdYm41QtcoH4mwxbQXa4kyExk0W5iDxL8JvPtdIh7DZoIBPVUjg
VIGLnQv6BCc+lR+CkypiOmUkReZNNgfAkzVYTBwN5lUdDB18pHq6DxVSjOyNMMVE+FXPc66uBWz6
7SvqyOhboC6kwwxHvlWP/neMLqgCQ4ZmDgS0nfQQstRMeghZ7l1KBxoXSuKUZNZQUkoC6y3w7xJ4
VGGAAFBHZWDz4kdqEG+2o+maHIS2B5vTMPHJNDCrlwxY1M6phmLocTTsgIxJIXOQJGaCCacx8TF2
Ynh2woBQBxXkNqrwAFeOUxyXU5/C5ZETftSPA4GuwB1OeWpNUUb8q8E4DaBdTF9BSf2qWjo95s1W
DtJC8AYJmr5uIHLmI2I+7jgqXW5o1dggYpD7uDaGQbgrIw5zv1bG1OxMZ11wfxwDj1gXyNVTEPu4
Lqrsg8H9xNntYwLNrSRGwMelMoartVh8sjHVYpme6RI6iS7QmwmBk5eLtItR0jZbSC5MWSPco65t
cMINB3HvZxJvVFlUR+GtS7EWq74IPKdNW4oT5GU48WA/s1YjM3/qeR72JERTbvlQ4PqXY2qtauKF
wqLTr11BR5IrJ8DaFwnwJppzKHJqI6F2BVxAYoYjhLHHcVNgBN5oxJAVMNQVP1MHCeGvH4YRH3AU
RgzMWnY4ynT8WftpO2aHPkRjtPh9vX1Yyje5lIyBGqixEXyHEYvDuIpDq17HTfBd88RdiFby9THT
A5awhEZBEkKL+VLSdJf53euY7pjfRFfh5OsHxh1yjUocG7yOIBtc1YhCv3bEbtypugbbnBWlw3KX
u/2FriUzeBKBQWZEXgScRV+OGZSa3CA67E796FxsS7m9nrO1XH/Us6DNF5eIJrRecyFRoZ3Xi7v1
UpzJTUT9VDIBwq+fhYEPWAnRkATEuIffRXpmUaP5EWtpfuhBxXV0yExPoLnNgmTEoPMtxUBB/PE+
z4XEyzg/vl9tFjcrwY82t0W5NVhkL9eKhd8FqtUjM7+mS2dfq4i36hsdHAMBQPuUFJiAlAbN6zw3
pROEvmnGr8AwYPKKgnoDqYhQTIpeeQQgNrmUU0eKvv6yiw5YyaGIGEoOMmY2sdBOEPrK32fwF6Iw
qHv67niMUbB/rRqmVEN/Wi0Uw6PoVaCflQxjuWEQQSO7dvTK7efYSBSYNlIID8BGGj0MMf6ZrTLx
3PMxwyPn44T81bkBsMmPDHaeDVHyugSf1UQFmls4oeHIGvz67D7kZMu6S/JuA0/SlsGEX/n7HP5C
y1hiwuEvjV/Z+xz2xpb46l6FzRlMJWOTV/Y+5xKw6R6m7SEYu+Y9IK/y+6zzFDVz3SGlLoMp+Nq1
LkaNiXyxXP622N7+9OdWrDaLYjWF1YP8bP+xY+WHYRARk3sxCJuTKI0T/0QV+MlJGJsGVxxGDef0
79Sla78MAlXB7+zqfvW+KNbyn+u1yBb5IuvNnEysyr45DMVA5uSR7gg4n5sj9Gb2hUbzEf3oBJCh
R8/ch1+LUoVxnrPs9rIot70DJdgcR4gIwuFxKhh38rnzu82Nm275uyhXYrnPubRqH0MqMhSNPd4e
YL4t2XpsFGCPkpN4kFlw4izIhWdPAs3xMPWR+eS3xXVxX2ZiE/YKELK4z0OERwb4Vz3Epw/vLy4u
5++u56cn79+/+/Dz/OLTx/nHi/nJ/Pri09XpT+H88qers4ur8/nZpw+nH99dfJjP+6tU22SkQ5G8
FRlKl57fL7cLeWL8U5QVUrk9iVJFPNXBTqdnH8T2j6L8vcqu28fXxzzMaYTS8WHUQJKhS8nQH5dF
9vu+XerAUMCo6qyHghRNGepI1/Q+KUv2oFvWn92vMsWk3jRVa5WKHOCJwxzpeUwVoPnNskjZcg66
WGY8n4OE5ENNG+3nVyPM/5Aq+K1Yihu2FSebh1W2G3Sx+qyShcKOQU2txuVaJOEjBj3SdSTmfDfk
nC/4GVssx0c1yu7KUQlOYvyYUZV/5z/++8P1p6v3UkJWQk/bOykq5YotjzQbfirLojwryv3fZ/+o
CHGVr7EqeYqAyNHjSDkaJ2b/+cmK1xM0K1bLhxP56WfRTVpkdgLgScYyzh9LWk3cyb0qCKXD+y+L
YnnES7kjdzMEm6OyMEaUPX5ULRlycdnDXhbrvsUFkb01cRo9ZVQ17jFbFauHu+J+c7Rid2KzZpn4
djZzaWE3SoUV6+PPxYLX911yjynSf2bfn+z3G0QM0pKYZxEMn0ZaPRk/LrZ3bO1Efx7tqp/uJkVq
pP9abPUK3Uf3xwJnORT5U4evCfhtseLFH1MJMBJxNQEIpk8noCbh9OfrsXFNfajHxeI543aMrFQU
Wy6kFIrW6NgdPX3m6HpJyJWoR3gvFaQ7IrX4TJMIZc8dcbcM3xY//ZmJtVprlc0+sMvB2LSvchRl
5AXIUISohTVnnDe0/J2t+LJudNmx8mhiLTxOWf4SlCha5Aj3qz/kMpjNPul/T+/LTVH+YHwup4gt
TzgvxWZzrXRIYP7qStwspHlabuZ/xmRO0JvZTL5dH+/1SPVNw26NTAMzBhBj/DJwvhggoc9sP0qN
yS9W7y7rrxynUn/2A7WOATGIOGMvhVPLsxyIz3M55Lwaeb6p9tZNQ5H6xp4eMzMH0CTPMXk5ehRF
2XIhVtt+uqodJjjSX3D+Vm886m9VRmdDLIGIYMDzlyRW5/zJodSRfcXP2Xot+BVb3Yh9AMmyaPw9
NVGQmEThlKD0WUbilciENHuUw0qb3+MGIzBqEEqLEcgj8qPMtJ3ytWy0txYh8/didbO93X3Cu0wj
o4KVssc4penjaJhgKlYGYbfB2GmvGd15tJGYZvFjifpyFmxEHQs2yx5PXCVABD+bxE4xcyiObYJ5
HD+F4IqjO1fVldjoA3O13Z1satqUX6s+m9iLYra0ZLFmrpVN1FwfUASgwPIrI8N9f3c3iyL0JDSO
C7Aa4H3BuAo/29NeBaQdt75ZkSI14G8fz5QzcLOpCkL/sI9Su2Wl4NXv3wRHi9W2w6ffBDjjSLVF
09erJin6YnUokmQYogXy+j4tR3FORKM0qv6f4d9U03zJHpby2R8f1qLDTdxcYJCQI53F1KJJA44G
amqPAZ4OWdF7Ue6AZxJfE0ko52r6xD6JFdE+fEHyorpr6OEFRc/ghcWNU5bdqr3xj1rGdJylorVP
yqvPuyInSVN1OeE7D3/r8Zp+kjyL/DEAq2K7yB9OtbmyUVB+Y5taydiT2lgDnSsR7IuBS0BxJnoB
yZ36mYgsTG+L7P5OEt/Ip8TQAHCR7+iQaFx57bhKIE0IcIpIrJWLPZiGE8f42XAGAWXF3d1Cvzse
J9qI8ZZEQx3X3UE0pdELEL0jW55VZzP571nJ7nYrr5Knmvat4Jr8HoiDsyEfHukTRK37IAMQxVG1
ubWGrKYEkxdBN2Fa1IrpWSaG0WzuWHg/PygLcc/8JOCFEHRi+K1cbBWGVJ7eVvtpkZZUc+umznNB
+5cdqgxGe5HDmBBoQKoG2iXgRS8GyQJlyICclaVgZVvQvqsB7f/fsafQfd8aEqdABWsZD6+0cfSS
KOy9NisX663yQ5XFctmAqRxz17diuTRwXZxXn3/XBwbuox0wSjlSsbbuCNX+GMIXRWRh+uW6oVQj
0A6E6n2/qdT85E1HymfYlAfI4zTjKibeHaTSAeSFUfXhktOkS8wc/3J9Opv9ei7Xjn51vS3vs+19
OWjj7qEG/UzrNB/CPRuykIc2G1TnHPDi+Ps4oJxB2nmw2Nzqcjvy9GJw4zG4YLyHRXNKbFhqoEo9
hl8AnIKnqf7l+md9I3eR/lMexQaQ7b5dfa9rllCjUESeIh0vZz9cxdiGyRcB0wtH2shie7z7069s
eV+b17+wz6xWETuNKK3rxgiCgqa5iknT92inap9QEl7lM8ZfCEODwh10bFr09y/LYlts5QHiu16I
IKQNQIhDHTPaAli1ePliEBuQtfeivnYeWlVKpUgds5CHJysYpmMWUXPWgERE+qxRS62KJUI4/ILQ
FDi1RdmrZTZb32/fLkr5sgb9w7Hzjcv77XnBxbfgjTu5cl7Xotw+fJCbc7MMtSjbx5T66/fb+hfX
y2K7X7mnhhbqEA3JsJpxgPMQhy7jwi/LuEYumr1EHzhrLB9LJrF2Cb+593QwrINFO15o4/ubbrbJ
Q1R1R9bLMAobZYER5KlaSw0p1SJC+AtzrItnUtTqUC4tJMPi1M+dAUmJDeB5SlrAExh+ceBd0OWp
V4fMbNQtzSp7OO7HYE4exRy2MMTRsE0FHhf8hNzgJwz4aOiZD8FPO0tIKeAd2CYY6bei/N0KHmjz
GTY6BacpydRBdveU0zPN5pG99Gh0/N6h4ybZUY0NEjV2vttq2FLqM4gnDK0Gf3d5qtVB7aue8cVm
zbbZ7cVKnIvNht2Y9a7qMzxojHeYhAngyoG5f0glYwM5rSYJg0TUFGy2fDabz8Fsdr9a/M+9mK+l
7a1/tfvGW5HJDaYMjvbf5CJn98utvpvaiq5vvzl604aWoD0yCkjcRkZHjNZet4rUTnIZbUzPaw3Q
4YBU3x30ftOmNoobZ0qCUY4qZ8puoMplnqDJ1DZzsRt3R2R5ztbtOXkqySDCDYdxEmFlxLTHq2SI
PoJ0l9k6BGjP6d1Hz2Y4blJnIEMi1rXe7GfXKCodgMGjMCgUSu1U5Nzqu5Xdc39l5YLxRfbD7v3G
wKkcG1dCroxNlfdvciGoHnjcYs5339oXw67vvnay7h5sxnHrB11L6tLizyYufDar7oKaL3ay9M1x
18ctqr/zjOwOQYZRIwk4zIgyKv9uTpi0LEecF6Oe2Arxcj+7XwN6exE0FgZkMIkjvl8DlY2EwKNh
93sCl5bHufmTjbGjkNt+j8wIjxjpcAICiOkTKJ1Kq+Md73BU4n1xEpLiLO2iEYVPo3GYSpXRYdM3
4NVvP0Zd5g24w87qYplvuvopU2NiCMGdoEduyyY6ty6L5SJ7OFW2s/bDqhcf2OfFjTYaq78eT1k+
fYwZZ4Bpk9Q22g+NahsZeMrjtdv4TWdNl6ZKg1yluc6Tsxgy2rx9jNPj90a11SCVyYKLanRJ/H4O
TjRD9qxw/9KV1/YMZo3Pxf+z92zLbePIvucrtFVTU55NKPMGgFBls0VSpOMaO8nEnpmnUyqKhGJW
dFtKSuJ5ON9+GuANJCFKTuRMzpbzEMki0eh7N8hGI8cxn/wXRYJoVh3prMgwWTL7ytz7K7QXVu3p
csfc2ZZl+7W4QUC3dYdDaqWgpj1TKoWp428iQkVGNJ9Po/gj0AHfztQvO4guaSyk3yfmbY5YrQOT
yax6QJd/f/kDeMzR6KeJLauqKKHmm/F+GOxeSdnZyVzYaLQqNh2e/XISwD8Xrz9/Vu0vrLtTE9A1
WxmEHrDS+4o3nIU5878PmPS3M7ebHhlyFE5iVRQ2TUpPwIDet++bbZSJP9Llh+soXZakKrpsm7Ze
v3InCdPVr9whYbJPgnUv3ovofip4FSzW23sFtsTGEraxaPqlwtai5omw7cU3f/+Q128Aq8+S1W46
Z6pD5OW6BjKbqtG2LXwyrH/c6ozBt9Nx2gqN6umUqNBo6FSjQoOelCwlYeLhigdrxAXzd1kGv5RX
LpfCkShson7ZPbV0W48l9HPEqXNqzPfgnjHIQmLRN70WStGY3b/jRfMq/1O5zKnJd6J20D9UjTX4
VgLyHfpX0T1k2KvFerVJxRvU3ToRZ+Pkv4B5izs2UtVcfel3cW8R7xVw/6nqZ1I3acU2mdYNyFqY
5JU1yHkEJhzDBtDF9a7BBx4w04xxCW3OlNSqmfDzi4OTvf3Esnm0vo7WMgxpbhF/ywyk+FDVKpG6
lx5GNrV7mWuYCD8Kd49XMw+SeB5BvpJvEodyQ3vPRCsUhbczZM4wcYLIfs4Qgh6JMftYMxqx5WaX
VQxRGE7dwwKhWJTS3myTq3QafNlm0UY0Zns8rPfhXeCr+k0tVIXW6nVDchSZM6MpmgJakeCYj0jh
QRrzmq53WbqIsvtyV6y45UzV+Eaiypqh/VSdKjP+RrqaBO0tJWlsLqmNCk2phXskR+xHpnGgOnmn
sK2iGE99OYx4Oc+97Hkb1/PHT6onrrQqoYmnGFlT6aiefKSbv7c5UNs+eFTqfXc0gnx9m0bz9C9V
IuXoEhVE1/dRQdB3oKKfjsIAixOUfLdQ1erhUPOCaA7EslZ60rppr3SNhnCJtY8tj+yS1E/BmjRc
R3FXx0/KDLt+0OfEpj4Thj7zV7vlliWi6sn4Tlw4yIfub4/EE6t6+cyZwjdpDwbdycVuOt3+btw5
rCewCOZbItOtalGFZZJm5n6STP07ksSJ8t28xm6yYVtRsBWusl9ZcYDnb7so2/5VV15JG3AdhkE4
R1TvnBphvg01R/nszQ1gKpD2V4lok1cSMZoJKtTbYm1d3mUaGdjA6HvTkVNSCL+B9u8Q6GfpkiUS
/i05ENSUA07Y98c/V57RyN1us6t0sxXbDc6aBX0T3xV05a5API5uHG/QpAs19cuaWTj6O+hqatkg
Y9u6WY+iTYYhd0TjL/Gwzf4etMsuH6PRGJY9DNa9L0XTj1VeNN96IvdisM14EW9zBO840Rj1SnlH
A9KrwavRKEyXibtMqlLuMxlIM9dVMFHuL0DBKJNDLfgG/51cvFqtPu7W3i7+yLbgiVVMlF87wbI8
68Pu1T9/bhxfqOC80+Y87eW8cWxXRWS2GvoB5D7Ag3ZN6226KJvTdMEjuYVZNNOZ1V/QOjiqoPX2
8jp4L372XP/XI+pZTb2JhaPbh7CoKodfs2gtaByNtvxjnCZhmrEziQniclFm1VMRTaqKaMumJOHp
RQU8r/ahB5GS9kXE+dO4aH7zmbG12Oe7El+bbyQUiOB6f4cdWYw/fe2CyxeuveX8HaSuo+wjS0RP
QogzApfu7wK+2MWwv2i+xM8m1LZFXWMNodgxjY5CTI1amDHGg+E+rF+zOXDgpQL5MSt3wIhN+OU+
jAcSaDUodAhSUIitIwlU1bj/b/W9p/SZSgX6uklF6Vn08XKxnsOahuaCp5Dm397B4iqZUJNYBu+j
MhgXpSi/7diOTcwRuK7FMFqv52zI2woVV7VFtIw+CN+wYRkswH8pCOIwJ+Vdk8WHbLIVM9SNiYpr
UnMiW2pORMFFMSl2d+HlvUt64DmO1QSYNLtIcpAf2Sewh4f1WXWMKiK2OGfiBp9aPVryN2kSf3KO
TMQ73TYKsTS71NZmOp0hIzJafFkfCcmSm9BMY90hzdaCAtjkzU1B0mQByVbpcFshxZJ3MSSRbSHc
6lLIgT1v96k5y5nwy2Ait6wQtfzK9QGAlbvQMITsTkjkE52+fXHOi5M2LW6BPHmrYg7/ERoUy2C/
rS1xx1ysUctnjUbCOXLf/aMbinh8/Hk7ywkKltvsXvTaPrAPpmrgYqMY24g/Z8ohwKL5XY5evhWh
3evcgSWZCAGCQ25Z5DQaTUuOAYQcFK8M2R8TylZUfHsfix3x3K8Jsywqbcz/D4FBne9CKpuIXXiT
T7zUfsrfBX+O0m13+wmH/bL+dbHbsi+vpAVI/Pz50JC6jEq8p0ZCSdxKVv9RcKMSJ0dlwufuEamD
aUOk8WyqAFsAnqx5y+C7SfxJBfVQeNBnrbWyodPTiK6u0wDJEdHqSiU5q/2oci8CnDxY24x3eSdM
SXbxXbZariDfLC69lCro67vEtZfG/AVMoevzeo+QKjWW1Y6Ik6ggxHBlmEz5Vnrb6KbGHPF+lZtM
ktWEJ+25BhyrfTIRJakcymTNbfhl92KpURycavBD+JT/49yq+NU1A0OnTTtw1I/4+H0ntoQG6BPZ
Qsf3213fz9NjsIQnz+90MilhvRd+PmA0+hAf5S7qxagV0xmvCChB5GtRR5FKtWYqPMQb9mX77g7M
tGcnLTHk6dC0beCW4nhdPuOPEFOkDO1xbClP/h7JltCTLT3Z0pMtncSW8JMtPdnSky2dxJbIky09
2dKTLZ3ElpwnW3qypSdbOokt0SdberKlJ1s6gS1h2xhxsQ34/pJ0np+nlF9/MqU9pjQOL0Yj3rJs
Lmr1st0yB3BWX81/4Ps49yMitUOxLMMiYu9peFECLk4BQAozewQ1ezwVswlFo8Fvt7xtxmAu+vm9
XZYnefAXpz+6nqlwLmoub4vzzmxdwmhmzCyT4e7b9GNeRtNmLZaRJMbT+/L/jvflYAi4Ywhv+DkW
aVz0Qfj/YwxtvFsGYRGjaRDEMZ4M4skgGgbhWKhRbxWveHljkkbDDT/1ZDdnySyds3T1oxvFLJXe
/tdivOa05O3hpcLgiEyRRWjXGsL0w01Jdwh0X769lUruGgBNuawKAOpxxFRWwUGyRbS+g8F/Qkh/
z3iG94mpQBKrAdJmkbPHKB4jyT1l/mFhWcsorjYC8QtC3pPP/2mVMx6hQlRSIQ6p4sMRwGzDbLAh
ilnDhpvwIAP8zyRj21227IFpoibImdE6kU4ALaBx5qkhHmIrTgrj5ZszKrY6OkVl8Su/cBq2ckin
ZGsT3onYKoCekK2602RruergF07EVoB0UrY24J2KrRzoKdlKmmylFVvJydhKTsxW8hhsJadlK26w
FesVW/HJ2IpPzFb8GGzFJ2VrywV0CvixnChlq9V2WHT81tZZusrSLd9mCgE5zpsT5WX8efu/b5VJ
sd/nIRLR7ZZEkmkNKz/5uNwKwFnIyt0FZs92AGo0dgPEholkmPWx3Lst5DVzFm1gpb6av9tt7vbv
N5SA8h1bUxLP/ufZs9vVNpoPlrvFlGUDGAk8jD8OzjIG3N3w9CnOt5UPFiCAFCTyYvD5ji0Hr/6F
fhnVPLOLLwItyJ1v2DLZi0pj42PimLYucd8svpwga23A+9ZsOreEErmHpW+d7E1XwTxNrikKg4vP
7/XYkP8jxeff+ZSa/8PF52O+CeiZ5xHeA8izvb1xt6tFGvNH2FHG3GVy8zlaY9uLsixl2U9/uO8v
3Te3Py3WPcqjN1Qcx9O4y77T+FJUKmKz4U2xMU10h5L6QfA/+QZXudfUVXS/2m2F1u7tfGPWXcys
WDdEZ0NpolxVHcN5CFpFr4BvR86uW0VZsRFRpkDONGy9g9zDQ2474sZxVxInyw7UQL8lhZEhLqIP
0V/pkk1Eh9x6DV82fWmSS21bT5jsBTpwEnYsJENPZrgL6ctkAYQUYCab9C92HCyaQJS94c+8pveD
7Wo9WM3yIPtisIkWPL7O59F6AxH2rAisAzmyPijSlO7fMlEF4AFPs4p/puMY1fBjdh3WzzUktB+m
vGUQobXLOyKVKEVEqkHgYOPJBdv683Qt2vRVI99fvusMLLoF8X/+xfvyoLNNvv9PJd6SQzWhUmNe
0Tkziz5fzO/Xd5tuf6vibC65tdVNuoCUig/l78+qFqj1UA4qP6G62sYvWmTkx3dXc89XUcsNSbv3
K2fUg33uka6j7d311duiV3PhCQUOBxyhuKcmod9Hvjg0rYAm5rnN0sUi7baB7VJygsBYArUk2zns
PcpRtQP/89cbUMALLtWcPt4AeZWwVsP5Mv/D3ekOTSaN4R1H+EwweJulX4qdqe56Ld5OlPfXfJr+
xbJVxY3NhtnmIYZIo0vzqug6bGPSaD98L5qiqJ/+V0uJLm2TSbq5EcjxP/fQaDXmEYui/omkAReF
v4g/ugk/V2jbx/x63GSzTpcie32AfknjgV+ik897tp5DHOznoynxhe985qzgm/5nMJLb42Ayixbp
XByRt4dFtVvnfmryQTiqPlINiUUXgj/v2YavOfsG6fuc4+ZutZsnv2/YzQJW9Xeqzpo9MFpuVGhe
3Vj+X2e9N+5Jz3qmA2QLT84b8LvJp2gZM8mrd3zuYbcOalaFgKrfCsyTbaVbbnhmcVQv7C7ywjzH
VQjq1yf9oD6tV5vtRqxZ9uuUI2mIO+MdqMSZl7xH2eXyE8v6LMlpadeWcTO8XR0wQKcVtAGj+X1r
7gcM5zIBp7Q5etZW9Cp6S88AzFlv3HWk7Chnt+xJeYSAheMlDOeadoDZ+0QGS05/NV9luQKoRUYO
Qkk3lzziXTMIKfHm7XJ+fwhSpdo30Sd2IUUFJS9V49j2RriH3DdwnDYPhKA02KNgJIy/nObPhrZs
krVjR8/A2Xy1ytoOf9FOauvbF9GX4+8+bsWxnyE8Db697hmDDzpZfsB9um45PWEovf4UH5tgTnlY
3oSFvp7tzScPzjM5Kreo749ZOj8kCbxvVRF/FKj1edfG2PmEn30x39WrioOjOPOP1kfcUpmjFAar
sh9xijW73m350zp/tb7vAYC6GleWjQGrhCN50OAb3rpsuT1yUO5jKq/hLkVL3WhzyHH0wDjO8ygW
T63YI1oaXot0vGh99WJw3OceNZcX8/dTIZfW+nYPps+8dBll94PLhThVsgQjjrhyUKTr+kAbtH6c
zWYD6f1Lfejo4AxZznMYAB9Dkzz/ZfBybBu2Y4RYCwNka9bYNTTqjnXN9QiydcO1Q9d7NTj/A3R/
wTbn3GrOgz9vzvM1UPHh7dJ5cl5k7MVv5nDGD5rgzxDOpWNPAaVzoS0govPrKH57I11tUTdTUQfE
kcFzMLmCxbeQzd7cpYXlD87+/e9/wxj4H4ijjmt7PrI0lyJPswIcaJ7uOJqLvbGPLTNwCH4gcfsm
bqKOsQJ1jLlgntfkymjnEhnyQfykBHB603TO35MZQ32oc0EFNDBNd6z5tu1rluG4mqsjR6MGdgxq
W66Jgu8mqH10zxQKGRsxF1lTIfm8Cm10kUM8pOuajn0ERI6RRsd+oOnEHNuhgcaW4Z6CSP6LjLlt
JE4HcxsT3DKl5isABQEktH0rsDzNdByqWR6iGkUB1qhlmI5HbGL5D5VSc06Jjj9Yxs8J3Zy7rXsa
lPEHq23K0DSZdp3EHpIcPNYpMSxNtxDIhBgEzMn2NGyGYz90QcLhV3iI/bQUF2UiclfQIsLBJha+
IJ+Bm+P73XLJIP/mz/1Z4u3E8akNjwDIhgQbJieGewQKCqZTTwt8Z+xYTqjb469TsH3TD6fiQ2FK
PYMatGOHKmhPEpUf3K3XsBQ92qfYVLdMEiBtrBPM/aOnuXZgaI7uW9SxbMN9sE/pQahBlTNVSDQy
bKWrUHmKADkOor7mWtjULIcSzSG6r9nUhdAVhkGA9K8S5F6lhGsNCmIn7lIQU6NlWNEuSVdDvsBl
r8fua/fq3Xz34XI5ODOH9pDAcPE5i20gKnARNX0aaO7YAFMbQxx2kBdoY5t4nhfotunweJU/Rzu/
SqcZpAbn1YnBgGgxzfAjZGO1zuVT1pcrLPZoZ+c+mXA6c7q+En6kQnTu7c3rS1Usxg7WXY+ONVA4
0DVkgFM0vFDTUWB7NHBcML4ubWEpjBz5ooS7KEXeqGUlj7m9Ud9TnmQnbikRlqmMqGF2qIQfSUu8
l2/dOAYFEquhwRmxhwaCQeKTR23HhyyKUM12TYgH8F2jnoU0HGAjcE3iQP7Vpfpdln6CxFAipDGN
mqTGLQ1SptTokjKl0YyBwPi7+XkSr3ds+QFS4FJ05tAcGniv5/AwBDkDogBQAdlIOB5rjhvAf8SE
EK1blheMe6UJC8ilf6WmJL89BeEokZNoM0xT74Q3+NHQhZjg5ot3vxdO6Jpl8S67V+mmMQ7MMQmp
5uuWAVEb1NIbo1ADX2jqjodDk+JjpFRPdgRhezCTqbPMuEudZbKZoO7iKl+Rs0ys6VuBDiGIaQHR
gLAAoja4Roohexx7QTD2DB1TkxwU0IUsoNpkWhOXTqT1c4MQNLO6hGCDlmJ6Nw6l1fTgDPJnrmkd
/cN2oYAYhcQLaKghB4PI7CDUHMPDmk1817YDk+qBd3J3Iq/RDvmVDlEyP+yZ2fEuBtKZXgg2EOre
UlJvbI8p5GF+gMHkIORpHg/WoU8sZAa2b1rh10s0n7EWZf63jDMyDNLF2XRIZWpXsDr4ANAXUS4t
lalZge04PkgLEQRy04mleU4AGb5n+65FfQ+73sOo2GtfanQaJJnTWZckyNJbWUgCls6yPIjz98vz
12Nul6UqXFyNxQ2DMwd85pDYABC+DTHPU4hLA0JszfQ9olkuEE19jDQ9tGioh3hshNbhkN4zaV8I
7xkms8GZoU6KafB1ZYsNeSoTrxIG6i9OeFvyGQdn1tCAwfA/FzAyQ5tysY5d/kABsjPXdrGmO7pH
3dAzqaFQ0xrauctn8fNJ4vLnDnn1TTIl4NRwlxIrniop2S3TbZMQY0gFKeITiEGOR0NfJ5ClWHzR
bVoakOBryIUFODJ8i9B+YrjHcAu27SGluqVBCEqSLiGkIxIh5os/3MpAIFXmkZuPzL/wJMS1QtPh
VLg+UOHCgppSW+cRO9SRgSxvbB4T3srJJOMrf3qW48h9AbZs+blU9aPDqAWOAowwgfTC0Idm7RSw
70IeH2jEBOZyFwHBagz+DUKWOQ4JIRbPDXebjBv2OQchTQgrbQu3J3ScGLdX768vb1er+XT1hac3
ep2ZIljhOr4JK0HsQGZqgcZ6kNBYZuAjHRHf98xel+RH2XS1PBg9qunVd1aXG6Qxg3ZJm8XtNLQ+
T4UrscOtUbeHFlAX2kgPzXGgmaEJ9ogQ0SikNKDMeqCjsesbpD9s1KDVeNfXnzVxdBSIJ1ViNo92
y7JgenBm25BwYqES6oTTDInhu6GjYcTJMPkiyUdYAwlhDGZq+7ovqUj+PuC8NU8TQWZ2EIT8Ppmx
Bmc/iSevkJEIjcECmdANDMvAVDMpciEUu0hz+OKZ+KbvG7ZOQrc/uaoydXZQa/L51bfl1541CHCQ
gqqkvSqtwA254P68ct9wL/5/xF3JdhzHsd33V2ipTcI5D8sc/fQeZdOC6ONtD9UkjkBARgOU+PeO
yB6zKrvR0oOl4wVgVikzIoeIe2MooOMCjnLDLEJ8DO5I7+BS2ohxH08c3lGeU4GbAVaeXj44+5H7
su+fttKvOnvCxbxavbaKGHZEwe/ngxtZeRqtBWhhBXheCozaO2tIsRGeJKFS0icnph191gqw6Em1
3Eu1Alf9sH48nGUFntBdkIxJTnkpgUQR4fgUMMpOBkqY1AwosQVsnrpnuZloJOJqKqLQYzMx/7I+
pNT2RhBg+A3uOYb6eKY5w25ryjWeayB0ThoSOE2w7SbwzC6f638eU3b9bT99Y9YKa3sa2L29+Gn4
+vnj04Geqi492K9wjC4L4SQJmYEizhTiOFzQrIwLGnSU3HVX+HSWRjxt2VQ87cYL/D22WDw/viw/
TYggCC1MvWL1J3K0YkoGqkKYZgGgEpxVoDSIim0McEAlnIdr/PKFSU+XfvJaq6DrrL8ehokP3bMl
dDT86EVDTEI7RQllooCfQX/K8PYp74SXQNZsfHNCdpTmnE/dP290NbKjq5Fuf6Gfhs+PXwbs5j6c
N3HDL5w3bbQIQLcJswEghAfsYkvxQNDAbgpvuJale97GM7ViquVUTMvXIwyY7jbLH4bl4xM2d3zz
7Tbgi1QNRMZjBhA8eQonTMHRx5i3A0PuFImMlSBNxlt/cWeaCfoL3bzSKGEF7Sgh2H6td5n7zfxh
hdCoQxmDES55DYxCG0WENZ74ZCWRjHsNrFSKSLuL2xu6la3nbtwwd3xrc05LleEMcHvR6DhwKsBA
LCnSAnrMAkPSshCg+kD7SgKTZFqHczr+rJVh0RNsPQk+3r48Yc0PME9AJtW4bH9BxKQLZTGBDTRg
+YTxAoCfS0TrbAGjKMmDuLjth9HPxRt3j1vJ153txjBPK/kjsPiP9xWrbsnK9hckzEm6WADZBRPB
FCpnidWMEmUBmJco8W/B/O4AwfZZI/Ccds4A/ONI4C3GB4EVLjJTqkZkuJU6gJRWZrDfLIK7hNvF
KeNMGS6EdL+bOGyfjUTtYLuFFiPEWj+SgCTz6fH+tkbkcJ0x1cAM2ARcZFhLsMdwGKQD3CEcB2Od
kyIphZSdB/qurgp4Tqc643om781aHeRUsSUbh2Hep1KTQRzOiqqZE/hZ0yY+J0mBPgaOkTHGieWI
VLV3KadQaIlXUJxXvc12/v5r22ezVgHb0+oQ80x3848Pj5vnu+X3w2aD5R3bP43bs4FWSZtpigSA
GHhXCgQuUKlIydZTYbPRyba25fLoI0HnHUGHcdp+m9T7FTdA0xP+7IN0gltHMrPg/CJgWguUjLCs
KEAvporlrxIFHPg8UcCnrcjDFO/OuVp1RPYfIrI3Dv5bVAZXf6uhOROiA28SALcADDcZ5HYa3CQX
wPo5eO1wzSXYTXJeeng4a+TUPeGNPARSy79uP82fhlXXG0ofHOAXwmMCsy6BEtukCynK81gi5yzQ
NwqgtmK0KpipKZoLJkbrf/fw0ykAZhRuLK/2E60QIN7EtOfEZApGNHsGW4FeU3ihAf8KAMJvEXj5
7lSKxoU9/NRoJfS6o5Wdj7DKad8TXAawyjcSvNf54IUMxjkRBSkAxTAAx4gvjgOCkcBEdQbTmy8h
mNMJW4EXw1RguRD7k3S3fHz4AjBwJ6rp4hezkxK4iA0OLkAOUgJgQPzqwIwmYZzWMuVS2d+JjWmG
bwQzrnM+zC6/0d7P6hvQQ+HrwNIABmDgXAP7MY4qAmAKww8FUGsRHBA2gG0bC0Bq+qpVqWOfv5j1
cSv3wHpyq/2C/jz/fFxO0V1OseegtkhltQR7AsZQ8AoHM4N7y5X1LBkRRib7ZPBGKMumEAX+0e6P
5cvDL3cPB2MhLodFOIAAAVSNACmopDMQKyUn4ETB7kWqAcV2z+LpLK14XHfEW/bcx4Gt/f32SCOV
MjeYaa4/0Z07hlV6IJJRsPM0A5lKMRHjgbhnCdA1xld3/moKeZTkDGS87VFI0K9jw+36QCF/WzYz
Ru6FyIFI6kDlKBNxJiHFKWAhLC1AJP7sbOY4lblX2qnOVXeaj7b/b8Ozf3n+9M23si6ErHp76Tnz
gGgCYDU4jLGWy0mSfPFS4NMornHBu8H7WuwetkJr0RHajEtnY0Fvme6eBvz7rF+3Hqz6L7ZlK4wW
yTDR5ROWzxbFSQBeCWzFJucZM/C/V73xYfzXt6xc8f7opVZvs+jovZiPNusfqYaDeU2GbXGHMZ5T
MF3gHQKgJQlkx8NNJCpJzJIZWIC3j+/8I53JOaRGq/mqY4HmKzvazR+fXjbP+cv8/qVK4T9iW/Qu
CsorIoRLJyRYRMEDoOwMu2lT4US5UHziLDN/1XHsTdRXpPfmSLVp/me+UuM6uR/mv0QY/mm+SwfX
a+YwDsQwsEuppFoA9qBA7kC7lImz2RJQy7niilZc9/KYRzv6l/EM4zTm4Xkj/tChFvNBjKtPPyzu
/v2CFhFjirgbUmzrp6LzJmdjtsBQgOuH37QhkVopQgAORN01O7KfoL8L+6et6GLZEX2xGkd8h+f5
CntJ0DbsY28G0CBiGJdFzgUcfzBwqDSeJ8EpVjxYoOCG5h7N/r2ebC/JOQq+fdrq2MGPCzq3Hddd
ThIHuhpBI+UNc9s4tqSYyuARo5+JeuIcDwTwm6EMLpCJ/lU1X0sctO+carFgdBo+WDC93IO2L+n2
/QEdWQqW+wI+Aj2Ykl4QFjLYuVgwiSAtKdQbBrdHw7F7s9zesIQB+q81crfq6s6mcXrIlHz5/m6z
vFpfbwrjBmCqd9hXoAGEWJspAdKugVMWpYL8o/Q9Ct4ozGVPYb06hus3j/dfblyPLiOQTBEsn7dA
uAQrBYPHkVDwYsxGMPZctCi8Ha0RRLipn1lIa6YB+Z+2/TplxH1FTbCiYVNRaWZZIQyL2IQA+AM2
AqvqqdLK2wC08BrDdpzrbGB+93zWCm17mhxiUzviWf9i7OZQT+4uxr+Tg5UOwHIVggNhAiy6T5in
jwZzscpFe4nlnk7WCKvk1Iks1HzVrbQ+lNOgC9x6k/qzElwfrADWwxJebcsECR6utoE7APRMxlhe
p5Tbap7zsZ5DJc9eUMOmTGFh+GGp4+3Xh+Vv4AqCuSSyFcRSi7lNR4FXGoGlt4VnE+EGiz+bKzQ6
Navh5lOvunBrvb/Lf333oVs9rp1L2WviMhgoYM5gr5RB3qA8UMIclZVvVTb4oSP2Qk3jAvCP4+xo
LYcqt1gABmZkU52ldDW9UUsSNNNUiUSSiGCMYKsBCiSwSCrT5LRWWsirC7Gaac4k2yfvjZRad5Ra
i473f59KrQmvUfd6l5hJAJYNUFQ4gMJmTlyRgqQkgawax4Wj1wZPYfDzFwoetkKvO85+uaSjGN3B
AVquannDWbOlAEhSOEUkFg9WIZdMbFZgFQznYMlY8DUMfNZs9TzWskNIFisx5sS3Xz8vHvd3EbEv
+geHTCQJ7wM6haTwvFOJKMQBfg/GZC0j7aY0psvbzNBf5OaVRouVpB0t5CFOHf/6L/zowG+wXUxr
rqiTBGxvBttVLHEeFjwyz2VOwJdfyZj9Ebar1Wq0IqqzImY4HL7NPWjqwNPva4FMt26gvoOBYZ2K
VSkSZkvAkjzs5yyaKO6BOQTwSnKUMh7N0EpnOvd5WPU7kp53tYjVYR3qIrHwle8KYPGap6iKSCwQ
iodRGHDnIXJJjBY6RaeyZ6+w/pPhzxipkzdmreTTsOdizQ+VA9uvM3282zz3uzqKyZFya4iyWRLw
+wBFpAIFGFx3bbM3PYj13+846oreaL4WHcC71odK+31FA+upHYNWmWPPKdfYaIXI0jsDANiLZLwL
hrrRmWqHa0XplGUt0F3vRFk+/vz1tFDGXsaI1mhlgCGS7KhB4TTxeOoVmDUP5wwwMe8a23aeVkTT
MVPr1RHLPq+wsk8fYKy+mAbJ3vOgwDxlBK/CRfDPNBdSgkvSSaoN96P1ayZoZVtNoeuSz8f16Bv8
Vm+Nf2wjCEox427Ytn6X2yyoJlHiigWlYDsxOK6sUSpbOMWXyzBvd2Ofsf67p7NWwGVH6hU7KcOc
L+4OCTB9mRZYQD2uCEzfMDAhxqPNB6QQmMFKSOxdmdRhHoZv5epYhKVeHnb6nX/v4//1LkXCbv9o
A+HBI1xRCJ+pJ5wmDz8Zda/ZsTdjuadCzlpFho52q0MybzlffjrcM2UuLroGcotUgIhSI5nBwj3z
HhtlJdhA7qzsl5ieTNIKt5I94dT+SGxX7ibs5YMtvxGXiqW4BFJosXYGkzw8OOKSTogkZfDRUedG
1bntDI1ww6JzXtdi2WmWGNtzsNfffCvESS+Cg8sPFJwUj8e1aEYCBYgbDSwoFq5J/gd6DXjQaLp2
i46m83F51ebnYVh+utl8fXj+NGzuNqdJeGTDbE+La5jSSSzpBl5sa/YJe48DVgMZn6QK3JvI9Jur
fFtFvJ1K2Fin9qV2KTqbvqLGTdjL/eMT0lHU3O5yT7aeQSNClk5hkbNVSCrhkhjwTVykQmNQFHD3
fwGN7uQ5R3l2j2etWlM3smLDuBI0lr8Nz7suIKdrjVT9iWlfLgxeOaJzQTBEAYOLEkmkmpUsDTOv
RA0OY59LOu0eN3KzTjUg/CPfm7R/v8yf5g/PJ33Hil/MXjMgawZru1KRBosaATBTsGuFKnDUCWhE
40yOdm08UyMm79QDr7jhHSL8z7vV8LjvsXGuVlpmRS0H+k50QoOGzW+eYmOI9V4Fq4q1r4f568Dn
aXB93AptREfo5TiVd7uc3+OnoD5s8CsTz8OuXnS7yJgbciIyqRycDGY4LCmm223hJIZowTNGJRP9
fzUInV76njBnrn7v1XYBloveAqyOZRHLK9sF8EsmTnrsEhGOYCcCgV0ThDMtsxZB6jPe8jBFI5hY
mqlgYj2OV6Zh8fJxy74333zr6oFCUmjgLBfDEsAkwHkiCU6cC4FkKkXKycM+XRUlOh3/THD45I1W
g/UUiqykWZ2BresmN7QDsEzVy4HlOpmmgr1SgEQ0uNKQ4Mbq6CJLnFEwu1fh19cSRNP3Zq30PZXs
oYnnp1/v+/V2FnhkYoXEYrEqyhjsaxCkXg0GnsKyfmn/ccBWDrvqyLEj6QjAXn7eHEuMeD95w/co
qgisLgL7J7HLX8JvNlNHMheqeBkcN3SErU+Gb+XqYOuVHA6Y/9f5U59vBg0AwSK2zBygtYeD603w
RJZEAdwXr+iozulkqFaETkfeSgmzF+HH70rpSWAM1SEAO8omW7C6SPRVoSTZoPFjTI7bVyrdMUHy
3d+vIO5HEWatkB0HonaRshMH8jTffPphwN6b4WnXhHOSGZK17y5l7Qu2LSWHe+oc4BOeARkrzqMx
IorrMkO9yc74l86brXqdsNdK2XGa+Ifh8+MzeKrhl2Nx1zb6ZWmt7FIRQLWGAyKRgAnsRnYZQIjn
PrICrh2O7DWqTSc6t3Xj91q17LS2YmXn9FLh2rbkdNdoS8W2cm37C8KTrLTxihNtDBg7pgGeGPxI
RYHzaZlNioe3S/gfZbnUQjDuzAUNp7mMlZsf0uUYnHo/fwK/2/2mno7AgKQjxnkNJgcgZcCSLbAC
lisH/5j8nxhVOxV81irYsbsruhxd0WmZg5Nq2xDLksnKZo3MEKxdBFvjIxCH4BLYHxsBh14GSpc9
WPzLGc+1Uh04MdBxddO72uh8UlYp3I2r38yCn5gJNyWCL9bEGIu+wmCPGrck8egcM5mlxN7ubLbS
nMm7Ne/MWvU6V3MwevxhjvnzfDU810K3zbJeSllTPRzDD2hxjAFPkIDamlR73sGYBirAQfpkOBif
wO1VWAomSvuJzt+4yWuNUms6zQoNgm8DPAXgLf4X7+4+fnrefh3sfM4qJV9KMp4kbHYRGBn0FJuk
fC4iM2MFu8qQNpOe2dPTV2at5NOQ0CCP8flfP9/zI5KpXq4DwelOJQNwwRWMy4mEWCLCTiXsozQ0
Y4kolXyUCjkdf9bKMMURayrX02RtbSfaXnPGrLmRtQ6e8VikFkQX7GdB3+syABpawE8lEYsyr4ZD
zvQJxd2zWSOZmpLkNVMHkvy/73nPEHNdSkihEBcj3GeRDKY3AgBTwaKzyQOVeyPUc5Bg1oooOnKb
YS/3r5v75yNkFPh9h/PV8lIyY8CKArgWGKB1gjilC8bfgYoVr2XTQTsavpVrNU2DrYUau/X6178x
4G62FkMhm0dCDHMpMI/YwpkjXC7ghZYqhgUHPmrKFMuvfDHjx7NtYvVRI63odBzAPx46Dr6vf1ew
i7wzo1lR5KmqwEENLhDvGSOOiyxpgWVLqV2zZrCRGFPbtJZ8bHBrx0RdN4Z9kNoapHjeextjRXQJ
F0zBhcHvjAQufbK+JJmu7iY8u3T7p7NWQtMR+yQ99fJ0D5b0qv6XjLdJ8kQyfq9IJKqAyGj8lCvW
OrikXOZjMnUcvRWrE5pYy2EMmLELdvvXGWrnNrsRFU7u8niU2oLZO1a7o5IEnOw8XHdjgBOAMcra
vUV3FFbG3O6FON82e3ilVXSY+uk12LPjN8G6mVkbfPAiEmMZUkattsFIzQBseSCM2b1VD9u7zu6o
juNaKzX2D++Sf39SwIcemVdP4WQNqZosC4/UEoquF4495salJky6YDI2ZpbLnco4wRkd4Ekr8mKK
Xtd68jXKn5/uTivNb97j/9+SlV3xITg5DPmr4GkM4Nlksmhu4Zg5DbIXKxQ4D6rCK30LvwfFH6Q5
00K7fzxrlbQdzd04zPk/w93n1fy+NmXVIqVa2xoLjVguruqHryz3cIWchXOWgYBaHS27KpK2G/zM
Nya2D1uhl/OO0Mthwiw/f358eD9/GO63n9OoIXuHYTOw6AwsjiAyWIOdMRF4hgCaxVWSQgcZA3uL
238qwrno8/GNkZIdP6tX8lga8Pk/xV1Zcxy3EX7nf4EK9/GI01bFTlxm7NfUXpRYlkiFFFORf326
MbuzgxnMch2zkhcdMyigexboC91ff7n/dHj6xxmRWNCLcVgQeNYIlohyCOroCijdRCmRCoGKWQJ1
4layA2ZLtYTul+GLO6u2J0LDD/62m0nBKJzvoomNCJgVwOnFZDDCc9Cs0MCN/V+lRp9JvGmZ2PU4
G9XfzxvQmQ+7Q5c7wbBe3pBY3VnuCgk6gUwGTS5KphZOxxvZjy0ZEw4cZUu3vD68u9uvAfbVhKFf
HqoRMktX0uAPSQzfG0kRfj1i2gumTWghmWTMF+dfT1fCuS/kKuHrGQ+HDg87NRPO3x0ecC/AVJtP
t+AgVlgxNuANCj6AtSXprQyCMOGxlF5TsDpdBgMP42ZSGs/MVUC0y6X6DHUGtqwt81fw4faM4vbw
4b4bN7daRvgREkkK4UesyGAPSgk+ilBeYsK1nF3wT+eaEbFbEsHpPE/1p8MT9u7AjeaBnW/P91Wo
VhRjpgcEVfiMGmuIEYuzCPA2ZAZjFcxWaQwYe/YqHMTOQisabTnwpuVB9hjbnL4uNv58PCeyXk6t
CkUIjshD2WJFgTXwwbkHjQHuczCyosd2hedklRl12x5189qts5A7XYtOnrCa5miN9ToDQTGAChOW
FmI54wS2QUBv20Sn/5QgPb+fcdDbOEzMOPjr4Wu5ReDMc2EqcyrZHBH8LmCfAAobV0twDZi3sI2t
ovGycKxzrtajltuWTu46dPJ5lljXukPLrlo8qn7pwqXA6CywiZvAcRIUtm0AE9UbxIL0b4Jl+VNL
ysKMa9lb3o6APlfzvNSFPqlBgyrfrWI1qUnxqA1mkiGYehBgHjAOu0oKx7xT1Gn132us48ublkje
oVyr2Q/zA0iuqcgZkvjq32jVcJFczazxBRStBLFjbQ6EqkRBIilfyttnFE1JWou+nkc0TKsDXTKt
FtgNkzM5GC/4c+HxP/5P1KMPHqwK2mrCZeZo0nGsBxIkqiypBY2mQ/5f2FDDuxmfbMmnlvOkmvN5
e/+3I/wQndRFezi6wqInhUkTIoLM8FRyogSm2zqrgMlXYLZWQx71VUOz3nRksj7M0dSmcJSNzeeC
B6NWEioRzzhgfx0wuokvhjqEg80r6TOLeVuqDp1jYuhhFXS0FqZYkFEMxZeqJ5y+44rXrCxFdfSM
xIJNSbzDfk34aROC1YLXqo2/ukimrnGhOKa+v2nJvuvwIsw5Gpu/61YoSS8yXi0Iian8YD4TCwY2
+JoUQb7Rzy5vFo49kdBS3hOzRo6RxO3vNbdqDMjDP9U6gmZ2xiosEVcC1IcCBRiEQ2CtQuGQJOfL
LBjWTN8SJnWHsAWW9V8OT9vD0+N4aYwiXzKtpCiKZONBn3HtiIX/k2hj8jYlWsplg/40af+znt62
5JqOVWbc6Nf+9PChi2wvtS5CRZIjQywL+MMiYhczyipTPHNJvdEGGClo6V5i7sDDRW7oCHyDoBiP
TzXyOAA9OFZxA0XheKVJTABVKyLIMhBvsJt9CsVFE2zk11Z2teu8AsQzjmu42siODbc5AiCcJdP+
4fm5n7+TYrBYZ0AZduSSkRKn0QpVPiSs9uLqYnnXZOKWLtX52hu96Rk1cfPl68sQhKvZEMOFFwsc
DoYjIHQdYvAZ4qLlRPNsODeUOxffBP1qQsEFy+c4ouVRd7TNxs5jb/Hjy8Nv8LsdaRzPrxDVqbUB
DGkPQjFFzBLCHB0wegJYBJLzAH5gjuWqDdUus7Kb2kENO/tlxiQ83PHL2Nj35f5UmscEHYoyYiwI
1wtmDII+Ch0T+FrOk+ic4cUKOELydWxsmPkCNja8banfLaln9Xwvb2gm9VwtqpYyoPnBJEH4D8yf
VSCknM+kSC0t9V4ldxm5fDr9hXuaZT0X0rrtMODGfM1/fxnzNZmk7+Sl8gFDQ9R426md4qgXgCNB
I+gFUFVgJMRc+s7uuEhLmltGcJiQvQTgIxy8fSePRv4AnR2jTgm2Mykl1kSDgNjTgnDhjKfg4rpc
3iqLdiRjfffMgeGRm872EWosvN4+fz7bBs1ljURUnJiJpMlhAwEGKjhgaw+VKyCCmcPaTqZqSVjC
J9SHCwW1e9zgtXyFLHUVk6NERxMnPKCozKBkQ0mBqMw08zyCFHnlKgynXPta8GpGpumQeTj0Wm/M
Om/AXqgpN/UftbaYeZMCnK9agkixf4gADWST8tyDBoklXG3LNo035oZs04IDFPkS3wEebt0CqWJX
Y39P3xpUb/zuVtb03RKokmBlEUWr0nTgc3ObiLbWlBA5p8W8XdbQkp41VIv5uJb77abH/dwSeg3b
C5Nqo9MYTBZD5rJNwHoULImgS/LU/1lsrzWkLseMXPpU8HC/OCx4OzMgq02vvlj0DoQ9JylF7DuE
KVCOZWIKFQbbm/jrrr7O81+6HZrhqwGhPYFqNqOfii1cxhxn7AVT9Wtf1heFnQzAr44M71ktCFmv
a+NOsOFA6mKos98u4VsnA9uxTv6jY25zrrN7+vbl6+MfquMGcyD4YEBGOlOjHGkA+OTWR18KtUbk
WerAYpGblhzZo3HE+PnufTcT2icQ0tRi0LcGWtEu0SYRQ1VxMjBrX0nOvN4HGSmY0e06dG/HAvn9
/fOXmoMywVTnlxR9ApfP6VBIiQr2savwRNyRosGMUUqzTPuKvl2pJfKuswE2u3lge7vZ/fbypcGv
BaVf7cB3Q28dHbSq7ZgNlgUIgQHJhKjawiYG1lSEx9ccsjBbafrRh3c3Lam7Dv37eYLT32Oc1vkU
DpvUKFEbxoEkl4LYAKrJKtiuIcik/VWY3zDtCpZdjC2Z+85n3opFHDGDrpeqZr7Uv2s2WEFEMUa0
pn6g1QeMoDrKM+UFBEJ5O63j84pizQ0/W93RqVs93zYfD5++DLk8tciS1yiG9c5LRkJEw4l7TpzB
lH4vrC3agaxOb9JhCpZeS1L41O6hDoyKYzs6moO/n1POTnkJK7VTnoFJiD4dR9GHyEpBg+hzSjkj
S2aSze75fu8koOHaHatrt0CRxSTfl/vRxbRsaFwjMIuZo1kiMQjr0B9Dd98lFaRSMgp/bczil/fr
ZvUv71ualyCw2GtpsxZxef83TIEYWgPBZxka5tkCPiTzjnCFPc8DdrYyOoH7YJngSgQQdNcBHa/J
7cmAm5bSbY/8uYlxqvL6eH8Cb8XQB68pqFnjzSnJWCYtFCuITRCJNpZL77lgUb/Fvj6Vdn3//nLp
1/fvZ/zd9fjr5AHPr1ewiRP+RhWpDcz2iHn+SaFOLblmN2oSPdNGc2ZMeaPq6M7Alh9OO/yoeQTg
u9vb1haUXIRUu0wxW++9YYeFQEniKNBEDkxdvoOBGVfSB25vWwpVb0cdG/GdY2oPj1/v70bMFmff
qUu9nKTjRgH14NpjngrmupfgiY2UCYMvg74UwJsu1hJrOu7o3szd0QuXWzoG8EMj4jQjiIED8xTE
nsVGNcxoCSfDXvZL/9iNFdtvOjJyv6WdtLLD05C2f7IAsLkeGogFpImRnuiC5a68tpwStFoChQYD
/qq91i3AJVavrjpjLxQqTUa0DG9Zj+F52iOCHPqn7f3Xp7GzmTpilanKdsQuTHX7aJoxXoeohAj/
oaLVXhRwxP1rLZCmK6xjLU4GtZzsOobxQc3zq28Pm6fdxyHBeowwySNOmbcUbAWSwckAPQHnIGT4
EcEXBX0XVNCvdZv5IzbRSMiaxD2+njLJ2WEZY+LcHDr6cAZ9NogrxjCd3CQpcnLYQRbL6QXepFGj
ifYOTCeWmMv2WmV+Bf7ZYljDEremw9IZKDP++uPtT59ePtw/nEoseyE0yoXD27NMI7ZiSvDTlQy+
uS4qSTBn2Sv5L1fnO6+Q07K01R2WdvMblYcj3EOv9MR7r41nRHEFx8kWECCUW8ISh11omNaMXRTJ
06lb2naqR9sKvsnTYff44eG+/W0HhBN1BDipGtzLoATHojcgUhSKN3OCk0DBNy+GRy/exPwe0Ep+
7hG1BDWZDJt+AVFTgWZfQOjdvE6x4kGshvkDY1ahJ0q5R0QXbhCWXhLO4I1xhftXotHT6ftcTEc0
DOiO2yfMbiwLev4nqPeDGLX/u15ZkDuhE6fsYnCWJIMFOZRG4kEIEPD8QVlJEAtuVhbUTH/T0nDX
IWw/N5+2z/t3RzH54+Zh8+HweQoTP5gkjDvNk0KUCOzBgya7B5NQg9tapDWFM/cKpsFs/jUpOxvW
8GPl0tjChz1pe64KxaC6QjErVWFSa4+9ssCuDQH2CM2gXlRWoYScmBR/Up9MR8xI33VIPyM6x5/L
7Qv8jP0GSC55rhTxEu8jBJbE4HViEAwjnjEVE9ot0c7WErLE0nZiow/nBjov6HGeIS6lu4hPowy4
ooIqQiVCESRmiJPFEBazL94ZLD2Z99BpVmio23RuIvDhibqmLueXr/ef+sU22jLOOaFOY9YcQ2sP
DKCoUC66qHjTOXl92hlpy2CI2G7nRcn7w/NvXx+/PE9uF4YeqPVvLLpKIoHLSAnTtIDnniJmnKB+
5NnA7sQugNeBndSFTrsNB6xhniwGThmTdLcUX5Lf6c5VYDrC/uuaPQHC6J2p5YMGU25R2NY2SjoQ
xwM4BVLRlFgyNqtXz1VaxfE/vb1p6VtuFCn4CG7y96eXA4KaIqhOv6xfCxVyDomYukso4ksH5kkC
4QbnzTLFzP+prL9H/E3L6L7DvTijsm6ep5XI2FriQiUqmNHRZ3ATbCn5mINvsfQjY8+YLBF/ao6f
+dytRAYidj3Kzunzu3p7Eoe7gBMCFur/y5ne3hewJIGkgAjgEQtU8QhlEYPHyl+qy1qZzGy5ltpO
nr3c653mi61/wtPFA11Rfydli1ZFaiSBz0SBOJGIo1ETr1UC+nhIkv0fIH6nI6ZMK7ZsgeEUX/SO
QRm9+dfu4x6veY8YR8g42Ji69mfUhgrNiNPY0ttShIUA7yVIhi12nfPCXN1L8Nf4fbqAMI+vb1pq
XYeFw9xLPjoKm4ex6qTaxpFbjagQGiOniNHkHRck6mI9NzKEcFXt7jj5RSdl89ASflgqESXOgD/4
0XfN4WiSWeEMcPiwJEoEHhJY/ozIUooXqa3gQsS4cgzaaW/a5Xs0LYpDz0lCd5vP95++7Ybmps8n
AApZr5AVLcorDg5swQoyRBx1aMiqWFKWSYGwvRKnAdc4NlBdOw7NmJYnTTs8bUb1sHnpf2GfwESI
2ZAYEK+HiUhc8ZloIwSFr8uTUK0oPM/UEtCp8lJVDjYu5+ceEYwFTS1LRGPJiMhg6jlnKkSl5kKG
pL265Gx+7tHTkXRK0s0F07li0D1ghSlTx1tANdwCFpnB3coS5C/HW0CG0Irg4mfPKWLcmpyuhsKf
r/a6XX0aedOysu3wp3YL/HkkCbbM3f2Hl6cRhZ7xY1EdG7D+lWWhAmJEVkNoAn8B50m2goJhCXYt
v2zRdNZZw6JfDGz5Up19JLemU1e/+1QbFgwJOcM/aiaRSQW7BAdRMBtUGuJZidj90EvOLPOvYIKj
bRwvdJeOPzQEq06MGR6OFV4V2vHH9b6/KVDqahPvgIFLvGEGiSyBaGaNxViYKG8UOVpQMmOks6PU
dp4UtX38DDvoeDnncPPQDLZK4QmLS2uT7Ewcdr/IcHyT08V0K5I6d+SwRv+C/PFzS+n2rkPp3a52
ya6QAEPuXA/bimXBEEYDi0Vho4OH7wN4JJwWBtSyRGN5K1yCCRE3/wFQSwMECgACAAAAA2t/RJAj
rZI0AAAANAAAAFkAHABtZWRpYS9XM0MvYXVkaW8vY2FuUGxheVR5cGUvY2FuUGxheVR5cGVfYXBw
bGljYXRpb25fb2N0ZXRfc3RyZWFtX3dpdGhfY29kZWNzXzEtc3RkZXJyLnR4dFVUCQAD5c45U+XO
OVN1eAsAAQT1AQAABBQAAAAjUFJPQ0VTUyBVTlJFU1BPTlNJVkUgLSBXZWJQcm9jZXNzIChwaWQg
MjkyNDMpCiNFT0YKUEsDBBQAAgAIAO9qf0Q8Vx/gfAIAALIgAAArABwAcHl3ZWJzb2NrZXQud3Mu
bG9nLTMxTWFyMjAxNC0xMzE5MzItZXJyLnR4dFVUCQADwc45U9TNOVN1eAsAAQT1AQAABBQAAADt
2Ftv2jAYgOF7fsWn3hS0NM4BQsndDnSbNnUTVO0FQpaTfCkWSZzZpiz79TOHrqnWTkMbvbJAQjkp
L7bzXGQWeH7/zAvPQh/8MA7C2AucoD+Yw2w8mXyZzIHSkvGKUvcGk6lIl6inKO9QxjD+nmKtuaiA
V1BLkaJSvLoFid9WqDTkUpQxdE/j2D91IPKCwHfAM99e50qyFBOWLqFbCnOqxBQrDSkrCiiY0r24
A3DBC4QTMm2UxpJ85olksiEXkpW4FnKpyNdGL0Tl5vd7yDVKZXoUCdwhKXhC6u0Zm612uls3Jw4U
vEIYnAdOK5/u26leSGSZiQBQWORuziuuFveHu/tfB9KCm3DKskyay3svVB0G4bb6cdVD7WS34wOr
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
L1VUBQADCsk5U3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHVqf0R5R2YUfQAAAJIAAAAuABgA
AAAAAAEAAACkgTBTAQBjb21wb3NpdGluZy90aWxpbmcvY3Jhc2gtaHVnZS1sYXllci1zdGRlcnIu
dHh0VVQFAAPezTlTdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALWt/RCvS2TVCJAAAvDYCAA0A
GAAAAAAAAQAAAKSBFVQBAGVycm9yX2xvZy50eHRVVAUAAzXPOVN1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAAAvaH9EAAAAAAAAAAAAAAAABQAYAAAAAAAAABAA7UGeeAEAZmFzdC9VVAUAA5nJOVN1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAADaH9EAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UHd
eAEAZmFzdC9jc3MvVVQFAANGyTlTdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAlWp/RNsI00I7
AAAAPwAAACkAGAAAAAAAAQAAAKSBIHkBAGZhc3QvY3NzL2NvbXBhcmUtY29udGVudC1zdHlsZS1z
dGRlcnIudHh0VVQFAAMazjlTdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAE2h/RAAAAAAAAAAA
AAAAAAwAGAAAAAAAAAAQAO1BvnkBAGZhc3QvZnJhbWVzL1VUBQADZsk5U3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAKlqf0TbCNNCOwAAAD8AAAAvABgAAAAAAAEAAACkgQR6AQBmYXN0L2ZyYW1l
cy9mcmFtZS1kaXNwbGF5LW5vbmUtZm9jdXMtc3RkZXJyLnR4dFVUBQADPc45U3V4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAABxof0QAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQah6AQBmYXN0L2xv
YWRlci9VVAUAA3fJOVN1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACsan9E2wjTQjsAAAA/AAAA
UgAYAAAAAAABAAAApIHuegEAZmFzdC9sb2FkZXIvZGlzcGxheS1pbWFnZS11bnNldC1jYW4tYmxv
Y2staW1hZ2UtYW5kLWNhbi1yZWxvYWQtaW4tcGxhY2Utc3RkZXJyLnR4dFVUBQADRM45U3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAK1qf0TbCNNCOwAAAD8AAABTABgAAAAAAAEAAACkgbV7AQBm
YXN0L2xvYWRlci9pbWFnZXMtZW5hYmxlZC11bnNldC1jYW4tYmxvY2staW1hZ2UtYW5kLWNhbi1y
ZWxvYWQtaW4tcGxhY2Utc3RkZXJyLnR4dFVUBQADRs45U3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIALFqf0TbCNNCOwAAAD8AAAAtABgAAAAAAAEAAACkgX18AQBmYXN0L2xvYWRlci9yZWxvYWQt
cG9saWN5LWRlbGVnYXRlLXN0ZGVyci50eHRVVAUAA07OOVN1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAAAkaH9EAAAAAAAAAAAAAAAADQAYAAAAAAAAABAA7UEffQEAZmFzdC9yZXBhaW50L1VUBQAD
g8k5U3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALdqf0Qe3qVl7gAAAGoBAAA2ABgAAAAAAAEA
AACkgWZ9AQBmYXN0L3JlcGFpbnQvb2JzY3VyZWQtYmFja2dyb3VuZC1uby1yZXBhaW50LWFjdHVh
bC50eHRVVAUAA1nOOVN1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC3an9EVCYtqzEBAABDAgAA
NAAYAAAAAAABAAAApIHEfgEAZmFzdC9yZXBhaW50L29ic2N1cmVkLWJhY2tncm91bmQtbm8tcmVw
YWludC1kaWZmLnR4dFVUBQADWc45U3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALdqf0RGk2Yr
qwAAAPQAAAA4ABgAAAAAAAEAAACkgWOAAQBmYXN0L3JlcGFpbnQvb2JzY3VyZWQtYmFja2dyb3Vu
ZC1uby1yZXBhaW50LWV4cGVjdGVkLnR4dFVUBQADWc45U3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIALdqf0RFl/r5UQgAAKkfAAA8ABgAAAAAAAEAAACkgYCBAQBmYXN0L3JlcGFpbnQvb2JzY3Vy
ZWQtYmFja2dyb3VuZC1uby1yZXBhaW50LXByZXR0eS1kaWZmLmh0bWxVVAUAA1nOOVN1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAAAvaH9EAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UFHigEAZmFz
dC94c2wvVVQFAAOZyTlTdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAw2p/RHL9ZfKFAAAA6QAA
ACUAGAAAAAAAAQAAAKSBiooBAGZhc3QveHNsL3RyYW5zZm9ybS14aHItZG9jLXN0ZGVyci50eHRV
VAUAA27OOVN1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADDan9EBY9VjpMAAADQAgAAJwAYAAAA
AAABAAAApIFuiwEAZmFzdC94c2wveHNsdC1iYWQtaW1wb3J0LXVyaS1zdGRlcnIudHh0VVQFAANu
zjlTdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAw2p/RIFKd61LAAAArAAAADQAGAAAAAAAAQAA
AKSBYowBAGZhc3QveHNsL3hzbHQtdHJhbnNmb3JtLXRvLWZyYWdtZW50LWNyYXNoLXN0ZGVyci50
eHRVVAUAA27OOVN1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABNa39EjwMlLmsBAABQAgAAEQAY
AAAAAAABAAAApIEbjQEAZnVsbF9yZXN1bHRzLmpzb25VVAUAA3HPOVN1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAABhZ39EAAAAAAAAAAAAAAAABQAYAAAAAAAAABAA7UHRjgEAaHR0cC9VVAUAAwbJ
OVN1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAzaH9EAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA
7UEQjwEAaHR0cC90ZXN0cy9VVAUAA6LJOVN1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABhZ39E
AAAAAAAAAAAAAAAAEQAYAAAAAAAAABAA7UFVjwEAaHR0cC90ZXN0cy9jYWNoZS9VVAUAAwbJOVN1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABzan9EQ2NuTz8AAAC9AAAAOwAYAAAAAAABAAAApIGg
jwEAaHR0cC90ZXN0cy9jYWNoZS9zdWJyZXNvdXJjZS1mYWlsb3Zlci10by1uZXR3b3JrLXN0ZGVy
ci50eHRVVAUAA9rNOVN1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAYaH9EAAAAAAAAAAAAAAAA
EAAYAAAAAAAAABAA7UFUkAEAaHR0cC90ZXN0cy9taXNjL1VUBQADb8k5U3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAKtqf0QVNTWSegAAALwAAAAqABgAAAAAAAEAAACkgZ6QAQBodHRwL3Rlc3Rz
L21pc2MveHNsdC1iYWQtaW1wb3J0LXN0ZGVyci50eHRVVAUAA0LOOVN1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAAAcaH9EAAAAAAAAAAAAAAAAFgAYAAAAAAAAABAA7UF8kQEAaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL1VUBQADeMk5U3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAK9qf0TbCNNCOwAA
AD8AAAA3ABgAAAAAAAEAAACkgcyRAQBodHRwL3Rlc3RzL25hdmlnYXRpb24vZmFsbGJhY2stYW5j
aG9yLXJlbG9hZC1zdGRlcnIudHh0VVQFAANKzjlTdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
OWh/RAAAAAAAAAAAAAAAABQAGAAAAAAAAAAQAO1BeJIBAGh0dHAvdGVzdHMvc2VjdXJpdHkvVVQF
AAOuyTlTdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAOmh/RAAAAAAAAAAAAAAAACoAGAAAAAAA
AAAQAO1BxpIBAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L1VUBQAD
r8k5U3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM5qf0RjqqxsggAAAKgAAABAABgAAAAAAAEA
AACkgSqTAQBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtYWxs
b3dlZC1zdGRlcnIudHh0VVQFAAODzjlTdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAzmp/RGOq
rGyCAAAAqAAAAFIAGAAAAAAAAQAAAKSBJpQBAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L3hzbC11bmFmZmVjdGVkLWJ5LXN0eWxlLXNyYy0yLXN0ZGVyci50eHRVVAUA
A4POOVN1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADHan9EYEtmEJEAAAD7AQAARQAYAAAAAAAB
AAAApIE0lQEAaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXhzbC1kb2N1bWVudC1zZWN1
cml0eU9yaWdpbi1zdGRlcnIudHh0VVQFAAN2zjlTdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
cGp/ROqKfEJhBQAABQ8AAAoAGAAAAAAAAQAAAKSBRJYBAGh0dHBkLmNvbmZVVAUAA9PNOVN1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAAADa39EAAAAAAAAAAAAAAAABgAYAAAAAAAAABAA7UHpmwEA
bWVkaWEvVVQFAAPlzjlTdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA8mp/RMyTOZ22AAAAAwEA
ACoAGAAAAAAAAQAAAKSBKZwBAG1lZGlhL3ZpZGVvLXNldC1yYXRlLWZyb20tcGF1c2Utc3RkZXJy
LnR4dFVUBQADyM45U3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAANrf0QAAAAAAAAAAAAAAAAK
ABgAAAAAAAAAEADtQUOdAQBtZWRpYS9XM0MvVVQFAAPlzjlTdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAAA2t/RAAAAAAAAAAAAAAAABAAGAAAAAAAAAAQAO1Bh50BAG1lZGlhL1czQy9hdWRpby9V
VAUAA+XOOVN1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABMa39EAAAAAAAAAAAAAAAAHAAYAAAA
AAAAABAA7UHRnQEAbWVkaWEvVzNDL2F1ZGlvL2NhblBsYXlUeXBlL1VUBQADcM85U3V4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAANrf0R36txNpgAAANkAAABcABgAAAAAAAEAAACkgSeeAQBtZWRp
YS9XM0MvYXVkaW8vY2FuUGxheVR5cGUvY2FuUGxheVR5cGVfYXBwbGljYXRpb25fb2N0ZXRfc3Ry
ZWFtX3dpdGhfY29kZWNzXzEtY3Jhc2gtbG9nLnR4dFVUBQAD5c45U3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAExrf0SFCJW8cGkAAA3aAgBZABgAAAAAAAEAAACkgWOfAQBtZWRpYS9XM0MvYXVk
aW8vY2FuUGxheVR5cGUvY2FuUGxheVR5cGVfYXBwbGljYXRpb25fb2N0ZXRfc3RyZWFtX3dpdGhf
Y29kZWNzXzEtc2FtcGxlLnR4dFVUBQADcM85U3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAgAAAANr
f0SQI62SNAAAADQAAABZABgAAAAAAAEAAACkgWYJAgBtZWRpYS9XM0MvYXVkaW8vY2FuUGxheVR5
cGUvY2FuUGxheVR5cGVfYXBwbGljYXRpb25fb2N0ZXRfc3RyZWFtX3dpdGhfY29kZWNzXzEtc3Rk
ZXJyLnR4dFVUBQAD5c45U3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAO9qf0Q8Vx/gfAIAALIg
AAArABgAAAAAAAEAAACkgS0KAgBweXdlYnNvY2tldC53cy5sb2ctMzFNYXIyMDE0LTEzMTkzMi1l
cnIudHh0VVQFAAPBzjlTdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA72p/RL7AmkUIAQAAjwIA
ACsAGAAAAAAAAQAAAKSBDg0CAHB5d2Vic29ja2V0LndzLmxvZy0zMU1hcjIwMTQtMTMxOTMyLW91
dC50eHRVVAUAA8HOOVN1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABNa39EZ88I0X4mAAAjpAAA
DAAYAAAAAAABAAAApIF7DgIAcmVzdWx0cy5odG1sVVQFAANxzzlTdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAumh/RAAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1BPzUCAHJldHJpZXMvVVQFAAOg
yjlTdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgATWt/RCiACRhN6AUA/tkiAAoAGAAAAAAAAQAA
AKSBgTUCAHN0YXRzLmpzb25VVAUAA3HPOVN1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACQaH9E
AAAAAAAAAAAAAAAABAAYAAAAAAAAABAA7UESHggAc3ZnL1VUBQADT8o5U3V4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAJBof0QAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQVAeCABzdmcvc3Ryb2tl
L1VUBQADT8o5U3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABxrf0Qnt4hjggAAAJAAAAAlABgA
AAAAAAEAAACkgZUeCABzdmcvc3Ryb2tlL3plcm8td2lkdGgtaGFuZy1zdGRlcnIudHh0VVQFAAMY
zzlTdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAnGh/RAAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQ
AO1Bdh8IAHRyYW5zaXRpb25zL1VUBQADaMo5U3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACtr
f0SpLpEGiAAAAEIDAAA3ABgAAAAAAAEAAACkgbwfCAB0cmFuc2l0aW9ucy9jdWJpYy1iZXppZXIt
b3ZlcmZsb3ctc3ZnLWxlbmd0aC1zdGRlcnIudHh0VVQFAAMyzzlTdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgA8mp/RIUIlbxwaQAADdoCABsAGAAAAAAAAQAAAKSBtSAIAFdlYlByb2Nlc3MtMjky
NDMtc2FtcGxlLnR4dFVUBQADx845U3V4CwABBPUBAAAEFAAAAFBLBQYAAAAAOQA5AE8XAAB6iggA
AAA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228202</attachid>
            <date>2014-03-31 14:03:07 -0700</date>
            <delta_ts>2014-06-04 00:52:36 -0700</delta_ts>
            <desc>For Win EWS</desc>
            <filename>bug-130946-20140331140358.patch</filename>
            <type>text/plain</type>
            <size>164753</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2NTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTA4NmUzZDgyYmYzODUx
MGQ2MmQyMTFlNDJhNzc1ZDYyMzRiZDRkNS4uMjVmN2Q4YWIzNjIxMTlmODJjNWUwOGE5MGMwMGU1
OGIwOGIyOGQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE0LTAzLTMxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtVSS1zaWRlIGNv
bXBvc2l0aW5nXSBQcm94eSBhbmltYXRpb25zIHRvIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA5NDYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRvIHByb3h5IENB
IGFuaW1hdGlvbnMsIG1ha2UgUGxhdGZvcm1DQUFuaW1hdGlvbiBhIHB1cmUgdmlydHVhbCBiYXNl
IGNsYXNzCisgICAgICAgIGFuZCBzdWJjbGFzcyBmb3IgTWFjLCBXaW5kb3dzLCBhbmQgUmVtb3Rl
IChqdXN0IGxpa2UgUGxhdGZvcm1DQUxheWVyKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBjb2Rp
bmcgc3VwcG9ydCBmb3IgVGltaW5nRnVuY3Rpb25zLgorICAgICAgICAKKyAgICAgICAgRG8gc29t
ZSBtaW5vciAjaW5jbHVkZSB0aWR5dXAuCisgICAgICAgIAorICAgICAgICBNaW5vciByZWZhY3Rv
ciBpbiBHcmFwaGljc0xheWVyQ0EgdG8gc2hhcmUgc29tZSBhbmltYXRpb25zIGNvZGUuCisKKyAg
ICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9u
Lmg6IEFkZCBzZXR0ZXJzIG5lZWQgZm9yIGVuY29kZS9kZWNvZGUuCisgICAgICAgIChXZWJDb3Jl
OjpDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uOjpzZXRWYWx1ZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbjo6c2V0VGltaW5nRnVuY3Rpb25QcmVzZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6U3RlcHNUaW1pbmdGdW5jdGlvbjo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlN0ZXBzVGltaW5nRnVuY3Rpb246OnNldE51bWJlck9mU3RlcHMpOgorICAgICAg
ICAoV2ViQ29yZTo6U3RlcHNUaW1pbmdGdW5jdGlvbjo6c2V0U3RlcEF0U3RhcnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZVBsYXRmb3JtQ0FBbmltYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjphbmltYXRpb25DYW5CZUFjY2VsZXJhdGVk
KTogTWlub3IgcmVmYWN0b3Igc28gd2UgY2FuIHNoYXJlCisgICAgICAgIGNvZGUgd2l0aCBHcmFw
aGljc0xheWVyQ0FSZW1vdGUuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmFk
ZEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUJh
c2ljQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3NSZWZQdHI8UGxhdGZvcm1DQUFu
aW1hdGlvbj5HcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUtleWZyYW1lQW5pbWF0aW9uKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmg6CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uOjp+UGxhdGZvcm1DQUFuaW1hdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybUNBQW5pbWF0aW9uOjppc1BsYXRmb3JtQ0FBbmltYXRpb25NYWMp
OgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1DQUFuaW1hdGlvbjo6aXNQbGF0Zm9ybUNBQW5p
bWF0aW9uV2luKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb246OmlzUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
Q0FBbmltYXRpb246OnNldFR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1Bs
YXRmb3JtQ0FMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0
Zm9ybUNBQW5pbWF0aW9uTWFjLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW06CisgICAgICAgIChQbGF0Zm9ybUNB
TGF5ZXJNYWM6OmFkZEFuaW1hdGlvbkZvcktleSk6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJN
YWM6OmFuaW1hdGlvbkZvcktleSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFj
L1RpbGVDb250cm9sbGVyLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9Q
bGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5oOiBBZGRlZC4KKwogMjAxNC0wMy0zMSAgQmV0
aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmFkaW8gYnV0dG9ucyBhbmQg
Y2hlY2tib3hlcyBzaG91bGQgc2hhcmUgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDhiMGEzMTFhZDkwOTIz
M2YzYTM0ZGY0MGYyM2VlYzljNjU2YWJmOTkuLjhmNDU3YmJhZGYxMmQ2ZWRjMzNkMTYxMjg2NzBh
YjIyNTZiMDEyZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDIgQEAKKzIwMTQtMDMtMzEgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgW1VJLXNpZGUg
Y29tcG9zaXRpbmddIFByb3h5IGFuaW1hdGlvbnMgdG8gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDk0NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgQWRkIGVuY29k
aW5nL2RlY29kaW5nIG9mIFRpbWluZ0Z1bmN0aW9ucy4gQWRkIGVuY29kaW5nIHN1cHBvcnQKKyAg
ICAgICAgZm9yIEhhc2hTZXQuCisgICAgICAgIAorICAgICAgICBBZGQgUGxhdGZvcm1DQUFuaW1h
dGlvblJlbW90ZSBhbmQgaGF2ZSBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUgYWxsb3cKKyAgICAgICAg
YW5pbWF0aW9ucyBub3cuIFBsYXRmb3JtQ0FMYXllclJlbW90ZSdzIHByb3BlcnRpZXMgYXJlIGRl
ZmluZWQgaW4gdGhlIGNsYXNzLAorICAgICAgICBhcyBpcyB0aGUgZW5jb2RpbmcvZGVjb2Rpbmcg
KG11Y2ggY2xlYW5lciB0aGFuIGhhdmluZyB0aGVtIGluIHRoZSB0cmFuc2FjdGlvbgorICAgICAg
ICBjbGFzcyBJIHRoaW5rKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBzdXBwb3J0IHRoZSAiYW5p
bWF0aW9uRGlkU3RhcnQiIGNhbGxiYWNrIGFuZCBzZW5kaW5nIHRoaXMgYmFjayB0byB0aGUKKyAg
ICAgICAgd2ViIHByb2Nlc3MuIFRoaXMgaW52b2x2ZXMgYSBIYXNoTWFwIG9mIGxheWVySUQtPldL
QW5pbWF0aW9uRGVsZWdhdGUgc3RvcmVkCisgICAgICAgIG9uIHRoZSBSZW1vdGVMYXllclRyZWVI
b3N0LCBhbmQgYSBtZXNzYWdlIHNlbmQgdmlhIHRoZSBEcmF3aW5nQXJlYS4gT24gdGhlCisgICAg
ICAgIG90aGVyIHNpZGUsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQgc3RvcmVzIGEgSGFzaE1hcCBv
ZiBsYXllcklELT5QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUqCisgICAgICAgIGZvciBsYXllcnMgd2hp
Y2ggaGF2ZSBqdXN0IHN0YXJ0ZWQgYW5pbWF0aW9ucywgd2hpY2ggaXMgdXNlZCB0byBnZXQgdGhl
CisgICAgICAgIFBsYXRmb3JtQ0FMYXllciogdG8gY2FsbCBhbmltYXRpb25EaWRTdGFydCgpIG9u
LgorICAgICAgICAKKyAgICAgICAgVGhpcyByZXF1aXJlcyB0aGF0IHRoZSBSZW1vdGVMYXllclRy
ZWVIb3N0KiBiZSBwYXNzZWQgZG93biBpbnRvIHByb3BlcnR5IGFwcGxpY2F0aW9uLAorICAgICAg
ICBhbmQgdGhhdCB0aGUgUmVtb3RlTGF5ZXJUcmVlSG9zdCBoYXZlIGEgcmVmZXJlbmNlIHRvIHRo
ZSBkcmF3aW5nIGFyZWEuCisgICAgICAgIAorICAgICAgICBUbyBldmVyeSBDQUxheWVyIGluIHRo
ZSBVSSBwcm9jZXNzIHdlIC1zZXRWYWx1ZTpmb3JLZXk6IHRvIHRyYWNrIHRoZSBQbGF0Zm9ybUxh
eWVySUQsCisgICAgICAgIHNvIHdlIGNhbiBnZXQgYmFjayB0byBpdCBpbiBvcmRlciB0byBkaXNw
YXRjaCAiYW5pbWF0aW9uRGlkU3RhcnQiLgorICAgICAgICAKKyAgICAgICAgUmVwbGFjZSBzb21l
ICJ1c2luZyBuYW1lc3BhY2UgV2ViS2l0IiB3aXRoICJuYW1lc3BhY2UgV2ViS2l0IHsgfSIuCisK
KyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBTaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxMaW5lYXJUaW1pbmdGdW5jdGlvbj46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8TGluZWFyVGltaW5nRnVuY3Rpb24+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24+OjplbmNvZGUpOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24+OjpkZWNvZGUpOgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFN0ZXBzVGltaW5nRnVuY3Rpb24+OjplbmNvZGUp
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFN0ZXBzVGltaW5nRnVuY3Rpb24+OjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAg
KiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tOgorICAgICAgICAqIFNoYXJl
ZC9tYWMvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLmg6CisgICAgICAgICogU2hhcmVk
L21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIubW06CisgICAgICAgIChXZWJLaXQ6
OmFwcGx5UHJvcGVydGllc1RvTGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRy
ZWVQcm9wZXJ0eUFwcGxpZXI6OmFwcGx5UHJvcGVydGllcyk6CisgICAgICAgICogU2hhcmVkL21h
Yy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvUmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OkxheWVyUHJvcGVydGllcyk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6
OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpM
YXllclByb3BlcnRpZXM6OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OmR1bXBDaGFuZ2VkTGF5
ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1JlbW90ZUxheWVyVHJlZUhvc3RJT1MubW06
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OmxheWVySUQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjpjcmVhdGVMYXllcik6CisgICAgICAgICog
VUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eTo6YWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnNob3dEZWJ1Z0luZGlj
YXRvcik6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lmg6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OmFuaW1hdGlvbkRlbGVnYXRlcyk6
CisgICAgICAgICogVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1tOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjpSZW1vdGVMYXllclRyZWVIb3N0KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6dXBkYXRlTGF5ZXJUcmVlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6bGF5ZXJXaWxsQmVSZW1vdmVkKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6YW5pbWF0aW9uRGlkU3RhcnQp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjpsYXllcklEKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlTGF5ZXIpOgorICAgICAgICAq
IFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OmFj
Y2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9EcmF3aW5nQXJlYS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdyYXBoaWNz
TGF5ZXJDQVJlbW90ZTo6Y3JlYXRlUGxhdGZvcm1DQUFuaW1hdGlvbik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaDogQWRkZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVt
b3RlLm1tOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90
ZTo6cmVjdXJzaXZlQnVpbGRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3Jt
Q0FMYXllclJlbW90ZTo6YW5pbWF0aW9uU3RhcnRlZCk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRm
b3JtQ0FMYXllclJlbW90ZTo6YWRkQW5pbWF0aW9uRm9yS2V5KToKKyAgICAgICAgKFdlYktpdDo6
UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZW1vdmVBbmltYXRpb25Gb3JLZXkpOgorICAgICAgICAo
V2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFuaW1hdGlvbkZvcktleSk6CisgICAgICAg
IChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlY3Vyc2l2ZUJ1aWxkVHJhbnNhY3Rpb24pOiBEZWxl
dGVkLgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphZGRBbmltYXRpb25Gb3JLZXkp
OiBEZWxldGVkLgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZW1vdmVBbmltYXRp
b25Gb3JLZXkpOiBEZWxldGVkLgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphbmlt
YXRpb25Gb3JLZXkpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW06Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmxheWVyV2lsbEJlRGVzdHJv
eWVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6d2lsbFN0YXJ0
QW5pbWF0aW9uT25MYXllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUNvbnRl
eHQ6OmFuaW1hdGlvbkRpZFN0YXJ0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWEubW06CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjpjb21taXRUcmFuc2llbnRab29tKToKKwogMjAxNC0wMy0zMSAgUGV0ZXIgTW9sbmFyICA8
cG1vbG5hci51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgogCiAgICAgICAgIEJ1aWxkZml4
IGFmdGVyIHIxNjY0OTcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
biBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDQ5ZjFmMWRjMTk5ZDBjOTE2
MWM4YWU3ZmIwNjExMjI3NDY2ZGJlZWUuLmVkYjgyMjU3MDg5NjMwZmQxOGJmZGU1ZjJkNjc2ZDcz
M2ExOTVjZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC03MTYsNiArNzE2LDcgQEAgX19aTjdX
ZWJDb3JlMTZuZXh0TGluZVBvc2l0aW9uRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25FaU5TXzEyRWRp
dGFibGVUeXBlRQogX19aTjdXZWJDb3JlMTZzY3JpcHROYW1lVG9Db2RlRVJLTjNXVEY2U3RyaW5n
RQogX19aTjdXZWJDb3JlMTZzdGFydE9mUGFyYWdyYXBoRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25F
TlNfMjdFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGVFCiBfX1pON1dlYkNvcmUxNnRocmVhZEds
b2JhbERhdGFFdgorX19aTjdXZWJDb3JlMTZ0b0NBRmlsbE1vZGVUeXBlRU5TXzE5UGxhdGZvcm1D
QUFuaW1hdGlvbjEyRmlsbE1vZGVUeXBlRQogX19aTjdXZWJDb3JlMTdDcmVkZW50aWFsU3RvcmFn
ZTI0Z2V0RnJvbVBlcnNpc3RlbnRTdG9yYWdlRVJLTlNfMTVQcm90ZWN0aW9uU3BhY2VFCiBfX1pO
N1dlYkNvcmUxN0NyZWRlbnRpYWxTdG9yYWdlM2dldEVSS05TXzE1UHJvdGVjdGlvblNwYWNlRQog
X19aTjdXZWJDb3JlMTdET01JbXBsZW1lbnRhdGlvbjEzaXNYTUxNSU1FVHlwZUVSS04zV1RGNlN0
cmluZ0UKQEAgLTc5MSw5ICs3OTIsNiBAQCBfX1pON1dlYkNvcmUxOU1lZGlhU2Vzc2lvbk1hbmFn
ZXIxN2JlZ2luSW50ZXJydXB0aW9uRXYKIF9fWk43V2ViQ29yZTE5TWVkaWFTZXNzaW9uTWFuYWdl
cjE3cmVtb3ZlUmVzdHJpY3Rpb25FTlNfMTJNZWRpYVNlc3Npb245TWVkaWFUeXBlRWoKIF9fWk43
V2ViQ29yZTE5TWVkaWFTZXNzaW9uTWFuYWdlcjMwZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21t
YW5kRU5TXzEyTWVkaWFTZXNzaW9uMjRSZW1vdGVDb250cm9sQ29tbWFuZFR5cGVFCiBfX1pON1dl
YkNvcmUxOU1lZGlhU2Vzc2lvbk1hbmFnZXI5YWRkQ2xpZW50RVBOU18yNU1lZGlhU2Vzc2lvbk1h
bmFnZXJDbGllbnRFCi1fX1pON1dlYkNvcmUxOVBsYXRmb3JtQ0FBbmltYXRpb24xMHNldFRvVmFs
dWVFUktOU18yMFRyYW5zZm9ybWF0aW9uTWF0cml4RQotX19aTjdXZWJDb3JlMTlQbGF0Zm9ybUNB
QW5pbWF0aW9uNmNyZWF0ZUVQMTlDQVByb3BlcnR5QW5pbWF0aW9uCi1fX1pON1dlYkNvcmUxOVBs
YXRmb3JtQ0FBbmltYXRpb25EMUV2CiBfX1pON1dlYkNvcmUxOVJlc291cmNlUmVxdWVzdEJhc2Ux
MXNldEhUVFBCb2R5RU4zV1RGMTBQYXNzUmVmUHRySU5TXzhGb3JtRGF0YUVFRQogX19aTjdXZWJD
b3JlMTlSZXNvdXJjZVJlcXVlc3RCYXNlMTNzZXRIVFRQTWV0aG9kRVJLTjNXVEY2U3RyaW5nRQog
X19aTjdXZWJDb3JlMTlSZXNvdXJjZVJlcXVlc3RCYXNlMThzZXRIVFRQSGVhZGVyRmllbGRFUEtj
UktOM1dURjZTdHJpbmdFCkBAIC05MDAsMTAgKzg5OCwxMiBAQCBfX1pON1dlYkNvcmUyMW1lbW9y
eVByZXNzdXJlSGFuZGxlckV2CiBfX1pON1dlYkNvcmUyMXJlc291cmNlTG9hZFNjaGVkdWxlckV2
CiBfX1pON1dlYkNvcmUyMXNldEdsb2JhbEljb25EYXRhYmFzZUVQTlNfMTZJY29uRGF0YWJhc2VC
YXNlRQogX19aTjdXZWJDb3JlMjFzZXRQbGF0Zm9ybVN0cmF0ZWdpZXNFUE5TXzE4UGxhdGZvcm1T
dHJhdGVnaWVzRQorX19aTjdXZWJDb3JlMjF0b0NBVmFsdWVGdW5jdGlvblR5cGVFTlNfMTlQbGF0
Zm9ybUNBQW5pbWF0aW9uMTdWYWx1ZUZ1bmN0aW9uVHlwZUUKIF9fWk43V2ViQ29yZTIySFRNTFBs
dWdJbkltYWdlRWxlbWVudDI0cmVzdGFydFNuYXBzaG90dGVkUGx1Z0luRXYKIF9fWk43V2ViQ29y
ZTIySFRNTFBsdWdJbkltYWdlRWxlbWVudDI5c2V0SXNQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5F
YgogX19aTjdXZWJDb3JlMjJNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzMjVlbnN1cmVDU1NTdHlsZURl
Y2xhcmF0aW9uRXYKIF9fWk43V2ViQ29yZTIyTXV0YWJsZVN0eWxlUHJvcGVydGllc0QxRXYKK19f
Wk43V2ViQ29yZTIyUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzZjcmVhdGVFUDE5Q0FQcm9wZXJ0eUFu
aW1hdGlvbgogX19aTjdXZWJDb3JlMjJSdW50aW1lRW5hYmxlZEZlYXR1cmVzMTRzaGFyZWRGZWF0
dXJlc0V2CiBfX1pON1dlYkNvcmUyMlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQyNmNhblN1c3BlbmRB
Y3RpdmVET01PYmplY3RzRXYKIF9fWk43V2ViQ29yZTIyU2NyaXB0RXhlY3V0aW9uQ29udGV4dDJ2
bUV2CkBAIC05MzksNiArOTM5LDcgQEAgX19aTjdXZWJDb3JlMjNkZWNvZGVIb3N0TmFtZVdpdGhS
YW5nZUVQOE5TU3RyaW5nOF9OU1JhbmdlCiBfX1pON1dlYkNvcmUyM2VuY29kZUhvc3ROYW1lV2l0
aFJhbmdlRVA4TlNTdHJpbmc4X05TUmFuZ2UKIF9fWk43V2ViQ29yZTIzZ2V0RmlsZU1vZGlmaWNh
dGlvblRpbWVFUktOM1dURjZTdHJpbmdFUmwKIF9fWk43V2ViQ29yZTIzZ2V0SG9zdG5hbWVzV2l0
aENvb2tpZXNFUktOU18yMU5ldHdvcmtTdG9yYWdlU2Vzc2lvbkVSTjNXVEY3SGFzaFNldElOUzNf
NlN0cmluZ0VOUzNfMTBTdHJpbmdIYXNoRU5TM18xMEhhc2hUcmFpdHNJUzVfRUVFRQorX19aTjdX
ZWJDb3JlMjN0b0NBTWVkaWFUaW1pbmdGdW5jdGlvbkVQS05TXzE0VGltaW5nRnVuY3Rpb25FYgog
X19aTjdXZWJDb3JlMjRDYWNoZWRSZXNvdXJjZUhhbmRsZUJhc2UxMXNldFJlc291cmNlRVBOU18x
NENhY2hlZFJlc291cmNlRQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIx
MG1hcmtlcnNGb3JFUE5TXzROb2RlRU5TXzE0RG9jdW1lbnRNYXJrZXIxMU1hcmtlclR5cGVzRQog
X19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIxM3JlbW92ZU1hcmtlcnNFTlNf
MTREb2N1bWVudE1hcmtlcjExTWFya2VyVHlwZXNFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCAxNTY2MGJlNWQwMjc2ODJlYWJmYTczY2Y2
ZWM0NjAzYjdhYmJmM2UyLi5kMGY1ZWE4MzllMDM5YzhmNzFiYTI1MDQwZDA1MTU4MGQ1ZGVlZWI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oK
QEAgLTE5MTUyLDYgKzE5MTUyLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRm
b3JtXGdyYXBoaWNzXGF2Zm91bmRhdGlvblxJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xjYWlyb1xUaWxl
Q2Fpcm8uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNz
XGNhXFBsYXRmb3JtQ0FGaWx0ZXJzLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxw
bGF0Zm9ybVxncmFwaGljc1xjYVx3aW5cUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fcd2luXFBsYXRmb3Jt
Q0FMYXllcldpbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3Jh
cGhpY3NcR0xDb250ZXh0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVxncmFwaGljc1xHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCIgLz4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhNTE2MzM5YzIx
NTY4OGU5M2JiYzA5ZTRjOTg4YTA0ZGZlMGI1MzVjLi45NmExNGY3NzZlN2Q5YzRjNWJlYTAzOWM3
M2RiZjYyZmJlNDJiOWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MDQsNiArNTA0LDcgQEAKIAkJMEY1ODBGQUYxNDk4MDBE
NDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1ODBGQUUxNDk4MDBENDAwRkI1QkQ4IC8qIEFuaW1h
dGlvblV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTBGNUI3QTU0MTBGNjVEN0EwMDM3NjMwMiAvKiBSZW5kZXJFbWJlZGRlZE9iamVj
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVC
N0E1MjEwRjY1RDdBMDAzNzYzMDIgLyogUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwICovOyB9Owog
CQkwRjVCN0E1NTEwRjY1RDdBMDAzNzYzMDIgLyogUmVuZGVyRW1iZWRkZWRPYmplY3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUI3QTUzMTBGNjVE
N0EwMDM3NjMwMiAvKiBSZW5kZXJFbWJlZGRlZE9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNUUyMDA2MThFNzcxRkMwMDNFQzNFNSAv
KiBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjVFMjAwNTE4RTc3MUZDMDAzRUMzRTUgLyogUGxhdGZvcm1DQUFu
aW1hdGlvbk1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTBGNjA1QUVDMTVGOTQ4NDgwMDRERjBDMCAvKiBTY3JvbGxpbmdDb25zdHJhaW50cy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjYwNUFF
QTE1Rjk0ODQ4MDA0REYwQzAgLyogU2Nyb2xsaW5nQ29uc3RyYWludHMuY3BwICovOyB9OwogCQkw
RjYwNUFFRDE1Rjk0ODQ4MDA0REYwQzAgLyogU2Nyb2xsaW5nQ29uc3RyYWludHMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNjA1QUVCMTVGOTQ4NDgw
MDRERjBDMCAvKiBTY3JvbGxpbmdDb25zdHJhaW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNjM4M0REMTg2MTVCMjkwMDNFNURCNSAvKiBU
aHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY2MzgzREIxODYxNUIyOTAwM0U1REI1IC8qIFRocmVhZGVkU2Nyb2xs
aW5nVHJlZS5jcHAgKi87IH07CkBAIC03MzI0LDYgKzczMjUsNyBAQAogCQkwRjU4MEZBRTE0OTgw
MEQ0MDBGQjVCRDggLyogQW5pbWF0aW9uVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEFuaW1hdGlvblV0aWxpdGllcy5oOyBwYXRoID0gYW5pbWF0aW9uL0FuaW1h
dGlvblV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVCN0E1MjEw
RjY1RDdBMDAzNzYzMDIgLyogUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVCN0E1MzEwRjY1RDdBMDAzNzYzMDIgLyogUmVuZGVy
RW1iZWRkZWRPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVy
RW1iZWRkZWRPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY1RTIwMDUx
OEU3NzFGQzAwM0VDM0U1IC8qIFBsYXRmb3JtQ0FBbmltYXRpb25NYWMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5oOyBwYXRoID0gY2Ev
bWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY2MDVBRUExNUY5NDg0ODAwNERGMEMwIC8qIFNjcm9sbGluZ0NvbnN0cmFpbnRzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbGluZ0NvbnN0cmFpbnRz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2MDVBRUIxNUY5NDg0ODAwNERG
MEMwIC8qIFNjcm9sbGluZ0NvbnN0cmFpbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNjcm9sbGluZ0NvbnN0cmFpbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGNjM4M0RCMTg2MTVCMjkwMDNFNURCNSAvKiBUaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGhyZWFkZWRTY3JvbGxpbmdU
cmVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NTkzLDYgKzE1NTk1LDcg
QEAKIAkJCQkyOTE3QjU2NTE0NzM0OTk1MDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlck1h
Yy5jcHAgKi8sCiAJCQkJOTNGNzJBRjExNjY2RURGQzAwMkEwMkJEIC8qIExheWVyUG9vbC5oICov
LAogCQkJCTkzRjcyQUYyMTY2NkVERkMwMDJBMDJCRCAvKiBMYXllclBvb2wubW0gKi8sCisJCQkJ
MEY1RTIwMDUxOEU3NzFGQzAwM0VDM0U1IC8qIFBsYXRmb3JtQ0FBbmltYXRpb25NYWMuaCAqLywK
IAkJCQk0OTU4NzgxRjEyQTU3RERGMDA3MjM4QUMgLyogUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5t
bSAqLywKIAkJCQlENjZCMkQ1QjE4NjgzMDA1MDA3M0M0REQgLyogUGxhdGZvcm1DQUZpbHRlcnNN
YWMuaCAqLywKIAkJCQkwRjEzMTYzRjE2RUQwQ0RFMDAzNUNDMDQgLyogUGxhdGZvcm1DQUZpbHRl
cnNNYWMubW0gKi8sCkBAIC0yNDM4Miw2ICsyNDM4NSw3IEBACiAJCQkJMUE4NUIxOTAwQTFCMThB
MjAwRDhDODdDIC8qIEpTSFRNTEh0bWxFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQ5
MThDOTBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1MSUZyYW1lRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUFFMkFBOTgwQTFDREQyRDAwQjQyQjI1IC8qIEpTSFRNTEltYWdlRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEY1RTIwMDYxOEU3NzFGQzAwM0VDM0U1IC8qIFBsYXRmb3Jt
Q0FBbmltYXRpb25NYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU3RTk3MEExQTgzRTMwMDdG
QjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQUQxNDIz
MTI5NUVBN0YwMEFDQTk4OSAvKiBKU0hUTUxJbnB1dEVsZW1lbnRDdXN0b20uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE2MTQ4QTc5MTJFNDFFM0IwMDQ0QTc4NCAvKiBKU0hUTUxLZXlnZW5FbGVtZW50
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Fu
aW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0
aW9uL1RpbWluZ0Z1bmN0aW9uLmgKaW5kZXggNjExMzk5MzQwYzBiOWIyMTM2NTQ1OWYxNTdlZGQy
NTUwMjE1OGQxOC4uMzc1ZmZiYjJlYjg4M2UxYTc0NTg1NjdjZDNhYTZhZDlmMjNjNDgyMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9u
LmgKQEAgLTMyLDYgKzMyLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgVGltaW5nRnVu
Y3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxUaW1pbmdGdW5jdGlvbj4gewogcHVibGljOgogCisg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiBjbG9uZSgpIGNvbnN0ID0gMDsK
KwogICAgIGVudW0gVGltaW5nRnVuY3Rpb25UeXBlIHsKICAgICAgICAgTGluZWFyRnVuY3Rpb24s
IEN1YmljQmV6aWVyRnVuY3Rpb24sIFN0ZXBzRnVuY3Rpb24KICAgICB9OwpAQCAtNjgsMTQgKzcw
LDE5IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBvdGhlci5pc0xpbmVhclRpbWlu
Z0Z1bmN0aW9uKCk7CiAgICAgfQotICAgIAorCiBwcml2YXRlOgogICAgIExpbmVhclRpbWluZ0Z1
bmN0aW9uKCkKICAgICAgICAgOiBUaW1pbmdGdW5jdGlvbihMaW5lYXJGdW5jdGlvbikKICAgICB7
CiAgICAgfQorCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiBjbG9uZSgp
IGNvbnN0IG92ZXJyaWRlCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IExpbmVh
clRpbWluZ0Z1bmN0aW9uKTsKKyAgICB9CiB9OwotICAgIAorCiBjbGFzcyBDdWJpY0JlemllclRp
bWluZ0Z1bmN0aW9uIDogcHVibGljIFRpbWluZ0Z1bmN0aW9uIHsKIHB1YmxpYzoKICAgICBlbnVt
IFRpbWluZ0Z1bmN0aW9uUHJlc2V0IHsKQEAgLTEzMiw3ICsxMzksMTYgQEAgcHVibGljOgogICAg
IGRvdWJsZSB4MigpIGNvbnN0IHsgcmV0dXJuIG1feDI7IH0KICAgICBkb3VibGUgeTIoKSBjb25z
dCB7IHJldHVybiBtX3kyOyB9CiAgICAgCisgICAgdm9pZCBzZXRWYWx1ZXMoZG91YmxlIHgxLCBk
b3VibGUgeTEsIGRvdWJsZSB4MiwgZG91YmxlIHkyKQorICAgIHsKKyAgICAgICAgbV94MSA9IHgx
OworICAgICAgICBtX3kxID0geTE7CisgICAgICAgIG1feDIgPSB4MjsKKyAgICAgICAgbV95MiA9
IHkyOworICAgIH0KKyAgICAKICAgICBUaW1pbmdGdW5jdGlvblByZXNldCB0aW1pbmdGdW5jdGlv
blByZXNldCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltaW5nRnVuY3Rpb25QcmVzZXQ7IH0KKyAgICB2
b2lkIHNldFRpbWluZ0Z1bmN0aW9uUHJlc2V0KFRpbWluZ0Z1bmN0aW9uUHJlc2V0IHByZXNldCkg
eyBtX3RpbWluZ0Z1bmN0aW9uUHJlc2V0ID0gcHJlc2V0OyB9CiAgICAgCiAgICAgc3RhdGljIGNv
bnN0IEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24qIGRlZmF1bHRUaW1pbmdGdW5jdGlvbigpCiAg
ICAgewpAQCAtMTU2LDYgKzE3MiwxMSBAQCBwcml2YXRlOgogICAgIHsKICAgICB9CiAKKyAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8VGltaW5nRnVuY3Rpb24+IGNsb25lKCkgY29uc3Qgb3ZlcnJpZGUK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ3ViaWNCZXppZXJUaW1pbmdGdW5j
dGlvbihtX3RpbWluZ0Z1bmN0aW9uUHJlc2V0LCBtX3gxLCBtX3kxLCBtX3gyLCBtX3kyKSk7Cisg
ICAgfQorCiAgICAgZG91YmxlIG1feDE7CiAgICAgZG91YmxlIG1feTE7CiAgICAgZG91YmxlIG1f
eDI7CkBAIC0xNjksNiArMTkwLDEwIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgU3RlcHNUaW1pbmdGdW5jdGlvbihzdGVwcywgc3RlcEF0U3RhcnQpKTsKICAg
ICB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RlcHNUaW1pbmdGdW5jdGlvbj4gY3JlYXRlKCkK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RlcHNUaW1pbmdGdW5jdGlvbigx
LCB0cnVlKSk7CisgICAgfQogICAgIAogICAgIHZpcnR1YWwgflN0ZXBzVGltaW5nRnVuY3Rpb24o
KSB7IH0KICAgICAKQEAgLTE4Miw3ICsyMDcsMTAgQEAgcHVibGljOgogICAgIH0KICAgICAKICAg
ICBpbnQgbnVtYmVyT2ZTdGVwcygpIGNvbnN0IHsgcmV0dXJuIG1fc3RlcHM7IH0KKyAgICB2b2lk
IHNldE51bWJlck9mU3RlcHMoaW50IHN0ZXBzKSB7IG1fc3RlcHMgPSBzdGVwczsgfQorCiAgICAg
Ym9vbCBzdGVwQXRTdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RlcEF0U3RhcnQ7IH0KKyAgICB2
b2lkIHNldFN0ZXBBdFN0YXJ0KGJvb2wgc3RlcHNBdFN0YXJ0KSB7IG1fc3RlcEF0U3RhcnQgPSBz
dGVwc0F0U3RhcnQ7IH0KICAgICAKIHByaXZhdGU6CiAgICAgU3RlcHNUaW1pbmdGdW5jdGlvbihp
bnQgc3RlcHMsIGJvb2wgc3RlcEF0U3RhcnQpCkBAIC0xOTEsMTEgKzIxOSwxNiBAQCBwcml2YXRl
OgogICAgICAgICAsIG1fc3RlcEF0U3RhcnQoc3RlcEF0U3RhcnQpCiAgICAgewogICAgIH0KKwor
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUaW1pbmdGdW5jdGlvbj4gY2xvbmUoKSBjb25zdCBvdmVy
cmlkZQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdGVwc1RpbWluZ0Z1bmN0
aW9uKG1fc3RlcHMsIG1fc3RlcEF0U3RhcnQpKTsKKyAgICB9CiAgICAgCiAgICAgaW50IG1fc3Rl
cHM7CiAgICAgYm9vbCBtX3N0ZXBBdFN0YXJ0OwogfTsKLSAgICAKKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gVGltaW5nRnVuY3Rpb25faApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXgg
MTQzNTEwYTQwNzE4NDE2NmEwNDNhNjZkZWE5NWNhMjk3ZTJlNzc1Zi4uMDliNWI4OTRmYzc5NTYw
ZDIyMDkwYmIyYzk1MGJhZTZjYWY0ZjAyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC0zMSw2ICszMSw3
IEBACiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0Lmgi
CiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllckZhY3RvcnkuaCIKKyNpbmNsdWRlICJJbWFnZS5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtQ0FGaWx0ZXJzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVy
LmgiCiAjaW5jbHVkZSAiUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCkBAIC01MSwxMSArNTIs
MTMgQEAKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiUGxhdGZvcm1D
QUFuaW1hdGlvbk1hYy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllck1hYy5oIgogI2luY2x1
ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lO
KQorI2luY2x1ZGUgIlBsYXRmb3JtQ0FBbmltYXRpb25XaW4uaCIKICNpbmNsdWRlICJQbGF0Zm9y
bUNBTGF5ZXJXaW4uaCIKICNlbmRpZgogCkBAIC0zNDEsNiArMzQ0LDE1IEBAIFBhc3NSZWZQdHI8
UGxhdGZvcm1DQUxheWVyPiBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZVBsYXRmb3JtQ0FMYXllcihQ
bGF0Zm9ybUxheWVyCiAjZW5kaWYKIH0KIAorUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9u
PiBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZVBsYXRmb3JtQ0FBbmltYXRpb24oUGxhdGZvcm1DQUFu
aW1hdGlvbjo6QW5pbWF0aW9uVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIGtleVBhdGgpCit7Cisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgcmV0dXJuIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OmNy
ZWF0ZSh0eXBlLCBrZXlQYXRoKTsKKyNlbGlmIFBMQVRGT1JNKFdJTikKKyAgICByZXR1cm4gUGxh
dGZvcm1DQUFuaW1hdGlvbldpbjo6Y3JlYXRlKHR5cGUsIGtleVBhdGgpOworI2VuZGlmCit9CisK
IEdyYXBoaWNzTGF5ZXJDQTo6R3JhcGhpY3NMYXllckNBKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNs
aWVudCkKICAgICA6IEdyYXBoaWNzTGF5ZXIoY2xpZW50KQogICAgICwgbV9jb250ZW50c0xheWVy
UHVycG9zZShOb0NvbnRlbnRzTGF5ZXIpCkBAIC03ODcsMTggKzc5OSwyNCBAQCBib29sIEdyYXBo
aWNzTGF5ZXJDQTo6c2hvdWxkUmVwYWludE9uU2l6ZUNoYW5nZSgpIGNvbnN0CiAgICAgcmV0dXJu
IGRyYXdzQ29udGVudCgpICYmICF0aWxlZEJhY2tpbmcoKTsKIH0KIAotYm9vbCBHcmFwaGljc0xh
eWVyQ0E6OmFkZEFuaW1hdGlvbihjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBj
b25zdCBGbG9hdFNpemUmIGJveFNpemUsIGNvbnN0IEFuaW1hdGlvbiogYW5pbSwgY29uc3QgU3Ry
aW5nJiBhbmltYXRpb25OYW1lLCBkb3VibGUgdGltZU9mZnNldCkKK2Jvb2wgR3JhcGhpY3NMYXll
ckNBOjphbmltYXRpb25DYW5CZUFjY2VsZXJhdGVkKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2
YWx1ZUxpc3QsIGNvbnN0IEFuaW1hdGlvbiogYW5pbSkgY29uc3QKIHsKLSAgICBBU1NFUlQoIWFu
aW1hdGlvbk5hbWUuaXNFbXB0eSgpKTsKLQogICAgIGlmICghYW5pbSB8fCBhbmltLT5pc0VtcHR5
T3JaZXJvRHVyYXRpb24oKSB8fCB2YWx1ZUxpc3Quc2l6ZSgpIDwgMikKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgLy8gQ29yZUFuaW1hdGlvbiBkb2VzIG5vdCBoYW5kbGUgdGhlIHN0ZXBz
KCkgdGltaW5nIGZ1bmN0aW9uLiBGYWxsIGJhY2sKLSAgICAvLyB0byBzb2Z0d2FyZSBhbmltYXRp
b24gaW4gdGhhdCBjYXNlLgogICAgIGlmIChhbmltYXRpb25IYXNTdGVwc1RpbWluZ0Z1bmN0aW9u
KHZhbHVlTGlzdCwgYW5pbSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIHJldHVybiB0
cnVlOworfQorCitib29sIEdyYXBoaWNzTGF5ZXJDQTo6YWRkQW5pbWF0aW9uKGNvbnN0IEtleWZy
YW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNvbnN0IEZsb2F0U2l6ZSYgYm94U2l6ZSwgY29uc3Qg
QW5pbWF0aW9uKiBhbmltLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSB0aW1l
T2Zmc2V0KQoreworICAgIEFTU0VSVCghYW5pbWF0aW9uTmFtZS5pc0VtcHR5KCkpOworCisgICAg
aWYgKCFhbmltYXRpb25DYW5CZUFjY2VsZXJhdGVkKHZhbHVlTGlzdCwgYW5pbSkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKwogICAgIGJvb2wgY3JlYXRlZEFuaW1hdGlvbnMgPSBmYWxzZTsKICAg
ICBpZiAodmFsdWVMaXN0LnByb3BlcnR5KCkgPT0gQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdFRyYW5z
Zm9ybSkKICAgICAgICAgY3JlYXRlZEFuaW1hdGlvbnMgPSBjcmVhdGVUcmFuc2Zvcm1BbmltYXRp
b25zRnJvbUtleWZyYW1lcyh2YWx1ZUxpc3QsIGFuaW0sIGFuaW1hdGlvbk5hbWUsIHRpbWVPZmZz
ZXQsIGJveFNpemUpOwpAQCAtMjU2MiwxNCArMjU4MCwxNCBAQCBib29sIEdyYXBoaWNzTGF5ZXJD
QTo6Y3JlYXRlRmlsdGVyQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1
ZUxpcwogCiBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IEdyYXBoaWNzTGF5ZXJDQTo6
Y3JlYXRlQmFzaWNBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uKiBhbmltLCBjb25zdCBTdHJpbmcm
IGtleVBhdGgsIGJvb2wgYWRkaXRpdmUpCiB7Ci0gICAgUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRp
b24+IGJhc2ljQW5pbSA9IFBsYXRmb3JtQ0FBbmltYXRpb246OmNyZWF0ZShQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpCYXNpYywga2V5UGF0aCk7CisgICAgUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+
IGJhc2ljQW5pbSA9IGNyZWF0ZVBsYXRmb3JtQ0FBbmltYXRpb24oUGxhdGZvcm1DQUFuaW1hdGlv
bjo6QmFzaWMsIGtleVBhdGgpOwogICAgIHNldHVwQW5pbWF0aW9uKGJhc2ljQW5pbS5nZXQoKSwg
YW5pbSwgYWRkaXRpdmUpOwogICAgIHJldHVybiBiYXNpY0FuaW07CiB9CiAKIFBhc3NSZWZQdHI8
UGxhdGZvcm1DQUFuaW1hdGlvbj5HcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUtleWZyYW1lQW5pbWF0
aW9uKGNvbnN0IEFuaW1hdGlvbiogYW5pbSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIGFk
ZGl0aXZlKQogewotICAgIFJlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBrZXlmcmFtZUFuaW0g
PSBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjcmVhdGUoUGxhdGZvcm1DQUFuaW1hdGlvbjo6S2V5ZnJh
bWUsIGtleVBhdGgpOworICAgIFJlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBrZXlmcmFtZUFu
aW0gPSBjcmVhdGVQbGF0Zm9ybUNBQW5pbWF0aW9uKFBsYXRmb3JtQ0FBbmltYXRpb246OktleWZy
YW1lLCBrZXlQYXRoKTsKICAgICBzZXR1cEFuaW1hdGlvbihrZXlmcmFtZUFuaW0uZ2V0KCksIGFu
aW0sIGFkZGl0aXZlKTsKICAgICByZXR1cm4ga2V5ZnJhbWVBbmltOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAppbmRl
eCAyYTQzZDFmYzU4YjU0MTBjZjg5NThmMzA2MDY4ODg3YmRmZDdmYjBmLi41NDBlNGQzYTljZWM1
OTIxM2ExNjNmNTBjYjVkZWZiMDNkYTNkZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaApAQCAtMjcsNyArMjcsNiBA
QAogI2RlZmluZSBHcmFwaGljc0xheWVyQ0FfaAogCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5o
IgotI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUFuaW1hdGlvbi5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllckNs
aWVudC5oIgpAQCAtNDIsNiArNDEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IEltYWdlOwogY2xhc3MgVHJhbnNmb3JtU3RhdGU7CiAKIGNsYXNzIEdyYXBoaWNzTGF5ZXJDQSA6
IHB1YmxpYyBHcmFwaGljc0xheWVyLCBwdWJsaWMgUGxhdGZvcm1DQUxheWVyQ2xpZW50IHsKQEAg
LTE3MCw2ICsxNzAsOCBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQg
c2V0T3BhY2l0eUludGVybmFsKGZsb2F0KTsKKyAgICAKKyAgICBib29sIGFuaW1hdGlvbkNhbkJl
QWNjZWxlcmF0ZWQoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBBbmltYXRpb24qKSBj
b25zdDsKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNHcmFwaGljc0xheWVyQ0EoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CkBAIC0yMTIsNiArMjE0LDcgQEAgcHJpdmF0ZToKIAogICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IGNyZWF0ZVBsYXRmb3JtQ0FMYXll
cihQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25l
cik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gY3JlYXRlUGxhdGZv
cm1DQUxheWVyKFBsYXRmb3JtTGF5ZXIqLCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyKTsK
KyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY3JlYXRlUGxhdGZv
cm1DQUFuaW1hdGlvbihQbGF0Zm9ybUNBQW5pbWF0aW9uOjpBbmltYXRpb25UeXBlLCBjb25zdCBT
dHJpbmcmIGtleVBhdGgpOwogCiAgICAgUGxhdGZvcm1DQUxheWVyKiBwcmltYXJ5TGF5ZXIoKSBj
b25zdCB7IHJldHVybiBtX3N0cnVjdHVyYWxMYXllci5nZXQoKSA/IG1fc3RydWN0dXJhbExheWVy
LmdldCgpIDogbV9sYXllci5nZXQoKTsgfQogICAgIFBsYXRmb3JtQ0FMYXllciogaG9zdExheWVy
Rm9yU3VibGF5ZXJzKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmgKaW5kZXggMjYwNDgxY2MzODNm
OTljNmNkYmU5MjI4MzI5NWMwOWMzN2E1MzllYS4uMDViNDMwYWNjMjU0ZGFmNjI3ODRiMTk4YjNj
OGRhNWRiNGU5MzZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmltYXRpb24uaApAQCAtMzEsMTM2ICszMSwxMTkgQEAK
ICNpbmNsdWRlICJGbG9hdFBvaW50M0QuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJp
eC5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAotI2lmIFBMQVRGT1JNKENPQ09BKQotT0JK
Q19DTEFTUyBDQVByb3BlcnR5QW5pbWF0aW9uOwotdHlwZWRlZiBDQVByb3BlcnR5QW5pbWF0aW9u
KiBQbGF0Zm9ybUFuaW1hdGlvblJlZjsKLSNlbGlmIFBMQVRGT1JNKFdJTikKLXR5cGVkZWYgc3Ry
dWN0IF9DQUNGQW5pbWF0aW9uKiBDQUNGQW5pbWF0aW9uUmVmOwotdHlwZWRlZiBDQUNGQW5pbWF0
aW9uUmVmIFBsYXRmb3JtQW5pbWF0aW9uUmVmOwotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgRmxvYXRSZWN0OwotY2xhc3MgUGxhdGZvcm1DQUFuaW1hdGlvbjsKIGNsYXNz
IFRpbWluZ0Z1bmN0aW9uOwogCiBjbGFzcyBQbGF0Zm9ybUNBQW5pbWF0aW9uIDogcHVibGljIFJl
ZkNvdW50ZWQ8UGxhdGZvcm1DQUFuaW1hdGlvbj4gewogcHVibGljOgotICAgIGZyaWVuZCBjbGFz
cyBQbGF0Zm9ybUNBTGF5ZXI7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgZnJpZW5kIGNsYXNz
IFBsYXRmb3JtQ0FMYXllck1hYzsKLSNlbGlmIFBMQVRGT1JNKFdJTikKLSAgICBmcmllbmQgY2xh
c3MgUGxhdGZvcm1DQUxheWVyV2luOwotI2VuZGlmCi0gICAgCiAgICAgZW51bSBBbmltYXRpb25U
eXBlIHsgQmFzaWMsIEtleWZyYW1lIH07CiAgICAgZW51bSBGaWxsTW9kZVR5cGUgeyBOb0ZpbGxN
b2RlLCBGb3J3YXJkcywgQmFja3dhcmRzLCBCb3RoIH07CiAgICAgZW51bSBWYWx1ZUZ1bmN0aW9u
VHlwZSB7IE5vVmFsdWVGdW5jdGlvbiwgUm90YXRlWCwgUm90YXRlWSwgUm90YXRlWiwgU2NhbGVY
LCBTY2FsZVksIFNjYWxlWiwgU2NhbGUsIFRyYW5zbGF0ZVgsIFRyYW5zbGF0ZVksIFRyYW5zbGF0
ZVosIFRyYW5zbGF0ZSB9OwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1h
dGlvbj4gY3JlYXRlKEFuaW1hdGlvblR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCk7Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY3JlYXRlKFBsYXRmb3JtQW5p
bWF0aW9uUmVmKTsKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybUNBQW5pbWF0aW9uKCkgeyB9CiAKLSAg
ICB+UGxhdGZvcm1DQUFuaW1hdGlvbigpOworICAgIHZpcnR1YWwgYm9vbCBpc1BsYXRmb3JtQ0FB
bmltYXRpb25NYWMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBp
c1BsYXRmb3JtQ0FBbmltYXRpb25XaW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBpc1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIAotICAgIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY29weSgp
IGNvbnN0OwotCi0gICAgUGxhdGZvcm1BbmltYXRpb25SZWYgcGxhdGZvcm1BbmltYXRpb24oKSBj
b25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY29weSgp
IGNvbnN0ID0gMDsKICAgICAKICAgICBBbmltYXRpb25UeXBlIGFuaW1hdGlvblR5cGUoKSBjb25z
dCB7IHJldHVybiBtX3R5cGU7IH0KLSAgICBTdHJpbmcga2V5UGF0aCgpIGNvbnN0OworICAgIHZp
cnR1YWwgU3RyaW5nIGtleVBhdGgoKSBjb25zdCA9IDA7CiAgICAgCi0gICAgQ0ZUaW1lSW50ZXJ2
YWwgYmVnaW5UaW1lKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRCZWdpblRpbWUoQ0ZUaW1lSW50ZXJ2
YWwpOworICAgIHZpcnR1YWwgQ0ZUaW1lSW50ZXJ2YWwgYmVnaW5UaW1lKCkgY29uc3QgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRCZWdpblRpbWUoQ0ZUaW1lSW50ZXJ2YWwpID0gMDsKICAgICAK
LSAgICBDRlRpbWVJbnRlcnZhbCBkdXJhdGlvbigpIGNvbnN0OwotICAgIHZvaWQgc2V0RHVyYXRp
b24oQ0ZUaW1lSW50ZXJ2YWwpOworICAgIHZpcnR1YWwgQ0ZUaW1lSW50ZXJ2YWwgZHVyYXRpb24o
KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldER1cmF0aW9uKENGVGltZUludGVydmFs
KSA9IDA7CiAgICAgCi0gICAgZmxvYXQgc3BlZWQoKSBjb25zdDsKLSAgICB2b2lkIHNldFNwZWVk
KGZsb2F0KTsKKyAgICB2aXJ0dWFsIGZsb2F0IHNwZWVkKCkgY29uc3QgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzZXRTcGVlZChmbG9hdCkgPSAwOwogCi0gICAgQ0ZUaW1lSW50ZXJ2YWwgdGltZU9m
ZnNldCgpIGNvbnN0OwotICAgIHZvaWQgc2V0VGltZU9mZnNldChDRlRpbWVJbnRlcnZhbCk7Cisg
ICAgdmlydHVhbCBDRlRpbWVJbnRlcnZhbCB0aW1lT2Zmc2V0KCkgY29uc3QgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBzZXRUaW1lT2Zmc2V0KENGVGltZUludGVydmFsKSA9IDA7CiAKLSAgICBmbG9h
dCByZXBlYXRDb3VudCgpIGNvbnN0OwotICAgIHZvaWQgc2V0UmVwZWF0Q291bnQoZmxvYXQpOwor
ICAgIHZpcnR1YWwgZmxvYXQgcmVwZWF0Q291bnQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHNldFJlcGVhdENvdW50KGZsb2F0KSA9IDA7CiAKLSAgICBib29sIGF1dG9yZXZlcnNlcygp
IGNvbnN0OwotICAgIHZvaWQgc2V0QXV0b3JldmVyc2VzKGJvb2wpOworICAgIHZpcnR1YWwgYm9v
bCBhdXRvcmV2ZXJzZXMoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEF1dG9yZXZl
cnNlcyhib29sKSA9IDA7CiAKLSAgICBGaWxsTW9kZVR5cGUgZmlsbE1vZGUoKSBjb25zdDsKLSAg
ICB2b2lkIHNldEZpbGxNb2RlKEZpbGxNb2RlVHlwZSk7CisgICAgdmlydHVhbCBGaWxsTW9kZVR5
cGUgZmlsbE1vZGUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEZpbGxNb2RlKEZp
bGxNb2RlVHlwZSkgPSAwOwogICAgIAotICAgIHZvaWQgc2V0VGltaW5nRnVuY3Rpb24oY29uc3Qg
VGltaW5nRnVuY3Rpb24qLCBib29sIHJldmVyc2UgPSBmYWxzZSk7Ci0gICAgdm9pZCBjb3B5VGlt
aW5nRnVuY3Rpb25Gcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qKTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0VGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24qLCBib29sIHJldmVy
c2UgPSBmYWxzZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb3B5VGltaW5nRnVuY3Rpb25Gcm9t
KGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qKSA9IDA7CiAKLSAgICBib29sIGlzUmVtb3ZlZE9u
Q29tcGxldGlvbigpIGNvbnN0OwotICAgIHZvaWQgc2V0UmVtb3ZlZE9uQ29tcGxldGlvbihib29s
KTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW1vdmVkT25Db21wbGV0aW9uKCkgY29uc3QgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRSZW1vdmVkT25Db21wbGV0aW9uKGJvb2wpID0gMDsKIAotICAg
IGJvb2wgaXNBZGRpdGl2ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0QWRkaXRpdmUoYm9vbCk7Cisg
ICAgdmlydHVhbCBib29sIGlzQWRkaXRpdmUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHNldEFkZGl0aXZlKGJvb2wpID0gMDsKIAotICAgIFZhbHVlRnVuY3Rpb25UeXBlIHZhbHVlRnVu
Y3Rpb24oKSBjb25zdDsKLSAgICB2b2lkIHNldFZhbHVlRnVuY3Rpb24oVmFsdWVGdW5jdGlvblR5
cGUpOworICAgIHZpcnR1YWwgVmFsdWVGdW5jdGlvblR5cGUgdmFsdWVGdW5jdGlvbigpIGNvbnN0
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVGdW5jdGlvbihWYWx1ZUZ1bmN0aW9uVHlw
ZSkgPSAwOwogCiAgICAgLy8gQmFzaWMtYW5pbWF0aW9uIHByb3BlcnRpZXMuCi0gICAgdm9pZCBz
ZXRGcm9tVmFsdWUoZmxvYXQpOwotICAgIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4Jik7Ci0gICAgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgRmxv
YXRQb2ludDNEJik7Ci0gICAgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6Q29sb3Im
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGZsb2F0KSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9y
JikgPSAwOwogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSAgICB2b2lkIHNldEZyb21WYWx1ZShj
b25zdCBGaWx0ZXJPcGVyYXRpb24qLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0IEZpbHRlck9wZXJhdGlvbiosIGlu
dCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpID0gMDsKICNlbmRpZgotICAgIHZvaWQgY29w
eUZyb21WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopOworICAgIHZpcnR1YWwg
dm9pZCBjb3B5RnJvbVZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgPSAwOwog
Ci0gICAgdm9pZCBzZXRUb1ZhbHVlKGZsb2F0KTsKLSAgICB2b2lkIHNldFRvVmFsdWUoY29uc3Qg
V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKLSAgICB2b2lkIHNldFRvVmFsdWUoY29u
c3QgRmxvYXRQb2ludDNEJik7Ci0gICAgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OkNv
bG9yJik7CisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoZmxvYXQpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSA9
IDA7CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQotICAgIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBG
aWx0ZXJPcGVyYXRpb24qLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBGaWx0ZXJPcGVyYXRpb24qLCBpbnQgaW50ZXJu
YWxGaWx0ZXJQcm9wZXJ0eUluZGV4KSA9IDA7CiAjZW5kaWYKLSAgICB2b2lkIGNvcHlUb1ZhbHVl
RnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKik7CisgICAgdmlydHVhbCB2b2lkIGNvcHlU
b1ZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgPSAwOwogCiAgICAgLy8gS2V5
ZnJhbWUtYW5pbWF0aW9uIHByb3BlcnRpZXMuCi0gICAgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVj
dG9yPGZsb2F0PiYpOwotICAgIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpU
cmFuc2Zvcm1hdGlvbk1hdHJpeD4mKTsKLSAgICB2b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8
RmxvYXRQb2ludDNEPiYpOwotICAgIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpDb2xvcj4mKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxmbG9h
dD4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg+JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1
ZXMoY29uc3QgVmVjdG9yPEZsb2F0UG9pbnQzRD4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNl
dFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+JikgPSAwOwogI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKLSAgICB2b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8UmVmUHRyPEZpbHRl
ck9wZXJhdGlvbj4+JiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCk7CisgICAgdmly
dHVhbCB2b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4+
JiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgPSAwOwogI2VuZGlmCi0gICAgdm9p
ZCBjb3B5VmFsdWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKik7Ci0KLSAgICB2b2lk
IHNldEtleVRpbWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mKTsKLSAgICB2b2lkIGNvcHlLZXlUaW1l
c0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopOworICAgIHZpcnR1YWwgdm9pZCBjb3B5
VmFsdWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgPSAwOwogCi0gICAgdm9pZCBz
ZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4mLCBi
b29sIHJldmVyc2UgPSBmYWxzZSk7Ci0gICAgdm9pZCBjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShj
b25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKik7CisgICAgdmlydHVhbCB2b2lkIHNldEtleVRpbWVz
KGNvbnN0IFZlY3RvcjxmbG9hdD4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvcHlLZXlUaW1l
c0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopID0gMDsKIAotcHJvdGVjdGVkOgotICAg
IFBsYXRmb3JtQ0FBbmltYXRpb24oQW5pbWF0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRo
KTsKLSAgICBQbGF0Zm9ybUNBQW5pbWF0aW9uKFBsYXRmb3JtQW5pbWF0aW9uUmVmKTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0VGltaW5nRnVuY3Rpb25zKGNvbnN0IFZlY3Rvcjxjb25zdCBUaW1pbmdG
dW5jdGlvbio+JiwgYm9vbCByZXZlcnNlID0gZmFsc2UpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
Y29weVRpbWluZ0Z1bmN0aW9uc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopID0gMDsK
IAogICAgIHZvaWQgc2V0QWN0dWFsU3RhcnRUaW1lSWZOZWVkZWQoQ0ZUaW1lSW50ZXJ2YWwgdCkK
ICAgICB7CiAgICAgICAgIGlmIChiZWdpblRpbWUoKSA8PSAwKQogICAgICAgICAgICAgc2V0QmVn
aW5UaW1lKHQpOwogICAgIH0KKyAgICAKK3Byb3RlY3RlZDoKKyAgICBQbGF0Zm9ybUNBQW5pbWF0
aW9uKEFuaW1hdGlvblR5cGUgdHlwZSA9IEJhc2ljKQorICAgICAgICA6IG1fdHlwZSh0eXBlKQor
ICAgIHsKKyAgICB9CisKKyAgICB2b2lkIHNldFR5cGUoQW5pbWF0aW9uVHlwZSB0eXBlKSB7IG1f
dHlwZSA9IHR5cGU7IH0KIAogcHJpdmF0ZToKICAgICBBbmltYXRpb25UeXBlIG1fdHlwZTsKLSAg
ICAKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBSZXRhaW5QdHI8Q0FQcm9wZXJ0eUFuaW1hdGlv
bj4gbV9hbmltYXRpb247Ci0jZWxpZiBQTEFURk9STShXSU4pCi0gICAgUmV0YWluUHRyPENBQ0ZB
bmltYXRpb25SZWY+IG1fYW5pbWF0aW9uOwotI2VuZGlmCiB9OwogCisjZGVmaW5lIFBMQVRGT1JN
X0NBQU5JTUFUSU9OX1RZUEVfQ0FTVFMoVG9WYWx1ZVR5cGVOYW1lLCBwcmVkaWNhdGUpIFwKKyAg
ICBUWVBFX0NBU1RTX0JBU0UoVG9WYWx1ZVR5cGVOYW1lLCBXZWJDb3JlOjpQbGF0Zm9ybUNBQW5p
bWF0aW9uLCBvYmplY3QsIG9iamVjdC0+cHJlZGljYXRlLCBvYmplY3QucHJlZGljYXRlKQorCiB9
CiAKICNlbmRpZiAvLyBQbGF0Zm9ybUNBQW5pbWF0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKaW5kZXggODFkYjcx
MjE2YjNmZTYxMTFiYjYzYzM2N2U4MDNhMDFkYTcwYTQ1OC4uMWUwMDY4MzA0MTY2ZTU1NzE0ZGUy
Y2YyYzA0ODhmZWRmNDI5MDhmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKQEAgLTI2LDkgKzI2LDcgQEAKICNpZm5k
ZWYgUGxhdGZvcm1DQUxheWVyX2gKICNkZWZpbmUgUGxhdGZvcm1DQUxheWVyX2gKIAotI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKLSNpbmNs
dWRlICJQbGF0Zm9ybUNBQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVyQ2xp
ZW50LmgiCiAjaW5jbHVkZSA8UXVhcnR6Q29yZS9DQUJhc2UuaD4KICNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KQEAgLTQyLDkgKzQwLDE0IEBACiAKIE9CSkNfQ0xBU1MgQVZQbGF5ZXJMYXll
cjsKIAorI2lmIFBMQVRGT1JNKENPQ09BKQordHlwZWRlZiBzdHJ1Y3QgQ0dDb250ZXh0ICpDR0Nv
bnRleHRSZWY7CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBQbGF0Zm9y
bUNBTGF5ZXI7CitjbGFzcyBQbGF0Zm9ybUNBQW5pbWF0aW9uOwogCiB0eXBlZGVmIFZlY3RvcjxS
ZWZQdHI8UGxhdGZvcm1DQUxheWVyPj4gUGxhdGZvcm1DQUxheWVyTGlzdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmlt
YXRpb25NYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0
Zm9ybUNBQW5pbWF0aW9uTWFjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzQwY2E3MmNhNDUyYmE5NDM5YTMyNWE3
OWZiMWNmYjE1Y2U5Y2E1NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLmgKQEAgLTAsMCArMSwx
MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjX2gKKyNkZWZpbmUgUGxhdGZvcm1DQUFuaW1hdGlv
bk1hY19oCisKKyNpbmNsdWRlICJQbGF0Zm9ybUNBQW5pbWF0aW9uLmgiCisjaW5jbHVkZSA8d3Rm
L1JldGFpblB0ci5oPgorCitPQkpDX0NMQVNTIENBUHJvcGVydHlBbmltYXRpb247CitPQkpDX0NM
QVNTIE5TU3RyaW5nOworT0JKQ19DTEFTUyBDQU1lZGlhVGltaW5nRnVuY3Rpb247Cit0eXBlZGVm
IENBUHJvcGVydHlBbmltYXRpb24qIFBsYXRmb3JtQW5pbWF0aW9uUmVmOworCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK05TU3RyaW5nKiB0b0NBRmlsbE1vZGVUeXBlKFBsYXRmb3JtQ0FBbmltYXRp
b246OkZpbGxNb2RlVHlwZSk7CitOU1N0cmluZyogdG9DQVZhbHVlRnVuY3Rpb25UeXBlKFBsYXRm
b3JtQ0FBbmltYXRpb246OlZhbHVlRnVuY3Rpb25UeXBlKTsKK0NBTWVkaWFUaW1pbmdGdW5jdGlv
biogdG9DQU1lZGlhVGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24qLCBib29sIHJl
dmVyc2UpOworCitjbGFzcyBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjIGZpbmFsIDogcHVibGljIFBs
YXRmb3JtQ0FBbmltYXRpb24geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsYXRm
b3JtQ0FBbmltYXRpb24+IGNyZWF0ZShBbmltYXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGtleVBh
dGgpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGNyZWF0ZShQ
bGF0Zm9ybUFuaW1hdGlvblJlZik7CisKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybUNBQW5pbWF0aW9u
TWFjKCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBs
YXRmb3JtQ0FBbmltYXRpb24+IGNvcHkoKSBjb25zdCBvdmVycmlkZTsKKworICAgIFBsYXRmb3Jt
QW5pbWF0aW9uUmVmIHBsYXRmb3JtQW5pbWF0aW9uKCkgY29uc3Q7CisgICAgCisgICAgdmlydHVh
bCBTdHJpbmcga2V5UGF0aCgpIGNvbnN0IG92ZXJyaWRlOworICAgIAorICAgIHZpcnR1YWwgQ0ZU
aW1lSW50ZXJ2YWwgYmVnaW5UaW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHNldEJlZ2luVGltZShDRlRpbWVJbnRlcnZhbCkgb3ZlcnJpZGU7CisgICAgCisgICAgdmlydHVh
bCBDRlRpbWVJbnRlcnZhbCBkdXJhdGlvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzZXREdXJhdGlvbihDRlRpbWVJbnRlcnZhbCkgb3ZlcnJpZGU7CisgICAgCisgICAgdmly
dHVhbCBmbG9hdCBzcGVlZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRT
cGVlZChmbG9hdCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIENGVGltZUludGVydmFsIHRpbWVP
ZmZzZXQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGltZU9mZnNldChD
RlRpbWVJbnRlcnZhbCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIGZsb2F0IHJlcGVhdENvdW50
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFJlcGVhdENvdW50KGZsb2F0
KSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgYm9vbCBhdXRvcmV2ZXJzZXMoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QXV0b3JldmVyc2VzKGJvb2wpIG92ZXJyaWRlOwor
CisgICAgdmlydHVhbCBGaWxsTW9kZVR5cGUgZmlsbE1vZGUoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0RmlsbE1vZGUoRmlsbE1vZGVUeXBlKSBvdmVycmlkZTsKKyAgICAK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0VGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24q
LCBib29sIHJldmVyc2UgPSBmYWxzZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBjb3B5VGltaW5nRnVu
Y3Rpb25Gcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKKworICAgIHZp
cnR1YWwgYm9vbCBpc1JlbW92ZWRPbkNvbXBsZXRpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0UmVtb3ZlZE9uQ29tcGxldGlvbihib29sKSBvdmVycmlkZTsKKworICAg
IHZpcnR1YWwgYm9vbCBpc0FkZGl0aXZlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHNldEFkZGl0aXZlKGJvb2wpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBWYWx1ZUZ1bmN0
aW9uVHlwZSB2YWx1ZUZ1bmN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHNldFZhbHVlRnVuY3Rpb24oVmFsdWVGdW5jdGlvblR5cGUpIG92ZXJyaWRlOworCisgICAgLy8g
QmFzaWMtYW5pbWF0aW9uIHByb3BlcnRpZXMuCisgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1
ZShmbG9hdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShjb25zdCBX
ZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRGcm9tVmFsdWUoY29uc3QgRmxvYXRQb2ludDNEJikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYpIG92ZXJyaWRlOworI2lm
IEVOQUJMRShDU1NfRklMVEVSUykKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbVZhbHVlKGNvbnN0
IEZpbHRlck9wZXJhdGlvbiosIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpIG92ZXJy
aWRlOworI2VuZGlmCisgICAgdmlydHVhbCB2b2lkIGNvcHlGcm9tVmFsdWVGcm9tKGNvbnN0IFBs
YXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRUb1Zh
bHVlKGZsb2F0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBX
ZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRUb1ZhbHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgb3ZlcnJpZGU7CisjaWYgRU5B
QkxFKENTU19GSUxURVJTKQorICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IEZpbHRl
ck9wZXJhdGlvbiosIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpIG92ZXJyaWRlOwor
I2VuZGlmCisgICAgdmlydHVhbCB2b2lkIGNvcHlUb1ZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNB
QW5pbWF0aW9uKikgb3ZlcnJpZGU7CisKKyAgICAvLyBLZXlmcmFtZS1hbmltYXRpb24gcHJvcGVy
dGllcy4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpUcmFuc2Zvcm1hdGlvbk1hdHJpeD4mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
VmFsdWVzKGNvbnN0IFZlY3RvcjxGbG9hdFBvaW50M0Q+Jikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+Jikgb3ZlcnJpZGU7
CisjaWYgRU5BQkxFKENTU19GSUxURVJTKQorICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZXMoY29u
c3QgVmVjdG9yPFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+PiYsIGludCBpbnRlcm5hbEZpbHRlclBy
b3BlcnR5SW5kZXgpIG92ZXJyaWRlOworI2VuZGlmCisgICAgdmlydHVhbCB2b2lkIGNvcHlWYWx1
ZXNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKKworICAgIHZpcnR1
YWwgdm9pZCBzZXRLZXlUaW1lcyhjb25zdCBWZWN0b3I8ZmxvYXQ+Jikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGNvcHlLZXlUaW1lc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiop
IG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIHNldFRpbWluZ0Z1bmN0aW9ucyhjb25zdCBW
ZWN0b3I8Y29uc3QgVGltaW5nRnVuY3Rpb24qPiYsIGJvb2wgcmV2ZXJzZSA9IGZhbHNlKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29weVRpbWluZ0Z1bmN0aW9uc0Zyb20oY29uc3QgUGxh
dGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOworCitwcm90ZWN0ZWQ6CisgICAgUGxhdGZvcm1D
QUFuaW1hdGlvbk1hYyhBbmltYXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGtleVBhdGgpOworICAg
IFBsYXRmb3JtQ0FBbmltYXRpb25NYWMoUGxhdGZvcm1BbmltYXRpb25SZWYpOworCitwcml2YXRl
OgorICAgIFJldGFpblB0cjxDQVByb3BlcnR5QW5pbWF0aW9uPiBtX2FuaW1hdGlvbjsKK307CisK
K1BMQVRGT1JNX0NBQU5JTUFUSU9OX1RZUEVfQ0FTVFMoUGxhdGZvcm1DQUFuaW1hdGlvbk1hYywg
aXNQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKCkpCisKK30KKworI2VuZGlmIC8vIFBsYXRmb3JtQ0FB
bmltYXRpb25NYWNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5tbQppbmRleCBjMDdj
N2FjNjIxNzM5YWIzYjQzM2U1MDVkOTQ5ZTM5Y2M4NTc0YTEzLi4yZWEyODZhZjAxNGY1NjY4MWJi
MmRjYWYxZTZjN2UyMmFlZDQzY2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5t
bQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjUs
NyArMjUsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpbXBvcnQgIlBsYXRmb3JtQ0FB
bmltYXRpb24uaCIKKyNpbXBvcnQgIlBsYXRmb3JtQ0FBbmltYXRpb25NYWMuaCIKIAogI2ltcG9y
dCAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybUNBRmlsdGVycy5oIgpAQCAt
NDAsMTUgKzQwLDE1IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IFdLTm9uWmVyb0JlZ2luVGlt
ZUZsYWcgPSBAIldLUGxhdGZvcm1DQUFuaW1hdGlvbk5vblplcm9CCiAKIHN0YXRpYyBib29sIGhh
c05vblplcm9CZWdpblRpbWVGbGFnKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIGFuaW1hdGlv
bikKIHsKLSAgICByZXR1cm4gW1thbmltYXRpb24tPnBsYXRmb3JtQW5pbWF0aW9uKCkgdmFsdWVG
b3JLZXk6V0tOb25aZXJvQmVnaW5UaW1lRmxhZ10gYm9vbFZhbHVlXTsKKyAgICByZXR1cm4gW1t0
b1BsYXRmb3JtQ0FBbmltYXRpb25NYWMoYW5pbWF0aW9uKS0+cGxhdGZvcm1BbmltYXRpb24oKSB2
YWx1ZUZvcktleTpXS05vblplcm9CZWdpblRpbWVGbGFnXSBib29sVmFsdWVdOwogfQogCiBzdGF0
aWMgdm9pZCBzZXROb25aZXJvQmVnaW5UaW1lRmxhZyhQbGF0Zm9ybUNBQW5pbWF0aW9uKiBhbmlt
YXRpb24sIGJvb2wgdmFsdWUpCiB7Ci0gICAgW2FuaW1hdGlvbi0+cGxhdGZvcm1BbmltYXRpb24o
KSBzZXRWYWx1ZTpbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6dmFsdWVdIGZvcktleTpXS05vblpl
cm9CZWdpblRpbWVGbGFnXTsKKyAgICBbdG9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKGFuaW1hdGlv
biktPnBsYXRmb3JtQW5pbWF0aW9uKCkgc2V0VmFsdWU6W05TTnVtYmVyIG51bWJlcldpdGhCb29s
OnZhbHVlXSBmb3JLZXk6V0tOb25aZXJvQmVnaW5UaW1lRmxhZ107CiB9CiAgICAgCi1zdGF0aWMg
TlNTdHJpbmcqIHRvQ0FGaWxsTW9kZVR5cGUoUGxhdGZvcm1DQUFuaW1hdGlvbjo6RmlsbE1vZGVU
eXBlIHR5cGUpCitOU1N0cmluZyogV2ViQ29yZTo6dG9DQUZpbGxNb2RlVHlwZShQbGF0Zm9ybUNB
QW5pbWF0aW9uOjpGaWxsTW9kZVR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAg
ICBjYXNlIFBsYXRmb3JtQ0FBbmltYXRpb246Ok5vRmlsbE1vZGU6CkBAIC03MCw3ICs3MCw3IEBA
IHN0YXRpYyBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpGaWxsTW9kZVR5cGUgZnJvbUNBRmlsbE1vZGVU
eXBlKE5TU3RyaW5nKiBzdHJpbmcpCiAgICAgcmV0dXJuIFBsYXRmb3JtQ0FBbmltYXRpb246OkZv
cndhcmRzOwogfQogCi1zdGF0aWMgTlNTdHJpbmcqIHRvQ0FWYWx1ZUZ1bmN0aW9uVHlwZShQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpWYWx1ZUZ1bmN0aW9uVHlwZSB0eXBlKQorTlNTdHJpbmcqIFdlYkNv
cmU6OnRvQ0FWYWx1ZUZ1bmN0aW9uVHlwZShQbGF0Zm9ybUNBQW5pbWF0aW9uOjpWYWx1ZUZ1bmN0
aW9uVHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgUGxhdGZvcm1D
QUFuaW1hdGlvbjo6Tm9WYWx1ZUZ1bmN0aW9uOiByZXR1cm4gQCIiOwpAQCAtMTI3LDcgKzEyNyw3
IEBAIHN0YXRpYyBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpWYWx1ZUZ1bmN0aW9uVHlwZSBmcm9tQ0FW
YWx1ZUZ1bmN0aW9uVHlwZShOU1N0cmluZyoKICAgICByZXR1cm4gUGxhdGZvcm1DQUFuaW1hdGlv
bjo6Tm9WYWx1ZUZ1bmN0aW9uOwogfQogCi1zdGF0aWMgQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uKiB0
b0NBTWVkaWFUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rp
b24sIGJvb2wgcmV2ZXJzZSkKK0NBTWVkaWFUaW1pbmdGdW5jdGlvbiogV2ViQ29yZTo6dG9DQU1l
ZGlhVGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uLCBi
b29sIHJldmVyc2UpCiB7CiAgICAgQVNTRVJUKHRpbWluZ0Z1bmN0aW9uKTsKICAgICBpZiAodGlt
aW5nRnVuY3Rpb24tPmlzQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbigpKSB7CkBAIC0xNDYsMjEg
KzE0NiwyMiBAQCBzdGF0aWMgQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uKiB0b0NBTWVkaWFUaW1pbmdG
dW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaQogICAgICAgICByZXR1cm4gW0NBTWVk
aWFUaW1pbmdGdW5jdGlvbiBmdW5jdGlvbldpdGhDb250cm9sUG9pbnRzOiB4MSA6IHkxIDogeDIg
OiB5Ml07CiAgICAgfQogICAgIAorICAgIEFTU0VSVCh0aW1pbmdGdW5jdGlvbi0+dHlwZSgpID09
IFRpbWluZ0Z1bmN0aW9uOjpMaW5lYXJGdW5jdGlvbik7CiAgICAgcmV0dXJuIFtDQU1lZGlhVGlt
aW5nRnVuY3Rpb24gZnVuY3Rpb25XaXRoTmFtZTprQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uTGluZWFy
XTsKIH0KIAotUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5pbWF0
aW9uOjpjcmVhdGUoQW5pbWF0aW9uVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIGtleVBhdGgpCitQ
YXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OmNy
ZWF0ZShBbmltYXRpb25UeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFBsYXRmb3JtQ0FBbmltYXRpb24odHlwZSwga2V5UGF0aCkpOwor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYyh0eXBlLCBrZXlQ
YXRoKSk7CiB9CiAKLVBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUFu
aW1hdGlvbjo6Y3JlYXRlKFBsYXRmb3JtQW5pbWF0aW9uUmVmIGFuaW1hdGlvbikKK1Bhc3NSZWZQ
dHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6Y3JlYXRlKFBs
YXRmb3JtQW5pbWF0aW9uUmVmIGFuaW1hdGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFBsYXRmb3JtQ0FBbmltYXRpb24oYW5pbWF0aW9uKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKGFuaW1hdGlvbikpOwogfQogCi1QbGF0Zm9ybUNBQW5p
bWF0aW9uOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKEFuaW1hdGlvblR5cGUgdHlwZSwgY29uc3QgU3Ry
aW5nJiBrZXlQYXRoKQotICAgIDogbV90eXBlKHR5cGUpCitQbGF0Zm9ybUNBQW5pbWF0aW9uTWFj
OjpQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKEFuaW1hdGlvblR5cGUgdHlwZSwgY29uc3QgU3RyaW5n
JiBrZXlQYXRoKQorICAgIDogUGxhdGZvcm1DQUFuaW1hdGlvbih0eXBlKQogewogICAgIGlmICh0
eXBlID09IEJhc2ljKQogICAgICAgICBtX2FuaW1hdGlvbiA9IFtDQUJhc2ljQW5pbWF0aW9uIGFu
aW1hdGlvbldpdGhLZXlQYXRoOmtleVBhdGhdOwpAQCAtMTY4LDEyICsxNjksMTIgQEAgUGxhdGZv
cm1DQUFuaW1hdGlvbjo6UGxhdGZvcm1DQUFuaW1hdGlvbihBbmltYXRpb25UeXBlIHR5cGUsIGNv
bnN0IFN0cmluZyYga2V5UGEKICAgICAgICAgbV9hbmltYXRpb24gPSBbQ0FLZXlmcmFtZUFuaW1h
dGlvbiBhbmltYXRpb25XaXRoS2V5UGF0aDprZXlQYXRoXTsKIH0KIAotUGxhdGZvcm1DQUFuaW1h
dGlvbjo6UGxhdGZvcm1DQUFuaW1hdGlvbihQbGF0Zm9ybUFuaW1hdGlvblJlZiBhbmltYXRpb24p
CitQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKFBsYXRmb3Jt
QW5pbWF0aW9uUmVmIGFuaW1hdGlvbikKIHsKICAgICBpZiAoW3N0YXRpY19jYXN0PENBQW5pbWF0
aW9uKj4oYW5pbWF0aW9uKSBpc0tpbmRPZkNsYXNzOltDQUJhc2ljQW5pbWF0aW9uIGNsYXNzXV0p
Ci0gICAgICAgIG1fdHlwZSA9IEJhc2ljOworICAgICAgICBzZXRUeXBlKEJhc2ljKTsKICAgICBl
bHNlIGlmIChbc3RhdGljX2Nhc3Q8Q0FBbmltYXRpb24qPihhbmltYXRpb24pIGlzS2luZE9mQ2xh
c3M6W0NBS2V5ZnJhbWVBbmltYXRpb24gY2xhc3NdXSkKLSAgICAgICAgbV90eXBlID0gS2V5ZnJh
bWU7CisgICAgICAgIHNldFR5cGUoS2V5ZnJhbWUpOwogICAgIGVsc2UgewogICAgICAgICBBU1NF
UlQoMCk7CiAgICAgICAgIHJldHVybjsKQEAgLTE4Miw3ICsxODMsMTEgQEAgUGxhdGZvcm1DQUFu
aW1hdGlvbjo6UGxhdGZvcm1DQUFuaW1hdGlvbihQbGF0Zm9ybUFuaW1hdGlvblJlZiBhbmltYXRp
b24pCiAgICAgbV9hbmltYXRpb24gPSBzdGF0aWNfY2FzdDxDQVByb3BlcnR5QW5pbWF0aW9uKj4o
YW5pbWF0aW9uKTsKIH0KIAotUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpjb3B5KCkgY29uc3QKK1BsYXRmb3JtQ0FBbmltYXRpb25NYWM6On5QbGF0
Zm9ybUNBQW5pbWF0aW9uTWFjKCkKK3sKK30KKworUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0
aW9uPiBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpjb3B5KCkgY29uc3QKIHsKICAgICBSZWZQdHI8
UGxhdGZvcm1DQUFuaW1hdGlvbj4gYW5pbWF0aW9uID0gY3JlYXRlKGFuaW1hdGlvblR5cGUoKSwg
a2V5UGF0aCgpKTsKICAgICAKQEAgLTIxMiwyNiArMjE3LDIzIEBAIFBhc3NSZWZQdHI8UGxhdGZv
cm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weSgpIGNvbnN0CiAgICAgCiAg
ICAgcmV0dXJuIGFuaW1hdGlvbjsKIH0KLVBsYXRmb3JtQ0FBbmltYXRpb246On5QbGF0Zm9ybUNB
QW5pbWF0aW9uKCkKLXsKLX0KIAotUGxhdGZvcm1BbmltYXRpb25SZWYgUGxhdGZvcm1DQUFuaW1h
dGlvbjo6cGxhdGZvcm1BbmltYXRpb24oKSBjb25zdAorUGxhdGZvcm1BbmltYXRpb25SZWYgUGxh
dGZvcm1DQUFuaW1hdGlvbk1hYzo6cGxhdGZvcm1BbmltYXRpb24oKSBjb25zdAogewogICAgIHJl
dHVybiBtX2FuaW1hdGlvbi5nZXQoKTsKIH0KIAotU3RyaW5nIFBsYXRmb3JtQ0FBbmltYXRpb246
OmtleVBhdGgoKSBjb25zdAorU3RyaW5nIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OmtleVBhdGgo
KSBjb25zdAogewogICAgIHJldHVybiBbbV9hbmltYXRpb24uZ2V0KCkga2V5UGF0aF07CiB9CiAK
LUNGVGltZUludGVydmFsIFBsYXRmb3JtQ0FBbmltYXRpb246OmJlZ2luVGltZSgpIGNvbnN0CitD
RlRpbWVJbnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpiZWdpblRpbWUoKSBjb25zdAog
ewogICAgIHJldHVybiBbbV9hbmltYXRpb24uZ2V0KCkgYmVnaW5UaW1lXTsKIH0KIAotdm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRCZWdpblRpbWUoQ0ZUaW1lSW50ZXJ2YWwgdmFsdWUpCit2
b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldEJlZ2luVGltZShDRlRpbWVJbnRlcnZhbCB2
YWx1ZSkKIHsKICAgICBbbV9hbmltYXRpb24uZ2V0KCkgc2V0QmVnaW5UaW1lOnZhbHVlXTsKICAg
ICAKQEAgLTI0MywxMTUgKzI0NSwxMTUgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRC
ZWdpblRpbWUoQ0ZUaW1lSW50ZXJ2YWwgdmFsdWUpCiAgICAgICAgIHNldE5vblplcm9CZWdpblRp
bWVGbGFnKHRoaXMsIHRydWUpOwogfQogCi1DRlRpbWVJbnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0
aW9uOjpkdXJhdGlvbigpIGNvbnN0CitDRlRpbWVJbnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0aW9u
TWFjOjpkdXJhdGlvbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFttX2FuaW1hdGlvbi5nZXQoKSBk
dXJhdGlvbl07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0RHVyYXRpb24oQ0ZU
aW1lSW50ZXJ2YWwgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldER1cmF0
aW9uKENGVGltZUludGVydmFsIHZhbHVlKQogewogICAgIFttX2FuaW1hdGlvbi5nZXQoKSBzZXRE
dXJhdGlvbjp2YWx1ZV07CiB9CiAKLWZsb2F0IFBsYXRmb3JtQ0FBbmltYXRpb246OnNwZWVkKCkg
Y29uc3QKK2Zsb2F0IFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNwZWVkKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gW21fYW5pbWF0aW9uLmdldCgpIHNwZWVkXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNB
QW5pbWF0aW9uOjpzZXRTcGVlZChmbG9hdCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
bk1hYzo6c2V0U3BlZWQoZmxvYXQgdmFsdWUpCiB7CiAgICAgW21fYW5pbWF0aW9uLmdldCgpIHNl
dFNwZWVkOnZhbHVlXTsKIH0KIAotQ0ZUaW1lSW50ZXJ2YWwgUGxhdGZvcm1DQUFuaW1hdGlvbjo6
dGltZU9mZnNldCgpIGNvbnN0CitDRlRpbWVJbnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFj
Ojp0aW1lT2Zmc2V0KCkgY29uc3QKIHsKICAgICByZXR1cm4gW21fYW5pbWF0aW9uLmdldCgpIHRp
bWVPZmZzZXRdOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRpbWVPZmZzZXQo
Q0ZUaW1lSW50ZXJ2YWwgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFRp
bWVPZmZzZXQoQ0ZUaW1lSW50ZXJ2YWwgdmFsdWUpCiB7CiAgICAgW21fYW5pbWF0aW9uLmdldCgp
IHNldFRpbWVPZmZzZXQ6dmFsdWVdOwogfQogCi1mbG9hdCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpy
ZXBlYXRDb3VudCgpIGNvbnN0CitmbG9hdCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpyZXBlYXRD
b3VudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFttX2FuaW1hdGlvbi5nZXQoKSByZXBlYXRDb3Vu
dF07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0UmVwZWF0Q291bnQoZmxvYXQg
dmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFJlcGVhdENvdW50KGZsb2F0
IHZhbHVlKQogewogICAgIFttX2FuaW1hdGlvbi5nZXQoKSBzZXRSZXBlYXRDb3VudDp2YWx1ZV07
CiB9CiAKLWJvb2wgUGxhdGZvcm1DQUFuaW1hdGlvbjo6YXV0b3JldmVyc2VzKCkgY29uc3QKK2Jv
b2wgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6YXV0b3JldmVyc2VzKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gW21fYW5pbWF0aW9uLmdldCgpIGF1dG9yZXZlcnNlc107CiB9CiAKLXZvaWQgUGxhdGZv
cm1DQUFuaW1hdGlvbjo6c2V0QXV0b3JldmVyc2VzKGJvb2wgdmFsdWUpCit2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25NYWM6OnNldEF1dG9yZXZlcnNlcyhib29sIHZhbHVlKQogewogICAgIFttX2Fu
aW1hdGlvbi5nZXQoKSBzZXRBdXRvcmV2ZXJzZXM6dmFsdWVdOwogfQogCi1QbGF0Zm9ybUNBQW5p
bWF0aW9uOjpGaWxsTW9kZVR5cGUgUGxhdGZvcm1DQUFuaW1hdGlvbjo6ZmlsbE1vZGUoKSBjb25z
dAorUGxhdGZvcm1DQUFuaW1hdGlvbjo6RmlsbE1vZGVUeXBlIFBsYXRmb3JtQ0FBbmltYXRpb25N
YWM6OmZpbGxNb2RlKCkgY29uc3QKIHsKICAgICByZXR1cm4gZnJvbUNBRmlsbE1vZGVUeXBlKFtt
X2FuaW1hdGlvbi5nZXQoKSBmaWxsTW9kZV0pOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b246OnNldEZpbGxNb2RlKEZpbGxNb2RlVHlwZSB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1h
dGlvbk1hYzo6c2V0RmlsbE1vZGUoRmlsbE1vZGVUeXBlIHZhbHVlKQogewogICAgIFttX2FuaW1h
dGlvbi5nZXQoKSBzZXRGaWxsTW9kZTp0b0NBRmlsbE1vZGVUeXBlKHZhbHVlKV07CiB9CiAKLXZv
aWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVu
Y3Rpb24qIHZhbHVlLCBib29sIHJldmVyc2UpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6
OnNldFRpbWluZ0Z1bmN0aW9uKGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB2YWx1ZSwgYm9vbCByZXZl
cnNlKQogewogICAgIFttX2FuaW1hdGlvbi5nZXQoKSBzZXRUaW1pbmdGdW5jdGlvbjp0b0NBTWVk
aWFUaW1pbmdGdW5jdGlvbih2YWx1ZSwgcmV2ZXJzZSldOwogfQogCi12b2lkIFBsYXRmb3JtQ0FB
bmltYXRpb246OmNvcHlUaW1pbmdGdW5jdGlvbkZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlv
biogdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OmNvcHlUaW1pbmdGdW5jdGlv
bkZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCiB7Ci0gICAgW21fYW5pbWF0
aW9uLmdldCgpIHNldFRpbWluZ0Z1bmN0aW9uOlt2YWx1ZS0+bV9hbmltYXRpb24uZ2V0KCkgdGlt
aW5nRnVuY3Rpb25dXTsKKyAgICBbbV9hbmltYXRpb24uZ2V0KCkgc2V0VGltaW5nRnVuY3Rpb246
W3RvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYyh2YWx1ZSktPm1fYW5pbWF0aW9uLmdldCgpIHRpbWlu
Z0Z1bmN0aW9uXV07CiB9CiAKLWJvb2wgUGxhdGZvcm1DQUFuaW1hdGlvbjo6aXNSZW1vdmVkT25D
b21wbGV0aW9uKCkgY29uc3QKK2Jvb2wgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6aXNSZW1vdmVk
T25Db21wbGV0aW9uKCkgY29uc3QKIHsKICAgICByZXR1cm4gW21fYW5pbWF0aW9uLmdldCgpIGlz
UmVtb3ZlZE9uQ29tcGxldGlvbl07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0
UmVtb3ZlZE9uQ29tcGxldGlvbihib29sIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
TWFjOjpzZXRSZW1vdmVkT25Db21wbGV0aW9uKGJvb2wgdmFsdWUpCiB7CiAgICAgW21fYW5pbWF0
aW9uLmdldCgpIHNldFJlbW92ZWRPbkNvbXBsZXRpb246dmFsdWVdOwogfQogCi1ib29sIFBsYXRm
b3JtQ0FBbmltYXRpb246OmlzQWRkaXRpdmUoKSBjb25zdAorYm9vbCBQbGF0Zm9ybUNBQW5pbWF0
aW9uTWFjOjppc0FkZGl0aXZlKCkgY29uc3QKIHsKICAgICByZXR1cm4gW21fYW5pbWF0aW9uLmdl
dCgpIGlzQWRkaXRpdmVdOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEFkZGl0
aXZlKGJvb2wgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldEFkZGl0aXZl
KGJvb2wgdmFsdWUpCiB7CiAgICAgW21fYW5pbWF0aW9uLmdldCgpIHNldEFkZGl0aXZlOnZhbHVl
XTsKIH0KIAotUGxhdGZvcm1DQUFuaW1hdGlvbjo6VmFsdWVGdW5jdGlvblR5cGUgUGxhdGZvcm1D
QUFuaW1hdGlvbjo6dmFsdWVGdW5jdGlvbigpIGNvbnN0CitQbGF0Zm9ybUNBQW5pbWF0aW9uOjpW
YWx1ZUZ1bmN0aW9uVHlwZSBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjp2YWx1ZUZ1bmN0aW9uKCkg
Y29uc3QKIHsKICAgICBDQVZhbHVlRnVuY3Rpb24qIHZmID0gW21fYW5pbWF0aW9uLmdldCgpIHZh
bHVlRnVuY3Rpb25dOwogICAgIHJldHVybiBmcm9tQ0FWYWx1ZUZ1bmN0aW9uVHlwZShbdmYgbmFt
ZV0pOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFZhbHVlRnVuY3Rpb24oVmFs
dWVGdW5jdGlvblR5cGUgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFZh
bHVlRnVuY3Rpb24oVmFsdWVGdW5jdGlvblR5cGUgdmFsdWUpCiB7CiAgICAgW21fYW5pbWF0aW9u
LmdldCgpIHNldFZhbHVlRnVuY3Rpb246W0NBVmFsdWVGdW5jdGlvbiBmdW5jdGlvbldpdGhOYW1l
OnRvQ0FWYWx1ZUZ1bmN0aW9uVHlwZSh2YWx1ZSldXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpzZXRGcm9tVmFsdWUoZmxvYXQgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b25NYWM6OnNldEZyb21WYWx1ZShmbG9hdCB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlw
ZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CiAgICAgW3N0YXRpY19jYXN0PENBQmFzaWNB
bmltYXRpb24qPihtX2FuaW1hdGlvbi5nZXQoKSkgc2V0RnJvbVZhbHVlOltOU051bWJlciBudW1i
ZXJXaXRoRG91YmxlOnZhbHVlXV07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0
RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JiB2YWx1ZSkKK3Zv
aWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OlRy
YW5zZm9ybWF0aW9uTWF0cml4JiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9
IEJhc2ljKQogICAgICAgICByZXR1cm47CkBAIC0zNTksNyArMzYxLDcgQEAgdm9pZCBQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25N
YXRyaXgmIHZhbHUKICAgICBbc3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KG1fYW5pbWF0
aW9uLmdldCgpKSBzZXRGcm9tVmFsdWU6W05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDp2
YWx1ZV1dOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEZyb21WYWx1ZShjb25z
dCBGbG9hdFBvaW50M0QmIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRG
cm9tVmFsdWUoY29uc3QgRmxvYXRQb2ludDNEJiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9u
VHlwZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CkBAIC0zNzIsNyArMzc0LDcgQEAgdm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRGcm9tVmFsdWUoY29uc3QgRmxvYXRQb2ludDNEJiB2
YWx1ZSkKICAgICBbc3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdl
dCgpKSBzZXRGcm9tVmFsdWU6YXJyYXldOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246
OnNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYgdmFsdWUpCit2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25NYWM6OnNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYgdmFsdWUp
CiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKICAgICAgICAgcmV0dXJuOwpA
QCAtMzg3LDMwICszODksMzAgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRGcm9tVmFs
dWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImIHZhbHVlKQogfQogCiAjaWYgRU5BQkxFKENTU19GSUxU
RVJTKQotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRGcm9tVmFsdWUoY29uc3QgRmlsdGVy
T3BlcmF0aW9uKiBvcGVyYXRpb24sIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpCit2
b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldEZyb21WYWx1ZShjb25zdCBGaWx0ZXJPcGVy
YXRpb24qIG9wZXJhdGlvbiwgaW50IGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkKIHsKICAg
ICBSZXRhaW5QdHI8aWQ+IHZhbHVlID0gUGxhdGZvcm1DQUZpbHRlcnM6OmZpbHRlclZhbHVlRm9y
T3BlcmF0aW9uKG9wZXJhdGlvbiwgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KTsKICAgICBb
c3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRGcm9t
VmFsdWU6dmFsdWUuZ2V0KCldOwogfQogI2VuZGlmCiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
bjo6Y29weUZyb21WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCit2
b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OmNvcHlGcm9tVmFsdWVGcm9tKGNvbnN0IFBsYXRm
b3JtQ0FBbmltYXRpb24qIHZhbHVlKQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFz
aWMgfHwgdmFsdWUtPmFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAKLSAgICBDQUJhc2ljQW5pbWF0aW9uKiBvdGhlckFuaW1hdGlvbiA9IHN0YXRpY19j
YXN0PENBQmFzaWNBbmltYXRpb24qPih2YWx1ZS0+bV9hbmltYXRpb24uZ2V0KCkpOworICAgIENB
QmFzaWNBbmltYXRpb24qIG90aGVyQW5pbWF0aW9uID0gc3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1h
dGlvbio+KHRvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYyh2YWx1ZSktPm1fYW5pbWF0aW9uLmdldCgp
KTsKICAgICBbc3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgp
KSBzZXRGcm9tVmFsdWU6W290aGVyQW5pbWF0aW9uIGZyb21WYWx1ZV1dOwogfQogCi12b2lkIFBs
YXRmb3JtQ0FBbmltYXRpb246OnNldFRvVmFsdWUoZmxvYXQgdmFsdWUpCit2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25NYWM6OnNldFRvVmFsdWUoZmxvYXQgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1h
dGlvblR5cGUoKSAhPSBCYXNpYykKICAgICAgICAgcmV0dXJuOwogICAgIFtzdGF0aWNfY2FzdDxD
QUJhc2ljQW5pbWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNldFRvVmFsdWU6W05TTnVtYmVy
IG51bWJlcldpdGhEb3VibGU6dmFsdWVdXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JiB2YWx1ZSkK
K3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAh
PSBCYXNpYykKICAgICAgICAgcmV0dXJuOwpAQCAtNDE4LDcgKzQyMCw3IEBAIHZvaWQgUGxhdGZv
cm1DQUFuaW1hdGlvbjo6c2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgdmFsdWUpCiAgICAgW3N0YXRpY19jYXN0PENBQmFzaWNBbmltYXRpb24qPihtX2FuaW1h
dGlvbi5nZXQoKSkgc2V0VG9WYWx1ZTpbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOnZh
bHVlXV07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VG9WYWx1ZShjb25zdCBG
bG9hdFBvaW50M0QmIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRUb1Zh
bHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUo
KSAhPSBCYXNpYykKICAgICAgICAgcmV0dXJuOwpAQCAtNDMxLDcgKzQzMyw3IEBAIHZvaWQgUGxh
dGZvcm1DQUFuaW1hdGlvbjo6c2V0VG9WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmIHZhbHVlKQog
ICAgIFtzdGF0aWNfY2FzdDxDQUJhc2ljQW5pbWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNl
dFRvVmFsdWU6YXJyYXldOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRvVmFs
dWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
TWFjOjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiB2YWx1ZSkKIHsKICAgICBpZiAo
YW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CkBAIC00NDYsMjUgKzQ0
OCwyNSBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRvVmFsdWUoY29uc3QgV2ViQ29y
ZTo6Q29sb3ImIHZhbHVlKQogfQogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQotdm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpzZXRUb1ZhbHVlKGNvbnN0IEZpbHRlck9wZXJhdGlvbiogb3BlcmF0
aW9uLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KQordm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uTWFjOjpzZXRUb1ZhbHVlKGNvbnN0IEZpbHRlck9wZXJhdGlvbiogb3BlcmF0aW9uLCBp
bnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KQogewogICAgIFJldGFpblB0cjxpZD4gdmFs
dWUgPSBQbGF0Zm9ybUNBRmlsdGVyczo6ZmlsdGVyVmFsdWVGb3JPcGVyYXRpb24ob3BlcmF0aW9u
LCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpOwogICAgIFtzdGF0aWNfY2FzdDxDQUJhc2lj
QW5pbWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNldFRvVmFsdWU6dmFsdWUuZ2V0KCldOwog
fQogI2VuZGlmCiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weVRvVmFsdWVGcm9tKGNv
bnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
TWFjOjpjb3B5VG9WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCiB7
CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYyB8fCB2YWx1ZS0+YW5pbWF0aW9uVHlw
ZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CiAgICAgICAgIAotICAgIENBQmFzaWNBbmlt
YXRpb24qIG90aGVyQW5pbWF0aW9uID0gc3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KHZh
bHVlLT5tX2FuaW1hdGlvbi5nZXQoKSk7CisgICAgQ0FCYXNpY0FuaW1hdGlvbiogb3RoZXJBbmlt
YXRpb24gPSBzdGF0aWNfY2FzdDxDQUJhc2ljQW5pbWF0aW9uKj4odG9QbGF0Zm9ybUNBQW5pbWF0
aW9uTWFjKHZhbHVlKS0+bV9hbmltYXRpb24uZ2V0KCkpOwogICAgIFtzdGF0aWNfY2FzdDxDQUJh
c2ljQW5pbWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNldFRvVmFsdWU6W290aGVyQW5pbWF0
aW9uIHRvVmFsdWVdXTsKIH0KIAogCiAvLyBLZXlmcmFtZS1hbmltYXRpb24gcHJvcGVydGllcy4K
LXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4m
IHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRWYWx1ZXMoY29uc3QgVmVj
dG9yPGZsb2F0PiYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBLZXlmcmFt
ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDc1LDcgKzQ3Nyw3IEBAIHZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mIHZhbHVlKQogICAgIFtzdGF0
aWNfY2FzdDxDQUtleWZyYW1lQW5pbWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNldFZhbHVl
czphcnJheV07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeD4mIHZhbHVlKQordm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRyYW5z
Zm9ybWF0aW9uTWF0cml4PiYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBL
ZXlmcmFtZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDg4LDcgKzQ5MCw3IEBAIHZvaWQgUGxhdGZv
cm1DQUFuaW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpUcmFuc2Zvcm1h
dGlvbk1hdHJpeD4mCiAgICAgW3N0YXRpY19jYXN0PENBS2V5ZnJhbWVBbmltYXRpb24qPihtX2Fu
aW1hdGlvbi5nZXQoKSkgc2V0VmFsdWVzOmFycmF5XTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPEZsb2F0UG9pbnQzRD4mIHZhbHVlKQordm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPEZsb2F0UG9p
bnQzRD4mIHZhbHVlKQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gS2V5ZnJhbWUpCiAg
ICAgICAgIHJldHVybjsKQEAgLTUwNiw3ICs1MDgsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b246OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8RmxvYXRQb2ludDNEPiYgdmFsdWUpCiAgICAgW3N0
YXRpY19jYXN0PENBS2V5ZnJhbWVBbmltYXRpb24qPihtX2FuaW1hdGlvbi5nZXQoKSkgc2V0VmFs
dWVzOmFycmF5XTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRWYWx1ZXMoY29u
c3QgVmVjdG9yPFdlYkNvcmU6OkNvbG9yPiYgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b25NYWM6OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+JiB2YWx1ZSkKIHsK
ICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZyYW1lKQogICAgICAgICByZXR1cm47CkBA
IC01MjYsNyArNTI4LDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRWYWx1ZXMoY29u
c3QgVmVjdG9yPFdlYkNvcmU6OkNvbG9yPiYgdmFsdWUpCiB9CiAKICNpZiBFTkFCTEUoQ1NTX0ZJ
TFRFUlMpCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8
UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4+JiB2YWx1ZXMsIGludCBpbnRlcm5hbEZpbHRlclByb3Bl
cnR5SW5kZXgpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFZhbHVlcyhjb25zdCBW
ZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4+JiB2YWx1ZXMsIGludCBpbnRlcm5hbEZpbHRl
clByb3BlcnR5SW5kZXgpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBLZXlmcmFtZSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtNTQxLDE2ICs1NDMsMTYgQEAgdm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+PiYg
dmFsdWUKIH0KICNlbmRpZgogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OmNvcHlWYWx1ZXNG
cm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uTWFjOjpjb3B5VmFsdWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1
ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZyYW1lIHx8IHZhbHVlLT5hbmlt
YXRpb25UeXBlKCkgIT0gS2V5ZnJhbWUpCiAgICAgICAgIHJldHVybjsKICAgICAgICAgCi0gICAg
Q0FLZXlmcmFtZUFuaW1hdGlvbiogb3RoZXJBbmltYXRpb24gPSBzdGF0aWNfY2FzdDxDQUtleWZy
YW1lQW5pbWF0aW9uKj4odmFsdWUtPm1fYW5pbWF0aW9uLmdldCgpKTsKKyAgICBDQUtleWZyYW1l
QW5pbWF0aW9uKiBvdGhlckFuaW1hdGlvbiA9IHN0YXRpY19jYXN0PENBS2V5ZnJhbWVBbmltYXRp
b24qPih0b1BsYXRmb3JtQ0FBbmltYXRpb25NYWModmFsdWUpLT5tX2FuaW1hdGlvbi5nZXQoKSk7
CiAgICAgW3N0YXRpY19jYXN0PENBS2V5ZnJhbWVBbmltYXRpb24qPihtX2FuaW1hdGlvbi5nZXQo
KSkgc2V0VmFsdWVzOltvdGhlckFuaW1hdGlvbiB2YWx1ZXNdXTsKIH0KIAotdm9pZCBQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpzZXRLZXlUaW1lcyhjb25zdCBWZWN0b3I8ZmxvYXQ+JiB2YWx1ZSkKK3Zv
aWQgUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6c2V0S2V5VGltZXMoY29uc3QgVmVjdG9yPGZsb2F0
PiYgdmFsdWUpCiB7CiAgICAgTlNNdXRhYmxlQXJyYXkqIGFycmF5ID0gW05TTXV0YWJsZUFycmF5
IGFycmF5XTsKIApAQCAtNTYwLDEzICs1NjIsMTMgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpzZXRLZXlUaW1lcyhjb25zdCBWZWN0b3I8ZmxvYXQ+JiB2YWx1ZSkKICAgICBbc3RhdGljX2Nh
c3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRLZXlUaW1lczph
cnJheV07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weUtleVRpbWVzRnJvbShj
b25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
bk1hYzo6Y29weUtleVRpbWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkK
IHsKLSAgICBDQUtleWZyYW1lQW5pbWF0aW9uKiBvdGhlciA9IHN0YXRpY19jYXN0PENBS2V5ZnJh
bWVBbmltYXRpb24qPih2YWx1ZS0+bV9hbmltYXRpb24uZ2V0KCkpOworICAgIENBS2V5ZnJhbWVB
bmltYXRpb24qIG90aGVyID0gc3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+KHRvUGxh
dGZvcm1DQUFuaW1hdGlvbk1hYyh2YWx1ZSktPm1fYW5pbWF0aW9uLmdldCgpKTsKICAgICBbc3Rh
dGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRLZXlU
aW1lczpbb3RoZXIga2V5VGltZXNdXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpz
ZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4mIHZh
bHVlLCBib29sIHJldmVyc2UpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6OnNldFRpbWlu
Z0Z1bmN0aW9ucyhjb25zdCBWZWN0b3I8Y29uc3QgVGltaW5nRnVuY3Rpb24qPiYgdmFsdWUsIGJv
b2wgcmV2ZXJzZSkKIHsKICAgICBOU011dGFibGVBcnJheSogYXJyYXkgPSBbTlNNdXRhYmxlQXJy
YXkgYXJyYXldOwogCkBAIC01NzYsOCArNTc4LDggQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4K
ICAgICBbc3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgp
KSBzZXRUaW1pbmdGdW5jdGlvbnM6YXJyYXldOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b246OmNvcHlUaW1pbmdGdW5jdGlvbnNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZh
bHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFjOjpjb3B5VGltaW5nRnVuY3Rpb25zRnJv
bShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIHsKLSAgICBDQUtleWZyYW1lQW5p
bWF0aW9uKiBvdGhlciA9IHN0YXRpY19jYXN0PENBS2V5ZnJhbWVBbmltYXRpb24qPih2YWx1ZS0+
bV9hbmltYXRpb24uZ2V0KCkpOworICAgIENBS2V5ZnJhbWVBbmltYXRpb24qIG90aGVyID0gc3Rh
dGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+KHRvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYyh2
YWx1ZSktPm1fYW5pbWF0aW9uLmdldCgpKTsKICAgICBbc3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFu
aW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRUaW1pbmdGdW5jdGlvbnM6W290aGVyIHRp
bWluZ0Z1bmN0aW9uc11dOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0KaW5kZXggNjg1NmEy
MmY0YzQzZjU0MmUxMDg4MTVhYWFjY2VkYTBmMzg0NzA5My4uY2Y4ZTMwYWZlMTZmZTc5YTBjZDhi
YmJlNTkxYWFhN2Y0NTA5MGE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCkBAIC0zMiw2
ICszMiw3IEBACiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHQuaCIKICNpbXBvcnQgIkdyYXBoaWNz
TGF5ZXJDQS5oIgogI2ltcG9ydCAiTGVuZ3RoRnVuY3Rpb25zLmgiCisjaW1wb3J0ICJQbGF0Zm9y
bUNBQW5pbWF0aW9uTWFjLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybUNBRmlsdGVycy5oIgogI2ltcG9y
dCAiUGxhdGZvcm1DQUZpbHRlcnNNYWMuaCIKICNpbXBvcnQgIlNjcm9sbGJhclRoZW1lTWFjLmgi
CkBAIC0zOTUsMTIgKzM5NiwxMiBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6YWRkQW5pbWF0
aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBQbGF0Zm9ybUNBQW5pbWF0aQogICAgICAgICBb
d2ViQW5pbWF0aW9uRGVsZWdhdGUgc2V0T3duZXI6dGhpc107CiAgICAgfQogICAgIAotICAgIENB
UHJvcGVydHlBbmltYXRpb24qIHByb3BlcnR5QW5pbWF0aW9uID0gc3RhdGljX2Nhc3Q8Q0FQcm9w
ZXJ0eUFuaW1hdGlvbio+KGFuaW1hdGlvbi0+cGxhdGZvcm1BbmltYXRpb24oKSk7CisgICAgQ0FQ
cm9wZXJ0eUFuaW1hdGlvbiogcHJvcGVydHlBbmltYXRpb24gPSBzdGF0aWNfY2FzdDxDQVByb3Bl
cnR5QW5pbWF0aW9uKj4odG9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjKGFuaW1hdGlvbiktPnBsYXRm
b3JtQW5pbWF0aW9uKCkpOwogICAgIGlmICghW3Byb3BlcnR5QW5pbWF0aW9uIGRlbGVnYXRlXSkK
ICAgICAgICAgW3Byb3BlcnR5QW5pbWF0aW9uIHNldERlbGVnYXRlOnN0YXRpY19jYXN0PGlkPiht
X2RlbGVnYXRlLmdldCgpKV07CiAgICAgIAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UwotICAgIFttX2xheWVyLmdldCgpIGFkZEFuaW1hdGlvbjphbmltYXRpb24tPm1fYW5pbWF0aW9u
LmdldCgpIGZvcktleTprZXldOworICAgIFttX2xheWVyLmdldCgpIGFkZEFuaW1hdGlvbjpwcm9w
ZXJ0eUFuaW1hdGlvbiBmb3JLZXk6a2V5XTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
CiB9CiAKQEAgLTQxNiw3ICs0MTcsNyBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+
IFBsYXRmb3JtQ0FMYXllck1hYzo6YW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZwogICAgIENB
UHJvcGVydHlBbmltYXRpb24qIHByb3BlcnR5QW5pbWF0aW9uID0gc3RhdGljX2Nhc3Q8Q0FQcm9w
ZXJ0eUFuaW1hdGlvbio+KFttX2xheWVyLmdldCgpIGFuaW1hdGlvbkZvcktleTprZXldKTsKICAg
ICBpZiAoIXByb3BlcnR5QW5pbWF0aW9uKQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4g
UGxhdGZvcm1DQUFuaW1hdGlvbjo6Y3JlYXRlKHByb3BlcnR5QW5pbWF0aW9uKTsKKyAgICByZXR1
cm4gUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6Y3JlYXRlKHByb3BlcnR5QW5pbWF0aW9uKTsKIH0K
IAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldE1hc2soUGxhdGZvcm1DQUxheWVyKiBsYXll
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9U
aWxlQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21h
Yy9UaWxlQ29udHJvbGxlci5tbQppbmRleCBmZTNlODBlYjA2NWFiNDhhZTc3YmI3YzUyNjZiMWM0
YzhjODc0NWU2Li5mZWMzOWJhNzNhNTg3NDc0MjViNTdmMWQzMmU5NjRjMTRiM2E3MWUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNvbnRy
b2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1Rp
bGVDb250cm9sbGVyLm1tCkBAIC0yNiw2ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNp
bXBvcnQgIlRpbGVDb250cm9sbGVyLmgiCiAKKyNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgog
I2ltcG9ydCAiSW50UmVjdC5oIgogI2ltcG9ydCAiUGxhdGZvcm1DQUxheWVyLmgiCiAjaW1wb3J0
ICJSZWdpb24uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcAppbmRleCAyYTVj
M2YyMjgyMTVlNmE2OGFkY2FhYTdiMzQ5YmI4M2VlYjVhYzkxLi5jYzFjMjZlMTc0MTcxMTUwNTMy
N2ZhM2Y5NDNlZGZiYmYxZTY0MmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FBbmltYXRpb25XaW4u
Y3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
NSw3ICsyNSw4IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2luY2x1ZGUgIlBsYXRmb3Jt
Q0FBbmltYXRpb24uaCIKKyNpZiBQTEFURk9STShXSU4pCisjaW5jbHVkZSAiUGxhdGZvcm1DQUFu
aW1hdGlvbldpbi5oIgogCiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAi
VGltaW5nRnVuY3Rpb24uaCIKQEAgLTE0MSwxOCArMTQyLDE4IEBAIHN0YXRpYyBSZXRhaW5QdHI8
Q0FDRlRpbWluZ0Z1bmN0aW9uUmVmPiB0b0NBQ0ZUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdG
dW5jdGlvCiAgICAgcmV0dXJuIENBQ0ZUaW1pbmdGdW5jdGlvbkdldEZ1bmN0aW9uV2l0aE5hbWUo
a0NBQ0ZUaW1pbmdGdW5jdGlvbkxpbmVhcik7CiB9CiAKLVBhc3NSZWZQdHI8UGxhdGZvcm1DQUFu
aW1hdGlvbj4gUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y3JlYXRlKEFuaW1hdGlvblR5cGUgdHlwZSwg
Y29uc3QgU3RyaW5nJiBrZXlQYXRoKQorUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQ
bGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpjcmVhdGUoQW5pbWF0aW9uVHlwZSB0eXBlLCBjb25zdCBT
dHJpbmcmIGtleVBhdGgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQbGF0Zm9ybUNBQW5p
bWF0aW9uKHR5cGUsIGtleVBhdGgpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBsYXRmb3Jt
Q0FBbmltYXRpb25XaW4odHlwZSwga2V5UGF0aCkpOwogfQogCi1QYXNzUmVmUHRyPFBsYXRmb3Jt
Q0FBbmltYXRpb24+IFBsYXRmb3JtQ0FBbmltYXRpb246OmNyZWF0ZShQbGF0Zm9ybUFuaW1hdGlv
blJlZiBhbmltYXRpb24pCitQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRmb3Jt
Q0FBbmltYXRpb25XaW46OmNyZWF0ZShQbGF0Zm9ybUFuaW1hdGlvblJlZiBhbmltYXRpb24pCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQbGF0Zm9ybUNBQW5pbWF0aW9uKGFuaW1hdGlvbikp
OworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGxhdGZvcm1DQUFuaW1hdGlvbldpbihhbmltYXRp
b24pKTsKIH0KIAotUGxhdGZvcm1DQUFuaW1hdGlvbjo6UGxhdGZvcm1DQUFuaW1hdGlvbihBbmlt
YXRpb25UeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCkKLSAgICA6IG1fdHlwZSh0eXBl
KQorUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6UGxhdGZvcm1DQUFuaW1hdGlvbldpbihBbmltYXRp
b25UeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCkKKyAgICA6IFBsYXRmb3JtQ0FBbmlt
YXRpb24odHlwZSkKIHsKICAgICBpZiAodHlwZSA9PSBCYXNpYykKICAgICAgICAgbV9hbmltYXRp
b24gPSBhZG9wdENGKENBQ0ZBbmltYXRpb25DcmVhdGUoa0NBQ0ZCYXNpY0FuaW1hdGlvbikpOwpA
QCAtMTYyLDEyICsxNjMsMTIgQEAgUGxhdGZvcm1DQUFuaW1hdGlvbjo6UGxhdGZvcm1DQUFuaW1h
dGlvbihBbmltYXRpb25UeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGEKICAgICBDQUNGQW5p
bWF0aW9uU2V0S2V5UGF0aChtX2FuaW1hdGlvbi5nZXQoKSwga2V5UGF0aC5jcmVhdGVDRlN0cmlu
ZygpLmdldCgpKTsKIH0KIAotUGxhdGZvcm1DQUFuaW1hdGlvbjo6UGxhdGZvcm1DQUFuaW1hdGlv
bihQbGF0Zm9ybUFuaW1hdGlvblJlZiBhbmltYXRpb24pCitQbGF0Zm9ybUNBQW5pbWF0aW9uV2lu
OjpQbGF0Zm9ybUNBQW5pbWF0aW9uV2luKFBsYXRmb3JtQW5pbWF0aW9uUmVmIGFuaW1hdGlvbikK
IHsKICAgICBpZiAoQ0FDRkFuaW1hdGlvbkdldENsYXNzKGFuaW1hdGlvbikgPT0ga0NBQ0ZCYXNp
Y0FuaW1hdGlvbikKLSAgICAgICAgbV90eXBlID0gQmFzaWM7CisgICAgICAgIHNldFR5cGUoQmFz
aWMpOwogICAgIGVsc2UgaWYgKENBQ0ZBbmltYXRpb25HZXRDbGFzcyhhbmltYXRpb24pID09IGtD
QUNGS2V5ZnJhbWVBbmltYXRpb24pCi0gICAgICAgIG1fdHlwZSA9IEtleWZyYW1lOworICAgICAg
ICBzZXRUeXBlKEtleWZyYW1lKTsKICAgICBlbHNlIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTE3Niw3ICsxNzcsNyBAQCBQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpQbGF0Zm9ybUNBQW5pbWF0aW9uKFBsYXRmb3JtQW5pbWF0aW9uUmVmIGFuaW1hdGlv
bikKICAgICBtX2FuaW1hdGlvbiA9IGFuaW1hdGlvbjsKIH0KIAotUGFzc1JlZlB0cjxQbGF0Zm9y
bUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5KCkgY29uc3QKK1Bhc3NSZWZQ
dHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6Y29weSgpIGNv
bnN0CiB7CiAgICAgUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGFuaW1hdGlvbiA9IGNyZWF0
ZShhbmltYXRpb25UeXBlKCksIGtleVBhdGgoKSk7CiAgICAgCkBAIC0yMDYsMTM2ICsyMDcsMTM2
IEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUFuaW1hdGlvbjo6
Y29weSgpIGNvbnN0CiAgICAgcmV0dXJuIGFuaW1hdGlvbjsKIH0KIAotUGxhdGZvcm1DQUFuaW1h
dGlvbjo6flBsYXRmb3JtQ0FBbmltYXRpb24oKQorUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6flBs
YXRmb3JtQ0FBbmltYXRpb25XaW4oKQogewogfQogCi1QbGF0Zm9ybUFuaW1hdGlvblJlZiBQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpwbGF0Zm9ybUFuaW1hdGlvbigpIGNvbnN0CitQbGF0Zm9ybUFuaW1h
dGlvblJlZiBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpwbGF0Zm9ybUFuaW1hdGlvbigpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIG1fYW5pbWF0aW9uLmdldCgpOwogfQogCi1TdHJpbmcgUGxhdGZvcm1D
QUFuaW1hdGlvbjo6a2V5UGF0aCgpIGNvbnN0CitTdHJpbmcgUGxhdGZvcm1DQUFuaW1hdGlvbldp
bjo6a2V5UGF0aCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIENBQ0ZBbmltYXRpb25HZXRLZXlQYXRo
KG1fYW5pbWF0aW9uLmdldCgpKTsKIH0KIAotQ0ZUaW1lSW50ZXJ2YWwgUGxhdGZvcm1DQUFuaW1h
dGlvbjo6YmVnaW5UaW1lKCkgY29uc3QKK0NGVGltZUludGVydmFsIFBsYXRmb3JtQ0FBbmltYXRp
b25XaW46OmJlZ2luVGltZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIENBQ0ZBbmltYXRpb25HZXRC
ZWdpblRpbWUobV9hbmltYXRpb24uZ2V0KCkpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b246OnNldEJlZ2luVGltZShDRlRpbWVJbnRlcnZhbCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvbldpbjo6c2V0QmVnaW5UaW1lKENGVGltZUludGVydmFsIHZhbHVlKQogewogICAgIENB
Q0ZBbmltYXRpb25TZXRCZWdpblRpbWUobV9hbmltYXRpb24uZ2V0KCksIHZhbHVlKTsKIH0KIAot
Q0ZUaW1lSW50ZXJ2YWwgUGxhdGZvcm1DQUFuaW1hdGlvbjo6ZHVyYXRpb24oKSBjb25zdAorQ0ZU
aW1lSW50ZXJ2YWwgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6ZHVyYXRpb24oKSBjb25zdAogewog
ICAgIHJldHVybiBDQUNGQW5pbWF0aW9uR2V0RHVyYXRpb24obV9hbmltYXRpb24uZ2V0KCkpOwog
fQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldER1cmF0aW9uKENGVGltZUludGVydmFs
IHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXREdXJhdGlvbihDRlRpbWVJ
bnRlcnZhbCB2YWx1ZSkKIHsKICAgICBDQUNGQW5pbWF0aW9uU2V0RHVyYXRpb24obV9hbmltYXRp
b24uZ2V0KCksIHZhbHVlKTsKIH0KIAotZmxvYXQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c3BlZWQo
KSBjb25zdAorZmxvYXQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c3BlZWQoKSBjb25zdAogewog
ICAgIHJldHVybiBDQUNGQW5pbWF0aW9uR2V0U3BlZWQobV9hbmltYXRpb24uZ2V0KCkpOwogfQog
Ci12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFNwZWVkKGZsb2F0IHZhbHVlKQordm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRTcGVlZChmbG9hdCB2YWx1ZSkKIHsKICAgICBDQUNG
QW5pbWF0aW9uU2V0U3BlZWQobV9hbmltYXRpb24uZ2V0KCksIHZhbHVlKTsKIH0KIAotQ0ZUaW1l
SW50ZXJ2YWwgUGxhdGZvcm1DQUFuaW1hdGlvbjo6dGltZU9mZnNldCgpIGNvbnN0CitDRlRpbWVJ
bnRlcnZhbCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjp0aW1lT2Zmc2V0KCkgY29uc3QKIHsKICAg
ICByZXR1cm4gQ0FDRkFuaW1hdGlvbkdldFRpbWVPZmZzZXQobV9hbmltYXRpb24uZ2V0KCkpOwog
fQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRpbWVPZmZzZXQoQ0ZUaW1lSW50ZXJ2
YWwgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldFRpbWVPZmZzZXQoQ0ZU
aW1lSW50ZXJ2YWwgdmFsdWUpCiB7CiAgICAgQ0FDRkFuaW1hdGlvblNldFRpbWVPZmZzZXQobV9h
bmltYXRpb24uZ2V0KCksIHZhbHVlKTsKIH0KIAotZmxvYXQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6
cmVwZWF0Q291bnQoKSBjb25zdAorZmxvYXQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6cmVwZWF0
Q291bnQoKSBjb25zdAogewogICAgIHJldHVybiBDQUNGQW5pbWF0aW9uR2V0UmVwZWF0Q291bnQo
bV9hbmltYXRpb24uZ2V0KCkpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFJl
cGVhdENvdW50KGZsb2F0IHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRS
ZXBlYXRDb3VudChmbG9hdCB2YWx1ZSkKIHsKICAgICBDQUNGQW5pbWF0aW9uU2V0UmVwZWF0Q291
bnQobV9hbmltYXRpb24uZ2V0KCksIHZhbHVlKTsKIH0KIAotYm9vbCBQbGF0Zm9ybUNBQW5pbWF0
aW9uOjphdXRvcmV2ZXJzZXMoKSBjb25zdAorYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjph
dXRvcmV2ZXJzZXMoKSBjb25zdAogewogICAgIHJldHVybiBDQUNGQW5pbWF0aW9uR2V0QXV0b3Jl
dmVyc2VzKG1fYW5pbWF0aW9uLmdldCgpKTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpzZXRBdXRvcmV2ZXJzZXMoYm9vbCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldp
bjo6c2V0QXV0b3JldmVyc2VzKGJvb2wgdmFsdWUpCiB7CiAgICAgQ0FDRkFuaW1hdGlvblNldEF1
dG9yZXZlcnNlcyhtX2FuaW1hdGlvbi5nZXQoKSwgdmFsdWUpOwogfQogCi1QbGF0Zm9ybUNBQW5p
bWF0aW9uOjpGaWxsTW9kZVR5cGUgUGxhdGZvcm1DQUFuaW1hdGlvbjo6ZmlsbE1vZGUoKSBjb25z
dAorUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6RmlsbE1vZGVUeXBlIFBsYXRmb3JtQ0FBbmltYXRp
b25XaW46OmZpbGxNb2RlKCkgY29uc3QKIHsKICAgICByZXR1cm4gZnJvbUNBQ0ZGaWxsTW9kZVR5
cGUoQ0FDRkFuaW1hdGlvbkdldEZpbGxNb2RlKG1fYW5pbWF0aW9uLmdldCgpKSk7CiB9CiAKLXZv
aWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0RmlsbE1vZGUoRmlsbE1vZGVUeXBlIHZhbHVlKQor
dm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRGaWxsTW9kZShGaWxsTW9kZVR5cGUgdmFs
dWUpCiB7CiAgICAgQ0FDRkFuaW1hdGlvblNldEZpbGxNb2RlKG1fYW5pbWF0aW9uLmdldCgpLCB0
b0NBQ0ZGaWxsTW9kZVR5cGUodmFsdWUpKTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpzZXRUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiogdmFsdWUsIGJvb2wgcmV2
ZXJzZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0VGltaW5nRnVuY3Rpb24oY29u
c3QgVGltaW5nRnVuY3Rpb24qIHZhbHVlLCBib29sIHJldmVyc2UpCiB7CiAgICAgVU5VU0VEX1BB
UkFNKHJldmVyc2UpOwogICAgIENBQ0ZBbmltYXRpb25TZXRUaW1pbmdGdW5jdGlvbihtX2FuaW1h
dGlvbi5nZXQoKSwgdG9DQUNGVGltaW5nRnVuY3Rpb24odmFsdWUsIHJldmVyc2UpLmdldCgpKTsK
IH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5VGltaW5nRnVuY3Rpb25Gcm9tKGNv
bnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
V2luOjpjb3B5VGltaW5nRnVuY3Rpb25Gcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZh
bHVlKQogewotICAgIENBQ0ZUaW1pbmdGdW5jdGlvblJlZiB0aW1pbmdGdW5jID0gQ0FDRkFuaW1h
dGlvbkdldFRpbWluZ0Z1bmN0aW9uKHZhbHVlLT5tX2FuaW1hdGlvbi5nZXQoKSk7CisgICAgQ0FD
RlRpbWluZ0Z1bmN0aW9uUmVmIHRpbWluZ0Z1bmMgPSBDQUNGQW5pbWF0aW9uR2V0VGltaW5nRnVu
Y3Rpb24odG9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luKHZhbHVlKS0+bV9hbmltYXRpb24uZ2V0KCkp
OwogICAgIGlmICh0aW1pbmdGdW5jKQogICAgICAgICBDQUNGQW5pbWF0aW9uU2V0VGltaW5nRnVu
Y3Rpb24obV9hbmltYXRpb24uZ2V0KCksIHRpbWluZ0Z1bmMpOwogfQogCi1ib29sIFBsYXRmb3Jt
Q0FBbmltYXRpb246OmlzUmVtb3ZlZE9uQ29tcGxldGlvbigpIGNvbnN0Citib29sIFBsYXRmb3Jt
Q0FBbmltYXRpb25XaW46OmlzUmVtb3ZlZE9uQ29tcGxldGlvbigpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIENBQ0ZBbmltYXRpb25Jc1JlbW92ZWRPbkNvbXBsZXRpb24obV9hbmltYXRpb24uZ2V0KCkp
OwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFJlbW92ZWRPbkNvbXBsZXRpb24o
Ym9vbCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0UmVtb3ZlZE9uQ29t
cGxldGlvbihib29sIHZhbHVlKQogewogICAgIENBQ0ZBbmltYXRpb25TZXRSZW1vdmVkT25Db21w
bGV0aW9uKG1fYW5pbWF0aW9uLmdldCgpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgUGxhdGZvcm1DQUFu
aW1hdGlvbjo6aXNBZGRpdGl2ZSgpIGNvbnN0Citib29sIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46
OmlzQWRkaXRpdmUoKSBjb25zdAogewogICAgIHJldHVybiBDQUNGQW5pbWF0aW9uSXNBZGRpdGl2
ZShtX2FuaW1hdGlvbi5nZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0
QWRkaXRpdmUoYm9vbCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0QWRk
aXRpdmUoYm9vbCB2YWx1ZSkKIHsKICAgICBDQUNGQW5pbWF0aW9uU2V0QWRkaXRpdmUobV9hbmlt
YXRpb24uZ2V0KCksIHZhbHVlKTsKIH0KIAotUGxhdGZvcm1DQUFuaW1hdGlvbjo6VmFsdWVGdW5j
dGlvblR5cGUgUGxhdGZvcm1DQUFuaW1hdGlvbjo6dmFsdWVGdW5jdGlvbigpIGNvbnN0CitQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpWYWx1ZUZ1bmN0aW9uVHlwZSBQbGF0Zm9ybUNBQW5pbWF0aW9uV2lu
Ojp2YWx1ZUZ1bmN0aW9uKCkgY29uc3QKIHsKICAgICBDQUNGVmFsdWVGdW5jdGlvblJlZiBmdW5j
ID0gQ0FDRkFuaW1hdGlvbkdldFZhbHVlRnVuY3Rpb24obV9hbmltYXRpb24uZ2V0KCkpOwogICAg
IHJldHVybiBmdW5jID8gZnJvbUNBQ0ZWYWx1ZUZ1bmN0aW9uVHlwZShDQUNGVmFsdWVGdW5jdGlv
bkdldE5hbWUoZnVuYykpIDogTm9WYWx1ZUZ1bmN0aW9uOwogfQogCi12b2lkIFBsYXRmb3JtQ0FB
bmltYXRpb246OnNldFZhbHVlRnVuY3Rpb24oVmFsdWVGdW5jdGlvblR5cGUgdmFsdWUpCit2b2lk
IFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldFZhbHVlRnVuY3Rpb24oVmFsdWVGdW5jdGlvblR5
cGUgdmFsdWUpCiB7CiAgICAgQ0ZTdHJpbmdSZWYgdmFsdWVTdHJpbmcgPSB0b0NBQ0ZWYWx1ZUZ1
bmN0aW9uVHlwZSh2YWx1ZSk7CiAgICAgQ0FDRkFuaW1hdGlvblNldFZhbHVlRnVuY3Rpb24obV9h
bmltYXRpb24uZ2V0KCksIHZhbHVlU3RyaW5nID8gQ0FDRlZhbHVlRnVuY3Rpb25HZXRGdW5jdGlv
bldpdGhOYW1lKHZhbHVlU3RyaW5nKSA6IDApOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b246OnNldEZyb21WYWx1ZShmbG9hdCB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldp
bjo6c2V0RnJvbVZhbHVlKGZsb2F0IHZhbHVlKQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkg
IT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKQEAgLTM0NCw3ICszNDUsNyBAQCB2b2lkIFBsYXRm
b3JtQ0FBbmltYXRpb246OnNldEZyb21WYWx1ZShmbG9hdCB2YWx1ZSkKICAgICBDQUNGQW5pbWF0
aW9uU2V0RnJvbVZhbHVlKG1fYW5pbWF0aW9uLmdldCgpLCB2LmdldCgpKTsKIH0KIAotdm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6VHJhbnNmb3Jt
YXRpb25NYXRyaXgmIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRGcm9t
VmFsdWUoY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmIHZhbHVlKQogewogICAg
IGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKQEAgLTM1Myw3
ICszNTQsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEZyb21WYWx1ZShjb25zdCBX
ZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdmFsdQogICAgIENBQ0ZBbmltYXRpb25TZXRG
cm9tVmFsdWUobV9hbmltYXRpb24uZ2V0KCksIHYuZ2V0KCkpOwogfQogCi12b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb246OnNldEZyb21WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmIHZhbHVlKQordm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRGcm9tVmFsdWUoY29uc3QgRmxvYXRQb2ludDNE
JiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQogICAgICAgICBy
ZXR1cm47CkBAIC0zNjMsNyArMzY0LDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRG
cm9tVmFsdWUoY29uc3QgRmxvYXRQb2ludDNEJiB2YWx1ZSkKICAgICBDQUNGQW5pbWF0aW9uU2V0
RnJvbVZhbHVlKG1fYW5pbWF0aW9uLmdldCgpLCB2LmdldCgpKTsKIH0KIAotdm9pZCBQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImIHZhbHVlKQor
dm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6
Q29sb3ImIHZhbHVlKQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCiAgICAg
ICAgIHJldHVybjsKQEAgLTM3NCwyMSArMzc1LDIxIEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
bjo6c2V0RnJvbVZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiB2YWx1ZSkKIH0KIAogI2lmIEVO
QUJMRShDU1NfRklMVEVSUykKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0RnJvbVZhbHVl
KGNvbnN0IEZpbHRlck9wZXJhdGlvbiosIGludCkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldp
bjo6c2V0RnJvbVZhbHVlKGNvbnN0IEZpbHRlck9wZXJhdGlvbiosIGludCkKIHsKICAgICAvLyBG
SVhNRTogSGFyZHdhcmUgZmlsdGVyIGFuaW1hdGlvbiBub3QgaW1wbGVtZW50ZWQgb24gV2luZG93
cwogfQogI2VuZGlmCiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weUZyb21WYWx1ZUZy
b20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb25XaW46OmNvcHlGcm9tVmFsdWVGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZh
bHVlKQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMgfHwgdmFsdWUtPmFuaW1h
dGlvblR5cGUoKSAhPSBCYXNpYykKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIENBQ0ZBbmlt
YXRpb25TZXRGcm9tVmFsdWUobV9hbmltYXRpb24uZ2V0KCksIENBQ0ZBbmltYXRpb25HZXRGcm9t
VmFsdWUodmFsdWUtPnBsYXRmb3JtQW5pbWF0aW9uKCkpKTsKKyAgICBDQUNGQW5pbWF0aW9uU2V0
RnJvbVZhbHVlKG1fYW5pbWF0aW9uLmdldCgpLCBDQUNGQW5pbWF0aW9uR2V0RnJvbVZhbHVlKHRv
UGxhdGZvcm1DQUFuaW1hdGlvbldpbih2YWx1ZSktPnBsYXRmb3JtQW5pbWF0aW9uKCkpKTsKIH0K
IAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUb1ZhbHVlKGZsb2F0IHZhbHVlKQordm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRUb1ZhbHVlKGZsb2F0IHZhbHVlKQogewogICAg
IGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKQEAgLTM5Nyw3
ICszOTgsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRvVmFsdWUoZmxvYXQgdmFs
dWUpCiAgICAgQ0FDRkFuaW1hdGlvblNldFRvVmFsdWUobV9hbmltYXRpb24uZ2V0KCksIHYuZ2V0
KCkpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRvVmFsdWUoY29uc3QgV2Vi
Q29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0
aW9uV2luOjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JiB2
YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1
cm47CkBAIC00MDYsNyArNDA3LDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUb1Zh
bHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JiB2YWx1ZSkKICAgICBDQUNG
QW5pbWF0aW9uU2V0VG9WYWx1ZShtX2FuaW1hdGlvbi5nZXQoKSwgdi5nZXQoKSk7CiB9CiAKLXZv
aWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VG9WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmIHZh
bHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRUb1ZhbHVlKGNvbnN0IEZsb2F0
UG9pbnQzRCYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKICAg
ICAgICAgcmV0dXJuOwpAQCAtNDE2LDcgKzQxNyw3IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
bjo6c2V0VG9WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmIHZhbHVlKQogICAgIENBQ0ZBbmltYXRp
b25TZXRUb1ZhbHVlKG1fYW5pbWF0aW9uLmdldCgpLCB2LmdldCgpKTsKIH0KIAotdm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiB2YWx1ZSkK
K3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6c2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpD
b2xvciYgdmFsdWUpCiB7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKICAgICAg
ICAgcmV0dXJuOwpAQCAtNDI3LDIzICs0MjgsMjIgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiB2YWx1ZSkKIH0KIAogI2lmIEVOQUJM
RShDU1NfRklMVEVSUykKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VG9WYWx1ZShjb25z
dCBGaWx0ZXJPcGVyYXRpb24qLCBpbnQpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNl
dFRvVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiwgaW50KQogewogICAgIC8vIEZJWE1FOiBI
YXJkd2FyZSBmaWx0ZXIgYW5pbWF0aW9uIG5vdCBpbXBsZW1lbnRlZCBvbiBXaW5kb3dzCiB9CiAj
ZW5kaWYKIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5VG9WYWx1ZUZyb20oY29uc3Qg
UGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46
OmNvcHlUb1ZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIHsKICAg
ICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljIHx8IHZhbHVlLT5hbmltYXRpb25UeXBlKCkg
IT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKICAgICAgICAgCi0gICAgQ0FDRkFuaW1hdGlvblNl
dFRvVmFsdWUobV9hbmltYXRpb24uZ2V0KCksIENBQ0ZBbmltYXRpb25HZXRUb1ZhbHVlKHZhbHVl
LT5wbGF0Zm9ybUFuaW1hdGlvbigpKSk7CisgICAgQ0FDRkFuaW1hdGlvblNldFRvVmFsdWUobV9h
bmltYXRpb24uZ2V0KCksIENBQ0ZBbmltYXRpb25HZXRUb1ZhbHVlKHRvUGxhdGZvcm1DQUFuaW1h
dGlvbldpbih2YWx1ZSktPnBsYXRmb3JtQW5pbWF0aW9uKCkpKTsKIH0KIAotCiAvLyBLZXlmcmFt
ZS1hbmltYXRpb24gcHJvcGVydGllcy4KLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFs
dWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
V2luOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYgdmFsdWUpCiB7CiAgICAgaWYgKGFu
aW1hdGlvblR5cGUoKSAhPSBLZXlmcmFtZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDU3LDcgKzQ1
Nyw3IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3Rvcjxm
bG9hdD4mIHZhbHVlKQogICAgIENBQ0ZBbmltYXRpb25TZXRWYWx1ZXMobV9hbmltYXRpb24uZ2V0
KCksIGFycmF5LmdldCgpKTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRWYWx1
ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiYgdmFsdWUpCit2
b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg+JiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlw
ZSgpICE9IEtleWZyYW1lKQogICAgICAgICByZXR1cm47CkBAIC00NzEsNyArNDcxLDcgQEAgdm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRy
YW5zZm9ybWF0aW9uTWF0cml4PiYKICAgICBDQUNGQW5pbWF0aW9uU2V0VmFsdWVzKG1fYW5pbWF0
aW9uLmdldCgpLCBhcnJheS5nZXQoKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6
c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxGbG9hdFBvaW50M0Q+JiB2YWx1ZSkKK3ZvaWQgUGxhdGZv
cm1DQUFuaW1hdGlvbldpbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxGbG9hdFBvaW50M0Q+JiB2
YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZyYW1lKQogICAgICAgICBy
ZXR1cm47CkBAIC00ODYsNyArNDg2LDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRW
YWx1ZXMoY29uc3QgVmVjdG9yPEZsb2F0UG9pbnQzRD4mIHZhbHVlKQogICAgIENBQ0ZBbmltYXRp
b25TZXRWYWx1ZXMobV9hbmltYXRpb24uZ2V0KCksIGFycmF5LmdldCgpKTsKIH0KIAotdm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbG9y
PiYgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldFZhbHVlcyhjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6Q29sb3I+JiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgp
ICE9IEtleWZyYW1lKQogICAgICAgICByZXR1cm47CkBAIC01MDIsMjEgKzUwMiwyMSBAQCB2b2lk
IFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29s
b3I+JiB2YWx1ZSkKIH0KIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLXZvaWQgUGxhdGZvcm1D
QUFuaW1hdGlvbjo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0aW9u
PiA+JiwgaW50KQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRWYWx1ZXMoY29uc3Qg
VmVjdG9yPFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+ID4mLCBpbnQpCiB7CiAgICAgLy8gRklYTUU6
IEhhcmR3YXJlIGZpbHRlciBhbmltYXRpb24gbm90IGltcGxlbWVudGVkIG9uIFdpbmRvd3MKIH0K
ICNlbmRpZgogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OmNvcHlWYWx1ZXNGcm9tKGNvbnN0
IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uV2lu
Ojpjb3B5VmFsdWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIHsKICAg
ICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZyYW1lIHx8IHZhbHVlLT5hbmltYXRpb25UeXBl
KCkgIT0gS2V5ZnJhbWUpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBDQUNGQW5pbWF0aW9u
U2V0VmFsdWVzKG1fYW5pbWF0aW9uLmdldCgpLCBDQUNGQW5pbWF0aW9uR2V0VmFsdWVzKHZhbHVl
LT5wbGF0Zm9ybUFuaW1hdGlvbigpKSk7CisgICAgQ0FDRkFuaW1hdGlvblNldFZhbHVlcyhtX2Fu
aW1hdGlvbi5nZXQoKSwgQ0FDRkFuaW1hdGlvbkdldFZhbHVlcyh0b1BsYXRmb3JtQ0FBbmltYXRp
b25XaW4odmFsdWUpLT5wbGF0Zm9ybUFuaW1hdGlvbigpKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1D
QUFuaW1hdGlvbjo6c2V0S2V5VGltZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYgdmFsdWUpCit2b2lk
IFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldEtleVRpbWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4m
IHZhbHVlKQogewogICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gS2V5ZnJhbWUpCiAgICAgICAg
IHJldHVybjsKQEAgLTUzMCwxNSArNTMwLDE1IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6
c2V0S2V5VGltZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYgdmFsdWUpCiAgICAgQ0FDRkFuaW1hdGlv
blNldEtleVRpbWVzKG1fYW5pbWF0aW9uLmdldCgpLCBhcnJheS5nZXQoKSk7CiB9CiAKLXZvaWQg
UGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weUtleVRpbWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5p
bWF0aW9uKiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6Y29weUtleVRpbWVz
RnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIHsKICAgICBpZiAoYW5pbWF0
aW9uVHlwZSgpICE9IEtleWZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBDQUNGQW5pbWF0
aW9uU2V0S2V5VGltZXMobV9hbmltYXRpb24uZ2V0KCksIENBQ0ZBbmltYXRpb25HZXRLZXlUaW1l
cyh2YWx1ZS0+cGxhdGZvcm1BbmltYXRpb24oKSkpOworICAgIENBQ0ZBbmltYXRpb25TZXRLZXlU
aW1lcyhtX2FuaW1hdGlvbi5nZXQoKSwgQ0FDRkFuaW1hdGlvbkdldEtleVRpbWVzKHRvUGxhdGZv
cm1DQUFuaW1hdGlvbldpbih2YWx1ZSktPnBsYXRmb3JtQW5pbWF0aW9uKCkpKTsKIH0KIAotdm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNv
bnN0IFRpbWluZ0Z1bmN0aW9uKj4mIHZhbHVlLCBib29sIHJldmVyc2UpCit2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25XaW46OnNldFRpbWluZ0Z1bmN0aW9ucyhjb25zdCBWZWN0b3I8Y29uc3QgVGlt
aW5nRnVuY3Rpb24qPiYgdmFsdWUsIGJvb2wgcmV2ZXJzZSkKIHsKICAgICBVTlVTRURfUEFSQU0o
cmV2ZXJzZSk7CiAgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBLZXlmcmFtZSkKQEAgLTU1Myw3
ICs1NTMsOSBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRpbWluZ0Z1bmN0aW9ucyhj
b25zdCBWZWN0b3I8Y29uc3QgVGltaW5nRnVuY3Rpb24qPgogICAgIENBQ0ZBbmltYXRpb25TZXRU
aW1pbmdGdW5jdGlvbnMobV9hbmltYXRpb24uZ2V0KCksIGFycmF5LmdldCgpKTsKIH0KIAotdm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShjb25zdCBQbGF0
Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbldpbjo6Y29w
eVRpbWluZ0Z1bmN0aW9uc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCiB7
Ci0gICAgQ0FDRkFuaW1hdGlvblNldFRpbWluZ0Z1bmN0aW9ucyhtX2FuaW1hdGlvbi5nZXQoKSwg
Q0FDRkFuaW1hdGlvbkdldFRpbWluZ0Z1bmN0aW9ucyh2YWx1ZS0+cGxhdGZvcm1BbmltYXRpb24o
KSkpOworICAgIENBQ0ZBbmltYXRpb25TZXRUaW1pbmdGdW5jdGlvbnMobV9hbmltYXRpb24uZ2V0
KCksIENBQ0ZBbmltYXRpb25HZXRUaW1pbmdGdW5jdGlvbnModG9QbGF0Zm9ybUNBQW5pbWF0aW9u
V2luKHZhbHVlKS0+cGxhdGZvcm1BbmltYXRpb24oKSkpOwogfQorCisjZW5kaWYgLy8gUExBVEZP
Uk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
d2luL1BsYXRmb3JtQ0FBbmltYXRpb25XaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQyYjE5
ZjQzYjc0NTA3YWNhNDU2Y2M3YzUxNTM4YzQyYzMzNzE4YwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9u
V2luLmgKQEAgLTAsMCArMSwxMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luX2gKKyNkZWZpbmUg
UGxhdGZvcm1DQUFuaW1hdGlvbldpbl9oCisKKyNpZiBQTEFURk9STShXSU4pCisKKyNpbmNsdWRl
ICJQbGF0Zm9ybUNBQW5pbWF0aW9uLmgiCisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCit0
eXBlZGVmIHN0cnVjdCBfQ0FDRkFuaW1hdGlvbiogQ0FDRkFuaW1hdGlvblJlZjsKK3R5cGVkZWYg
Q0FDRkFuaW1hdGlvblJlZiBQbGF0Zm9ybUFuaW1hdGlvblJlZjsKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luIGZpbmFsIDogcHVibGljIFBsYXRm
b3JtQ0FBbmltYXRpb24geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsYXRmb3Jt
Q0FBbmltYXRpb24+IGNyZWF0ZShBbmltYXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGtleVBhdGgp
OworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGNyZWF0ZShQbGF0
Zm9ybUFuaW1hdGlvblJlZik7CisKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybUNBQW5pbWF0aW9uV2lu
KCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNQbGF0Zm9ybUNBQW5pbWF0aW9uV2luKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIAorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQ
bGF0Zm9ybUNBQW5pbWF0aW9uPiBjb3B5KCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICBQbGF0Zm9y
bUFuaW1hdGlvblJlZiBwbGF0Zm9ybUFuaW1hdGlvbigpIGNvbnN0OworICAgIAorICAgIHZpcnR1
YWwgU3RyaW5nIGtleVBhdGgoKSBjb25zdCBvdmVycmlkZTsKKyAgICAKKyAgICB2aXJ0dWFsIENG
VGltZUludGVydmFsIGJlZ2luVGltZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRCZWdpblRpbWUoQ0ZUaW1lSW50ZXJ2YWwpIG92ZXJyaWRlOworICAgIAorICAgIHZpcnR1
YWwgQ0ZUaW1lSW50ZXJ2YWwgZHVyYXRpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0RHVyYXRpb24oQ0ZUaW1lSW50ZXJ2YWwpIG92ZXJyaWRlOworICAgIAorICAgIHZp
cnR1YWwgZmxvYXQgc3BlZWQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
U3BlZWQoZmxvYXQpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBDRlRpbWVJbnRlcnZhbCB0aW1l
T2Zmc2V0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFRpbWVPZmZzZXQo
Q0ZUaW1lSW50ZXJ2YWwpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBmbG9hdCByZXBlYXRDb3Vu
dCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRSZXBlYXRDb3VudChmbG9h
dCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIGJvb2wgYXV0b3JldmVyc2VzKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEF1dG9yZXZlcnNlcyhib29sKSBvdmVycmlkZTsK
KworICAgIHZpcnR1YWwgRmlsbE1vZGVUeXBlIGZpbGxNb2RlKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHNldEZpbGxNb2RlKEZpbGxNb2RlVHlwZSkgb3ZlcnJpZGU7CisgICAg
CisgICAgdmlydHVhbCB2b2lkIHNldFRpbWluZ0Z1bmN0aW9uKGNvbnN0IFRpbWluZ0Z1bmN0aW9u
KiwgYm9vbCByZXZlcnNlID0gZmFsc2UpIG92ZXJyaWRlOworICAgIHZvaWQgY29weVRpbWluZ0Z1
bmN0aW9uRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CisKKyAgICB2
aXJ0dWFsIGJvb2wgaXNSZW1vdmVkT25Db21wbGV0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHNldFJlbW92ZWRPbkNvbXBsZXRpb24oYm9vbCkgb3ZlcnJpZGU7CisKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNBZGRpdGl2ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzZXRBZGRpdGl2ZShib29sKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgVmFsdWVGdW5j
dGlvblR5cGUgdmFsdWVGdW5jdGlvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRWYWx1ZUZ1bmN0aW9uKFZhbHVlRnVuY3Rpb25UeXBlKSBvdmVycmlkZTsKKworICAgIC8v
IEJhc2ljLWFuaW1hdGlvbiBwcm9wZXJ0aWVzLgorICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFs
dWUoZmxvYXQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3Qg
V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0RnJvbVZhbHVlKGNvbnN0IEZsb2F0UG9pbnQzRCYpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVycmlkZTsKKyNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShjb25z
dCBGaWx0ZXJPcGVyYXRpb24qLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KSBvdmVy
cmlkZTsKKyNlbmRpZgorICAgIHZpcnR1YWwgdm9pZCBjb3B5RnJvbVZhbHVlRnJvbShjb25zdCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9W
YWx1ZShmbG9hdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFRvVmFsdWUoY29uc3Qg
V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0VG9WYWx1ZShjb25zdCBGbG9hdFBvaW50M0QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYpIG92ZXJyaWRlOworI2lmIEVO
QUJMRShDU1NfRklMVEVSUykKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBGaWx0
ZXJPcGVyYXRpb24qLCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KSBvdmVycmlkZTsK
KyNlbmRpZgorICAgIHZpcnR1YWwgdm9pZCBjb3B5VG9WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1D
QUFuaW1hdGlvbiopIG92ZXJyaWRlOworCisgICAgLy8gS2V5ZnJhbWUtYW5pbWF0aW9uIHByb3Bl
cnRpZXMuCisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8ZmxvYXQ+Jikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg+Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNl
dFZhbHVlcyhjb25zdCBWZWN0b3I8RmxvYXRQb2ludDNEPiYpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbG9yPiYpIG92ZXJyaWRl
OworI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNv
bnN0IFZlY3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPj4mLCBpbnQgaW50ZXJuYWxGaWx0ZXJQ
cm9wZXJ0eUluZGV4KSBvdmVycmlkZTsKKyNlbmRpZgorICAgIHZpcnR1YWwgdm9pZCBjb3B5VmFs
dWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0S2V5VGltZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBjb3B5S2V5VGltZXNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24q
KSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3Qg
VmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4mLCBib29sIHJldmVyc2UgPSBmYWxzZSkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvcHlUaW1pbmdGdW5jdGlvbnNGcm9tKGNvbnN0IFBs
YXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKKworcHJvdGVjdGVkOgorICAgIFBsYXRmb3Jt
Q0FBbmltYXRpb25XaW4oQW5pbWF0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKTsKKyAg
ICBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luKFBsYXRmb3JtQW5pbWF0aW9uUmVmKTsKKworcHJpdmF0
ZToKKyAgICBSZXRhaW5QdHI8Q0FDRkFuaW1hdGlvblJlZj4gbV9hbmltYXRpb247Cit9OworCitQ
TEFURk9STV9DQUFOSU1BVElPTl9UWVBFX0NBU1RTKFBsYXRmb3JtQ0FBbmltYXRpb25XaW4sIGlz
UGxhdGZvcm1DQUFuaW1hdGlvbldpbigpKQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShXSU4p
CisKKyNlbmRpZiAvLyBQbGF0Zm9ybUNBQW5pbWF0aW9uV2luX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXll
cldpbi5jcHAKaW5kZXggZWUwNzE3ZTdiOTdmZDQ1MWYzM2Y0YzAwYmNmMzYxY2FjNzYyZmNhMC4u
YTk0MTVmNGVhYWVkZDE5YzBmOGRkOGM1MmVmYTdiZDQ1YjhkYzY0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3Jt
Q0FMYXllcldpbi5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJBYnN0cmFjdENBQ0ZM
YXllclRyZWVIb3N0LmgiCiAjaW5jbHVkZSAiRm9udC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29u
dGV4dC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtQ0FBbmltYXRpb25XaW4uaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbC5oIgogI2luY2x1ZGUgPFF1YXJ0ekNvcmUvQ29yZUFu
aW1hdGlvbkNGLmg+CiAjaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3Rl
bUludGVyZmFjZS5oPgpAQCAtMjg0LDcgKzI4NSw3IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyV2lu
OjphZGRBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIFBsYXRmb3JtQ0FBbmltYXRp
CiAgICAgLy8gQWRkIGl0IHRvIHRoZSBhbmltYXRpb24gbGlzdAogICAgIG1fYW5pbWF0aW9ucy5h
ZGQoa2V5LCBhbmltYXRpb24pOwogCi0gICAgQ0FDRkxheWVyQWRkQW5pbWF0aW9uKG1fbGF5ZXIu
Z2V0KCksIGtleS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBhbmltYXRpb24tPnBsYXRmb3JtQW5p
bWF0aW9uKCkpOworICAgIENBQ0ZMYXllckFkZEFuaW1hdGlvbihtX2xheWVyLmdldCgpLCBrZXku
Y3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgdG9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luKGFuaW1hdGlv
biktPnBsYXRmb3JtQW5pbWF0aW9uKCkpOwogICAgIHNldE5lZWRzQ29tbWl0KCk7CiAKICAgICAv
LyBUZWxsIHRoZSBob3N0IGFib3V0IGl0IHNvIHdlIGNhbiBmaXJlIHRoZSBzdGFydCBhbmltYXRp
b24gZXZlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWwuY3BwCmluZGV4
IDNlZDg5MTU3ZjcyMTA5NDE2Nzg1NTc3MDE5MjU5Y2IzODRmMjczNzQuLjM5ZjM5ZmE1NWIyZDNi
ZjU3MjMwMTk5YTEwZGZkMDk1YTUzZWNiNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXll
cldpbkludGVybmFsLmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRm9udC5oIgog
I2luY2x1ZGUgIkZvbnRDYWNoZS5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtQ0FMYXllci5oIgogI2luY2x1ZGUgIlRleHRSdW4uaCIKICNpbmNsdWRl
IDxRdWFydHpDb3JlL0NBQ0ZMYXllci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
QXJndW1lbnRDb2RlcnMuaAppbmRleCAyOTc0MTNmMzhhMWNhZTU0NzhiYzE2YTgzMTAzNWExZDNh
MTlhYmUzLi5hZThjNmZiYTdmMDkyMzZlOTAxNmZlZDk2OTBkYzk0ZjI4ZjIwYTM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaApAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgPHV0aWxpdHk+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTE5Myw2ICsxOTQsNDAgQEAgdGVt
cGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hB
cmcsIHR5cGVuYW1lIEtleVRyYWkKICAgICB9CiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlB
cmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZz4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8SGFzaFNldDxLZXlBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZz4+IHsKKyAgICB0
eXBlZGVmIEhhc2hTZXQ8S2V5QXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmc+IEhhc2hTZXRUeXBl
OworCisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29u
c3QgSGFzaFNldFR5cGUmIGhhc2hTZXQpCisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHN0YXRp
Y19jYXN0PHVpbnQ2NF90PihoYXNoU2V0LnNpemUoKSk7CisgICAgICAgIGZvciAodHlwZW5hbWUg
SGFzaFNldFR5cGU6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gaGFzaFNldC5iZWdpbigpLCBlbmQgPSBo
YXNoU2V0LmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpCisgICAgICAgICAgICBlbmNvZGVyIDw8ICpp
dDsKKyAgICB9CisKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNv
ZGVyLCBIYXNoU2V0VHlwZSYgaGFzaFNldCkKKyAgICB7CisgICAgICAgIHVpbnQ2NF90IGhhc2hT
ZXRTaXplOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc2hTZXRTaXplKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBIYXNoU2V0VHlwZSB0ZW1wSGFzaFNldDsK
KyAgICAgICAgZm9yICh1aW50NjRfdCBpID0gMDsgaSA8IGhhc2hTZXRTaXplOyArK2kpIHsKKyAg
ICAgICAgICAgIEtleUFyZyBrZXk7CisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGtl
eSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBpZiAoIXRl
bXBIYXNoU2V0LmFkZChrZXkpLmlzTmV3RW50cnkpIHsKKyAgICAgICAgICAgICAgICAvLyBUaGUg
aGFzaCBtYXAgYWxyZWFkeSBoYXMgdGhlIHNwZWNpZmllZCBrZXksIGJhaWwuCisgICAgICAgICAg
ICAgICAgZGVjb2Rlci5tYXJrSW52YWxpZCgpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGhhc2hTZXQuc3dhcCh0ZW1w
SGFzaFNldCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK307CisKIHRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8QXRvbWljU3RyaW5nPiB7CiAgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgIHN0YXRpYyBi
b29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBBdG9taWNTdHJpbmcmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggMTQzZmE3ODE0
ZTEzZWMxNjhhZDI2MTI1M2FjNzhjNmEwZTY2YzZhYi4uYmE5YmE5YmQ4MmVlZGE2NmRiMTM3MDlk
NWE0ZGMxZTE4YzJjZmI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHAKQEAgLTU5LDYgKzU5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9U
aW1pbmdGdW5jdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVHJhbnNmb3JtYXRpb25NYXRyaXgu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1VSTC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlclNjcmlw
dC5oPgpAQCAtOTAsNyArOTEsNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3Jt
Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgQWZmaW5lVHJhbgogICAgIHJldHVy
biBTaW1wbGVBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmRlY29kZShkZWNvZGVyLCBh
ZmZpbmVUcmFuc2Zvcm0pOwogfQogCi0KIHZvaWQgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1hdGlv
bk1hdHJpeD46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRyYW5zZm9y
bWF0aW9uTWF0cml4JiB0cmFuc2Zvcm1hdGlvbk1hdHJpeCkKIHsKICAgICBTaW1wbGVBcmd1bWVu
dENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlKGVuY29kZXIsIHRyYW5zZm9ybWF0
aW9uTWF0cml4KTsKQEAgLTEwMSw2ICsxMDEsODMgQEAgYm9vbCBBcmd1bWVudENvZGVyPFRyYW5z
Zm9ybWF0aW9uTWF0cml4Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgVHJhbnMK
ICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD46OmRl
Y29kZShkZWNvZGVyLCB0cmFuc2Zvcm1hdGlvbk1hdHJpeCk7CiB9CiAKK3ZvaWQgQXJndW1lbnRD
b2RlcjxMaW5lYXJUaW1pbmdGdW5jdGlvbj46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IExpbmVhclRpbWluZ0Z1bmN0aW9uJiB0aW1pbmdGdW5jdGlvbikKK3sKKyAgICBl
bmNvZGVyLmVuY29kZUVudW0odGltaW5nRnVuY3Rpb24udHlwZSgpKTsKK30KKworYm9vbCBBcmd1
bWVudENvZGVyPExpbmVhclRpbWluZ0Z1bmN0aW9uPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYg
ZGVjb2RlciwgTGluZWFyVGltaW5nRnVuY3Rpb24mIHRpbWluZ0Z1bmN0aW9uKQoreworICAgIC8v
IFR5cGUgaXMgZGVjb2RlZCBieSB0aGUgY2FsbGVyLiBOb3RoaW5nIGVsc2UgdG8gZGVjb2RlLgor
ICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEFyZ3VtZW50Q29kZXI8Q3ViaWNCZXppZXJUaW1p
bmdGdW5jdGlvbj46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEN1Ymlj
QmV6aWVyVGltaW5nRnVuY3Rpb24mIHRpbWluZ0Z1bmN0aW9uKQoreworICAgIGVuY29kZXIuZW5j
b2RlRW51bSh0aW1pbmdGdW5jdGlvbi50eXBlKCkpOworICAgIAorICAgIGVuY29kZXIgPDwgdGlt
aW5nRnVuY3Rpb24ueDEoKTsKKyAgICBlbmNvZGVyIDw8IHRpbWluZ0Z1bmN0aW9uLnkxKCk7Cisg
ICAgZW5jb2RlciA8PCB0aW1pbmdGdW5jdGlvbi54MigpOworICAgIGVuY29kZXIgPDwgdGltaW5n
RnVuY3Rpb24ueTIoKTsKKyAgICAKKyAgICBlbmNvZGVyLmVuY29kZUVudW0odGltaW5nRnVuY3Rp
b24udGltaW5nRnVuY3Rpb25QcmVzZXQoKSk7Cit9CisKK2Jvb2wgQXJndW1lbnRDb2RlcjxDdWJp
Y0JlemllclRpbWluZ0Z1bmN0aW9uPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwg
Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbiYgdGltaW5nRnVuY3Rpb24pCit7CisgICAgLy8gVHlw
ZSBpcyBkZWNvZGVkIGJ5IHRoZSBjYWxsZXIuCisgICAgZG91YmxlIHgxOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoeDEpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBkb3VibGUgeTE7
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh5MSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGRvdWJsZSB4MjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHgyKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgZG91YmxlIHkyOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoeTIp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9u
OjpUaW1pbmdGdW5jdGlvblByZXNldCBwcmVzZXQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVu
dW0ocHJlc2V0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgdGltaW5nRnVuY3Rpb24u
c2V0VmFsdWVzKHgxLCB5MSwgeDIsIHkyKTsKKyAgICB0aW1pbmdGdW5jdGlvbi5zZXRUaW1pbmdG
dW5jdGlvblByZXNldChwcmVzZXQpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgQXJn
dW1lbnRDb2RlcjxTdGVwc1RpbWluZ0Z1bmN0aW9uPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgU3RlcHNUaW1pbmdGdW5jdGlvbiYgdGltaW5nRnVuY3Rpb24pCit7Cisg
ICAgZW5jb2Rlci5lbmNvZGVFbnVtKHRpbWluZ0Z1bmN0aW9uLnR5cGUoKSk7CisgICAgCisgICAg
ZW5jb2RlciA8PCB0aW1pbmdGdW5jdGlvbi5udW1iZXJPZlN0ZXBzKCk7CisgICAgZW5jb2RlciA8
PCB0aW1pbmdGdW5jdGlvbi5zdGVwQXRTdGFydCgpOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8
U3RlcHNUaW1pbmdGdW5jdGlvbj46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFN0
ZXBzVGltaW5nRnVuY3Rpb24mIHRpbWluZ0Z1bmN0aW9uKQoreworICAgIC8vIFR5cGUgaXMgZGVj
b2RlZCBieSB0aGUgY2FsbGVyLgorICAgIGludCBudW1TdGVwczsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKG51bVN0ZXBzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYm9vbCBzdGVw
QXRTdGFydDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0ZXBBdFN0YXJ0KSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgdGltaW5nRnVuY3Rpb24uc2V0TnVtYmVyT2ZTdGVwcyhudW1T
dGVwcyk7CisgICAgdGltaW5nRnVuY3Rpb24uc2V0U3RlcEF0U3RhcnQoc3RlcEF0U3RhcnQpOwor
CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6
ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRQb2ludCYgZmxvYXRQ
b2ludCkKIHsKICAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjplbmNvZGUoZW5j
b2RlciwgZmxvYXRQb2ludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKaW5kZXggZjU5ZmQzMWY3YmRkMGIzN2Q5ZTJmZjVhOTVlNjA4Mjg5NTM2ZDEy
My4uYmEzZTdiNTdhNjFkOTEwYTdkYzRmZWVhM2M1MjU1ZjU1NTM4MGMwZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMzQsNiArMzQsNyBA
QCBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKIGNsYXNzIENlcnRpZmljYXRlSW5mbzsK
IGNsYXNzIENvbG9yOwogY2xhc3MgQ3JlZGVudGlhbDsKK2NsYXNzIEN1YmljQmV6aWVyVGltaW5n
RnVuY3Rpb247CiBjbGFzcyBDdXJzb3I7CiBjbGFzcyBEYXRhYmFzZURldGFpbHM7CiBjbGFzcyBG
aWx0ZXJPcGVyYXRpb25zOwpAQCAtNDgsNyArNDksNyBAQCBjbGFzcyBJbnRQb2ludDsKIGNsYXNz
IEludFJlY3Q7CiBjbGFzcyBJbnRTaXplOwogY2xhc3MgS2V5ZnJhbWVWYWx1ZUxpc3Q7Ci1jbGFz
cyBVUkw7CitjbGFzcyBMaW5lYXJUaW1pbmdGdW5jdGlvbjsKIGNsYXNzIE5vdGlmaWNhdGlvbjsK
IGNsYXNzIFByb3RlY3Rpb25TcGFjZTsKIGNsYXNzIFJlZ2lvbjsKQEAgLTU2LDExICs1NywxMyBA
QCBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVz
b3VyY2VSZXNwb25zZTsKIGNsYXNzIFNlc3Npb25JRDsKK2NsYXNzIFN0ZXBzVGltaW5nRnVuY3Rp
b247CiBjbGFzcyBTdGlja3lQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM7CiBjbGFzcyBUZXh0
Q2hlY2tpbmdSZXF1ZXN0RGF0YTsKIGNsYXNzIFRyYW5zZm9ybWF0aW9uTWF0cml4OwogY2xhc3Mg
VXNlclN0eWxlU2hlZXQ7CiBjbGFzcyBVc2VyU2NyaXB0OworY2xhc3MgVVJMOwogc3RydWN0IENv
bXBvc2l0aW9uVW5kZXJsaW5lOwogc3RydWN0IENvb2tpZTsKIHN0cnVjdCBEaWN0YXRpb25BbHRl
cm5hdGl2ZTsKQEAgLTExMiw2ICsxMTUsMjEgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeD4gewogICAgIHN0YXRpYyBib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwog
fTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpMaW5lYXJUaW1p
bmdGdW5jdGlvbj4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpMaW5lYXJUaW1pbmdGdW5jdGlvbiYpOworICAgIHN0YXRpYyBib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpMaW5lYXJUaW1pbmdGdW5jdGlvbiYpOwor
fTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDdWJpY0Jlemll
clRpbWluZ0Z1bmN0aW9uPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OkN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24mKTsKKyAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6Q3ViaWNCZXppZXJUaW1p
bmdGdW5jdGlvbiYpOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpTdGVwc1RpbWluZ0Z1bmN0aW9uPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlN0ZXBzVGltaW5nRnVuY3Rpb24mKTsKKyAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6U3RlcHNUaW1pbmdG
dW5jdGlvbiYpOworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpDZXJ0aWZpY2F0ZUluZm8+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJik7CiAgICAgc3RhdGljIGJvb2wg
ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9y
ZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUu
bW0KaW5kZXggNjdkYTllYjcyMDAxOTQ0NWY4ZTNiNDg4ZTQ0ZDI1ODc5MWU1NDEyZS4uNGU3MmU1
YmVlMjVjOTFiYjMxZjIwYjFmNGFjMWU1NzljZjU2MjgwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCkBAIC00OSw3ICs0
OSw4IEBACiBAZW5kCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotdXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKKworbmFtZXNwYWNlIFdlYktpdCB7CiAKIFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZSgpCiAgICAgOiBtX2xheWVyKG51bGxwdHIpCkBAIC0z
MjEsMyArMzIyLDUgQEAgdm9pZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6YXBwbHlCYWNraW5n
U3RvcmVUb0xheWVyKENBTGF5ZXIgKmxheWVyKQogCiAgICAgbGF5ZXIuY29udGVudHNPcGFxdWUg
PSBtX2lzT3BhcXVlOwogfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGll
ci5oCmluZGV4IGU3YzAyNjg2MWFkOWNjNTM5MGQyMTFhMmJkODBhYTNlZDFkZDRhYjMuLjM3ZWFm
NWRiYTMxYzZjOWIxNzA2YWI3ZmM2MDRmMzdjYzg3NThhYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIu
aApAQCAtMzIsMTIgKzMyLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBSZW1v
dGVMYXllclRyZWVIb3N0OworCiBjbGFzcyBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIg
ewogcHVibGljOgogICAgIHR5cGVkZWYgSGFzaE1hcDxXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQ
bGF0Zm9ybUxheWVySUQsIExheWVyT3JWaWV3ICo+IFJlbGF0ZWRMYXllck1hcDsKLSAgICBzdGF0
aWMgdm9pZCBhcHBseVByb3BlcnRpZXMoQ0FMYXllciAqLCBjb25zdCBSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzJiwgY29uc3QgUmVsYXRlZExheWVyTWFwJik7Cisg
ICAgc3RhdGljIHZvaWQgYXBwbHlQcm9wZXJ0aWVzKENBTGF5ZXIgKiwgUmVtb3RlTGF5ZXJUcmVl
SG9zdCosIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMm
LCBjb25zdCBSZWxhdGVkTGF5ZXJNYXAmKTsKICNpZiBQTEFURk9STShJT1MpCi0gICAgc3RhdGlj
IHZvaWQgYXBwbHlQcm9wZXJ0aWVzKFVJVmlldyAqLCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFu
c2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzJiwgY29uc3QgUmVsYXRlZExheWVyTWFwJik7CisgICAg
c3RhdGljIHZvaWQgYXBwbHlQcm9wZXJ0aWVzKFVJVmlldyAqLCBSZW1vdGVMYXllclRyZWVIb3N0
KiwgY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllcyYsIGNv
bnN0IFJlbGF0ZWRMYXllck1hcCYpOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLm1t
CmluZGV4IGRkMmU3MjI5MTljZjViOTkyNWY3OGIzMjU0N2ZhYjliOWIzY2VlMGQuLjhiMDgzMTUz
ZTgzZjI5ZGM1ZWQwN2ZhOGU2NTRlZmY3ODRjYzQ0YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLm1t
CkBAIC0yNiw3ICsyNiw5IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlJlbW90ZUxh
eWVyVHJlZVByb3BlcnR5QXBwbGllci5oIgogCisjaW1wb3J0ICJQbGF0Zm9ybUNBQW5pbWF0aW9u
UmVtb3RlLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaCIKKyNpbXBvcnQgIlJl
bW90ZUxheWVyVHJlZUhvc3QuaCIKICNpbXBvcnQgPFF1YXJ0ekNvcmUvQ0FMYXllci5oPgogI2lt
cG9ydCA8V2ViQ29yZS9CbG9ja0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZv
cm1DQUZpbHRlcnMuaD4KQEAgLTExMSw3ICsxMTMsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVDdXN0
b21BcHBlYXJhbmNlKENBTGF5ZXIgKmxheWVyLCBHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJh
bgogI2VuZGlmCiB9CiAKLXN0YXRpYyB2b2lkIGFwcGx5UHJvcGVydGllc1RvTGF5ZXIoQ0FMYXll
ciAqbGF5ZXIsIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRp
ZXMmIHByb3BlcnRpZXMpCitzdGF0aWMgdm9pZCBhcHBseVByb3BlcnRpZXNUb0xheWVyKENBTGF5
ZXIgKmxheWVyLCBSZW1vdGVMYXllclRyZWVIb3N0KiBsYXllclRyZWVIb3N0LCBjb25zdCBSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzKQogewog
ICAgIGlmIChwcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJh
bnNhY3Rpb246Ok5hbWVDaGFuZ2VkKQogICAgICAgICBsYXllci5uYW1lID0gcHJvcGVydGllcy5u
YW1lOwpAQCAtMTI4LDcgKzEzMCw3IEBAIHN0YXRpYyB2b2lkIGFwcGx5UHJvcGVydGllc1RvTGF5
ZXIoQ0FMYXllciAqbGF5ZXIsIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0CiAKICAgICBp
ZiAocHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0
aW9uOjpTaXplQ2hhbmdlZCkKICAgICAgICAgbGF5ZXIuYm91bmRzID0gRmxvYXRSZWN0KEZsb2F0
UG9pbnQoKSwgcHJvcGVydGllcy5zaXplKTsKLQorICAgIAogICAgIGlmIChwcm9wZXJ0aWVzLmNo
YW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkJhY2tncm91bmRD
b2xvckNoYW5nZWQpCiAgICAgICAgIGxheWVyLmJhY2tncm91bmRDb2xvciA9IGNnQ29sb3JGcm9t
Q29sb3IocHJvcGVydGllcy5iYWNrZ3JvdW5kQ29sb3IpLmdldCgpOwogCkBAIC0xOTIsNiArMTk0
LDkgQEAgc3RhdGljIHZvaWQgYXBwbHlQcm9wZXJ0aWVzVG9MYXllcihDQUxheWVyICpsYXllciwg
Y29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3QKICAgICBpZiAocHJvcGVydGllcy5jaGFuZ2Vk
UHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpGaWx0ZXJzQ2hhbmdlZCkK
ICAgICAgICAgUGxhdGZvcm1DQUZpbHRlcnM6OnNldEZpbHRlcnNPbkxheWVyKGxheWVyLCBwcm9w
ZXJ0aWVzLmZpbHRlcnMgPyAqcHJvcGVydGllcy5maWx0ZXJzIDogRmlsdGVyT3BlcmF0aW9ucygp
KTsKIAorICAgIGlmIChwcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb246OkFuaW1hdGlvbnNDaGFuZ2VkKQorICAgICAgICBQbGF0Zm9ybUNBQW5p
bWF0aW9uUmVtb3RlOjp1cGRhdGVMYXllckFuaW1hdGlvbnMobGF5ZXIsIGxheWVyVHJlZUhvc3Qs
IHByb3BlcnRpZXMuYWRkZWRBbmltYXRpb25zLCBwcm9wZXJ0aWVzLmtleVBhdGhzT2ZBbmltYXRp
b25zVG9SZW1vdmUpOworCiAgICAgaWYgKHByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6RWRnZUFudGlhbGlhc2luZ01hc2tDaGFuZ2VkKQog
ICAgICAgICBsYXllci5lZGdlQW50aWFsaWFzaW5nTWFzayA9IHByb3BlcnRpZXMuZWRnZUFudGlh
bGlhc2luZ01hc2s7CiAKQEAgLTE5OSwxMCArMjA0LDEwIEBAIHN0YXRpYyB2b2lkIGFwcGx5UHJv
cGVydGllc1RvTGF5ZXIoQ0FMYXllciAqbGF5ZXIsIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0CiAgICAgICAgIHVwZGF0ZUN1c3RvbUFwcGVhcmFuY2UobGF5ZXIsIHByb3BlcnRpZXMuY3Vz
dG9tQXBwZWFyYW5jZSk7CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVy
OjphcHBseVByb3BlcnRpZXMoQ0FMYXllciAqbGF5ZXIsIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMmIHByb3BlcnRpZXMsIGNvbnN0IFJlbGF0ZWRMYXll
ck1hcCYgcmVsYXRlZExheWVycykKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVy
OjphcHBseVByb3BlcnRpZXMoQ0FMYXllciAqbGF5ZXIsIFJlbW90ZUxheWVyVHJlZUhvc3QqIGxh
eWVyVHJlZUhvc3QsIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3Bl
cnRpZXMmIHByb3BlcnRpZXMsIGNvbnN0IFJlbGF0ZWRMYXllck1hcCYgcmVsYXRlZExheWVycykK
IHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Ci0gICAgYXBwbHlQcm9wZXJ0aWVz
VG9MYXllcihsYXllciwgcHJvcGVydGllcyk7CisgICAgYXBwbHlQcm9wZXJ0aWVzVG9MYXllcihs
YXllciwgbGF5ZXJUcmVlSG9zdCwgcHJvcGVydGllcyk7CiAKICAgICBpZiAocHJvcGVydGllcy5j
aGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpDaGlsZHJlbkNo
YW5nZWQpIHsKICAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiBjaGlsZHJlbiA9IGFk
b3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTpwcm9wZXJ0aWVz
LmNoaWxkcmVuLnNpemUoKV0pOwpAQCAtMjM2LDEwICsyNDEsMTAgQEAgdm9pZCBSZW1vdGVMYXll
clRyZWVQcm9wZXJ0eUFwcGxpZXI6OmFwcGx5UHJvcGVydGllcyhDQUxheWVyICpsYXllciwgY29u
c3QgUmVtb3QKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlUHJv
cGVydHlBcHBsaWVyOjphcHBseVByb3BlcnRpZXMoVUlWaWV3ICp2aWV3LCBjb25zdCBSZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLCBjb25zdCBS
ZWxhdGVkTGF5ZXJNYXAmIHJlbGF0ZWRMYXllcnMpCit2b2lkIFJlbW90ZUxheWVyVHJlZVByb3Bl
cnR5QXBwbGllcjo6YXBwbHlQcm9wZXJ0aWVzKFVJVmlldyAqdmlldywgUmVtb3RlTGF5ZXJUcmVl
SG9zdCogbGF5ZXJUcmVlSG9zdCwgY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246Okxh
eWVyUHJvcGVydGllcyYgcHJvcGVydGllcywgY29uc3QgUmVsYXRlZExheWVyTWFwJiByZWxhdGVk
TGF5ZXJzKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKLSAgICBhcHBseVBy
b3BlcnRpZXNUb0xheWVyKHZpZXcubGF5ZXIsIHByb3BlcnRpZXMpOworICAgIGFwcGx5UHJvcGVy
dGllc1RvTGF5ZXIodmlldy5sYXllciwgbGF5ZXJUcmVlSG9zdCwgcHJvcGVydGllcyk7CiAKICAg
ICBpZiAocHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uOjpDaGlsZHJlbkNoYW5nZWQpIHsKICAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFy
cmF5PiBjaGlsZHJlbiA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhD
YXBhY2l0eTpwcm9wZXJ0aWVzLmNoaWxkcmVuLnNpemUoKV0pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oCmluZGV4IDIx
OGI4ZDA2YTI0MDg5MDYwYmZjYTE3YWNiYzE0OWJlNDM3MWE4ZjIuLjZkMDkzMTA5Mjc1YjdmYTc5
ZTgxYzE2MTBjNjhmZGU3YTBmMTcyNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpZm5kZWYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb25faAogI2RlZmluZSBSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbl9oCiAKKyNpbmNsdWRlICJQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3Rl
LmgiCiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0NvbG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWx0ZXJPcGVyYXRpb25zLmg+CkBAIC0z
NCw2ICszNSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNBTGF5ZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1RyYW5zZm9ybWF0aW9uTWF0cml4Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTc0LDkgKzc2LDEwIEBAIHB1YmxpYzoKICAg
ICAgICAgVGltZU9mZnNldENoYW5nZWQgPSAxIDw8IDIzLAogICAgICAgICBCYWNraW5nU3RvcmVD
aGFuZ2VkID0gMSA8PCAyNCwKICAgICAgICAgRmlsdGVyc0NoYW5nZWQgPSAxIDw8IDI1LAotICAg
ICAgICBFZGdlQW50aWFsaWFzaW5nTWFza0NoYW5nZWQgPSAxIDw8IDI2LAotICAgICAgICBDdXN0
b21BcHBlYXJhbmNlQ2hhbmdlZCA9IDEgPDwgMjcsCi0gICAgICAgIEN1c3RvbUJlaGF2aW9yQ2hh
bmdlZCA9IDEgPDwgMjgKKyAgICAgICAgQW5pbWF0aW9uc0NoYW5nZWQgPSAxIDw8IDI2LAorICAg
ICAgICBFZGdlQW50aWFsaWFzaW5nTWFza0NoYW5nZWQgPSAxIDw8IDI3LAorICAgICAgICBDdXN0
b21BcHBlYXJhbmNlQ2hhbmdlZCA9IDEgPDwgMjgsCisgICAgICAgIEN1c3RvbUJlaGF2aW9yQ2hh
bmdlZCA9IDEgPDwgMjkKICAgICB9OwogICAgIHR5cGVkZWYgdW5zaWduZWQgTGF5ZXJDaGFuZ2U7
CiAKQEAgLTExMiw2ICsxMTUsMTAgQEAgcHVibGljOgogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXg+IHRyYW5zZm9ybTsKICAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4PiBzdWJsYXllclRyYW5zZm9y
bTsKICAgICAgICAgVmVjdG9yPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJ
RD4gY2hpbGRyZW47CisKKyAgICAgICAgSGFzaE1hcDxTdHJpbmcsIFBsYXRmb3JtQ0FBbmltYXRp
b25SZW1vdGU6OlByb3BlcnRpZXM+IGFkZGVkQW5pbWF0aW9uczsKKyAgICAgICAgSGFzaFNldDxT
dHJpbmc+IGtleVBhdGhzT2ZBbmltYXRpb25zVG9SZW1vdmU7CisKICAgICAgICAgV2ViQ29yZTo6
RmxvYXRQb2ludDNEIHBvc2l0aW9uOwogICAgICAgICBXZWJDb3JlOjpGbG9hdFBvaW50M0QgYW5j
aG9yUG9pbnQ7CiAgICAgICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBzaXplOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0K
aW5kZXggOTA3YTM4N2M0OGFkODM2YWFjMzI3NzRmM2VkMTJhYTMzOTQ2NDcwNS4uYjhjYWY2YzAx
Y2JmMmEyMmFlOGFmM2U4NjY5OWMwOTkzNzhmOTZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCkBAIC0xMDMs
NiArMTAzLDggQEAgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6
TGF5ZXJQcm9wZXJ0aWVzKGNvbnN0IExheWVyUHJvcGVydGkKICAgICAsIGV2ZXJDaGFuZ2VkUHJv
cGVydGllcyhvdGhlci5ldmVyQ2hhbmdlZFByb3BlcnRpZXMpCiAgICAgLCBuYW1lKG90aGVyLm5h
bWUpCiAgICAgLCBjaGlsZHJlbihvdGhlci5jaGlsZHJlbikKKyAgICAsIGFkZGVkQW5pbWF0aW9u
cyhvdGhlci5hZGRlZEFuaW1hdGlvbnMpCisgICAgLCBrZXlQYXRoc09mQW5pbWF0aW9uc1RvUmVt
b3ZlKG90aGVyLmtleVBhdGhzT2ZBbmltYXRpb25zVG9SZW1vdmUpCiAgICAgLCBwb3NpdGlvbihv
dGhlci5wb3NpdGlvbikKICAgICAsIGFuY2hvclBvaW50KG90aGVyLmFuY2hvclBvaW50KQogICAg
ICwgc2l6ZShvdGhlci5zaXplKQpAQCAtMTQ5LDYgKzE1MSwxMSBAQCB2b2lkIFJlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5j
b2RlciYgZQogICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcyAmIENoaWxkcmVuQ2hhbmdlZCkKICAg
ICAgICAgZW5jb2RlciA8PCBjaGlsZHJlbjsKIAorICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcyAm
IEFuaW1hdGlvbnNDaGFuZ2VkKSB7CisgICAgICAgIGVuY29kZXIgPDwgYWRkZWRBbmltYXRpb25z
OworICAgICAgICBlbmNvZGVyIDw8IGtleVBhdGhzT2ZBbmltYXRpb25zVG9SZW1vdmU7CisgICAg
fQorCiAgICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzICYgUG9zaXRpb25DaGFuZ2VkKQogICAgICAg
ICBlbmNvZGVyIDw8IHBvc2l0aW9uOwogCkBAIC0yNTEsNiArMjU4LDE0IEBAIGJvb2wgUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6ZGVjb2RlKElQQzo6QXJndW1l
bnREZWNvZGVyJiBkCiAgICAgICAgIH0KICAgICB9CiAKKyAgICBpZiAocmVzdWx0LmNoYW5nZWRQ
cm9wZXJ0aWVzICYgQW5pbWF0aW9uc0NoYW5nZWQpIHsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShyZXN1bHQuYWRkZWRBbmltYXRpb25zKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5rZXlQYXRoc09mQW5pbWF0aW9u
c1RvUmVtb3ZlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICBpZiAo
cmVzdWx0LmNoYW5nZWRQcm9wZXJ0aWVzICYgUG9zaXRpb25DaGFuZ2VkKSB7CiAgICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnBvc2l0aW9uKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTczNiw2ICs3NTEsOCBAQCBzdGF0aWMgdm9pZCBkdW1wQ2hhbmdlZExheWVycyhS
ZW1vdGVMYXllclRyZWVUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVtb3RlTGF5ZXJUcgogICAgICAg
ICBpZiAobGF5ZXJQcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb246OkNoaWxkcmVuQ2hhbmdlZCkKICAgICAgICAgICAgIGR1bXBQcm9wZXJ0eTxW
ZWN0b3I8R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPj4odHMsICJjaGlsZHJlbiIsIGxh
eWVyUHJvcGVydGllcy5jaGlsZHJlbik7CiAKKy8vIEZJWE1FOiBkdW1wIGFuaW1hdGlvbnMKKwog
ICAgICAgICBpZiAobGF5ZXJQcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb246OlBvc2l0aW9uQ2hhbmdlZCkKICAgICAgICAgICAgIGR1bXBQcm9w
ZXJ0eTxGbG9hdFBvaW50M0Q+KHRzLCAicG9zaXRpb24iLCBsYXllclByb3BlcnRpZXMucG9zaXRp
b24pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1JlbW90ZUxh
eWVyVHJlZUhvc3RJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1JlbW90ZUxh
eWVyVHJlZUhvc3RJT1MubW0KaW5kZXggOWVkYTk1NDQyNjc0YzJhNzgzMGZkOTdiMjFiODI2NmQx
MWExYzYxZC4uYTA2YmJiMDk1YWRlMTExY2YwNWUwYjE1MTViOWEzMmE2NzYzMzAwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9SZW1vdGVMYXllclRyZWVIb3N0SU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUmVtb3RlTGF5ZXJUcmVlSG9z
dElPUy5tbQpAQCAtMzcsMTAgKzM3LDYgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
LUBpbnRlcmZhY2UgVUlWaWV3KFdLVmlld0ludGVybmFscykKLS0gKHZvaWQpX2NyZWF0ZUxheWVy
V2l0aEZyYW1lOihDR1JlY3QpZnJhbWU7Ci1AZW5kCi0KIEBpbnRlcmZhY2UgQ0FMYXllcihXS0xh
eWVySW50ZXJuYWwpCiAtICh2b2lkKXNldENvbnRleHRJZDoodWludDMyX3QpY29udGV4dElEOwog
QGVuZApAQCAtNzYsNiArNzIsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCitzdGF0aWMgTlNTdHJpbmcqIGNvbnN0IFdLTGF5ZXJJRFByb3BlcnR5
S2V5ID0gQCJXS0xheWVySUQiOworCitXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxh
eWVySUQgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6bGF5ZXJJRChMYXllck9yVmlldyogbGF5ZXIpCit7
CisgICAgcmV0dXJuIFtbbGF5ZXIgdmFsdWVGb3JLZXk6V0tMYXllcklEUHJvcGVydHlLZXldIHVu
c2lnbmVkTG9uZ0xvbmdWYWx1ZV07Cit9CisKIExheWVyT3JWaWV3ICpSZW1vdGVMYXllclRyZWVI
b3N0OjpjcmVhdGVMYXllcihjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJD
cmVhdGlvblByb3BlcnRpZXMmIHByb3BlcnRpZXMsIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uOjpMYXllclByb3BlcnRpZXMqIGxheWVyUHJvcGVydGllcykKIHsKICAgICBSZXRhaW5Q
dHI8TGF5ZXJPclZpZXc+JiBsYXllck9yVmlldyA9IG1fbGF5ZXJzLmFkZChwcm9wZXJ0aWVzLmxh
eWVySUQsIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKQEAgLTExMCw2ICsxMTMsNyBAQCBMYXll
ck9yVmlldyAqUmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlTGF5ZXIoY29uc3QgUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb246OgogCiAgICAgLy8gRklYTUU6IERvIHRocm91Z2ggdGhlIHZpZXcu
CiAgICAgW1tsYXllck9yVmlldyBsYXllcl0gd2ViX2Rpc2FibGVBbGxBY3Rpb25zXTsKKyAgICBb
W2xheWVyT3JWaWV3IGxheWVyXSBzZXRWYWx1ZTpbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVk
TG9uZ0xvbmc6cHJvcGVydGllcy5sYXllcklEXSBmb3JLZXk6V0tMYXllcklEUHJvcGVydHlLZXld
OwogCiAgICAgcmV0dXJuIGxheWVyT3JWaWV3LmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkuaAppbmRleCBkY2RlNzRhYjlkMzVhMWRjMjRhMzIzYzJjNGVlOTlmN2Y0NWI5M2VkLi41
YWJmMWQ2NGNiNjlkNWQ0MmM3MjdhNjY3YmYyYjAwZmIwYzhhNzIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkuaApAQCAtNDQsNiArNDQsOCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBSZW1v
dGVMYXllclRyZWVIb3N0JiByZW1vdGVMYXllclRyZWVIb3N0KCkgY29uc3QgeyByZXR1cm4gbV9y
ZW1vdGVMYXllclRyZWVIb3N0OyB9CiAKKyAgICB2b2lkIGFjY2VsZXJhdGVkQW5pbWF0aW9uRGlk
U3RhcnQodWludDY0X3QgLypsYXllcklEKi8sIGRvdWJsZSAvKnN0YXJ0VGltZSovKTsKKwogcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2l6ZURpZENoYW5nZSgpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgdm9pZCBkZXZpY2VTY2FsZUZhY3RvckRpZENoYW5nZSgpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IDM0MWQ4NTYyNzlhZGUwYWM5ZTgyN2ZjM2Q2NTEz
ZjEzOGRhNjkzMGEuLmViOTRjODQ5YWM1MmU4NzVhZGQ2NzA0YWRkYmNlYzUwMGUyODAxNDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiAKIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OlJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHkoV2ViUGFnZVByb3h5KiB3ZWJQYWdlUHJveHkpCiAgICAgOiBE
cmF3aW5nQXJlYVByb3h5KERyYXdpbmdBcmVhVHlwZVJlbW90ZUxheWVyVHJlZSwgd2ViUGFnZVBy
b3h5KQotICAgICwgbV9yZW1vdGVMYXllclRyZWVIb3N0KCkKKyAgICAsIG1fcmVtb3RlTGF5ZXJU
cmVlSG9zdCgqdGhpcykKICAgICAsIG1faXNXYWl0aW5nRm9yRGlkVXBkYXRlR2VvbWV0cnkoZmFs
c2UpCiB7CiAgICAgbV93ZWJQYWdlUHJveHktPnByb2Nlc3MoKS5hZGRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgbV93ZWJQYWdlUHJveHktPnBhZ2VJRCgpLCAqdGhpcyk7CkBAIC0xMzEsNiArMTMx
LDExIEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJU
cmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zCiAgICAgfQogfQogCit2b2lkIFJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQodWlu
dDY0X3QgbGF5ZXJJRCwgZG91YmxlIHN0YXJ0VGltZSkKK3sKKyAgICBtX3dlYlBhZ2VQcm94eS0+
cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpBY2NlbGVyYXRlZEFuaW1hdGlv
bkRpZFN0YXJ0KGxheWVySUQsIHN0YXJ0VGltZSksIG1fd2ViUGFnZVByb3h5LT5wYWdlSUQoKSk7
Cit9CisKIHN0YXRpYyBjb25zdCBmbG9hdCBpbmRpY2F0b3JJbnNldCA9IDEwOwogCiAjaWYgUExB
VEZPUk0oTUFDKQpAQCAtMjM2LDcgKzI0MSw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eTo6c2hvd0RlYnVnSW5kaWNhdG9yKGJvb2wgc2hvdykKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICAKLSAgICBtX2RlYnVnSW5kaWNhdG9yTGF5ZXJUcmVlSG9zdCA9IHN0ZDo6
bWFrZV91bmlxdWU8UmVtb3RlTGF5ZXJUcmVlSG9zdD4oKTsKKyAgICBtX2RlYnVnSW5kaWNhdG9y
TGF5ZXJUcmVlSG9zdCA9IHN0ZDo6bWFrZV91bmlxdWU8UmVtb3RlTGF5ZXJUcmVlSG9zdD4oKnRo
aXMpOwogICAgIG1fZGVidWdJbmRpY2F0b3JMYXllclRyZWVIb3N0LT5zZXRJc0RlYnVnTGF5ZXJU
cmVlSG9zdCh0cnVlKTsKIAogICAgIG1fdGlsZU1hcEhvc3RMYXllciA9IGFkb3B0TlMoW1tDQUxh
eWVyIGFsbG9jXSBpbml0XSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1JlbW90ZUxheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
UmVtb3RlTGF5ZXJUcmVlSG9zdC5oCmluZGV4IGY5ZDZiMzQxNDZjMTFmNGY5MTExMDEzODA1ZjI0
ZDNlZTU3YzUxMzEuLjE1ZTM2ZGU2MjdiYWQ3OWQwMDVmZDQ3MWE5YjYwMmUyOGExMzQ0NDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9z
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9z
dC5oCkBAIC0zMiwyOSArMzIsNDMgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAorT0JKQ19DTEFTUyBXS0FuaW1hdGlvbkRlbGVnYXRlOwor
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eTsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIAogY2xhc3MgUmVtb3RlTGF5ZXJUcmVlSG9zdCB7
CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgUmVtb3RlTGF5ZXJUcmVlSG9zdCgpOworICAgIGV4cGxp
Y2l0IFJlbW90ZUxheWVyVHJlZUhvc3QoUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSYp
OwogICAgIHZpcnR1YWwgflJlbW90ZUxheWVyVHJlZUhvc3QoKTsKIAogICAgIExheWVyT3JWaWV3
ICpnZXRMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQpIGNvbnN0
OwogICAgIExheWVyT3JWaWV3ICpyb290TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RMYXll
cjsgfQogCisgICAgc3RhdGljIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJ
RCBsYXllcklEKExheWVyT3JWaWV3Kik7CisKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHJv
b3QgbGF5ZXIgY2hhbmdlZC4KICAgICBib29sIHVwZGF0ZUxheWVyVHJlZShjb25zdCBSZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbiYsIGZsb2F0IGluZGljYXRvclNjYWxlRmFjdG9yICA9IDEpOwog
CiAgICAgdm9pZCBzZXRJc0RlYnVnTGF5ZXJUcmVlSG9zdChib29sIGZsYWcpIHsgbV9pc0RlYnVn
TGF5ZXJUcmVlSG9zdCA9IGZsYWc7IH0KICAgICBib29sIGlzRGVidWdMYXllclRyZWVIb3N0KCkg
Y29uc3QgeyByZXR1cm4gbV9pc0RlYnVnTGF5ZXJUcmVlSG9zdDsgfQogCisgICAgdHlwZWRlZiBI
YXNoTWFwPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCwgUmV0YWluUHRy
PFdLQW5pbWF0aW9uRGVsZWdhdGU+PiBMYXllckFuaW1hdGlvbkRlbGVnYXRlTWFwOworICAgIExh
eWVyQW5pbWF0aW9uRGVsZWdhdGVNYXAmIGFuaW1hdGlvbkRlbGVnYXRlcygpIHsgcmV0dXJuIG1f
YW5pbWF0aW9uRGVsZWdhdGVzOyB9CisKKyAgICB2b2lkIGFuaW1hdGlvbkRpZFN0YXJ0KFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCwgZG91YmxlIHN0YXJ0VGltZSk7CisK
IHByaXZhdGU6CiAgICAgTGF5ZXJPclZpZXcgKmNyZWF0ZUxheWVyKGNvbnN0IFJlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uOjpMYXllckNyZWF0aW9uUHJvcGVydGllcyYsIGNvbnN0IFJlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMqKTsKIAorICAgIHZvaWQgbGF5ZXJX
aWxsQmVSZW1vdmVkKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCk7CisK
KyAgICBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5JiBtX2RyYXdpbmdBcmVhOwogICAg
IExheWVyT3JWaWV3ICptX3Jvb3RMYXllcjsKICAgICBIYXNoTWFwPFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCwgUmV0YWluUHRyPExheWVyT3JWaWV3Pj4gbV9sYXllcnM7
CisgICAgSGFzaE1hcDxXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQsIFJl
dGFpblB0cjxXS0FuaW1hdGlvbkRlbGVnYXRlPj4gbV9hbmltYXRpb25EZWxlZ2F0ZXM7CiAgICAg
Ym9vbCBtX2lzRGVidWdMYXllclRyZWVIb3N0OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1tCmluZGV4IDViYzcxYTFmMTY0
MmM3ZTE4ZjZjZDJjMTJiODBmMzYyYzFlZDJhNzguLmFmNDZiOGZjYjdkYWIzZDMyYjVhODk0YWU5
ZmVhMjEwOWRkZjZmOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
UmVtb3RlTGF5ZXJUcmVlSG9zdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1JlbW90ZUxheWVyVHJlZUhvc3QubW0KQEAgLTI2LDYgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZp
Zy5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlSG9zdC5oIgogCisjaW1wb3J0ICJSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVQcm9w
ZXJ0eUFwcGxpZXIuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgiCiAj
aW1wb3J0ICJTaGFyZWFibGVCaXRtYXAuaCIKQEAgLTQxLDggKzQyLDkgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1SZW1vdGVMYXllclRyZWVIb3N0
OjpSZW1vdGVMYXllclRyZWVIb3N0KCkKLSAgICA6IG1fcm9vdExheWVyKG51bGxwdHIpCitSZW1v
dGVMYXllclRyZWVIb3N0OjpSZW1vdGVMYXllclRyZWVIb3N0KFJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkmIGRyYXdpbmdBcmVhKQorICAgIDogbV9kcmF3aW5nQXJlYShkcmF3aW5nQXJl
YSkKKyAgICAsIG1fcm9vdExheWVyKG51bGxwdHIpCiAgICAgLCBtX2lzRGVidWdMYXllclRyZWVI
b3N0KGZhbHNlKQogewogfQpAQCAtODcsMTMgKzg5LDEzIEBAIGJvb2wgUmVtb3RlTGF5ZXJUcmVl
SG9zdDo6dXBkYXRlTGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiB0
cmFuCiAgICAgICAgICAgICBpZiAocHJvcGVydGllc0NvcHkuY2hhbmdlZFByb3BlcnRpZXMgJiBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6Qm9yZGVyV2lkdGhDaGFuZ2VkKQogICAgICAgICAg
ICAgICAgIHByb3BlcnRpZXNDb3B5LmJvcmRlcldpZHRoICo9IDEgLyBpbmRpY2F0b3JTY2FsZUZh
Y3RvcjsKICAgICAgICAgICAgIAotICAgICAgICAgICAgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlB
cHBsaWVyOjphcHBseVByb3BlcnRpZXMobGF5ZXIsIHByb3BlcnRpZXNDb3B5LCByZWxhdGVkTGF5
ZXJzKTsKKyAgICAgICAgICAgIFJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6YXBwbHlQ
cm9wZXJ0aWVzKGxheWVyLCB0aGlzLCBwcm9wZXJ0aWVzQ29weSwgcmVsYXRlZExheWVycyk7CiAg
ICAgICAgIH0gZWxzZQotICAgICAgICAgICAgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVy
OjphcHBseVByb3BlcnRpZXMobGF5ZXIsIHByb3BlcnRpZXMsIHJlbGF0ZWRMYXllcnMpOworICAg
ICAgICAgICAgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjphcHBseVByb3BlcnRpZXMo
bGF5ZXIsIHRoaXMsIHByb3BlcnRpZXMsIHJlbGF0ZWRMYXllcnMpOwogICAgIH0KIAogICAgIGZv
ciAoYXV0byYgZGVzdHJveWVkTGF5ZXIgOiB0cmFuc2FjdGlvbi5kZXN0cm95ZWRMYXllcnMoKSkK
LSAgICAgICAgbV9sYXllcnMucmVtb3ZlKGRlc3Ryb3llZExheWVyKTsKKyAgICAgICAgbGF5ZXJX
aWxsQmVSZW1vdmVkKGRlc3Ryb3llZExheWVyKTsKIAogICAgIHJldHVybiByb290TGF5ZXJDaGFu
Z2VkOwogfQpAQCAtMTA2LDcgKzEwOCwyNSBAQCBMYXllck9yVmlldyAqUmVtb3RlTGF5ZXJUcmVl
SG9zdDo6Z2V0TGF5ZXIoR3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIGxheWVySQogICAg
IHJldHVybiBtX2xheWVycy5nZXQobGF5ZXJJRCkuZ2V0KCk7CiB9CiAKK3ZvaWQgUmVtb3RlTGF5
ZXJUcmVlSG9zdDo6bGF5ZXJXaWxsQmVSZW1vdmVkKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBs
YXRmb3JtTGF5ZXJJRCBsYXllcklEKQoreworICAgIG1fYW5pbWF0aW9uRGVsZWdhdGVzLnJlbW92
ZShsYXllcklEKTsKKyAgICBtX2xheWVycy5yZW1vdmUobGF5ZXJJRCk7Cit9CisKK3ZvaWQgUmVt
b3RlTGF5ZXJUcmVlSG9zdDo6YW5pbWF0aW9uRGlkU3RhcnQoV2ViQ29yZTo6R3JhcGhpY3NMYXll
cjo6UGxhdGZvcm1MYXllcklEIGxheWVySUQsIGRvdWJsZSBzdGFydFRpbWUpCit7CisgICAgbV9k
cmF3aW5nQXJlYS5hY2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0YXJ0KGxheWVySUQsIHN0YXJ0VGlt
ZSk7Cit9CisKICNpZiAhUExBVEZPUk0oSU9TKQorc3RhdGljIE5TU3RyaW5nKiBjb25zdCBXS0xh
eWVySURQcm9wZXJ0eUtleSA9IEAiV0tMYXllcklEIjsKKworV2ViQ29yZTo6R3JhcGhpY3NMYXll
cjo6UGxhdGZvcm1MYXllcklEIFJlbW90ZUxheWVyVHJlZUhvc3Q6OmxheWVySUQoTGF5ZXJPclZp
ZXcqIGxheWVyKQoreworICAgIHJldHVybiBbW2xheWVyIHZhbHVlRm9yS2V5OldLTGF5ZXJJRFBy
b3BlcnR5S2V5XSB1bnNpZ25lZExvbmdMb25nVmFsdWVdOworfQorCiBMYXllck9yVmlldyAqUmVt
b3RlTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlTGF5ZXIoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb246OkxheWVyQ3JlYXRpb25Qcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLCBjb25zdCBSZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzKikKIHsKICAgICBSZXRhaW5QdHI8
Q0FMYXllcj4mIGxheWVyID0gbV9sYXllcnMuYWRkKHByb3BlcnRpZXMubGF5ZXJJRCwgbnVsbHB0
cikuaXRlcmF0b3ItPnZhbHVlOwpAQCAtMTM3LDYgKzE1Nyw3IEBAIExheWVyT3JWaWV3ICpSZW1v
dGVMYXllclRyZWVIb3N0OjpjcmVhdGVMYXllcihjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbjo6CiAgICAgfQogCiAgICAgW2xheWVyIHdlYl9kaXNhYmxlQWxsQWN0aW9uc107CisgICAg
W2xheWVyIHNldFZhbHVlOltOU051bWJlciBudW1iZXJXaXRoVW5zaWduZWRMb25nTG9uZzpwcm9w
ZXJ0aWVzLmxheWVySURdIGZvcktleTpXS0xheWVySURQcm9wZXJ0eUtleV07CiAKICAgICByZXR1
cm4gbGF5ZXIuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTJmZTJiODljMzQ3OGYzZDU0ZmIzN2YxNTEzOTRlNWM1
NTYyMTgwZC4uNDRhNDY4MjVhZTBhYWQzZmQzOTVlYzRiMzM2ZGY1NjViNzFmOGZmYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
NjMsNiArNjMsOCBAQAogCQkwRjU5NDdBNDE4N0IzQjdEMDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY1OTQ3QTIxODdCM0I3RDAwNDM3ODU3IC8qIFJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uaCAqLzsgfTsKIAkJMEY1OTQ3QTcxODdCNTE3NjAw
NDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTk0N0E1MTg3
QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi87IH07CiAJCTBGNTk0N0E4MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjU5NDdBNjE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JNZXNzYWdlcy5oICovOyB9OworCQkwRjVFMjAwMzE4RTc3MDUxMDAzRUMzRTUg
LyogUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUUyMDAxMThFNzcwNTEwMDNFQzNFNSAvKiBQbGF0Zm9y
bUNBQW5pbWF0aW9uUmVtb3RlLm1tICovOyB9OworCQkwRjVFMjAwNDE4RTc3MDUxMDAzRUMzRTUg
LyogUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1RTIwMDIxOEU3NzA1MTAwM0VDM0U1IC8qIFBsYXRmb3Jt
Q0FBbmltYXRpb25SZW1vdGUuaCAqLzsgfTsKIAkJMEY5MzFDMUMxOEM1NzExOTAwREJBN0MzIC8q
IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTMxQzFBMThDNTcxMTkwMERCQTdDMyAv
KiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLmggKi87IH07CiAJCTBGOTMx
QzFEMThDNTcxMTkwMERCQTdDMyAvKiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5
MzFDMUIxOEM1NzExOTAwREJBN0MzIC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05v
ZGVJT1MubW0gKi87IH07CiAJCTBGQjY1OTIzMTIwOEI0REIwMDQ0ODE2QyAvKiBEcmF3aW5nQXJl
YUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
QjY1OTIyMTIwOEI0REIwMDQ0ODE2QyAvKiBEcmF3aW5nQXJlYUluZm8uaCAqLzsgfTsKQEAgLTE3
OTksNiArMTgwMSw4IEBACiAJCTBGNTk0N0EyMTg3QjNCN0QwMDQzNzg1NyAvKiBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uaDsgcGF0aCA9IFNj
cm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTk0N0E1MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VSZWNl
aXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTk0N0E2MTg3QjUxNzYw
MDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2Fn
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY1RTIwMDExOEU3NzA1MTAwM0VD
M0U1IC8qIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwRjVFMjAwMjE4RTc3MDUxMDAzRUMzRTUgLyogUGxhdGZv
cm1DQUFuaW1hdGlvblJlbW90ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
bGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGOTMxQzFBMThDNTcxMTkwMERCQTdDMyAvKiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlSU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNjcm9sbGluZ1Ry
ZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MuaDsgcGF0aCA9IFNjcm9sbGluZy9pb3MvU2Nyb2xs
aW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjkzMUMxQjE4QzU3MTE5MDBEQkE3QzMgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93
U2Nyb2xsaW5nTm9kZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFt
ZSA9IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MubW07IHBhdGggPSBTY3Jv
bGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQjY1OTIyMTIwOEI0REIwMDQ0ODE2QyAvKiBEcmF3
aW5nQXJlYUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhd2luZ0Fy
ZWFJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MDIwLDYgKzYwMjQsOCBA
QAogCQkJCTdDNkQzN0ZBMTcyRjU1NUYwMDlEMjg0NyAvKiBQYWdlQmFubmVyTWFjLm1tICovLAog
CQkJCTJEQTA0OUI1MTgwQ0NEMEEwMEFBRkE5RSAvKiBHcmFwaGljc0xheWVyQ0FSZW1vdGUuY3Bw
ICovLAogCQkJCTJEQTA0OUI2MTgwQ0NEMEEwMEFBRkE5RSAvKiBHcmFwaGljc0xheWVyQ0FSZW1v
dGUuaCAqLywKKwkJCQkwRjVFMjAwMTE4RTc3MDUxMDAzRUMzRTUgLyogUGxhdGZvcm1DQUFuaW1h
dGlvblJlbW90ZS5tbSAqLywKKwkJCQkwRjVFMjAwMjE4RTc3MDUxMDAzRUMzRTUgLyogUGxhdGZv
cm1DQUFuaW1hdGlvblJlbW90ZS5oICovLAogCQkJCTJEQTA0OUIxMTgwQ0NDRDMwMEFBRkE5RSAv
KiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwICovLAogCQkJCTJEQTA0OUIyMTgwQ0NDRDMwMEFB
RkE5RSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaCAqLywKIAkJCQkyRDg3MTAxNDE4Mjg0MTVE
MDAxOEZBMDEgLyogUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tICovLApAQCAtNjkyMSw2
ICs2OTI3LDcgQEAKIAkJCQlCQzRBNjJBODE0NzQ0RUM3MDA2QzY4MUEgLyogV2ViQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCOUUyNDMxMTIwREFDQTAwQTEz
N0UwIC8qIFdlYkNvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxQTUwNUZBMTY4MDAyNTUw
MEE5MzBFQiAvKiBXZWJDb250ZXh0Q2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjVFMjAw
NDE4RTc3MDUxMDAzRUMzRTUgLyogUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTEyQTk3NjExODBFMDMxRDAwMzlBMTQ5IC8qIERhdGFiYXNlUHJvY2Vzc01l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzA5QjhGOTE0NzQ2MEY3MDA1RjU2MjUgLyog
V2ViQ29udGV4dENvbm5lY3Rpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDREUwNTlC
MTFDREE4QUUwMEU0MUFGMSAvKiBXZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaCBpbiBI
ZWFkZXJzICovLApAQCAtODY2Miw2ICs4NjY5LDcgQEAKIAkJCQkxQUM4NkZGMzEzMEI0NkQzMDAy
QzEyNTcgLyogV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkNENTk3RDExMTJCNTZBQzAwRUM4QzIzIC8qIFdLUHJlZmVyZW5jZXMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkNCQUFDRUMxNDUyMjVFMzAwNTNGODJGIC8qIFdLUHJvY2Vzc0dyb3VwLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEY1RTIwMDMxOEU3NzA1MTAwM0VDM0U1IC8qIFBsYXRmb3JtQ0FB
bmltYXRpb25SZW1vdGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTJGNThGQjEyQTg4QTU0MDA2
Mjk1MzAgLyogV0tQcm90ZWN0aW9uU3BhY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc5NDg0
MDgxNTBDNEI5NzAwRTUyQ0U5IC8qIFdLUmVuZGVyTGF5ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkQxQjVENUQxODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKaW5kZXggNDdlYzU1YjcxZDExNDI5ZWNkN2I0YTBm
YjJlYjhjZTk5MjU2MGExOS4uZTQxN2MyNjk0NjMyNjgxZTU3YmYyZTEyN2EyMGJmYzY3NGIxNGMw
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdB
cmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVh
LmgKQEAgLTkxLDYgKzkxLDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZp
cnR1YWwgdm9pZCBzZXRFeHBvc2VkUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSA9IDA7
CiAgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgZXhwb3NlZFJlY3QoKSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQodWludDY0X3Qg
LypsYXllcklEKi8sIGRvdWJsZSAvKnN0YXJ0VGltZSovKSB7IH0KICNlbmRpZgogI2lmIFBMQVRG
T1JNKElPUykKICAgICB2aXJ0dWFsIHZvaWQgc2V0RXhwb3NlZENvbnRlbnRSZWN0KGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5tZXNzYWdlcy5pbgppbmRleCA5MWJjYWY0Y2Fm
NmM2NzFmNTU2ZTE5YmZiOTAwYTExMzMxMWZmMTQ5Li5jY2FlMmFhOWFkZDMxNGU0ZWE4ODc5Yzcz
MjQyMjYyYWNlZGY0ZTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvRHJhd2luZ0FyZWEubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluCkBAIC0zMyw1ICszMyw3IEBAIG1l
c3NhZ2VzIC0+IERyYXdpbmdBcmVhIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIEFkanVzdFRyYW5z
aWVudFpvb20oZG91YmxlIHNjYWxlLCBXZWJDb3JlOjpGbG9hdFBvaW50IG9yaWdpbikKICAgICBD
b21taXRUcmFuc2llbnRab29tKGRvdWJsZSBzY2FsZSwgV2ViQ29yZTo6RmxvYXRQb2ludCBvcmln
aW4pCisgICAgCisgICAgQWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCh1aW50NjRfdCBsYXll
cklELCBkb3VibGUgc3RhcnRUaW1lKQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90
ZS5jcHAKaW5kZXggYzk1Zjg1ZmUyYmNiOWI4YzE4MGExNzJiYTcyODA0YTE2OWJmMWI5ZC4uNWUx
YzJmNWEwOTIyOWMyOWZjMzIxYjFiODdmMWM3NWQyNTMwZTM4OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXll
ckNBUmVtb3RlLmNwcApAQCAtMjUsNiArMjUsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiR3JhcGhpY3NMYXllckNBUmVtb3RlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1DQUFu
aW1hdGlvblJlbW90ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllclJlbW90ZS5oIgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTUyLDQgKzUzLDEyIEBAIFBhc3NSZWZQdHI8UGxh
dGZvcm1DQUxheWVyPiBHcmFwaGljc0xheWVyQ0FSZW1vdGU6OmNyZWF0ZVBsYXRmb3JtQ0FMYXll
cihQbGF0Zm9yCiAgICAgcmV0dXJuIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6Y3JlYXRlKHBsYXRm
b3JtTGF5ZXIsIG93bmVyLCBtX2NvbnRleHQpOwogfQogCitQYXNzUmVmUHRyPFBsYXRmb3JtQ0FB
bmltYXRpb24+IEdyYXBoaWNzTGF5ZXJDQVJlbW90ZTo6Y3JlYXRlUGxhdGZvcm1DQUFuaW1hdGlv
bihQbGF0Zm9ybUNBQW5pbWF0aW9uOjpBbmltYXRpb25UeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYg
a2V5UGF0aCkKK3sKKyAgICByZXR1cm4gUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6Y3JlYXRl
KHR5cGUsIGtleVBhdGgpOwogfQorCisvLyBGSVhNRTogcmVqZWN0IGZpbHRlciBhbmltYXRpb25z
CisKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuaAppbmRl
eCBjZjUzOTc2YzY5ODEwNzUyZjNjNGZmMjMyYTZkZTMwYWE0YjA5YmYzLi45YTJjZmQ4YzI1ZWRj
YjcyZjVkNTYzNTUzYjc1MDJhOGI3ZjI4ODBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmgK
QEAgLTUyLDkgKzUyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpQbGF0Zm9ybUNBTGF5ZXI+IGNyZWF0ZVBsYXRmb3JtQ0FMYXllcihXZWJDb3JlOjpQbGF0
Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSwgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyQ2xpZW50KiBv
d25lcikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3Jt
Q0FMYXllcj4gY3JlYXRlUGxhdGZvcm1DQUxheWVyKFBsYXRmb3JtTGF5ZXIqLCBXZWJDb3JlOjpQ
bGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyKSBvdmVycmlkZTsKLQotICAgIC8vIE5vIGFjY2Vs
ZXJhdGVkIGFuaW1hdGlvbnMgZm9yIG5vdy4KLSAgICB2aXJ0dWFsIGJvb2wgYWRkQW5pbWF0aW9u
KGNvbnN0IFdlYkNvcmU6OktleWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJiwgY29uc3QgV2ViQ29yZTo6QW5pbWF0aW9uKiwgY29uc3QgU3RyaW5nJiwgZG91YmxlKSBv
dmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpQbGF0Zm9ybUNBQW5pbWF0aW9uPiBjcmVhdGVQbGF0Zm9ybUNBQW5pbWF0aW9uKFdlYkNvcmU6
OlBsYXRmb3JtQ0FBbmltYXRpb246OkFuaW1hdGlvblR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0
aCkgb3ZlcnJpZGU7CiAKICAgICAvLyBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUgY2FuJ3QgY3VycmVu
dGx5IHByb3h5IGRpcmVjdGx5IGNvbXBvc2l0ZWQgaW1hZ2UgY29udGVudHMsIHNvIG9wdCBvdXQg
b2YgdGhpcyBvcHRpbWl6YXRpb24uCiAgICAgdmlydHVhbCBib29sIHNob3VsZERpcmVjdGx5Q29t
cG9zaXRlSW1hZ2UoV2ViQ29yZTo6SW1hZ2UqKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxz
ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjdmMGY3
ZGQxYTUxMmNkMzhiMzJiZGEzMjJjMTExOWI0MThlNDE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVt
b3RlLmgKQEAgLTAsMCArMSwyODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGVfaAorI2RlZmlu
ZSBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlX2gKKworI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZv
cm1DQUFuaW1hdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBBcmd1bWVudEVuY29kZXI7Citj
bGFzcyBBcmd1bWVudERlY29kZXI7Cit9OworCitPQkpDX0NMQVNTIENBTGF5ZXI7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVMYXllclRyZWVIb3N0OworCitjbGFzcyBQbGF0
Zm9ybUNBQW5pbWF0aW9uUmVtb3RlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtQ0FB
bmltYXRpb24geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmlt
YXRpb24+IGNyZWF0ZShBbmltYXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGtleVBhdGgpOworCisg
ICAgdmlydHVhbCB+UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZSgpIHsgfQorCisgICAgdmlydHVh
bCBib29sIGlzUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KKworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9u
PiBjb3B5KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgCisgICAgdmlydHVhbCBTdHJpbmcga2V5UGF0
aCgpIGNvbnN0IG92ZXJyaWRlOworICAgIAorICAgIHZpcnR1YWwgQ0ZUaW1lSW50ZXJ2YWwgYmVn
aW5UaW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEJlZ2luVGltZShD
RlRpbWVJbnRlcnZhbCkgb3ZlcnJpZGU7CisgICAgCisgICAgdmlydHVhbCBDRlRpbWVJbnRlcnZh
bCBkdXJhdGlvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXREdXJhdGlv
bihDRlRpbWVJbnRlcnZhbCkgb3ZlcnJpZGU7CisgICAgCisgICAgdmlydHVhbCBmbG9hdCBzcGVl
ZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRTcGVlZChmbG9hdCkgb3Zl
cnJpZGU7CisKKyAgICB2aXJ0dWFsIENGVGltZUludGVydmFsIHRpbWVPZmZzZXQoKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGltZU9mZnNldChDRlRpbWVJbnRlcnZhbCkg
b3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIGZsb2F0IHJlcGVhdENvdW50KCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFJlcGVhdENvdW50KGZsb2F0KSBvdmVycmlkZTsKKwor
ICAgIHZpcnR1YWwgYm9vbCBhdXRvcmV2ZXJzZXMoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0QXV0b3JldmVyc2VzKGJvb2wpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBG
aWxsTW9kZVR5cGUgZmlsbE1vZGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0RmlsbE1vZGUoRmlsbE1vZGVUeXBlKSBvdmVycmlkZTsKKyAgICAKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0VGltaW5nRnVuY3Rpb24oY29uc3QgV2ViQ29yZTo6VGltaW5nRnVuY3Rpb24qLCBib29s
IHJldmVyc2UgPSBmYWxzZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBjb3B5VGltaW5nRnVuY3Rpb25G
cm9tKGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKKworICAg
IHZpcnR1YWwgYm9vbCBpc1JlbW92ZWRPbkNvbXBsZXRpb24oKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0UmVtb3ZlZE9uQ29tcGxldGlvbihib29sKSBvdmVycmlkZTsKKwor
ICAgIHZpcnR1YWwgYm9vbCBpc0FkZGl0aXZlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHNldEFkZGl0aXZlKGJvb2wpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBWYWx1ZUZ1
bmN0aW9uVHlwZSB2YWx1ZUZ1bmN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHNldFZhbHVlRnVuY3Rpb24oVmFsdWVGdW5jdGlvblR5cGUpIG92ZXJyaWRlOworCisgICAg
Ly8gQmFzaWMtYW5pbWF0aW9uIHByb3BlcnRpZXMuCisgICAgdmlydHVhbCB2b2lkIHNldEZyb21W
YWx1ZShmbG9hdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShjb25z
dCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludDNEJikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIHNldEZyb21WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYpIG92
ZXJyaWRlOworI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJv
bVZhbHVlKGNvbnN0IFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbiosIGludCBpbnRlcm5hbEZpbHRl
clByb3BlcnR5SW5kZXgpIG92ZXJyaWRlOworI2VuZGlmCisgICAgdmlydHVhbCB2b2lkIGNvcHlG
cm9tVmFsdWVGcm9tKGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlk
ZTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGZsb2F0KSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6
OkZsb2F0UG9pbnQzRCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNv
bnN0IFdlYkNvcmU6OkNvbG9yJikgb3ZlcnJpZGU7CisjaWYgRU5BQkxFKENTU19GSUxURVJTKQor
ICAgIHZpcnR1YWwgdm9pZCBzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OkZpbHRlck9wZXJhdGlv
biosIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpIG92ZXJyaWRlOworI2VuZGlmCisg
ICAgdmlydHVhbCB2b2lkIGNvcHlUb1ZhbHVlRnJvbShjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUNB
QW5pbWF0aW9uKikgb3ZlcnJpZGU7CisKKyAgICAvLyBLZXlmcmFtZS1hbmltYXRpb24gcHJvcGVy
dGllcy4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpUcmFuc2Zvcm1hdGlvbk1hdHJpeD4mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
VmFsdWVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpGbG9hdFBvaW50M0Q+Jikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHNldFZhbHVlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+Jikg
b3ZlcnJpZGU7CisjaWYgRU5BQkxFKENTU19GSUxURVJTKQorICAgIHZpcnR1YWwgdm9pZCBzZXRW
YWx1ZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb24+PiYsIGlu
dCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpIG92ZXJyaWRlOworI2VuZGlmCisgICAgdmly
dHVhbCB2b2lkIGNvcHlWYWx1ZXNGcm9tKGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRp
b24qKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRLZXlUaW1lcyhjb25zdCBWZWN0
b3I8ZmxvYXQ+Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvcHlLZXlUaW1lc0Zyb20o
Y29uc3QgV2ViQ29yZTo6UGxhdGZvcm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOworCisgICAgdmly
dHVhbCB2b2lkIHNldFRpbWluZ0Z1bmN0aW9ucyhjb25zdCBWZWN0b3I8Y29uc3QgV2ViQ29yZTo6
VGltaW5nRnVuY3Rpb24qPiYsIGJvb2wgcmV2ZXJzZSA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgY29weVRpbWluZ0Z1bmN0aW9uc0Zyb20oY29uc3QgV2ViQ29yZTo6UGxhdGZv
cm1DQUFuaW1hdGlvbiopIG92ZXJyaWRlOworCisgICAgY2xhc3MgS2V5ZnJhbWVWYWx1ZSB7Cisg
ICAgcHVibGljOgorICAgICAgICBlbnVtIEtleWZyYW1lVHlwZSB7CisgICAgICAgICAgICBOdW1i
ZXJLZXlUeXBlLAorICAgICAgICAgICAgQ29sb3JLZXlUeXBlLAorICAgICAgICAgICAgUG9pbnRL
ZXlUeXBlLAorICAgICAgICAgICAgVHJhbnNmb3JtS2V5VHlwZSwKKyAgICAgICAgfTsKKworICAg
ICAgICBLZXlmcmFtZVZhbHVlKGZsb2F0IHZhbHVlID0gMCkKKyAgICAgICAgICAgIDoga2V5VHlw
ZShOdW1iZXJLZXlUeXBlKQorICAgICAgICAgICAgLCBudW1iZXIodmFsdWUpCisgICAgICAgIHsK
KyAgICAgICAgfQorCisgICAgICAgIEtleWZyYW1lVmFsdWUoV2ViQ29yZTo6Q29sb3IgdmFsdWUp
CisgICAgICAgICAgICA6IGtleVR5cGUoQ29sb3JLZXlUeXBlKQorICAgICAgICAgICAgLCBjb2xv
cih2YWx1ZSkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgS2V5ZnJhbWVWYWx1ZShj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50M0QmIHZhbHVlKQorICAgICAgICAgICAgOiBrZXlUeXBl
KFBvaW50S2V5VHlwZSkKKyAgICAgICAgICAgICwgcG9pbnQodmFsdWUpCisgICAgICAgIHsKKyAg
ICAgICAgfQorCisgICAgICAgIEtleWZyYW1lVmFsdWUoY29uc3QgV2ViQ29yZTo6VHJhbnNmb3Jt
YXRpb25NYXRyaXgmIHZhbHVlKQorICAgICAgICAgICAgOiBrZXlUeXBlKFRyYW5zZm9ybUtleVR5
cGUpCisgICAgICAgICAgICAsIHRyYW5zZm9ybSh2YWx1ZSkKKyAgICAgICAgeworICAgICAgICB9
CisgICAgICAgIAorICAgICAgICBLZXlmcmFtZVZhbHVlKGNvbnN0IEtleWZyYW1lVmFsdWUmIG90
aGVyKQorICAgICAgICB7CisgICAgICAgICAgICAqdGhpcyA9IG90aGVyOworICAgICAgICB9CisK
KyAgICAgICAgS2V5ZnJhbWVWYWx1ZSYgb3BlcmF0b3I9KGNvbnN0IEtleWZyYW1lVmFsdWUmIG90
aGVyKQorICAgICAgICB7CisgICAgICAgICAgICBrZXlUeXBlID0gb3RoZXIua2V5VHlwZTsKKyAg
ICAgICAgICAgIHN3aXRjaCAoa2V5VHlwZSkgeworICAgICAgICAgICAgY2FzZSBOdW1iZXJLZXlU
eXBlOgorICAgICAgICAgICAgICAgIG51bWJlciA9IG90aGVyLm51bWJlcjsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ29sb3JLZXlUeXBlOgorICAgICAgICAgICAg
ICAgIGNvbG9yID0gb3RoZXIuY29sb3I7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIFBvaW50S2V5VHlwZToKKyAgICAgICAgICAgICAgICBwb2ludCA9IG90aGVyLnBv
aW50OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBUcmFuc2Zvcm1L
ZXlUeXBlOgorICAgICAgICAgICAgICAgIHRyYW5zZm9ybSA9IG90aGVyLnRyYW5zZm9ybTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgcmV0dXJuICp0aGlzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBLZXlmcmFt
ZVR5cGUga2V5ZnJhbWVUeXBlKCkgY29uc3QgeyByZXR1cm4ga2V5VHlwZTsgfQorCisgICAgICAg
IGZsb2F0IG51bWJlclZhbHVlKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJU
KGtleVR5cGUgPT0gTnVtYmVyS2V5VHlwZSk7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyOwor
ICAgICAgICB9CisKKyAgICAgICAgV2ViQ29yZTo6Q29sb3IgY29sb3JWYWx1ZSgpIGNvbnN0Cisg
ICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChrZXlUeXBlID09IENvbG9yS2V5VHlwZSk7Cisg
ICAgICAgICAgICByZXR1cm4gY29sb3I7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50M0QmIHBvaW50VmFsdWUoKSBjb25zdAorICAgICAgICB7CisgICAgICAg
ICAgICBBU1NFUlQoa2V5VHlwZSA9PSBQb2ludEtleVR5cGUpOworICAgICAgICAgICAgcmV0dXJu
IHBvaW50OworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRp
b25NYXRyaXgmIHRyYW5zZm9ybVZhbHVlKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAg
QVNTRVJUKGtleVR5cGUgPT0gVHJhbnNmb3JtS2V5VHlwZSk7CisgICAgICAgICAgICByZXR1cm4g
dHJhbnNmb3JtOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVu
dEVuY29kZXImKSBjb25zdDsKKyAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1l
bnREZWNvZGVyJiwgS2V5ZnJhbWVWYWx1ZSYpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgS2V5
ZnJhbWVUeXBlIGtleVR5cGU7CisgICAgICAgIHVuaW9uIHsKKyAgICAgICAgICAgIGZsb2F0IG51
bWJlcjsKKyAgICAgICAgICAgIFdlYkNvcmU6OkNvbG9yIGNvbG9yOworICAgICAgICAgICAgV2Vi
Q29yZTo6RmxvYXRQb2ludDNEIHBvaW50OworICAgICAgICAgICAgV2ViQ29yZTo6VHJhbnNmb3Jt
YXRpb25NYXRyaXggdHJhbnNmb3JtOworICAgICAgICB9OworICAgIH07CisKKyAgICBzdHJ1Y3Qg
UHJvcGVydGllcyB7CisgICAgICAgIFByb3BlcnRpZXMoKQorICAgICAgICAgICAgOiBhbmltYXRp
b25UeXBlKEJhc2ljKQorICAgICAgICAgICAgLCBiZWdpblRpbWUoMCkKKyAgICAgICAgICAgICwg
ZHVyYXRpb24oMCkKKyAgICAgICAgICAgICwgdGltZU9mZnNldCgwKQorICAgICAgICAgICAgLCBy
ZXBlYXRDb3VudCgxKQorICAgICAgICAgICAgLCBzcGVlZCgxKQorICAgICAgICAgICAgLCBmaWxs
TW9kZShOb0ZpbGxNb2RlKQorICAgICAgICAgICAgLCB2YWx1ZUZ1bmN0aW9uKE5vVmFsdWVGdW5j
dGlvbikKKyAgICAgICAgICAgICwgYXV0b1JldmVyc2VzKGZhbHNlKQorICAgICAgICAgICAgLCBy
ZW1vdmVkT25Db21wbGV0aW9uKHRydWUpCisgICAgICAgICAgICAsIGFkZGl0aXZlKGZhbHNlKQor
ICAgICAgICAgICAgLCByZXZlcnNlVGltaW5nRnVuY3Rpb25zKGZhbHNlKQorICAgICAgICAgICAg
LCBoYXNOb25aZXJvQmVnaW5UaW1lKGZhbHNlKQorICAgICAgICAKKyAgICAgICAgeworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYp
IGNvbnN0OworICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXIm
LCBQcm9wZXJ0aWVzJik7CisKKyAgICAgICAgU3RyaW5nIGtleVBhdGg7CisgICAgICAgIFBsYXRm
b3JtQ0FBbmltYXRpb246OkFuaW1hdGlvblR5cGUgYW5pbWF0aW9uVHlwZTsKKworICAgICAgICBk
b3VibGUgYmVnaW5UaW1lOworICAgICAgICBkb3VibGUgZHVyYXRpb247CisgICAgICAgIGRvdWJs
ZSB0aW1lT2Zmc2V0OworICAgICAgICBmbG9hdCByZXBlYXRDb3VudDsKKyAgICAgICAgZmxvYXQg
c3BlZWQ7CisgICAgICAgIAorICAgICAgICBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpGaWxsTW9kZVR5
cGUgZmlsbE1vZGU7CisgICAgICAgIFBsYXRmb3JtQ0FBbmltYXRpb246OlZhbHVlRnVuY3Rpb25U
eXBlIHZhbHVlRnVuY3Rpb247CisgICAgICAgIAorICAgICAgICBib29sIGF1dG9SZXZlcnNlczsK
KyAgICAgICAgYm9vbCByZW1vdmVkT25Db21wbGV0aW9uOworICAgICAgICBib29sIGFkZGl0aXZl
OworICAgICAgICBib29sIHJldmVyc2VUaW1pbmdGdW5jdGlvbnM7CisgICAgICAgIGJvb2wgaGFz
Tm9uWmVyb0JlZ2luVGltZTsKKworICAgICAgICAvLyBGb3IgYmFzaWMgYW5pbWF0aW9ucywgdGhl
c2UgdmVjdG9ycyBoYXZlIHR3byBlbnRyaWVzLiBGb3Iga2V5ZnJhbWUgYW5pbWF0aW9ucywgdHdv
IG9yIG1vcmUuCisgICAgICAgIC8vIHRpbWluZ0Z1bmN0aW9ucyBoYXMgbi0xIGVudHJpZXMuCisg
ICAgICAgIFZlY3RvcjxLZXlmcmFtZVZhbHVlPiBrZXlWYWx1ZXM7CisgICAgICAgIFZlY3Rvcjxm
bG9hdD4ga2V5VGltZXM7CisgICAgICAgIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6VGltaW5nRnVu
Y3Rpb24+PiB0aW1pbmdGdW5jdGlvbnM7CisgICAgfTsKKworICAgIGNvbnN0IFByb3BlcnRpZXMm
IHByb3BlcnRpZXMoKSBjb25zdCB7IHJldHVybiBtX3Byb3BlcnRpZXM7IH0KKworICAgIHR5cGVk
ZWYgSGFzaE1hcDxTdHJpbmcsIFByb3BlcnRpZXM+IEFuaW1hdGlvbnNNYXA7CisgICAgc3RhdGlj
IHZvaWQgdXBkYXRlTGF5ZXJBbmltYXRpb25zKENBTGF5ZXIgKiwgUmVtb3RlTGF5ZXJUcmVlSG9z
dCosIGNvbnN0IEFuaW1hdGlvbnNNYXAmIGFuaW1hdGlvbnNUb0FkZCwgY29uc3QgSGFzaFNldDxT
dHJpbmc+JiBhbmltYXRpb25zVG9SZW1vdmUpOworCitwcml2YXRlOgorICAgIFBsYXRmb3JtQ0FB
bmltYXRpb25SZW1vdGUoQW5pbWF0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKTsKKwor
ICAgIFByb3BlcnRpZXMgbV9wcm9wZXJ0aWVzOworfTsKKworUExBVEZPUk1fQ0FBTklNQVRJT05f
VFlQRV9DQVNUUyhQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLCBpc1BsYXRmb3JtQ0FBbmltYXRp
b25SZW1vdGUoKSkKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQbGF0Zm9y
bUNBQW5pbWF0aW9uUmVtb3RlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbSBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40ZDYzYmNlOWNkZGQ0YTBjZDc0OGIxN2YyM2Y4ZjM3ODc4MmMxN2I3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0
Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCkBAIC0wLDAgKzEsNzMxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lt
cG9ydCAiUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oIgorCisjaW1wb3J0ICJBcmd1bWVudENv
ZGVycy5oIgorI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlSG9zdC5oIgorI2ltcG9ydCAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCisjaW1wb3J0IDxXZWJDb3JlL0Jsb2NrRXhjZXB0aW9ucy5oPgor
I2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BsYXRm
b3JtQ0FBbmltYXRpb25NYWMuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVGltaW5nRnVuY3Rpb24uaD4K
KyNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgor
I2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXVEY7
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworc3RhdGljIGRvdWJsZSBtZWRpYVRpbWVUb0N1
cnJlbnRUaW1lKENGVGltZUludGVydmFsIHQpCit7CisgICAgcmV0dXJuIG1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgpICsgdCAtIENBQ3VycmVudE1lZGlhVGltZSgpOworfQorCitzdGF0aWMg
TlNTdHJpbmcgKiBjb25zdCBXS05vblplcm9CZWdpblRpbWVGbGFnID0gQCJXS1BsYXRmb3JtQ0FB
bmltYXRpb25Ob25aZXJvQmVnaW5UaW1lRmxhZyI7CisKK0BpbnRlcmZhY2UgV0tBbmltYXRpb25E
ZWxlZ2F0ZSA6IE5TT2JqZWN0IHsKKyAgICBHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQg
X2xheWVySUQ7CisgICAgV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0KiBfbGF5ZXJUcmVlSG9z
dDsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoTGF5ZXJJRDooR3JhcGhpY3NMYXllcjo6
UGxhdGZvcm1MYXllcklEKWxheWVySUQgbGF5ZXJUcmVlSG9zdDooV2ViS2l0OjpSZW1vdGVMYXll
clRyZWVIb3N0KilsYXllclRyZWVIb3N0OworQGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tBbmlt
YXRpb25EZWxlZ2F0ZQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhMYXllcklEOihHcmFwaGlj
c0xheWVyOjpQbGF0Zm9ybUxheWVySUQpbGF5ZXJJRCBsYXllclRyZWVIb3N0OihXZWJLaXQ6OlJl
bW90ZUxheWVyVHJlZUhvc3QqKWxheWVyVHJlZUhvc3QKK3sKKyAgICBpZiAoKHNlbGYgPSBbc3Vw
ZXIgaW5pdF0pKSB7CisgICAgICAgIF9sYXllcklEID0gbGF5ZXJJRDsKKyAgICAgICAgX2xheWVy
VHJlZUhvc3QgPSBsYXllclRyZWVIb3N0OworICAgIH0KKyAgICByZXR1cm4gc2VsZjsKK30KKwor
LSAodm9pZClhbmltYXRpb25EaWRTdGFydDooQ0FBbmltYXRpb24gKilhbmltYXRpb24KK3sKKyAg
ICBib29sIGhhc05vblplcm9CZWdpblRpbWUgPSBbW2FuaW1hdGlvbiB2YWx1ZUZvcktleTpXS05v
blplcm9CZWdpblRpbWVGbGFnXSBib29sVmFsdWVdOworICAgIENGVGltZUludGVydmFsIHN0YXJ0
VGltZTsKKworICAgIGlmIChoYXNOb25aZXJvQmVnaW5UaW1lKSB7CisgICAgICAgIC8vIFdlIGRv
bid0IGtub3cgd2hhdCB0aW1lIENBIHVzZWQgdG8gY29tbWl0IHRoZSBhbmltYXRpb24sIHNvIGp1
c3QgdXNlIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgICAgLy8gKGV2ZW4gdGhvdWdoIHRoaXMgd2ls
bCBiZSBzbGlnaHRseSBvZmYpLgorICAgICAgICBzdGFydFRpbWUgPSBtZWRpYVRpbWVUb0N1cnJl
bnRUaW1lKENBQ3VycmVudE1lZGlhVGltZSgpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgc3RhcnRU
aW1lID0gbWVkaWFUaW1lVG9DdXJyZW50VGltZShbYW5pbWF0aW9uIGJlZ2luVGltZV0pOworCisg
ICAgX2xheWVyVHJlZUhvc3QtPmFuaW1hdGlvbkRpZFN0YXJ0KF9sYXllcklELCBzdGFydFRpbWUp
OworfQorQGVuZAorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0
aW9uUmVtb3RlOjpLZXlmcmFtZVZhbHVlOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGtleVR5cGUpOworCisgICAg
c3dpdGNoIChrZXlUeXBlKSB7CisgICAgY2FzZSBOdW1iZXJLZXlUeXBlOgorICAgICAgICBlbmNv
ZGVyIDw8IG51bWJlcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb2xvcktleVR5cGU6Cisg
ICAgICAgIGVuY29kZXIgPDwgY29sb3I7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUG9pbnRL
ZXlUeXBlOgorICAgICAgICBlbmNvZGVyIDw8IHBvaW50OworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFRyYW5zZm9ybUtleVR5cGU6CisgICAgICAgIGVuY29kZXIgPDwgdHJhbnNmb3JtOworICAg
ICAgICBicmVhazsKKyAgICB9Cit9CisKK2Jvb2wgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6
S2V5ZnJhbWVWYWx1ZTo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBQbGF0
Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpLZXlmcmFtZVZhbHVlJiB2YWx1ZSkKK3sKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlRW51bSh2YWx1ZS5rZXlUeXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgc3dpdGNoICh2YWx1ZS5rZXlUeXBlKSB7CisgICAgY2FzZSBOdW1iZXJLZXlUeXBl
OgorICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHZhbHVlLm51bWJlcikpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29sb3JLZXlUeXBlOgor
ICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHZhbHVlLmNvbG9yKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQb2ludEtleVR5cGU6CisgICAg
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUodmFsdWUucG9pbnQpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFRyYW5zZm9ybUtleVR5cGU6CisgICAg
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUodmFsdWUudHJhbnNmb3JtKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9
CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6UHJvcGVydGllczo6ZW5jb2RlKElQ
Qzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwga2V5
UGF0aDsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0oYW5pbWF0aW9uVHlwZSk7CisKKyAgICBlbmNv
ZGVyIDw8IGJlZ2luVGltZTsKKyAgICBlbmNvZGVyIDw8IGR1cmF0aW9uOworICAgIGVuY29kZXIg
PDwgdGltZU9mZnNldDsKKyAgICBlbmNvZGVyIDw8IHJlcGVhdENvdW50OworICAgIGVuY29kZXIg
PDwgc3BlZWQ7CisKKyAgICBlbmNvZGVyLmVuY29kZUVudW0oZmlsbE1vZGUpOworICAgIGVuY29k
ZXIuZW5jb2RlRW51bSh2YWx1ZUZ1bmN0aW9uKTsKKworICAgIGVuY29kZXIgPDwgYXV0b1JldmVy
c2VzOworICAgIGVuY29kZXIgPDwgcmVtb3ZlZE9uQ29tcGxldGlvbjsKKyAgICBlbmNvZGVyIDw8
IGFkZGl0aXZlOworICAgIGVuY29kZXIgPDwgcmV2ZXJzZVRpbWluZ0Z1bmN0aW9uczsKKyAgICBl
bmNvZGVyIDw8IGhhc05vblplcm9CZWdpblRpbWU7CisgICAgCisgICAgZW5jb2RlciA8PCBrZXlW
YWx1ZXM7CisgICAgZW5jb2RlciA8PCBrZXlUaW1lczsKKyAgICAKKyAgICBlbmNvZGVyIDw8IHN0
YXRpY19jYXN0PHVpbnQ2NF90Pih0aW1pbmdGdW5jdGlvbnMuc2l6ZSgpKTsKKyAgICBmb3IgKGNv
bnN0IGF1dG8mIHRpbWluZ0Z1bmN0aW9uIDogdGltaW5nRnVuY3Rpb25zKSB7CisKKyAgICAgICAg
c3dpdGNoICh0aW1pbmdGdW5jdGlvbi0+dHlwZSgpKSB7CisgICAgICAgIGNhc2UgVGltaW5nRnVu
Y3Rpb246OkxpbmVhckZ1bmN0aW9uOgorICAgICAgICAgICAgZW5jb2RlciA8PCAqc3RhdGljX2Nh
c3Q8TGluZWFyVGltaW5nRnVuY3Rpb24qPih0aW1pbmdGdW5jdGlvbi5nZXQoKSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFRpbWluZ0Z1bmN0aW9uOjpD
dWJpY0JlemllckZ1bmN0aW9uOgorICAgICAgICAgICAgZW5jb2RlciA8PCAqc3RhdGljX2Nhc3Q8
Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbio+KHRpbWluZ0Z1bmN0aW9uLmdldCgpKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAKKyAgICAgICAgY2FzZSBUaW1pbmdGdW5jdGlvbjo6U3Rl
cHNGdW5jdGlvbjoKKyAgICAgICAgICAgIGVuY29kZXIgPDwgKnN0YXRpY19jYXN0PFN0ZXBzVGlt
aW5nRnVuY3Rpb24qPih0aW1pbmdGdW5jdGlvbi5nZXQoKSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgIH0KK30KKworYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpQ
cm9wZXJ0aWVzOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFBsYXRmb3Jt
Q0FBbmltYXRpb25SZW1vdGU6OlByb3BlcnRpZXMmIHByb3BlcnRpZXMpCit7CisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShwcm9wZXJ0aWVzLmtleVBhdGgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShwcm9wZXJ0aWVzLmFuaW1hdGlvblR5cGUp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHByb3Bl
cnRpZXMuYmVnaW5UaW1lKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShwcm9wZXJ0aWVzLmR1cmF0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcm9wZXJ0aWVzLnRpbWVPZmZzZXQpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHByb3BlcnRpZXMucmVw
ZWF0Q291bnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHByb3BlcnRpZXMuc3BlZWQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlRW51bShwcm9wZXJ0aWVzLmZpbGxNb2RlKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocHJvcGVydGllcy52YWx1ZUZ1
bmN0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwcm9wZXJ0aWVzLmF1dG9SZXZlcnNlcykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocHJvcGVydGllcy5yZW1vdmVkT25Db21wbGV0aW9uKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcm9wZXJ0aWVz
LmFkZGl0aXZlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShwcm9wZXJ0aWVzLnJldmVyc2VUaW1pbmdGdW5jdGlvbnMpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHByb3BlcnRpZXMuaGFzTm9uWmVyb0Jl
Z2luVGltZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocHJvcGVydGllcy5rZXlWYWx1ZXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHByb3BlcnRpZXMua2V5VGltZXMpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICB1aW50NjRfdCBudW1UaW1pbmdGdW5jdGlvbnM7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShudW1UaW1pbmdGdW5jdGlvbnMpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgCisgICAgaWYgKG51bVRpbWluZ0Z1bmN0aW9ucykgeworICAgICAgICBwcm9wZXJ0aWVzLnRp
bWluZ0Z1bmN0aW9ucy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG51bVRpbWluZ0Z1bmN0aW9ucyk7
CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1UaW1pbmdGdW5jdGlvbnM7ICsr
aSkgeworICAgICAgICAKKyAgICAgICAgICAgIFRpbWluZ0Z1bmN0aW9uOjpUaW1pbmdGdW5jdGlv
blR5cGUgdHlwZTsKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHR5cGUpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgUmVmUHRyPFRpbWlu
Z0Z1bmN0aW9uPiB0aW1pbmdGdW5jdGlvbjsKKyAgICAgICAgICAgIHN3aXRjaCAodHlwZSkgewor
ICAgICAgICAgICAgY2FzZSBUaW1pbmdGdW5jdGlvbjo6TGluZWFyRnVuY3Rpb246CisgICAgICAg
ICAgICAgICAgdGltaW5nRnVuY3Rpb24gPSBMaW5lYXJUaW1pbmdGdW5jdGlvbjo6Y3JlYXRlKCk7
CisgICAgICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSgqc3RhdGljX2Nhc3Q8TGluZWFy
VGltaW5nRnVuY3Rpb24qPih0aW1pbmdGdW5jdGlvbi5nZXQoKSkpKQorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICBjYXNlIFRpbWluZ0Z1bmN0aW9uOjpDdWJpY0JlemllckZ1bmN0aW9u
OgorICAgICAgICAgICAgICAgIHRpbWluZ0Z1bmN0aW9uID0gQ3ViaWNCZXppZXJUaW1pbmdGdW5j
dGlvbjo6Y3JlYXRlKCk7CisgICAgICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSgqc3Rh
dGljX2Nhc3Q8Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbio+KHRpbWluZ0Z1bmN0aW9uLmdldCgp
KSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBUaW1pbmdGdW5jdGlvbjo6U3Rl
cHNGdW5jdGlvbjoKKyAgICAgICAgICAgICAgICB0aW1pbmdGdW5jdGlvbiA9IFN0ZXBzVGltaW5n
RnVuY3Rpb246OmNyZWF0ZSgpOworICAgICAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
KnN0YXRpY19jYXN0PFN0ZXBzVGltaW5nRnVuY3Rpb24qPih0aW1pbmdGdW5jdGlvbi5nZXQoKSkp
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHByb3BlcnRpZXMu
dGltaW5nRnVuY3Rpb25zLnVuY2hlY2tlZEFwcGVuZCh0aW1pbmdGdW5jdGlvbi5yZWxlYXNlKCkp
OworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKKyNwcmFnbWEgbWFy
ayAtCisKK1Bhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUFuaW1hdGlv
blJlbW90ZTo6Y3JlYXRlKFBsYXRmb3JtQ0FBbmltYXRpb246OkFuaW1hdGlvblR5cGUgdHlwZSwg
Y29uc3QgU3RyaW5nJiBrZXlQYXRoKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGxhdGZv
cm1DQUFuaW1hdGlvblJlbW90ZSh0eXBlLCBrZXlQYXRoKSk7Cit9CisKK1Bhc3NSZWZQdHI8UGxh
dGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6Y29weSgpIGNvbnN0
Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OlBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUoQW5p
bWF0aW9uVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIGtleVBhdGgpCisgICAgOiBQbGF0Zm9ybUNB
QW5pbWF0aW9uKHR5cGUpCit7CisgICAgbV9wcm9wZXJ0aWVzLmtleVBhdGggPSBrZXlQYXRoOwor
ICAgIG1fcHJvcGVydGllcy5hbmltYXRpb25UeXBlID0gdHlwZTsKK30KKworU3RyaW5nIFBsYXRm
b3JtQ0FBbmltYXRpb25SZW1vdGU6OmtleVBhdGgoKSBjb25zdAoreworICAgIHJldHVybiBtX3By
b3BlcnRpZXMua2V5UGF0aDsKK30KKworQ0ZUaW1lSW50ZXJ2YWwgUGxhdGZvcm1DQUFuaW1hdGlv
blJlbW90ZTo6YmVnaW5UaW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcm9wZXJ0aWVzLmJl
Z2luVGltZTsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRCZWdpblRp
bWUoQ0ZUaW1lSW50ZXJ2YWwgdmFsdWUpCit7CisgICAgbV9wcm9wZXJ0aWVzLmJlZ2luVGltZSA9
IHZhbHVlOworICAgIAorICAgIC8vIEFsc28gc2V0IGEgZmxhZyB0byB0ZWxsIHVzIGlmIHdlJ3Zl
IHBhc3NlZCBpbiBhIDAgdmFsdWUuIAorICAgIC8vIFRoZSBmbGFnIGlzIG5lZWRlZCBiZWNhdXNl
IGxhdGVyIGJlZ2luVGltZSB3aWxsIGdldCBjaGFuZ2VkCisgICAgLy8gdG8gdGhlIHRpbWUgYXQg
d2hpY2ggaXQgZmlyZWQgYW5kIHdlIG5lZWQgdG8ga25vdyB3aGV0aGVyCisgICAgLy8gb3Igbm90
IGl0IHdhcyAwIHRvIGJlZ2luIHdpdGguCisgICAgaWYgKHZhbHVlKQorICAgICAgICBtX3Byb3Bl
cnRpZXMuaGFzTm9uWmVyb0JlZ2luVGltZSA9IHZhbHVlOworfQorCitDRlRpbWVJbnRlcnZhbCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpkdXJhdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fcHJvcGVydGllcy5kdXJhdGlvbjsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVt
b3RlOjpzZXREdXJhdGlvbihDRlRpbWVJbnRlcnZhbCB2YWx1ZSkKK3sKKyAgICBtX3Byb3BlcnRp
ZXMuZHVyYXRpb24gPSB2YWx1ZTsKK30KKworZmxvYXQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90
ZTo6c3BlZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX3Byb3BlcnRpZXMuc3BlZWQ7Cit9CisK
K3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0U3BlZWQoZmxvYXQgdmFsdWUpCit7
CisgICAgbV9wcm9wZXJ0aWVzLnNwZWVkID0gdmFsdWU7Cit9CisKK0NGVGltZUludGVydmFsIFBs
YXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnRpbWVPZmZzZXQoKSBjb25zdAoreworICAgIHJldHVy
biBtX3Byb3BlcnRpZXMudGltZU9mZnNldDsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
UmVtb3RlOjpzZXRUaW1lT2Zmc2V0KENGVGltZUludGVydmFsIHZhbHVlKQoreworICAgIG1fcHJv
cGVydGllcy50aW1lT2Zmc2V0ID0gdmFsdWU7Cit9CisKK2Zsb2F0IFBsYXRmb3JtQ0FBbmltYXRp
b25SZW1vdGU6OnJlcGVhdENvdW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcm9wZXJ0aWVz
LnJlcGVhdENvdW50OworfQorCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFJl
cGVhdENvdW50KGZsb2F0IHZhbHVlKQoreworICAgIG1fcHJvcGVydGllcy5yZXBlYXRDb3VudCA9
IHZhbHVlOworfQorCitib29sIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmF1dG9yZXZlcnNl
cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJvcGVydGllcy5hdXRvUmV2ZXJzZXM7Cit9CisK
K3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0QXV0b3JldmVyc2VzKGJvb2wgdmFs
dWUpCit7CisgICAgbV9wcm9wZXJ0aWVzLmF1dG9SZXZlcnNlcyA9IHZhbHVlOworfQorCitQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpGaWxsTW9kZVR5cGUgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6
ZmlsbE1vZGUoKSBjb25zdAoreworICAgIHJldHVybiBtX3Byb3BlcnRpZXMuZmlsbE1vZGU7Cit9
CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0RmlsbE1vZGUoRmlsbE1vZGVU
eXBlIHZhbHVlKQoreworICAgIG1fcHJvcGVydGllcy5maWxsTW9kZSA9IHZhbHVlOworfQorCit2
b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFRpbWluZ0Z1bmN0aW9uKGNvbnN0IFRp
bWluZ0Z1bmN0aW9uKiB2YWx1ZSwgYm9vbCByZXZlcnNlKQoreworICAgIFZlY3RvcjxSZWZQdHI8
VGltaW5nRnVuY3Rpb24+PiB0aW1pbmdGdW5jdGlvbnM7CisgICAgdGltaW5nRnVuY3Rpb25zLmFw
cGVuZCh2YWx1ZS0+Y2xvbmUoKSk7CisKKyAgICBtX3Byb3BlcnRpZXMudGltaW5nRnVuY3Rpb25z
ID0gc3RkOjptb3ZlKHRpbWluZ0Z1bmN0aW9ucyk7CisgICAgbV9wcm9wZXJ0aWVzLnJldmVyc2VU
aW1pbmdGdW5jdGlvbnMgPSByZXZlcnNlOworfQorCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25S
ZW1vdGU6OmNvcHlUaW1pbmdGdW5jdGlvbkZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiog
dmFsdWUpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK2Jvb2wgUGxhdGZvcm1D
QUFuaW1hdGlvblJlbW90ZTo6aXNSZW1vdmVkT25Db21wbGV0aW9uKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9wcm9wZXJ0aWVzLnJlbW92ZWRPbkNvbXBsZXRpb247Cit9CisKK3ZvaWQgUGxhdGZv
cm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0UmVtb3ZlZE9uQ29tcGxldGlvbihib29sIHZhbHVlKQor
eworICAgIG1fcHJvcGVydGllcy5yZW1vdmVkT25Db21wbGV0aW9uID0gdmFsdWU7Cit9CisKK2Jv
b2wgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6aXNBZGRpdGl2ZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fcHJvcGVydGllcy5hZGRpdGl2ZTsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0
aW9uUmVtb3RlOjpzZXRBZGRpdGl2ZShib29sIHZhbHVlKQoreworICAgIG1fcHJvcGVydGllcy5h
ZGRpdGl2ZSA9IHZhbHVlOworfQorCitQbGF0Zm9ybUNBQW5pbWF0aW9uOjpWYWx1ZUZ1bmN0aW9u
VHlwZSBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjp2YWx1ZUZ1bmN0aW9uKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9wcm9wZXJ0aWVzLnZhbHVlRnVuY3Rpb247Cit9CisKK3ZvaWQgUGxhdGZv
cm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0VmFsdWVGdW5jdGlvbihWYWx1ZUZ1bmN0aW9uVHlwZSB2
YWx1ZSkKK3sKKyAgICBtX3Byb3BlcnRpZXMudmFsdWVGdW5jdGlvbiA9IHZhbHVlOworfQorCit2
b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldEZyb21WYWx1ZShmbG9hdCB2YWx1ZSkK
K3sKKyAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzLnJlc2l6ZSgyKTsKKyAgICBtX3Byb3BlcnRpZXMu
a2V5VmFsdWVzWzBdID0gS2V5ZnJhbWVWYWx1ZSh2YWx1ZSk7Cit9CisKK3ZvaWQgUGxhdGZvcm1D
QUFuaW1hdGlvblJlbW90ZTo6c2V0RnJvbVZhbHVlKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JiB2YWx1ZSkKK3sKKyAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzLnJlc2l6ZSgyKTsKKyAgICBtX3By
b3BlcnRpZXMua2V5VmFsdWVzWzBdID0gS2V5ZnJhbWVWYWx1ZSh2YWx1ZSk7Cit9CisKK3ZvaWQg
UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0RnJvbVZhbHVlKGNvbnN0IEZsb2F0UG9pbnQz
RCYgdmFsdWUpCit7CisgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcy5yZXNpemUoMik7CisgICAgbV9w
cm9wZXJ0aWVzLmtleVZhbHVlc1swXSA9IEtleWZyYW1lVmFsdWUodmFsdWUpOworfQorCit2b2lk
IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldEZyb21WYWx1ZShjb25zdCBDb2xvciYgdmFs
dWUpCit7CisgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcy5yZXNpemUoMik7CisgICAgbV9wcm9wZXJ0
aWVzLmtleVZhbHVlc1swXSA9IEtleWZyYW1lVmFsdWUodmFsdWUpOworfQorCisjaWYgRU5BQkxF
KENTU19GSUxURVJTKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRGcm9tVmFs
dWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiBvcGVyYXRpb24sIGludCBpbnRlcm5hbEZpbHRlclBy
b3BlcnR5SW5kZXgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisjZW5kaWYKKwor
dm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpjb3B5RnJvbVZhbHVlRnJvbShjb25zdCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
K30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRUb1ZhbHVlKGZsb2F0IHZh
bHVlKQoreworICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXMucmVzaXplKDIpOworICAgIG1fcHJvcGVy
dGllcy5rZXlWYWx1ZXNbMV0gPSBLZXlmcmFtZVZhbHVlKHZhbHVlKTsKK30KKwordm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRUb1ZhbHVlKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0
cml4JiB2YWx1ZSkKK3sKKyAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzLnJlc2l6ZSgyKTsKKyAgICBt
X3Byb3BlcnRpZXMua2V5VmFsdWVzWzFdID0gS2V5ZnJhbWVWYWx1ZSh2YWx1ZSk7Cit9CisKK3Zv
aWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0VG9WYWx1ZShjb25zdCBGbG9hdFBvaW50
M0QmIHZhbHVlKQoreworICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXMucmVzaXplKDIpOworICAgIG1f
cHJvcGVydGllcy5rZXlWYWx1ZXNbMV0gPSBLZXlmcmFtZVZhbHVlKHZhbHVlKTsKK30KKwordm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRUb1ZhbHVlKGNvbnN0IENvbG9yJiB2YWx1
ZSkKK3sKKyAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzLnJlc2l6ZSgyKTsKKyAgICBtX3Byb3BlcnRp
ZXMua2V5VmFsdWVzWzFdID0gS2V5ZnJhbWVWYWx1ZSh2YWx1ZSk7Cit9CisKKyNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFRvVmFsdWUo
Y29uc3QgRmlsdGVyT3BlcmF0aW9uKiBvcGVyYXRpb24sIGludCBpbnRlcm5hbEZpbHRlclByb3Bl
cnR5SW5kZXgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisjZW5kaWYKKwordm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpjb3B5VG9WYWx1ZUZyb20oY29uc3QgUGxhdGZv
cm1DQUFuaW1hdGlvbiogdmFsdWUpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisK
Ky8vIEtleWZyYW1lLWFuaW1hdGlvbiBwcm9wZXJ0aWVzLgordm9pZCBQbGF0Zm9ybUNBQW5pbWF0
aW9uUmVtb3RlOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYgdmFsdWVzKQoreworICAg
IGlmIChhbmltYXRpb25UeXBlKCkgIT0gS2V5ZnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAg
IFZlY3RvcjxLZXlmcmFtZVZhbHVlPiBrZXlmcmFtZXM7CisgICAga2V5ZnJhbWVzLnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkodmFsdWVzLnNpemUoKSk7CisgICAgCisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCB2YWx1ZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIGtleWZyYW1lcy51bmNoZWNrZWRB
cHBlbmQoS2V5ZnJhbWVWYWx1ZSh2YWx1ZXNbaV0pKTsKKyAgICAKKyAgICBtX3Byb3BlcnRpZXMu
a2V5VmFsdWVzID0gc3RkOjptb3ZlKGtleWZyYW1lcyk7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvblJlbW90ZTo6c2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxUcmFuc2Zvcm1hdGlvbk1hdHJp
eD4mIHZhbHVlcykKK3sKKyAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZyYW1lKQorICAg
ICAgICByZXR1cm47CisgICAgICAgIAorICAgIFZlY3RvcjxLZXlmcmFtZVZhbHVlPiBrZXlmcmFt
ZXM7CisgICAga2V5ZnJhbWVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodmFsdWVzLnNpemUoKSk7
CisgICAgCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2YWx1ZXMuc2l6ZSgpOyArK2kpCisg
ICAgICAgIGtleWZyYW1lcy51bmNoZWNrZWRBcHBlbmQoS2V5ZnJhbWVWYWx1ZSh2YWx1ZXNbaV0p
KTsKKyAgICAKKyAgICBtX3Byb3BlcnRpZXMua2V5VmFsdWVzID0gc3RkOjptb3ZlKGtleWZyYW1l
cyk7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0VmFsdWVzKGNvbnN0
IFZlY3RvcjxGbG9hdFBvaW50M0Q+JiB2YWx1ZXMpCit7CisgICAgaWYgKGFuaW1hdGlvblR5cGUo
KSAhPSBLZXlmcmFtZSkKKyAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICBWZWN0b3I8S2V5
ZnJhbWVWYWx1ZT4ga2V5ZnJhbWVzOworICAgIGtleWZyYW1lcy5yZXNlcnZlSW5pdGlhbENhcGFj
aXR5KHZhbHVlcy5zaXplKCkpOworICAgIAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFs
dWVzLnNpemUoKTsgKytpKQorICAgICAgICBrZXlmcmFtZXMudW5jaGVja2VkQXBwZW5kKEtleWZy
YW1lVmFsdWUodmFsdWVzW2ldKSk7CisgICAgCisgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcyA9
IHN0ZDo6bW92ZShrZXlmcmFtZXMpOworfQorCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1v
dGU6OnNldFZhbHVlcyhjb25zdCBWZWN0b3I8Q29sb3I+JiB2YWx1ZXMpCit7CisgICAgaWYgKGFu
aW1hdGlvblR5cGUoKSAhPSBLZXlmcmFtZSkKKyAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAg
ICBWZWN0b3I8S2V5ZnJhbWVWYWx1ZT4ga2V5ZnJhbWVzOworICAgIGtleWZyYW1lcy5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KHZhbHVlcy5zaXplKCkpOworICAgIAorICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgdmFsdWVzLnNpemUoKTsgKytpKQorICAgICAgICBrZXlmcmFtZXMudW5jaGVja2Vk
QXBwZW5kKEtleWZyYW1lVmFsdWUodmFsdWVzW2ldKSk7CisgICAgCisgICAgbV9wcm9wZXJ0aWVz
LmtleVZhbHVlcyA9IHN0ZDo6bW92ZShrZXlmcmFtZXMpOworfQorCisjaWYgRU5BQkxFKENTU19G
SUxURVJTKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRWYWx1ZXMoY29uc3Qg
VmVjdG9yPFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+PiYsIGludCBpbnRlcm5hbEZpbHRlclByb3Bl
cnR5SW5kZXgpCit7CisgICAgVU5VU0VEX1BBUkFNKGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRl
eCk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisjZW5kaWYKKwordm9pZCBQbGF0Zm9y
bUNBQW5pbWF0aW9uUmVtb3RlOjpjb3B5VmFsdWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0
aW9uKiB2YWx1ZSkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRLZXlUaW1lcyhjb25zdCBWZWN0b3I8ZmxvYXQ+JiBr
ZXlUaW1lcykKK3sKKyAgICBtX3Byb3BlcnRpZXMua2V5VGltZXMgPSBrZXlUaW1lczsKK30KKwor
dm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpjb3B5S2V5VGltZXNGcm9tKGNvbnN0IFBs
YXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
fQorCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFRpbWluZ0Z1bmN0aW9ucyhj
b25zdCBWZWN0b3I8Y29uc3QgVGltaW5nRnVuY3Rpb24qPiYgdmFsdWVzLCBib29sIHJldmVyc2Up
Cit7CisgICAgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpUaW1pbmdGdW5jdGlvbj4+IHRpbWluZ0Z1
bmN0aW9uczsKKyAgICB0aW1pbmdGdW5jdGlvbnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh2YWx1
ZXMuc2l6ZSgpKTsKKyAgICAKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZhbHVlcy5zaXpl
KCk7ICsraSkKKyAgICAgICAgdGltaW5nRnVuY3Rpb25zLnVuY2hlY2tlZEFwcGVuZCh2YWx1ZXNb
aV0tPmNsb25lKCkpOworICAgIAorICAgIG1fcHJvcGVydGllcy50aW1pbmdGdW5jdGlvbnMgPSBz
dGQ6Om1vdmUodGltaW5nRnVuY3Rpb25zKTsKKyAgICBtX3Byb3BlcnRpZXMucmV2ZXJzZVRpbWlu
Z0Z1bmN0aW9ucyA9IHJldmVyc2U7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90
ZTo6Y29weVRpbWluZ0Z1bmN0aW9uc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFs
dWUpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3N0YXRpYyBOU09iamVjdCog
YW5pbWF0aW9uVmFsdWVGcm9tS2V5ZnJhbWVWYWx1ZShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9u
UmVtb3RlOjpLZXlmcmFtZVZhbHVlJiBrZXlmcmFtZVZhbHVlKQoreworICAgIHN3aXRjaCAoa2V5
ZnJhbWVWYWx1ZS5rZXlmcmFtZVR5cGUoKSkgeworICAgIGNhc2UgUGxhdGZvcm1DQUFuaW1hdGlv
blJlbW90ZTo6S2V5ZnJhbWVWYWx1ZTo6TnVtYmVyS2V5VHlwZToKKyAgICAgICAgcmV0dXJuIFtO
U051bWJlciBudW1iZXJXaXRoRG91YmxlOmtleWZyYW1lVmFsdWUubnVtYmVyVmFsdWUoKV07CisK
KyAgICBjYXNlIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OktleWZyYW1lVmFsdWU6OkNvbG9y
S2V5VHlwZTogeworICAgICAgICBDb2xvciBjb2xvciA9IGtleWZyYW1lVmFsdWUuY29sb3JWYWx1
ZSgpOworICAgICAgICByZXR1cm4gW05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0czoKKyAgICAgICAg
ICAgIFtOU051bWJlciBudW1iZXJXaXRoRG91YmxlOmNvbG9yLnJlZCgpXSwKKyAgICAgICAgICAg
IFtOU051bWJlciBudW1iZXJXaXRoRG91YmxlOmNvbG9yLmdyZWVuKCldLAorICAgICAgICAgICAg
W05TTnVtYmVyIG51bWJlcldpdGhEb3VibGU6Y29sb3IuYmx1ZSgpXSwKKyAgICAgICAgICAgIFtO
U051bWJlciBudW1iZXJXaXRoRG91YmxlOmNvbG9yLmFscGhhKCldLAorICAgICAgICAgICAgbmls
XTsKKyAgICB9CisKKyAgICBjYXNlIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OktleWZyYW1l
VmFsdWU6OlBvaW50S2V5VHlwZTogeworICAgICAgICBGbG9hdFBvaW50M0QgcG9pbnQgPSBrZXlm
cmFtZVZhbHVlLnBvaW50VmFsdWUoKTsKKyAgICAgICAgcmV0dXJuIFtOU0FycmF5IGFycmF5V2l0
aE9iamVjdHM6CisgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aERvdWJsZTpwb2ludC54
KCldLAorICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhEb3VibGU6cG9pbnQueSgpXSwK
KyAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoRG91YmxlOnBvaW50LnooKV0sCisgICAg
ICAgICAgICBuaWxdOworICAgIH0KKyAgICBjYXNlIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6
OktleWZyYW1lVmFsdWU6OlRyYW5zZm9ybUtleVR5cGU6CisgICAgICAgIHJldHVybiBbTlNWYWx1
ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOmtleWZyYW1lVmFsdWUudHJhbnNmb3JtVmFsdWUoKV07
CisgICAgfQorfQorCitzdGF0aWMgdm9pZCBhZGRBbmltYXRpb25Ub0xheWVyKENBTGF5ZXIgKmxh
eWVyLCBSZW1vdGVMYXllclRyZWVIb3N0KiBsYXllclRyZWVIb3N0LCBjb25zdCBTdHJpbmcmIGtl
eSwgY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6UHJvcGVydGllcyYgcHJvcGVydGll
cykKK3sKKyAgICBSZXRhaW5QdHI8Q0FQcm9wZXJ0eUFuaW1hdGlvbj4gY2FBbmltYXRpb247Cisg
ICAgc3dpdGNoIChwcm9wZXJ0aWVzLmFuaW1hdGlvblR5cGUpIHsKKyAgICBjYXNlIFBsYXRmb3Jt
Q0FBbmltYXRpb246OkJhc2ljOiB7CisgICAgICAgIFJldGFpblB0cjxDQUJhc2ljQW5pbWF0aW9u
PiBiYXNpY0FuaW1hdGlvbjsKKyAgICAgICAgYmFzaWNBbmltYXRpb24gPSBbQ0FCYXNpY0FuaW1h
dGlvbiBhbmltYXRpb25XaXRoS2V5UGF0aDpwcm9wZXJ0aWVzLmtleVBhdGhdOworICAgICAgICAK
KyAgICAgICAgaWYgKHByb3BlcnRpZXMua2V5VmFsdWVzLnNpemUoKSA+IDEpIHsKKyAgICAgICAg
ICAgIFtiYXNpY0FuaW1hdGlvbiBzZXRGcm9tVmFsdWU6YW5pbWF0aW9uVmFsdWVGcm9tS2V5ZnJh
bWVWYWx1ZShwcm9wZXJ0aWVzLmtleVZhbHVlc1swXSldOworICAgICAgICAgICAgW2Jhc2ljQW5p
bWF0aW9uIHNldFRvVmFsdWU6YW5pbWF0aW9uVmFsdWVGcm9tS2V5ZnJhbWVWYWx1ZShwcm9wZXJ0
aWVzLmtleVZhbHVlc1sxXSldOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAocHJv
cGVydGllcy50aW1pbmdGdW5jdGlvbnMuc2l6ZSgpKQorICAgICAgICAgICAgW2Jhc2ljQW5pbWF0
aW9uIHNldFRpbWluZ0Z1bmN0aW9uOnRvQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uKHByb3BlcnRpZXMu
dGltaW5nRnVuY3Rpb25zWzBdLmdldCgpLCBwcm9wZXJ0aWVzLnJldmVyc2VUaW1pbmdGdW5jdGlv
bnMpXTsKKyAgICAgICAgCisgICAgICAgIGNhQW5pbWF0aW9uID0gYmFzaWNBbmltYXRpb247Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFBsYXRmb3JtQ0FBbmltYXRpb246OktleWZy
YW1lOiB7CisgICAgICAgIFJldGFpblB0cjxDQUtleWZyYW1lQW5pbWF0aW9uPiBrZXlmcmFtZUFu
aW1hdGlvbjsKKyAgICAgICAga2V5ZnJhbWVBbmltYXRpb24gPSBbQ0FLZXlmcmFtZUFuaW1hdGlv
biBhbmltYXRpb25XaXRoS2V5UGF0aDpwcm9wZXJ0aWVzLmtleVBhdGhdOworCisgICAgICAgIGlm
IChwcm9wZXJ0aWVzLmtleVZhbHVlcy5zaXplKCkpIHsKKyAgICAgICAgICAgIFJldGFpblB0cjxO
U011dGFibGVBcnJheT4ga2V5ZnJhbWVzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9j
XSBpbml0V2l0aENhcGFjaXR5OnByb3BlcnRpZXMua2V5VmFsdWVzLnNpemUoKV0pOworICAgICAg
ICAgICAgZm9yIChjb25zdCBhdXRvJiB2YWx1ZSA6IHByb3BlcnRpZXMua2V5VmFsdWVzKQorICAg
ICAgICAgICAgICAgIFtrZXlmcmFtZXMgYWRkT2JqZWN0OmFuaW1hdGlvblZhbHVlRnJvbUtleWZy
YW1lVmFsdWUodmFsdWUpXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgW2tleWZyYW1lQW5p
bWF0aW9uIHNldFZhbHVlczprZXlmcmFtZXMuZ2V0KCldOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKHByb3BlcnRpZXMua2V5VGltZXMuc2l6ZSgpKSB7CisgICAgICAgICAgICBSZXRhaW5QdHI8
TlNNdXRhYmxlQXJyYXk+IGtleVRpbWVzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9j
XSBpbml0V2l0aENhcGFjaXR5OnByb3BlcnRpZXMua2V5VGltZXMuc2l6ZSgpXSk7CisgICAgICAg
ICAgICBmb3IgKGF1dG8ga2V5VGltZSA6IHByb3BlcnRpZXMua2V5VGltZXMpCisgICAgICAgICAg
ICAgICAgW2tleVRpbWVzIGFkZE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aEZsb2F0OmtleVRp
bWVdXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgW2tleWZyYW1lQW5pbWF0aW9uIHNldEtl
eVRpbWVzOmtleVRpbWVzLmdldCgpXTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChwcm9wZXJ0
aWVzLnRpbWluZ0Z1bmN0aW9ucy5zaXplKCkpIHsKKyAgICAgICAgICAgIFJldGFpblB0cjxOU011
dGFibGVBcnJheT4gdGltaW5nRnVuY3Rpb25zID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFs
bG9jXSBpbml0V2l0aENhcGFjaXR5OnByb3BlcnRpZXMudGltaW5nRnVuY3Rpb25zLnNpemUoKV0p
OworICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiB0aW1pbmdGdW5jdGlvbiA6IHByb3BlcnRp
ZXMudGltaW5nRnVuY3Rpb25zKQorICAgICAgICAgICAgICAgIFt0aW1pbmdGdW5jdGlvbnMgYWRk
T2JqZWN0OnRvQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uKHRpbWluZ0Z1bmN0aW9uLmdldCgpLCBwcm9w
ZXJ0aWVzLnJldmVyc2VUaW1pbmdGdW5jdGlvbnMpXTsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgW2tleWZyYW1lQW5pbWF0aW9uIHNldFRpbWluZ0Z1bmN0aW9uczp0aW1pbmdGdW5jdGlvbnMu
Z2V0KCldOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBjYUFuaW1hdGlvbiA9IGtleWZy
YW1lQW5pbWF0aW9uOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgfQorICAgIAorICAgIFtj
YUFuaW1hdGlvbiBzZXRCZWdpblRpbWU6cHJvcGVydGllcy5iZWdpblRpbWVdOworICAgIFtjYUFu
aW1hdGlvbiBzZXREdXJhdGlvbjpwcm9wZXJ0aWVzLmR1cmF0aW9uXTsKKyAgICBbY2FBbmltYXRp
b24gc2V0VGltZU9mZnNldDpwcm9wZXJ0aWVzLnRpbWVPZmZzZXRdOworICAgIFtjYUFuaW1hdGlv
biBzZXRSZXBlYXRDb3VudDpwcm9wZXJ0aWVzLnJlcGVhdENvdW50XTsKKyAgICBbY2FBbmltYXRp
b24gc2V0U3BlZWQ6cHJvcGVydGllcy5zcGVlZF07CisgICAgW2NhQW5pbWF0aW9uIHNldEF1dG9y
ZXZlcnNlczpwcm9wZXJ0aWVzLmF1dG9SZXZlcnNlc107CisgICAgW2NhQW5pbWF0aW9uIHNldFJl
bW92ZWRPbkNvbXBsZXRpb246cHJvcGVydGllcy5yZW1vdmVkT25Db21wbGV0aW9uXTsKKyAgICBb
Y2FBbmltYXRpb24gc2V0QWRkaXRpdmU6cHJvcGVydGllcy5hZGRpdGl2ZV07CisgICAgCisgICAg
aWYgKHByb3BlcnRpZXMuZmlsbE1vZGUgIT0gUGxhdGZvcm1DQUFuaW1hdGlvbjo6Tm9GaWxsTW9k
ZSkKKyAgICAgICAgW2NhQW5pbWF0aW9uIHNldEZpbGxNb2RlOnRvQ0FGaWxsTW9kZVR5cGUocHJv
cGVydGllcy5maWxsTW9kZSldOworCisgICAgaWYgKHByb3BlcnRpZXMudmFsdWVGdW5jdGlvbiAh
PSBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpOb1ZhbHVlRnVuY3Rpb24pCisgICAgICAgIFtjYUFuaW1h
dGlvbiBzZXRWYWx1ZUZ1bmN0aW9uOltDQVZhbHVlRnVuY3Rpb24gZnVuY3Rpb25XaXRoTmFtZTp0
b0NBVmFsdWVGdW5jdGlvblR5cGUocHJvcGVydGllcy52YWx1ZUZ1bmN0aW9uKV1dOworICAgIAor
ICAgIGlmIChwcm9wZXJ0aWVzLmhhc05vblplcm9CZWdpblRpbWUpCisgICAgICAgIFtjYUFuaW1h
dGlvbi5nZXQoKSAgc2V0VmFsdWU6W05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10gZm9yS2V5
OldLTm9uWmVyb0JlZ2luVGltZUZsYWddOworICAgIAorICAgIGlmIChsYXllclRyZWVIb3N0KSB7
CisgICAgICAgIEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXllcklEID0gUmVtb3Rl
TGF5ZXJUcmVlSG9zdDo6bGF5ZXJJRChsYXllcik7CisgICAgCisgICAgICAgIFJldGFpblB0cjxX
S0FuaW1hdGlvbkRlbGVnYXRlPiYgZGVsZWdhdGUgPSBsYXllclRyZWVIb3N0LT5hbmltYXRpb25E
ZWxlZ2F0ZXMoKS5hZGQobGF5ZXJJRCwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOworICAgICAg
ICBpZiAoIWRlbGVnYXRlKQorICAgICAgICAgICAgZGVsZWdhdGUgPSBhZG9wdE5TKFtbV0tBbmlt
YXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhMYXllcklEOmxheWVySUQgbGF5ZXJUcmVlSG9z
dDpsYXllclRyZWVIb3N0XSk7CisKKyAgICAgICAgW2NhQW5pbWF0aW9uIHNldERlbGVnYXRlOmRl
bGVnYXRlLmdldCgpXTsKKyAgICB9CisgICAgCisgICAgW2xheWVyIGFkZEFuaW1hdGlvbjpjYUFu
aW1hdGlvbi5nZXQoKSBmb3JLZXk6a2V5XTsKK30KKwordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
UmVtb3RlOjp1cGRhdGVMYXllckFuaW1hdGlvbnMoQ0FMYXllciAqbGF5ZXIsIFJlbW90ZUxheWVy
VHJlZUhvc3QqIGxheWVyVHJlZUhvc3QsIGNvbnN0IEFuaW1hdGlvbnNNYXAmIGFuaW1hdGlvbnNU
b0FkZCwgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBhbmltYXRpb25zVG9SZW1vdmUpCit7CisgICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworCisgICAgZm9yIChjb25zdCBhdXRvJiB2YWx1
ZSA6IGFuaW1hdGlvbnNUb1JlbW92ZSkKKyAgICAgICAgW2xheWVyIHJlbW92ZUFuaW1hdGlvbkZv
cktleTp2YWx1ZV07CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGtleVZhbHVlUGFpciA6IGFuaW1h
dGlvbnNUb0FkZCkKKyAgICAgICAgYWRkQW5pbWF0aW9uVG9MYXllcihsYXllciwgbGF5ZXJUcmVl
SG9zdCwga2V5VmFsdWVQYWlyLmtleSwga2V5VmFsdWVQYWlyLnZhbHVlKTsKKworICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5
ZXJSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0
Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCmluZGV4IDc2NTk2NjU3NWU1Yjk3Y2E5NzM2ZGY4MGZiZGEw
Nzk1NzFmY2JkM2QuLjRkNGY1NjgzMDExYTQzMDZjNmFlMjkyNDYzOTc0MDk3ZjUyMWI4YTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1D
QUxheWVyUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKQEAgLTQyLDcgKzQyLDggQEAKICNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci11c2luZyBuYW1l
c3BhY2UgV2ViS2l0OworCituYW1lc3BhY2UgV2ViS2l0IHsKIAogUGFzc1JlZlB0cjxQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGU+IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6Y3JlYXRlKExheWVyVHlwZSBs
YXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIsIFJlbW90ZUxheWVyVHJlZUNv
bnRleHQqIGNvbnRleHQpCiB7CkBAIC0xMjQsNyArMTI1LDcgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGU6OnJlY3Vyc2l2ZUJ1aWxkVHJhbnNhY3Rpb24oUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb24KICAgICAgICAgfQogCiAgICAgICAgIGlmIChtX2xheWVyVHlwZSA9PSBMYXllclR5cGVD
dXN0b20pIHsKLSAgICAgICAgICAgIFJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6YXBw
bHlQcm9wZXJ0aWVzKHBsYXRmb3JtTGF5ZXIoKSwgbV9wcm9wZXJ0aWVzLCBSZW1vdGVMYXllclRy
ZWVQcm9wZXJ0eUFwcGxpZXI6OlJlbGF0ZWRMYXllck1hcCgpKTsKKyAgICAgICAgICAgIFJlbW90
ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6YXBwbHlQcm9wZXJ0aWVzKHBsYXRmb3JtTGF5ZXIo
KSwgbnVsbHB0ciwgbV9wcm9wZXJ0aWVzLCBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXI6
OlJlbGF0ZWRMYXllck1hcCgpKTsKICAgICAgICAgICAgIG1fcHJvcGVydGllcy5jaGFuZ2VkUHJv
cGVydGllcyA9IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpOb0NoYW5nZTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTQ1LDYgKzE0Niw4IEBAIHZvaWQgUGxhdGZvcm1D
QUxheWVyUmVtb3RlOjpyZWN1cnNpdmVCdWlsZFRyYW5zYWN0aW9uKFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uCiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphbmltYXRpb25TdGFydGVk
KENGVGltZUludGVydmFsIGJlZ2luVGltZSkKIHsKKyAgICBpZiAobV9vd25lcikKKyAgICAgICAg
bV9vd25lci0+cGxhdGZvcm1DQUxheWVyQW5pbWF0aW9uU3RhcnRlZChiZWdpblRpbWUpOwogfQog
CiB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6ZW5zdXJlQmFja2luZ1N0b3JlKCkKQEAgLTI2
NywxOCArMjcwLDIyIEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphZG9wdFN1YmxheWVy
cyhQbGF0Zm9ybUNBTGF5ZXIqIHNvdXJjZSkKIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6
OmFkZEFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSwgUGxhdGZvcm1DQUFuaW1hdGlv
biogYW5pbWF0aW9uKQogewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIG1fcHJvcGVy
dGllcy5hZGRlZEFuaW1hdGlvbnMuc2V0KGtleSwgdG9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3Rl
KGFuaW1hdGlvbiktPnByb3BlcnRpZXMoKSk7CisgICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0
aWVzQ2hhbmdlZChSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6QW5pbWF0aW9uc0NoYW5nZWQp
OworICAgIAorICAgIG1fY29udGV4dC0+d2lsbFN0YXJ0QW5pbWF0aW9uT25MYXllcih0aGlzKTsK
IH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlbW92ZUFuaW1hdGlvbkZvcktleShj
b25zdCBTdHJpbmcmIGtleSkKIHsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAvLyBG
SVhNRTogcmVtb3ZlIGZyb20gbV9wcm9wZXJ0aWVzLmFkZGVkQW5pbWF0aW9ucyA/CisgICAgbV9w
cm9wZXJ0aWVzLmtleVBhdGhzT2ZBbmltYXRpb25zVG9SZW1vdmUuYWRkKGtleSk7CisgICAgbV9w
cm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hhbmdlZChSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bjo6QW5pbWF0aW9uc0NoYW5nZWQpOwogfQogCiBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRp
b24+IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6YW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYg
a2V5KQogewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotCisgICAgLy8gRklYTUU6IGltcGxl
bWVudC4KICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIApAQCAtNTg5LDMgKzU5Niw1IEBAIHVpbnQz
Ml90IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6aG9zdGluZ0NvbnRleHRJRCgpCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIDA7CiB9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0
Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5tbQppbmRleCA0MzQyOWVkZWE3
MjBiOWM2NDNkN2FmNzYwYjk5Njc2ZjJiYjQ5YzVkLi5hMjAyZDY1ZGRkNmFlNTg1MmY0MjRlZDY4
YTI0NzMyNGUxNDBlMjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5t
bQpAQCAtMzcsNyArMzcsOCBAQAogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK25hbWVzcGFjZSBX
ZWJLaXQgewogCiBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBwbGF0Zm9ybUNBTGF5ZXJQb2ludGVy
ID0gQCJXS1BsYXRmb3JtQ0FMYXllciI7CiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206OlBs
YXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbShQbGF0Zm9ybUxheWVyKiBjdXN0b21MYXllciwgUGxh
dGZvcm1DQUxheWVyQ2xpZW50KiBvd25lciwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCogY29udGV4
dCkKQEAgLTgzLDMgKzg0LDUgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206OnNl
dE5lZWRzRGlzcGxheShjb25zdCBGbG9hdFJlY3QqIHJlY3QpCiAgICAgfSBlbHNlCiAgICAgICAg
IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0TmVlZHNEaXNwbGF5KHJlY3QpOwogfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlVGls
ZWRCYWNraW5nLmNwcAppbmRleCBmZmEzYzViNTEwYjQxODcyYjNkNWMzMWI0NzFlZjQwY2Y0MzMx
MGMxLi45ZjQwYzVjNGZkY2NmNGViMzZhYTdjYmM4NmIzMzhhNGQ3NThlYTMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJl
bW90ZVRpbGVkQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuY3BwCkBAIC0zMyw3ICsz
Myw4IEBACiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworbmFtZXNwYWNlIFdlYktpdCB7CiAKIFBs
YXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6UGxhdGZvcm1DQUxheWVyUmVtb3RlVGls
ZWRCYWNraW5nKExheWVyVHlwZSBsYXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3du
ZXIsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQqIGNvbnRleHQpCiAgICAgOiBQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGUobGF5ZXJUeXBlLCBvd25lciwgY29udGV4dCkKQEAgLTEwMiwzICsxMDMsNSBAQCB2
b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6c2V0Qm9yZGVyQ29sb3IoY29u
c3QgV2ViQ29yZTo6Q29sb3ImIGNvbAogewogICAgIG1fdGlsZUNvbnRyb2xsZXItPnNldFRpbGVE
ZWJ1Z0JvcmRlckNvbG9yKGNvbG9yKTsKIH0KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVy
VHJlZUNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVt
b3RlTGF5ZXJUcmVlQ29udGV4dC5oCmluZGV4IGFhMDEwZTUwMmZlMTY2ZGFhYmVkYmVlNzBjMjQ2
ZjFjY2ZmNTM3NGIuLjlhYzQ1ZmY5N2QzNTJkYzVmM2VlYTgyYjRiMGU0ZTVhNDUzOGYwMWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5
ZXJUcmVlQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCkBAIC01NSw2ICs1NSwxMSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBmbHVzaE91dE9mVHJlZUxheWVycygpOwogICAgIHZvaWQgYnVpbGRUcmFuc2FjdGlv
bihSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYsIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllciYg
cm9vdExheWVyKTsKIAorICAgIC8vIEZyb20gdGhlIFVJIHByb2Nlc3MKKyAgICB2b2lkIGFuaW1h
dGlvbkRpZFN0YXJ0KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCwgZG91
YmxlIHN0YXJ0VGltZSk7CisKKyAgICB2b2lkIHdpbGxTdGFydEFuaW1hdGlvbk9uTGF5ZXIoUGxh
dGZvcm1DQUxheWVyUmVtb3RlKik7CisKIHByaXZhdGU6CiAgICAgLy8gV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckZhY3RvcnkKICAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpHcmFw
aGljc0xheWVyPiBjcmVhdGVHcmFwaGljc0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGll
bnQqKSBvdmVycmlkZTsKQEAgLTY2LDYgKzcxLDggQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJDcmVhdGlvblByb3BlcnRpZXM+IG1fY3Jl
YXRlZExheWVyczsKICAgICBWZWN0b3I8V2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1M
YXllcklEPiBtX2Rlc3Ryb3llZExheWVyczsKKyAgICAKKyAgICBIYXNoTWFwPFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCwgUGxhdGZvcm1DQUxheWVyUmVtb3RlKj4gbV9s
YXllcnNBd2FpdGluZ0FuaW1hdGlvblN0YXJ0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90
ZUxheWVyVHJlZUNvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KaW5kZXggZDg4MDYzNWUyZjM3MjcyNzJkYjU5
YWRmZWEzODJlNmE2OWE5MGRmMi4uYjM4MmViYzJiNGUxMTJjNmY1MTU4MGJjNGNkMDBiMGM3MDAz
ODA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9S
ZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQpAQCAtNjUsNiArNjUsOCBAQCB2
b2lkIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmxheWVyV2lsbEJlRGVzdHJveWVkKFBsYXRmb3Jt
Q0FMYXllclJlbW90ZSogbGF5ZXIpCiB7CiAgICAgQVNTRVJUKCFtX2Rlc3Ryb3llZExheWVycy5j
b250YWlucyhsYXllci0+bGF5ZXJJRCgpKSk7CiAgICAgbV9kZXN0cm95ZWRMYXllcnMuYXBwZW5k
KGxheWVyLT5sYXllcklEKCkpOworICAgIAorICAgIG1fbGF5ZXJzQXdhaXRpbmdBbmltYXRpb25T
dGFydC5yZW1vdmUobGF5ZXItPmxheWVySUQoKSk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVl
Q29udGV4dDo6b3V0T2ZUcmVlTGF5ZXJXYXNBZGRlZChHcmFwaGljc0xheWVyKiBsYXllcikKQEAg
LTEwMiw0ICsxMDQsMTYgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVDb250ZXh0OjpidWlsZFRyYW5z
YWN0aW9uKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiB0cmFuc2EKICAgICB0cmFuc2FjdGlv
bi5zZXREZXN0cm95ZWRMYXllcklEcyhzdGQ6Om1vdmUobV9kZXN0cm95ZWRMYXllcnMpKTsKIH0K
IAordm9pZCBSZW1vdGVMYXllclRyZWVDb250ZXh0Ojp3aWxsU3RhcnRBbmltYXRpb25PbkxheWVy
KFBsYXRmb3JtQ0FMYXllclJlbW90ZSogbGF5ZXIpCit7CisgICAgbV9sYXllcnNBd2FpdGluZ0Fu
aW1hdGlvblN0YXJ0LmFkZChsYXllci0+bGF5ZXJJRCgpLCBsYXllcik7Cit9CisKK3ZvaWQgUmVt
b3RlTGF5ZXJUcmVlQ29udGV4dDo6YW5pbWF0aW9uRGlkU3RhcnQoV2ViQ29yZTo6R3JhcGhpY3NM
YXllcjo6UGxhdGZvcm1MYXllcklEIGxheWVySUQsIGRvdWJsZSBzdGFydFRpbWUpCit7CisgICAg
YXV0byBpdCA9IG1fbGF5ZXJzQXdhaXRpbmdBbmltYXRpb25TdGFydC5maW5kKGxheWVySUQpOwor
ICAgIGlmIChpdCAhPSBtX2xheWVyc0F3YWl0aW5nQW5pbWF0aW9uU3RhcnQuZW5kKCkpCisgICAg
ICAgIGl0LT52YWx1ZS0+YW5pbWF0aW9uU3RhcnRlZChzdGFydFRpbWUpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAppbmRleCA0
ZTcyMmMwZTY3NjYyMmE5M2ZhMzY5NTA1NDM2NzljYzUwODRjNDc1Li4yMDY2ODNiNTc3ZmMyMjM3
YzA1ZDZmYmYyY2JjYTY0YjlkNmUwNzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYS5oCkBAIC03NSw2ICs3NSw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldEV4
cG9zZWRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGV4cG9zZWRSZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9zY3JvbGxlZEV4cG9zZWRSZWN0OyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgYWNjZWxlcmF0
ZWRBbmltYXRpb25EaWRTdGFydCh1aW50NjRfdCBsYXllcklELCBkb3VibGUgc3RhcnRUaW1lKSBv
dmVycmlkZTsKKwogI2lmIFBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFsIHZvaWQgc2V0RXhwb3Nl
ZENvbnRlbnRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQppbmRleCAxMTY4YWVkYzhhYjIx
MDA3NzZhOWEyNDllMjdiNTZjY2Q4NzhkYTY0Li4yNTFiNWY3NjE2YzVkYmY4Njk2MTdmNzI0NDY4
ZjM3NDU1MGI2ZDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KQEAg
LTI0MCw2ICsyNDAsMTEgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zm9yY2VS
ZXBhaW50KCkKICAgICBmbHVzaExheWVycygpOwogfQogCit2b2lkIFJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhOjphY2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0YXJ0KHVpbnQ2NF90IGxheWVySUQs
IGRvdWJsZSBzdGFydFRpbWUpCit7CisgICAgbV9yZW1vdGVMYXllclRyZWVDb250ZXh0LT5hbmlt
YXRpb25EaWRTdGFydChsYXllcklELCBzdGFydFRpbWUpOworfQorCiB2b2lkIFJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhOjpzZXRFeHBvc2VkUmVjdChjb25zdCBGbG9hdFJlY3QmIGV4cG9zZWRS
ZWN0KQogewogICAgIG1fZXhwb3NlZFJlY3QgPSBleHBvc2VkUmVjdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCmluZGV4IDNiYTZjZmRiYjM2YmM0MTE3ZTM2ODNl
ODk1YmMyMjcwNTRhYjhjZTguLjYwMGVlZTMwOWQ3NTJhODAwNzU0ZTA1ZjQwZTczYTczODNjYWU3
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQpAQCAtNDQs
NiArNDQsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0xheWVyQ0EuaD4KICNpbXBvcnQg
PFdlYkNvcmUvTWFpbkZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KKyNpbXBvcnQg
PFdlYkNvcmUvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5k
ZXJMYXllckJhY2tpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KQEAgLTc2MCw3ICs3NjEsNyBAQCB2
b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpjb21taXRUcmFuc2llbnRab29tKGRv
dWJsZSBzY2FsZSwgRmxvYXRQb2ludAogICAgIHRyYW5zZm9ybS5zY2FsZShzY2FsZSk7CiAKICAg
ICBSZXRhaW5QdHI8Q0FCYXNpY0FuaW1hdGlvbj4gcmVuZGVyVmlld0FuaW1hdGlvbkNBID0gdHJh
bnNpZW50Wm9vbVNuYXBBbmltYXRpb25Gb3JLZXlQYXRoKCJ0cmFuc2Zvcm0iKTsKLSAgICBSZWZQ
dHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gcmVuZGVyVmlld0FuaW1hdGlvbiA9IFBsYXRmb3JtQ0FB
bmltYXRpb246OmNyZWF0ZShyZW5kZXJWaWV3QW5pbWF0aW9uQ0EuZ2V0KCkpOworICAgIFJlZlB0
cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiByZW5kZXJWaWV3QW5pbWF0aW9uID0gUGxhdGZvcm1DQUFu
aW1hdGlvbk1hYzo6Y3JlYXRlKHJlbmRlclZpZXdBbmltYXRpb25DQS5nZXQoKSk7CiAgICAgcmVu
ZGVyVmlld0FuaW1hdGlvbi0+c2V0VG9WYWx1ZSh0cmFuc2Zvcm0pOwogCiAgICAgUmV0YWluUHRy
PENBTGF5ZXI+IHNoYWRvd0xheWVyOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>