<?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>205645</bug_id>
          
          <creation_ts>2019-12-30 06:41:15 -0800</creation_ts>
          <short_desc>Apply rotation at source level if WebRTC sink ask so</short_desc>
          <delta_ts>2020-03-16 09:41:21 -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>WebRTC</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1601860</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-30 06:41:15 -0800</bug_when>
    <thetext>Apply rotation at source level if WebRTC sink ask so.
This allows to do rotation in UIProcess/GPUProcess if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601866</commentid>
    <comment_count>1</comment_count>
      <attachid>386530</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-30 06:48:55 -0800</bug_when>
    <thetext>Created attachment 386530
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601882</commentid>
    <comment_count>2</comment_count>
      <attachid>386538</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-30 09:08:45 -0800</bug_when>
    <thetext>Created attachment 386538
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601890</commentid>
    <comment_count>3</comment_count>
      <attachid>386538</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-12-30 09:27:06 -0800</bug_when>
    <thetext>Comment on attachment 386538
Patch

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

&gt; Source/WebCore/platform/graphics/cv/ImageRotationSessionVT.mm:123
&gt; +    IntSize size { (int)CVPixelBufferGetWidth(pixelBuffer) , (int)CVPixelBufferGetHeight(pixelBuffer) };

s/(pixelBuffer) , (int)/(pixelBuffer), (int)/

&gt; Source/WebCore/platform/mediastream/RealtimeOutgoingVideoSource.cpp:94
&gt; +    if (!shouldApplyRotation || shouldApplyRotation == m_areSinksAskingToApplyRotation)
&gt; +        return;
&gt; +
&gt; +    m_areSinksAskingToApplyRotation = true;
&gt; +    if (!m_videoSource-&gt;source().setShouldApplyRotation(true))
&gt; +        m_shouldApplyRotation = true;

Don&apos;t you want to clear m_areSinksAskingToApplyRotation and unapply rotation to the source if passed shouldApplyRotation==false?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601891</commentid>
    <comment_count>4</comment_count>
      <attachid>386540</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-30 09:36:05 -0800</bug_when>
    <thetext>Created attachment 386540
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601892</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-30 09:37:26 -0800</bug_when>
    <thetext>&gt; &gt; +    m_areSinksAskingToApplyRotation = true;
&gt; &gt; +    if (!m_videoSource-&gt;source().setShouldApplyRotation(true))
&gt; &gt; +        m_shouldApplyRotation = true;
&gt; 
&gt; Don&apos;t you want to clear m_areSinksAskingToApplyRotation and unapply rotation
&gt; to the source if passed shouldApplyRotation==false?

Not really, for instance if the same track is given to two peer connections one with CVO enabled and the other with CVO disabled.
It is simpler to enable rotation at source level and never disable it.
In practice, this should happen rarely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601894</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-12-30 09:48:49 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #5)
&gt; &gt; &gt; +    m_areSinksAskingToApplyRotation = true;
&gt; &gt; &gt; +    if (!m_videoSource-&gt;source().setShouldApplyRotation(true))
&gt; &gt; &gt; +        m_shouldApplyRotation = true;
&gt; &gt; 
&gt; &gt; Don&apos;t you want to clear m_areSinksAskingToApplyRotation and unapply rotation
&gt; &gt; to the source if passed shouldApplyRotation==false?
&gt; 
&gt; Not really, for instance if the same track is given to two peer connections
&gt; one with CVO enabled and the other with CVO disabled.
&gt; It is simpler to enable rotation at source level and never disable it.
&gt; In practice, this should happen rarely.

Then why have the &apos;shouldApplyRotation&apos; parameter at all?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601959</commentid>
    <comment_count>7</comment_count>
      <attachid>386551</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-31 01:53:36 -0800</bug_when>
    <thetext>Created attachment 386551
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601964</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-31 02:16:55 -0800</bug_when>
    <thetext>(In reply to Eric Carlson from comment #6)
&gt; (In reply to youenn fablet from comment #5)
&gt; &gt; &gt; &gt; +    m_areSinksAskingToApplyRotation = true;
&gt; &gt; &gt; &gt; +    if (!m_videoSource-&gt;source().setShouldApplyRotation(true))
&gt; &gt; &gt; &gt; +        m_shouldApplyRotation = true;
&gt; &gt; &gt; 
&gt; &gt; &gt; Don&apos;t you want to clear m_areSinksAskingToApplyRotation and unapply rotation
&gt; &gt; &gt; to the source if passed shouldApplyRotation==false?
&gt; &gt; 
&gt; &gt; Not really, for instance if the same track is given to two peer connections
&gt; &gt; one with CVO enabled and the other with CVO disabled.
&gt; &gt; It is simpler to enable rotation at source level and never disable it.
&gt; &gt; In practice, this should happen rarely.
&gt; 
&gt; Then why have the &apos;shouldApplyRotation&apos; parameter at all?

True, I removed it from RealtimeOutgoingVideoSource.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628218</commentid>
    <comment_count>9</comment_count>
      <attachid>393143</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-10 06:34:54 -0700</bug_when>
    <thetext>Created attachment 393143
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628679</commentid>
    <comment_count>10</comment_count>
      <attachid>393143</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-03-11 09:35:11 -0700</bug_when>
    <thetext>Comment on attachment 393143
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        By default, the method does nothing and RealtimeOyutgoingVideoSource will continue to do the rotation itself.

s/RealtimeOyutgoingVideoSource/RealtimeOutgoingVideoSource/

&gt; Source/WebCore/platform/graphics/cv/ImageRotationSessionVT.h:58
&gt; +    ImageRotationSessionVT(const RotationProperties&amp;, FloatSize, OSType pixelFormat, IsCGImageCompatible);

Nit: &quot;pixelFormat&quot; doesn&apos;t seem necessary.

&gt; Source/WebCore/platform/graphics/cv/ImageRotationSessionVT.h:72
&gt; +    void initialize(const RotationProperties&amp;, FloatSize, OSType pixelFormat, IsCGImageCompatible);

Ditto.

&gt; Source/WebCore/platform/graphics/cv/ImageRotationSessionVT.mm:101
&gt;      CVPixelBufferPoolRef rawPool = nullptr;
&gt;      if (auto err = CVPixelBufferPoolCreate(kCFAllocatorDefault, nullptr, (__bridge CFDictionaryRef)pixelAttributes, &amp;rawPool); err != noErr)

I now this isn&apos;t new, but it seems like a bad idea to use a NULL buffer pool if this fails.

&gt; Source/WebCore/platform/mediastream/RealtimeMediaSource.h:200
&gt; +    virtual bool setShouldApplyRotation(bool /* shouldApplyRotation */) { return false; }

Nit: the method name is quite descriptive so the commented out parameter name doesn&apos;t seem necessary.

&gt; Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:195
&gt; +    bool m_shouldApplyRotation { false };

It doesn&apos;t look like this is used.

&gt; Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.cpp:226
&gt; +    bool setShouldApplyRotation(bool /* shouldApplyRotation */) final;

Same comment as above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629522</commentid>
    <comment_count>11</comment_count>
      <attachid>393464</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-13 00:56:07 -0700</bug_when>
    <thetext>Created attachment 393464
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629551</commentid>
    <comment_count>12</comment_count>
      <attachid>393464</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-13 03:13:18 -0700</bug_when>
    <thetext>Comment on attachment 393464
Patch

Clearing flags on attachment: 393464

Committed r258391: &lt;https://trac.webkit.org/changeset/258391&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629552</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-13 03:13:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629553</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-13 03:14:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/60411815&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629799</commentid>
    <comment_count>15</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-03-13 13:22:59 -0700</bug_when>
    <thetext>Reverted in https://trac.webkit.org/changeset/258424/webkit because it broke internal builds. Build logs in radar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630284</commentid>
    <comment_count>16</comment_count>
      <attachid>393644</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-16 03:51:54 -0700</bug_when>
    <thetext>Created attachment 393644
Potential build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630302</commentid>
    <comment_count>17</comment_count>
      <attachid>393649</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-16 05:34:45 -0700</bug_when>
    <thetext>Created attachment 393649
Potential build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630350</commentid>
    <comment_count>18</comment_count>
      <attachid>393649</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-16 09:41:19 -0700</bug_when>
    <thetext>Comment on attachment 393649
Potential build fix

Clearing flags on attachment: 393649

Committed r258504: &lt;https://trac.webkit.org/changeset/258504&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630351</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-16 09:41:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386530</attachid>
            <date>2019-12-30 06:48:55 -0800</date>
            <delta_ts>2019-12-30 09:08:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205645-20191230154854.patch</filename>
            <type>text/plain</type>
            <size>24062</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzVmODFjMWY1ODYzMjI5
ZTY3ZTIzYjhjZWIyNDFiYmEyNzBkYWMzMy4uYmEwYzUzYTg2NjE0NjI3MWQzZjRhMGY4MGEyODE3
ZTRjZTllMjc4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE5LTEyLTMwICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBcHBseSByb3RhdGlvbiBh
dCBzb3VyY2UgbGV2ZWwgaWYgV2ViUlRDIHNpbmsgYXNrIHNvCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2NDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB2aXJ0dWFsIG1ldGhvZCB0byBSZWFs
dGltZU1lZGlhU291cmNlIHRvIHBhc3MgdGhlIGluZm9ybWF0aW9uIHRoYXQgdGhlIHNpbmsgcHJl
ZmVycyB0aGUgZnJhbWVzIHRvIGJlIHJvdGF0ZWQgYmVmb3JlIHNlbmRpbmcgdGhlbS4KKyAgICAg
ICAgQnkgZGVmYXVsdCwgdGhlIG1ldGhvZCBkb2VzIG5vdGhpbmcgYW5kIFJlYWx0aW1lT3l1dGdv
aW5nVmlkZW9Tb3VyY2Ugd2lsbCBjb250aW51ZSB0byBkbyB0aGUgcm90YXRpb24gaXRzZWxmLgor
ICAgICAgICBVcGRhdGUgSW1hZ2VSb3RhdGlvblNlc3Npb25WVCB0byBiZSBtb3JlIGVhc2lseSB1
c2FibGUgYnkgdXNlcnMgaGF2aW5nIE1lZGlhU2FtcGxlIGluc3RlYWQgb2YgQ1ZQaXhlbEJ1ZmZl
ci4KKworICAgICAgICBUZXN0OiB3ZWJydGMvdmlkZW8tcm90YXRpb24tbm8tY3ZvLmh0bWwKKwor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9SZW1vdGVWaWRlb1NhbXBsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0lt
YWdlUm90YXRpb25TZXNzaW9uVlQuaDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPT0pOgor
ICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3IhPSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
Um90YXRpb25TZXNzaW9uVlQ6OkltYWdlUm90YXRpb25TZXNzaW9uVlQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpyb3RhdGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzZXRTb3VyY2UpOgorICAgICAgICAo
V2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzZXRBcHBseVJvdGF0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6QWRkT3JVcGRh
dGVTaW5rKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2UuaDoKKwogMjAxOS0xMi0zMCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgU2VydmljZVdvcmtlckpvYkRhdGEgc2hvdWxkIGhhdmUgYSBtb3Zl
IGNvbnN0cnVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhjZmMyZjU4ZjcyYTBjOTRkNjgwNzQ4YWYxODZhNTE3
YWE3N2VlNmIuLmI5YzA1YjcwNGIxNDVlOWYxZWJjMDMyMjdkZWQyNjJmZmM5ZjgxZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMTItMzAgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgorCisgICAgICAgIEFwcGx5IHJvdGF0aW9uIGF0IHNvdXJjZSBsZXZlbCBpZiBX
ZWJSVEMgc2luayBhc2sgc28KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNTY0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEltcGxlbWVudCBSZWFsdGltZU1lZGlhU291cmNlIHNldFNob3VsZEFwcGx5Um90
YXRpb24gYnkgc2VuZGluZyBJUEMgdG8gY2FwdHVyZSBwcm9jZXNzLgorICAgICAgICBJbiBjYXB0
dXJlIHByb2Nlc3MsIGlmIHJvdGF0aW9uIHNob3VsZCBiZSBhcHBsaWVkLCB1c2UgYW4gSW1hZ2VS
b3RhdGlvblNlc3Npb25WVCBzZXNzaW9uIHRvIGFwcGx5IGl0IGJlZm9yZSBzZW5kaW5nIHRoZSB2
aWRlbyBmcmFtZS4KKyAgICAgICAgVGhpcyBhbGxvd3MgV2ViUHJvY2VzcyB0byBubyBsb25nZXIg
bmVlZCBhbiBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUIGZvciBXZWJSVEMuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzZXRT
aG91bGRBcHBseVJvdGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6U291cmNlUHJveHk6OnJvdGF0ZVBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c2V0U2hvdWxkQXBwbHlSb3RhdGlv
bik6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OlNvdXJjZTo6c2V0U2hvdWxkQXBwbHlSb3RhdGlvbik6CisKIDIwMTktMTItMjkgIHlvdWVu
biBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBSVEMgVlRC
IGRlY29kZXJzIGluIEdQVVByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmMDRiZjMxOWVhNDlhODNhZDQxN2ZjMmUyOWEx
YTVjNDhhODY0NjcwLi42YmE4MDlkZGVkZDBkY2NhM2RjNGJhNzVkYTVhN2IyMTdmYzRmZGM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC00MDQzLDcgKzQwNDMsNyBAQAogCQlDRDFFNzM0NzE2N0JDNzhFMDA5QTg4NUQgLyogVGV4
dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0QxRTczNDYxNjdCQzc4RTAwOUE4ODVEIC8qIFRleHRUcmFja1JlcHJl
c2VudGF0aW9uLmNwcCAqLzsgfTsKIAkJQ0QyMjVDMEIxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNv
cmVOU1VSTFNlc3Npb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDIyNUMwOTFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5t
bSAqLzsgfTsKIAkJQ0QyMjVDMEMxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Np
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjI1
QzBBMUM0NkZCRjQwMDE0MDc2MSAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQ0QyN0FFNTAyMkE5ODY4NzAw
OTQ3RkY5IC8qIEltYWdlUm90YXRpb25TZXNzaW9uVlQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjdBRTRFMjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFn
ZVJvdGF0aW9uU2Vzc2lvblZULmggKi87IH07CisJCUNEMjdBRTUwMjJBOTg2ODcwMDk0N0ZGOSAv
KiBJbWFnZVJvdGF0aW9uU2Vzc2lvblZULmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDI3QUU0RTIyQTk4Njg3MDA5NDdGRjkgLyogSW1hZ2VSb3RhdGlv
blNlc3Npb25WVC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUNEMjdBRTUxMjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFnZVJvdGF0aW9uU2Vzc2lvblZU
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyN0FF
NEYyMkE5ODY4NzAwOTQ3RkY5IC8qIEltYWdlUm90YXRpb25TZXNzaW9uVlQubW0gKi87IH07CiAJ
CUNEMkY0QTI0MThEODlGNzAwMDYzNzQ2RCAvKiBBdWRpb0hhcmR3YXJlTGlzdGVuZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMkY0QTIyMThEODlG
NzAwMDYzNzQ2RCAvKiBBdWRpb0hhcmR3YXJlTGlzdGVuZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDJGNEEyODE4RDhBMzQ5MDA2Mzc0NkQg
LyogQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDJGNEEyNjE4RDhBMzQ5MDA2Mzc0NkQgLyogQXVkaW9IYXJk
d2FyZUxpc3RlbmVyTWFjLmggKi87IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKaW5kZXggOWZlODI0YjE4NzM4ZWEw
MDc4ODRmNDI2NWExZDU5YTVlNGE1MjE4MS4uOTI2NDYyMjAwNDgwMDY1YWNhYjkxYjRiY2E5MzNm
OTBiNWZlOTRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
UmVtb3RlVmlkZW9TYW1wbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiB1c2luZyBuYW1lc3BhY2UgUEFMOwogCiAjaWYgSEFWRShJT1NVUkZBQ0UpCi1zdGQ6
OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUo
TWVkaWFTYW1wbGUmJiBzYW1wbGUpCitzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+
IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKIHsKICAgICBB
U1NFUlQoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9PSBQbGF0Zm9ybVNhbXBsZTo6Q01T
YW1wbGVCdWZmZXJUeXBlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKaW5kZXggYmQyNTVmNzk0MDA0MjcxZTNhYjRlYjI2
MDI3ZTY0YTc0YTkyODQ4OC4uMjc1ZDQ1N2FlMGU4OGM2MTI5Mzc1NmU1MjA0ZmVkZjQyYzRiMjBi
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlk
ZW9TYW1wbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVW
aWRlb1NhbXBsZS5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICB+UmVtb3RlVmlkZW9T
YW1wbGUoKSA9IGRlZmF1bHQ7CiAKICNpZiBIQVZFKElPU1VSRkFDRSkKLSAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBjcmVhdGUoTWVk
aWFTYW1wbGUmJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVWaWRlb1NhbXBsZT4gY3JlYXRlKE1lZGlhU2FtcGxlJik7CiAgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gY3JlYXRlKENWUGl4
ZWxCdWZmZXJSZWYsIE1lZGlhVGltZSYmIHByZXNlbnRhdGlvblRpbWUpOwogICAgIFdFQkNPUkVf
RVhQT1JUIElPU3VyZmFjZVJlZiBzdXJmYWNlKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlUm90YXRpb25TZXNzaW9uVlQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlUm90YXRpb25TZXNzaW9u
VlQuaAppbmRleCA2MDAxYmI3MGExMDA0MTc0NDEwOTIxMzZmM2ZlNWI2MTc2MmNiMGNmLi43M2Y2
NjIwNTIwOGIyMmFmODFlNGRhMTQ1MzJiMzkwMzNjZDlkZjNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Np
b25WVC5oCkBAIC0zNiw2ICszNiw4IEBAIHR5cGVkZWYgc3RydWN0IF9fQ1ZQaXhlbEJ1ZmZlclBv
b2wqIENWUGl4ZWxCdWZmZXJQb29sUmVmOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IE1lZGlhU2FtcGxlOworCiBjbGFzcyBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUIGZpbmFsIHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAgLTUzLDcgKzU1LDggQEAgcHVi
bGljOgogICAgIH07CiAKICAgICBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUKEFmZmluZVRyYW5zZm9y
bSYmLCBGbG9hdFNpemUsIE9TVHlwZSBwaXhlbEZvcm1hdCwgSXNDR0ltYWdlQ29tcGF0aWJsZSk7
Ci0gICAgSW1hZ2VSb3RhdGlvblNlc3Npb25WVChSb3RhdGlvblByb3BlcnRpZXMmJiwgRmxvYXRT
aXplLCBPU1R5cGUgcGl4ZWxGb3JtYXQsIElzQ0dJbWFnZUNvbXBhdGlibGUpOworICAgIEltYWdl
Um90YXRpb25TZXNzaW9uVlQoY29uc3QgUm90YXRpb25Qcm9wZXJ0aWVzJiwgRmxvYXRTaXplLCBP
U1R5cGUgcGl4ZWxGb3JtYXQsIElzQ0dJbWFnZUNvbXBhdGlibGUpOworICAgIEltYWdlUm90YXRp
b25TZXNzaW9uVlQoKSA9IGRlZmF1bHQ7CiAKICAgICBjb25zdCBPcHRpb25hbDxBZmZpbmVUcmFu
c2Zvcm0+JiB0cmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX3RyYW5zZm9ybTsgfQogICAgIGNv
bnN0IFJvdGF0aW9uUHJvcGVydGllcyYgcm90YXRpb25Qcm9wZXJ0aWVzKCkgY29uc3QgeyByZXR1
cm4gbV9yb3RhdGlvblByb3BlcnRpZXM7IH0KQEAgLTYxLDggKzY0LDEzIEBAIHB1YmxpYzoKICAg
ICBjb25zdCBGbG9hdFNpemUmIHJvdGF0ZWRTaXplKCkgeyByZXR1cm4gbV9yb3RhdGVkU2l6ZTsg
fQogCiAgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHJvdGF0ZShDVlBpeGVsQnVmZmVy
UmVmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcm90
YXRlKE1lZGlhU2FtcGxlJiwgY29uc3QgUm90YXRpb25Qcm9wZXJ0aWVzJiwgSXNDR0ltYWdlQ29t
cGF0aWJsZSk7CisKKyAgICBib29sIGlzTWF0Y2hpbmcoTWVkaWFTYW1wbGUmLCBjb25zdCBSb3Rh
dGlvblByb3BlcnRpZXMmKTsKIAogcHJpdmF0ZToKKyAgICB2b2lkIGluaXRpYWxpemUoY29uc3Qg
Um90YXRpb25Qcm9wZXJ0aWVzJiwgRmxvYXRTaXplLCBPU1R5cGUgcGl4ZWxGb3JtYXQsIElzQ0dJ
bWFnZUNvbXBhdGlibGUpOworCiAgICAgT3B0aW9uYWw8QWZmaW5lVHJhbnNmb3JtPiBtX3RyYW5z
Zm9ybTsKICAgICBSb3RhdGlvblByb3BlcnRpZXMgbV9yb3RhdGlvblByb3BlcnRpZXM7CiAgICAg
RmxvYXRTaXplIG1fc2l6ZTsKQEAgLTcxLDYgKzc5LDE2IEBAIHByaXZhdGU6CiAgICAgUmV0YWlu
UHRyPENWUGl4ZWxCdWZmZXJQb29sUmVmPiBtX3JvdGF0aW9uUG9vbDsKIH07CiAKK2lubGluZSBi
b29sIG9wZXJhdG9yPT0oY29uc3QgSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6Um90YXRpb25Qcm9w
ZXJ0aWVzJiByb3RhdGlvbjEsIGNvbnN0IEltYWdlUm90YXRpb25TZXNzaW9uVlQ6OlJvdGF0aW9u
UHJvcGVydGllcyYgcm90YXRpb24yKQoreworICAgIHJldHVybiByb3RhdGlvbjEuZmxpcFggPT0g
cm90YXRpb24yLmZsaXBYICYmIHJvdGF0aW9uMS5mbGlwWSA9PSByb3RhdGlvbjIuZmxpcFkgJiYg
cm90YXRpb24xLmFuZ2xlID09IHJvdGF0aW9uMi5hbmdsZTsKK30KKworaW5saW5lIGJvb2wgb3Bl
cmF0b3IhPShjb25zdCBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpSb3RhdGlvblByb3BlcnRpZXMm
IHJvdGF0aW9uMSwgY29uc3QgSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6Um90YXRpb25Qcm9wZXJ0
aWVzJiByb3RhdGlvbjIpCit7CisgICAgcmV0dXJuICEocm90YXRpb24xID09IHJvdGF0aW9uMik7
Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5tbQppbmRleCA4OGE1ZGI1
OTU2ZWU4Yjk1ZjEwOGU0NjU2ZmM1N2MxYzdlMGY5YmQ3Li5kYjI3ZTE5ODVhMDg4MTc5MjQyYWQy
NTcyODU3MmFkNDVjODM1MzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlUm90YXRpb25TZXNzaW9uVlQubW0KQEAgLTI3LDYg
KzI3LDcgQEAKICNpbmNsdWRlICJJbWFnZVJvdGF0aW9uU2Vzc2lvblZULmgiCiAKICNpbmNsdWRl
ICJBZmZpbmVUcmFuc2Zvcm0uaCIKKyNpbmNsdWRlICJNZWRpYVNhbXBsZS5oIgogCiAjaW5jbHVk
ZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKICNpbmNsdWRlICJWaWRlb1Rvb2xib3hTb2Z0TGluay5o
IgpAQCAtNjQsMTEgKzY1LDE2IEBAIEltYWdlUm90YXRpb25TZXNzaW9uVlQ6OkltYWdlUm90YXRp
b25TZXNzaW9uVlQoQWZmaW5lVHJhbnNmb3JtJiYgdHJhbnNmb3JtLCBGbG9hCiAgICAgbV90cmFu
c2Zvcm0gPSBXVEZNb3ZlKHRyYW5zZm9ybSk7CiB9CiAKK0ltYWdlUm90YXRpb25TZXNzaW9uVlQ6
OkltYWdlUm90YXRpb25TZXNzaW9uVlQoY29uc3QgUm90YXRpb25Qcm9wZXJ0aWVzJiByb3RhdGlv
biwgRmxvYXRTaXplIHNpemUsIE9TVHlwZSBwaXhlbEZvcm1hdCwgSXNDR0ltYWdlQ29tcGF0aWJs
ZSBjdkltYWdlQ29tcGF0aWJpbGl0eSkKK3sKKyAgICBpbml0aWFsaXplKHJvdGF0aW9uLCBzaXpl
LCBwaXhlbEZvcm1hdCwgY3ZJbWFnZUNvbXBhdGliaWxpdHkpOworfQogCi1JbWFnZVJvdGF0aW9u
U2Vzc2lvblZUOjpJbWFnZVJvdGF0aW9uU2Vzc2lvblZUKFJvdGF0aW9uUHJvcGVydGllcyYmIHJv
dGF0aW9uLCBGbG9hdFNpemUgc2l6ZSwgT1NUeXBlIHBpeGVsRm9ybWF0LCBJc0NHSW1hZ2VDb21w
YXRpYmxlIGN2SW1hZ2VDb21wYXRpYmlsaXR5KQotICAgIDogbV9yb3RhdGlvblByb3BlcnRpZXMo
V1RGTW92ZShyb3RhdGlvbikpCi0gICAgLCBtX3NpemUoc2l6ZSkKK3ZvaWQgSW1hZ2VSb3RhdGlv
blNlc3Npb25WVDo6aW5pdGlhbGl6ZShjb25zdCBSb3RhdGlvblByb3BlcnRpZXMmIHJvdGF0aW9u
LCBGbG9hdFNpemUgc2l6ZSwgT1NUeXBlIHBpeGVsRm9ybWF0LCBJc0NHSW1hZ2VDb21wYXRpYmxl
IGN2SW1hZ2VDb21wYXRpYmlsaXR5KQogeworICAgIG1fcm90YXRpb25Qcm9wZXJ0aWVzID0gcm90
YXRpb247CisgICAgbV9zaXplID0gc2l6ZTsKKwogICAgIGlmIChtX3JvdGF0aW9uUHJvcGVydGll
cy5hbmdsZSA9PSA5MCB8fCBtX3JvdGF0aW9uUHJvcGVydGllcy5hbmdsZSA9PSAyNzApCiAgICAg
ICAgIHNpemUgPSBzaXplLnRyYW5zcG9zZWRTaXplKCk7CiAKQEAgLTg5LDYgKzk1LDcgQEAgSW1h
Z2VSb3RhdGlvblNlc3Npb25WVDo6SW1hZ2VSb3RhdGlvblNlc3Npb25WVChSb3RhdGlvblByb3Bl
cnRpZXMmJiByb3RhdGlvbiwgRmwKICAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4
ZWxCdWZmZXJIZWlnaHRLZXk6IEAobV9yb3RhdGVkU2l6ZS5oZWlnaHQoKSksCiAgICAgICAgIChf
X2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5OiBAKHBp
eGVsRm9ybWF0KSwKICAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJD
R0ltYWdlQ29tcGF0aWJpbGl0eUtleTogKGN2SW1hZ2VDb21wYXRpYmlsaXR5ID09IElzQ0dJbWFn
ZUNvbXBhdGlibGU6OlllcyA/IEBZRVMgOiBATk8pLAorICAgICAgICAoX19icmlkZ2UgTlNTdHJp
bmcgKilrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZVByb3BlcnRpZXNLZXkgOiBAeyB9CiAgICAgfTsK
ICAgICBDVlBpeGVsQnVmZmVyUG9vbFJlZiByYXdQb29sID0gbnVsbHB0cjsKICAgICBpZiAoYXV0
byBlcnIgPSBDVlBpeGVsQnVmZmVyUG9vbENyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxs
cHRyLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKXBpeGVsQXR0cmlidXRlcywgJnJhd1Bvb2wp
OyBlcnIgIT0gbm9FcnIpCkBAIC0xMDYsNiArMTEzLDIwIEBAIFJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpyb3RhdGUoQ1ZQaXhlbEJ1ZmZlclJlZiBw
aXhlCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK1JldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVm
PiBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpyb3RhdGUoTWVkaWFTYW1wbGUmIHNhbXBsZSwgY29u
c3QgUm90YXRpb25Qcm9wZXJ0aWVzJiByb3RhdGlvbiwgSXNDR0ltYWdlQ29tcGF0aWJsZSBjdklt
YWdlQ29tcGF0aWJpbGl0eSkKK3sKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8
Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUucGxh
dGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKKyAgICBBU1NFUlQocGl4ZWxC
dWZmZXIpOworICAgIGlmICghcGl4ZWxCdWZmZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
CisgICAgSW50U2l6ZSBzaXplIHsgKGludClDVlBpeGVsQnVmZmVyR2V0V2lkdGgocGl4ZWxCdWZm
ZXIpICwgKGludClDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KHBpeGVsQnVmZmVyKSB9OworICAgIGlm
IChyb3RhdGlvbiAhPSBtX3JvdGF0aW9uUHJvcGVydGllcyB8fCBtX3NpemUgIT0gc2l6ZSkKKyAg
ICAgICAgaW5pdGlhbGl6ZShyb3RhdGlvbiwgc2l6ZSwgQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9y
bWF0VHlwZShwaXhlbEJ1ZmZlciksIGN2SW1hZ2VDb21wYXRpYmlsaXR5KTsKKworICAgIHJldHVy
biByb3RhdGUocGl4ZWxCdWZmZXIpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5o
CmluZGV4IDA0YjAyM2NmNmFjZjk5NTM5NzA0MTM3MGEwYTY1NmI2MjIxMjc3OWUuLmI4MDllNWM4
YjcwYTBkNjkxOGFlZjJkMzk5M2E3ZTljNjIxMDAwMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAg
LTE5Niw2ICsxOTYsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGF5U2FtcGxlcyhT
ZWNvbmRzKSB7IH07CiAgICAgdm9pZCBzZXRJbnRlcnJ1cHRlZEZvclRlc3RpbmcoYm9vbCk7CiAK
KyAgICB2aXJ0dWFsIGJvb2wgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sIC8qIHNob3VsZEFw
cGx5Um90YXRpb24gKi8pIHsgcmV0dXJuIGZhbHNlOyB9CisKIHByb3RlY3RlZDoKICAgICBSZWFs
dGltZU1lZGlhU291cmNlKFR5cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlEID0g
eyB9LCBTdHJpbmcmJiBoYXNoU2FsdCA9IHsgfSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2UuY3BwCmluZGV4IGI4NTljZDg4MGNhZjYyNmUyNmQxNWZlMDZiNzdhNTM5YjNlMDUx
MDYuLjA3NzUyN2E3NjYwMDhkMTE3ZDQzMmFkNTllNjBlNzI2ODJjYzE0ZWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRl
b1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcApAQCAtODAsNiArODAsMTggQEAgdm9pZCBSZWFs
dGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnNldFNvdXJjZShSZWY8TWVkaWFTdHJlYW1UcmFja1By
aXZhdGU+JiYgbmV3U28KIHsKICAgICBBU1NFUlQoIW1fdmlkZW9Tb3VyY2UtPmhhc09ic2VydmVy
KCp0aGlzKSk7CiAgICAgbV92aWRlb1NvdXJjZSA9IFdURk1vdmUobmV3U291cmNlKTsKKworICAg
IHNldEFwcGx5Um90YXRpb24obV9hcmVTaW5rc0Fza2luZ1RvQXBwbHlSb3RhdGlvbik7Cit9CisK
K3ZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzZXRBcHBseVJvdGF0aW9uKGJvb2wg
c2hvdWxkQXBwbHlSb3RhdGlvbikKK3sKKyAgICBpZiAoIXNob3VsZEFwcGx5Um90YXRpb24gfHwg
c2hvdWxkQXBwbHlSb3RhdGlvbiA9PSBtX2FyZVNpbmtzQXNraW5nVG9BcHBseVJvdGF0aW9uKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX2FyZVNpbmtzQXNraW5nVG9BcHBseVJvdGF0aW9uID0g
dHJ1ZTsKKyAgICBpZiAoIW1fdmlkZW9Tb3VyY2UtPnNvdXJjZSgpLnNldFNob3VsZEFwcGx5Um90
YXRpb24odHJ1ZSkpCisgICAgICAgIG1fc2hvdWxkQXBwbHlSb3RhdGlvbiA9IHRydWU7CiB9CiAK
IHZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzdG9wKCkKQEAgLTEzNCw4ICsxNDYs
NyBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6QWRkT3JVcGRhdGVTaW5rKHJ0
Yzo6VmlkZW9TaW5rSW50ZXJmYWNlPHdlYnJ0YwogewogICAgIEFTU0VSVCghc2lua1dhbnRzLmJs
YWNrX2ZyYW1lcyk7CiAKLSAgICBpZiAoc2lua1dhbnRzLnJvdGF0aW9uX2FwcGxpZWQpCi0gICAg
ICAgIG1fc2hvdWxkQXBwbHlSb3RhdGlvbiA9IHRydWU7CisgICAgc2V0QXBwbHlSb3RhdGlvbihz
aW5rV2FudHMucm90YXRpb25fYXBwbGllZCk7CiAKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2Nr
KG1fc2lua3NMb2NrKTsKICAgICBtX3NpbmtzLmFkZChzaW5rKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2lu
Z1ZpZGVvU291cmNlLmgKaW5kZXggZTJhNDhkMDgyNzdjZTMxMGY2N2IwMDA4YWUwMGVmODE4NjBk
OThlNi4uZWNiZTVkY2JmMzQ2ZjU1MDI0ZTUzZWNhZmZiNjdhNWMwNzQ4NjBlMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1Zp
ZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKQEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gcnRjOjpSZWZDb3VudFJlbGVhc2VTdGF0dXM6OmtPdGhlclJlZnNSZW1haW5l
ZDsKICAgICB9CiAKLSAgICB2b2lkIHNldEFwcGx5Um90YXRpb24oYm9vbCBzaG91bGRBcHBseVJv
dGF0aW9uKSB7IG1fc2hvdWxkQXBwbHlSb3RhdGlvbiA9IHNob3VsZEFwcGx5Um90YXRpb247IH0K
KyAgICB2b2lkIHNldEFwcGx5Um90YXRpb24oYm9vbCAvKiBzaG91bGRBcHBseVJvdGF0aW9uICov
KTsKIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZShSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYpOwpAQCAtMTM0LDYgKzEzNCw3IEBAIHBy
aXZhdGU6CiAKICAgICBtdXRhYmxlIFJlY3Vyc2l2ZUxvY2sgbV9zaW5rc0xvY2s7CiAgICAgSGFz
aFNldDxydGM6OlZpZGVvU2lua0ludGVyZmFjZTx3ZWJydGM6OlZpZGVvRnJhbWU+Kj4gbV9zaW5r
czsKKyAgICBib29sIG1fYXJlU2lua3NBc2tpbmdUb0FwcGx5Um90YXRpb24geyBmYWxzZSB9Owog
CiAgICAgYm9vbCBtX2VuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX211dGVkIHsgZmFsc2Ug
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggZjliMzVkNDUxMzM2MGZlOTY4OTA1
YTE2ZmVkMmM1ZDc1N2RjOGYxZC4uMDRiNDNkNzMzODMwMDI4MDlhNTdiOWRhMGRmZjhjMWM4MzIy
OGQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNp
bmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJv
eHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25z
dHJhaW50cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KQEAgLTg2LDYgKzg3LDgg
QEAgcHVibGljOgogICAgICAgICBtX3NvdXJjZS0+cmVxdWVzdFRvRW5kKCp0aGlzKTsKICAgICB9
CiAKKyAgICB2b2lkIHNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCBzaG91bGRBcHBseVJvdGF0
aW9uKSB7IG1fc2hvdWxkQXBwbHlSb3RhdGlvbiA9IHRydWU7IH0KKwogcHJpdmF0ZToKICAgICB2
b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbCB7CiAgICAgICAgIGlmIChtX3NvdXJjZS0+Y2FwdHVy
ZURpZEZhaWwoKSkgewpAQCAtMTI1LDcgKzEyOCwxMiBAQCBwcml2YXRlOgogICAgIHZvaWQgdmlk
ZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkgZmluYWwKICAgICB7CiAjaWYg
SEFWRShJT1NVUkZBQ0UpCi0gICAgICAgIGF1dG8gcmVtb3RlU2FtcGxlID0gUmVtb3RlVmlkZW9T
YW1wbGU6OmNyZWF0ZShXVEZNb3ZlKHNhbXBsZSkpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
UmVtb3RlVmlkZW9TYW1wbGU+IHJlbW90ZVNhbXBsZTsKKyAgICAgICAgaWYgKG1fc2hvdWxkQXBw
bHlSb3RhdGlvbiAmJiBzYW1wbGUudmlkZW9Sb3RhdGlvbigpICE9IE1lZGlhU2FtcGxlOjpWaWRl
b1JvdGF0aW9uOjpOb25lKSB7CisgICAgICAgICAgICBhdXRvIHBpeGVsQnVmZmVyID0gcm90YXRl
UGl4ZWxCdWZmZXIoc2FtcGxlKTsKKyAgICAgICAgICAgIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZp
ZGVvU2FtcGxlOjpjcmVhdGUocGl4ZWxCdWZmZXIuZ2V0KCksIHNhbXBsZS5wcmVzZW50YXRpb25U
aW1lKCkpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJlbW90ZVNhbXBsZSA9IFJlbW90
ZVZpZGVvU2FtcGxlOjpjcmVhdGUoc2FtcGxlKTsKICAgICAgICAgaWYgKHJlbW90ZVNhbXBsZSkK
ICAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OlJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKG1faWQsIFdURk1vdmUoKnJlbW90
ZVNhbXBsZSkpLCAwKTsKICNlbHNlCkBAIC0xMzMsNiArMTQxLDMwIEBAIHByaXZhdGU6CiAjZW5k
aWYKICAgICB9CiAKKyAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcm90YXRlUGl4ZWxC
dWZmZXIoTWVkaWFTYW1wbGUmIHNhbXBsZSkKKyAgICB7CisgICAgICAgIGlmICghbV9yb3RhdGlv
blNlc3Npb24pCisgICAgICAgICAgICBtX3JvdGF0aW9uU2Vzc2lvbiA9IG1ha2VVbmlxdWU8SW1h
Z2VSb3RhdGlvblNlc3Npb25WVD4oKTsKKworICAgICAgICBJbWFnZVJvdGF0aW9uU2Vzc2lvblZU
OjpSb3RhdGlvblByb3BlcnRpZXMgcm90YXRpb247CisgICAgICAgIHN3aXRjaCAoc2FtcGxlLnZp
ZGVvUm90YXRpb24oKSkgeworICAgICAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9u
OjpOb25lOgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBy
b3RhdGlvbi5hbmdsZSA9IDA7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNZWRp
YVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6VXBzaWRlRG93bjoKKyAgICAgICAgICAgIHJvdGF0aW9u
LmFuZ2xlID0gMTgwOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTWVkaWFTYW1w
bGU6OlZpZGVvUm90YXRpb246OlJpZ2h0OgorICAgICAgICAgICAgcm90YXRpb24uYW5nbGUgPSA5
MDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1Jv
dGF0aW9uOjpMZWZ0OgorICAgICAgICAgICAgcm90YXRpb24uYW5nbGUgPSAyNzA7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbV9yb3RhdGlvblNlc3Npb24t
PnJvdGF0ZShzYW1wbGUsIHJvdGF0aW9uLCBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpJc0NHSW1h
Z2VDb21wYXRpYmxlOjpObyk7CisgICAgfQorCiAgICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFy
ZWRNZW1vcnkqIHN0b3JhZ2UpIGZpbmFsIHsKICAgICAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUg
aGFuZGxlOwogICAgICAgICBpZiAoc3RvcmFnZSkKQEAgLTE1Myw2ICsxODUsOCBAQCBwcml2YXRl
OgogICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uIHsgfTsKICAgICBp
bnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAwIH07CiAgICAgYm9vbCBtX2lzRW5kZWQgeyBmYWxz
ZSB9OworICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZVJvdGF0aW9uU2Vzc2lvblZUPiBtX3JvdGF0
aW9uU2Vzc2lvbjsKKyAgICBib29sIG1fc2hvdWxkQXBwbHlSb3RhdGlvbiB7IGZhbHNlIH07CiB9
OwogCiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5KFVuaXF1ZVJlZjxDb25uZWN0aW9uUHJveHk+JiYgY29ubmVjdGlvblByb3h5KQpAQCAt
MjY3LDYgKzMwMSwxMiBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnJlcXVl
c3RUb0VuZCh1aW50NjRfdCBzb3VyY2VJRCkKICAgICAgICAgcHJveHktPnJlcXVlc3RUb0VuZCgp
OwogfQogCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnNldFNob3VsZEFwcGx5
Um90YXRpb24odWludDY0X3Qgc291cmNlSUQsIGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbikKK3sK
KyAgICBpZiAoYXV0byogcHJveHkgPSBtX3Byb3hpZXMuZ2V0KHNvdXJjZUlEKSkKKyAgICAgICAg
cHJveHktPnNldFNob3VsZEFwcGx5Um90YXRpb24oc2hvdWxkQXBwbHlSb3RhdGlvbik7Cit9CisK
IHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2xlYXIoKQogewogICAgIG1fcHJv
eGllcy5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCmluZGV4IDQyZThjOWM1OGQ3NTJi
YTg1ODgzNTMyMzY3ZTk3NGFkMmQwM2Y3OTQuLmUwMWJkMjMzOTcxMTJlZmI4YzJkNWU1ODk2NDJl
Njc3OWE3ZmUyZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKQEAgLTczLDYgKzczLDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHModWludDY0X3QsIGNvbnN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMmKTsKICAgICB2b2lkIGNsb25lKHVpbnQ2NF90IGNsb25lZElE
LCB1aW50NjRfdCBjbG9uZUlEKTsKICAgICB2b2lkIHJlcXVlc3RUb0VuZCh1aW50NjRfdCk7Cisg
ICAgdm9pZCBzZXRTaG91bGRBcHBseVJvdGF0aW9uKHVpbnQ2NF90IHNvdXJjZUlELCBib29sIHNo
b3VsZEFwcGx5Um90YXRpb24pOwogCiAgICAgY2xhc3MgU291cmNlUHJveHk7CiAgICAgZnJpZW5k
IGNsYXNzIFNvdXJjZVByb3h5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4KaW5kZXggMzJmNzI3YzNmODNhMWIyMzAxMmU0MjIwYmM5ZmYwNDNiNjY5ZjRiOC4uZDA4
YjE4MDA0MjkyODk3OGJhY2VkMTQ3ODcxOTkzMjA3YzkxNzBkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMyw2ICszMyw3IEBAIG1lc3NhZ2VzIC0+
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAgQXBwbHlD
b25zdHJhaW50cyh1aW50NjRfdCBpZCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMg
Y29uc3RyYWludHMpCiAgICAgQ2xvbmUodWludDY0X3QgY2xvbmVkSUQsIHVpbnQ2NF90IGNsb25l
SUQpCiAgICAgUmVxdWVzdFRvRW5kKHVpbnQ2NF90IHNvdXJjZUlEKQorICAgIFNldFNob3VsZEFw
cGx5Um90YXRpb24odWludDY0X3Qgc291cmNlSUQsIGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbikK
IH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRleCA5YjBlZWI0ZTMyNWJhOTVhYTFm
M2I0MGVlMGQ3NGRlZDQ3YzcyOWM4Li4xOTJhYWNmNWNjNWM2NDFiZWU2YmIyMTNhMTY1ZDU5MDU4
YjFlNGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTIyNyw2ICsyMjcsOCBAQCBwcml2YXRl
OgogICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UKICAgICB2b2lkIGJlZ2luQ29uZmlndXJhdGlv
bigpIGZpbmFsIHsgfQogICAgIHZvaWQgY29tbWl0Q29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQor
ICAgIGJvb2wgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sIC8qIHNob3VsZEFwcGx5Um90YXRp
b24gKi8pIGZpbmFsOworCiAKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyYsIEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYpIGZpbmFsOwog
CkBAIC0zOTUsNiArMzk3LDEyIEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJj
ZTo6c3RvcFByb2R1Y2luZ0RhdGEoKQogICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEobV9pZCksIDAp
OwogfQogCitib29sIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldFNob3VsZEFw
cGx5Um90YXRpb24oYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKQoreworICAgIGNvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U2V0U2hvdWxk
QXBwbHlSb3RhdGlvbihtX2lkLCBzaG91bGRBcHBseVJvdGF0aW9uKSwgMCk7CisgICAgcmV0dXJu
IHRydWU7Cit9CisKIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMmIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OmNhcGFiaWxpdGllcygpCiB7CiAg
ICAgaWYgKCFtX2NhcGFiaWxpdGllcykgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU2NTlkOWNiYTg0NTkyY2QxZGExYzgw
MmI1Nzc2ZjA2MzYzZDZhMDUuLmFkOWZmYjY3MmEzNTJiNjliOGZiNWFmNDE2MzY1YTZlMGI3N2Rh
NGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0xMi0zMCAgeW91ZW5uIGZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQXBwbHkgcm90YXRpb24gYXQgc291cmNlIGxldmVs
IGlmIFdlYlJUQyBzaW5rIGFzayBzbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA1NjQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiB3ZWJydGMvdmlkZW8tcm90YXRpb24tbm8tY3ZvLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogd2VicnRjL3ZpZGVvLXJvdGF0aW9uLW5vLWN2by5odG1sOiBB
ZGRlZC4KKwogMjAxOS0xMi0zMCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgSWdub3JlIFVSTCBob3N0IGZvciBzY2hlbWVzIHRoYXQgYXJlIG5vdCB1c2luZyBo
b3N0IGluZm9ybWF0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tcm90
YXRpb24tbm8tY3ZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYnJ0Yy92aWRlby1yb3Rh
dGlvbi1uby1jdm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyOWU4YmE2MDljMjA4MzU2YmI4
MTk3MzgwOWY0NmYyOGI2NTE1NTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJy
dGMvdmlkZW8tcm90YXRpb24tbm8tY3ZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKyAg
CisKK1BBU1MgVGVzdGluZyB2aWRlbyBleGNoYW5nZSB3aXRoIHJvdGF0aW9uIGFwcGxpZWQgYmVm
b3JlIHRyYW5zbWlzc2lvbiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVv
LXJvdGF0aW9uLW5vLWN2by5odG1sIGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLXJvdGF0aW9u
LW5vLWN2by5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0ZDk3ZjEzNDFiNjIzNDZiODNhMGY5NGUwYzNhYWJk
MDBiMjNkZTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tcm90
YXRpb24tbm8tY3ZvLmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVDYXB0dXJlVmlkZW9JblVJUHJvY2Vzcz10cnVlIF0gLS0+Cis8IWRvY3R5cGUg
aHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
CisgICAgICAgIDx0aXRsZT5UZXN0aW5nIHZpZGVvIHJvdGF0aW9uIHdpdGhvdXQgQ1ZPPC90aXRs
ZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHZpZGVv
IGlkPSJsb2NhbFZpZGVvIiBhdXRvcGxheSBwbGF5c0lubGluZSB3aWR0aD0iMzIwIiBoZWlnaHQ9
IjI0MCI+PC92aWRlbz4KKyAgICAgICAgPHZpZGVvIGlkPSJyZW1vdGVWaWRlbyIgYXV0b3BsYXkg
cGxheXNJbmxpbmUgd2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAiPjwvdmlkZW8+CisgICAgICAgIDxz
Y3JpcHQgc3JjID0icm91dGluZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorcHJv
bWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgY29uc3QgbG9jYWxTdHJlYW0gPSBhd2Fp
dCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IHZpZGVvOiB7IHdpZHRoOiAz
MjAsIGhlaWdodDogMjQwIH0gfSk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICB3aW5kb3cudGVzdFJ1bm5lci5zZXRNb2NrQ2FtZXJhT3JpZW50YXRpb24oOTApOworCisgICAg
bG9jYWxWaWRlby5zcmNPYmplY3QgPSBsb2NhbFN0cmVhbTsKKyAgICBjb25zdCByZW1vdGVTdHJl
YW0gPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIHRy
YWNrID0gbG9jYWxTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXTsKKworICAgICAgICBjcmVhdGVD
b25uZWN0aW9ucygoZmlyc3RDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICBmaXJzdENvbm5l
Y3Rpb24uYWRkVHJhY2sodHJhY2ssIGxvY2FsU3RyZWFtKTsKKyAgICAgICAgICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgICAgIGludGVybmFscy5hcHBseVJvdGF0aW9uRm9y
T3V0Z29pbmdWaWRlb1NvdXJjZXMoZmlyc3RDb25uZWN0aW9uKTsKKyAgICAgICAgfSwgKHNlY29u
ZENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAgIHNlY29uZENvbm5lY3Rpb24ub250cmFjayA9
ICh0cmFja0V2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cmFja0V2ZW50LnN0
cmVhbXNbMF0pOworICAgICAgICAgICAgfTsKKyAgICAgICAgfSk7CisgICAgICAgIHNldFRpbWVv
dXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIpLCA1MDAwKTsKKyAgICB9KTsKKworICAg
IHJlbW90ZVZpZGVvLnNyY09iamVjdCA9IHJlbW90ZVN0cmVhbTsKKyAgICBhd2FpdCByZW1vdGVW
aWRlby5wbGF5KCk7CisgICAgYXdhaXQgd2FpdEZvclZpZGVvU2l6ZShyZW1vdGVWaWRlbywgMjQw
LCAzMjApOworfSwgIlRlc3RpbmcgdmlkZW8gZXhjaGFuZ2Ugd2l0aCByb3RhdGlvbiBhcHBsaWVk
IGJlZm9yZSB0cmFuc21pc3Npb24iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386538</attachid>
            <date>2019-12-30 09:08:45 -0800</date>
            <delta_ts>2019-12-30 09:36:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205645-20191230180843.patch</filename>
            <type>text/plain</type>
            <size>25019</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmMzNjhiNWE1Njg4ODVm
NDM5YmFlMmQ0N2Q3NDU3ODk5ZmM3YmM1YS4uOTE2ZDdkZDdkYzhiYTQ3ZWQ4ZDNlYTc5Y2ExYzc2
YjcxNWQwOTJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE5LTEyLTMwICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBcHBseSByb3RhdGlvbiBh
dCBzb3VyY2UgbGV2ZWwgaWYgV2ViUlRDIHNpbmsgYXNrIHNvCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2NDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB2aXJ0dWFsIG1ldGhvZCB0byBSZWFs
dGltZU1lZGlhU291cmNlIHRvIHBhc3MgdGhlIGluZm9ybWF0aW9uIHRoYXQgdGhlIHNpbmsgcHJl
ZmVycyB0aGUgZnJhbWVzIHRvIGJlIHJvdGF0ZWQgYmVmb3JlIHNlbmRpbmcgdGhlbS4KKyAgICAg
ICAgQnkgZGVmYXVsdCwgdGhlIG1ldGhvZCBkb2VzIG5vdGhpbmcgYW5kIFJlYWx0aW1lT3l1dGdv
aW5nVmlkZW9Tb3VyY2Ugd2lsbCBjb250aW51ZSB0byBkbyB0aGUgcm90YXRpb24gaXRzZWxmLgor
ICAgICAgICBVcGRhdGUgSW1hZ2VSb3RhdGlvblNlc3Npb25WVCB0byBiZSBtb3JlIGVhc2lseSB1
c2FibGUgYnkgdXNlcnMgaGF2aW5nIE1lZGlhU2FtcGxlIGluc3RlYWQgb2YgQ1ZQaXhlbEJ1ZmZl
ci4KKworICAgICAgICBUZXN0OiB3ZWJydGMvdmlkZW8tcm90YXRpb24tbm8tY3ZvLmh0bWwKKwor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9SZW1vdGVWaWRlb1NhbXBsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0lt
YWdlUm90YXRpb25TZXNzaW9uVlQuaDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPT0pOgor
ICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3IhPSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
Um90YXRpb25TZXNzaW9uVlQ6OkltYWdlUm90YXRpb25TZXNzaW9uVlQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpyb3RhdGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzZXRTb3VyY2UpOgorICAgICAgICAo
V2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzZXRBcHBseVJvdGF0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6QWRkT3JVcGRh
dGVTaW5rKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2UuaDoKKwogMjAxOS0xMi0yOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBw
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGJ1aWxkIGZpeCBhZnRlciByMjUzOTM4CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDYwOTNhNDUxMzA0Yzg4NmIzYTJlMTMxMDJiMDg5MDIzYmJkOGM2YjUuLjBkNjEz
MDA4OTZhYjJmNjY4MDVjNTliNTA2Y2Q4YjAzNDhiMGRmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjMgQEAKKzIwMTktMTItMzAgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisg
ICAgICAgIEFwcGx5IHJvdGF0aW9uIGF0IHNvdXJjZSBsZXZlbCBpZiBXZWJSVEMgc2luayBhc2sg
c28KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTY0
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxl
bWVudCBSZWFsdGltZU1lZGlhU291cmNlIHNldFNob3VsZEFwcGx5Um90YXRpb24gYnkgc2VuZGlu
ZyBJUEMgdG8gY2FwdHVyZSBwcm9jZXNzLgorICAgICAgICBJbiBjYXB0dXJlIHByb2Nlc3MsIGlm
IHJvdGF0aW9uIHNob3VsZCBiZSBhcHBsaWVkLCB1c2UgYW4gSW1hZ2VSb3RhdGlvblNlc3Npb25W
VCBzZXNzaW9uIHRvIGFwcGx5IGl0IGJlZm9yZSBzZW5kaW5nIHRoZSB2aWRlbyBmcmFtZS4KKyAg
ICAgICAgVGhpcyBhbGxvd3MgV2ViUHJvY2VzcyB0byBubyBsb25nZXIgbmVlZCBhbiBJbWFnZVJv
dGF0aW9uU2Vzc2lvblZUIGZvciBXZWJSVEMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzZXRTaG91bGRBcHBseVJvdGF0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291
cmNlUHJveHk6OnJvdGF0ZVBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6c2V0U2hvdWxkQXBwbHlSb3RhdGlvbik6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c2V0
U2hvdWxkQXBwbHlSb3RhdGlvbik6CisKIDIwMTktMTItMjkgIFBlbmcgTGl1ICA8cGVuZy5saXU2
QGFwcGxlLmNvbT4KIAogICAgICAgICBUd2VhayB0aGUgZm9ybWF0IGFuZCBjb21tZW50IGluIHRo
ZSBjb2RlIHRvIHN1cHBvcnQgbWVkaWEgaW4gR1BVIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmMDRiZjMxOWVhNDlh
ODNhZDQxN2ZjMmUyOWExYTVjNDhhODY0NjcwLi42YmE4MDlkZGVkZDBkY2NhM2RjNGJhNzVkYTVh
N2IyMTdmYzRmZGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC00MDQzLDcgKzQwNDMsNyBAQAogCQlDRDFFNzM0NzE2N0JDNzhF
MDA5QTg4NUQgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxRTczNDYxNjdCQzc4RTAwOUE4ODVEIC8q
IFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcCAqLzsgfTsKIAkJQ0QyMjVDMEIxQzQ2RkJGNDAw
MTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDIyNUMwOTFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29y
ZU5TVVJMU2Vzc2lvbi5tbSAqLzsgfTsKIAkJQ0QyMjVDMEMxQzQ2RkJGNDAwMTQwNzYxIC8qIFdl
YkNvcmVOU1VSTFNlc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEMjI1QzBBMUM0NkZCRjQwMDE0MDc2MSAvKiBXZWJDb3JlTlNVUkxTZXNzaW9u
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQ0Qy
N0FFNTAyMkE5ODY4NzAwOTQ3RkY5IC8qIEltYWdlUm90YXRpb25TZXNzaW9uVlQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjdBRTRFMjJBOTg2ODcw
MDk0N0ZGOSAvKiBJbWFnZVJvdGF0aW9uU2Vzc2lvblZULmggKi87IH07CisJCUNEMjdBRTUwMjJB
OTg2ODcwMDk0N0ZGOSAvKiBJbWFnZVJvdGF0aW9uU2Vzc2lvblZULmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDI3QUU0RTIyQTk4Njg3MDA5NDdGRjkg
LyogSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUNEMjdBRTUxMjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFnZVJv
dGF0aW9uU2Vzc2lvblZULm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0QyN0FFNEYyMkE5ODY4NzAwOTQ3RkY5IC8qIEltYWdlUm90YXRpb25TZXNzaW9u
VlQubW0gKi87IH07CiAJCUNEMkY0QTI0MThEODlGNzAwMDYzNzQ2RCAvKiBBdWRpb0hhcmR3YXJl
TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENEMkY0QTIyMThEODlGNzAwMDYzNzQ2RCAvKiBBdWRpb0hhcmR3YXJlTGlzdGVuZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDJGNEEyODE4
RDhBMzQ5MDA2Mzc0NkQgLyogQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDJGNEEyNjE4RDhBMzQ5MDA2Mzc0
NkQgLyogQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmggKi87IH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKaW5kZXgg
OTNjOTMwNWY0MjEwMmQ3MjZlNzQxZTU5ZjIyNmI1ZWU0Njg5YzEyYS4uOTI2NDYyMjAwNDgwMDY1
YWNhYjkxYjRiY2E5MzNmOTBiNWZlOTRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcApAQCAtNDIsNyArNDIsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgUEFMOwogCiAjaWYgSEFWRShJ
T1NVUkZBQ0UpCi1zdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+IFJlbW90ZVZpZGVv
U2FtcGxlOjpjcmVhdGUoTWVkaWFTYW1wbGUmJiBzYW1wbGUpCitzdGQ6OnVuaXF1ZV9wdHI8UmVt
b3RlVmlkZW9TYW1wbGU+IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUoTWVkaWFTYW1wbGUmIHNh
bXBsZSkKIHsKICAgICBBU1NFUlQoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9PSBQbGF0
Zm9ybVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBlKTsKIApAQCAtNjEsNiArNjEsMTcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRl
KE1lZGlhU2FtcGxlJiYgc2FtcGwKICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZp
ZGVvU2FtcGxlPihuZXcgUmVtb3RlVmlkZW9TYW1wbGUoc3VyZmFjZSwgc1JHQkNvbG9yU3BhY2VS
ZWYoKSwgc2FtcGxlLnByZXNlbnRhdGlvblRpbWUoKSwgc2FtcGxlLnZpZGVvUm90YXRpb24oKSwg
c2FtcGxlLnZpZGVvTWlycm9yZWQoKSkpOwogfQogCitzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlk
ZW9TYW1wbGU+IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUoQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFn
ZUJ1ZmZlciwgTWVkaWFUaW1lJiYgcHJlc2VudGF0aW9uVGltZSkKK3sKKyAgICBhdXRvIHN1cmZh
Y2UgPSBDVlBpeGVsQnVmZmVyR2V0SU9TdXJmYWNlKGltYWdlQnVmZmVyKTsKKyAgICBpZiAoIXN1
cmZhY2UpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJSZW1vdGVWaWRlb1Nh
bXBsZTo6Y3JlYXRlOiBDVlBpeGVsQnVmZmVyR2V0SU9TdXJmYWNlIHJldHVybmVkIG51bGxwdHIi
KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIHN0ZDo6dW5p
cXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4obmV3IFJlbW90ZVZpZGVvU2FtcGxlKHN1cmZhY2Us
IHNSR0JDb2xvclNwYWNlUmVmKCksIFdURk1vdmUocHJlc2VudGF0aW9uVGltZSksIE1lZGlhU2Ft
cGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lLCBmYWxzZSkpOworfQorCiBSZW1vdGVWaWRlb1NhbXBs
ZTo6UmVtb3RlVmlkZW9TYW1wbGUoSU9TdXJmYWNlUmVmIHN1cmZhY2UsIENHQ29sb3JTcGFjZVJl
ZiBjb2xvclNwYWNlLCBNZWRpYVRpbWUmJiB0aW1lLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlv
biByb3RhdGlvbiwgYm9vbCBtaXJyb3JlZCkKICAgICA6IG1faW9TdXJmYWNlKFdlYkNvcmU6OklP
U3VyZmFjZTo6Y3JlYXRlRnJvbVN1cmZhY2Uoc3VyZmFjZSwgY29sb3JTcGFjZSkpCiAgICAgLCBt
X3JvdGF0aW9uKHJvdGF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKaW5kZXggZjAyZDRmY2I0YWI5M2Q2NmMxM2RhMDQ4
YjI0YTI4MGQxNzNmNmU4ZS4uZTFiMzc5YjY5YWY5NTA5OGU4YzU4YzY5M2ZkMmVlZmQ5NjYyNDA5
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlk
ZW9TYW1wbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVW
aWRlb1NhbXBsZS5oCkBAIC00Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKIAogI2lmIEhBVkUoSU9TVVJG
QUNFKQogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlk
ZW9TYW1wbGU+IGNyZWF0ZShNZWRpYVNhbXBsZSYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBjcmVhdGUoQ1ZQaXhlbEJ1ZmZl
clJlZiwgTWVkaWFUaW1lJiYgcHJlc2VudGF0aW9uVGltZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
SU9TdXJmYWNlUmVmIHN1cmZhY2UoKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULmgK
aW5kZXggNjAwMWJiNzBhMTAwNDE3NDQxMDkyMTM2ZjNmZTViNjE3NjJjYjBjZi4uNzNmNjYyMDUy
MDhiMjJhZjgxZTRkYTE0NTMyYjM5MDMzY2Q5ZGYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlUm90YXRpb25TZXNzaW9uVlQu
aApAQCAtMzYsNiArMzYsOCBAQCB0eXBlZGVmIHN0cnVjdCBfX0NWUGl4ZWxCdWZmZXJQb29sKiBD
VlBpeGVsQnVmZmVyUG9vbFJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBNZWRp
YVNhbXBsZTsKKwogY2xhc3MgSW1hZ2VSb3RhdGlvblNlc3Npb25WVCBmaW5hbCB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC01Myw3ICs1NSw4IEBAIHB1YmxpYzoK
ICAgICB9OwogCiAgICAgSW1hZ2VSb3RhdGlvblNlc3Npb25WVChBZmZpbmVUcmFuc2Zvcm0mJiwg
RmxvYXRTaXplLCBPU1R5cGUgcGl4ZWxGb3JtYXQsIElzQ0dJbWFnZUNvbXBhdGlibGUpOwotICAg
IEltYWdlUm90YXRpb25TZXNzaW9uVlQoUm90YXRpb25Qcm9wZXJ0aWVzJiYsIEZsb2F0U2l6ZSwg
T1NUeXBlIHBpeGVsRm9ybWF0LCBJc0NHSW1hZ2VDb21wYXRpYmxlKTsKKyAgICBJbWFnZVJvdGF0
aW9uU2Vzc2lvblZUKGNvbnN0IFJvdGF0aW9uUHJvcGVydGllcyYsIEZsb2F0U2l6ZSwgT1NUeXBl
IHBpeGVsRm9ybWF0LCBJc0NHSW1hZ2VDb21wYXRpYmxlKTsKKyAgICBJbWFnZVJvdGF0aW9uU2Vz
c2lvblZUKCkgPSBkZWZhdWx0OwogCiAgICAgY29uc3QgT3B0aW9uYWw8QWZmaW5lVHJhbnNmb3Jt
PiYgdHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm07IH0KICAgICBjb25zdCBS
b3RhdGlvblByb3BlcnRpZXMmIHJvdGF0aW9uUHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJuIG1f
cm90YXRpb25Qcm9wZXJ0aWVzOyB9CkBAIC02MSw4ICs2NCwxMyBAQCBwdWJsaWM6CiAgICAgY29u
c3QgRmxvYXRTaXplJiByb3RhdGVkU2l6ZSgpIHsgcmV0dXJuIG1fcm90YXRlZFNpemU7IH0KIAog
ICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiByb3RhdGUoQ1ZQaXhlbEJ1ZmZlclJlZik7
CisgICAgV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHJvdGF0ZShN
ZWRpYVNhbXBsZSYsIGNvbnN0IFJvdGF0aW9uUHJvcGVydGllcyYsIElzQ0dJbWFnZUNvbXBhdGli
bGUpOworCisgICAgYm9vbCBpc01hdGNoaW5nKE1lZGlhU2FtcGxlJiwgY29uc3QgUm90YXRpb25Q
cm9wZXJ0aWVzJik7CiAKIHByaXZhdGU6CisgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IFJvdGF0
aW9uUHJvcGVydGllcyYsIEZsb2F0U2l6ZSwgT1NUeXBlIHBpeGVsRm9ybWF0LCBJc0NHSW1hZ2VD
b21wYXRpYmxlKTsKKwogICAgIE9wdGlvbmFsPEFmZmluZVRyYW5zZm9ybT4gbV90cmFuc2Zvcm07
CiAgICAgUm90YXRpb25Qcm9wZXJ0aWVzIG1fcm90YXRpb25Qcm9wZXJ0aWVzOwogICAgIEZsb2F0
U2l6ZSBtX3NpemU7CkBAIC03MSw2ICs3OSwxNiBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxD
VlBpeGVsQnVmZmVyUG9vbFJlZj4gbV9yb3RhdGlvblBvb2w7CiB9OwogCitpbmxpbmUgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IEltYWdlUm90YXRpb25TZXNzaW9uVlQ6OlJvdGF0aW9uUHJvcGVydGll
cyYgcm90YXRpb24xLCBjb25zdCBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpSb3RhdGlvblByb3Bl
cnRpZXMmIHJvdGF0aW9uMikKK3sKKyAgICByZXR1cm4gcm90YXRpb24xLmZsaXBYID09IHJvdGF0
aW9uMi5mbGlwWCAmJiByb3RhdGlvbjEuZmxpcFkgPT0gcm90YXRpb24yLmZsaXBZICYmIHJvdGF0
aW9uMS5hbmdsZSA9PSByb3RhdGlvbjIuYW5nbGU7Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9y
IT0oY29uc3QgSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6Um90YXRpb25Qcm9wZXJ0aWVzJiByb3Rh
dGlvbjEsIGNvbnN0IEltYWdlUm90YXRpb25TZXNzaW9uVlQ6OlJvdGF0aW9uUHJvcGVydGllcyYg
cm90YXRpb24yKQoreworICAgIHJldHVybiAhKHJvdGF0aW9uMSA9PSByb3RhdGlvbjIpOworfQor
CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2N2L0ltYWdlUm90YXRpb25TZXNzaW9uVlQubW0KaW5kZXggODhhNWRiNTk1NmVl
OGI5NWYxMDhlNDY1NmZjNTdjMWM3ZTBmOWJkNy4uZGIyN2UxOTg1YTA4ODE3OTI0MmFkMjU3Mjg1
NzJhZDQ1YzgzNTMwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULm1tCkBAIC0yNyw2ICsyNyw3
IEBACiAjaW5jbHVkZSAiSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oIgogCiAjaW5jbHVkZSAiQWZm
aW5lVHJhbnNmb3JtLmgiCisjaW5jbHVkZSAiTWVkaWFTYW1wbGUuaCIKIAogI2luY2x1ZGUgIkNv
cmVWaWRlb1NvZnRMaW5rLmgiCiAjaW5jbHVkZSAiVmlkZW9Ub29sYm94U29mdExpbmsuaCIKQEAg
LTY0LDExICs2NSwxNiBAQCBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpJbWFnZVJvdGF0aW9uU2Vz
c2lvblZUKEFmZmluZVRyYW5zZm9ybSYmIHRyYW5zZm9ybSwgRmxvYQogICAgIG1fdHJhbnNmb3Jt
ID0gV1RGTW92ZSh0cmFuc2Zvcm0pOwogfQogCitJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpJbWFn
ZVJvdGF0aW9uU2Vzc2lvblZUKGNvbnN0IFJvdGF0aW9uUHJvcGVydGllcyYgcm90YXRpb24sIEZs
b2F0U2l6ZSBzaXplLCBPU1R5cGUgcGl4ZWxGb3JtYXQsIElzQ0dJbWFnZUNvbXBhdGlibGUgY3ZJ
bWFnZUNvbXBhdGliaWxpdHkpCit7CisgICAgaW5pdGlhbGl6ZShyb3RhdGlvbiwgc2l6ZSwgcGl4
ZWxGb3JtYXQsIGN2SW1hZ2VDb21wYXRpYmlsaXR5KTsKK30KIAotSW1hZ2VSb3RhdGlvblNlc3Np
b25WVDo6SW1hZ2VSb3RhdGlvblNlc3Npb25WVChSb3RhdGlvblByb3BlcnRpZXMmJiByb3RhdGlv
biwgRmxvYXRTaXplIHNpemUsIE9TVHlwZSBwaXhlbEZvcm1hdCwgSXNDR0ltYWdlQ29tcGF0aWJs
ZSBjdkltYWdlQ29tcGF0aWJpbGl0eSkKLSAgICA6IG1fcm90YXRpb25Qcm9wZXJ0aWVzKFdURk1v
dmUocm90YXRpb24pKQotICAgICwgbV9zaXplKHNpemUpCit2b2lkIEltYWdlUm90YXRpb25TZXNz
aW9uVlQ6OmluaXRpYWxpemUoY29uc3QgUm90YXRpb25Qcm9wZXJ0aWVzJiByb3RhdGlvbiwgRmxv
YXRTaXplIHNpemUsIE9TVHlwZSBwaXhlbEZvcm1hdCwgSXNDR0ltYWdlQ29tcGF0aWJsZSBjdklt
YWdlQ29tcGF0aWJpbGl0eSkKIHsKKyAgICBtX3JvdGF0aW9uUHJvcGVydGllcyA9IHJvdGF0aW9u
OworICAgIG1fc2l6ZSA9IHNpemU7CisKICAgICBpZiAobV9yb3RhdGlvblByb3BlcnRpZXMuYW5n
bGUgPT0gOTAgfHwgbV9yb3RhdGlvblByb3BlcnRpZXMuYW5nbGUgPT0gMjcwKQogICAgICAgICBz
aXplID0gc2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOwogCkBAIC04OSw2ICs5NSw3IEBAIEltYWdlUm90
YXRpb25TZXNzaW9uVlQ6OkltYWdlUm90YXRpb25TZXNzaW9uVlQoUm90YXRpb25Qcm9wZXJ0aWVz
JiYgcm90YXRpb24sIEZsCiAgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVm
ZmVySGVpZ2h0S2V5OiBAKG1fcm90YXRlZFNpemUuaGVpZ2h0KCkpLAogICAgICAgICAoX19icmlk
Z2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleTogQChwaXhlbEZv
cm1hdCksCiAgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyQ0dJbWFn
ZUNvbXBhdGliaWxpdHlLZXk6IChjdkltYWdlQ29tcGF0aWJpbGl0eSA9PSBJc0NHSW1hZ2VDb21w
YXRpYmxlOjpZZXMgPyBAWUVTIDogQE5PKSwKKyAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICop
a0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VQcm9wZXJ0aWVzS2V5IDogQHsgfQogICAgIH07CiAgICAg
Q1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcmF3UG9vbCA9IG51bGxwdHI7CiAgICAgaWYgKGF1dG8gZXJy
ID0gQ1ZQaXhlbEJ1ZmZlclBvb2xDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwg
KF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilwaXhlbEF0dHJpYnV0ZXMsICZyYXdQb29sKTsgZXJy
ICE9IG5vRXJyKQpAQCAtMTA2LDYgKzExMywyMCBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4gSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6cm90YXRlKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZQog
ICAgIHJldHVybiBudWxscHRyOwogfQogCitSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1h
Z2VSb3RhdGlvblNlc3Npb25WVDo6cm90YXRlKE1lZGlhU2FtcGxlJiBzYW1wbGUsIGNvbnN0IFJv
dGF0aW9uUHJvcGVydGllcyYgcm90YXRpb24sIElzQ0dJbWFnZUNvbXBhdGlibGUgY3ZJbWFnZUNv
bXBhdGliaWxpdHkpCit7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4
ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3Jt
U2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKSk7CisgICAgQVNTRVJUKHBpeGVsQnVmZmVy
KTsKKyAgICBpZiAoIXBpeGVsQnVmZmVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
IEludFNpemUgc2l6ZSB7IChpbnQpQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKHBpeGVsQnVmZmVyKSAs
IChpbnQpQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChwaXhlbEJ1ZmZlcikgfTsKKyAgICBpZiAocm90
YXRpb24gIT0gbV9yb3RhdGlvblByb3BlcnRpZXMgfHwgbV9zaXplICE9IHNpemUpCisgICAgICAg
IGluaXRpYWxpemUocm90YXRpb24sIHNpemUsIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5
cGUocGl4ZWxCdWZmZXIpLCBjdkltYWdlQ29tcGF0aWJpbGl0eSk7CisKKyAgICByZXR1cm4gcm90
YXRlKHBpeGVsQnVmZmVyKTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRl
eCAwNGIwMjNjZjZhY2Y5OTUzOTcwNDEzNzBhMGE2NTZiNjIyMTI3NzllLi5iODA5ZTVjOGI3MGEw
ZDY5MThhZWYyZDM5OTNhN2U5YzYyMTAwMDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC0xOTYs
NiArMTk2LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWxheVNhbXBsZXMoU2Vjb25k
cykgeyB9OwogICAgIHZvaWQgc2V0SW50ZXJydXB0ZWRGb3JUZXN0aW5nKGJvb2wpOwogCisgICAg
dmlydHVhbCBib29sIHNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCAvKiBzaG91bGRBcHBseVJv
dGF0aW9uICovKSB7IHJldHVybiBmYWxzZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZShUeXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJRCA9IHsgfSwg
U3RyaW5nJiYgaGFzaFNhbHQgPSB7IH0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlLmNwcAppbmRleCBiODU5Y2Q4ODBjYWY2MjZlMjZkMTVmZTA2Yjc3YTUzOWIzZTA1MTA2Li4w
Nzc1MjdhNzY2MDA4ZDExN2Q0MzJhZDU5ZTYwZTcyNjgyY2MxNGVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
T3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAKQEAgLTgwLDYgKzgwLDE4IEBAIHZvaWQgUmVhbHRpbWVP
dXRnb2luZ1ZpZGVvU291cmNlOjpzZXRTb3VyY2UoUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
PiYmIG5ld1NvCiB7CiAgICAgQVNTRVJUKCFtX3ZpZGVvU291cmNlLT5oYXNPYnNlcnZlcigqdGhp
cykpOwogICAgIG1fdmlkZW9Tb3VyY2UgPSBXVEZNb3ZlKG5ld1NvdXJjZSk7CisKKyAgICBzZXRB
cHBseVJvdGF0aW9uKG1fYXJlU2lua3NBc2tpbmdUb0FwcGx5Um90YXRpb24pOworfQorCit2b2lk
IFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c2V0QXBwbHlSb3RhdGlvbihib29sIHNob3Vs
ZEFwcGx5Um90YXRpb24pCit7CisgICAgaWYgKCFzaG91bGRBcHBseVJvdGF0aW9uIHx8IHNob3Vs
ZEFwcGx5Um90YXRpb24gPT0gbV9hcmVTaW5rc0Fza2luZ1RvQXBwbHlSb3RhdGlvbikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9hcmVTaW5rc0Fza2luZ1RvQXBwbHlSb3RhdGlvbiA9IHRydWU7
CisgICAgaWYgKCFtX3ZpZGVvU291cmNlLT5zb3VyY2UoKS5zZXRTaG91bGRBcHBseVJvdGF0aW9u
KHRydWUpKQorICAgICAgICBtX3Nob3VsZEFwcGx5Um90YXRpb24gPSB0cnVlOwogfQogCiB2b2lk
IFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c3RvcCgpCkBAIC0xMzQsOCArMTQ2LDcgQEAg
dm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OkFkZE9yVXBkYXRlU2luayhydGM6OlZp
ZGVvU2lua0ludGVyZmFjZTx3ZWJydGMKIHsKICAgICBBU1NFUlQoIXNpbmtXYW50cy5ibGFja19m
cmFtZXMpOwogCi0gICAgaWYgKHNpbmtXYW50cy5yb3RhdGlvbl9hcHBsaWVkKQotICAgICAgICBt
X3Nob3VsZEFwcGx5Um90YXRpb24gPSB0cnVlOworICAgIHNldEFwcGx5Um90YXRpb24oc2lua1dh
bnRzLnJvdGF0aW9uX2FwcGxpZWQpOwogCiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3Np
bmtzTG9jayk7CiAgICAgbV9zaW5rcy5hZGQoc2luayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRl
b1NvdXJjZS5oCmluZGV4IGUyYTQ4ZDA4Mjc3Y2UzMTBmNjdiMDAwOGFlMDBlZjgxODYwZDk4ZTYu
LmVjYmU1ZGNiZjM0NmY1NTAyNGU1M2VjYWZmYjY3YTVjMDc0ODYwZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
T3V0Z29pbmdWaWRlb1NvdXJjZS5oCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIHJ0Yzo6UmVmQ291bnRSZWxlYXNlU3RhdHVzOjprT3RoZXJSZWZzUmVtYWluZWQ7CiAg
ICAgfQogCi0gICAgdm9pZCBzZXRBcHBseVJvdGF0aW9uKGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlv
bikgeyBtX3Nob3VsZEFwcGx5Um90YXRpb24gPSBzaG91bGRBcHBseVJvdGF0aW9uOyB9CisgICAg
dm9pZCBzZXRBcHBseVJvdGF0aW9uKGJvb2wgLyogc2hvdWxkQXBwbHlSb3RhdGlvbiAqLyk7CiAK
IHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UoUmVm
PE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYmKTsKQEAgLTEzNCw2ICsxMzQsNyBAQCBwcml2YXRl
OgogCiAgICAgbXV0YWJsZSBSZWN1cnNpdmVMb2NrIG1fc2lua3NMb2NrOwogICAgIEhhc2hTZXQ8
cnRjOjpWaWRlb1NpbmtJbnRlcmZhY2U8d2VicnRjOjpWaWRlb0ZyYW1lPio+IG1fc2lua3M7Cisg
ICAgYm9vbCBtX2FyZVNpbmtzQXNraW5nVG9BcHBseVJvdGF0aW9uIHsgZmFsc2UgfTsKIAogICAg
IGJvb2wgbV9lbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9tdXRlZCB7IGZhbHNlIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGY5YjM1ZDQ1MTMzNjBmZTk2ODkwNWExNmZl
ZDJjNWQ3NTdkYzhmMWQuLjA0YjQzZDczMzgzMDAyODA5YTU3YjlkYTBkZmY4YzFjODMyMjhkNDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVk
ZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5Lmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0lt
YWdlUm90YXRpb25TZXNzaW9uVlQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWlu
dHMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1JlbW90ZVZpZGVvU2FtcGxlLmg+CkBAIC04Niw2ICs4Nyw4IEBAIHB1
YmxpYzoKICAgICAgICAgbV9zb3VyY2UtPnJlcXVlc3RUb0VuZCgqdGhpcyk7CiAgICAgfQogCisg
ICAgdm9pZCBzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbikg
eyBtX3Nob3VsZEFwcGx5Um90YXRpb24gPSB0cnVlOyB9CisKIHByaXZhdGU6CiAgICAgdm9pZCBz
b3VyY2VTdG9wcGVkKCkgZmluYWwgewogICAgICAgICBpZiAobV9zb3VyY2UtPmNhcHR1cmVEaWRG
YWlsKCkpIHsKQEAgLTEyNSw3ICsxMjgsMTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIHZpZGVvU2Ft
cGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpIGZpbmFsCiAgICAgewogI2lmIEhBVkUo
SU9TVVJGQUNFKQotICAgICAgICBhdXRvIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZpZGVvU2FtcGxl
OjpjcmVhdGUoV1RGTW92ZShzYW1wbGUpKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90
ZVZpZGVvU2FtcGxlPiByZW1vdGVTYW1wbGU7CisgICAgICAgIGlmIChtX3Nob3VsZEFwcGx5Um90
YXRpb24gJiYgc2FtcGxlLnZpZGVvUm90YXRpb24oKSAhPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3Rh
dGlvbjo6Tm9uZSkgeworICAgICAgICAgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHJvdGF0ZVBpeGVs
QnVmZmVyKHNhbXBsZSk7CisgICAgICAgICAgICByZW1vdGVTYW1wbGUgPSBSZW1vdGVWaWRlb1Nh
bXBsZTo6Y3JlYXRlKHBpeGVsQnVmZmVyLmdldCgpLCBzYW1wbGUucHJlc2VudGF0aW9uVGltZSgp
KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByZW1vdGVTYW1wbGUgPSBSZW1vdGVWaWRl
b1NhbXBsZTo6Y3JlYXRlKHNhbXBsZSk7CiAgICAgICAgIGlmIChyZW1vdGVTYW1wbGUpCiAgICAg
ICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpSZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShtX2lkLCBXVEZNb3ZlKCpyZW1vdGVTYW1w
bGUpKSwgMCk7CiAjZWxzZQpAQCAtMTMzLDYgKzE0MSwzMCBAQCBwcml2YXRlOgogI2VuZGlmCiAg
ICAgfQogCisgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHJvdGF0ZVBpeGVsQnVmZmVy
KE1lZGlhU2FtcGxlJiBzYW1wbGUpCisgICAgeworICAgICAgICBpZiAoIW1fcm90YXRpb25TZXNz
aW9uKQorICAgICAgICAgICAgbV9yb3RhdGlvblNlc3Npb24gPSBtYWtlVW5pcXVlPEltYWdlUm90
YXRpb25TZXNzaW9uVlQ+KCk7CisKKyAgICAgICAgSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6Um90
YXRpb25Qcm9wZXJ0aWVzIHJvdGF0aW9uOworICAgICAgICBzd2l0Y2ggKHNhbXBsZS52aWRlb1Jv
dGF0aW9uKCkpIHsKKyAgICAgICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9u
ZToKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcm90YXRp
b24uYW5nbGUgPSAwOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTWVkaWFTYW1w
bGU6OlZpZGVvUm90YXRpb246OlVwc2lkZURvd246CisgICAgICAgICAgICByb3RhdGlvbi5hbmds
ZSA9IDE4MDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1lZGlhU2FtcGxlOjpW
aWRlb1JvdGF0aW9uOjpSaWdodDoKKyAgICAgICAgICAgIHJvdGF0aW9uLmFuZ2xlID0gOTA7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlv
bjo6TGVmdDoKKyAgICAgICAgICAgIHJvdGF0aW9uLmFuZ2xlID0gMjcwOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fcm90YXRpb25TZXNzaW9uLT5yb3Rh
dGUoc2FtcGxlLCByb3RhdGlvbiwgSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6SXNDR0ltYWdlQ29t
cGF0aWJsZTo6Tm8pOworICAgIH0KKwogICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVt
b3J5KiBzdG9yYWdlKSBmaW5hbCB7CiAgICAgICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRs
ZTsKICAgICAgICAgaWYgKHN0b3JhZ2UpCkBAIC0xNTMsNiArMTg1LDggQEAgcHJpdmF0ZToKICAg
ICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbiB7IH07CiAgICAgaW50NjRf
dCBtX251bWJlck9mRnJhbWVzIHsgMCB9OwogICAgIGJvb2wgbV9pc0VuZGVkIHsgZmFsc2UgfTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VSb3RhdGlvblNlc3Npb25WVD4gbV9yb3RhdGlvblNl
c3Npb247CisgICAgYm9vbCBtX3Nob3VsZEFwcGx5Um90YXRpb24geyBmYWxzZSB9OwogfTsKIAog
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eShVbmlxdWVSZWY8Q29ubmVjdGlvblByb3h5PiYmIGNvbm5lY3Rpb25Qcm94eSkKQEAgLTI2Nyw2
ICszMDEsMTIgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpyZXF1ZXN0VG9F
bmQodWludDY0X3Qgc291cmNlSUQpCiAgICAgICAgIHByb3h5LT5yZXF1ZXN0VG9FbmQoKTsKIH0K
IAordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzZXRTaG91bGRBcHBseVJvdGF0
aW9uKHVpbnQ2NF90IHNvdXJjZUlELCBib29sIHNob3VsZEFwcGx5Um90YXRpb24pCit7CisgICAg
aWYgKGF1dG8qIHByb3h5ID0gbV9wcm94aWVzLmdldChzb3VyY2VJRCkpCisgICAgICAgIHByb3h5
LT5zZXRTaG91bGRBcHBseVJvdGF0aW9uKHNob3VsZEFwcGx5Um90YXRpb24pOworfQorCiB2b2lk
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNsZWFyKCkKIHsKICAgICBtX3Byb3hpZXMu
Y2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCA0MmU4YzljNThkNzUyYmE4NTg4
MzUzMjM2N2U5NzRhZDJkMDNmNzk0Li5lMDFiZDIzMzk3MTEyZWZiOGMyZDVlNTg5NjQyZTY3Nzlh
N2ZlMmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC03Myw2ICs3Myw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKHVpbnQ2NF90LCBjb25zdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzJik7CiAgICAgdm9pZCBjbG9uZSh1aW50NjRfdCBjbG9uZWRJRCwgdWlu
dDY0X3QgY2xvbmVJRCk7CiAgICAgdm9pZCByZXF1ZXN0VG9FbmQodWludDY0X3QpOworICAgIHZv
aWQgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbih1aW50NjRfdCBzb3VyY2VJRCwgYm9vbCBzaG91bGRB
cHBseVJvdGF0aW9uKTsKIAogICAgIGNsYXNzIFNvdXJjZVByb3h5OwogICAgIGZyaWVuZCBjbGFz
cyBTb3VyY2VQcm94eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CmluZGV4IDMyZjcyN2MzZjgzYTFiMjMwMTJlNDIyMGJjOWZmMDQzYjY2OWY0YjguLmQwOGIxODAw
NDI5Mjg5NzhiYWNlZDE0Nzg3MTk5MzIwN2M5MTcwZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzMsNiArMzMsNyBAQCBtZXNzYWdlcyAtPiBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIEFwcGx5Q29uc3Ry
YWludHModWludDY0X3QgaWQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIGNvbnN0
cmFpbnRzKQogICAgIENsb25lKHVpbnQ2NF90IGNsb25lZElELCB1aW50NjRfdCBjbG9uZUlEKQog
ICAgIFJlcXVlc3RUb0VuZCh1aW50NjRfdCBzb3VyY2VJRCkKKyAgICBTZXRTaG91bGRBcHBseVJv
dGF0aW9uKHVpbnQ2NF90IHNvdXJjZUlELCBib29sIHNob3VsZEFwcGx5Um90YXRpb24pCiB9CiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggOWIwZWViNGUzMjViYTk1YWExZjNiNDBl
ZTBkNzRkZWQ0N2M3MjljOC4uMTkyYWFjZjVjYzVjNjQxYmVlNmJiMjEzYTE2NWQ1OTA1OGIxZTRk
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC0yMjcsNiArMjI3LDggQEAgcHJpdmF0ZToKICAg
ICAvLyBSZWFsdGltZU1lZGlhU291cmNlCiAgICAgdm9pZCBiZWdpbkNvbmZpZ3VyYXRpb24oKSBm
aW5hbCB7IH0KICAgICB2b2lkIGNvbW1pdENvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KKyAgICBi
b29sIHNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCAvKiBzaG91bGRBcHBseVJvdGF0aW9uICov
KSBmaW5hbDsKKwogCiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHMmLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmKSBmaW5hbDsKIApAQCAt
Mzk1LDYgKzM5NywxMiBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnN0
b3BQcm9kdWNpbmdEYXRhKCkKICAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0b3BQcm9kdWNpbmdEYXRhKG1faWQpLCAwKTsKIH0K
IAorYm9vbCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpzZXRTaG91bGRBcHBseVJv
dGF0aW9uKGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbikKK3sKKyAgICBjb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNldFNob3VsZEFwcGx5
Um90YXRpb24obV9pZCwgc2hvdWxkQXBwbHlSb3RhdGlvbiksIDApOworICAgIHJldHVybiB0cnVl
OworfQorCiBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpjYXBhYmlsaXRpZXMoKQogewogICAgIGlm
ICghbV9jYXBhYmlsaXRpZXMpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkNzczMDI3NmYwMDA0ZjZiMmU4NDM4Mzg4YTZj
YjUzMzI4YWEyZDZlLi5jYzU0YWFhZDUwOWIyMTEwNThlNDQ0NGM1NTY1ZjQ2YTcyYjFhZWFhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTktMTItMzAgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgorCisgICAgICAgIEFwcGx5IHJvdGF0aW9uIGF0IHNvdXJjZSBsZXZlbCBpZiBX
ZWJSVEMgc2luayBhc2sgc28KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNTY0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogd2VicnRjL3ZpZGVvLXJvdGF0aW9uLW5vLWN2by1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYnJ0Yy92aWRlby1yb3RhdGlvbi1uby1jdm8uaHRtbDogQWRkZWQu
CisKIDIwMTktMTItMjcgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAg
IFtXZWJHTF0gQWRkIGEgcHVyZSB2aXJ0dWFsIGJhc2UgY2xhc3MgZm9yIEdyYXBoaWNzQ29udGV4
dDNECmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tcm90YXRpb24tbm8tY3Zv
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYnJ0Yy92aWRlby1yb3RhdGlvbi1uby1jdm8t
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyOWU4YmE2MDljMjA4MzU2YmI4MTk3MzgwOWY0NmYy
OGI2NTE1NTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tcm90
YXRpb24tbm8tY3ZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKyAgCisKK1BBU1MgVGVz
dGluZyB2aWRlbyBleGNoYW5nZSB3aXRoIHJvdGF0aW9uIGFwcGxpZWQgYmVmb3JlIHRyYW5zbWlz
c2lvbiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLXJvdGF0aW9uLW5v
LWN2by5odG1sIGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLXJvdGF0aW9uLW5vLWN2by5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQ0ZDk3ZjEzNDFiNjIzNDZiODNhMGY5NGUwYzNhYWJkMDBiMjNkZTUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tcm90YXRpb24tbm8tY3Zv
Lmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVD
YXB0dXJlVmlkZW9JblVJUHJvY2Vzcz10cnVlIF0gLS0+Cis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
PgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgICAgIDx0
aXRsZT5UZXN0aW5nIHZpZGVvIHJvdGF0aW9uIHdpdGhvdXQgQ1ZPPC90aXRsZT4KKyAgICAgICAg
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAg
ICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHZpZGVvIGlkPSJsb2NhbFZp
ZGVvIiBhdXRvcGxheSBwbGF5c0lubGluZSB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC92aWRl
bz4KKyAgICAgICAgPHZpZGVvIGlkPSJyZW1vdGVWaWRlbyIgYXV0b3BsYXkgcGxheXNJbmxpbmUg
d2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAiPjwvdmlkZW8+CisgICAgICAgIDxzY3JpcHQgc3JjID0i
cm91dGluZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorcHJvbWlzZV90ZXN0KGFz
eW5jICh0ZXN0KSA9PiB7CisgICAgY29uc3QgbG9jYWxTdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3Iu
bWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IHZpZGVvOiB7IHdpZHRoOiAzMjAsIGhlaWdodDog
MjQwIH0gfSk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB3aW5kb3cudGVz
dFJ1bm5lci5zZXRNb2NrQ2FtZXJhT3JpZW50YXRpb24oOTApOworCisgICAgbG9jYWxWaWRlby5z
cmNPYmplY3QgPSBsb2NhbFN0cmVhbTsKKyAgICBjb25zdCByZW1vdGVTdHJlYW0gPSBhd2FpdCBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIHRyYWNrID0gbG9jYWxT
dHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXTsKKworICAgICAgICBjcmVhdGVDb25uZWN0aW9ucygo
Zmlyc3RDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICBmaXJzdENvbm5lY3Rpb24uYWRkVHJh
Y2sodHJhY2ssIGxvY2FsU3RyZWFtKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgICAgICAgICAgICAgIGludGVybmFscy5hcHBseVJvdGF0aW9uRm9yT3V0Z29pbmdWaWRl
b1NvdXJjZXMoZmlyc3RDb25uZWN0aW9uKTsKKyAgICAgICAgfSwgKHNlY29uZENvbm5lY3Rpb24p
ID0+IHsKKyAgICAgICAgICAgIHNlY29uZENvbm5lY3Rpb24ub250cmFjayA9ICh0cmFja0V2ZW50
KSA9PiB7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cmFja0V2ZW50LnN0cmVhbXNbMF0pOwor
ICAgICAgICAgICAgfTsKKyAgICAgICAgfSk7CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVq
ZWN0KCJUZXN0IHRpbWVkIG91dCIpLCA1MDAwKTsKKyAgICB9KTsKKworICAgIHJlbW90ZVZpZGVv
LnNyY09iamVjdCA9IHJlbW90ZVN0cmVhbTsKKyAgICBhd2FpdCByZW1vdGVWaWRlby5wbGF5KCk7
CisgICAgYXdhaXQgd2FpdEZvclZpZGVvU2l6ZShyZW1vdGVWaWRlbywgMjQwLCAzMjApOworfSwg
IlRlc3RpbmcgdmlkZW8gZXhjaGFuZ2Ugd2l0aCByb3RhdGlvbiBhcHBsaWVkIGJlZm9yZSB0cmFu
c21pc3Npb24iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386540</attachid>
            <date>2019-12-30 09:36:05 -0800</date>
            <delta_ts>2019-12-31 01:53:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205645-20191230183603.patch</filename>
            <type>text/plain</type>
            <size>25289</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmMzNjhiNWE1Njg4ODVm
NDM5YmFlMmQ0N2Q3NDU3ODk5ZmM3YmM1YS4uOTE2ZDdkZDdkYzhiYTQ3ZWQ4ZDNlYTc5Y2ExYzc2
YjcxNWQwOTJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE5LTEyLTMwICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBcHBseSByb3RhdGlvbiBh
dCBzb3VyY2UgbGV2ZWwgaWYgV2ViUlRDIHNpbmsgYXNrIHNvCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2NDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB2aXJ0dWFsIG1ldGhvZCB0byBSZWFs
dGltZU1lZGlhU291cmNlIHRvIHBhc3MgdGhlIGluZm9ybWF0aW9uIHRoYXQgdGhlIHNpbmsgcHJl
ZmVycyB0aGUgZnJhbWVzIHRvIGJlIHJvdGF0ZWQgYmVmb3JlIHNlbmRpbmcgdGhlbS4KKyAgICAg
ICAgQnkgZGVmYXVsdCwgdGhlIG1ldGhvZCBkb2VzIG5vdGhpbmcgYW5kIFJlYWx0aW1lT3l1dGdv
aW5nVmlkZW9Tb3VyY2Ugd2lsbCBjb250aW51ZSB0byBkbyB0aGUgcm90YXRpb24gaXRzZWxmLgor
ICAgICAgICBVcGRhdGUgSW1hZ2VSb3RhdGlvblNlc3Npb25WVCB0byBiZSBtb3JlIGVhc2lseSB1
c2FibGUgYnkgdXNlcnMgaGF2aW5nIE1lZGlhU2FtcGxlIGluc3RlYWQgb2YgQ1ZQaXhlbEJ1ZmZl
ci4KKworICAgICAgICBUZXN0OiB3ZWJydGMvdmlkZW8tcm90YXRpb24tbm8tY3ZvLmh0bWwKKwor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9SZW1vdGVWaWRlb1NhbXBsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0lt
YWdlUm90YXRpb25TZXNzaW9uVlQuaDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPT0pOgor
ICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3IhPSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
Um90YXRpb25TZXNzaW9uVlQ6OkltYWdlUm90YXRpb25TZXNzaW9uVlQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpyb3RhdGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzZXRTb3VyY2UpOgorICAgICAgICAo
V2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzZXRBcHBseVJvdGF0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6QWRkT3JVcGRh
dGVTaW5rKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2UuaDoKKwogMjAxOS0xMi0yOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBw
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGJ1aWxkIGZpeCBhZnRlciByMjUzOTM4CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDYwOTNhNDUxMzA0Yzg4NmIzYTJlMTMxMDJiMDg5MDIzYmJkOGM2YjUuLjBkNjEz
MDA4OTZhYjJmNjY4MDVjNTliNTA2Y2Q4YjAzNDhiMGRmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjMgQEAKKzIwMTktMTItMzAgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisg
ICAgICAgIEFwcGx5IHJvdGF0aW9uIGF0IHNvdXJjZSBsZXZlbCBpZiBXZWJSVEMgc2luayBhc2sg
c28KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTY0
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxl
bWVudCBSZWFsdGltZU1lZGlhU291cmNlIHNldFNob3VsZEFwcGx5Um90YXRpb24gYnkgc2VuZGlu
ZyBJUEMgdG8gY2FwdHVyZSBwcm9jZXNzLgorICAgICAgICBJbiBjYXB0dXJlIHByb2Nlc3MsIGlm
IHJvdGF0aW9uIHNob3VsZCBiZSBhcHBsaWVkLCB1c2UgYW4gSW1hZ2VSb3RhdGlvblNlc3Npb25W
VCBzZXNzaW9uIHRvIGFwcGx5IGl0IGJlZm9yZSBzZW5kaW5nIHRoZSB2aWRlbyBmcmFtZS4KKyAg
ICAgICAgVGhpcyBhbGxvd3MgV2ViUHJvY2VzcyB0byBubyBsb25nZXIgbmVlZCBhbiBJbWFnZVJv
dGF0aW9uU2Vzc2lvblZUIGZvciBXZWJSVEMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzZXRTaG91bGRBcHBseVJvdGF0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291
cmNlUHJveHk6OnJvdGF0ZVBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6c2V0U2hvdWxkQXBwbHlSb3RhdGlvbik6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6c2V0
U2hvdWxkQXBwbHlSb3RhdGlvbik6CisKIDIwMTktMTItMjkgIFBlbmcgTGl1ICA8cGVuZy5saXU2
QGFwcGxlLmNvbT4KIAogICAgICAgICBUd2VhayB0aGUgZm9ybWF0IGFuZCBjb21tZW50IGluIHRo
ZSBjb2RlIHRvIHN1cHBvcnQgbWVkaWEgaW4gR1BVIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmMDRiZjMxOWVhNDlh
ODNhZDQxN2ZjMmUyOWExYTVjNDhhODY0NjcwLi42YmE4MDlkZGVkZDBkY2NhM2RjNGJhNzVkYTVh
N2IyMTdmYzRmZGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC00MDQzLDcgKzQwNDMsNyBAQAogCQlDRDFFNzM0NzE2N0JDNzhF
MDA5QTg4NUQgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxRTczNDYxNjdCQzc4RTAwOUE4ODVEIC8q
IFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcCAqLzsgfTsKIAkJQ0QyMjVDMEIxQzQ2RkJGNDAw
MTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDIyNUMwOTFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29y
ZU5TVVJMU2Vzc2lvbi5tbSAqLzsgfTsKIAkJQ0QyMjVDMEMxQzQ2RkJGNDAwMTQwNzYxIC8qIFdl
YkNvcmVOU1VSTFNlc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEMjI1QzBBMUM0NkZCRjQwMDE0MDc2MSAvKiBXZWJDb3JlTlNVUkxTZXNzaW9u
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQ0Qy
N0FFNTAyMkE5ODY4NzAwOTQ3RkY5IC8qIEltYWdlUm90YXRpb25TZXNzaW9uVlQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjdBRTRFMjJBOTg2ODcw
MDk0N0ZGOSAvKiBJbWFnZVJvdGF0aW9uU2Vzc2lvblZULmggKi87IH07CisJCUNEMjdBRTUwMjJB
OTg2ODcwMDk0N0ZGOSAvKiBJbWFnZVJvdGF0aW9uU2Vzc2lvblZULmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDI3QUU0RTIyQTk4Njg3MDA5NDdGRjkg
LyogSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUNEMjdBRTUxMjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFnZVJv
dGF0aW9uU2Vzc2lvblZULm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0QyN0FFNEYyMkE5ODY4NzAwOTQ3RkY5IC8qIEltYWdlUm90YXRpb25TZXNzaW9u
VlQubW0gKi87IH07CiAJCUNEMkY0QTI0MThEODlGNzAwMDYzNzQ2RCAvKiBBdWRpb0hhcmR3YXJl
TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENEMkY0QTIyMThEODlGNzAwMDYzNzQ2RCAvKiBBdWRpb0hhcmR3YXJlTGlzdGVuZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDJGNEEyODE4
RDhBMzQ5MDA2Mzc0NkQgLyogQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDJGNEEyNjE4RDhBMzQ5MDA2Mzc0
NkQgLyogQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmggKi87IH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKaW5kZXgg
OTNjOTMwNWY0MjEwMmQ3MjZlNzQxZTU5ZjIyNmI1ZWU0Njg5YzEyYS4uOTI2NDYyMjAwNDgwMDY1
YWNhYjkxYjRiY2E5MzNmOTBiNWZlOTRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcApAQCAtNDIsNyArNDIsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgUEFMOwogCiAjaWYgSEFWRShJ
T1NVUkZBQ0UpCi1zdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+IFJlbW90ZVZpZGVv
U2FtcGxlOjpjcmVhdGUoTWVkaWFTYW1wbGUmJiBzYW1wbGUpCitzdGQ6OnVuaXF1ZV9wdHI8UmVt
b3RlVmlkZW9TYW1wbGU+IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUoTWVkaWFTYW1wbGUmIHNh
bXBsZSkKIHsKICAgICBBU1NFUlQoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9PSBQbGF0
Zm9ybVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBlKTsKIApAQCAtNjEsNiArNjEsMTcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRl
KE1lZGlhU2FtcGxlJiYgc2FtcGwKICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZp
ZGVvU2FtcGxlPihuZXcgUmVtb3RlVmlkZW9TYW1wbGUoc3VyZmFjZSwgc1JHQkNvbG9yU3BhY2VS
ZWYoKSwgc2FtcGxlLnByZXNlbnRhdGlvblRpbWUoKSwgc2FtcGxlLnZpZGVvUm90YXRpb24oKSwg
c2FtcGxlLnZpZGVvTWlycm9yZWQoKSkpOwogfQogCitzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlk
ZW9TYW1wbGU+IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUoQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFn
ZUJ1ZmZlciwgTWVkaWFUaW1lJiYgcHJlc2VudGF0aW9uVGltZSkKK3sKKyAgICBhdXRvIHN1cmZh
Y2UgPSBDVlBpeGVsQnVmZmVyR2V0SU9TdXJmYWNlKGltYWdlQnVmZmVyKTsKKyAgICBpZiAoIXN1
cmZhY2UpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJSZW1vdGVWaWRlb1Nh
bXBsZTo6Y3JlYXRlOiBDVlBpeGVsQnVmZmVyR2V0SU9TdXJmYWNlIHJldHVybmVkIG51bGxwdHIi
KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIHN0ZDo6dW5p
cXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4obmV3IFJlbW90ZVZpZGVvU2FtcGxlKHN1cmZhY2Us
IHNSR0JDb2xvclNwYWNlUmVmKCksIFdURk1vdmUocHJlc2VudGF0aW9uVGltZSksIE1lZGlhU2Ft
cGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lLCBmYWxzZSkpOworfQorCiBSZW1vdGVWaWRlb1NhbXBs
ZTo6UmVtb3RlVmlkZW9TYW1wbGUoSU9TdXJmYWNlUmVmIHN1cmZhY2UsIENHQ29sb3JTcGFjZVJl
ZiBjb2xvclNwYWNlLCBNZWRpYVRpbWUmJiB0aW1lLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlv
biByb3RhdGlvbiwgYm9vbCBtaXJyb3JlZCkKICAgICA6IG1faW9TdXJmYWNlKFdlYkNvcmU6OklP
U3VyZmFjZTo6Y3JlYXRlRnJvbVN1cmZhY2Uoc3VyZmFjZSwgY29sb3JTcGFjZSkpCiAgICAgLCBt
X3JvdGF0aW9uKHJvdGF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKaW5kZXggZjAyZDRmY2I0YWI5M2Q2NmMxM2RhMDQ4
YjI0YTI4MGQxNzNmNmU4ZS4uMjc1ZDQ1N2FlMGU4OGM2MTI5Mzc1NmU1MjA0ZmVkZjQyYzRiMjBi
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlk
ZW9TYW1wbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVW
aWRlb1NhbXBsZS5oCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSAiSU9TdXJmYWNlLmgiCiAj
ZW5kaWYKIAordHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZlclJlZjsKKwog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZW1vdGVWaWRlb1NhbXBsZSB7CkBAIC00Niw3
ICs0OCw4IEBAIHB1YmxpYzoKICAgICB+UmVtb3RlVmlkZW9TYW1wbGUoKSA9IGRlZmF1bHQ7CiAK
ICNpZiBIQVZFKElPU1VSRkFDRSkKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBjcmVhdGUoTWVkaWFTYW1wbGUmJik7CisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gY3Jl
YXRlKE1lZGlhU2FtcGxlJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gY3JlYXRlKENWUGl4ZWxCdWZmZXJSZWYsIE1lZGlhVGlt
ZSYmIHByZXNlbnRhdGlvblRpbWUpOwogICAgIFdFQkNPUkVfRVhQT1JUIElPU3VyZmFjZVJlZiBz
dXJmYWNlKCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oCmluZGV4IDYwMDFiYjcw
YTEwMDQxNzQ0MTA5MjEzNmYzZmU1YjYxNzYyY2IwY2YuLjczZjY2MjA1MjA4YjIyYWY4MWU0ZGEx
NDUzMmIzOTAzM2NkOWRmM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2N2L0ltYWdlUm90YXRpb25TZXNzaW9uVlQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULmgKQEAgLTM2LDYgKzM2
LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX19DVlBpeGVsQnVmZmVyUG9vbCogQ1ZQaXhlbEJ1ZmZlclBv
b2xSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgTWVkaWFTYW1wbGU7CisKIGNs
YXNzIEltYWdlUm90YXRpb25TZXNzaW9uVlQgZmluYWwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgpAQCAtNTMsNyArNTUsOCBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAg
IEltYWdlUm90YXRpb25TZXNzaW9uVlQoQWZmaW5lVHJhbnNmb3JtJiYsIEZsb2F0U2l6ZSwgT1NU
eXBlIHBpeGVsRm9ybWF0LCBJc0NHSW1hZ2VDb21wYXRpYmxlKTsKLSAgICBJbWFnZVJvdGF0aW9u
U2Vzc2lvblZUKFJvdGF0aW9uUHJvcGVydGllcyYmLCBGbG9hdFNpemUsIE9TVHlwZSBwaXhlbEZv
cm1hdCwgSXNDR0ltYWdlQ29tcGF0aWJsZSk7CisgICAgSW1hZ2VSb3RhdGlvblNlc3Npb25WVChj
b25zdCBSb3RhdGlvblByb3BlcnRpZXMmLCBGbG9hdFNpemUsIE9TVHlwZSBwaXhlbEZvcm1hdCwg
SXNDR0ltYWdlQ29tcGF0aWJsZSk7CisgICAgSW1hZ2VSb3RhdGlvblNlc3Npb25WVCgpID0gZGVm
YXVsdDsKIAogICAgIGNvbnN0IE9wdGlvbmFsPEFmZmluZVRyYW5zZm9ybT4mIHRyYW5zZm9ybSgp
IGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtOyB9CiAgICAgY29uc3QgUm90YXRpb25Qcm9wZXJ0
aWVzJiByb3RhdGlvblByb3BlcnRpZXMoKSBjb25zdCB7IHJldHVybiBtX3JvdGF0aW9uUHJvcGVy
dGllczsgfQpAQCAtNjEsOCArNjQsMTMgQEAgcHVibGljOgogICAgIGNvbnN0IEZsb2F0U2l6ZSYg
cm90YXRlZFNpemUoKSB7IHJldHVybiBtX3JvdGF0ZWRTaXplOyB9CiAKICAgICBSZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4gcm90YXRlKENWUGl4ZWxCdWZmZXJSZWYpOworICAgIFdFQkNPUkVf
RVhQT1JUIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiByb3RhdGUoTWVkaWFTYW1wbGUmLCBj
b25zdCBSb3RhdGlvblByb3BlcnRpZXMmLCBJc0NHSW1hZ2VDb21wYXRpYmxlKTsKKworICAgIGJv
b2wgaXNNYXRjaGluZyhNZWRpYVNhbXBsZSYsIGNvbnN0IFJvdGF0aW9uUHJvcGVydGllcyYpOwog
CiBwcml2YXRlOgorICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBSb3RhdGlvblByb3BlcnRpZXMm
LCBGbG9hdFNpemUsIE9TVHlwZSBwaXhlbEZvcm1hdCwgSXNDR0ltYWdlQ29tcGF0aWJsZSk7CisK
ICAgICBPcHRpb25hbDxBZmZpbmVUcmFuc2Zvcm0+IG1fdHJhbnNmb3JtOwogICAgIFJvdGF0aW9u
UHJvcGVydGllcyBtX3JvdGF0aW9uUHJvcGVydGllczsKICAgICBGbG9hdFNpemUgbV9zaXplOwpA
QCAtNzEsNiArNzksMTYgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclBv
b2xSZWY+IG1fcm90YXRpb25Qb29sOwogfTsKIAoraW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpSb3RhdGlvblByb3BlcnRpZXMmIHJvdGF0aW9uMSwg
Y29uc3QgSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6Um90YXRpb25Qcm9wZXJ0aWVzJiByb3RhdGlv
bjIpCit7CisgICAgcmV0dXJuIHJvdGF0aW9uMS5mbGlwWCA9PSByb3RhdGlvbjIuZmxpcFggJiYg
cm90YXRpb24xLmZsaXBZID09IHJvdGF0aW9uMi5mbGlwWSAmJiByb3RhdGlvbjEuYW5nbGUgPT0g
cm90YXRpb24yLmFuZ2xlOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEltYWdl
Um90YXRpb25TZXNzaW9uVlQ6OlJvdGF0aW9uUHJvcGVydGllcyYgcm90YXRpb24xLCBjb25zdCBJ
bWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpSb3RhdGlvblByb3BlcnRpZXMmIHJvdGF0aW9uMikKK3sK
KyAgICByZXR1cm4gIShyb3RhdGlvbjEgPT0gcm90YXRpb24yKTsKK30KKwogfQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlUm90
YXRpb25TZXNzaW9uVlQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9J
bWFnZVJvdGF0aW9uU2Vzc2lvblZULm1tCmluZGV4IDg4YTVkYjU5NTZlZThiOTVmMTA4ZTQ2NTZm
YzU3YzFjN2UwZjliZDcuLjQ3ZGJlY2RmMzkyYjQzMjQ1ZmRjNTY1NjU2NTgyOThmZmUwMTBkMzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlUm90
YXRpb25TZXNzaW9uVlQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5tbQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUg
IkltYWdlUm90YXRpb25TZXNzaW9uVlQuaCIKIAogI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5o
IgorI2luY2x1ZGUgIk1lZGlhU2FtcGxlLmgiCiAKICNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGlu
ay5oIgogI2luY2x1ZGUgIlZpZGVvVG9vbGJveFNvZnRMaW5rLmgiCkBAIC02NCwxMSArNjUsMTYg
QEAgSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6SW1hZ2VSb3RhdGlvblNlc3Npb25WVChBZmZpbmVU
cmFuc2Zvcm0mJiB0cmFuc2Zvcm0sIEZsb2EKICAgICBtX3RyYW5zZm9ybSA9IFdURk1vdmUodHJh
bnNmb3JtKTsKIH0KIAorSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6SW1hZ2VSb3RhdGlvblNlc3Np
b25WVChjb25zdCBSb3RhdGlvblByb3BlcnRpZXMmIHJvdGF0aW9uLCBGbG9hdFNpemUgc2l6ZSwg
T1NUeXBlIHBpeGVsRm9ybWF0LCBJc0NHSW1hZ2VDb21wYXRpYmxlIGN2SW1hZ2VDb21wYXRpYmls
aXR5KQoreworICAgIGluaXRpYWxpemUocm90YXRpb24sIHNpemUsIHBpeGVsRm9ybWF0LCBjdklt
YWdlQ29tcGF0aWJpbGl0eSk7Cit9CiAKLUltYWdlUm90YXRpb25TZXNzaW9uVlQ6OkltYWdlUm90
YXRpb25TZXNzaW9uVlQoUm90YXRpb25Qcm9wZXJ0aWVzJiYgcm90YXRpb24sIEZsb2F0U2l6ZSBz
aXplLCBPU1R5cGUgcGl4ZWxGb3JtYXQsIElzQ0dJbWFnZUNvbXBhdGlibGUgY3ZJbWFnZUNvbXBh
dGliaWxpdHkpCi0gICAgOiBtX3JvdGF0aW9uUHJvcGVydGllcyhXVEZNb3ZlKHJvdGF0aW9uKSkK
LSAgICAsIG1fc2l6ZShzaXplKQordm9pZCBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOjppbml0aWFs
aXplKGNvbnN0IFJvdGF0aW9uUHJvcGVydGllcyYgcm90YXRpb24sIEZsb2F0U2l6ZSBzaXplLCBP
U1R5cGUgcGl4ZWxGb3JtYXQsIElzQ0dJbWFnZUNvbXBhdGlibGUgY3ZJbWFnZUNvbXBhdGliaWxp
dHkpCiB7CisgICAgbV9yb3RhdGlvblByb3BlcnRpZXMgPSByb3RhdGlvbjsKKyAgICBtX3NpemUg
PSBzaXplOworCiAgICAgaWYgKG1fcm90YXRpb25Qcm9wZXJ0aWVzLmFuZ2xlID09IDkwIHx8IG1f
cm90YXRpb25Qcm9wZXJ0aWVzLmFuZ2xlID09IDI3MCkKICAgICAgICAgc2l6ZSA9IHNpemUudHJh
bnNwb3NlZFNpemUoKTsKIApAQCAtODksNiArOTUsNyBAQCBJbWFnZVJvdGF0aW9uU2Vzc2lvblZU
OjpJbWFnZVJvdGF0aW9uU2Vzc2lvblZUKFJvdGF0aW9uUHJvcGVydGllcyYmIHJvdGF0aW9uLCBG
bAogICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlckhlaWdodEtleTog
QChtX3JvdGF0ZWRTaXplLmhlaWdodCgpKSwKICAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICop
a0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXk6IEAocGl4ZWxGb3JtYXQpLAogICAgICAg
ICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlckNHSW1hZ2VDb21wYXRpYmlsaXR5
S2V5OiAoY3ZJbWFnZUNvbXBhdGliaWxpdHkgPT0gSXNDR0ltYWdlQ29tcGF0aWJsZTo6WWVzID8g
QFlFUyA6IEBOTyksCisgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVy
SU9TdXJmYWNlUHJvcGVydGllc0tleSA6IEB7IH0KICAgICB9OwogICAgIENWUGl4ZWxCdWZmZXJQ
b29sUmVmIHJhd1Bvb2wgPSBudWxscHRyOwogICAgIGlmIChhdXRvIGVyciA9IENWUGl4ZWxCdWZm
ZXJQb29sQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIChfX2JyaWRnZSBDRkRp
Y3Rpb25hcnlSZWYpcGl4ZWxBdHRyaWJ1dGVzLCAmcmF3UG9vbCk7IGVyciAhPSBub0VycikKQEAg
LTEwNiw2ICsxMTMsMjAgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IEltYWdlUm90YXRp
b25TZXNzaW9uVlQ6OnJvdGF0ZShDVlBpeGVsQnVmZmVyUmVmIHBpeGUKICAgICByZXR1cm4gbnVs
bHB0cjsKIH0KIAorUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IEltYWdlUm90YXRpb25TZXNz
aW9uVlQ6OnJvdGF0ZShNZWRpYVNhbXBsZSYgc2FtcGxlLCBjb25zdCBSb3RhdGlvblByb3BlcnRp
ZXMmIHJvdGF0aW9uLCBJc0NHSW1hZ2VDb21wYXRpYmxlIGN2SW1hZ2VDb21wYXRpYmlsaXR5KQor
eworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihD
TVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBs
ZS5jbVNhbXBsZUJ1ZmZlcikpOworICAgIEFTU0VSVChwaXhlbEJ1ZmZlcik7CisgICAgaWYgKCFw
aXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBJbnRTaXplIHNpemUg
eyAoaW50KUNWUGl4ZWxCdWZmZXJHZXRXaWR0aChwaXhlbEJ1ZmZlciksIChpbnQpQ1ZQaXhlbEJ1
ZmZlckdldEhlaWdodChwaXhlbEJ1ZmZlcikgfTsKKyAgICBpZiAocm90YXRpb24gIT0gbV9yb3Rh
dGlvblByb3BlcnRpZXMgfHwgbV9zaXplICE9IHNpemUpCisgICAgICAgIGluaXRpYWxpemUocm90
YXRpb24sIHNpemUsIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIp
LCBjdkltYWdlQ29tcGF0aWJpbGl0eSk7CisKKyAgICByZXR1cm4gcm90YXRlKHBpeGVsQnVmZmVy
KTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCAwNGIwMjNjZjZhY2Y5
OTUzOTcwNDEzNzBhMGE2NTZiNjIyMTI3NzllLi5iODA5ZTVjOGI3MGEwZDY5MThhZWYyZDM5OTNh
N2U5YzYyMTAwMDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC0xOTYsNiArMTk2LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWxheVNhbXBsZXMoU2Vjb25kcykgeyB9OwogICAgIHZv
aWQgc2V0SW50ZXJydXB0ZWRGb3JUZXN0aW5nKGJvb2wpOwogCisgICAgdmlydHVhbCBib29sIHNl
dFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCAvKiBzaG91bGRBcHBseVJvdGF0aW9uICovKSB7IHJl
dHVybiBmYWxzZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZShUeXBl
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJRCA9IHsgfSwgU3RyaW5nJiYgaGFzaFNh
bHQgPSB7IH0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcAppbmRleCBi
ODU5Y2Q4ODBjYWY2MjZlMjZkMTVmZTA2Yjc3YTUzOWIzZTA1MTA2Li4wNzc1MjdhNzY2MDA4ZDEx
N2Q0MzJhZDU5ZTYwZTcyNjgyY2MxNGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZS5jcHAKQEAgLTgwLDYgKzgwLDE4IEBAIHZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlOjpzZXRTb3VyY2UoUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYmIG5ld1NvCiB7CiAg
ICAgQVNTRVJUKCFtX3ZpZGVvU291cmNlLT5oYXNPYnNlcnZlcigqdGhpcykpOwogICAgIG1fdmlk
ZW9Tb3VyY2UgPSBXVEZNb3ZlKG5ld1NvdXJjZSk7CisKKyAgICBzZXRBcHBseVJvdGF0aW9uKG1f
YXJlU2lua3NBc2tpbmdUb0FwcGx5Um90YXRpb24pOworfQorCit2b2lkIFJlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZTo6c2V0QXBwbHlSb3RhdGlvbihib29sIHNob3VsZEFwcGx5Um90YXRpb24p
Cit7CisgICAgaWYgKCFzaG91bGRBcHBseVJvdGF0aW9uIHx8IHNob3VsZEFwcGx5Um90YXRpb24g
PT0gbV9hcmVTaW5rc0Fza2luZ1RvQXBwbHlSb3RhdGlvbikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9hcmVTaW5rc0Fza2luZ1RvQXBwbHlSb3RhdGlvbiA9IHRydWU7CisgICAgaWYgKCFtX3Zp
ZGVvU291cmNlLT5zb3VyY2UoKS5zZXRTaG91bGRBcHBseVJvdGF0aW9uKHRydWUpKQorICAgICAg
ICBtX3Nob3VsZEFwcGx5Um90YXRpb24gPSB0cnVlOwogfQogCiB2b2lkIFJlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZTo6c3RvcCgpCkBAIC0xMzQsOCArMTQ2LDcgQEAgdm9pZCBSZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2U6OkFkZE9yVXBkYXRlU2luayhydGM6OlZpZGVvU2lua0ludGVyZmFj
ZTx3ZWJydGMKIHsKICAgICBBU1NFUlQoIXNpbmtXYW50cy5ibGFja19mcmFtZXMpOwogCi0gICAg
aWYgKHNpbmtXYW50cy5yb3RhdGlvbl9hcHBsaWVkKQotICAgICAgICBtX3Nob3VsZEFwcGx5Um90
YXRpb24gPSB0cnVlOworICAgIHNldEFwcGx5Um90YXRpb24oc2lua1dhbnRzLnJvdGF0aW9uX2Fw
cGxpZWQpOwogCiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3NpbmtzTG9jayk7CiAgICAg
bV9zaW5rcy5hZGQoc2luayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oCmluZGV4
IGUyYTQ4ZDA4Mjc3Y2UzMTBmNjdiMDAwOGFlMDBlZjgxODYwZDk4ZTYuLmVjYmU1ZGNiZjM0NmY1
NTAyNGU1M2VjYWZmYjY3YTVjMDc0ODYwZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZS5oCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHJ0Yzo6UmVm
Q291bnRSZWxlYXNlU3RhdHVzOjprT3RoZXJSZWZzUmVtYWluZWQ7CiAgICAgfQogCi0gICAgdm9p
ZCBzZXRBcHBseVJvdGF0aW9uKGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbikgeyBtX3Nob3VsZEFw
cGx5Um90YXRpb24gPSBzaG91bGRBcHBseVJvdGF0aW9uOyB9CisgICAgdm9pZCBzZXRBcHBseVJv
dGF0aW9uKGJvb2wgLyogc2hvdWxkQXBwbHlSb3RhdGlvbiAqLyk7CiAKIHByb3RlY3RlZDoKICAg
ICBleHBsaWNpdCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UoUmVmPE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlPiYmKTsKQEAgLTEzNCw2ICsxMzQsNyBAQCBwcml2YXRlOgogCiAgICAgbXV0YWJs
ZSBSZWN1cnNpdmVMb2NrIG1fc2lua3NMb2NrOwogICAgIEhhc2hTZXQ8cnRjOjpWaWRlb1NpbmtJ
bnRlcmZhY2U8d2VicnRjOjpWaWRlb0ZyYW1lPio+IG1fc2lua3M7CisgICAgYm9vbCBtX2FyZVNp
bmtzQXNraW5nVG9BcHBseVJvdGF0aW9uIHsgZmFsc2UgfTsKIAogICAgIGJvb2wgbV9lbmFibGVk
IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9tdXRlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuY3BwCmluZGV4IGY5YjM1ZDQ1MTMzNjBmZTk2ODkwNWExNmZlZDJjNWQ3NTdkYzhmMWQu
LjA0YjQzZDczMzgzMDAyODA5YTU3YjlkYTBkZmY4YzFjODMyMjhkNDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9DQVJpbmdCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlUm90YXRpb25TZXNz
aW9uVlQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1JlbW90ZVZpZGVvU2FtcGxlLmg+CkBAIC04Niw2ICs4Nyw4IEBAIHB1YmxpYzoKICAgICAgICAg
bV9zb3VyY2UtPnJlcXVlc3RUb0VuZCgqdGhpcyk7CiAgICAgfQogCisgICAgdm9pZCBzZXRTaG91
bGRBcHBseVJvdGF0aW9uKGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbikgeyBtX3Nob3VsZEFwcGx5
Um90YXRpb24gPSB0cnVlOyB9CisKIHByaXZhdGU6CiAgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkg
ZmluYWwgewogICAgICAgICBpZiAobV9zb3VyY2UtPmNhcHR1cmVEaWRGYWlsKCkpIHsKQEAgLTEy
NSw3ICsxMjgsMTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKE1l
ZGlhU2FtcGxlJiBzYW1wbGUpIGZpbmFsCiAgICAgewogI2lmIEhBVkUoSU9TVVJGQUNFKQotICAg
ICAgICBhdXRvIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUoV1RGTW92
ZShzYW1wbGUpKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBy
ZW1vdGVTYW1wbGU7CisgICAgICAgIGlmIChtX3Nob3VsZEFwcGx5Um90YXRpb24gJiYgc2FtcGxl
LnZpZGVvUm90YXRpb24oKSAhPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSkgewor
ICAgICAgICAgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHJvdGF0ZVBpeGVsQnVmZmVyKHNhbXBsZSk7
CisgICAgICAgICAgICByZW1vdGVTYW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKHBp
eGVsQnVmZmVyLmdldCgpLCBzYW1wbGUucHJlc2VudGF0aW9uVGltZSgpKTsKKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICByZW1vdGVTYW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRl
KHNhbXBsZSk7CiAgICAgICAgIGlmIChyZW1vdGVTYW1wbGUpCiAgICAgICAgICAgICBtX2Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpSZW1vdGVWaWRl
b1NhbXBsZUF2YWlsYWJsZShtX2lkLCBXVEZNb3ZlKCpyZW1vdGVTYW1wbGUpKSwgMCk7CiAjZWxz
ZQpAQCAtMTMzLDYgKzE0MSwzMCBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgfQogCisgICAgUmV0
YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHJvdGF0ZVBpeGVsQnVmZmVyKE1lZGlhU2FtcGxlJiBz
YW1wbGUpCisgICAgeworICAgICAgICBpZiAoIW1fcm90YXRpb25TZXNzaW9uKQorICAgICAgICAg
ICAgbV9yb3RhdGlvblNlc3Npb24gPSBtYWtlVW5pcXVlPEltYWdlUm90YXRpb25TZXNzaW9uVlQ+
KCk7CisKKyAgICAgICAgSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6Um90YXRpb25Qcm9wZXJ0aWVz
IHJvdGF0aW9uOworICAgICAgICBzd2l0Y2ggKHNhbXBsZS52aWRlb1JvdGF0aW9uKCkpIHsKKyAg
ICAgICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZToKKyAgICAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcm90YXRpb24uYW5nbGUgPSAwOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRp
b246OlVwc2lkZURvd246CisgICAgICAgICAgICByb3RhdGlvbi5hbmdsZSA9IDE4MDsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpS
aWdodDoKKyAgICAgICAgICAgIHJvdGF0aW9uLmFuZ2xlID0gOTA7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdDoKKyAgICAg
ICAgICAgIHJvdGF0aW9uLmFuZ2xlID0gMjcwOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgcmV0dXJuIG1fcm90YXRpb25TZXNzaW9uLT5yb3RhdGUoc2FtcGxlLCByb3Rh
dGlvbiwgSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6SXNDR0ltYWdlQ29tcGF0aWJsZTo6Tm8pOwor
ICAgIH0KKwogICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKSBm
aW5hbCB7CiAgICAgICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKICAgICAgICAgaWYg
KHN0b3JhZ2UpCkBAIC0xNTMsNiArMTg1LDggQEAgcHJpdmF0ZToKICAgICBDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbiB7IH07CiAgICAgaW50NjRfdCBtX251bWJlck9mRnJh
bWVzIHsgMCB9OwogICAgIGJvb2wgbV9pc0VuZGVkIHsgZmFsc2UgfTsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8SW1hZ2VSb3RhdGlvblNlc3Npb25WVD4gbV9yb3RhdGlvblNlc3Npb247CisgICAgYm9v
bCBtX3Nob3VsZEFwcGx5Um90YXRpb24geyBmYWxzZSB9OwogfTsKIAogVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShVbmlxdWVSZWY8Q29u
bmVjdGlvblByb3h5PiYmIGNvbm5lY3Rpb25Qcm94eSkKQEAgLTI2Nyw2ICszMDEsMTIgQEAgdm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpyZXF1ZXN0VG9FbmQodWludDY0X3Qgc291
cmNlSUQpCiAgICAgICAgIHByb3h5LT5yZXF1ZXN0VG9FbmQoKTsKIH0KIAordm9pZCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKHVpbnQ2NF90IHNv
dXJjZUlELCBib29sIHNob3VsZEFwcGx5Um90YXRpb24pCit7CisgICAgaWYgKGF1dG8qIHByb3h5
ID0gbV9wcm94aWVzLmdldChzb3VyY2VJRCkpCisgICAgICAgIHByb3h5LT5zZXRTaG91bGRBcHBs
eVJvdGF0aW9uKHNob3VsZEFwcGx5Um90YXRpb24pOworfQorCiB2b2lkIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OmNsZWFyKCkKIHsKICAgICBtX3Byb3hpZXMuY2xlYXIoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuaAppbmRleCA0MmU4YzljNThkNzUyYmE4NTg4MzUzMjM2N2U5NzRhZDJk
MDNmNzk0Li5lMDFiZDIzMzk3MTEyZWZiOGMyZDVlNTg5NjQyZTY3NzlhN2ZlMmY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5oCkBAIC03Myw2ICs3Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBh
cHBseUNvbnN0cmFpbnRzKHVpbnQ2NF90LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
Jik7CiAgICAgdm9pZCBjbG9uZSh1aW50NjRfdCBjbG9uZWRJRCwgdWludDY0X3QgY2xvbmVJRCk7
CiAgICAgdm9pZCByZXF1ZXN0VG9FbmQodWludDY0X3QpOworICAgIHZvaWQgc2V0U2hvdWxkQXBw
bHlSb3RhdGlvbih1aW50NjRfdCBzb3VyY2VJRCwgYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKTsK
IAogICAgIGNsYXNzIFNvdXJjZVByb3h5OwogICAgIGZyaWVuZCBjbGFzcyBTb3VyY2VQcm94eTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDMyZjcyN2Mz
ZjgzYTFiMjMwMTJlNDIyMGJjOWZmMDQzYjY2OWY0YjguLmQwOGIxODAwNDI5Mjg5NzhiYWNlZDE0
Nzg3MTk5MzIwN2M5MTcwZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbgpAQCAtMzMsNiArMzMsNyBAQCBtZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIEFwcGx5Q29uc3RyYWludHModWludDY0X3Qg
aWQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKQogICAgIENs
b25lKHVpbnQ2NF90IGNsb25lZElELCB1aW50NjRfdCBjbG9uZUlEKQogICAgIFJlcXVlc3RUb0Vu
ZCh1aW50NjRfdCBzb3VyY2VJRCkKKyAgICBTZXRTaG91bGRBcHBseVJvdGF0aW9uKHVpbnQ2NF90
IHNvdXJjZUlELCBib29sIHNob3VsZEFwcGx5Um90YXRpb24pCiB9CiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5jcHAKaW5kZXggOWIwZWViNGUzMjViYTk1YWExZjNiNDBlZTBkNzRkZWQ0N2M3Mjlj
OC4uMTkyYWFjZjVjYzVjNjQxYmVlNmJiMjEzYTE2NWQ1OTA1OGIxZTRkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuY3BwCkBAIC0yMjcsNiArMjI3LDggQEAgcHJpdmF0ZToKICAgICAvLyBSZWFsdGltZU1l
ZGlhU291cmNlCiAgICAgdm9pZCBiZWdpbkNvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KICAgICB2
b2lkIGNvbW1pdENvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KKyAgICBib29sIHNldFNob3VsZEFw
cGx5Um90YXRpb24oYm9vbCAvKiBzaG91bGRBcHBseVJvdGF0aW9uICovKSBmaW5hbDsKKwogCiAg
ICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMm
LCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmKSBmaW5hbDsKIApAQCAtMzk1LDYgKzM5NywxMiBA
QCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRh
KCkKICAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OlN0b3BQcm9kdWNpbmdEYXRhKG1faWQpLCAwKTsKIH0KIAorYm9vbCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wgc2hv
dWxkQXBwbHlSb3RhdGlvbikKK3sKKyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNldFNob3VsZEFwcGx5Um90YXRpb24obV9pZCwg
c2hvdWxkQXBwbHlSb3RhdGlvbiksIDApOworICAgIHJldHVybiB0cnVlOworfQorCiBjb25zdCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6U291cmNlOjpjYXBhYmlsaXRpZXMoKQogewogICAgIGlmICghbV9jYXBhYmlsaXRp
ZXMpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBkNzczMDI3NmYwMDA0ZjZiMmU4NDM4Mzg4YTZjYjUzMzI4YWEyZDZlLi5j
YzU0YWFhZDUwOWIyMTEwNThlNDQ0NGM1NTY1ZjQ2YTcyYjFhZWFhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTMgQEAKKzIwMTktMTItMzAgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisg
ICAgICAgIEFwcGx5IHJvdGF0aW9uIGF0IHNvdXJjZSBsZXZlbCBpZiBXZWJSVEMgc2luayBhc2sg
c28KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTY0
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2Vi
cnRjL3ZpZGVvLXJvdGF0aW9uLW5vLWN2by1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHdlYnJ0Yy92aWRlby1yb3RhdGlvbi1uby1jdm8uaHRtbDogQWRkZWQuCisKIDIwMTktMTItMjcg
IERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHTF0gQWRkIGEg
cHVyZSB2aXJ0dWFsIGJhc2UgY2xhc3MgZm9yIEdyYXBoaWNzQ29udGV4dDNECmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tcm90YXRpb24tbm8tY3ZvLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYnJ0Yy92aWRlby1yb3RhdGlvbi1uby1jdm8tZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQyOWU4YmE2MDljMjA4MzU2YmI4MTk3MzgwOWY0NmYyOGI2NTE1NTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tcm90YXRpb24tbm8tY3ZvLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKyAgCisKK1BBU1MgVGVzdGluZyB2aWRlbyBleGNo
YW5nZSB3aXRoIHJvdGF0aW9uIGFwcGxpZWQgYmVmb3JlIHRyYW5zbWlzc2lvbiAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLXJvdGF0aW9uLW5vLWN2by5odG1sIGIvTGF5
b3V0VGVzdHMvd2VicnRjL3ZpZGVvLXJvdGF0aW9uLW5vLWN2by5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0
ZDk3ZjEzNDFiNjIzNDZiODNhMGY5NGUwYzNhYWJkMDBiMjNkZTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tcm90YXRpb24tbm8tY3ZvLmh0bWwKQEAgLTAsMCAr
MSw0MiBAQAorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVDYXB0dXJlVmlkZW9JblVJ
UHJvY2Vzcz10cnVlIF0gLS0+Cis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgor
ICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgICAgIDx0aXRsZT5UZXN0aW5nIHZp
ZGVvIHJvdGF0aW9uIHdpdGhvdXQgQ1ZPPC90aXRsZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDwvaGVh
ZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHZpZGVvIGlkPSJsb2NhbFZpZGVvIiBhdXRvcGxheSBw
bGF5c0lubGluZSB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC92aWRlbz4KKyAgICAgICAgPHZp
ZGVvIGlkPSJyZW1vdGVWaWRlbyIgYXV0b3BsYXkgcGxheXNJbmxpbmUgd2lkdGg9IjMyMCIgaGVp
Z2h0PSIyNDAiPjwvdmlkZW8+CisgICAgICAgIDxzY3JpcHQgc3JjID0icm91dGluZXMuanMiPjwv
c2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7
CisgICAgY29uc3QgbG9jYWxTdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdl
dFVzZXJNZWRpYSh7IHZpZGVvOiB7IHdpZHRoOiAzMjAsIGhlaWdodDogMjQwIH0gfSk7CisgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5zZXRNb2Nr
Q2FtZXJhT3JpZW50YXRpb24oOTApOworCisgICAgbG9jYWxWaWRlby5zcmNPYmplY3QgPSBsb2Nh
bFN0cmVhbTsKKyAgICBjb25zdCByZW1vdGVTdHJlYW0gPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVz
b2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIHRyYWNrID0gbG9jYWxTdHJlYW0uZ2V0VmlkZW9U
cmFja3MoKVswXTsKKworICAgICAgICBjcmVhdGVDb25uZWN0aW9ucygoZmlyc3RDb25uZWN0aW9u
KSA9PiB7CisgICAgICAgICAgICBmaXJzdENvbm5lY3Rpb24uYWRkVHJhY2sodHJhY2ssIGxvY2Fs
U3RyZWFtKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAg
ICAgIGludGVybmFscy5hcHBseVJvdGF0aW9uRm9yT3V0Z29pbmdWaWRlb1NvdXJjZXMoZmlyc3RD
b25uZWN0aW9uKTsKKyAgICAgICAgfSwgKHNlY29uZENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAg
ICAgIHNlY29uZENvbm5lY3Rpb24ub250cmFjayA9ICh0cmFja0V2ZW50KSA9PiB7CisgICAgICAg
ICAgICAgICAgcmVzb2x2ZSh0cmFja0V2ZW50LnN0cmVhbXNbMF0pOworICAgICAgICAgICAgfTsK
KyAgICAgICAgfSk7CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVk
IG91dCIpLCA1MDAwKTsKKyAgICB9KTsKKworICAgIHJlbW90ZVZpZGVvLnNyY09iamVjdCA9IHJl
bW90ZVN0cmVhbTsKKyAgICBhd2FpdCByZW1vdGVWaWRlby5wbGF5KCk7CisgICAgYXdhaXQgd2Fp
dEZvclZpZGVvU2l6ZShyZW1vdGVWaWRlbywgMjQwLCAzMjApOworfSwgIlRlc3RpbmcgdmlkZW8g
ZXhjaGFuZ2Ugd2l0aCByb3RhdGlvbiBhcHBsaWVkIGJlZm9yZSB0cmFuc21pc3Npb24iKTsKKyAg
ICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386551</attachid>
            <date>2019-12-31 01:53:36 -0800</date>
            <delta_ts>2020-03-10 06:34:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205645-20191231105335.patch</filename>
            <type>text/plain</type>
            <size>26361</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmMzNjhiNWE1Njg4ODVm
NDM5YmFlMmQ0N2Q3NDU3ODk5ZmM3YmM1YS4uZmUzN2RiMjFlNGI2ZmIwZWJhZTVkODc2NDdmNmY5
OTkzYTE2Y2IwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE5LTEyLTMwICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBcHBseSByb3RhdGlvbiBh
dCBzb3VyY2UgbGV2ZWwgaWYgV2ViUlRDIHNpbmsgYXNrIHNvCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2NDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB2aXJ0dWFsIG1ldGhvZCB0byBSZWFs
dGltZU1lZGlhU291cmNlIHRvIHBhc3MgdGhlIGluZm9ybWF0aW9uIHRoYXQgdGhlIHNpbmsgcHJl
ZmVycyB0aGUgZnJhbWVzIHRvIGJlIHJvdGF0ZWQgYmVmb3JlIHNlbmRpbmcgdGhlbS4KKyAgICAg
ICAgQnkgZGVmYXVsdCwgdGhlIG1ldGhvZCBkb2VzIG5vdGhpbmcgYW5kIFJlYWx0aW1lT3l1dGdv
aW5nVmlkZW9Tb3VyY2Ugd2lsbCBjb250aW51ZSB0byBkbyB0aGUgcm90YXRpb24gaXRzZWxmLgor
ICAgICAgICBVcGRhdGUgSW1hZ2VSb3RhdGlvblNlc3Npb25WVCB0byBiZSBtb3JlIGVhc2lseSB1
c2FibGUgYnkgdXNlcnMgaGF2aW5nIE1lZGlhU2FtcGxlIGluc3RlYWQgb2YgQ1ZQaXhlbEJ1ZmZl
ci4KKyAgICAgICAgVXBkYXRlIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZSB0byB1c2UgdGhh
dCByb3V0aW5lOiB3aGVuZXZlciBhcHBseWluZyByb3RhdGlvbiBpcyBuZWVkZWQsCisgICAgICAg
IGl0IHdpbGwgYXNrIGl0cyB0cmFjayBzb3VyY2UgdG8gYXBwbHkgcm90YXRpb24uIElmIHRoZSB0
cmFjayBzb3VyY2UgY2Fubm90IGRvIGl0LCBpdCB3aWxsIGRvIGl0IG9uIGl0cyBvd24uCisKKyAg
ICAgICAgVGVzdDogd2VicnRjL3ZpZGVvLXJvdGF0aW9uLW5vLWN2by5odG1sCisKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3Rl
VmlkZW9TYW1wbGU6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3Rl
VmlkZW9TYW1wbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVJvdGF0
aW9uU2Vzc2lvblZULmg6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09KToKKyAgICAgICAg
KFdlYkNvcmU6Om9wZXJhdG9yIT0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0lt
YWdlUm90YXRpb25TZXNzaW9uVlQubW06CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVJvdGF0aW9u
U2Vzc2lvblZUOjpJbWFnZVJvdGF0aW9uU2Vzc2lvblZUKToKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlUm90YXRpb25TZXNzaW9uVlQ6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6SW1h
Z2VSb3RhdGlvblNlc3Npb25WVDo6cm90YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c2V0U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c2V0QXBwbHlSb3RhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OkFkZE9yVXBkYXRlU2luayk6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlLmg6CisKIDIwMTktMTItMjkgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCBidWlsZCBmaXggYWZ0ZXIgcjI1MzkzOApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA2MDkzYTQ1MTMwNGM4ODZiM2EyZTEzMTAyYjA4OTAyM2JiZDhjNmI1Li4wZDYxMzAwODk2YWIy
ZjY2ODA1YzU5YjUwNmNkOGIwMzQ4YjBkZjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisy
MDE5LTEyLTMwICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBB
cHBseSByb3RhdGlvbiBhdCBzb3VyY2UgbGV2ZWwgaWYgV2ViUlRDIHNpbmsgYXNrIHNvCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2NDUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgUmVh
bHRpbWVNZWRpYVNvdXJjZSBzZXRTaG91bGRBcHBseVJvdGF0aW9uIGJ5IHNlbmRpbmcgSVBDIHRv
IGNhcHR1cmUgcHJvY2Vzcy4KKyAgICAgICAgSW4gY2FwdHVyZSBwcm9jZXNzLCBpZiByb3RhdGlv
biBzaG91bGQgYmUgYXBwbGllZCwgdXNlIGFuIEltYWdlUm90YXRpb25TZXNzaW9uVlQgc2Vzc2lv
biB0byBhcHBseSBpdCBiZWZvcmUgc2VuZGluZyB0aGUgdmlkZW8gZnJhbWUuCisgICAgICAgIFRo
aXMgYWxsb3dzIFdlYlByb2Nlc3MgdG8gbm8gbG9uZ2VyIG5lZWQgYW4gSW1hZ2VSb3RhdGlvblNl
c3Npb25WVCBmb3IgV2ViUlRDLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eTo6c2V0U2hvdWxkQXBwbHlSb3RhdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5
Ojpyb3RhdGVQaXhlbEJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OnNldFNob3VsZEFwcGx5Um90YXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldFNob3VsZEFw
cGx5Um90YXRpb24pOgorCiAyMDE5LTEyLTI5ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5j
b20+CiAKICAgICAgICAgVHdlYWsgdGhlIGZvcm1hdCBhbmQgY29tbWVudCBpbiB0aGUgY29kZSB0
byBzdXBwb3J0IG1lZGlhIGluIEdQVSBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJh
Y2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAppbmRleCBkMjU0YjM5MDhiOGY2NjMz
NjI1N2Q1MzlmMjhkZWEyMWQ5NWUxZDMyLi4xNjczYjYxNTk2NDE1NDcwMTkwNTBiZDNlOWEyNTJk
OTdkOGE3NWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25u
ZWN0aW9uQmFja2VuZC5jcHAKQEAgLTUxMCw3ICs1MTAsNyBAQCB2b2lkIExpYldlYlJUQ1BlZXJD
b25uZWN0aW9uQmFja2VuZDo6YXBwbHlSb3RhdGlvbkZvck91dGdvaW5nVmlkZW9Tb3VyY2VzKCkK
ICAgICBmb3IgKGF1dG8mIHRyYW5zY2VpdmVyIDogbV9wZWVyQ29ubmVjdGlvbi5jdXJyZW50VHJh
bnNjZWl2ZXJzKCkpIHsKICAgICAgICAgaWYgKCF0cmFuc2NlaXZlci0+c2VuZGVyKCkuaXNTdG9w
cGVkKCkpIHsKICAgICAgICAgICAgIGlmIChhdXRvKiB2aWRlb1NvdXJjZSA9IGJhY2tlbmRGcm9t
UlRQU2VuZGVyKHRyYW5zY2VpdmVyLT5zZW5kZXIoKSkudmlkZW9Tb3VyY2UoKSkKLSAgICAgICAg
ICAgICAgICB2aWRlb1NvdXJjZS0+c2V0QXBwbHlSb3RhdGlvbih0cnVlKTsKKyAgICAgICAgICAg
ICAgICB2aWRlb1NvdXJjZS0+YXBwbHlSb3RhdGlvbigpOwogICAgICAgICB9CiAgICAgfQogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGYwNGJmMzE5ZWE0OWE4M2FkNDE3ZmMyZTI5YTFhNWM0OGE4NjQ2NzAuLjZiYTgwOWRkZWRk
MGRjY2EzZGM0YmE3NWRhNWE3YjIxN2ZjNGZkYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQwNDMsNyArNDA0Myw3IEBACiAJ
CUNEMUU3MzQ3MTY3QkM3OEUwMDlBODg1RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDFFNzM0NjE2
N0JDNzhFMDA5QTg4NUQgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwICovOyB9OwogCQlD
RDIyNUMwQjFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjI1QzA5MUM0NkZCRjQw
MDE0MDc2MSAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLm1tICovOyB9OwogCQlDRDIyNUMwQzFDNDZG
QkY0MDAxNDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyMjVDMEExQzQ2RkJGNDAwMTQwNzYxIC8qIFdl
YkNvcmVOU1VSTFNlc3Npb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwotCQlDRDI3QUU1MDIyQTk4Njg3MDA5NDdGRjkgLyogSW1hZ2VSb3RhdGlvblNl
c3Npb25WVC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0QyN0FFNEUyMkE5ODY4NzAwOTQ3RkY5IC8qIEltYWdlUm90YXRpb25TZXNzaW9uVlQuaCAqLzsg
fTsKKwkJQ0QyN0FFNTAyMkE5ODY4NzAwOTQ3RkY5IC8qIEltYWdlUm90YXRpb25TZXNzaW9uVlQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjdBRTRF
MjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFnZVJvdGF0aW9uU2Vzc2lvblZULmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QyN0FFNTEyMkE5ODY4NzAw
OTQ3RkY5IC8qIEltYWdlUm90YXRpb25TZXNzaW9uVlQubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDI3QUU0RjIyQTk4Njg3MDA5NDdGRjkgLyogSW1h
Z2VSb3RhdGlvblNlc3Npb25WVC5tbSAqLzsgfTsKIAkJQ0QyRjRBMjQxOEQ4OUY3MDAwNjM3NDZE
IC8qIEF1ZGlvSGFyZHdhcmVMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0QyRjRBMjIxOEQ4OUY3MDAwNjM3NDZEIC8qIEF1ZGlvSGFyZHdh
cmVMaXN0ZW5lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUNEMkY0QTI4MThEOEEzNDkwMDYzNzQ2RCAvKiBBdWRpb0hhcmR3YXJlTGlzdGVuZXJN
YWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMkY0
QTI2MThEOEEzNDkwMDYzNzQ2RCAvKiBBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuaCAqLzsgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVv
U2FtcGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVv
U2FtcGxlLmNwcAppbmRleCA5M2M5MzA1ZjQyMTAyZDcyNmU3NDFlNTlmMjI2YjVlZTQ2ODljMTJh
Li45MjY0NjIyMDA0ODAwNjVhY2FiOTFiNGJjYTkzM2Y5MGI1ZmU5NGI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuY3Bw
CkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBQ
QUw7CiAKICNpZiBIQVZFKElPU1VSRkFDRSkKLXN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1Nh
bXBsZT4gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShNZWRpYVNhbXBsZSYmIHNhbXBsZSkKK3N0
ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0
ZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogewogICAgIEFTU0VSVChzYW1wbGUucGxhdGZvcm1TYW1w
bGUoKS50eXBlID09IFBsYXRmb3JtU2FtcGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGUpOwogCkBAIC02
MSw2ICs2MSwxNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+IFJlbW90ZVZp
ZGVvU2FtcGxlOjpjcmVhdGUoTWVkaWFTYW1wbGUmJiBzYW1wbAogICAgIHJldHVybiBzdGQ6OnVu
aXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+KG5ldyBSZW1vdGVWaWRlb1NhbXBsZShzdXJmYWNl
LCBzUkdCQ29sb3JTcGFjZVJlZigpLCBzYW1wbGUucHJlc2VudGF0aW9uVGltZSgpLCBzYW1wbGUu
dmlkZW9Sb3RhdGlvbigpLCBzYW1wbGUudmlkZW9NaXJyb3JlZCgpKSk7CiB9CiAKK3N0ZDo6dW5p
cXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShDVlBp
eGVsQnVmZmVyUmVmIGltYWdlQnVmZmVyLCBNZWRpYVRpbWUmJiBwcmVzZW50YXRpb25UaW1lKQor
eworICAgIGF1dG8gc3VyZmFjZSA9IENWUGl4ZWxCdWZmZXJHZXRJT1N1cmZhY2UoaW1hZ2VCdWZm
ZXIpOworICAgIGlmICghc3VyZmFjZSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRp
YSwgIlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGU6IENWUGl4ZWxCdWZmZXJHZXRJT1N1cmZhY2Ug
cmV0dXJuZWQgbnVsbHB0ciIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAg
ICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPihuZXcgUmVtb3RlVmlk
ZW9TYW1wbGUoc3VyZmFjZSwgc1JHQkNvbG9yU3BhY2VSZWYoKSwgV1RGTW92ZShwcmVzZW50YXRp
b25UaW1lKSwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUsIGZhbHNlKSk7Cit9CisK
IFJlbW90ZVZpZGVvU2FtcGxlOjpSZW1vdGVWaWRlb1NhbXBsZShJT1N1cmZhY2VSZWYgc3VyZmFj
ZSwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UsIE1lZGlhVGltZSYmIHRpbWUsIE1lZGlhU2Ft
cGxlOjpWaWRlb1JvdGF0aW9uIHJvdGF0aW9uLCBib29sIG1pcnJvcmVkKQogICAgIDogbV9pb1N1
cmZhY2UoV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVGcm9tU3VyZmFjZShzdXJmYWNlLCBjb2xv
clNwYWNlKSkKICAgICAsIG1fcm90YXRpb24ocm90YXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaAppbmRleCBmMDJkNGZj
YjRhYjkzZDY2YzEzZGEwNDhiMjRhMjgwZDE3M2Y2ZThlLi4yNzVkNDU3YWUwZTg4YzYxMjkzNzU2
ZTUyMDRmZWRmNDJjNGIyMGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRl
ICJJT1N1cmZhY2UuaCIKICNlbmRpZgogCit0eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVyKiBDVlBp
eGVsQnVmZmVyUmVmOworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbW90ZVZpZGVv
U2FtcGxlIHsKQEAgLTQ2LDcgKzQ4LDggQEAgcHVibGljOgogICAgIH5SZW1vdGVWaWRlb1NhbXBs
ZSgpID0gZGVmYXVsdDsKIAogI2lmIEhBVkUoSU9TVVJGQUNFKQotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+IGNyZWF0ZShNZWRpYVNh
bXBsZSYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90
ZVZpZGVvU2FtcGxlPiBjcmVhdGUoTWVkaWFTYW1wbGUmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBjcmVhdGUoQ1ZQaXhlbEJ1
ZmZlclJlZiwgTWVkaWFUaW1lJiYgcHJlc2VudGF0aW9uVGltZSk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgSU9TdXJmYWNlUmVmIHN1cmZhY2UoKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZU
LmgKaW5kZXggNjAwMWJiNzBhMTAwNDE3NDQxMDkyMTM2ZjNmZTViNjE3NjJjYjBjZi4uNzNmNjYy
MDUyMDhiMjJhZjgxZTRkYTE0NTMyYjM5MDMzY2Q5ZGYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlUm90YXRpb25TZXNzaW9u
VlQuaApAQCAtMzYsNiArMzYsOCBAQCB0eXBlZGVmIHN0cnVjdCBfX0NWUGl4ZWxCdWZmZXJQb29s
KiBDVlBpeGVsQnVmZmVyUG9vbFJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBN
ZWRpYVNhbXBsZTsKKwogY2xhc3MgSW1hZ2VSb3RhdGlvblNlc3Npb25WVCBmaW5hbCB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC01Myw3ICs1NSw4IEBAIHB1Ymxp
YzoKICAgICB9OwogCiAgICAgSW1hZ2VSb3RhdGlvblNlc3Npb25WVChBZmZpbmVUcmFuc2Zvcm0m
JiwgRmxvYXRTaXplLCBPU1R5cGUgcGl4ZWxGb3JtYXQsIElzQ0dJbWFnZUNvbXBhdGlibGUpOwot
ICAgIEltYWdlUm90YXRpb25TZXNzaW9uVlQoUm90YXRpb25Qcm9wZXJ0aWVzJiYsIEZsb2F0U2l6
ZSwgT1NUeXBlIHBpeGVsRm9ybWF0LCBJc0NHSW1hZ2VDb21wYXRpYmxlKTsKKyAgICBJbWFnZVJv
dGF0aW9uU2Vzc2lvblZUKGNvbnN0IFJvdGF0aW9uUHJvcGVydGllcyYsIEZsb2F0U2l6ZSwgT1NU
eXBlIHBpeGVsRm9ybWF0LCBJc0NHSW1hZ2VDb21wYXRpYmxlKTsKKyAgICBJbWFnZVJvdGF0aW9u
U2Vzc2lvblZUKCkgPSBkZWZhdWx0OwogCiAgICAgY29uc3QgT3B0aW9uYWw8QWZmaW5lVHJhbnNm
b3JtPiYgdHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm07IH0KICAgICBjb25z
dCBSb3RhdGlvblByb3BlcnRpZXMmIHJvdGF0aW9uUHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJu
IG1fcm90YXRpb25Qcm9wZXJ0aWVzOyB9CkBAIC02MSw4ICs2NCwxMyBAQCBwdWJsaWM6CiAgICAg
Y29uc3QgRmxvYXRTaXplJiByb3RhdGVkU2l6ZSgpIHsgcmV0dXJuIG1fcm90YXRlZFNpemU7IH0K
IAogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiByb3RhdGUoQ1ZQaXhlbEJ1ZmZlclJl
Zik7CisgICAgV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHJvdGF0
ZShNZWRpYVNhbXBsZSYsIGNvbnN0IFJvdGF0aW9uUHJvcGVydGllcyYsIElzQ0dJbWFnZUNvbXBh
dGlibGUpOworCisgICAgYm9vbCBpc01hdGNoaW5nKE1lZGlhU2FtcGxlJiwgY29uc3QgUm90YXRp
b25Qcm9wZXJ0aWVzJik7CiAKIHByaXZhdGU6CisgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IFJv
dGF0aW9uUHJvcGVydGllcyYsIEZsb2F0U2l6ZSwgT1NUeXBlIHBpeGVsRm9ybWF0LCBJc0NHSW1h
Z2VDb21wYXRpYmxlKTsKKwogICAgIE9wdGlvbmFsPEFmZmluZVRyYW5zZm9ybT4gbV90cmFuc2Zv
cm07CiAgICAgUm90YXRpb25Qcm9wZXJ0aWVzIG1fcm90YXRpb25Qcm9wZXJ0aWVzOwogICAgIEZs
b2F0U2l6ZSBtX3NpemU7CkBAIC03MSw2ICs3OSwxNiBAQCBwcml2YXRlOgogICAgIFJldGFpblB0
cjxDVlBpeGVsQnVmZmVyUG9vbFJlZj4gbV9yb3RhdGlvblBvb2w7CiB9OwogCitpbmxpbmUgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IEltYWdlUm90YXRpb25TZXNzaW9uVlQ6OlJvdGF0aW9uUHJvcGVy
dGllcyYgcm90YXRpb24xLCBjb25zdCBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpSb3RhdGlvblBy
b3BlcnRpZXMmIHJvdGF0aW9uMikKK3sKKyAgICByZXR1cm4gcm90YXRpb24xLmZsaXBYID09IHJv
dGF0aW9uMi5mbGlwWCAmJiByb3RhdGlvbjEuZmxpcFkgPT0gcm90YXRpb24yLmZsaXBZICYmIHJv
dGF0aW9uMS5hbmdsZSA9PSByb3RhdGlvbjIuYW5nbGU7Cit9CisKK2lubGluZSBib29sIG9wZXJh
dG9yIT0oY29uc3QgSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6Um90YXRpb25Qcm9wZXJ0aWVzJiBy
b3RhdGlvbjEsIGNvbnN0IEltYWdlUm90YXRpb25TZXNzaW9uVlQ6OlJvdGF0aW9uUHJvcGVydGll
cyYgcm90YXRpb24yKQoreworICAgIHJldHVybiAhKHJvdGF0aW9uMSA9PSByb3RhdGlvbjIpOwor
fQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L0ltYWdlUm90YXRpb25TZXNzaW9uVlQubW0KaW5kZXggODhhNWRiNTk1
NmVlOGI5NWYxMDhlNDY1NmZjNTdjMWM3ZTBmOWJkNy4uNDdkYmVjZGYzOTJiNDMyNDVmZGM1NjU2
NTY1ODI5OGZmZTAxMGQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULm1tCkBAIC0yNyw2ICsy
Nyw3IEBACiAjaW5jbHVkZSAiSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oIgogCiAjaW5jbHVkZSAi
QWZmaW5lVHJhbnNmb3JtLmgiCisjaW5jbHVkZSAiTWVkaWFTYW1wbGUuaCIKIAogI2luY2x1ZGUg
IkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAjaW5jbHVkZSAiVmlkZW9Ub29sYm94U29mdExpbmsuaCIK
QEAgLTY0LDExICs2NSwxNiBAQCBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpJbWFnZVJvdGF0aW9u
U2Vzc2lvblZUKEFmZmluZVRyYW5zZm9ybSYmIHRyYW5zZm9ybSwgRmxvYQogICAgIG1fdHJhbnNm
b3JtID0gV1RGTW92ZSh0cmFuc2Zvcm0pOwogfQogCitJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpJ
bWFnZVJvdGF0aW9uU2Vzc2lvblZUKGNvbnN0IFJvdGF0aW9uUHJvcGVydGllcyYgcm90YXRpb24s
IEZsb2F0U2l6ZSBzaXplLCBPU1R5cGUgcGl4ZWxGb3JtYXQsIElzQ0dJbWFnZUNvbXBhdGlibGUg
Y3ZJbWFnZUNvbXBhdGliaWxpdHkpCit7CisgICAgaW5pdGlhbGl6ZShyb3RhdGlvbiwgc2l6ZSwg
cGl4ZWxGb3JtYXQsIGN2SW1hZ2VDb21wYXRpYmlsaXR5KTsKK30KIAotSW1hZ2VSb3RhdGlvblNl
c3Npb25WVDo6SW1hZ2VSb3RhdGlvblNlc3Npb25WVChSb3RhdGlvblByb3BlcnRpZXMmJiByb3Rh
dGlvbiwgRmxvYXRTaXplIHNpemUsIE9TVHlwZSBwaXhlbEZvcm1hdCwgSXNDR0ltYWdlQ29tcGF0
aWJsZSBjdkltYWdlQ29tcGF0aWJpbGl0eSkKLSAgICA6IG1fcm90YXRpb25Qcm9wZXJ0aWVzKFdU
Rk1vdmUocm90YXRpb24pKQotICAgICwgbV9zaXplKHNpemUpCit2b2lkIEltYWdlUm90YXRpb25T
ZXNzaW9uVlQ6OmluaXRpYWxpemUoY29uc3QgUm90YXRpb25Qcm9wZXJ0aWVzJiByb3RhdGlvbiwg
RmxvYXRTaXplIHNpemUsIE9TVHlwZSBwaXhlbEZvcm1hdCwgSXNDR0ltYWdlQ29tcGF0aWJsZSBj
dkltYWdlQ29tcGF0aWJpbGl0eSkKIHsKKyAgICBtX3JvdGF0aW9uUHJvcGVydGllcyA9IHJvdGF0
aW9uOworICAgIG1fc2l6ZSA9IHNpemU7CisKICAgICBpZiAobV9yb3RhdGlvblByb3BlcnRpZXMu
YW5nbGUgPT0gOTAgfHwgbV9yb3RhdGlvblByb3BlcnRpZXMuYW5nbGUgPT0gMjcwKQogICAgICAg
ICBzaXplID0gc2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOwogCkBAIC04OSw2ICs5NSw3IEBAIEltYWdl
Um90YXRpb25TZXNzaW9uVlQ6OkltYWdlUm90YXRpb25TZXNzaW9uVlQoUm90YXRpb25Qcm9wZXJ0
aWVzJiYgcm90YXRpb24sIEZsCiAgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVs
QnVmZmVySGVpZ2h0S2V5OiBAKG1fcm90YXRlZFNpemUuaGVpZ2h0KCkpLAogICAgICAgICAoX19i
cmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleTogQChwaXhl
bEZvcm1hdCksCiAgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyQ0dJ
bWFnZUNvbXBhdGliaWxpdHlLZXk6IChjdkltYWdlQ29tcGF0aWJpbGl0eSA9PSBJc0NHSW1hZ2VD
b21wYXRpYmxlOjpZZXMgPyBAWUVTIDogQE5PKSwKKyAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5n
ICopa0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VQcm9wZXJ0aWVzS2V5IDogQHsgfQogICAgIH07CiAg
ICAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcmF3UG9vbCA9IG51bGxwdHI7CiAgICAgaWYgKGF1dG8g
ZXJyID0gQ1ZQaXhlbEJ1ZmZlclBvb2xDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0
ciwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilwaXhlbEF0dHJpYnV0ZXMsICZyYXdQb29sKTsg
ZXJyICE9IG5vRXJyKQpAQCAtMTA2LDYgKzExMywyMCBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4gSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6cm90YXRlKENWUGl4ZWxCdWZmZXJSZWYgcGl4
ZQogICAgIHJldHVybiBudWxscHRyOwogfQogCitSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4g
SW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6cm90YXRlKE1lZGlhU2FtcGxlJiBzYW1wbGUsIGNvbnN0
IFJvdGF0aW9uUHJvcGVydGllcyYgcm90YXRpb24sIElzQ0dJbWFnZUNvbXBhdGlibGUgY3ZJbWFn
ZUNvbXBhdGliaWxpdHkpCit7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENW
UGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRm
b3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKSk7CisgICAgQVNTRVJUKHBpeGVsQnVm
ZmVyKTsKKyAgICBpZiAoIXBpeGVsQnVmZmVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwor
ICAgIEludFNpemUgc2l6ZSB7IChpbnQpQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKHBpeGVsQnVmZmVy
KSwgKGludClDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KHBpeGVsQnVmZmVyKSB9OworICAgIGlmIChy
b3RhdGlvbiAhPSBtX3JvdGF0aW9uUHJvcGVydGllcyB8fCBtX3NpemUgIT0gc2l6ZSkKKyAgICAg
ICAgaW5pdGlhbGl6ZShyb3RhdGlvbiwgc2l6ZSwgQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0
VHlwZShwaXhlbEJ1ZmZlciksIGN2SW1hZ2VDb21wYXRpYmlsaXR5KTsKKworICAgIHJldHVybiBy
b3RhdGUocGl4ZWxCdWZmZXIpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmlu
ZGV4IDA0YjAyM2NmNmFjZjk5NTM5NzA0MTM3MGEwYTY1NmI2MjIxMjc3OWUuLmI4MDllNWM4Yjcw
YTBkNjkxOGFlZjJkMzk5M2E3ZTljNjIxMDAwMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTE5
Niw2ICsxOTYsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGF5U2FtcGxlcyhTZWNv
bmRzKSB7IH07CiAgICAgdm9pZCBzZXRJbnRlcnJ1cHRlZEZvclRlc3RpbmcoYm9vbCk7CiAKKyAg
ICB2aXJ0dWFsIGJvb2wgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sIC8qIHNob3VsZEFwcGx5
Um90YXRpb24gKi8pIHsgcmV0dXJuIGZhbHNlOyB9CisKIHByb3RlY3RlZDoKICAgICBSZWFsdGlt
ZU1lZGlhU291cmNlKFR5cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlEID0geyB9
LCBTdHJpbmcmJiBoYXNoU2FsdCA9IHsgfSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9T
b3VyY2UuY3BwCmluZGV4IGI4NTljZDg4MGNhZjYyNmUyNmQxNWZlMDZiNzdhNTM5YjNlMDUxMDYu
LjRkYjA0ZDE2ZDgxZjc4OTRlODMzZTgyM2ZlNjM5ODRkYjJlNmY0ZDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcApAQCAtODAsNiArODAsMjEgQEAgdm9pZCBSZWFsdGlt
ZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnNldFNvdXJjZShSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU+JiYgbmV3U28KIHsKICAgICBBU1NFUlQoIW1fdmlkZW9Tb3VyY2UtPmhhc09ic2VydmVyKCp0
aGlzKSk7CiAgICAgbV92aWRlb1NvdXJjZSA9IFdURk1vdmUobmV3U291cmNlKTsKKworICAgIGlm
ICghbV9hcmVTaW5rc0Fza2luZ1RvQXBwbHlSb3RhdGlvbikKKyAgICAgICAgcmV0dXJuOworICAg
IGlmICghbV92aWRlb1NvdXJjZS0+c291cmNlKCkuc2V0U2hvdWxkQXBwbHlSb3RhdGlvbih0cnVl
KSkKKyAgICAgICAgbV9zaG91bGRBcHBseVJvdGF0aW9uID0gdHJ1ZTsKK30KKwordm9pZCBSZWFs
dGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OmFwcGx5Um90YXRpb24oKQoreworICAgIGlmIChtX2Fy
ZVNpbmtzQXNraW5nVG9BcHBseVJvdGF0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Fy
ZVNpbmtzQXNraW5nVG9BcHBseVJvdGF0aW9uID0gdHJ1ZTsKKyAgICBpZiAoIW1fdmlkZW9Tb3Vy
Y2UtPnNvdXJjZSgpLnNldFNob3VsZEFwcGx5Um90YXRpb24odHJ1ZSkpCisgICAgICAgIG1fc2hv
dWxkQXBwbHlSb3RhdGlvbiA9IHRydWU7CiB9CiAKIHZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlOjpzdG9wKCkKQEAgLTEzNSw3ICsxNTAsNyBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdW
aWRlb1NvdXJjZTo6QWRkT3JVcGRhdGVTaW5rKHJ0Yzo6VmlkZW9TaW5rSW50ZXJmYWNlPHdlYnJ0
YwogICAgIEFTU0VSVCghc2lua1dhbnRzLmJsYWNrX2ZyYW1lcyk7CiAKICAgICBpZiAoc2lua1dh
bnRzLnJvdGF0aW9uX2FwcGxpZWQpCi0gICAgICAgIG1fc2hvdWxkQXBwbHlSb3RhdGlvbiA9IHRy
dWU7CisgICAgICAgIGFwcGx5Um90YXRpb24oKTsKIAogICAgIGF1dG8gbG9ja2VyID0gaG9sZExv
Y2sobV9zaW5rc0xvY2spOwogICAgIG1fc2lua3MuYWRkKHNpbmspOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2UuaAppbmRleCBlMmE0OGQwODI3N2NlMzEwZjY3YjAwMDhhZTAwZWY4MTg2
MGQ5OGU2Li5hNjY1NmNlZjkxMjhhNGIwZjYzYzU0YmNjZTdhMjYzYzgxYTdlODk5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaApAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBydGM6OlJlZkNvdW50UmVsZWFzZVN0YXR1czo6a090aGVyUmVmc1JlbWFp
bmVkOwogICAgIH0KIAotICAgIHZvaWQgc2V0QXBwbHlSb3RhdGlvbihib29sIHNob3VsZEFwcGx5
Um90YXRpb24pIHsgbV9zaG91bGRBcHBseVJvdGF0aW9uID0gc2hvdWxkQXBwbHlSb3RhdGlvbjsg
fQorICAgIHZvaWQgYXBwbHlSb3RhdGlvbigpOwogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQg
UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4m
Jik7CkBAIC0xMzQsNiArMTM0LDcgQEAgcHJpdmF0ZToKIAogICAgIG11dGFibGUgUmVjdXJzaXZl
TG9jayBtX3NpbmtzTG9jazsKICAgICBIYXNoU2V0PHJ0Yzo6VmlkZW9TaW5rSW50ZXJmYWNlPHdl
YnJ0Yzo6VmlkZW9GcmFtZT4qPiBtX3NpbmtzOworICAgIGJvb2wgbV9hcmVTaW5rc0Fza2luZ1Rv
QXBwbHlSb3RhdGlvbiB7IGZhbHNlIH07CiAKICAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsK
ICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApp
bmRleCBmOWIzNWQ0NTEzMzYwZmU5Njg5MDVhMTZmZWQyYzVkNzU3ZGM4ZjFkLi4wNGI0M2Q3MzM4
MzAwMjgwOWE1N2I5ZGEwZGZmOGMxYzgzMjI4ZDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5n
QnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRl
b1NhbXBsZS5oPgpAQCAtODYsNiArODcsOCBAQCBwdWJsaWM6CiAgICAgICAgIG1fc291cmNlLT5y
ZXF1ZXN0VG9FbmQoKnRoaXMpOwogICAgIH0KIAorICAgIHZvaWQgc2V0U2hvdWxkQXBwbHlSb3Rh
dGlvbihib29sIHNob3VsZEFwcGx5Um90YXRpb24pIHsgbV9zaG91bGRBcHBseVJvdGF0aW9uID0g
dHJ1ZTsgfQorCiBwcml2YXRlOgogICAgIHZvaWQgc291cmNlU3RvcHBlZCgpIGZpbmFsIHsKICAg
ICAgICAgaWYgKG1fc291cmNlLT5jYXB0dXJlRGlkRmFpbCgpKSB7CkBAIC0xMjUsNyArMTI4LDEy
IEBAIHByaXZhdGU6CiAgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYg
c2FtcGxlKSBmaW5hbAogICAgIHsKICNpZiBIQVZFKElPU1VSRkFDRSkKLSAgICAgICAgYXV0byBy
ZW1vdGVTYW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKFdURk1vdmUoc2FtcGxlKSk7
CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gcmVtb3RlU2FtcGxl
OworICAgICAgICBpZiAobV9zaG91bGRBcHBseVJvdGF0aW9uICYmIHNhbXBsZS52aWRlb1JvdGF0
aW9uKCkgIT0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUpIHsKKyAgICAgICAgICAg
IGF1dG8gcGl4ZWxCdWZmZXIgPSByb3RhdGVQaXhlbEJ1ZmZlcihzYW1wbGUpOworICAgICAgICAg
ICAgcmVtb3RlU2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShwaXhlbEJ1ZmZlci5n
ZXQoKSwgc2FtcGxlLnByZXNlbnRhdGlvblRpbWUoKSk7CisgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgcmVtb3RlU2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShzYW1wbGUpOwog
ICAgICAgICBpZiAocmVtb3RlU2FtcGxlKQogICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5k
KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6UmVtb3RlVmlkZW9TYW1wbGVBdmFp
bGFibGUobV9pZCwgV1RGTW92ZSgqcmVtb3RlU2FtcGxlKSksIDApOwogI2Vsc2UKQEAgLTEzMyw2
ICsxNDEsMzAgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIH0KIAorICAgIFJldGFpblB0cjxDVlBp
eGVsQnVmZmVyUmVmPiByb3RhdGVQaXhlbEJ1ZmZlcihNZWRpYVNhbXBsZSYgc2FtcGxlKQorICAg
IHsKKyAgICAgICAgaWYgKCFtX3JvdGF0aW9uU2Vzc2lvbikKKyAgICAgICAgICAgIG1fcm90YXRp
b25TZXNzaW9uID0gbWFrZVVuaXF1ZTxJbWFnZVJvdGF0aW9uU2Vzc2lvblZUPigpOworCisgICAg
ICAgIEltYWdlUm90YXRpb25TZXNzaW9uVlQ6OlJvdGF0aW9uUHJvcGVydGllcyByb3RhdGlvbjsK
KyAgICAgICAgc3dpdGNoIChzYW1wbGUudmlkZW9Sb3RhdGlvbigpKSB7CisgICAgICAgIGNhc2Ug
TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmU6CisgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJvdGF0aW9uLmFuZ2xlID0gMDsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpVcHNpZGVE
b3duOgorICAgICAgICAgICAgcm90YXRpb24uYW5nbGUgPSAxODA7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQ6CisgICAg
ICAgICAgICByb3RhdGlvbi5hbmdsZSA9IDkwOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OkxlZnQ6CisgICAgICAgICAgICByb3Rh
dGlvbi5hbmdsZSA9IDI3MDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAg
IHJldHVybiBtX3JvdGF0aW9uU2Vzc2lvbi0+cm90YXRlKHNhbXBsZSwgcm90YXRpb24sIEltYWdl
Um90YXRpb25TZXNzaW9uVlQ6OklzQ0dJbWFnZUNvbXBhdGlibGU6Ok5vKTsKKyAgICB9CisKICAg
ICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSkgZmluYWwgewogICAg
ICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CiAgICAgICAgIGlmIChzdG9yYWdlKQpA
QCAtMTUzLDYgKzE4NSw4IEBAIHByaXZhdGU6CiAgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
IG1fZGVzY3JpcHRpb24geyB9OwogICAgIGludDY0X3QgbV9udW1iZXJPZkZyYW1lcyB7IDAgfTsK
ICAgICBib29sIG1faXNFbmRlZCB7IGZhbHNlIH07CisgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdl
Um90YXRpb25TZXNzaW9uVlQ+IG1fcm90YXRpb25TZXNzaW9uOworICAgIGJvb2wgbV9zaG91bGRB
cHBseVJvdGF0aW9uIHsgZmFsc2UgfTsKIH07CiAKIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoVW5pcXVlUmVmPENvbm5lY3Rpb25Qcm94
eT4mJiBjb25uZWN0aW9uUHJveHkpCkBAIC0yNjcsNiArMzAxLDEyIEBAIHZvaWQgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6cmVxdWVzdFRvRW5kKHVpbnQ2NF90IHNvdXJjZUlEKQogICAg
ICAgICBwcm94eS0+cmVxdWVzdFRvRW5kKCk7CiB9CiAKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6c2V0U2hvdWxkQXBwbHlSb3RhdGlvbih1aW50NjRfdCBzb3VyY2VJRCwgYm9v
bCBzaG91bGRBcHBseVJvdGF0aW9uKQoreworICAgIGlmIChhdXRvKiBwcm94eSA9IG1fcHJveGll
cy5nZXQoc291cmNlSUQpKQorICAgICAgICBwcm94eS0+c2V0U2hvdWxkQXBwbHlSb3RhdGlvbihz
aG91bGRBcHBseVJvdGF0aW9uKTsKK30KKwogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpjbGVhcigpCiB7CiAgICAgbV9wcm94aWVzLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmgKaW5kZXggNDJlOGM5YzU4ZDc1MmJhODU4ODM1MzIzNjdlOTc0YWQyZDAzZjc5NC4uZTAx
YmQyMzM5NzExMmVmYjhjMmQ1ZTU4OTY0MmU2Nzc5YTdmZTJmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuaApAQCAtNzMsNiArNzMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYXBwbHlDb25zdHJh
aW50cyh1aW50NjRfdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYpOwogICAgIHZv
aWQgY2xvbmUodWludDY0X3QgY2xvbmVkSUQsIHVpbnQ2NF90IGNsb25lSUQpOwogICAgIHZvaWQg
cmVxdWVzdFRvRW5kKHVpbnQ2NF90KTsKKyAgICB2b2lkIHNldFNob3VsZEFwcGx5Um90YXRpb24o
dWludDY0X3Qgc291cmNlSUQsIGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbik7CiAKICAgICBjbGFz
cyBTb3VyY2VQcm94eTsKICAgICBmcmllbmQgY2xhc3MgU291cmNlUHJveHk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCAzMmY3MjdjM2Y4M2ExYjIzMDEy
ZTQyMjBiYzlmZjA0M2I2NjlmNGI4Li5kMDhiMTgwMDQyOTI4OTc4YmFjZWQxNDc4NzE5OTMyMDdj
OTE3MGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAg
LTMzLDYgKzMzLDcgQEAgbWVzc2FnZXMgLT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBO
b3RSZWZDb3VudGVkIHsKICAgICBBcHBseUNvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBzdHJ1Y3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cykKICAgICBDbG9uZSh1aW50NjRf
dCBjbG9uZWRJRCwgdWludDY0X3QgY2xvbmVJRCkKICAgICBSZXF1ZXN0VG9FbmQodWludDY0X3Qg
c291cmNlSUQpCisgICAgU2V0U2hvdWxkQXBwbHlSb3RhdGlvbih1aW50NjRfdCBzb3VyY2VJRCwg
Ym9vbCBzaG91bGRBcHBseVJvdGF0aW9uKQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3Bw
CmluZGV4IDliMGVlYjRlMzI1YmE5NWFhMWYzYjQwZWUwZDc0ZGVkNDdjNzI5YzguLjE5MmFhY2Y1
Y2M1YzY0MWJlZTZiYjIxM2ExNjVkNTkwNThiMWU0ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApA
QCAtMjI3LDYgKzIyNyw4IEBAIHByaXZhdGU6CiAgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZQog
ICAgIHZvaWQgYmVnaW5Db25maWd1cmF0aW9uKCkgZmluYWwgeyB9CiAgICAgdm9pZCBjb21taXRD
b25maWd1cmF0aW9uKCkgZmluYWwgeyB9CisgICAgYm9vbCBzZXRTaG91bGRBcHBseVJvdGF0aW9u
KGJvb2wgLyogc2hvdWxkQXBwbHlSb3RhdGlvbiAqLykgZmluYWw7CisKIAogICAgIHZvaWQgYXBw
bHlDb25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgQXBwbHlDb25z
dHJhaW50c0hhbmRsZXImJikgZmluYWw7CiAKQEAgLTM5NSw2ICszOTcsMTIgQEAgdm9pZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSgpCiAgICAgY29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpT
dG9wUHJvZHVjaW5nRGF0YShtX2lkKSwgMCk7CiB9CiAKK2Jvb2wgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OlNvdXJjZTo6c2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sIHNob3VsZEFwcGx5Um90
YXRpb24pCit7CisgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpTZXRTaG91bGRBcHBseVJvdGF0aW9uKG1faWQsIHNob3VsZEFwcGx5
Um90YXRpb24pLCAwKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogY29uc3QgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNv
dXJjZTo6Y2FwYWJpbGl0aWVzKCkKIHsKICAgICBpZiAoIW1fY2FwYWJpbGl0aWVzKSB7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggZDc3MzAyNzZmMDAwNGY2YjJlODQzODM4OGE2Y2I1MzMyOGFhMmQ2ZS4uY2M1NGFhYWQ1MDli
MjExMDU4ZTQ0NDRjNTU2NWY0NmE3MmIxYWVhYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE5
LTEyLTMwICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBcHBs
eSByb3RhdGlvbiBhdCBzb3VyY2UgbGV2ZWwgaWYgV2ViUlRDIHNpbmsgYXNrIHNvCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2NDUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYnJ0Yy92aWRlby1y
b3RhdGlvbi1uby1jdm8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJydGMvdmlk
ZW8tcm90YXRpb24tbm8tY3ZvLmh0bWw6IEFkZGVkLgorCiAyMDE5LTEyLTI3ICBEZWFuIEphY2tz
b24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR0xdIEFkZCBhIHB1cmUgdmlydHVh
bCBiYXNlIGNsYXNzIGZvciBHcmFwaGljc0NvbnRleHQzRApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2VicnRjL3ZpZGVvLXJvdGF0aW9uLW5vLWN2by1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy93ZWJydGMvdmlkZW8tcm90YXRpb24tbm8tY3ZvLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
MjllOGJhNjA5YzIwODM1NmJiODE5NzM4MDlmNDZmMjhiNjUxNTU3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLXJvdGF0aW9uLW5vLWN2by1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw0IEBACisgIAorCitQQVNTIFRlc3RpbmcgdmlkZW8gZXhjaGFuZ2Ugd2l0aCBy
b3RhdGlvbiBhcHBsaWVkIGJlZm9yZSB0cmFuc21pc3Npb24gCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYnJ0Yy92aWRlby1yb3RhdGlvbi1uby1jdm8uaHRtbCBiL0xheW91dFRlc3RzL3dl
YnJ0Yy92aWRlby1yb3RhdGlvbi1uby1jdm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNGQ5N2YxMzQxYjYy
MzQ2YjgzYTBmOTRlMGMzYWFiZDAwYjIzZGU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2VicnRjL3ZpZGVvLXJvdGF0aW9uLW5vLWN2by5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3M9dHJ1
ZSBdIC0tPgorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorICAgICAgICA8dGl0bGU+VGVzdGluZyB2aWRlbyByb3RhdGlv
biB3aXRob3V0IENWTzwvdGl0bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJv
ZHk+CisgICAgICAgIDx2aWRlbyBpZD0ibG9jYWxWaWRlbyIgYXV0b3BsYXkgcGxheXNJbmxpbmUg
d2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAiPjwvdmlkZW8+CisgICAgICAgIDx2aWRlbyBpZD0icmVt
b3RlVmlkZW8iIGF1dG9wbGF5IHBsYXlzSW5saW5lIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48
L3ZpZGVvPgorICAgICAgICA8c2NyaXB0IHNyYyA9InJvdXRpbmVzLmpzIj48L3NjcmlwdD4KKyAg
ICAgICAgPHNjcmlwdD4KK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGNvbnN0
IGxvY2FsU3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEo
eyB2aWRlbzogeyB3aWR0aDogMzIwLCBoZWlnaHQ6IDI0MCB9IH0pOworICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuc2V0TW9ja0NhbWVyYU9yaWVu
dGF0aW9uKDkwKTsKKworICAgIGxvY2FsVmlkZW8uc3JjT2JqZWN0ID0gbG9jYWxTdHJlYW07Cisg
ICAgY29uc3QgcmVtb3RlU3RyZWFtID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVj
dCkgPT4geworICAgICAgICB0cmFjayA9IGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF07
CisKKyAgICAgICAgY3JlYXRlQ29ubmVjdGlvbnMoKGZpcnN0Q29ubmVjdGlvbikgPT4geworICAg
ICAgICAgICAgZmlyc3RDb25uZWN0aW9uLmFkZFRyYWNrKHRyYWNrLCBsb2NhbFN0cmVhbSk7Cisg
ICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgICAgICBpbnRlcm5h
bHMuYXBwbHlSb3RhdGlvbkZvck91dGdvaW5nVmlkZW9Tb3VyY2VzKGZpcnN0Q29ubmVjdGlvbik7
CisgICAgICAgIH0sIChzZWNvbmRDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICBzZWNvbmRD
b25uZWN0aW9uLm9udHJhY2sgPSAodHJhY2tFdmVudCkgPT4geworICAgICAgICAgICAgICAgIHJl
c29sdmUodHJhY2tFdmVudC5zdHJlYW1zWzBdKTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH0p
OworICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgiVGVzdCB0aW1lZCBvdXQiKSwgNTAw
MCk7CisgICAgfSk7CisKKyAgICByZW1vdGVWaWRlby5zcmNPYmplY3QgPSByZW1vdGVTdHJlYW07
CisgICAgYXdhaXQgcmVtb3RlVmlkZW8ucGxheSgpOworICAgIGF3YWl0IHdhaXRGb3JWaWRlb1Np
emUocmVtb3RlVmlkZW8sIDI0MCwgMzIwKTsKK30sICJUZXN0aW5nIHZpZGVvIGV4Y2hhbmdlIHdp
dGggcm90YXRpb24gYXBwbGllZCBiZWZvcmUgdHJhbnNtaXNzaW9uIik7CisgICAgICAgIDwvc2Ny
aXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393143</attachid>
            <date>2020-03-10 06:34:54 -0700</date>
            <delta_ts>2020-03-13 00:56:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205645-20200310143452.patch</filename>
            <type>text/plain</type>
            <size>23282</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDdlNDE4NGUzZjgwNjc2
Y2JhYjBjOGY3MjJiZWZjMmYyMWU1NmI3OC4uYTc3ZjVjODI4NmJmYTc3NmUyZWYxYzcxMGRlMWIy
MzExODVhY2Q4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTAzLTEwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBcHBseSByb3RhdGlvbiBh
dCBzb3VyY2UgbGV2ZWwgaWYgV2ViUlRDIHNpbmsgYXNrIHNvCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2NDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB2aXJ0dWFsIG1ldGhvZCB0byBSZWFs
dGltZU1lZGlhU291cmNlIHRvIHBhc3MgdGhlIGluZm9ybWF0aW9uIHRoYXQgdGhlIHNpbmsgcHJl
ZmVycyB0aGUgZnJhbWVzIHRvIGJlIHJvdGF0ZWQgYmVmb3JlIHNlbmRpbmcgdGhlbS4KKyAgICAg
ICAgQnkgZGVmYXVsdCwgdGhlIG1ldGhvZCBkb2VzIG5vdGhpbmcgYW5kIFJlYWx0aW1lT3l1dGdv
aW5nVmlkZW9Tb3VyY2Ugd2lsbCBjb250aW51ZSB0byBkbyB0aGUgcm90YXRpb24gaXRzZWxmLgor
ICAgICAgICBVcGRhdGUgSW1hZ2VSb3RhdGlvblNlc3Npb25WVCB0byBiZSBtb3JlIGVhc2lseSB1
c2FibGUgYnkgdXNlcnMgaGF2aW5nIE1lZGlhU2FtcGxlIGluc3RlYWQgb2YgQ1ZQaXhlbEJ1ZmZl
ci4KKyAgICAgICAgVXBkYXRlIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZSB0byB1c2UgdGhh
dCByb3V0aW5lOiB3aGVuZXZlciBhcHBseWluZyByb3RhdGlvbiBpcyBuZWVkZWQsCisgICAgICAg
IGl0IHdpbGwgYXNrIGl0cyB0cmFjayBzb3VyY2UgdG8gYXBwbHkgcm90YXRpb24uIElmIHRoZSB0
cmFjayBzb3VyY2UgY2Fubm90IGRvIGl0LCBpdCB3aWxsIGRvIGl0IG9uIGl0cyBvd24uCisKKyAg
ICAgICAgVGVzdDogd2VicnRjL3ZpZGVvLXJvdGF0aW9uLW5vLWN2by5odG1sCisKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJh
Y2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNr
ZW5kOjphcHBseVJvdGF0aW9uRm9yT3V0Z29pbmdWaWRlb1NvdXJjZXMpOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULmg6CisgICAgICAgIChXZWJDb3JlOjpvcGVy
YXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yIT0pOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2N2L0ltYWdlUm90YXRpb25TZXNzaW9uVlQubW06CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpJbWFnZVJvdGF0aW9uU2Vzc2lvblZUKToKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlUm90YXRpb25TZXNzaW9uVlQ6OmluaXRpYWxpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6cm90YXRlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c2V0U291cmNlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6YXBwbHlSb3Rh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OkFk
ZE9yVXBkYXRlU2luayk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVP
dXRnb2luZ1ZpZGVvU291cmNlLmg6CisKIDIwMjAtMDMtMTAgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFVuc2tpcCBmYXN0L21lZGlhc3RyZWFtIHRl
c3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IGRlMTcwYWY1MjFhZjgzY2E3NjM4YmY3NjcwODAzYjg4ODViNWRhZWYu
LjRlNTA2NmFlMzUzMTA3YTVkNjkwODBjMzI4MTA4ZTQwMTBkNDE1YjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjMgQEAKKzIwMjAtMDMtMTAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgorCisgICAgICAgIEFwcGx5IHJvdGF0aW9uIGF0IHNvdXJjZSBsZXZlbCBpZiBXZWJSVEMgc2lu
ayBhc2sgc28KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNTY0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEltcGxlbWVudCBSZWFsdGltZU1lZGlhU291cmNlIHNldFNob3VsZEFwcGx5Um90YXRpb24gYnkg
c2VuZGluZyBJUEMgdG8gY2FwdHVyZSBwcm9jZXNzLgorICAgICAgICBJbiBjYXB0dXJlIHByb2Nl
c3MsIGlmIHJvdGF0aW9uIHNob3VsZCBiZSBhcHBsaWVkLCB1c2UgYW4gSW1hZ2VSb3RhdGlvblNl
c3Npb25WVCBzZXNzaW9uIHRvIGFwcGx5IGl0IGJlZm9yZSBzZW5kaW5nIHRoZSB2aWRlbyBmcmFt
ZS4KKyAgICAgICAgVGhpcyBhbGxvd3MgV2ViUHJvY2VzcyB0byBubyBsb25nZXIgbmVlZCBhbiBJ
bWFnZVJvdGF0aW9uU2Vzc2lvblZUIGZvciBXZWJSVEMuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzZXRTaG91bGRBcHBs
eVJvdGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6U291cmNlUHJveHk6OnJvdGF0ZVBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c2V0U2hvdWxkQXBwbHlSb3RhdGlvbik6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJj
ZTo6c2V0U2hvdWxkQXBwbHlSb3RhdGlvbik6CisKIDIwMjAtMDMtMTAgIHlvdWVubiBmYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIE1ha2Ugc3VyZSBhIE1lZGlTdHJl
YW1UcmFjayBjbG9uZSBkb2VzIG5vdCBpbnRlcnJ1cHQgdGhlIGJlaW5nIGNsb25lZCB0cmFjawpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5j
cHAKaW5kZXggZjBlYzNhOWExZDY2MWUyMTY4ZjYxMGQzODE2ZTIxZWY5ODQ4MjgxMS4uYmY3M2Ew
YWE4ZDMyNjQ4NTcxODZjMWFmNDA3YjIwMDdkNmYwNTBlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCkBAIC01MTMsNyArNTEz
LDcgQEAgdm9pZCBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmFwcGx5Um90YXRpb25G
b3JPdXRnb2luZ1ZpZGVvU291cmNlcygpCiAgICAgZm9yIChhdXRvJiB0cmFuc2NlaXZlciA6IG1f
cGVlckNvbm5lY3Rpb24uY3VycmVudFRyYW5zY2VpdmVycygpKSB7CiAgICAgICAgIGlmICghdHJh
bnNjZWl2ZXItPnNlbmRlcigpLmlzU3RvcHBlZCgpKSB7CiAgICAgICAgICAgICBpZiAoYXV0byog
dmlkZW9Tb3VyY2UgPSBiYWNrZW5kRnJvbVJUUFNlbmRlcih0cmFuc2NlaXZlci0+c2VuZGVyKCkp
LnZpZGVvU291cmNlKCkpCi0gICAgICAgICAgICAgICAgdmlkZW9Tb3VyY2UtPnNldEFwcGx5Um90
YXRpb24odHJ1ZSk7CisgICAgICAgICAgICAgICAgdmlkZW9Tb3VyY2UtPmFwcGx5Um90YXRpb24o
KTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzMjYzNTE5ZDYzNDBiMDMyYWFlZjUwYWJjYmVk
ZDI3MjhmYjE5OWM0Li5lMjk1NmJiMTJkMjJlMzk1MTUyZmYyMDk3MmMwYzlhOWJlOGQ5NjMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC00MDY2LDcgKzQwNjYsNyBAQAogCQlDRDFFNzM0NzE2N0JDNzhFMDA5QTg4NUQgLyogVGV4
dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0QxRTczNDYxNjdCQzc4RTAwOUE4ODVEIC8qIFRleHRUcmFja1JlcHJl
c2VudGF0aW9uLmNwcCAqLzsgfTsKIAkJQ0QyMjVDMEIxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNv
cmVOU1VSTFNlc3Npb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDIyNUMwOTFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5t
bSAqLzsgfTsKIAkJQ0QyMjVDMEMxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Np
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjI1
QzBBMUM0NkZCRjQwMDE0MDc2MSAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQ0QyN0FFNTAyMkE5ODY4NzAw
OTQ3RkY5IC8qIEltYWdlUm90YXRpb25TZXNzaW9uVlQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjdBRTRFMjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFn
ZVJvdGF0aW9uU2Vzc2lvblZULmggKi87IH07CisJCUNEMjdBRTUwMjJBOTg2ODcwMDk0N0ZGOSAv
KiBJbWFnZVJvdGF0aW9uU2Vzc2lvblZULmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDI3QUU0RTIyQTk4Njg3MDA5NDdGRjkgLyogSW1hZ2VSb3RhdGlv
blNlc3Npb25WVC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUNEMjdBRTUxMjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFnZVJvdGF0aW9uU2Vzc2lvblZU
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyN0FF
NEYyMkE5ODY4NzAwOTQ3RkY5IC8qIEltYWdlUm90YXRpb25TZXNzaW9uVlQubW0gKi87IH07CiAJ
CUNEMkY0QTI0MThEODlGNzAwMDYzNzQ2RCAvKiBBdWRpb0hhcmR3YXJlTGlzdGVuZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMkY0QTIyMThEODlG
NzAwMDYzNzQ2RCAvKiBBdWRpb0hhcmR3YXJlTGlzdGVuZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDJGNEEyODE4RDhBMzQ5MDA2Mzc0NkQg
LyogQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDJGNEEyNjE4RDhBMzQ5MDA2Mzc0NkQgLyogQXVkaW9IYXJk
d2FyZUxpc3RlbmVyTWFjLmggKi87IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULmgKaW5kZXggNjAw
MWJiNzBhMTAwNDE3NDQxMDkyMTM2ZjNmZTViNjE3NjJjYjBjZi4uNzNmNjYyMDUyMDhiMjJhZjgx
ZTRkYTE0NTMyYjM5MDMzY2Q5ZGYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlUm90YXRpb25TZXNzaW9uVlQuaApAQCAtMzYs
NiArMzYsOCBAQCB0eXBlZGVmIHN0cnVjdCBfX0NWUGl4ZWxCdWZmZXJQb29sKiBDVlBpeGVsQnVm
ZmVyUG9vbFJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBNZWRpYVNhbXBsZTsK
KwogY2xhc3MgSW1hZ2VSb3RhdGlvblNlc3Npb25WVCBmaW5hbCB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC01Myw3ICs1NSw4IEBAIHB1YmxpYzoKICAgICB9Owog
CiAgICAgSW1hZ2VSb3RhdGlvblNlc3Npb25WVChBZmZpbmVUcmFuc2Zvcm0mJiwgRmxvYXRTaXpl
LCBPU1R5cGUgcGl4ZWxGb3JtYXQsIElzQ0dJbWFnZUNvbXBhdGlibGUpOwotICAgIEltYWdlUm90
YXRpb25TZXNzaW9uVlQoUm90YXRpb25Qcm9wZXJ0aWVzJiYsIEZsb2F0U2l6ZSwgT1NUeXBlIHBp
eGVsRm9ybWF0LCBJc0NHSW1hZ2VDb21wYXRpYmxlKTsKKyAgICBJbWFnZVJvdGF0aW9uU2Vzc2lv
blZUKGNvbnN0IFJvdGF0aW9uUHJvcGVydGllcyYsIEZsb2F0U2l6ZSwgT1NUeXBlIHBpeGVsRm9y
bWF0LCBJc0NHSW1hZ2VDb21wYXRpYmxlKTsKKyAgICBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUKCkg
PSBkZWZhdWx0OwogCiAgICAgY29uc3QgT3B0aW9uYWw8QWZmaW5lVHJhbnNmb3JtPiYgdHJhbnNm
b3JtKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm07IH0KICAgICBjb25zdCBSb3RhdGlvblBy
b3BlcnRpZXMmIHJvdGF0aW9uUHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJuIG1fcm90YXRpb25Q
cm9wZXJ0aWVzOyB9CkBAIC02MSw4ICs2NCwxMyBAQCBwdWJsaWM6CiAgICAgY29uc3QgRmxvYXRT
aXplJiByb3RhdGVkU2l6ZSgpIHsgcmV0dXJuIG1fcm90YXRlZFNpemU7IH0KIAogICAgIFJldGFp
blB0cjxDVlBpeGVsQnVmZmVyUmVmPiByb3RhdGUoQ1ZQaXhlbEJ1ZmZlclJlZik7CisgICAgV0VC
Q09SRV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHJvdGF0ZShNZWRpYVNhbXBs
ZSYsIGNvbnN0IFJvdGF0aW9uUHJvcGVydGllcyYsIElzQ0dJbWFnZUNvbXBhdGlibGUpOworCisg
ICAgYm9vbCBpc01hdGNoaW5nKE1lZGlhU2FtcGxlJiwgY29uc3QgUm90YXRpb25Qcm9wZXJ0aWVz
Jik7CiAKIHByaXZhdGU6CisgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IFJvdGF0aW9uUHJvcGVy
dGllcyYsIEZsb2F0U2l6ZSwgT1NUeXBlIHBpeGVsRm9ybWF0LCBJc0NHSW1hZ2VDb21wYXRpYmxl
KTsKKwogICAgIE9wdGlvbmFsPEFmZmluZVRyYW5zZm9ybT4gbV90cmFuc2Zvcm07CiAgICAgUm90
YXRpb25Qcm9wZXJ0aWVzIG1fcm90YXRpb25Qcm9wZXJ0aWVzOwogICAgIEZsb2F0U2l6ZSBtX3Np
emU7CkBAIC03MSw2ICs3OSwxNiBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUG9vbFJlZj4gbV9yb3RhdGlvblBvb2w7CiB9OwogCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IEltYWdlUm90YXRpb25TZXNzaW9uVlQ6OlJvdGF0aW9uUHJvcGVydGllcyYgcm90YXRp
b24xLCBjb25zdCBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpSb3RhdGlvblByb3BlcnRpZXMmIHJv
dGF0aW9uMikKK3sKKyAgICByZXR1cm4gcm90YXRpb24xLmZsaXBYID09IHJvdGF0aW9uMi5mbGlw
WCAmJiByb3RhdGlvbjEuZmxpcFkgPT0gcm90YXRpb24yLmZsaXBZICYmIHJvdGF0aW9uMS5hbmds
ZSA9PSByb3RhdGlvbjIuYW5nbGU7Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3Qg
SW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6Um90YXRpb25Qcm9wZXJ0aWVzJiByb3RhdGlvbjEsIGNv
bnN0IEltYWdlUm90YXRpb25TZXNzaW9uVlQ6OlJvdGF0aW9uUHJvcGVydGllcyYgcm90YXRpb24y
KQoreworICAgIHJldHVybiAhKHJvdGF0aW9uMSA9PSByb3RhdGlvbjIpOworfQorCiB9CiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1h
Z2VSb3RhdGlvblNlc3Npb25WVC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2N2L0ltYWdlUm90YXRpb25TZXNzaW9uVlQubW0KaW5kZXggODhhNWRiNTk1NmVlOGI5NWYxMDhl
NDY1NmZjNTdjMWM3ZTBmOWJkNy4uNDdkYmVjZGYzOTJiNDMyNDVmZGM1NjU2NTY1ODI5OGZmZTAx
MGQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1h
Z2VSb3RhdGlvblNlc3Npb25WVC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULm1tCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5j
bHVkZSAiSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oIgogCiAjaW5jbHVkZSAiQWZmaW5lVHJhbnNm
b3JtLmgiCisjaW5jbHVkZSAiTWVkaWFTYW1wbGUuaCIKIAogI2luY2x1ZGUgIkNvcmVWaWRlb1Nv
ZnRMaW5rLmgiCiAjaW5jbHVkZSAiVmlkZW9Ub29sYm94U29mdExpbmsuaCIKQEAgLTY0LDExICs2
NSwxNiBAQCBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpJbWFnZVJvdGF0aW9uU2Vzc2lvblZUKEFm
ZmluZVRyYW5zZm9ybSYmIHRyYW5zZm9ybSwgRmxvYQogICAgIG1fdHJhbnNmb3JtID0gV1RGTW92
ZSh0cmFuc2Zvcm0pOwogfQogCitJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpJbWFnZVJvdGF0aW9u
U2Vzc2lvblZUKGNvbnN0IFJvdGF0aW9uUHJvcGVydGllcyYgcm90YXRpb24sIEZsb2F0U2l6ZSBz
aXplLCBPU1R5cGUgcGl4ZWxGb3JtYXQsIElzQ0dJbWFnZUNvbXBhdGlibGUgY3ZJbWFnZUNvbXBh
dGliaWxpdHkpCit7CisgICAgaW5pdGlhbGl6ZShyb3RhdGlvbiwgc2l6ZSwgcGl4ZWxGb3JtYXQs
IGN2SW1hZ2VDb21wYXRpYmlsaXR5KTsKK30KIAotSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6SW1h
Z2VSb3RhdGlvblNlc3Npb25WVChSb3RhdGlvblByb3BlcnRpZXMmJiByb3RhdGlvbiwgRmxvYXRT
aXplIHNpemUsIE9TVHlwZSBwaXhlbEZvcm1hdCwgSXNDR0ltYWdlQ29tcGF0aWJsZSBjdkltYWdl
Q29tcGF0aWJpbGl0eSkKLSAgICA6IG1fcm90YXRpb25Qcm9wZXJ0aWVzKFdURk1vdmUocm90YXRp
b24pKQotICAgICwgbV9zaXplKHNpemUpCit2b2lkIEltYWdlUm90YXRpb25TZXNzaW9uVlQ6Omlu
aXRpYWxpemUoY29uc3QgUm90YXRpb25Qcm9wZXJ0aWVzJiByb3RhdGlvbiwgRmxvYXRTaXplIHNp
emUsIE9TVHlwZSBwaXhlbEZvcm1hdCwgSXNDR0ltYWdlQ29tcGF0aWJsZSBjdkltYWdlQ29tcGF0
aWJpbGl0eSkKIHsKKyAgICBtX3JvdGF0aW9uUHJvcGVydGllcyA9IHJvdGF0aW9uOworICAgIG1f
c2l6ZSA9IHNpemU7CisKICAgICBpZiAobV9yb3RhdGlvblByb3BlcnRpZXMuYW5nbGUgPT0gOTAg
fHwgbV9yb3RhdGlvblByb3BlcnRpZXMuYW5nbGUgPT0gMjcwKQogICAgICAgICBzaXplID0gc2l6
ZS50cmFuc3Bvc2VkU2l6ZSgpOwogCkBAIC04OSw2ICs5NSw3IEBAIEltYWdlUm90YXRpb25TZXNz
aW9uVlQ6OkltYWdlUm90YXRpb25TZXNzaW9uVlQoUm90YXRpb25Qcm9wZXJ0aWVzJiYgcm90YXRp
b24sIEZsCiAgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySGVpZ2h0
S2V5OiBAKG1fcm90YXRlZFNpemUuaGVpZ2h0KCkpLAogICAgICAgICAoX19icmlkZ2UgTlNTdHJp
bmcgKilrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleTogQChwaXhlbEZvcm1hdCksCiAg
ICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyQ0dJbWFnZUNvbXBhdGli
aWxpdHlLZXk6IChjdkltYWdlQ29tcGF0aWJpbGl0eSA9PSBJc0NHSW1hZ2VDb21wYXRpYmxlOjpZ
ZXMgPyBAWUVTIDogQE5PKSwKKyAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxC
dWZmZXJJT1N1cmZhY2VQcm9wZXJ0aWVzS2V5IDogQHsgfQogICAgIH07CiAgICAgQ1ZQaXhlbEJ1
ZmZlclBvb2xSZWYgcmF3UG9vbCA9IG51bGxwdHI7CiAgICAgaWYgKGF1dG8gZXJyID0gQ1ZQaXhl
bEJ1ZmZlclBvb2xDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgKF9fYnJpZGdl
IENGRGljdGlvbmFyeVJlZilwaXhlbEF0dHJpYnV0ZXMsICZyYXdQb29sKTsgZXJyICE9IG5vRXJy
KQpAQCAtMTA2LDYgKzExMywyMCBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VS
b3RhdGlvblNlc3Npb25WVDo6cm90YXRlKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZQogICAgIHJldHVy
biBudWxscHRyOwogfQogCitSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VSb3RhdGlv
blNlc3Npb25WVDo6cm90YXRlKE1lZGlhU2FtcGxlJiBzYW1wbGUsIGNvbnN0IFJvdGF0aW9uUHJv
cGVydGllcyYgcm90YXRpb24sIElzQ0dJbWFnZUNvbXBhdGlibGUgY3ZJbWFnZUNvbXBhdGliaWxp
dHkpCit7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJS
ZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCku
c2FtcGxlLmNtU2FtcGxlQnVmZmVyKSk7CisgICAgQVNTRVJUKHBpeGVsQnVmZmVyKTsKKyAgICBp
ZiAoIXBpeGVsQnVmZmVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIEludFNpemUg
c2l6ZSB7IChpbnQpQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKHBpeGVsQnVmZmVyKSwgKGludClDVlBp
eGVsQnVmZmVyR2V0SGVpZ2h0KHBpeGVsQnVmZmVyKSB9OworICAgIGlmIChyb3RhdGlvbiAhPSBt
X3JvdGF0aW9uUHJvcGVydGllcyB8fCBtX3NpemUgIT0gc2l6ZSkKKyAgICAgICAgaW5pdGlhbGl6
ZShyb3RhdGlvbiwgc2l6ZSwgQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShwaXhlbEJ1
ZmZlciksIGN2SW1hZ2VDb21wYXRpYmlsaXR5KTsKKworICAgIHJldHVybiByb3RhdGUocGl4ZWxC
dWZmZXIpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDlmYWYwOTA1
ZGQ0YWE1OGE2MmEyYmZkZTQwMTk2ZDUxM2UxNDQ5MDQuLjU4YzliOTBmYTQ2MjMwMDZkZTdmNzc5
ZTU0NzhiNDRjNmIyN2FkOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTE5Nyw2ICsxOTcsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGF5U2FtcGxlcyhTZWNvbmRzKSB7IH07CiAg
ICAgdm9pZCBzZXRJbnRlcnJ1cHRlZEZvclRlc3RpbmcoYm9vbCk7CiAKKyAgICB2aXJ0dWFsIGJv
b2wgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sIC8qIHNob3VsZEFwcGx5Um90YXRpb24gKi8p
IHsgcmV0dXJuIGZhbHNlOyB9CisKIHByb3RlY3RlZDoKICAgICBSZWFsdGltZU1lZGlhU291cmNl
KFR5cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlEID0geyB9LCBTdHJpbmcmJiBo
YXNoU2FsdCA9IHsgfSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3BwCmlu
ZGV4IGQ5YTc3YTg2YjEwOTg3OWI5Mjg4YmY5YTc3NzhiYjRiYjVkZmExOTguLjgxYzZhOWE3NTE1
ZGMyMDYyMTAxZDU0MzRkNDkxZmFkMDQyODcxODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1Zp
ZGVvU291cmNlLmNwcApAQCAtODAsNiArODAsMjEgQEAgdm9pZCBSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2U6OnNldFNvdXJjZShSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYgbmV3U28K
IHsKICAgICBBU1NFUlQoIW1fdmlkZW9Tb3VyY2UtPmhhc09ic2VydmVyKCp0aGlzKSk7CiAgICAg
bV92aWRlb1NvdXJjZSA9IFdURk1vdmUobmV3U291cmNlKTsKKworICAgIGlmICghbV9hcmVTaW5r
c0Fza2luZ1RvQXBwbHlSb3RhdGlvbikKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghbV92aWRl
b1NvdXJjZS0+c291cmNlKCkuc2V0U2hvdWxkQXBwbHlSb3RhdGlvbih0cnVlKSkKKyAgICAgICAg
bV9zaG91bGRBcHBseVJvdGF0aW9uID0gdHJ1ZTsKK30KKwordm9pZCBSZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2U6OmFwcGx5Um90YXRpb24oKQoreworICAgIGlmIChtX2FyZVNpbmtzQXNraW5n
VG9BcHBseVJvdGF0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2FyZVNpbmtzQXNraW5n
VG9BcHBseVJvdGF0aW9uID0gdHJ1ZTsKKyAgICBpZiAoIW1fdmlkZW9Tb3VyY2UtPnNvdXJjZSgp
LnNldFNob3VsZEFwcGx5Um90YXRpb24odHJ1ZSkpCisgICAgICAgIG1fc2hvdWxkQXBwbHlSb3Rh
dGlvbiA9IHRydWU7CiB9CiAKIHZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzdG9w
KCkKQEAgLTEzNSw3ICsxNTAsNyBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6
QWRkT3JVcGRhdGVTaW5rKHJ0Yzo6VmlkZW9TaW5rSW50ZXJmYWNlPHdlYnJ0YwogICAgIEFTU0VS
VCghc2lua1dhbnRzLmJsYWNrX2ZyYW1lcyk7CiAKICAgICBpZiAoc2lua1dhbnRzLnJvdGF0aW9u
X2FwcGxpZWQpCi0gICAgICAgIG1fc2hvdWxkQXBwbHlSb3RhdGlvbiA9IHRydWU7CisgICAgICAg
IGFwcGx5Um90YXRpb24oKTsKIAogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9zaW5rc0xv
Y2spOwogICAgIG1fc2lua3MuYWRkKHNpbmspOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3Vy
Y2UuaAppbmRleCBlMmE0OGQwODI3N2NlMzEwZjY3YjAwMDhhZTAwZWY4MTg2MGQ5OGU2Li5hNjY1
NmNlZjkxMjhhNGIwZjYzYzU0YmNjZTdhMjYzYzgxYTdlODk5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2UuaApAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBydGM6OlJlZkNvdW50UmVsZWFzZVN0YXR1czo6a090aGVyUmVmc1JlbWFpbmVkOwogICAgIH0K
IAotICAgIHZvaWQgc2V0QXBwbHlSb3RhdGlvbihib29sIHNob3VsZEFwcGx5Um90YXRpb24pIHsg
bV9zaG91bGRBcHBseVJvdGF0aW9uID0gc2hvdWxkQXBwbHlSb3RhdGlvbjsgfQorICAgIHZvaWQg
YXBwbHlSb3RhdGlvbigpOwogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJik7CkBAIC0xMzQs
NiArMTM0LDcgQEAgcHJpdmF0ZToKIAogICAgIG11dGFibGUgUmVjdXJzaXZlTG9jayBtX3Npbmtz
TG9jazsKICAgICBIYXNoU2V0PHJ0Yzo6VmlkZW9TaW5rSW50ZXJmYWNlPHdlYnJ0Yzo6VmlkZW9G
cmFtZT4qPiBtX3NpbmtzOworICAgIGJvb2wgbV9hcmVTaW5rc0Fza2luZ1RvQXBwbHlSb3RhdGlv
biB7IGZhbHNlIH07CiAKICAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKICAgICBib29sIG1f
bXV0ZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCBlNjFjNmIy
YjUyNDYwNzlhNmIxNzgzMDhiMmUwNGYyMzVhYjgzNjVmLi5lNWU4YjUyMTJmZGRjOTc4MjMwODc1
OThjN2QwODI5YmJiN2MyNWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtMzUs
NiArMzUsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvQXVkaW9TZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0ltYWdlUm90YXRpb25TZXNzaW9uVlQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL01lZGlhQ29uc3RyYWludHMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlbW90ZVZpZGVvU2FtcGxlLmg+CkBA
IC05Niw2ICs5Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgbV9zb3VyY2UtPnJlcXVlc3RUb0VuZCgq
dGhpcyk7CiAgICAgfQogCisgICAgdm9pZCBzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wgc2hv
dWxkQXBwbHlSb3RhdGlvbikgeyBtX3Nob3VsZEFwcGx5Um90YXRpb24gPSB0cnVlOyB9CisKIHBy
aXZhdGU6CiAgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWwgewogICAgICAgICBpZiAobV9z
b3VyY2UtPmNhcHR1cmVEaWRGYWlsKCkpIHsKQEAgLTE0Myw2ICsxNDYsMzAgQEAgcHJpdmF0ZToK
ICNlbmRpZgogICAgIH0KIAorICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiByb3RhdGVQ
aXhlbEJ1ZmZlcihNZWRpYVNhbXBsZSYgc2FtcGxlKQorICAgIHsKKyAgICAgICAgaWYgKCFtX3Jv
dGF0aW9uU2Vzc2lvbikKKyAgICAgICAgICAgIG1fcm90YXRpb25TZXNzaW9uID0gbWFrZVVuaXF1
ZTxJbWFnZVJvdGF0aW9uU2Vzc2lvblZUPigpOworCisgICAgICAgIEltYWdlUm90YXRpb25TZXNz
aW9uVlQ6OlJvdGF0aW9uUHJvcGVydGllcyByb3RhdGlvbjsKKyAgICAgICAgc3dpdGNoIChzYW1w
bGUudmlkZW9Sb3RhdGlvbigpKSB7CisgICAgICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90
YXRpb246Ok5vbmU6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
ICAgIHJvdGF0aW9uLmFuZ2xlID0gMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpVcHNpZGVEb3duOgorICAgICAgICAgICAgcm90
YXRpb24uYW5nbGUgPSAxODA7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNZWRp
YVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQ6CisgICAgICAgICAgICByb3RhdGlvbi5hbmds
ZSA9IDkwOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZp
ZGVvUm90YXRpb246OkxlZnQ6CisgICAgICAgICAgICByb3RhdGlvbi5hbmdsZSA9IDI3MDsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtX3JvdGF0aW9uU2Vz
c2lvbi0+cm90YXRlKHNhbXBsZSwgcm90YXRpb24sIEltYWdlUm90YXRpb25TZXNzaW9uVlQ6Oklz
Q0dJbWFnZUNvbXBhdGlibGU6Ok5vKTsKKyAgICB9CisKICAgICB2b2lkIHN0b3JhZ2VDaGFuZ2Vk
KFNoYXJlZE1lbW9yeSogc3RvcmFnZSkgZmluYWwgewogICAgICAgICBTaGFyZWRNZW1vcnk6Okhh
bmRsZSBoYW5kbGU7CiAgICAgICAgIGlmIChzdG9yYWdlKQpAQCAtMTY0LDYgKzE5MSw4IEBAIHBy
aXZhdGU6CiAgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9Owog
ICAgIGludDY0X3QgbV9udW1iZXJPZkZyYW1lcyB7IDAgfTsKICAgICBib29sIG1faXNFbmRlZCB7
IGZhbHNlIH07CisgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlUm90YXRpb25TZXNzaW9uVlQ+IG1f
cm90YXRpb25TZXNzaW9uOworICAgIGJvb2wgbV9zaG91bGRBcHBseVJvdGF0aW9uIHsgZmFsc2Ug
fTsKIH07CiAKIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkoVW5pcXVlUmVmPENvbm5lY3Rpb25Qcm94eT4mJiBjb25uZWN0aW9uUHJveHkp
CkBAIC0yNzUsNiArMzA0LDEyIEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
cmVxdWVzdFRvRW5kKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIHNvCiAgICAgICAgIHBy
b3h5LT5yZXF1ZXN0VG9FbmQoKTsKIH0KIAordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IHNvdXJjZUlELCBib29sIHNob3VsZEFwcGx5Um90YXRpb24pCit7CisgICAgaWYgKGF1dG8qIHBy
b3h5ID0gbV9wcm94aWVzLmdldChzb3VyY2VJRCkpCisgICAgICAgIHByb3h5LT5zZXRTaG91bGRB
cHBseVJvdGF0aW9uKHNob3VsZEFwcGx5Um90YXRpb24pOworfQorCiB2b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OmNsZWFyKCkKIHsKICAgICBtX3Byb3hpZXMuY2xlYXIoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCBkOWNjYzhmMzYwMDU3OWE0OTUzY2Y5Y2UzZDFiZmYx
NDg3OGE3YzI4Li43ODA2MDg5YzYyODBiNmY4ZTBkOWZjYTBhZjA5ZWZkYzdhMDU5MTJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC04MCw2ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBhcHBseUNvbnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJik7CiAgICAgdm9pZCBjbG9uZShXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZWRJRCwgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgY2xvbmVJRCk7CiAgICAgdm9pZCByZXF1ZXN0VG9F
bmQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgc2V0
U2hvdWxkQXBwbHlSb3RhdGlvbihXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciwgYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKTsKIAogICAgIGNsYXNzIFNvdXJjZVByb3h5Owog
ICAgIGZyaWVuZCBjbGFzcyBTb3VyY2VQcm94eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IGJjYTU5NWVjNTQ5MjgxNTExYzI5ODJmODE3MmZjMjg0NmIw
YmUzMGEuLjc5MjhhY2Y3NGRiNGRlNjBlNjQ5MGJhNGIxNWJlMzYxZWI1ZDBmOWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzMsNiArMzMsNyBAQCBt
ZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IE5vdFJlZkNvdW50ZWQgewog
ICAgIEFwcGx5Q29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKQogICAg
IENsb25lKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGNsb25lZElELCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZUlEKQogICAgIFJlcXVl
c3RUb0VuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBzb3VyY2VJRCkK
KyAgICBTZXRTaG91bGRBcHBseVJvdGF0aW9uKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIHNvdXJjZUlELCBib29sIHNob3VsZEFwcGx5Um90YXRpb24pCiB9CiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggOWFkNTZjYzExYjE1OWQ3YzlmZTcwYTEzODBhODZl
ZWVlYWVjZTFkYS4uZTIxZDMyMjIwNDg2NGU1NjIzYmE4OWVmYjJiYzlkZDY4MTllMWVjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuY3BwCkBAIC0yMjMsNiArMjIzLDggQEAgcHJpdmF0ZToKICAgICAvLyBS
ZWFsdGltZU1lZGlhU291cmNlCiAgICAgdm9pZCBiZWdpbkNvbmZpZ3VyYXRpb24oKSBmaW5hbCB7
IH0KICAgICB2b2lkIGNvbW1pdENvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KKyAgICBib29sIHNl
dFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCAvKiBzaG91bGRBcHBseVJvdGF0aW9uICovKSBmaW5h
bDsKKwogCiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29u
c3RyYWludHMmLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmKSBmaW5hbDsKIApAQCAtMzk2LDYg
KzM5OCwxMiBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnN0b3BQcm9k
dWNpbmdEYXRhKCkKICAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OlN0b3BQcm9kdWNpbmdEYXRhKG1faWQpLCAwKTsKIH0KIAorYm9v
bCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpzZXRTaG91bGRBcHBseVJvdGF0aW9u
KGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbikKK3sKKyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNldFNob3VsZEFwcGx5Um90YXRp
b24obV9pZCwgc2hvdWxkQXBwbHlSb3RhdGlvbiksIDApOworICAgIHJldHVybiB0cnVlOworfQor
CiBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpjYXBhYmlsaXRpZXMoKQogewogICAgIGlmICghbV9j
YXBhYmlsaXRpZXMpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMGU0YzgzMTUyOWFlZDM0NGI2M2RiMGE4ZjJhODU0Yzc0
NWU3N2Y4Li4yZjNhZDMyOWE4OTY1MjIyMjA3MWNjYTZhYTljZTE1NGIwYzA2MjNkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMjAtMDMtMTAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgorCisgICAgICAgIEFwcGx5IHJvdGF0aW9uIGF0IHNvdXJjZSBsZXZlbCBpZiBXZWJSVEMg
c2luayBhc2sgc28KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNTY0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogd2VicnRjL3ZpZGVvLXJvdGF0aW9uLW5vLWN2by1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHdlYnJ0Yy92aWRlby1yb3RhdGlvbi1uby1jdm8uaHRtbDogQWRkZWQuCisKIDIw
MjAtMDMtMTAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFtp
T1NdIFVuc2tpcCBmYXN0L21lZGlhc3RyZWFtIHRlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJydGMvdmlkZW8tcm90YXRpb24tbm8tY3ZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3dlYnJ0Yy92aWRlby1yb3RhdGlvbi1uby1jdm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQy
OWU4YmE2MDljMjA4MzU2YmI4MTk3MzgwOWY0NmYyOGI2NTE1NTcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tcm90YXRpb24tbm8tY3ZvLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQgQEAKKyAgCisKK1BBU1MgVGVzdGluZyB2aWRlbyBleGNoYW5nZSB3aXRoIHJv
dGF0aW9uIGFwcGxpZWQgYmVmb3JlIHRyYW5zbWlzc2lvbiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2VicnRjL3ZpZGVvLXJvdGF0aW9uLW5vLWN2by5odG1sIGIvTGF5b3V0VGVzdHMvd2Vi
cnRjL3ZpZGVvLXJvdGF0aW9uLW5vLWN2by5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0ZDk3ZjEzNDFiNjIz
NDZiODNhMGY5NGUwYzNhYWJkMDBiMjNkZTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJydGMvdmlkZW8tcm90YXRpb24tbm8tY3ZvLmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVDYXB0dXJlVmlkZW9JblVJUHJvY2Vzcz10cnVl
IF0gLS0+Cis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgICAgIDx0aXRsZT5UZXN0aW5nIHZpZGVvIHJvdGF0aW9u
IHdpdGhvdXQgQ1ZPPC90aXRsZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9k
eT4KKyAgICAgICAgPHZpZGVvIGlkPSJsb2NhbFZpZGVvIiBhdXRvcGxheSBwbGF5c0lubGluZSB3
aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC92aWRlbz4KKyAgICAgICAgPHZpZGVvIGlkPSJyZW1v
dGVWaWRlbyIgYXV0b3BsYXkgcGxheXNJbmxpbmUgd2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAiPjwv
dmlkZW8+CisgICAgICAgIDxzY3JpcHQgc3JjID0icm91dGluZXMuanMiPjwvc2NyaXB0PgorICAg
ICAgICA8c2NyaXB0PgorcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgY29uc3Qg
bG9jYWxTdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7
IHZpZGVvOiB7IHdpZHRoOiAzMjAsIGhlaWdodDogMjQwIH0gfSk7CisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5zZXRNb2NrQ2FtZXJhT3JpZW50
YXRpb24oOTApOworCisgICAgbG9jYWxWaWRlby5zcmNPYmplY3QgPSBsb2NhbFN0cmVhbTsKKyAg
ICBjb25zdCByZW1vdGVTdHJlYW0gPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0
KSA9PiB7CisgICAgICAgIHRyYWNrID0gbG9jYWxTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXTsK
KworICAgICAgICBjcmVhdGVDb25uZWN0aW9ucygoZmlyc3RDb25uZWN0aW9uKSA9PiB7CisgICAg
ICAgICAgICBmaXJzdENvbm5lY3Rpb24uYWRkVHJhY2sodHJhY2ssIGxvY2FsU3RyZWFtKTsKKyAg
ICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgICAgIGludGVybmFs
cy5hcHBseVJvdGF0aW9uRm9yT3V0Z29pbmdWaWRlb1NvdXJjZXMoZmlyc3RDb25uZWN0aW9uKTsK
KyAgICAgICAgfSwgKHNlY29uZENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAgIHNlY29uZENv
bm5lY3Rpb24ub250cmFjayA9ICh0cmFja0V2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgcmVz
b2x2ZSh0cmFja0V2ZW50LnN0cmVhbXNbMF0pOworICAgICAgICAgICAgfTsKKyAgICAgICAgfSk7
CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIpLCA1MDAw
KTsKKyAgICB9KTsKKworICAgIHJlbW90ZVZpZGVvLnNyY09iamVjdCA9IHJlbW90ZVN0cmVhbTsK
KyAgICBhd2FpdCByZW1vdGVWaWRlby5wbGF5KCk7CisgICAgYXdhaXQgd2FpdEZvclZpZGVvU2l6
ZShyZW1vdGVWaWRlbywgMjQwLCAzMjApOworfSwgIlRlc3RpbmcgdmlkZW8gZXhjaGFuZ2Ugd2l0
aCByb3RhdGlvbiBhcHBsaWVkIGJlZm9yZSB0cmFuc21pc3Npb24iKTsKKyAgICAgICAgPC9zY3Jp
cHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393464</attachid>
            <date>2020-03-13 00:56:07 -0700</date>
            <delta_ts>2020-03-16 03:51:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205645-20200313085605.patch</filename>
            <type>text/plain</type>
            <size>24098</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDJiNmVmODUwMDQyN2Jl
NGE5ZDA1OGY4OTQ5YjMwMTEyYzk3MTE4MC4uNTMzODEzNmMzYzY4NmVlMDliMDAwZmU4OTc2MTU3
NWM4ZDEyNjMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTAzLTEyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBcHBseSByb3RhdGlvbiBh
dCBzb3VyY2UgbGV2ZWwgaWYgV2ViUlRDIHNpbmsgYXNrIHNvCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2NDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRkIGEgdmlydHVhbCBtZXRob2QgdG8gUmVhbHRp
bWVNZWRpYVNvdXJjZSB0byBwYXNzIHRoZSBpbmZvcm1hdGlvbiB0aGF0IHRoZSBzaW5rIHByZWZl
cnMgdGhlIGZyYW1lcyB0byBiZSByb3RhdGVkIGJlZm9yZSBzZW5kaW5nIHRoZW0uCityICAgICAg
IEJ5IGRlZmF1bHQsIHRoZSBtZXRob2QgZG9lcyBub3RoaW5nIGFuZCBSZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2Ugd2lsbCBjb250aW51ZSB0byBkbyB0aGUgcm90YXRpb24gaXRzZWxmLgorICAg
ICAgICBVcGRhdGUgSW1hZ2VSb3RhdGlvblNlc3Npb25WVCB0byBiZSBtb3JlIGVhc2lseSB1c2Fi
bGUgYnkgdXNlcnMgaGF2aW5nIE1lZGlhU2FtcGxlIGluc3RlYWQgb2YgQ1ZQaXhlbEJ1ZmZlci4K
KyAgICAgICAgVXBkYXRlIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZSB0byB1c2UgdGhhdCBy
b3V0aW5lOiB3aGVuZXZlciBhcHBseWluZyByb3RhdGlvbiBpcyBuZWVkZWQsCisgICAgICAgIGl0
IHdpbGwgYXNrIGl0cyB0cmFjayBzb3VyY2UgdG8gYXBwbHkgcm90YXRpb24uIElmIHRoZSB0cmFj
ayBzb3VyY2UgY2Fubm90IGRvIGl0LCBpdCB3aWxsIGRvIGl0IG9uIGl0cyBvd24uCisKKyAgICAg
ICAgVGVzdDogd2VicnRjL3ZpZGVvLXJvdGF0aW9uLW5vLWN2by5odG1sCisKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tl
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5k
OjphcHBseVJvdGF0aW9uRm9yT3V0Z29pbmdWaWRlb1NvdXJjZXMpOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULmg6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRv
cj09KToKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yIT0pOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2N2L0ltYWdlUm90YXRpb25TZXNzaW9uVlQubW06CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpJbWFnZVJvdGF0aW9uU2Vzc2lvblZUKToKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlUm90YXRpb25TZXNzaW9uVlQ6OmluaXRpYWxpemUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6cm90YXRlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c2V0U291cmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6YXBwbHlSb3RhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OkFkZE9y
VXBkYXRlU2luayk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlLmg6CisKIDIwMjAtMDMtMTIgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB1c2Ugb2YgUGxhdGZvcm1NZWRpYVNlc3Npb24g
dHlwZXMgaW4gQXVkaW9TZXNzaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVmNzQ2ZTcwYWI3ZjQ3NGMxNDAxYTAz
ZDRkYzBhMjZkYzRlN2E1M2UuLjgxNzIwMWEyMWQ3ZGZiYWFiZmZlYjk2ZmUxZjY3M2VlNmUwNTgz
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjAtMDMtMTIgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFwcGx5IHJvdGF0aW9uIGF0IHNvdXJjZSBs
ZXZlbCBpZiBXZWJSVEMgc2luayBhc2sgc28KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNTY0NQorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2Fy
bHNvbi4KKworICAgICAgICBJbXBsZW1lbnQgUmVhbHRpbWVNZWRpYVNvdXJjZSBzZXRTaG91bGRB
cHBseVJvdGF0aW9uIGJ5IHNlbmRpbmcgSVBDIHRvIGNhcHR1cmUgcHJvY2Vzcy4KKyAgICAgICAg
SW4gY2FwdHVyZSBwcm9jZXNzLCBpZiByb3RhdGlvbiBzaG91bGQgYmUgYXBwbGllZCwgdXNlIGFu
IEltYWdlUm90YXRpb25TZXNzaW9uVlQgc2Vzc2lvbiB0byBhcHBseSBpdCBiZWZvcmUgc2VuZGlu
ZyB0aGUgdmlkZW8gZnJhbWUuCisgICAgICAgIFRoaXMgYWxsb3dzIFdlYlByb2Nlc3MgdG8gbm8g
bG9uZ2VyIG5lZWQgYW4gSW1hZ2VSb3RhdGlvblNlc3Npb25WVCBmb3IgV2ViUlRDLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94
eTo6c2V0U2hvdWxkQXBwbHlSb3RhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5Ojpyb3RhdGVQaXhlbEJ1ZmZlcik6CisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnNldFNob3VsZEFwcGx5
Um90YXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpTb3VyY2U6OnNldFNob3VsZEFwcGx5Um90YXRpb24pOgorCiAyMDIwLTAzLTEy
ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdXNl
IG9mIFBsYXRmb3JtTWVkaWFTZXNzaW9uIHR5cGVzIGluIEF1ZGlvU2Vzc2lvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
UGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKaW5kZXgg
ZjBlYzNhOWExZDY2MWUyMTY4ZjYxMGQzODE2ZTIxZWY5ODQ4MjgxMS4uYmY3M2EwYWE4ZDMyNjQ4
NTcxODZjMWFmNDA3YjIwMDdkNmYwNTBlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCkBAIC01MTMsNyArNTEzLDcgQEAgdm9p
ZCBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmFwcGx5Um90YXRpb25Gb3JPdXRnb2lu
Z1ZpZGVvU291cmNlcygpCiAgICAgZm9yIChhdXRvJiB0cmFuc2NlaXZlciA6IG1fcGVlckNvbm5l
Y3Rpb24uY3VycmVudFRyYW5zY2VpdmVycygpKSB7CiAgICAgICAgIGlmICghdHJhbnNjZWl2ZXIt
PnNlbmRlcigpLmlzU3RvcHBlZCgpKSB7CiAgICAgICAgICAgICBpZiAoYXV0byogdmlkZW9Tb3Vy
Y2UgPSBiYWNrZW5kRnJvbVJUUFNlbmRlcih0cmFuc2NlaXZlci0+c2VuZGVyKCkpLnZpZGVvU291
cmNlKCkpCi0gICAgICAgICAgICAgICAgdmlkZW9Tb3VyY2UtPnNldEFwcGx5Um90YXRpb24odHJ1
ZSk7CisgICAgICAgICAgICAgICAgdmlkZW9Tb3VyY2UtPmFwcGx5Um90YXRpb24oKTsKICAgICAg
ICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBiNmIzY2Q4YTM1YmIwM2IwZGFmYzZmZGYxNTY3ZmM1NDliMmFi
NWM5Li43MTNmY2U2MjVlYWQ5YjE1YjExZDNlNjY0MGZiMDk2MGNhMTgzZTA1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MDY4
LDcgKzQwNjgsNyBAQAogCQlDRDFFNzM0NzE2N0JDNzhFMDA5QTg4NUQgLyogVGV4dFRyYWNrUmVw
cmVzZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0QxRTczNDYxNjdCQzc4RTAwOUE4ODVEIC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9u
LmNwcCAqLzsgfTsKIAkJQ0QyMjVDMEIxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNl
c3Npb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDIyNUMwOTFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSAqLzsgfTsK
IAkJQ0QyMjVDMEMxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjI1QzBBMUM0NkZC
RjQwMDE0MDc2MSAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQ0QyN0FFNTAyMkE5ODY4NzAwOTQ3RkY5IC8q
IEltYWdlUm90YXRpb25TZXNzaW9uVlQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENEMjdBRTRFMjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFnZVJvdGF0aW9u
U2Vzc2lvblZULmggKi87IH07CisJCUNEMjdBRTUwMjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFnZVJv
dGF0aW9uU2Vzc2lvblZULmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDI3QUU0RTIyQTk4Njg3MDA5NDdGRjkgLyogSW1hZ2VSb3RhdGlvblNlc3Npb25W
VC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNE
MjdBRTUxMjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFnZVJvdGF0aW9uU2Vzc2lvblZULm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyN0FFNEYyMkE5ODY4
NzAwOTQ3RkY5IC8qIEltYWdlUm90YXRpb25TZXNzaW9uVlQubW0gKi87IH07CiAJCUNEMkY0QTI0
MThEODlGNzAwMDYzNzQ2RCAvKiBBdWRpb0hhcmR3YXJlTGlzdGVuZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMkY0QTIyMThEODlGNzAwMDYzNzQ2
RCAvKiBBdWRpb0hhcmR3YXJlTGlzdGVuZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDJGNEEyODE4RDhBMzQ5MDA2Mzc0NkQgLyogQXVkaW9I
YXJkd2FyZUxpc3RlbmVyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDJGNEEyNjE4RDhBMzQ5MDA2Mzc0NkQgLyogQXVkaW9IYXJkd2FyZUxpc3Rl
bmVyTWFjLmggKi87IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULmgKaW5kZXggNjAwMWJiNzBhMTAw
NDE3NDQxMDkyMTM2ZjNmZTViNjE3NjJjYjBjZi4uMmRkZjQ5NjFhYTY4NjdiN2UyZWExM2Q4YmRj
NTAzNTc0MzVkNTBhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L0ltYWdlUm90YXRpb25TZXNzaW9uVlQuaApAQCAtMzYsNiArMzYsOCBA
QCB0eXBlZGVmIHN0cnVjdCBfX0NWUGl4ZWxCdWZmZXJQb29sKiBDVlBpeGVsQnVmZmVyUG9vbFJl
ZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBNZWRpYVNhbXBsZTsKKwogY2xhc3Mg
SW1hZ2VSb3RhdGlvblNlc3Npb25WVCBmaW5hbCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6CkBAIC01Miw4ICs1NCw5IEBAIHB1YmxpYzoKICAgICAgICAgWWVzLAogICAg
IH07CiAKLSAgICBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUKEFmZmluZVRyYW5zZm9ybSYmLCBGbG9h
dFNpemUsIE9TVHlwZSBwaXhlbEZvcm1hdCwgSXNDR0ltYWdlQ29tcGF0aWJsZSk7Ci0gICAgSW1h
Z2VSb3RhdGlvblNlc3Npb25WVChSb3RhdGlvblByb3BlcnRpZXMmJiwgRmxvYXRTaXplLCBPU1R5
cGUgcGl4ZWxGb3JtYXQsIElzQ0dJbWFnZUNvbXBhdGlibGUpOworICAgIEltYWdlUm90YXRpb25T
ZXNzaW9uVlQoQWZmaW5lVHJhbnNmb3JtJiYsIEZsb2F0U2l6ZSwgT1NUeXBlLCBJc0NHSW1hZ2VD
b21wYXRpYmxlKTsKKyAgICBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUKGNvbnN0IFJvdGF0aW9uUHJv
cGVydGllcyYsIEZsb2F0U2l6ZSwgT1NUeXBlLCBJc0NHSW1hZ2VDb21wYXRpYmxlKTsKKyAgICBJ
bWFnZVJvdGF0aW9uU2Vzc2lvblZUKCkgPSBkZWZhdWx0OwogCiAgICAgY29uc3QgT3B0aW9uYWw8
QWZmaW5lVHJhbnNmb3JtPiYgdHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm07
IH0KICAgICBjb25zdCBSb3RhdGlvblByb3BlcnRpZXMmIHJvdGF0aW9uUHJvcGVydGllcygpIGNv
bnN0IHsgcmV0dXJuIG1fcm90YXRpb25Qcm9wZXJ0aWVzOyB9CkBAIC02MSw4ICs2NCwxMyBAQCBw
dWJsaWM6CiAgICAgY29uc3QgRmxvYXRTaXplJiByb3RhdGVkU2l6ZSgpIHsgcmV0dXJuIG1fcm90
YXRlZFNpemU7IH0KIAogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiByb3RhdGUoQ1ZQ
aXhlbEJ1ZmZlclJlZik7CisgICAgV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxCdWZm
ZXJSZWY+IHJvdGF0ZShNZWRpYVNhbXBsZSYsIGNvbnN0IFJvdGF0aW9uUHJvcGVydGllcyYsIElz
Q0dJbWFnZUNvbXBhdGlibGUpOworCisgICAgYm9vbCBpc01hdGNoaW5nKE1lZGlhU2FtcGxlJiwg
Y29uc3QgUm90YXRpb25Qcm9wZXJ0aWVzJik7CiAKIHByaXZhdGU6CisgICAgdm9pZCBpbml0aWFs
aXplKGNvbnN0IFJvdGF0aW9uUHJvcGVydGllcyYsIEZsb2F0U2l6ZSwgT1NUeXBlIHBpeGVsRm9y
bWF0LCBJc0NHSW1hZ2VDb21wYXRpYmxlKTsKKwogICAgIE9wdGlvbmFsPEFmZmluZVRyYW5zZm9y
bT4gbV90cmFuc2Zvcm07CiAgICAgUm90YXRpb25Qcm9wZXJ0aWVzIG1fcm90YXRpb25Qcm9wZXJ0
aWVzOwogICAgIEZsb2F0U2l6ZSBtX3NpemU7CkBAIC03MSw2ICs3OSwxNiBAQCBwcml2YXRlOgog
ICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUG9vbFJlZj4gbV9yb3RhdGlvblBvb2w7CiB9Owog
CitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEltYWdlUm90YXRpb25TZXNzaW9uVlQ6OlJv
dGF0aW9uUHJvcGVydGllcyYgcm90YXRpb24xLCBjb25zdCBJbWFnZVJvdGF0aW9uU2Vzc2lvblZU
OjpSb3RhdGlvblByb3BlcnRpZXMmIHJvdGF0aW9uMikKK3sKKyAgICByZXR1cm4gcm90YXRpb24x
LmZsaXBYID09IHJvdGF0aW9uMi5mbGlwWCAmJiByb3RhdGlvbjEuZmxpcFkgPT0gcm90YXRpb24y
LmZsaXBZICYmIHJvdGF0aW9uMS5hbmdsZSA9PSByb3RhdGlvbjIuYW5nbGU7Cit9CisKK2lubGlu
ZSBib29sIG9wZXJhdG9yIT0oY29uc3QgSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6Um90YXRpb25Q
cm9wZXJ0aWVzJiByb3RhdGlvbjEsIGNvbnN0IEltYWdlUm90YXRpb25TZXNzaW9uVlQ6OlJvdGF0
aW9uUHJvcGVydGllcyYgcm90YXRpb24yKQoreworICAgIHJldHVybiAhKHJvdGF0aW9uMSA9PSBy
b3RhdGlvbjIpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlUm90YXRpb25TZXNzaW9uVlQubW0KaW5k
ZXggODhhNWRiNTk1NmVlOGI5NWYxMDhlNDY1NmZjNTdjMWM3ZTBmOWJkNy4uNDdkYmVjZGYzOTJi
NDMyNDVmZGM1NjU2NTY1ODI5OGZmZTAxMGQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULm1t
CkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oIgog
CiAjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCisjaW5jbHVkZSAiTWVkaWFTYW1wbGUuaCIK
IAogI2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAjaW5jbHVkZSAiVmlkZW9Ub29sYm94
U29mdExpbmsuaCIKQEAgLTY0LDExICs2NSwxNiBAQCBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpJ
bWFnZVJvdGF0aW9uU2Vzc2lvblZUKEFmZmluZVRyYW5zZm9ybSYmIHRyYW5zZm9ybSwgRmxvYQog
ICAgIG1fdHJhbnNmb3JtID0gV1RGTW92ZSh0cmFuc2Zvcm0pOwogfQogCitJbWFnZVJvdGF0aW9u
U2Vzc2lvblZUOjpJbWFnZVJvdGF0aW9uU2Vzc2lvblZUKGNvbnN0IFJvdGF0aW9uUHJvcGVydGll
cyYgcm90YXRpb24sIEZsb2F0U2l6ZSBzaXplLCBPU1R5cGUgcGl4ZWxGb3JtYXQsIElzQ0dJbWFn
ZUNvbXBhdGlibGUgY3ZJbWFnZUNvbXBhdGliaWxpdHkpCit7CisgICAgaW5pdGlhbGl6ZShyb3Rh
dGlvbiwgc2l6ZSwgcGl4ZWxGb3JtYXQsIGN2SW1hZ2VDb21wYXRpYmlsaXR5KTsKK30KIAotSW1h
Z2VSb3RhdGlvblNlc3Npb25WVDo6SW1hZ2VSb3RhdGlvblNlc3Npb25WVChSb3RhdGlvblByb3Bl
cnRpZXMmJiByb3RhdGlvbiwgRmxvYXRTaXplIHNpemUsIE9TVHlwZSBwaXhlbEZvcm1hdCwgSXND
R0ltYWdlQ29tcGF0aWJsZSBjdkltYWdlQ29tcGF0aWJpbGl0eSkKLSAgICA6IG1fcm90YXRpb25Q
cm9wZXJ0aWVzKFdURk1vdmUocm90YXRpb24pKQotICAgICwgbV9zaXplKHNpemUpCit2b2lkIElt
YWdlUm90YXRpb25TZXNzaW9uVlQ6OmluaXRpYWxpemUoY29uc3QgUm90YXRpb25Qcm9wZXJ0aWVz
JiByb3RhdGlvbiwgRmxvYXRTaXplIHNpemUsIE9TVHlwZSBwaXhlbEZvcm1hdCwgSXNDR0ltYWdl
Q29tcGF0aWJsZSBjdkltYWdlQ29tcGF0aWJpbGl0eSkKIHsKKyAgICBtX3JvdGF0aW9uUHJvcGVy
dGllcyA9IHJvdGF0aW9uOworICAgIG1fc2l6ZSA9IHNpemU7CisKICAgICBpZiAobV9yb3RhdGlv
blByb3BlcnRpZXMuYW5nbGUgPT0gOTAgfHwgbV9yb3RhdGlvblByb3BlcnRpZXMuYW5nbGUgPT0g
MjcwKQogICAgICAgICBzaXplID0gc2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOwogCkBAIC04OSw2ICs5
NSw3IEBAIEltYWdlUm90YXRpb25TZXNzaW9uVlQ6OkltYWdlUm90YXRpb25TZXNzaW9uVlQoUm90
YXRpb25Qcm9wZXJ0aWVzJiYgcm90YXRpb24sIEZsCiAgICAgICAgIChfX2JyaWRnZSBOU1N0cmlu
ZyAqKWtDVlBpeGVsQnVmZmVySGVpZ2h0S2V5OiBAKG1fcm90YXRlZFNpemUuaGVpZ2h0KCkpLAog
ICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlw
ZUtleTogQChwaXhlbEZvcm1hdCksCiAgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBp
eGVsQnVmZmVyQ0dJbWFnZUNvbXBhdGliaWxpdHlLZXk6IChjdkltYWdlQ29tcGF0aWJpbGl0eSA9
PSBJc0NHSW1hZ2VDb21wYXRpYmxlOjpZZXMgPyBAWUVTIDogQE5PKSwKKyAgICAgICAgKF9fYnJp
ZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VQcm9wZXJ0aWVzS2V5IDogQHsg
fQogICAgIH07CiAgICAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcmF3UG9vbCA9IG51bGxwdHI7CiAg
ICAgaWYgKGF1dG8gZXJyID0gQ1ZQaXhlbEJ1ZmZlclBvb2xDcmVhdGUoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgbnVsbHB0ciwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilwaXhlbEF0dHJpYnV0ZXMs
ICZyYXdQb29sKTsgZXJyICE9IG5vRXJyKQpAQCAtMTA2LDYgKzExMywyMCBAQCBSZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6cm90YXRlKENWUGl4ZWxC
dWZmZXJSZWYgcGl4ZQogICAgIHJldHVybiBudWxscHRyOwogfQogCitSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6cm90YXRlKE1lZGlhU2FtcGxlJiBz
YW1wbGUsIGNvbnN0IFJvdGF0aW9uUHJvcGVydGllcyYgcm90YXRpb24sIElzQ0dJbWFnZUNvbXBh
dGlibGUgY3ZJbWFnZUNvbXBhdGliaWxpdHkpCit7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0
YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIo
c2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKSk7CisgICAgQVNT
RVJUKHBpeGVsQnVmZmVyKTsKKyAgICBpZiAoIXBpeGVsQnVmZmVyKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIEludFNpemUgc2l6ZSB7IChpbnQpQ1ZQaXhlbEJ1ZmZlckdldFdpZHRo
KHBpeGVsQnVmZmVyKSwgKGludClDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KHBpeGVsQnVmZmVyKSB9
OworICAgIGlmIChyb3RhdGlvbiAhPSBtX3JvdGF0aW9uUHJvcGVydGllcyB8fCBtX3NpemUgIT0g
c2l6ZSkKKyAgICAgICAgaW5pdGlhbGl6ZShyb3RhdGlvbiwgc2l6ZSwgQ1ZQaXhlbEJ1ZmZlckdl
dFBpeGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlciksIGN2SW1hZ2VDb21wYXRpYmlsaXR5KTsKKwor
ICAgIHJldHVybiByb3RhdGUocGl4ZWxCdWZmZXIpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZS5oCmluZGV4IDM5Yjk5NzYxZmI0MWVlMTZkNDhkMzg1Y2UxZTNiZDQ0NDYwMTRhMmQu
LjFiOWQ2YTI0NDljNTIxMzY0ZGQzMmNiNDBiMzk2NzY5NWFmMjU0MGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlLmgKQEAgLTIwMCw2ICsyMDAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGF5
U2FtcGxlcyhTZWNvbmRzKSB7IH07CiAgICAgdm9pZCBzZXRJbnRlcnJ1cHRlZEZvclRlc3Rpbmco
Ym9vbCk7CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sKSB7
IHJldHVybiBmYWxzZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZShU
eXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJRCA9IHsgfSwgU3RyaW5nJiYgaGFz
aFNhbHQgPSB7IH0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcAppbmRl
eCBkOWE3N2E4NmIxMDk4NzliOTI4OGJmOWE3Nzc4YmI0YmI1ZGZhMTk4Li44MWM2YTlhNzUxNWRj
MjA2MjEwMWQ1NDM0ZDQ5MWZhZDA0Mjg3MTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRl
b1NvdXJjZS5jcHAKQEAgLTgwLDYgKzgwLDIxIEBAIHZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlOjpzZXRTb3VyY2UoUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYmIG5ld1NvCiB7
CiAgICAgQVNTRVJUKCFtX3ZpZGVvU291cmNlLT5oYXNPYnNlcnZlcigqdGhpcykpOwogICAgIG1f
dmlkZW9Tb3VyY2UgPSBXVEZNb3ZlKG5ld1NvdXJjZSk7CisKKyAgICBpZiAoIW1fYXJlU2lua3NB
c2tpbmdUb0FwcGx5Um90YXRpb24pCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIW1fdmlkZW9T
b3VyY2UtPnNvdXJjZSgpLnNldFNob3VsZEFwcGx5Um90YXRpb24odHJ1ZSkpCisgICAgICAgIG1f
c2hvdWxkQXBwbHlSb3RhdGlvbiA9IHRydWU7Cit9CisKK3ZvaWQgUmVhbHRpbWVPdXRnb2luZ1Zp
ZGVvU291cmNlOjphcHBseVJvdGF0aW9uKCkKK3sKKyAgICBpZiAobV9hcmVTaW5rc0Fza2luZ1Rv
QXBwbHlSb3RhdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9hcmVTaW5rc0Fza2luZ1Rv
QXBwbHlSb3RhdGlvbiA9IHRydWU7CisgICAgaWYgKCFtX3ZpZGVvU291cmNlLT5zb3VyY2UoKS5z
ZXRTaG91bGRBcHBseVJvdGF0aW9uKHRydWUpKQorICAgICAgICBtX3Nob3VsZEFwcGx5Um90YXRp
b24gPSB0cnVlOwogfQogCiB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c3RvcCgp
CkBAIC0xMzUsNyArMTUwLDcgQEAgdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OkFk
ZE9yVXBkYXRlU2luayhydGM6OlZpZGVvU2lua0ludGVyZmFjZTx3ZWJydGMKICAgICBBU1NFUlQo
IXNpbmtXYW50cy5ibGFja19mcmFtZXMpOwogCiAgICAgaWYgKHNpbmtXYW50cy5yb3RhdGlvbl9h
cHBsaWVkKQotICAgICAgICBtX3Nob3VsZEFwcGx5Um90YXRpb24gPSB0cnVlOworICAgICAgICBh
cHBseVJvdGF0aW9uKCk7CiAKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fc2lua3NMb2Nr
KTsKICAgICBtX3NpbmtzLmFkZChzaW5rKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNl
LmgKaW5kZXggZTJhNDhkMDgyNzdjZTMxMGY2N2IwMDA4YWUwMGVmODE4NjBkOThlNi4uYTY2NTZj
ZWY5MTI4YTRiMGY2M2M1NGJjY2U3YTI2M2M4MWE3ZTg5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2lu
Z1ZpZGVvU291cmNlLmgKQEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
cnRjOjpSZWZDb3VudFJlbGVhc2VTdGF0dXM6OmtPdGhlclJlZnNSZW1haW5lZDsKICAgICB9CiAK
LSAgICB2b2lkIHNldEFwcGx5Um90YXRpb24oYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKSB7IG1f
c2hvdWxkQXBwbHlSb3RhdGlvbiA9IHNob3VsZEFwcGx5Um90YXRpb247IH0KKyAgICB2b2lkIGFw
cGx5Um90YXRpb24oKTsKIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFJlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZShSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYpOwpAQCAtMTM0LDYg
KzEzNCw3IEBAIHByaXZhdGU6CiAKICAgICBtdXRhYmxlIFJlY3Vyc2l2ZUxvY2sgbV9zaW5rc0xv
Y2s7CiAgICAgSGFzaFNldDxydGM6OlZpZGVvU2lua0ludGVyZmFjZTx3ZWJydGM6OlZpZGVvRnJh
bWU+Kj4gbV9zaW5rczsKKyAgICBib29sIG1fYXJlU2lua3NBc2tpbmdUb0FwcGx5Um90YXRpb24g
eyBmYWxzZSB9OwogCiAgICAgYm9vbCBtX2VuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX211
dGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggZDFlNmI5OWVk
ZmU5MDFiMTg5MDM3NjgzZDE0YTA0NGY0MDcwYTUyZi4uODAyY2E2ZjFkOTA4ZThjM2RlYjdhMzUy
ZDRhOGUyNGEyODk1YWI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTM1LDYg
KzM1LDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0F1ZGlvU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9NZWRpYUNvbnN0cmFpbnRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgpAQCAt
OTYsNiArOTcsOCBAQCBwdWJsaWM6CiAgICAgICAgIG1fc291cmNlLT5yZXF1ZXN0VG9FbmQoKnRo
aXMpOwogICAgIH0KIAorICAgIHZvaWQgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sIHNob3Vs
ZEFwcGx5Um90YXRpb24pIHsgbV9zaG91bGRBcHBseVJvdGF0aW9uID0gdHJ1ZTsgfQorCiBwcml2
YXRlOgogICAgIHZvaWQgc291cmNlU3RvcHBlZCgpIGZpbmFsIHsKICAgICAgICAgaWYgKG1fc291
cmNlLT5jYXB0dXJlRGlkRmFpbCgpKSB7CkBAIC0xMzUsNyArMTM4LDEyIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlKSBmaW5hbAog
ICAgIHsKICNpZiBIQVZFKElPU1VSRkFDRSkKLSAgICAgICAgYXV0byByZW1vdGVTYW1wbGUgPSBS
ZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKHNhbXBsZSk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxSZW1vdGVWaWRlb1NhbXBsZT4gcmVtb3RlU2FtcGxlOworICAgICAgICBpZiAobV9zaG91bGRB
cHBseVJvdGF0aW9uICYmIHNhbXBsZS52aWRlb1JvdGF0aW9uKCkgIT0gTWVkaWFTYW1wbGU6OlZp
ZGVvUm90YXRpb246Ok5vbmUpIHsKKyAgICAgICAgICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSByb3Rh
dGVQaXhlbEJ1ZmZlcihzYW1wbGUpOworICAgICAgICAgICAgcmVtb3RlU2FtcGxlID0gUmVtb3Rl
VmlkZW9TYW1wbGU6OmNyZWF0ZShwaXhlbEJ1ZmZlci5nZXQoKSwgc2FtcGxlLnByZXNlbnRhdGlv
blRpbWUoKSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcmVtb3RlU2FtcGxlID0gUmVt
b3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShzYW1wbGUpOwogICAgICAgICBpZiAocmVtb3RlU2FtcGxl
KQogICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6UmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUobV9pZCwgV1RGTW92ZSgqcmVt
b3RlU2FtcGxlKSksIDApOwogI2Vsc2UKQEAgLTE0Myw2ICsxNTEsMzAgQEAgcHJpdmF0ZToKICNl
bmRpZgogICAgIH0KIAorICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiByb3RhdGVQaXhl
bEJ1ZmZlcihNZWRpYVNhbXBsZSYgc2FtcGxlKQorICAgIHsKKyAgICAgICAgaWYgKCFtX3JvdGF0
aW9uU2Vzc2lvbikKKyAgICAgICAgICAgIG1fcm90YXRpb25TZXNzaW9uID0gbWFrZVVuaXF1ZTxJ
bWFnZVJvdGF0aW9uU2Vzc2lvblZUPigpOworCisgICAgICAgIEltYWdlUm90YXRpb25TZXNzaW9u
VlQ6OlJvdGF0aW9uUHJvcGVydGllcyByb3RhdGlvbjsKKyAgICAgICAgc3dpdGNoIChzYW1wbGUu
dmlkZW9Sb3RhdGlvbigpKSB7CisgICAgICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRp
b246Ok5vbmU6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAg
IHJvdGF0aW9uLmFuZ2xlID0gMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1l
ZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpVcHNpZGVEb3duOgorICAgICAgICAgICAgcm90YXRp
b24uYW5nbGUgPSAxODA7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNZWRpYVNh
bXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQ6CisgICAgICAgICAgICByb3RhdGlvbi5hbmdsZSA9
IDkwOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVv
Um90YXRpb246OkxlZnQ6CisgICAgICAgICAgICByb3RhdGlvbi5hbmdsZSA9IDI3MDsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtX3JvdGF0aW9uU2Vzc2lv
bi0+cm90YXRlKHNhbXBsZSwgcm90YXRpb24sIEltYWdlUm90YXRpb25TZXNzaW9uVlQ6OklzQ0dJ
bWFnZUNvbXBhdGlibGU6Ok5vKTsKKyAgICB9CisKICAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKFNo
YXJlZE1lbW9yeSogc3RvcmFnZSkgZmluYWwgewogICAgICAgICBTaGFyZWRNZW1vcnk6OkhhbmRs
ZSBoYW5kbGU7CiAgICAgICAgIGlmIChzdG9yYWdlKQpAQCAtMTY0LDYgKzE5Niw4IEBAIHByaXZh
dGU6CiAgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OwogICAg
IGludDY0X3QgbV9udW1iZXJPZkZyYW1lcyB7IDAgfTsKICAgICBib29sIG1faXNFbmRlZCB7IGZh
bHNlIH07CisgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlUm90YXRpb25TZXNzaW9uVlQ+IG1fcm90
YXRpb25TZXNzaW9uOworICAgIGJvb2wgbV9zaG91bGRBcHBseVJvdGF0aW9uIHsgZmFsc2UgfTsK
IH07CiAKIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkoVW5pcXVlUmVmPENvbm5lY3Rpb25Qcm94eT4mJiBjb25uZWN0aW9uUHJveHkpCkBA
IC0yNzcsNiArMzExLDEyIEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6cmVx
dWVzdFRvRW5kKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIHNvCiAgICAgICAgIHByb3h5
LT5yZXF1ZXN0VG9FbmQoKTsKIH0KIAordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIHNv
dXJjZUlELCBib29sIHNob3VsZEFwcGx5Um90YXRpb24pCit7CisgICAgaWYgKGF1dG8qIHByb3h5
ID0gbV9wcm94aWVzLmdldChzb3VyY2VJRCkpCisgICAgICAgIHByb3h5LT5zZXRTaG91bGRBcHBs
eVJvdGF0aW9uKHNob3VsZEFwcGx5Um90YXRpb24pOworfQorCiB2b2lkIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OmNsZWFyKCkKIHsKICAgICBtX3Byb3hpZXMuY2xlYXIoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuaAppbmRleCAyY2QxMDI3MTA1OWY2MzY2OWMwOWMyZWM5YTIxYTcwZGFk
YzI0NGFiLi43NzI2YTI3ODAzZGE5Nzk0MTBhMGEyYTc3ZTYwN2E1NTYwMzA2MDY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5oCkBAIC03OCw2ICs3OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBh
cHBseUNvbnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJik7CiAgICAgdm9pZCBjbG9uZShXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZWRJRCwgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgY2xvbmVJRCk7CiAgICAgdm9pZCByZXF1ZXN0VG9FbmQo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgc2V0U2hv
dWxkQXBwbHlSb3RhdGlvbihXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwg
Ym9vbCBzaG91bGRBcHBseVJvdGF0aW9uKTsKIAogICAgIGNsYXNzIFNvdXJjZVByb3h5OwogICAg
IGZyaWVuZCBjbGFzcyBTb3VyY2VQcm94eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluCmluZGV4IGM0ZDVkYjY5NTY3OTAwYzIzMzljYzBmZTc5YTA2MGY2MWIzNzE1
MTUuLjI1NzE2MzI2NzVlMTkwMmFmNThkYmQ4NTU3MmIzNzZlNzZhODZkNWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzIsNiArMzIsNyBAQCBtZXNz
YWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAg
IEFwcGx5Q29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
aWQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKQogICAgIENs
b25lKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGNsb25lZElELCBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZUlEKQogICAgIFJlcXVlc3RU
b0VuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBzb3VyY2VJRCkKKyAg
ICBTZXRTaG91bGRBcHBseVJvdGF0aW9uKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIHNvdXJjZUlELCBib29sIHNob3VsZEFwcGx5Um90YXRpb24pCiB9CiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5jcHAKaW5kZXggYmQ0M2RmNWI4ZmQ0MjczZGVkNTI1NTJiYjA0MTFmNjdh
MGYzNzhkNC4uMDUyYjk1NTdmOWJmZTAxNDM4ZmFhZmM4YTc3ZDY2ZTNlNGQxZTdmMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuY3BwCkBAIC0yNDksNiArMjQ5LDggQEAgcHJpdmF0ZToKICAgICAvLyBSZWFs
dGltZU1lZGlhU291cmNlCiAgICAgdm9pZCBiZWdpbkNvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0K
ICAgICB2b2lkIGNvbW1pdENvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KKyAgICBib29sIHNldFNo
b3VsZEFwcGx5Um90YXRpb24oYm9vbCAvKiBzaG91bGRBcHBseVJvdGF0aW9uICovKSBmaW5hbDsK
KwogCiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHMmLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmKSBmaW5hbDsKIApAQCAtNDI5LDYgKzQz
MSwxMiBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnN0b3BQcm9kdWNp
bmdEYXRhKCkKICAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OlN0b3BQcm9kdWNpbmdEYXRhKG1faWQpLCAwKTsKIH0KIAorYm9vbCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJv
b2wgc2hvdWxkQXBwbHlSb3RhdGlvbikKK3sKKyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNldFNob3VsZEFwcGx5Um90YXRpb24o
bV9pZCwgc2hvdWxkQXBwbHlSb3RhdGlvbiksIDApOworICAgIHJldHVybiB0cnVlOworfQorCiBj
b25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6U291cmNlOjpjYXBhYmlsaXRpZXMoKQogewogICAgIHJldHVybiBtX2Nh
cGFiaWxpdGllczsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA2ODU3NDNmODFjYjY5YTEyNDc5OGM5YjJmMTM5MGJlOTcyMzE4
Y2FlLi44ODdhMDAxODEwNDU0YzliMDcwODYxZGI3YjE1OTQzODU2OWU4ZWQ5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMjAtMDMtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgorCisgICAgICAgIEFwcGx5IHJvdGF0aW9uIGF0IHNvdXJjZSBsZXZlbCBpZiBXZWJSVEMgc2lu
ayBhc2sgc28KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNTY0NQorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAq
IHdlYnJ0Yy92aWRlby1yb3RhdGlvbi1uby1jdm8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJydGMvdmlkZW8tcm90YXRpb24tbm8tY3ZvLmh0bWw6IEFkZGVkLgorCiAyMDIwLTAz
LTEyICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQ
RV0gR2FyZGVuaW5nLCB1cGRhdGUgVGVzdEV4cGVjdGF0aW9ucyBhbmQgYmFzZWxpbmVzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tcm90YXRpb24tbm8tY3ZvLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3dlYnJ0Yy92aWRlby1yb3RhdGlvbi1uby1jdm8tZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQyOWU4YmE2MDljMjA4MzU2YmI4MTk3MzgwOWY0NmYyOGI2NTE1NTcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tcm90YXRpb24tbm8t
Y3ZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKyAgCisKK1BBU1MgVGVzdGluZyB2aWRl
byBleGNoYW5nZSB3aXRoIHJvdGF0aW9uIGFwcGxpZWQgYmVmb3JlIHRyYW5zbWlzc2lvbiAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLXJvdGF0aW9uLW5vLWN2by5odG1s
IGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLXJvdGF0aW9uLW5vLWN2by5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ0ZDk3ZjEzNDFiNjIzNDZiODNhMGY5NGUwYzNhYWJkMDBiMjNkZTUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tcm90YXRpb24tbm8tY3ZvLmh0bWwKQEAg
LTAsMCArMSw0MiBAQAorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVDYXB0dXJlVmlk
ZW9JblVJUHJvY2Vzcz10cnVlIF0gLS0+Cis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxo
ZWFkPgorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgICAgIDx0aXRsZT5UZXN0
aW5nIHZpZGVvIHJvdGF0aW9uIHdpdGhvdXQgQ1ZPPC90aXRsZT4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAg
IDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHZpZGVvIGlkPSJsb2NhbFZpZGVvIiBhdXRv
cGxheSBwbGF5c0lubGluZSB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC92aWRlbz4KKyAgICAg
ICAgPHZpZGVvIGlkPSJyZW1vdGVWaWRlbyIgYXV0b3BsYXkgcGxheXNJbmxpbmUgd2lkdGg9IjMy
MCIgaGVpZ2h0PSIyNDAiPjwvdmlkZW8+CisgICAgICAgIDxzY3JpcHQgc3JjID0icm91dGluZXMu
anMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0
KSA9PiB7CisgICAgY29uc3QgbG9jYWxTdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYSh7IHZpZGVvOiB7IHdpZHRoOiAzMjAsIGhlaWdodDogMjQwIH0gfSk7
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5z
ZXRNb2NrQ2FtZXJhT3JpZW50YXRpb24oOTApOworCisgICAgbG9jYWxWaWRlby5zcmNPYmplY3Qg
PSBsb2NhbFN0cmVhbTsKKyAgICBjb25zdCByZW1vdGVTdHJlYW0gPSBhd2FpdCBuZXcgUHJvbWlz
ZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIHRyYWNrID0gbG9jYWxTdHJlYW0uZ2V0
VmlkZW9UcmFja3MoKVswXTsKKworICAgICAgICBjcmVhdGVDb25uZWN0aW9ucygoZmlyc3RDb25u
ZWN0aW9uKSA9PiB7CisgICAgICAgICAgICBmaXJzdENvbm5lY3Rpb24uYWRkVHJhY2sodHJhY2ss
IGxvY2FsU3RyZWFtKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICAgICAgICAgIGludGVybmFscy5hcHBseVJvdGF0aW9uRm9yT3V0Z29pbmdWaWRlb1NvdXJjZXMo
Zmlyc3RDb25uZWN0aW9uKTsKKyAgICAgICAgfSwgKHNlY29uZENvbm5lY3Rpb24pID0+IHsKKyAg
ICAgICAgICAgIHNlY29uZENvbm5lY3Rpb24ub250cmFjayA9ICh0cmFja0V2ZW50KSA9PiB7Cisg
ICAgICAgICAgICAgICAgcmVzb2x2ZSh0cmFja0V2ZW50LnN0cmVhbXNbMF0pOworICAgICAgICAg
ICAgfTsKKyAgICAgICAgfSk7CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0
IHRpbWVkIG91dCIpLCA1MDAwKTsKKyAgICB9KTsKKworICAgIHJlbW90ZVZpZGVvLnNyY09iamVj
dCA9IHJlbW90ZVN0cmVhbTsKKyAgICBhd2FpdCByZW1vdGVWaWRlby5wbGF5KCk7CisgICAgYXdh
aXQgd2FpdEZvclZpZGVvU2l6ZShyZW1vdGVWaWRlbywgMjQwLCAzMjApOworfSwgIlRlc3Rpbmcg
dmlkZW8gZXhjaGFuZ2Ugd2l0aCByb3RhdGlvbiBhcHBsaWVkIGJlZm9yZSB0cmFuc21pc3Npb24i
KTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393644</attachid>
            <date>2020-03-16 03:51:54 -0700</date>
            <delta_ts>2020-03-16 05:34:40 -0700</delta_ts>
            <desc>Potential build fix</desc>
            <filename>bug-205645-20200316115150.patch</filename>
            <type>text/plain</type>
            <size>24638</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NDg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTMxNDU1NDkwMjM0YjRh
ODFlNjY2YWRlNjZhZDdhNzc5OWYxY2VhNi4uN2Y4ZmUzNjAzNzBmNTZlZDU0ZmVkMDFmZTAxMTVj
MTE3ZGE3M2ZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTAzLTE2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBcHBseSByb3RhdGlvbiBh
dCBzb3VyY2UgbGV2ZWwgaWYgV2ViUlRDIHNpbmsgYXNrIHNvCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2NDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRkIGEgdmlydHVhbCBtZXRob2QgdG8gUmVhbHRp
bWVNZWRpYVNvdXJjZSB0byBwYXNzIHRoZSBpbmZvcm1hdGlvbiB0aGF0IHRoZSBzaW5rIHByZWZl
cnMgdGhlIGZyYW1lcyB0byBiZSByb3RhdGVkIGJlZm9yZSBzZW5kaW5nIHRoZW0uCityICAgICAg
IEJ5IGRlZmF1bHQsIHRoZSBtZXRob2QgZG9lcyBub3RoaW5nIGFuZCBSZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2Ugd2lsbCBjb250aW51ZSB0byBkbyB0aGUgcm90YXRpb24gaXRzZWxmLgorICAg
ICAgICBVcGRhdGUgSW1hZ2VSb3RhdGlvblNlc3Npb25WVCB0byBiZSBtb3JlIGVhc2lseSB1c2Fi
bGUgYnkgdXNlcnMgaGF2aW5nIE1lZGlhU2FtcGxlIGluc3RlYWQgb2YgQ1ZQaXhlbEJ1ZmZlci4K
KyAgICAgICAgVXBkYXRlIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZSB0byB1c2UgdGhhdCBy
b3V0aW5lOiB3aGVuZXZlciBhcHBseWluZyByb3RhdGlvbiBpcyBuZWVkZWQsCisgICAgICAgIGl0
IHdpbGwgYXNrIGl0cyB0cmFjayBzb3VyY2UgdG8gYXBwbHkgcm90YXRpb24uIElmIHRoZSB0cmFj
ayBzb3VyY2UgY2Fubm90IGRvIGl0LCBpdCB3aWxsIGRvIGl0IG9uIGl0cyBvd24uCisKKyAgICAg
ICAgVGVzdDogd2VicnRjL3ZpZGVvLXJvdGF0aW9uLW5vLWN2by5odG1sCisKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tl
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5k
OjphcHBseVJvdGF0aW9uRm9yT3V0Z29pbmdWaWRlb1NvdXJjZXMpOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULmg6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRv
cj09KToKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yIT0pOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2N2L0ltYWdlUm90YXRpb25TZXNzaW9uVlQubW06CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpJbWFnZVJvdGF0aW9uU2Vzc2lvblZUKToKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlUm90YXRpb25TZXNzaW9uVlQ6OmluaXRpYWxpemUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6cm90YXRlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c2V0U291cmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6YXBwbHlSb3RhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OkFkZE9y
VXBkYXRlU2luayk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlLmg6CisKIDIwMjAtMDMtMTYgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlh
LmNvbT4KIAogICAgICAgICBSZW1vdmUgYWRkSFRUUE9yaWdpbklmTmVlZGVkIGNhbGxzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDcwZmY2ZTBiOTg5OTM0OWUzMzgyZWVlNzgxYjM5NjU3MmUzZGE3MWUuLmM1YzFjZTQ1
ODhkOTE4MzQxOGNjMTViZmI5NTU5ODAyNzhmZDE1NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMjAtMDMtMTYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIEFwcGx5IHJvdGF0aW9uIGF0IHNvdXJjZSBsZXZlbCBpZiBXZWJSVEMgc2luayBhc2sgc28K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTY0NQor
CisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBJbXBsZW1lbnQg
UmVhbHRpbWVNZWRpYVNvdXJjZSBzZXRTaG91bGRBcHBseVJvdGF0aW9uIGJ5IHNlbmRpbmcgSVBD
IHRvIGNhcHR1cmUgcHJvY2Vzcy4KKyAgICAgICAgSW4gY2FwdHVyZSBwcm9jZXNzLCBpZiByb3Rh
dGlvbiBzaG91bGQgYmUgYXBwbGllZCwgdXNlIGFuIEltYWdlUm90YXRpb25TZXNzaW9uVlQgc2Vz
c2lvbiB0byBhcHBseSBpdCBiZWZvcmUgc2VuZGluZyB0aGUgdmlkZW8gZnJhbWUuCisgICAgICAg
IFRoaXMgYWxsb3dzIFdlYlByb2Nlc3MgdG8gbm8gbG9uZ2VyIG5lZWQgYW4gSW1hZ2VSb3RhdGlv
blNlc3Npb25WVCBmb3IgV2ViUlRDLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eTo6c2V0U2hvdWxkQXBwbHlSb3RhdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVBy
b3h5Ojpyb3RhdGVQaXhlbEJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OnNldFNob3VsZEFwcGx5Um90YXRpb24pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldFNob3Vs
ZEFwcGx5Um90YXRpb24pOgorCiAyMDIwLTAzLTE2ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5j
b20+CiAKICAgICAgICAgU2ltcGxpZnkgQ2hyb21lQ2xpZW50LmNyZWF0ZVdpbmRvdwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKaW5k
ZXggZjBlYzNhOWExZDY2MWUyMTY4ZjYxMGQzODE2ZTIxZWY5ODQ4MjgxMS4uYmY3M2EwYWE4ZDMy
NjQ4NTcxODZjMWFmNDA3YjIwMDdkNmYwNTBlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNr
ZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCkBAIC01MTMsNyArNTEzLDcgQEAg
dm9pZCBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmFwcGx5Um90YXRpb25Gb3JPdXRn
b2luZ1ZpZGVvU291cmNlcygpCiAgICAgZm9yIChhdXRvJiB0cmFuc2NlaXZlciA6IG1fcGVlckNv
bm5lY3Rpb24uY3VycmVudFRyYW5zY2VpdmVycygpKSB7CiAgICAgICAgIGlmICghdHJhbnNjZWl2
ZXItPnNlbmRlcigpLmlzU3RvcHBlZCgpKSB7CiAgICAgICAgICAgICBpZiAoYXV0byogdmlkZW9T
b3VyY2UgPSBiYWNrZW5kRnJvbVJUUFNlbmRlcih0cmFuc2NlaXZlci0+c2VuZGVyKCkpLnZpZGVv
U291cmNlKCkpCi0gICAgICAgICAgICAgICAgdmlkZW9Tb3VyY2UtPnNldEFwcGx5Um90YXRpb24o
dHJ1ZSk7CisgICAgICAgICAgICAgICAgdmlkZW9Tb3VyY2UtPmFwcGx5Um90YXRpb24oKTsKICAg
ICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA3M2YzYTlmOGI2NWUzZDE3ZDk4Y2RhMmZkZmQyMDI2ZjVl
MjA5MTE0Li41MDAwMTFmMGY3NGUwYzFkMjM2NWE4MGU1ZTVkM2E4N2I4MDg4ZDY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00
MDY4LDcgKzQwNjgsNyBAQAogCQlDRDFFNzM0NzE2N0JDNzhFMDA5QTg4NUQgLyogVGV4dFRyYWNr
UmVwcmVzZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0QxRTczNDYxNjdCQzc4RTAwOUE4ODVEIC8qIFRleHRUcmFja1JlcHJlc2VudGF0
aW9uLmNwcCAqLzsgfTsKIAkJQ0QyMjVDMEIxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VS
TFNlc3Npb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDIyNUMwOTFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSAqLzsg
fTsKIAkJQ0QyMjVDMEMxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjI1QzBBMUM0
NkZCRjQwMDE0MDc2MSAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQ0QyN0FFNTAyMkE5ODY4NzAwOTQ3RkY5
IC8qIEltYWdlUm90YXRpb25TZXNzaW9uVlQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENEMjdBRTRFMjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFnZVJvdGF0
aW9uU2Vzc2lvblZULmggKi87IH07CisJCUNEMjdBRTUwMjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFn
ZVJvdGF0aW9uU2Vzc2lvblZULmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDI3QUU0RTIyQTk4Njg3MDA5NDdGRjkgLyogSW1hZ2VSb3RhdGlvblNlc3Np
b25WVC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUNEMjdBRTUxMjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFnZVJvdGF0aW9uU2Vzc2lvblZULm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyN0FFNEYyMkE5
ODY4NzAwOTQ3RkY5IC8qIEltYWdlUm90YXRpb25TZXNzaW9uVlQubW0gKi87IH07CiAJCUNEMkY0
QTI0MThEODlGNzAwMDYzNzQ2RCAvKiBBdWRpb0hhcmR3YXJlTGlzdGVuZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMkY0QTIyMThEODlGNzAwMDYz
NzQ2RCAvKiBBdWRpb0hhcmR3YXJlTGlzdGVuZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDJGNEEyODE4RDhBMzQ5MDA2Mzc0NkQgLyogQXVk
aW9IYXJkd2FyZUxpc3RlbmVyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDJGNEEyNjE4RDhBMzQ5MDA2Mzc0NkQgLyogQXVkaW9IYXJkd2FyZUxp
c3RlbmVyTWFjLmggKi87IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULmgKaW5kZXggNjAwMWJiNzBh
MTAwNDE3NDQxMDkyMTM2ZjNmZTViNjE3NjJjYjBjZi4uMmRkZjQ5NjFhYTY4NjdiN2UyZWExM2Q4
YmRjNTAzNTc0MzVkNTBhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlUm90YXRpb25TZXNzaW9uVlQuaApAQCAtMzYsNiArMzYs
OCBAQCB0eXBlZGVmIHN0cnVjdCBfX0NWUGl4ZWxCdWZmZXJQb29sKiBDVlBpeGVsQnVmZmVyUG9v
bFJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBNZWRpYVNhbXBsZTsKKwogY2xh
c3MgSW1hZ2VSb3RhdGlvblNlc3Npb25WVCBmaW5hbCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CkBAIC01Miw4ICs1NCw5IEBAIHB1YmxpYzoKICAgICAgICAgWWVzLAog
ICAgIH07CiAKLSAgICBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUKEFmZmluZVRyYW5zZm9ybSYmLCBG
bG9hdFNpemUsIE9TVHlwZSBwaXhlbEZvcm1hdCwgSXNDR0ltYWdlQ29tcGF0aWJsZSk7Ci0gICAg
SW1hZ2VSb3RhdGlvblNlc3Npb25WVChSb3RhdGlvblByb3BlcnRpZXMmJiwgRmxvYXRTaXplLCBP
U1R5cGUgcGl4ZWxGb3JtYXQsIElzQ0dJbWFnZUNvbXBhdGlibGUpOworICAgIEltYWdlUm90YXRp
b25TZXNzaW9uVlQoQWZmaW5lVHJhbnNmb3JtJiYsIEZsb2F0U2l6ZSwgT1NUeXBlLCBJc0NHSW1h
Z2VDb21wYXRpYmxlKTsKKyAgICBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUKGNvbnN0IFJvdGF0aW9u
UHJvcGVydGllcyYsIEZsb2F0U2l6ZSwgT1NUeXBlLCBJc0NHSW1hZ2VDb21wYXRpYmxlKTsKKyAg
ICBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUKCkgPSBkZWZhdWx0OwogCiAgICAgY29uc3QgT3B0aW9u
YWw8QWZmaW5lVHJhbnNmb3JtPiYgdHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zv
cm07IH0KICAgICBjb25zdCBSb3RhdGlvblByb3BlcnRpZXMmIHJvdGF0aW9uUHJvcGVydGllcygp
IGNvbnN0IHsgcmV0dXJuIG1fcm90YXRpb25Qcm9wZXJ0aWVzOyB9CkBAIC02MSw4ICs2NCwxMyBA
QCBwdWJsaWM6CiAgICAgY29uc3QgRmxvYXRTaXplJiByb3RhdGVkU2l6ZSgpIHsgcmV0dXJuIG1f
cm90YXRlZFNpemU7IH0KIAogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiByb3RhdGUo
Q1ZQaXhlbEJ1ZmZlclJlZik7CisgICAgV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxC
dWZmZXJSZWY+IHJvdGF0ZShNZWRpYVNhbXBsZSYsIGNvbnN0IFJvdGF0aW9uUHJvcGVydGllcyYs
IElzQ0dJbWFnZUNvbXBhdGlibGUpOworCisgICAgYm9vbCBpc01hdGNoaW5nKE1lZGlhU2FtcGxl
JiwgY29uc3QgUm90YXRpb25Qcm9wZXJ0aWVzJik7CiAKIHByaXZhdGU6CisgICAgdm9pZCBpbml0
aWFsaXplKGNvbnN0IFJvdGF0aW9uUHJvcGVydGllcyYsIEZsb2F0U2l6ZSwgT1NUeXBlIHBpeGVs
Rm9ybWF0LCBJc0NHSW1hZ2VDb21wYXRpYmxlKTsKKwogICAgIE9wdGlvbmFsPEFmZmluZVRyYW5z
Zm9ybT4gbV90cmFuc2Zvcm07CiAgICAgUm90YXRpb25Qcm9wZXJ0aWVzIG1fcm90YXRpb25Qcm9w
ZXJ0aWVzOwogICAgIEZsb2F0U2l6ZSBtX3NpemU7CkBAIC03MSw2ICs3OSwxNiBAQCBwcml2YXRl
OgogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUG9vbFJlZj4gbV9yb3RhdGlvblBvb2w7CiB9
OwogCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEltYWdlUm90YXRpb25TZXNzaW9uVlQ6
OlJvdGF0aW9uUHJvcGVydGllcyYgcm90YXRpb24xLCBjb25zdCBJbWFnZVJvdGF0aW9uU2Vzc2lv
blZUOjpSb3RhdGlvblByb3BlcnRpZXMmIHJvdGF0aW9uMikKK3sKKyAgICByZXR1cm4gcm90YXRp
b24xLmZsaXBYID09IHJvdGF0aW9uMi5mbGlwWCAmJiByb3RhdGlvbjEuZmxpcFkgPT0gcm90YXRp
b24yLmZsaXBZICYmIHJvdGF0aW9uMS5hbmdsZSA9PSByb3RhdGlvbjIuYW5nbGU7Cit9CisKK2lu
bGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6Um90YXRp
b25Qcm9wZXJ0aWVzJiByb3RhdGlvbjEsIGNvbnN0IEltYWdlUm90YXRpb25TZXNzaW9uVlQ6OlJv
dGF0aW9uUHJvcGVydGllcyYgcm90YXRpb24yKQoreworICAgIHJldHVybiAhKHJvdGF0aW9uMSA9
PSByb3RhdGlvbjIpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlUm90YXRpb25TZXNzaW9uVlQubW0K
aW5kZXggODhhNWRiNTk1NmVlOGI5NWYxMDhlNDY1NmZjNTdjMWM3ZTBmOWJkNy4uM2M5OGE4MGM1
Mjc1NDA5YTJjODkzOTBiMDRhMjEzZGExY2E2NTM0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZU
Lm1tCkBAIC0yNyw5ICsyNywxMSBAQAogI2luY2x1ZGUgIkltYWdlUm90YXRpb25TZXNzaW9uVlQu
aCIKIAogI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgorI2luY2x1ZGUgIk1lZGlhU2FtcGxl
LmgiCiAKICNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogI2luY2x1ZGUgIlZpZGVvVG9v
bGJveFNvZnRMaW5rLmgiCisjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAog
I2lmIFVTRShWSURFT1RPT0xCT1gpCiAKQEAgLTY0LDExICs2NiwxNiBAQCBJbWFnZVJvdGF0aW9u
U2Vzc2lvblZUOjpJbWFnZVJvdGF0aW9uU2Vzc2lvblZUKEFmZmluZVRyYW5zZm9ybSYmIHRyYW5z
Zm9ybSwgRmxvYQogICAgIG1fdHJhbnNmb3JtID0gV1RGTW92ZSh0cmFuc2Zvcm0pOwogfQogCitJ
bWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpJbWFnZVJvdGF0aW9uU2Vzc2lvblZUKGNvbnN0IFJvdGF0
aW9uUHJvcGVydGllcyYgcm90YXRpb24sIEZsb2F0U2l6ZSBzaXplLCBPU1R5cGUgcGl4ZWxGb3Jt
YXQsIElzQ0dJbWFnZUNvbXBhdGlibGUgY3ZJbWFnZUNvbXBhdGliaWxpdHkpCit7CisgICAgaW5p
dGlhbGl6ZShyb3RhdGlvbiwgc2l6ZSwgcGl4ZWxGb3JtYXQsIGN2SW1hZ2VDb21wYXRpYmlsaXR5
KTsKK30KIAotSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6SW1hZ2VSb3RhdGlvblNlc3Npb25WVChS
b3RhdGlvblByb3BlcnRpZXMmJiByb3RhdGlvbiwgRmxvYXRTaXplIHNpemUsIE9TVHlwZSBwaXhl
bEZvcm1hdCwgSXNDR0ltYWdlQ29tcGF0aWJsZSBjdkltYWdlQ29tcGF0aWJpbGl0eSkKLSAgICA6
IG1fcm90YXRpb25Qcm9wZXJ0aWVzKFdURk1vdmUocm90YXRpb24pKQotICAgICwgbV9zaXplKHNp
emUpCit2b2lkIEltYWdlUm90YXRpb25TZXNzaW9uVlQ6OmluaXRpYWxpemUoY29uc3QgUm90YXRp
b25Qcm9wZXJ0aWVzJiByb3RhdGlvbiwgRmxvYXRTaXplIHNpemUsIE9TVHlwZSBwaXhlbEZvcm1h
dCwgSXNDR0ltYWdlQ29tcGF0aWJsZSBjdkltYWdlQ29tcGF0aWJpbGl0eSkKIHsKKyAgICBtX3Jv
dGF0aW9uUHJvcGVydGllcyA9IHJvdGF0aW9uOworICAgIG1fc2l6ZSA9IHNpemU7CisKICAgICBp
ZiAobV9yb3RhdGlvblByb3BlcnRpZXMuYW5nbGUgPT0gOTAgfHwgbV9yb3RhdGlvblByb3BlcnRp
ZXMuYW5nbGUgPT0gMjcwKQogICAgICAgICBzaXplID0gc2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOwog
CkBAIC04OSw2ICs5Niw3IEBAIEltYWdlUm90YXRpb25TZXNzaW9uVlQ6OkltYWdlUm90YXRpb25T
ZXNzaW9uVlQoUm90YXRpb25Qcm9wZXJ0aWVzJiYgcm90YXRpb24sIEZsCiAgICAgICAgIChfX2Jy
aWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySGVpZ2h0S2V5OiBAKG1fcm90YXRlZFNpemUu
aGVpZ2h0KCkpLAogICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlclBp
eGVsRm9ybWF0VHlwZUtleTogQChwaXhlbEZvcm1hdCksCiAgICAgICAgIChfX2JyaWRnZSBOU1N0
cmluZyAqKWtDVlBpeGVsQnVmZmVyQ0dJbWFnZUNvbXBhdGliaWxpdHlLZXk6IChjdkltYWdlQ29t
cGF0aWJpbGl0eSA9PSBJc0NHSW1hZ2VDb21wYXRpYmxlOjpZZXMgPyBAWUVTIDogQE5PKSwKKyAg
ICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VQcm9wZXJ0
aWVzS2V5IDogQHsgfQogICAgIH07CiAgICAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcmF3UG9vbCA9
IG51bGxwdHI7CiAgICAgaWYgKGF1dG8gZXJyID0gQ1ZQaXhlbEJ1ZmZlclBvb2xDcmVhdGUoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilwaXhl
bEF0dHJpYnV0ZXMsICZyYXdQb29sKTsgZXJyICE9IG5vRXJyKQpAQCAtMTA2LDYgKzExNCwyMCBA
QCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6cm90
YXRlKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZQogICAgIHJldHVybiBudWxscHRyOwogfQogCitSZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6cm90YXRlKE1l
ZGlhU2FtcGxlJiBzYW1wbGUsIGNvbnN0IFJvdGF0aW9uUHJvcGVydGllcyYgcm90YXRpb24sIElz
Q0dJbWFnZUNvbXBhdGlibGUgY3ZJbWFnZUNvbXBhdGliaWxpdHkpCit7CisgICAgYXV0byBwaXhl
bEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0
SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVy
KSk7CisgICAgQVNTRVJUKHBpeGVsQnVmZmVyKTsKKyAgICBpZiAoIXBpeGVsQnVmZmVyKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIEludFNpemUgc2l6ZSB7IChpbnQpQ1ZQaXhlbEJ1
ZmZlckdldFdpZHRoKHBpeGVsQnVmZmVyKSwgKGludClDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KHBp
eGVsQnVmZmVyKSB9OworICAgIGlmIChyb3RhdGlvbiAhPSBtX3JvdGF0aW9uUHJvcGVydGllcyB8
fCBtX3NpemUgIT0gc2l6ZSkKKyAgICAgICAgaW5pdGlhbGl6ZShyb3RhdGlvbiwgc2l6ZSwgQ1ZQ
aXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlciksIGN2SW1hZ2VDb21wYXRp
YmlsaXR5KTsKKworICAgIHJldHVybiByb3RhdGUocGl4ZWxCdWZmZXIpOworfQorCiB9CiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDM5Yjk5NzYxZmI0MWVlMTZkNDhkMzg1Y2UxZTNi
ZDQ0NDYwMTRhMmQuLjFiOWQ2YTI0NDljNTIxMzY0ZGQzMmNiNDBiMzk2NzY5NWFmMjU0MGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlLmgKQEAgLTIwMCw2ICsyMDAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGRlbGF5U2FtcGxlcyhTZWNvbmRzKSB7IH07CiAgICAgdm9pZCBzZXRJbnRlcnJ1cHRl
ZEZvclRlc3RpbmcoYm9vbCk7CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2V0U2hvdWxkQXBwbHlSb3Rh
dGlvbihib29sKSB7IHJldHVybiBmYWxzZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZShUeXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJRCA9IHsgfSwg
U3RyaW5nJiYgaGFzaFNhbHQgPSB7IH0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlLmNwcAppbmRleCBkOWE3N2E4NmIxMDk4NzliOTI4OGJmOWE3Nzc4YmI0YmI1ZGZhMTk4Li41
YjkzM2YxM2JiM2Q2N2QwMGUyMzIxNTIzY2RmY2M3M2JhMDZjZjYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
T3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAKQEAgLTgwLDYgKzgwLDIxIEBAIHZvaWQgUmVhbHRpbWVP
dXRnb2luZ1ZpZGVvU291cmNlOjpzZXRTb3VyY2UoUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
PiYmIG5ld1NvCiB7CiAgICAgQVNTRVJUKCFtX3ZpZGVvU291cmNlLT5oYXNPYnNlcnZlcigqdGhp
cykpOwogICAgIG1fdmlkZW9Tb3VyY2UgPSBXVEZNb3ZlKG5ld1NvdXJjZSk7CisKKyAgICBpZiAo
IW1fYXJlU2lua3NBc2tpbmdUb0FwcGx5Um90YXRpb24pCisgICAgICAgIHJldHVybjsKKyAgICBp
ZiAoIW1fdmlkZW9Tb3VyY2UtPnNvdXJjZSgpLnNldFNob3VsZEFwcGx5Um90YXRpb24odHJ1ZSkp
CisgICAgICAgIG1fc2hvdWxkQXBwbHlSb3RhdGlvbiA9IHRydWU7Cit9CisKK3ZvaWQgUmVhbHRp
bWVPdXRnb2luZ1ZpZGVvU291cmNlOjphcHBseVJvdGF0aW9uKCkKK3sKKyAgICBpZiAobV9hcmVT
aW5rc0Fza2luZ1RvQXBwbHlSb3RhdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9hcmVT
aW5rc0Fza2luZ1RvQXBwbHlSb3RhdGlvbiA9IHRydWU7CisgICAgaWYgKCFtX3ZpZGVvU291cmNl
LT5zb3VyY2UoKS5zZXRTaG91bGRBcHBseVJvdGF0aW9uKHRydWUpKQorICAgICAgICBtX3Nob3Vs
ZEFwcGx5Um90YXRpb24gPSB0cnVlOwogfQogCiB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZTo6c3RvcCgpCkBAIC0xMzUsNyArMTUwLDcgQEAgdm9pZCBSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2U6OkFkZE9yVXBkYXRlU2luayhydGM6OlZpZGVvU2lua0ludGVyZmFjZTx3ZWJydGMK
ICAgICBBU1NFUlQoIXNpbmtXYW50cy5ibGFja19mcmFtZXMpOwogCiAgICAgaWYgKHNpbmtXYW50
cy5yb3RhdGlvbl9hcHBsaWVkKQotICAgICAgICBtX3Nob3VsZEFwcGx5Um90YXRpb24gPSB0cnVl
OworICAgICAgICBhcHBseVJvdGF0aW9uKCk7CiAKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2Nr
KG1fc2lua3NMb2NrKTsKICAgICBtX3NpbmtzLmFkZChzaW5rKTsKQEAgLTE2MSw3ICsxNzYsNyBA
QCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c2VuZEJsYWNrRnJhbWVzSWZOZWVk
ZWQoKQogICAgIGlmICghbV9ibGFja0ZyYW1lKSB7CiAgICAgICAgIGF1dG8gd2lkdGggPSBtX3dp
ZHRoOwogICAgICAgICBhdXRvIGhlaWdodCA9IG1faGVpZ2h0OwotICAgICAgICBpZiAobV9zaG91
bGRBcHBseVJvdGF0aW9uICYmIChtX2N1cnJlbnRSb3RhdGlvbiA9PSB3ZWJydGM6OmtWaWRlb1Jv
dGF0aW9uXzAgfHwgbV9jdXJyZW50Um90YXRpb24gPT0gd2VicnRjOjprVmlkZW9Sb3RhdGlvbl85
MCkpCisgICAgICAgIGlmIChtX3Nob3VsZEFwcGx5Um90YXRpb24gJiYgKG1fY3VycmVudFJvdGF0
aW9uID09IHdlYnJ0Yzo6a1ZpZGVvUm90YXRpb25fMjcwIHx8IG1fY3VycmVudFJvdGF0aW9uID09
IHdlYnJ0Yzo6a1ZpZGVvUm90YXRpb25fOTApKQogICAgICAgICAgICAgc3RkOjpzd2FwKHdpZHRo
LCBoZWlnaHQpOwogICAgICAgICBtX2JsYWNrRnJhbWUgPSBjcmVhdGVCbGFja0ZyYW1lKHdpZHRo
LCBoZWlnaHQpOwogICAgICAgICBBU1NFUlQobV9ibGFja0ZyYW1lKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlLmgKaW5kZXggZTJhNDhkMDgyNzdjZTMxMGY2N2IwMDA4YWUwMGVmODE4
NjBkOThlNi4uYTY2NTZjZWY5MTI4YTRiMGY2M2M1NGJjY2U3YTI2M2M4MWE3ZTg5OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2lu
Z1ZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKQEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gcnRjOjpSZWZDb3VudFJlbGVhc2VTdGF0dXM6OmtPdGhlclJlZnNSZW1h
aW5lZDsKICAgICB9CiAKLSAgICB2b2lkIHNldEFwcGx5Um90YXRpb24oYm9vbCBzaG91bGRBcHBs
eVJvdGF0aW9uKSB7IG1fc2hvdWxkQXBwbHlSb3RhdGlvbiA9IHNob3VsZEFwcGx5Um90YXRpb247
IH0KKyAgICB2b2lkIGFwcGx5Um90YXRpb24oKTsKIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0
IFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZShSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+
JiYpOwpAQCAtMTM0LDYgKzEzNCw3IEBAIHByaXZhdGU6CiAKICAgICBtdXRhYmxlIFJlY3Vyc2l2
ZUxvY2sgbV9zaW5rc0xvY2s7CiAgICAgSGFzaFNldDxydGM6OlZpZGVvU2lua0ludGVyZmFjZTx3
ZWJydGM6OlZpZGVvRnJhbWU+Kj4gbV9zaW5rczsKKyAgICBib29sIG1fYXJlU2lua3NBc2tpbmdU
b0FwcGx5Um90YXRpb24geyBmYWxzZSB9OwogCiAgICAgYm9vbCBtX2VuYWJsZWQgeyB0cnVlIH07
CiAgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAK
aW5kZXggM2Q5ZjI4MzU1NjBmYjA4MDQ5MTliZmE3MDY3MzllMGZjZTEwM2E4NC4uOWQ2ZmJhZjJl
YjE3N2Q2ZWUyNjZmMjQzNjJlNjgyZWVjZWFjOWIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5n
QnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRl
b1NhbXBsZS5oPgpAQCAtOTYsNiArOTcsOCBAQCBwdWJsaWM6CiAgICAgICAgIG1fc291cmNlLT5y
ZXF1ZXN0VG9FbmQoKnRoaXMpOwogICAgIH0KIAorICAgIHZvaWQgc2V0U2hvdWxkQXBwbHlSb3Rh
dGlvbihib29sIHNob3VsZEFwcGx5Um90YXRpb24pIHsgbV9zaG91bGRBcHBseVJvdGF0aW9uID0g
dHJ1ZTsgfQorCiBwcml2YXRlOgogICAgIHZvaWQgc291cmNlU3RvcHBlZCgpIGZpbmFsIHsKICAg
ICAgICAgaWYgKG1fc291cmNlLT5jYXB0dXJlRGlkRmFpbCgpKSB7CkBAIC0xMzUsNyArMTM4LDEy
IEBAIHByaXZhdGU6CiAgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYg
c2FtcGxlKSBmaW5hbAogICAgIHsKICNpZiBIQVZFKElPU1VSRkFDRSkKLSAgICAgICAgYXV0byBy
ZW1vdGVTYW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKHNhbXBsZSk7CisgICAgICAg
IHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gcmVtb3RlU2FtcGxlOworICAgICAg
ICBpZiAobV9zaG91bGRBcHBseVJvdGF0aW9uICYmIHNhbXBsZS52aWRlb1JvdGF0aW9uKCkgIT0g
TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUpIHsKKyAgICAgICAgICAgIGF1dG8gcGl4
ZWxCdWZmZXIgPSByb3RhdGVQaXhlbEJ1ZmZlcihzYW1wbGUpOworICAgICAgICAgICAgcmVtb3Rl
U2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShwaXhlbEJ1ZmZlci5nZXQoKSwgc2Ft
cGxlLnByZXNlbnRhdGlvblRpbWUoKSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcmVt
b3RlU2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShzYW1wbGUpOwogICAgICAgICBp
ZiAocmVtb3RlU2FtcGxlKQogICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6UmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUobV9p
ZCwgV1RGTW92ZSgqcmVtb3RlU2FtcGxlKSksIDApOwogI2Vsc2UKQEAgLTE0Myw2ICsxNTEsMzAg
QEAgcHJpdmF0ZToKICNlbmRpZgogICAgIH0KIAorICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiByb3RhdGVQaXhlbEJ1ZmZlcihNZWRpYVNhbXBsZSYgc2FtcGxlKQorICAgIHsKKyAgICAg
ICAgaWYgKCFtX3JvdGF0aW9uU2Vzc2lvbikKKyAgICAgICAgICAgIG1fcm90YXRpb25TZXNzaW9u
ID0gbWFrZVVuaXF1ZTxJbWFnZVJvdGF0aW9uU2Vzc2lvblZUPigpOworCisgICAgICAgIEltYWdl
Um90YXRpb25TZXNzaW9uVlQ6OlJvdGF0aW9uUHJvcGVydGllcyByb3RhdGlvbjsKKyAgICAgICAg
c3dpdGNoIChzYW1wbGUudmlkZW9Sb3RhdGlvbigpKSB7CisgICAgICAgIGNhc2UgTWVkaWFTYW1w
bGU6OlZpZGVvUm90YXRpb246Ok5vbmU6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgICAgIHJvdGF0aW9uLmFuZ2xlID0gMDsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpVcHNpZGVEb3duOgorICAg
ICAgICAgICAgcm90YXRpb24uYW5nbGUgPSAxODA7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQ6CisgICAgICAgICAgICBy
b3RhdGlvbi5hbmdsZSA9IDkwOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTWVk
aWFTYW1wbGU6OlZpZGVvUm90YXRpb246OkxlZnQ6CisgICAgICAgICAgICByb3RhdGlvbi5hbmds
ZSA9IDI3MDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHJldHVybiBt
X3JvdGF0aW9uU2Vzc2lvbi0+cm90YXRlKHNhbXBsZSwgcm90YXRpb24sIEltYWdlUm90YXRpb25T
ZXNzaW9uVlQ6OklzQ0dJbWFnZUNvbXBhdGlibGU6Ok5vKTsKKyAgICB9CisKICAgICB2b2lkIHN0
b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSkgZmluYWwgewogICAgICAgICBTaGFy
ZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CiAgICAgICAgIGlmIChzdG9yYWdlKQpAQCAtMTY0LDYg
KzE5Niw4IEBAIHByaXZhdGU6CiAgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3Jp
cHRpb24geyB9OwogICAgIGludDY0X3QgbV9udW1iZXJPZkZyYW1lcyB7IDAgfTsKICAgICBib29s
IG1faXNFbmRlZCB7IGZhbHNlIH07CisgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlUm90YXRpb25T
ZXNzaW9uVlQ+IG1fcm90YXRpb25TZXNzaW9uOworICAgIGJvb2wgbV9zaG91bGRBcHBseVJvdGF0
aW9uIHsgZmFsc2UgfTsKIH07CiAKIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoVW5pcXVlUmVmPENvbm5lY3Rpb25Qcm94eT4mJiBjb25u
ZWN0aW9uUHJveHkpCkBAIC0yNzIsNiArMzA2LDEyIEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6cmVxdWVzdFRvRW5kKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIHNv
CiAgICAgICAgIHByb3h5LT5yZXF1ZXN0VG9FbmQoKTsKIH0KIAordm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKFJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIHNvdXJjZUlELCBib29sIHNob3VsZEFwcGx5Um90YXRpb24pCit7CisgICAg
aWYgKGF1dG8qIHByb3h5ID0gbV9wcm94aWVzLmdldChzb3VyY2VJRCkpCisgICAgICAgIHByb3h5
LT5zZXRTaG91bGRBcHBseVJvdGF0aW9uKHNob3VsZEFwcGx5Um90YXRpb24pOworfQorCiB2b2lk
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNsZWFyKCkKIHsKICAgICBtX3Byb3hpZXMu
Y2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCA0NTJjODE4OGVlNTg0OTdhZGZh
NDIwNWRhMGM0Yjg5MDY3NzVkYjc1Li5hM2Q2ZWYyNDc3YmM0NmEzYmU4NmIzNmFjYjVlNTRiNzQw
MzAxOTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC03OCw2ICs3OCw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJik7CiAgICAgdm9p
ZCBjbG9uZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZWRJRCwg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgY2xvbmVJRCk7CiAgICAgdm9p
ZCByZXF1ZXN0VG9FbmQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwor
ICAgIHZvaWQgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciwgYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKTsKIAogICAgIGNsYXNzIFNv
dXJjZVByb3h5OwogICAgIGZyaWVuZCBjbGFzcyBTb3VyY2VQcm94eTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGJhYWJhY2M2YTJhMTM4YjJiZGI3Mzhj
NTQ5NWE4YTExMTJlNDhjNzIuLjI4ZTkyOTkxMmQ3OTg0MDhjNDdlZDQ5MGNlODEzNTgyMTkzOWYy
MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzEs
NiArMzEsNyBAQCBtZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IE5vdFJl
ZkNvdW50ZWQgewogICAgIEFwcGx5Q29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIGNvbnN0
cmFpbnRzKQogICAgIENsb25lKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGNsb25lZElELCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZUlE
KQogICAgIFJlcXVlc3RUb0VuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBzb3VyY2VJRCkKKyAgICBTZXRTaG91bGRBcHBseVJvdGF0aW9uKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIHNvdXJjZUlELCBib29sIHNob3VsZEFwcGx5Um90YXRpb24p
CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggYmQ0M2RmNWI4ZmQ0MjczZGVk
NTI1NTJiYjA0MTFmNjdhMGYzNzhkNC4uMDUyYjk1NTdmOWJmZTAxNDM4ZmFhZmM4YTc3ZDY2ZTNl
NGQxZTdmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC0yNDksNiArMjQ5LDggQEAgcHJpdmF0
ZToKICAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlCiAgICAgdm9pZCBiZWdpbkNvbmZpZ3VyYXRp
b24oKSBmaW5hbCB7IH0KICAgICB2b2lkIGNvbW1pdENvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0K
KyAgICBib29sIHNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCAvKiBzaG91bGRBcHBseVJvdGF0
aW9uICovKSBmaW5hbDsKKwogCiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMmLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmKSBmaW5hbDsK
IApAQCAtNDI5LDYgKzQzMSwxMiBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3Vy
Y2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKICAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0b3BQcm9kdWNpbmdEYXRhKG1faWQpLCAw
KTsKIH0KIAorYm9vbCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpzZXRTaG91bGRB
cHBseVJvdGF0aW9uKGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbikKK3sKKyAgICBjb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNldFNob3Vs
ZEFwcGx5Um90YXRpb24obV9pZCwgc2hvdWxkQXBwbHlSb3RhdGlvbiksIDApOworICAgIHJldHVy
biB0cnVlOworfQorCiBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzJiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpjYXBhYmlsaXRpZXMoKQogewog
ICAgIHJldHVybiBtX2NhcGFiaWxpdGllczsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4NjhiNTdkNWUzNjBhNGJmYjRjOGQ2
ZDI0NWIzZDU5ZjdhZDA4NzAyLi4xMThmNTVjNDZkYmZjODY1M2I1ZjI1YmRmMjQwYTFmYWM1OWI3
NDNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDMtMTYgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFwcGx5IHJvdGF0aW9uIGF0IHNvdXJjZSBsZXZl
bCBpZiBXZWJSVEMgc2luayBhc2sgc28KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNTY0NQorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNv
bi4KKworICAgICAgICAqIHdlYnJ0Yy92aWRlby1yb3RhdGlvbi1uby1jdm8tZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJydGMvdmlkZW8tcm90YXRpb24tbm8tY3ZvLmh0bWw6IEFk
ZGVkLgorCiAyMDIwLTAzLTE1ICBMYXVybyBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFdQRSBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvdmlk
ZW8tcm90YXRpb24tbm8tY3ZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYnJ0Yy92aWRl
by1yb3RhdGlvbi1uby1jdm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyOWU4YmE2MDljMjA4
MzU2YmI4MTk3MzgwOWY0NmYyOGI2NTE1NTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJydGMvdmlkZW8tcm90YXRpb24tbm8tY3ZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQg
QEAKKyAgCisKK1BBU1MgVGVzdGluZyB2aWRlbyBleGNoYW5nZSB3aXRoIHJvdGF0aW9uIGFwcGxp
ZWQgYmVmb3JlIHRyYW5zbWlzc2lvbiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRj
L3ZpZGVvLXJvdGF0aW9uLW5vLWN2by5odG1sIGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLXJv
dGF0aW9uLW5vLWN2by5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0ZDk3ZjEzNDFiNjIzNDZiODNhMGY5NGUw
YzNhYWJkMDBiMjNkZTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvdmlk
ZW8tcm90YXRpb24tbm8tY3ZvLmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVDYXB0dXJlVmlkZW9JblVJUHJvY2Vzcz10cnVlIF0gLS0+Cis8IWRv
Y3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+CisgICAgICAgIDx0aXRsZT5UZXN0aW5nIHZpZGVvIHJvdGF0aW9uIHdpdGhvdXQgQ1ZP
PC90aXRsZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAg
PHZpZGVvIGlkPSJsb2NhbFZpZGVvIiBhdXRvcGxheSBwbGF5c0lubGluZSB3aWR0aD0iMzIwIiBo
ZWlnaHQ9IjI0MCI+PC92aWRlbz4KKyAgICAgICAgPHZpZGVvIGlkPSJyZW1vdGVWaWRlbyIgYXV0
b3BsYXkgcGxheXNJbmxpbmUgd2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAiPjwvdmlkZW8+CisgICAg
ICAgIDxzY3JpcHQgc3JjID0icm91dGluZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0
PgorcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgY29uc3QgbG9jYWxTdHJlYW0g
PSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IHZpZGVvOiB7IHdp
ZHRoOiAzMjAsIGhlaWdodDogMjQwIH0gfSk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5zZXRNb2NrQ2FtZXJhT3JpZW50YXRpb24oOTApOwor
CisgICAgbG9jYWxWaWRlby5zcmNPYmplY3QgPSBsb2NhbFN0cmVhbTsKKyAgICBjb25zdCByZW1v
dGVTdHJlYW0gPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAg
ICAgIHRyYWNrID0gbG9jYWxTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXTsKKworICAgICAgICBj
cmVhdGVDb25uZWN0aW9ucygoZmlyc3RDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICBmaXJz
dENvbm5lY3Rpb24uYWRkVHJhY2sodHJhY2ssIGxvY2FsU3RyZWFtKTsKKyAgICAgICAgICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgICAgIGludGVybmFscy5hcHBseVJvdGF0
aW9uRm9yT3V0Z29pbmdWaWRlb1NvdXJjZXMoZmlyc3RDb25uZWN0aW9uKTsKKyAgICAgICAgfSwg
KHNlY29uZENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAgIHNlY29uZENvbm5lY3Rpb24ub250
cmFjayA9ICh0cmFja0V2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cmFja0V2
ZW50LnN0cmVhbXNbMF0pOworICAgICAgICAgICAgfTsKKyAgICAgICAgfSk7CisgICAgICAgIHNl
dFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIpLCA1MDAwKTsKKyAgICB9KTsK
KworICAgIHJlbW90ZVZpZGVvLnNyY09iamVjdCA9IHJlbW90ZVN0cmVhbTsKKyAgICBhd2FpdCBy
ZW1vdGVWaWRlby5wbGF5KCk7CisgICAgYXdhaXQgd2FpdEZvclZpZGVvU2l6ZShyZW1vdGVWaWRl
bywgMjQwLCAzMjApOworfSwgIlRlc3RpbmcgdmlkZW8gZXhjaGFuZ2Ugd2l0aCByb3RhdGlvbiBh
cHBsaWVkIGJlZm9yZSB0cmFuc21pc3Npb24iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9i
b2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393649</attachid>
            <date>2020-03-16 05:34:45 -0700</date>
            <delta_ts>2020-03-16 09:41:19 -0700</delta_ts>
            <desc>Potential build fix</desc>
            <filename>bug-205645-20200316133443.patch</filename>
            <type>text/plain</type>
            <size>24643</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NDg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTMxNDU1NDkwMjM0YjRh
ODFlNjY2YWRlNjZhZDdhNzc5OWYxY2VhNi4uN2Y4ZmUzNjAzNzBmNTZlZDU0ZmVkMDFmZTAxMTVj
MTE3ZGE3M2ZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTAzLTE2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBcHBseSByb3RhdGlvbiBh
dCBzb3VyY2UgbGV2ZWwgaWYgV2ViUlRDIHNpbmsgYXNrIHNvCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2NDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRkIGEgdmlydHVhbCBtZXRob2QgdG8gUmVhbHRp
bWVNZWRpYVNvdXJjZSB0byBwYXNzIHRoZSBpbmZvcm1hdGlvbiB0aGF0IHRoZSBzaW5rIHByZWZl
cnMgdGhlIGZyYW1lcyB0byBiZSByb3RhdGVkIGJlZm9yZSBzZW5kaW5nIHRoZW0uCityICAgICAg
IEJ5IGRlZmF1bHQsIHRoZSBtZXRob2QgZG9lcyBub3RoaW5nIGFuZCBSZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2Ugd2lsbCBjb250aW51ZSB0byBkbyB0aGUgcm90YXRpb24gaXRzZWxmLgorICAg
ICAgICBVcGRhdGUgSW1hZ2VSb3RhdGlvblNlc3Npb25WVCB0byBiZSBtb3JlIGVhc2lseSB1c2Fi
bGUgYnkgdXNlcnMgaGF2aW5nIE1lZGlhU2FtcGxlIGluc3RlYWQgb2YgQ1ZQaXhlbEJ1ZmZlci4K
KyAgICAgICAgVXBkYXRlIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZSB0byB1c2UgdGhhdCBy
b3V0aW5lOiB3aGVuZXZlciBhcHBseWluZyByb3RhdGlvbiBpcyBuZWVkZWQsCisgICAgICAgIGl0
IHdpbGwgYXNrIGl0cyB0cmFjayBzb3VyY2UgdG8gYXBwbHkgcm90YXRpb24uIElmIHRoZSB0cmFj
ayBzb3VyY2UgY2Fubm90IGRvIGl0LCBpdCB3aWxsIGRvIGl0IG9uIGl0cyBvd24uCisKKyAgICAg
ICAgVGVzdDogd2VicnRjL3ZpZGVvLXJvdGF0aW9uLW5vLWN2by5odG1sCisKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tl
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5k
OjphcHBseVJvdGF0aW9uRm9yT3V0Z29pbmdWaWRlb1NvdXJjZXMpOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULmg6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRv
cj09KToKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yIT0pOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2N2L0ltYWdlUm90YXRpb25TZXNzaW9uVlQubW06CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpJbWFnZVJvdGF0aW9uU2Vzc2lvblZUKToKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlUm90YXRpb25TZXNzaW9uVlQ6OmluaXRpYWxpemUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6cm90YXRlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c2V0U291cmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6YXBwbHlSb3RhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OkFkZE9y
VXBkYXRlU2luayk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlLmg6CisKIDIwMjAtMDMtMTYgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlh
LmNvbT4KIAogICAgICAgICBSZW1vdmUgYWRkSFRUUE9yaWdpbklmTmVlZGVkIGNhbGxzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDcwZmY2ZTBiOTg5OTM0OWUzMzgyZWVlNzgxYjM5NjU3MmUzZGE3MWUuLmM1YzFjZTQ1
ODhkOTE4MzQxOGNjMTViZmI5NTU5ODAyNzhmZDE1NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMjAtMDMtMTYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIEFwcGx5IHJvdGF0aW9uIGF0IHNvdXJjZSBsZXZlbCBpZiBXZWJSVEMgc2luayBhc2sgc28K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTY0NQor
CisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBJbXBsZW1lbnQg
UmVhbHRpbWVNZWRpYVNvdXJjZSBzZXRTaG91bGRBcHBseVJvdGF0aW9uIGJ5IHNlbmRpbmcgSVBD
IHRvIGNhcHR1cmUgcHJvY2Vzcy4KKyAgICAgICAgSW4gY2FwdHVyZSBwcm9jZXNzLCBpZiByb3Rh
dGlvbiBzaG91bGQgYmUgYXBwbGllZCwgdXNlIGFuIEltYWdlUm90YXRpb25TZXNzaW9uVlQgc2Vz
c2lvbiB0byBhcHBseSBpdCBiZWZvcmUgc2VuZGluZyB0aGUgdmlkZW8gZnJhbWUuCisgICAgICAg
IFRoaXMgYWxsb3dzIFdlYlByb2Nlc3MgdG8gbm8gbG9uZ2VyIG5lZWQgYW4gSW1hZ2VSb3RhdGlv
blNlc3Npb25WVCBmb3IgV2ViUlRDLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eTo6c2V0U2hvdWxkQXBwbHlSb3RhdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVBy
b3h5Ojpyb3RhdGVQaXhlbEJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OnNldFNob3VsZEFwcGx5Um90YXRpb24pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldFNob3Vs
ZEFwcGx5Um90YXRpb24pOgorCiAyMDIwLTAzLTE2ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5j
b20+CiAKICAgICAgICAgU2ltcGxpZnkgQ2hyb21lQ2xpZW50LmNyZWF0ZVdpbmRvdwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKaW5k
ZXggZjBlYzNhOWExZDY2MWUyMTY4ZjYxMGQzODE2ZTIxZWY5ODQ4MjgxMS4uYmY3M2EwYWE4ZDMy
NjQ4NTcxODZjMWFmNDA3YjIwMDdkNmYwNTBlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNr
ZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCkBAIC01MTMsNyArNTEzLDcgQEAg
dm9pZCBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmFwcGx5Um90YXRpb25Gb3JPdXRn
b2luZ1ZpZGVvU291cmNlcygpCiAgICAgZm9yIChhdXRvJiB0cmFuc2NlaXZlciA6IG1fcGVlckNv
bm5lY3Rpb24uY3VycmVudFRyYW5zY2VpdmVycygpKSB7CiAgICAgICAgIGlmICghdHJhbnNjZWl2
ZXItPnNlbmRlcigpLmlzU3RvcHBlZCgpKSB7CiAgICAgICAgICAgICBpZiAoYXV0byogdmlkZW9T
b3VyY2UgPSBiYWNrZW5kRnJvbVJUUFNlbmRlcih0cmFuc2NlaXZlci0+c2VuZGVyKCkpLnZpZGVv
U291cmNlKCkpCi0gICAgICAgICAgICAgICAgdmlkZW9Tb3VyY2UtPnNldEFwcGx5Um90YXRpb24o
dHJ1ZSk7CisgICAgICAgICAgICAgICAgdmlkZW9Tb3VyY2UtPmFwcGx5Um90YXRpb24oKTsKICAg
ICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA3M2YzYTlmOGI2NWUzZDE3ZDk4Y2RhMmZkZmQyMDI2ZjVl
MjA5MTE0Li41MDAwMTFmMGY3NGUwYzFkMjM2NWE4MGU1ZTVkM2E4N2I4MDg4ZDY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00
MDY4LDcgKzQwNjgsNyBAQAogCQlDRDFFNzM0NzE2N0JDNzhFMDA5QTg4NUQgLyogVGV4dFRyYWNr
UmVwcmVzZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0QxRTczNDYxNjdCQzc4RTAwOUE4ODVEIC8qIFRleHRUcmFja1JlcHJlc2VudGF0
aW9uLmNwcCAqLzsgfTsKIAkJQ0QyMjVDMEIxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VS
TFNlc3Npb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDIyNUMwOTFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSAqLzsg
fTsKIAkJQ0QyMjVDMEMxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjI1QzBBMUM0
NkZCRjQwMDE0MDc2MSAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQ0QyN0FFNTAyMkE5ODY4NzAwOTQ3RkY5
IC8qIEltYWdlUm90YXRpb25TZXNzaW9uVlQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENEMjdBRTRFMjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFnZVJvdGF0
aW9uU2Vzc2lvblZULmggKi87IH07CisJCUNEMjdBRTUwMjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFn
ZVJvdGF0aW9uU2Vzc2lvblZULmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDI3QUU0RTIyQTk4Njg3MDA5NDdGRjkgLyogSW1hZ2VSb3RhdGlvblNlc3Np
b25WVC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUNEMjdBRTUxMjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFnZVJvdGF0aW9uU2Vzc2lvblZULm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyN0FFNEYyMkE5
ODY4NzAwOTQ3RkY5IC8qIEltYWdlUm90YXRpb25TZXNzaW9uVlQubW0gKi87IH07CiAJCUNEMkY0
QTI0MThEODlGNzAwMDYzNzQ2RCAvKiBBdWRpb0hhcmR3YXJlTGlzdGVuZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMkY0QTIyMThEODlGNzAwMDYz
NzQ2RCAvKiBBdWRpb0hhcmR3YXJlTGlzdGVuZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDJGNEEyODE4RDhBMzQ5MDA2Mzc0NkQgLyogQXVk
aW9IYXJkd2FyZUxpc3RlbmVyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDJGNEEyNjE4RDhBMzQ5MDA2Mzc0NkQgLyogQXVkaW9IYXJkd2FyZUxp
c3RlbmVyTWFjLmggKi87IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULmgKaW5kZXggNjAwMWJiNzBh
MTAwNDE3NDQxMDkyMTM2ZjNmZTViNjE3NjJjYjBjZi4uMmRkZjQ5NjFhYTY4NjdiN2UyZWExM2Q4
YmRjNTAzNTc0MzVkNTBhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlUm90YXRpb25TZXNzaW9uVlQuaApAQCAtMzYsNiArMzYs
OCBAQCB0eXBlZGVmIHN0cnVjdCBfX0NWUGl4ZWxCdWZmZXJQb29sKiBDVlBpeGVsQnVmZmVyUG9v
bFJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBNZWRpYVNhbXBsZTsKKwogY2xh
c3MgSW1hZ2VSb3RhdGlvblNlc3Npb25WVCBmaW5hbCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CkBAIC01Miw4ICs1NCw5IEBAIHB1YmxpYzoKICAgICAgICAgWWVzLAog
ICAgIH07CiAKLSAgICBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUKEFmZmluZVRyYW5zZm9ybSYmLCBG
bG9hdFNpemUsIE9TVHlwZSBwaXhlbEZvcm1hdCwgSXNDR0ltYWdlQ29tcGF0aWJsZSk7Ci0gICAg
SW1hZ2VSb3RhdGlvblNlc3Npb25WVChSb3RhdGlvblByb3BlcnRpZXMmJiwgRmxvYXRTaXplLCBP
U1R5cGUgcGl4ZWxGb3JtYXQsIElzQ0dJbWFnZUNvbXBhdGlibGUpOworICAgIEltYWdlUm90YXRp
b25TZXNzaW9uVlQoQWZmaW5lVHJhbnNmb3JtJiYsIEZsb2F0U2l6ZSwgT1NUeXBlLCBJc0NHSW1h
Z2VDb21wYXRpYmxlKTsKKyAgICBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUKGNvbnN0IFJvdGF0aW9u
UHJvcGVydGllcyYsIEZsb2F0U2l6ZSwgT1NUeXBlLCBJc0NHSW1hZ2VDb21wYXRpYmxlKTsKKyAg
ICBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUKCkgPSBkZWZhdWx0OwogCiAgICAgY29uc3QgT3B0aW9u
YWw8QWZmaW5lVHJhbnNmb3JtPiYgdHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zv
cm07IH0KICAgICBjb25zdCBSb3RhdGlvblByb3BlcnRpZXMmIHJvdGF0aW9uUHJvcGVydGllcygp
IGNvbnN0IHsgcmV0dXJuIG1fcm90YXRpb25Qcm9wZXJ0aWVzOyB9CkBAIC02MSw4ICs2NCwxMyBA
QCBwdWJsaWM6CiAgICAgY29uc3QgRmxvYXRTaXplJiByb3RhdGVkU2l6ZSgpIHsgcmV0dXJuIG1f
cm90YXRlZFNpemU7IH0KIAogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiByb3RhdGUo
Q1ZQaXhlbEJ1ZmZlclJlZik7CisgICAgV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxC
dWZmZXJSZWY+IHJvdGF0ZShNZWRpYVNhbXBsZSYsIGNvbnN0IFJvdGF0aW9uUHJvcGVydGllcyYs
IElzQ0dJbWFnZUNvbXBhdGlibGUpOworCisgICAgYm9vbCBpc01hdGNoaW5nKE1lZGlhU2FtcGxl
JiwgY29uc3QgUm90YXRpb25Qcm9wZXJ0aWVzJik7CiAKIHByaXZhdGU6CisgICAgdm9pZCBpbml0
aWFsaXplKGNvbnN0IFJvdGF0aW9uUHJvcGVydGllcyYsIEZsb2F0U2l6ZSwgT1NUeXBlIHBpeGVs
Rm9ybWF0LCBJc0NHSW1hZ2VDb21wYXRpYmxlKTsKKwogICAgIE9wdGlvbmFsPEFmZmluZVRyYW5z
Zm9ybT4gbV90cmFuc2Zvcm07CiAgICAgUm90YXRpb25Qcm9wZXJ0aWVzIG1fcm90YXRpb25Qcm9w
ZXJ0aWVzOwogICAgIEZsb2F0U2l6ZSBtX3NpemU7CkBAIC03MSw2ICs3OSwxNiBAQCBwcml2YXRl
OgogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUG9vbFJlZj4gbV9yb3RhdGlvblBvb2w7CiB9
OwogCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEltYWdlUm90YXRpb25TZXNzaW9uVlQ6
OlJvdGF0aW9uUHJvcGVydGllcyYgcm90YXRpb24xLCBjb25zdCBJbWFnZVJvdGF0aW9uU2Vzc2lv
blZUOjpSb3RhdGlvblByb3BlcnRpZXMmIHJvdGF0aW9uMikKK3sKKyAgICByZXR1cm4gcm90YXRp
b24xLmZsaXBYID09IHJvdGF0aW9uMi5mbGlwWCAmJiByb3RhdGlvbjEuZmxpcFkgPT0gcm90YXRp
b24yLmZsaXBZICYmIHJvdGF0aW9uMS5hbmdsZSA9PSByb3RhdGlvbjIuYW5nbGU7Cit9CisKK2lu
bGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6Um90YXRp
b25Qcm9wZXJ0aWVzJiByb3RhdGlvbjEsIGNvbnN0IEltYWdlUm90YXRpb25TZXNzaW9uVlQ6OlJv
dGF0aW9uUHJvcGVydGllcyYgcm90YXRpb24yKQoreworICAgIHJldHVybiAhKHJvdGF0aW9uMSA9
PSByb3RhdGlvbjIpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlUm90YXRpb25TZXNzaW9uVlQubW0K
aW5kZXggODhhNWRiNTk1NmVlOGI5NWYxMDhlNDY1NmZjNTdjMWM3ZTBmOWJkNy4uNTkwNTdhYTJk
NzkwOWY2NTcxMTJlMjcwMzU0MWNmYTBhMzhhNzRiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vzc2lvblZU
Lm1tCkBAIC0yNyw5ICsyNywxMSBAQAogI2luY2x1ZGUgIkltYWdlUm90YXRpb25TZXNzaW9uVlQu
aCIKIAogI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgorI2luY2x1ZGUgIk1lZGlhU2FtcGxl
LmgiCiAKICNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogI2luY2x1ZGUgIlZpZGVvVG9v
bGJveFNvZnRMaW5rLmgiCisjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAog
I2lmIFVTRShWSURFT1RPT0xCT1gpCiAKQEAgLTY0LDExICs2NiwxNiBAQCBJbWFnZVJvdGF0aW9u
U2Vzc2lvblZUOjpJbWFnZVJvdGF0aW9uU2Vzc2lvblZUKEFmZmluZVRyYW5zZm9ybSYmIHRyYW5z
Zm9ybSwgRmxvYQogICAgIG1fdHJhbnNmb3JtID0gV1RGTW92ZSh0cmFuc2Zvcm0pOwogfQogCitJ
bWFnZVJvdGF0aW9uU2Vzc2lvblZUOjpJbWFnZVJvdGF0aW9uU2Vzc2lvblZUKGNvbnN0IFJvdGF0
aW9uUHJvcGVydGllcyYgcm90YXRpb24sIEZsb2F0U2l6ZSBzaXplLCBPU1R5cGUgcGl4ZWxGb3Jt
YXQsIElzQ0dJbWFnZUNvbXBhdGlibGUgY3ZJbWFnZUNvbXBhdGliaWxpdHkpCit7CisgICAgaW5p
dGlhbGl6ZShyb3RhdGlvbiwgc2l6ZSwgcGl4ZWxGb3JtYXQsIGN2SW1hZ2VDb21wYXRpYmlsaXR5
KTsKK30KIAotSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6SW1hZ2VSb3RhdGlvblNlc3Npb25WVChS
b3RhdGlvblByb3BlcnRpZXMmJiByb3RhdGlvbiwgRmxvYXRTaXplIHNpemUsIE9TVHlwZSBwaXhl
bEZvcm1hdCwgSXNDR0ltYWdlQ29tcGF0aWJsZSBjdkltYWdlQ29tcGF0aWJpbGl0eSkKLSAgICA6
IG1fcm90YXRpb25Qcm9wZXJ0aWVzKFdURk1vdmUocm90YXRpb24pKQotICAgICwgbV9zaXplKHNp
emUpCit2b2lkIEltYWdlUm90YXRpb25TZXNzaW9uVlQ6OmluaXRpYWxpemUoY29uc3QgUm90YXRp
b25Qcm9wZXJ0aWVzJiByb3RhdGlvbiwgRmxvYXRTaXplIHNpemUsIE9TVHlwZSBwaXhlbEZvcm1h
dCwgSXNDR0ltYWdlQ29tcGF0aWJsZSBjdkltYWdlQ29tcGF0aWJpbGl0eSkKIHsKKyAgICBtX3Jv
dGF0aW9uUHJvcGVydGllcyA9IHJvdGF0aW9uOworICAgIG1fc2l6ZSA9IHNpemU7CisKICAgICBp
ZiAobV9yb3RhdGlvblByb3BlcnRpZXMuYW5nbGUgPT0gOTAgfHwgbV9yb3RhdGlvblByb3BlcnRp
ZXMuYW5nbGUgPT0gMjcwKQogICAgICAgICBzaXplID0gc2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOwog
CkBAIC04OSw2ICs5Niw3IEBAIEltYWdlUm90YXRpb25TZXNzaW9uVlQ6OkltYWdlUm90YXRpb25T
ZXNzaW9uVlQoUm90YXRpb25Qcm9wZXJ0aWVzJiYgcm90YXRpb24sIEZsCiAgICAgICAgIChfX2Jy
aWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySGVpZ2h0S2V5OiBAKG1fcm90YXRlZFNpemUu
aGVpZ2h0KCkpLAogICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlclBp
eGVsRm9ybWF0VHlwZUtleTogQChwaXhlbEZvcm1hdCksCiAgICAgICAgIChfX2JyaWRnZSBOU1N0
cmluZyAqKWtDVlBpeGVsQnVmZmVyQ0dJbWFnZUNvbXBhdGliaWxpdHlLZXk6IChjdkltYWdlQ29t
cGF0aWJpbGl0eSA9PSBJc0NHSW1hZ2VDb21wYXRpYmxlOjpZZXMgPyBAWUVTIDogQE5PKSwKKyAg
ICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VQcm9wZXJ0
aWVzS2V5IDogQHsgfQogICAgIH07CiAgICAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcmF3UG9vbCA9
IG51bGxwdHI7CiAgICAgaWYgKGF1dG8gZXJyID0gQ1ZQaXhlbEJ1ZmZlclBvb2xDcmVhdGUoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilwaXhl
bEF0dHJpYnV0ZXMsICZyYXdQb29sKTsgZXJyICE9IG5vRXJyKQpAQCAtMTA2LDYgKzExNCwyMCBA
QCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6cm90
YXRlKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZQogICAgIHJldHVybiBudWxscHRyOwogfQogCitSZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6cm90YXRlKE1l
ZGlhU2FtcGxlJiBzYW1wbGUsIGNvbnN0IFJvdGF0aW9uUHJvcGVydGllcyYgcm90YXRpb24sIElz
Q0dJbWFnZUNvbXBhdGlibGUgY3ZJbWFnZUNvbXBhdGliaWxpdHkpCit7CisgICAgYXV0byBwaXhl
bEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZm
ZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVC
dWZmZXIpKTsKKyAgICBBU1NFUlQocGl4ZWxCdWZmZXIpOworICAgIGlmICghcGl4ZWxCdWZmZXIp
CisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgSW50U2l6ZSBzaXplIHsgKGludClDVlBp
eGVsQnVmZmVyR2V0V2lkdGgocGl4ZWxCdWZmZXIpLCAoaW50KUNWUGl4ZWxCdWZmZXJHZXRIZWln
aHQocGl4ZWxCdWZmZXIpIH07CisgICAgaWYgKHJvdGF0aW9uICE9IG1fcm90YXRpb25Qcm9wZXJ0
aWVzIHx8IG1fc2l6ZSAhPSBzaXplKQorICAgICAgICBpbml0aWFsaXplKHJvdGF0aW9uLCBzaXpl
LCBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKHBpeGVsQnVmZmVyKSwgY3ZJbWFnZUNv
bXBhdGliaWxpdHkpOworCisgICAgcmV0dXJuIHJvdGF0ZShwaXhlbEJ1ZmZlcik7Cit9CisKIH0K
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggMzliOTk3NjFmYjQxZWUxNmQ0OGQzODVj
ZTFlM2JkNDQ0NjAxNGEyZC4uMWI5ZDZhMjQ0OWM1MjEzNjRkZDMyY2I0MGIzOTY3Njk1YWYyNTQw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMjAwLDYgKzIwMCw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgZGVsYXlTYW1wbGVzKFNlY29uZHMpIHsgfTsKICAgICB2b2lkIHNldEludGVy
cnVwdGVkRm9yVGVzdGluZyhib29sKTsKIAorICAgIHZpcnR1YWwgYm9vbCBzZXRTaG91bGRBcHBs
eVJvdGF0aW9uKGJvb2wpIHsgcmV0dXJuIGZhbHNlOyB9CisKIHByb3RlY3RlZDoKICAgICBSZWFs
dGltZU1lZGlhU291cmNlKFR5cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlEID0g
eyB9LCBTdHJpbmcmJiBoYXNoU2FsdCA9IHsgfSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2UuY3BwCmluZGV4IGQ5YTc3YTg2YjEwOTg3OWI5Mjg4YmY5YTc3NzhiYjRiYjVkZmEx
OTguLjViOTMzZjEzYmIzZDY3ZDAwZTIzMjE1MjNjZGZjYzczYmEwNmNmNjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRl
b1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcApAQCAtODAsNiArODAsMjEgQEAgdm9pZCBSZWFs
dGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnNldFNvdXJjZShSZWY8TWVkaWFTdHJlYW1UcmFja1By
aXZhdGU+JiYgbmV3U28KIHsKICAgICBBU1NFUlQoIW1fdmlkZW9Tb3VyY2UtPmhhc09ic2VydmVy
KCp0aGlzKSk7CiAgICAgbV92aWRlb1NvdXJjZSA9IFdURk1vdmUobmV3U291cmNlKTsKKworICAg
IGlmICghbV9hcmVTaW5rc0Fza2luZ1RvQXBwbHlSb3RhdGlvbikKKyAgICAgICAgcmV0dXJuOwor
ICAgIGlmICghbV92aWRlb1NvdXJjZS0+c291cmNlKCkuc2V0U2hvdWxkQXBwbHlSb3RhdGlvbih0
cnVlKSkKKyAgICAgICAgbV9zaG91bGRBcHBseVJvdGF0aW9uID0gdHJ1ZTsKK30KKwordm9pZCBS
ZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OmFwcGx5Um90YXRpb24oKQoreworICAgIGlmICht
X2FyZVNpbmtzQXNraW5nVG9BcHBseVJvdGF0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X2FyZVNpbmtzQXNraW5nVG9BcHBseVJvdGF0aW9uID0gdHJ1ZTsKKyAgICBpZiAoIW1fdmlkZW9T
b3VyY2UtPnNvdXJjZSgpLnNldFNob3VsZEFwcGx5Um90YXRpb24odHJ1ZSkpCisgICAgICAgIG1f
c2hvdWxkQXBwbHlSb3RhdGlvbiA9IHRydWU7CiB9CiAKIHZvaWQgUmVhbHRpbWVPdXRnb2luZ1Zp
ZGVvU291cmNlOjpzdG9wKCkKQEAgLTEzNSw3ICsxNTAsNyBAQCB2b2lkIFJlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZTo6QWRkT3JVcGRhdGVTaW5rKHJ0Yzo6VmlkZW9TaW5rSW50ZXJmYWNlPHdl
YnJ0YwogICAgIEFTU0VSVCghc2lua1dhbnRzLmJsYWNrX2ZyYW1lcyk7CiAKICAgICBpZiAoc2lu
a1dhbnRzLnJvdGF0aW9uX2FwcGxpZWQpCi0gICAgICAgIG1fc2hvdWxkQXBwbHlSb3RhdGlvbiA9
IHRydWU7CisgICAgICAgIGFwcGx5Um90YXRpb24oKTsKIAogICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2sobV9zaW5rc0xvY2spOwogICAgIG1fc2lua3MuYWRkKHNpbmspOwpAQCAtMTYxLDcgKzE3
Niw3IEBAIHZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzZW5kQmxhY2tGcmFtZXNJ
Zk5lZWRlZCgpCiAgICAgaWYgKCFtX2JsYWNrRnJhbWUpIHsKICAgICAgICAgYXV0byB3aWR0aCA9
IG1fd2lkdGg7CiAgICAgICAgIGF1dG8gaGVpZ2h0ID0gbV9oZWlnaHQ7Ci0gICAgICAgIGlmICht
X3Nob3VsZEFwcGx5Um90YXRpb24gJiYgKG1fY3VycmVudFJvdGF0aW9uID09IHdlYnJ0Yzo6a1Zp
ZGVvUm90YXRpb25fMCB8fCBtX2N1cnJlbnRSb3RhdGlvbiA9PSB3ZWJydGM6OmtWaWRlb1JvdGF0
aW9uXzkwKSkKKyAgICAgICAgaWYgKG1fc2hvdWxkQXBwbHlSb3RhdGlvbiAmJiAobV9jdXJyZW50
Um90YXRpb24gPT0gd2VicnRjOjprVmlkZW9Sb3RhdGlvbl8yNzAgfHwgbV9jdXJyZW50Um90YXRp
b24gPT0gd2VicnRjOjprVmlkZW9Sb3RhdGlvbl85MCkpCiAgICAgICAgICAgICBzdGQ6OnN3YXAo
d2lkdGgsIGhlaWdodCk7CiAgICAgICAgIG1fYmxhY2tGcmFtZSA9IGNyZWF0ZUJsYWNrRnJhbWUo
d2lkdGgsIGhlaWdodCk7CiAgICAgICAgIEFTU0VSVChtX2JsYWNrRnJhbWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1Zp
ZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU91dGdvaW5nVmlkZW9Tb3VyY2UuaAppbmRleCBlMmE0OGQwODI3N2NlMzEwZjY3YjAwMDhhZTAw
ZWY4MTg2MGQ5OGU2Li5hNjY1NmNlZjkxMjhhNGIwZjYzYzU0YmNjZTdhMjYzYzgxYTdlODk5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaApAQCAtNzEsNyArNzEsNyBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBydGM6OlJlZkNvdW50UmVsZWFzZVN0YXR1czo6a090aGVyUmVm
c1JlbWFpbmVkOwogICAgIH0KIAotICAgIHZvaWQgc2V0QXBwbHlSb3RhdGlvbihib29sIHNob3Vs
ZEFwcGx5Um90YXRpb24pIHsgbV9zaG91bGRBcHBseVJvdGF0aW9uID0gc2hvdWxkQXBwbHlSb3Rh
dGlvbjsgfQorICAgIHZvaWQgYXBwbHlSb3RhdGlvbigpOwogCiBwcm90ZWN0ZWQ6CiAgICAgZXhw
bGljaXQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZT4mJik7CkBAIC0xMzQsNiArMTM0LDcgQEAgcHJpdmF0ZToKIAogICAgIG11dGFibGUgUmVj
dXJzaXZlTG9jayBtX3NpbmtzTG9jazsKICAgICBIYXNoU2V0PHJ0Yzo6VmlkZW9TaW5rSW50ZXJm
YWNlPHdlYnJ0Yzo6VmlkZW9GcmFtZT4qPiBtX3NpbmtzOworICAgIGJvb2wgbV9hcmVTaW5rc0Fz
a2luZ1RvQXBwbHlSb3RhdGlvbiB7IGZhbHNlIH07CiAKICAgICBib29sIG1fZW5hYmxlZCB7IHRy
dWUgfTsKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmNwcAppbmRleCAzZDlmMjgzNTU2MGZiMDgwNDkxOWJmYTcwNjczOWUwZmNlMTAzYTg0Li45ZDZm
YmFmMmViMTc3ZDZlZTI2NmYyNDM2MmU2ODJlZWNlYWM5YjE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9D
QVJpbmdCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlUm90YXRpb25TZXNzaW9uVlQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlbW90
ZVZpZGVvU2FtcGxlLmg+CkBAIC05Niw2ICs5Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgbV9zb3Vy
Y2UtPnJlcXVlc3RUb0VuZCgqdGhpcyk7CiAgICAgfQogCisgICAgdm9pZCBzZXRTaG91bGRBcHBs
eVJvdGF0aW9uKGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbikgeyBtX3Nob3VsZEFwcGx5Um90YXRp
b24gPSB0cnVlOyB9CisKIHByaXZhdGU6CiAgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWwg
ewogICAgICAgICBpZiAobV9zb3VyY2UtPmNhcHR1cmVEaWRGYWlsKCkpIHsKQEAgLTEzNSw3ICsx
MzgsMTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2Ft
cGxlJiBzYW1wbGUpIGZpbmFsCiAgICAgewogI2lmIEhBVkUoSU9TVVJGQUNFKQotICAgICAgICBh
dXRvIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUoc2FtcGxlKTsKKyAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiByZW1vdGVTYW1wbGU7Cisg
ICAgICAgIGlmIChtX3Nob3VsZEFwcGx5Um90YXRpb24gJiYgc2FtcGxlLnZpZGVvUm90YXRpb24o
KSAhPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSkgeworICAgICAgICAgICAgYXV0
byBwaXhlbEJ1ZmZlciA9IHJvdGF0ZVBpeGVsQnVmZmVyKHNhbXBsZSk7CisgICAgICAgICAgICBy
ZW1vdGVTYW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKHBpeGVsQnVmZmVyLmdldCgp
LCBzYW1wbGUucHJlc2VudGF0aW9uVGltZSgpKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICByZW1vdGVTYW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKHNhbXBsZSk7CiAgICAg
ICAgIGlmIChyZW1vdGVTYW1wbGUpCiAgICAgICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpSZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJs
ZShtX2lkLCBXVEZNb3ZlKCpyZW1vdGVTYW1wbGUpKSwgMCk7CiAjZWxzZQpAQCAtMTQzLDYgKzE1
MSwzMCBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgfQogCisgICAgUmV0YWluUHRyPENWUGl4ZWxC
dWZmZXJSZWY+IHJvdGF0ZVBpeGVsQnVmZmVyKE1lZGlhU2FtcGxlJiBzYW1wbGUpCisgICAgewor
ICAgICAgICBpZiAoIW1fcm90YXRpb25TZXNzaW9uKQorICAgICAgICAgICAgbV9yb3RhdGlvblNl
c3Npb24gPSBtYWtlVW5pcXVlPEltYWdlUm90YXRpb25TZXNzaW9uVlQ+KCk7CisKKyAgICAgICAg
SW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6Um90YXRpb25Qcm9wZXJ0aWVzIHJvdGF0aW9uOworICAg
ICAgICBzd2l0Y2ggKHNhbXBsZS52aWRlb1JvdGF0aW9uKCkpIHsKKyAgICAgICAgY2FzZSBNZWRp
YVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZToKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICAgICAgcm90YXRpb24uYW5nbGUgPSAwOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlVwc2lkZURvd246
CisgICAgICAgICAgICByb3RhdGlvbi5hbmdsZSA9IDE4MDsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpSaWdodDoKKyAgICAgICAg
ICAgIHJvdGF0aW9uLmFuZ2xlID0gOTA7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdDoKKyAgICAgICAgICAgIHJvdGF0aW9u
LmFuZ2xlID0gMjcwOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIG1fcm90YXRpb25TZXNzaW9uLT5yb3RhdGUoc2FtcGxlLCByb3RhdGlvbiwgSW1hZ2VSb3Rh
dGlvblNlc3Npb25WVDo6SXNDR0ltYWdlQ29tcGF0aWJsZTo6Tm8pOworICAgIH0KKwogICAgIHZv
aWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKSBmaW5hbCB7CiAgICAgICAg
IFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKICAgICAgICAgaWYgKHN0b3JhZ2UpCkBAIC0x
NjQsNiArMTk2LDggQEAgcHJpdmF0ZToKICAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9k
ZXNjcmlwdGlvbiB7IH07CiAgICAgaW50NjRfdCBtX251bWJlck9mRnJhbWVzIHsgMCB9OwogICAg
IGJvb2wgbV9pc0VuZGVkIHsgZmFsc2UgfTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VSb3Rh
dGlvblNlc3Npb25WVD4gbV9yb3RhdGlvblNlc3Npb247CisgICAgYm9vbCBtX3Nob3VsZEFwcGx5
Um90YXRpb24geyBmYWxzZSB9OwogfTsKIAogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShVbmlxdWVSZWY8Q29ubmVjdGlvblByb3h5PiYm
IGNvbm5lY3Rpb25Qcm94eSkKQEAgLTI3Miw2ICszMDYsMTIgQEAgdm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpyZXF1ZXN0VG9FbmQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgc28KICAgICAgICAgcHJveHktPnJlcXVlc3RUb0VuZCgpOwogfQogCit2b2lkIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk6OnNldFNob3VsZEFwcGx5Um90YXRpb24oUmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgc291cmNlSUQsIGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbikKK3sK
KyAgICBpZiAoYXV0byogcHJveHkgPSBtX3Byb3hpZXMuZ2V0KHNvdXJjZUlEKSkKKyAgICAgICAg
cHJveHktPnNldFNob3VsZEFwcGx5Um90YXRpb24oc2hvdWxkQXBwbHlSb3RhdGlvbik7Cit9CisK
IHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2xlYXIoKQogewogICAgIG1fcHJv
eGllcy5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCmluZGV4IDQ1MmM4MTg4ZWU1ODQ5
N2FkZmE0MjA1ZGEwYzRiODkwNjc3NWRiNzUuLmEzZDZlZjI0NzdiYzQ2YTNiZTg2YjM2YWNiNWU1
NGI3NDAzMDE5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKQEAgLTc4LDYgKzc4LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmKTsKICAg
ICB2b2lkIGNsb25lKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGNsb25l
ZElELCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZUlEKTsKICAg
ICB2b2lkIHJlcXVlc3RUb0VuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
cik7CisgICAgdm9pZCBzZXRTaG91bGRBcHBseVJvdGF0aW9uKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyLCBib29sIHNob3VsZEFwcGx5Um90YXRpb24pOwogCiAgICAgY2xh
c3MgU291cmNlUHJveHk7CiAgICAgZnJpZW5kIGNsYXNzIFNvdXJjZVByb3h5OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYmFhYmFjYzZhMmExMzhiMmJk
YjczOGM1NDk1YThhMTExMmU0OGM3Mi4uMjhlOTI5OTEyZDc5ODQwOGM0N2VkNDkwY2U4MTM1ODIx
OTM5ZjIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBA
IC0zMSw2ICszMSw3IEBAIG1lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkg
Tm90UmVmQ291bnRlZCB7CiAgICAgQXBwbHlDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMg
Y29uc3RyYWludHMpCiAgICAgQ2xvbmUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgY2xvbmVkSUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGNs
b25lSUQpCiAgICAgUmVxdWVzdFRvRW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIHNvdXJjZUlEKQorICAgIFNldFNob3VsZEFwcGx5Um90YXRpb24oV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgc291cmNlSUQsIGJvb2wgc2hvdWxkQXBwbHlSb3Rh
dGlvbikKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRleCBiZDQzZGY1YjhmZDQy
NzNkZWQ1MjU1MmJiMDQxMWY2N2EwZjM3OGQ0Li4wNTJiOTU1N2Y5YmZlMDE0MzhmYWFmYzhhNzdk
NjZlM2U0ZDFlN2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTI0OSw2ICsyNDksOCBAQCBw
cml2YXRlOgogICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UKICAgICB2b2lkIGJlZ2luQ29uZmln
dXJhdGlvbigpIGZpbmFsIHsgfQogICAgIHZvaWQgY29tbWl0Q29uZmlndXJhdGlvbigpIGZpbmFs
IHsgfQorICAgIGJvb2wgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sIC8qIHNob3VsZEFwcGx5
Um90YXRpb24gKi8pIGZpbmFsOworCiAKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYpIGZp
bmFsOwogCkBAIC00MjksNiArNDMxLDEyIEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OlNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEoKQogICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEobV9p
ZCksIDApOwogfQogCitib29sIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OnNldFNo
b3VsZEFwcGx5Um90YXRpb24oYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKQoreworICAgIGNvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U2V0
U2hvdWxkQXBwbHlSb3RhdGlvbihtX2lkLCBzaG91bGRBcHBseVJvdGF0aW9uKSwgMCk7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMmIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2U6OmNhcGFiaWxpdGllcygp
CiB7CiAgICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg2OGI1N2Q1ZTM2MGE0YmZi
NGM4ZDZkMjQ1YjNkNTlmN2FkMDg3MDIuLjExOGY1NWM0NmRiZmM4NjUzYjVmMjViZGYyNDBhMWZh
YzU5Yjc0M2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wMy0xNiAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQXBwbHkgcm90YXRpb24gYXQgc291cmNl
IGxldmVsIGlmIFdlYlJUQyBzaW5rIGFzayBzbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NjQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBD
YXJsc29uLgorCisgICAgICAgICogd2VicnRjL3ZpZGVvLXJvdGF0aW9uLW5vLWN2by1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYnJ0Yy92aWRlby1yb3RhdGlvbi1uby1jdm8uaHRt
bDogQWRkZWQuCisKIDIwMjAtMDMtMTUgIExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgV1BFIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0
Yy92aWRlby1yb3RhdGlvbi1uby1jdm8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2VicnRj
L3ZpZGVvLXJvdGF0aW9uLW5vLWN2by1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDI5ZThiYTYw
OWMyMDgzNTZiYjgxOTczODA5ZjQ2ZjI4YjY1MTU1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYnJ0Yy92aWRlby1yb3RhdGlvbi1uby1jdm8tZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNCBAQAorICAKKworUEFTUyBUZXN0aW5nIHZpZGVvIGV4Y2hhbmdlIHdpdGggcm90YXRpb24g
YXBwbGllZCBiZWZvcmUgdHJhbnNtaXNzaW9uIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJydGMvdmlkZW8tcm90YXRpb24tbm8tY3ZvLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvdmlk
ZW8tcm90YXRpb24tbm8tY3ZvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDRkOTdmMTM0MWI2MjM0NmI4M2Ew
Zjk0ZTBjM2FhYmQwMGIyM2RlNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0
Yy92aWRlby1yb3RhdGlvbi1uby1jdm8uaHRtbApAQCAtMCwwICsxLDQyIEBACis8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZUNhcHR1cmVWaWRlb0luVUlQcm9jZXNzPXRydWUgXSAtLT4K
KzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKyAgICAgICAgPHRpdGxlPlRlc3RpbmcgdmlkZW8gcm90YXRpb24gd2l0aG91
dCBDVk88L3RpdGxlPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAg
ICAgICA8dmlkZW8gaWQ9ImxvY2FsVmlkZW8iIGF1dG9wbGF5IHBsYXlzSW5saW5lIHdpZHRoPSIz
MjAiIGhlaWdodD0iMjQwIj48L3ZpZGVvPgorICAgICAgICA8dmlkZW8gaWQ9InJlbW90ZVZpZGVv
IiBhdXRvcGxheSBwbGF5c0lubGluZSB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC92aWRlbz4K
KyAgICAgICAgPHNjcmlwdCBzcmMgPSJyb3V0aW5lcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxz
Y3JpcHQ+Citwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBjb25zdCBsb2NhbFN0
cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgdmlkZW86
IHsgd2lkdGg6IDMyMCwgaGVpZ2h0OiAyNDAgfSB9KTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLnNldE1vY2tDYW1lcmFPcmllbnRhdGlvbig5
MCk7CisKKyAgICBsb2NhbFZpZGVvLnNyY09iamVjdCA9IGxvY2FsU3RyZWFtOworICAgIGNvbnN0
IHJlbW90ZVN0cmVhbSA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsK
KyAgICAgICAgdHJhY2sgPSBsb2NhbFN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdOworCisgICAg
ICAgIGNyZWF0ZUNvbm5lY3Rpb25zKChmaXJzdENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAg
IGZpcnN0Q29ubmVjdGlvbi5hZGRUcmFjayh0cmFjaywgbG9jYWxTdHJlYW0pOworICAgICAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLmFwcGx5
Um90YXRpb25Gb3JPdXRnb2luZ1ZpZGVvU291cmNlcyhmaXJzdENvbm5lY3Rpb24pOworICAgICAg
ICB9LCAoc2Vjb25kQ29ubmVjdGlvbikgPT4geworICAgICAgICAgICAgc2Vjb25kQ29ubmVjdGlv
bi5vbnRyYWNrID0gKHRyYWNrRXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICByZXNvbHZlKHRy
YWNrRXZlbnQuc3RyZWFtc1swXSk7CisgICAgICAgICAgICB9OworICAgICAgICB9KTsKKyAgICAg
ICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIlRlc3QgdGltZWQgb3V0IiksIDUwMDApOworICAg
IH0pOworCisgICAgcmVtb3RlVmlkZW8uc3JjT2JqZWN0ID0gcmVtb3RlU3RyZWFtOworICAgIGF3
YWl0IHJlbW90ZVZpZGVvLnBsYXkoKTsKKyAgICBhd2FpdCB3YWl0Rm9yVmlkZW9TaXplKHJlbW90
ZVZpZGVvLCAyNDAsIDMyMCk7Cit9LCAiVGVzdGluZyB2aWRlbyBleGNoYW5nZSB3aXRoIHJvdGF0
aW9uIGFwcGxpZWQgYmVmb3JlIHRyYW5zbWlzc2lvbiIpOworICAgICAgICA8L3NjcmlwdD4KKyAg
ICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>