<?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>191861</bug_id>
          
          <creation_ts>2018-11-20 06:31:50 -0800</creation_ts>
          <short_desc>[GStreamer][WebRTC] Use LibWebRTC provided vp8 decoders and encoders</short_desc>
          <delta_ts>2018-11-27 09:35:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Thibault Saunier">tsaunier</reporter>
          <assigned_to name="Thibault Saunier">tsaunier</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1480463</commentid>
    <comment_count>0</comment_count>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2018-11-20 06:31:50 -0800</bug_when>
    <thetext>[GStreamer][WebRTC] Use libvpx provided decoders and encoders</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480464</commentid>
    <comment_count>1</comment_count>
      <attachid>355338</attachid>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2018-11-20 06:32:08 -0800</bug_when>
    <thetext>Created attachment 355338
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480465</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-11-20 06:33:50 -0800</bug_when>
    <thetext>Attachment 355338 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480466</commentid>
    <comment_count>3</comment_count>
      <attachid>355339</attachid>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2018-11-20 06:39:09 -0800</bug_when>
    <thetext>Created attachment 355339
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480928</commentid>
    <comment_count>4</comment_count>
      <attachid>355339</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-11-22 01:19:35 -0800</bug_when>
    <thetext>Comment on attachment 355339
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        The GStreamer implementations are less feature full and less tested, now that Apple
&gt; +        also use the LibWebRTC provided implementations it makes a lot of sense for us to
&gt; +        do the same.

What&apos;s missing in the GStreamer implementations? How much work would it be to fix them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480931</commentid>
    <comment_count>5</comment_count>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2018-11-22 02:45:32 -0800</bug_when>
    <thetext>(In reply to Philippe Normand from comment #4)
&gt; Comment on attachment 355339 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=355339&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        The GStreamer implementations are less feature full and less tested, now that Apple
&gt; &gt; +        also use the LibWebRTC provided implementations it makes a lot of sense for us to
&gt; &gt; +        do the same.
&gt; 
&gt; What&apos;s missing in the GStreamer implementations? How much work would it be
&gt; to fix them?

Basically everything related to temporal scalability which is not implemented in GStreamer, pexpi have an implementation here: https://github.com/pexip/gst-plugins-good/commits/master/ext/vpx that we will to upstream at some point :-)

It is quite some work, and tbh I think we should use GStreamer based hardware elements only, there is no good for using them in case LibWebRTC already provides wrapper around the same API as what the GSTreamer element does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480939</commentid>
    <comment_count>6</comment_count>
      <attachid>355467</attachid>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2018-11-22 04:41:19 -0800</bug_when>
    <thetext>Created attachment 355467
Minor ChangeLog enhancement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1480950</commentid>
    <comment_count>7</comment_count>
      <attachid>355467</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-11-22 06:09:07 -0800</bug_when>
    <thetext>Comment on attachment 355467
Minor ChangeLog enhancement

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

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h:142
&gt; +    GstMappedFrame(GstBuffer *buffer, GstVideoInfo info, GstMapFlags flags)

Nit: misplaced *s in all this class

&gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.cpp:24
&gt; +#include&lt;thread&gt;

I didn&apos;t know the space is optional in #includes :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481923</commentid>
    <comment_count>8</comment_count>
      <attachid>355737</attachid>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2018-11-27 08:53:02 -0800</bug_when>
    <thetext>Created attachment 355737
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481925</commentid>
    <comment_count>9</comment_count>
      <attachid>355737</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-27 08:55:26 -0800</bug_when>
    <thetext>Comment on attachment 355737
Patch for landing

Rejecting attachment 355737 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 355737, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/ThirdParty/libwebrtc/ChangeLog contains OOPS!.

Full output: https://webkit-queues.webkit.org/results/10167810</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481926</commentid>
    <comment_count>10</comment_count>
      <attachid>355738</attachid>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2018-11-27 08:57:14 -0800</bug_when>
    <thetext>Created attachment 355738
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481941</commentid>
    <comment_count>11</comment_count>
      <attachid>355738</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-27 09:34:35 -0800</bug_when>
    <thetext>Comment on attachment 355738
Patch for landing

Clearing flags on attachment: 355738

Committed r238557: &lt;https://trac.webkit.org/changeset/238557&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481942</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-27 09:34:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481943</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-27 09:35:46 -0800</bug_when>
    <thetext>&lt;rdar://problem/46278365&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355338</attachid>
            <date>2018-11-20 06:32:08 -0800</date>
            <delta_ts>2018-11-20 06:39:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191861-20181120113207.patch</filename>
            <type>text/plain</type>
            <size>20059</size>
            <attacher name="Thibault Saunier">tsaunier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4Mjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCA1NmQ5MmVmOWVlYjUxNjg2ZDgxYTExMjg2OWM4NGZiZjQ3ZDg3N2MwLi5mZDcz
Zjk2YmQzYjI2ZWIwNTY3YjQ4NTA2Mjk2ZTZlNDIzZGU0NDJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOC0xMS0yMCAgVGhpYmF1bHQg
U2F1bmllciAgPHRzYXVuaWVyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl1bV2Vi
UlRDXSBVc2UgbGlidnB4IHByb3ZpZGVkIGRlY29kZXJzIGFuZCBlbmNvZGVycworICAgICAgICBO
ZWVkIHRoZSBidWcgVVJMIChPT1BTISkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQnVpbGQgTGliVlBYIHZwOCBlbmNv
ZGVyIGFuZCBkZWNvZGVycy4KKwogMjAxOC0xMS0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgQ29udmVydCBsaWJ3ZWJydGMgZXJyb3IgdHlwZXMgdG8gRE9N
IGV4Y2VwdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NjdlMjYyMjNiNmQwYTFkZTlmYjkxZmQwY2Y3ZTUw
MDZjYWEwNDZkLi5jN2Q1N2YwOTA2NmMyNGRhYzk2YjUwNmUyZDVkODA5ZDdkYTlkNmViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTgtMTEtMjAgIFRoaWJhdWx0IFNhdW5pZXIgIDx0
c2F1bmllckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3RyZWFtZXJdW1dlYlJUQ10gVXNlIGxp
YnZweCBwcm92aWRlZCBkZWNvZGVycyBhbmQgZW5jb2RlcnMKKyAgICAgICAgTmVlZCB0aGUgYnVn
IFVSTCAoT09QUyEpLgorCisgICAgICAgIFRoZSBHU3RyZWFtZXIgaW1wbGVtZW50YXRpb25zIGFy
ZSBsZXNzIGZlYXR1cmUgZnVsbCBhbmQgbGVzcyB0ZXN0ZWQsIG5vdyB0aGF0IEFwcGxlCisgICAg
ICAgIGFsc28gdXNlIHRoZSBMaWJXZWJSVEMgcHJvdmlkZWQgaW1wbGVtZW50YXRpb25zIGl0IG1h
a2VzIGEgbG90IG9mIHNlbnNlIGZvciB1cyB0bworICAgICAgICBkbyB0aGUgc2FtZS4KKworICAg
ICAgICBXZSBzaG91bGQgbWFrZSBzdXJlIHRvIHVzZSBHU3RyZWFtZXIgZWxlbWVudHMgb24gbG93
IHBvd2VyZWQgcGxhdGZvcm1zIGFuZCBmb3IgSG9zdFdpbmRvdworICAgICAgICBhY2NlbGVyYXRl
ZCBlbmNvZGVycyBhbmQgZGVjb2RlcnMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBtb3N0bHkgcmVmYWN0b3JpbmcsIG5vIG5ldyB0ZXN0
IHJlcXVpcmVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJl
YW1lckNvbW1vbi5oOiBBZGRlZCBHc3RNYXBwZWRGcmFtZSBzaW1pbGFyIHRvIEdzdE1hcHBlZEJ1
ZmZlciBidXQgZm9yIHZpZGVvIGZyYW1lcy4KKyAgICAgICAgKFdlYkNvcmU6OkdzdE1hcHBlZEZy
YW1lOjpHc3RNYXBwZWRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpHc3RNYXBwZWRGcmFtZTo6
Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkdzdE1hcHBlZEZyYW1lOjpDb21wb25lbnREYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6OkdzdE1hcHBlZEZyYW1lOjpDb21wb25lbnRTdHJpZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6R3N0TWFwcGVkRnJhbWU6OmluZm8pOgorICAgICAgICAoV2ViQ29yZTo6
R3N0TWFwcGVkRnJhbWU6OndpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OkdzdE1hcHBlZEZyYW1l
OjpoZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6R3N0TWFwcGVkRnJhbWU6OmZvcm1hdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHc3RNYXBwZWRGcmFtZTo6fkdzdE1hcHBlZEZyYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdzdE1hcHBlZEZyYW1lOjpvcGVyYXRvciBib29sIGNvbnN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1VuaXF1ZVB0ckdTdHJlYW1lci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0Zy
YW1lTGliV2ViUlRDLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvRnJhbWVM
aWJXZWJSVEM6OlRvSTQyMCk6IEltcGxlbWVudGVkIHN1cHBvcnQgZm9yIGNvbnZlcnRpbmcgZnJh
bWUgZm9ybWF0cyB3aXRoIHRoZSBHc3RWaWRlb0NvbnZlcnRlciBBUEkKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJWaWRlb0RlY29kZXI6OkdzdERlY29kZXJG
YWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvRGVjb2Rlcjo6SGFzR3N0
RGVjb2Rlcik6CisgICAgICAgIChXZWJDb3JlOjpWUDhEZWNvZGVyOjpDcmVhdGUpOiBDcmVhdGVz
IGEgYHdlYnJ0Yzo6TGlidnB4VnA4RGVjb2RlcigpYCBpZiBHU3RyZWFtZXIgZGVjb2RlciB3b3Vs
ZCBiZSB0aGUgTGliVlBYIGJhc2VkIG9uZS4KKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZp
ZGVvRGVjb2RlckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRGVjb2Rlcik6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2Rlci5jcHA6CisgICAg
ICAgIChnc3Rfd2VicnRjX3ZpZGVvX2VuY29kZXJfY2xhc3NfaW5pdCk6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rvcnku
Y3BwOiBTdG9wIHVzaW5nIHZwOGVuYyBhbmQgdXNlIExpYldlYlJUQyBiYXNlZCBpbXBsZW1lbnRh
dGlvbgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVySDI2NEVuY29kZXI6OkdTdHJlYW1lckgy
NjRFbmNvZGVyKTogUmVuYW1lZCBIMjY0RW5jb2RlciB0byBHU3RyZWFtZXJIMjY0RW5jb2RlciB0
byBiZSBtb3JlIGNvaGVyZW50IHdpdGggd2hhdCBpcyBkb25lIGluIExpYlZQWAorICAgICAgICAo
V2ViQ29yZTo6R1N0cmVhbWVyVlA4RW5jb2Rlcjo6R1N0cmVhbWVyVlA4RW5jb2Rlcik6IFJlbmFt
ZWQgVlA4RW5jb2RlciB0byBHU3RyZWFtZXJWUDhFbmNvZGVyIHRvIGJlIG1vcmUgY29oZXJlbnQg
d2l0aCB3aGF0IGlzIGRvbmUgaW4gTGliVlBYCisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJW
aWRlb0VuY29kZXJGYWN0b3J5OjpDcmVhdGVWaWRlb0VuY29kZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6R1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeTo6R2V0U3VwcG9ydGVkRm9ybWF0cyBjb25z
dCk6CisKIDIwMTgtMTEtMTMgIFRoaWJhdWx0IFNhdW5pZXIgIDx0c2F1bmllckBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHU3RyZWFtZXJdIEVuaGFuY2UgZGVidWdnaW5nIGJ5IG1ha2luZyBzdXJl
IHRvIHByaW50IHRoZSBwaXBlbGluZSBpbiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9DTWFrZUxpc3RzLnR4dAppbmRleCBjZjRmNzk4MDM4
NzA5NmZmYmJhNGI0MjU0MjBiZGZkNTI3NDdkZDVhLi40M2E0Y2E4Njg1MjIxMWI2ZWYyNDkyYWE2
MTY5ODkyMTVkZTMzOTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NNYWtlTGlz
dHMudHh0CkBAIC0xMDUwLDYgKzEwNTAsMTEgQEAgc2V0KHdlYnJ0Y19TT1VSQ0VTCiAgICAgU291
cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvaTQyMC9pNDIwLmNjCiAgICAg
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvdnA4L2RlZmF1bHRfdGVt
cG9yYWxfbGF5ZXJzLmNjCiAgICAgU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9j
b2RlY3MvdnA4L3NjcmVlbnNoYXJlX2xheWVycy5jYworICAgIFNvdXJjZS93ZWJydGMvbW9kdWxl
cy92aWRlb19jb2RpbmcvY29kZWNzL3ZwOC92cDhfdGVtcG9yYWxfbGF5ZXJzLmNjCisgICAgU291
cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvdnA4L2xpYnZweF92cDhfZGVj
b2Rlci5jYworICAgIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL3Zw
OC9saWJ2cHhfaW50ZXJmYWNlLmNjCisgICAgU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2Nv
ZGluZy9jb2RlY3MvdnA4L3RlbXBvcmFsX2xheWVyc19jaGVja2VyLmNjCisgICAgU291cmNlL3dl
YnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvdnA4L2xpYnZweF92cDhfZW5jb2Rlci5j
YwogICAgIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL3ZwOS9zdmNf
Y29uZmlnLmNjCiAgICAgU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3Mv
dnA5L3N2Y19yYXRlX2FsbG9jYXRvci5jYwogICAgIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRl
b19jb2RpbmcvZGVjb2Rlcl9kYXRhYmFzZS5jYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5oCmluZGV4
IGY3YzhkMmFmMDYwNTRkNzE3M2RjNGM2YTU4OGVhNmU3ZWM2MGY1ODkuLmNjNzY5YzYzY2NjNWQ2
N2UzNDI3MDFjOGRlZWI0MWUzNjgwM2Q1MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmgKQEAg
LTEzNSw2ICsxMzUsODkgQEAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBHc3RNYXBwZWRC
dWZmZXImIGEsIGNvbnN0IEdzdEJ1ZmZlciogYikKICAgICByZXR1cm4gYS5zaXplKCkgPT0gZ3N0
X2J1ZmZlcl9nZXRfc2l6ZShub25Db25zdEIpICYmICFnc3RfYnVmZmVyX21lbWNtcChub25Db25z
dEIsIDAsIGEuZGF0YSgpLCBhLnNpemUoKSk7CiB9CiAKK2NsYXNzIEdzdE1hcHBlZEZyYW1lIHsK
KyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHc3RNYXBwZWRGcmFtZSk7CitwdWJsaWM6CisKKyAg
ICBHc3RNYXBwZWRGcmFtZShHc3RCdWZmZXIgKmJ1ZmZlciwgR3N0VmlkZW9JbmZvIGluZm8sIEdz
dE1hcEZsYWdzIGZsYWdzKQorICAgIHsKKyAgICAgICAgbV9pc1ZhbGlkID0gZ3N0X3ZpZGVvX2Zy
YW1lX21hcCgmbV9mcmFtZSwgJmluZm8sIGJ1ZmZlciwgZmxhZ3MpOworICAgIH0KKworICAgIEdz
dE1hcHBlZEZyYW1lKEdSZWZQdHI8R3N0U2FtcGxlPiBzYW1wbGUsIEdzdE1hcEZsYWdzIGZsYWdz
KQorICAgIHsKKyAgICAgICAgR3N0VmlkZW9JbmZvIGluZm87CisKKyAgICAgICAgaWYgKCFnc3Rf
dmlkZW9faW5mb19mcm9tX2NhcHMoJmluZm8sIGdzdF9zYW1wbGVfZ2V0X2NhcHMoc2FtcGxlLmdl
dCgpKSkpIHsKKyAgICAgICAgICAgIG1faXNWYWxpZCA9IGZhbHNlOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgbV9pc1ZhbGlkID0gZ3N0X3ZpZGVvX2ZyYW1lX21h
cCgmbV9mcmFtZSwgJmluZm8sIGdzdF9zYW1wbGVfZ2V0X2J1ZmZlcihzYW1wbGUuZ2V0KCkpLCBm
bGFncyk7CisgICAgfQorCisgICAgR3N0VmlkZW9GcmFtZSAqZ2V0KCkKKyAgICB7CisgICAgICAg
IGlmICghbV9pc1ZhbGlkKSB7CisgICAgICAgICAgICBHU1RfSU5GTygiSW52YWxpZCBmcmFtZSwg
cmV0dXJuaW5nIE5VTEwiKTsKKworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAg
IH0KKworICAgICAgICByZXR1cm4gJm1fZnJhbWU7CisgICAgfQorCisgICAgdWludDhfdCAqQ29t
cG9uZW50RGF0YShpbnQgY29tcCkKKyAgICB7CisgICAgICAgIHJldHVybiBHU1RfVklERU9fRlJB
TUVfQ09NUF9EQVRBKCZtX2ZyYW1lLCBjb21wKTsKKyAgICB9CisKKyAgICBpbnQgQ29tcG9uZW50
U3RyaWRlKGludCBzdHJpZGUpCisgICAgeworICAgICAgICByZXR1cm4gR1NUX1ZJREVPX0ZSQU1F
X0NPTVBfU1RSSURFKCZtX2ZyYW1lLCBzdHJpZGUpOworICAgIH0KKworICAgIEdzdFZpZGVvSW5m
byAqaW5mbygpCisgICAgeworICAgICAgICBpZiAoIW1faXNWYWxpZCkgeworICAgICAgICAgICAg
R1NUX0lORk8oIkludmFsaWQgZnJhbWUsIHJldHVybmluZyBOVUxMIik7CisKKyAgICAgICAgICAg
IHJldHVybiBudWxscHRyOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICZtX2ZyYW1lLmlu
Zm87CisgICAgfQorCisgICAgaW50IHdpZHRoKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2lz
VmFsaWQgPyBHU1RfVklERU9fRlJBTUVfV0lEVEgoJm1fZnJhbWUpIDogLTE7CisgICAgfQorCisg
ICAgaW50IGhlaWdodCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9pc1ZhbGlkID8gR1NUX1ZJ
REVPX0ZSQU1FX0hFSUdIVCgmbV9mcmFtZSkgOiAtMTsKKyAgICB9CisKKyAgICBpbnQgZm9ybWF0
KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2lzVmFsaWQgPyBHU1RfVklERU9fRlJBTUVfRk9S
TUFUKCZtX2ZyYW1lKSA6IEdTVF9WSURFT19GT1JNQVRfVU5LTk9XTjsKKyAgICB9CisKKyAgICB+
R3N0TWFwcGVkRnJhbWUoKQorICAgIHsKKyAgICAgICAgaWYgKG1faXNWYWxpZCkKKyAgICAgICAg
ICAgIGdzdF92aWRlb19mcmFtZV91bm1hcCgmbV9mcmFtZSk7CisgICAgICAgIG1faXNWYWxpZCA9
IGZhbHNlOworICAgIH0KKworICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJl
dHVybiBtX2lzVmFsaWQ7IH0KKworcHJpdmF0ZToKKyAgICBHc3RWaWRlb0ZyYW1lIG1fZnJhbWU7
CisgICAgYm9vbCBtX2lzVmFsaWQgeyBmYWxzZSB9OworfTsKKworCiBib29sIGdzdFJlZ2lzdHJ5
SGFzRWxlbWVudEZvck1lZGlhVHlwZShHTGlzdCogZWxlbWVudEZhY3RvcmllcywgY29uc3QgY2hh
ciogY2Fwc1N0cmluZyk7CiB2b2lkIGNvbm5lY3RTaW1wbGVCdXNNZXNzYWdlQ2FsbGJhY2soR3N0
RWxlbWVudCAqcGlwZWxpbmUpOwogdm9pZCBkaXNjb25uZWN0U2ltcGxlQnVzTWVzc2FnZUNhbGxi
YWNrKEdzdEVsZW1lbnQgKnBpcGVsaW5lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HVW5pcXVlUHRyR1N0cmVhbWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1VuaXF1ZVB0ckdTdHJlYW1lci5o
CmluZGV4IDE4NThhMTZlY2I1MmJmODk0MmNkODJjZjI1ODYzOWFhYTg3NDc4YjEuLmFiMjFmM2I4
MDhiNGYzMDU2MTgyZGY3NTJlMGEyYzcwMzZiZmQ4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HVW5pcXVlUHRyR1N0cmVhbWVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dVbmlxdWVQdHJH
U3RyZWFtZXIuaApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgPGdzdC9nc3RzZWdtZW50Lmg+
CiAjaW5jbHVkZSA8Z3N0L2dzdHN0cnVjdHVyZS5oPgogI2luY2x1ZGUgPGdzdC9wYnV0aWxzL2lu
c3RhbGwtcGx1Z2lucy5oPgorI2luY2x1ZGUgPGdzdC92aWRlby92aWRlby5oPgogI2luY2x1ZGUg
PHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KIAogbmFtZXNwYWNlIFdURiB7CkBAIC0zNiw2ICszNyw3
IEBAIFdURl9ERUZJTkVfR1BUUl9ERUxFVEVSKEdzdEl0ZXJhdG9yLCBnc3RfaXRlcmF0b3JfZnJl
ZSkKIFdURl9ERUZJTkVfR1BUUl9ERUxFVEVSKEdzdFNlZ21lbnQsIGdzdF9zZWdtZW50X2ZyZWUp
CiBXVEZfREVGSU5FX0dQVFJfREVMRVRFUihHc3RGbG93Q29tYmluZXIsIGdzdF9mbG93X2NvbWJp
bmVyX2ZyZWUpCiBXVEZfREVGSU5FX0dQVFJfREVMRVRFUihHc3RCeXRlUmVhZGVyLCBnc3RfYnl0
ZV9yZWFkZXJfZnJlZSkKK1dURl9ERUZJTkVfR1BUUl9ERUxFVEVSKEdzdFZpZGVvQ29udmVydGVy
LCBnc3RfdmlkZW9fY29udmVydGVyX2ZyZWUpCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvRnJhbWVM
aWJXZWJSVEMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lclZpZGVvRnJhbWVMaWJXZWJSVEMuY3BwCmluZGV4IDEyMGY1ZjNjZGI1YThk
ZGU5NzY1YWIxOTM4ZWQ5YzEwNzdjZDc4MjEuLmZiYmI3NjZlMjk3NTJiYTAyYWYxZjFmZTcxYTE2
YjFjY2I0NTEwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0ZyYW1lTGliV2ViUlRDLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9G
cmFtZUxpYldlYlJUQy5jcHAKQEAgLTIxLDYgKzIxLDggQEAKICNpZiBVU0UoR1NUUkVBTUVSKSAm
JiBVU0UoTElCV0VCUlRDKQogI2luY2x1ZGUgIkdTdHJlYW1lclZpZGVvRnJhbWVMaWJXZWJSVEMu
aCIKIAorI2luY2x1ZGU8dGhyZWFkPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IEdS
ZWZQdHI8R3N0U2FtcGxlPiBHU3RyZWFtZXJTYW1wbGVGcm9tTGliV2ViUlRDVmlkZW9GcmFtZShj
b25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmIGZyYW1lKQpAQCAtOTAsMzcgKzkyLDU1IEBAIEdSZWZQ
dHI8R3N0U2FtcGxlPiBHU3RyZWFtZXJWaWRlb0ZyYW1lTGliV2ViUlRDOjpnZXRTYW1wbGUoKQog
CiBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpJNDIwQnVmZmVySW50ZXJmYWNlPiBHU3RyZWFt
ZXJWaWRlb0ZyYW1lTGliV2ViUlRDOjpUb0k0MjAoKQogewotICAgIEdzdFZpZGVvSW5mbyBpbmZv
OwotICAgIEdzdFZpZGVvRnJhbWUgZnJhbWU7CisgICAgR3N0TWFwcGVkRnJhbWUgaW5GcmFtZSht
X3NhbXBsZSwgR1NUX01BUF9SRUFEKTsKIAotICAgIGlmICghZ3N0X3ZpZGVvX2luZm9fZnJvbV9j
YXBzKCZpbmZvLCBnc3Rfc2FtcGxlX2dldF9jYXBzKG1fc2FtcGxlLmdldCgpKSkpCi0gICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIGlmICghaW5GcmFtZSkgeworICAgICAgICBHU1Rf
V0FSTklORygiQ291bGQgbm90IG1hcCBmcmFtZSIpOwogCi0gICAgaWYgKEdTVF9WSURFT19JTkZP
X0ZPUk1BVCgmaW5mbykgIT0gR1NUX1ZJREVPX0ZPUk1BVF9JNDIwKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICB9CiAKLSAgICBnc3RfdmlkZW9fZnJhbWVfbWFwKCZmcmFtZSwgJmluZm8s
IGdzdF9zYW1wbGVfZ2V0X2J1ZmZlcihtX3NhbXBsZS5nZXQoKSksIEdTVF9NQVBfUkVBRCk7Ci0K
LSAgICBhdXRvIG5ld0J1ZmZlciA9IG1fYnVmZmVyUG9vbC5DcmVhdGVCdWZmZXIoR1NUX1ZJREVP
X0ZSQU1FX1dJRFRIKCZmcmFtZSksCi0gICAgICAgIEdTVF9WSURFT19GUkFNRV9IRUlHSFQoJmZy
YW1lKSk7Ci0KKyAgICBhdXRvIG5ld0J1ZmZlciA9IG1fYnVmZmVyUG9vbC5DcmVhdGVCdWZmZXIo
aW5GcmFtZS53aWR0aCgpLCBpbkZyYW1lLmhlaWdodCgpKTsKICAgICBBU1NFUlQobmV3QnVmZmVy
KTsKICAgICBpZiAoIW5ld0J1ZmZlcikgewotICAgICAgICBnc3RfdmlkZW9fZnJhbWVfdW5tYXAo
JmZyYW1lKTsKICAgICAgICAgR1NUX1dBUk5JTkcoIlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZUdTdHJlYW1lcjo6dmlkZW9TYW1wbGVBdmFpbGFibGUgdW5hYmxlIHRvIGFsbG9jYXRlIGJ1ZmZl
ciBmb3IgY29udmVyc2lvbiB0byBZVVYiKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQogCisgICAgaWYgKGluRnJhbWUuZm9ybWF0KCkgIT0gR1NUX1ZJREVPX0ZPUk1BVF9JNDIwKSB7
CisgICAgICAgIEdzdFZpZGVvSW5mbyBvdXRJbmZvOworCisgICAgICAgIGdzdF92aWRlb19pbmZv
X3NldF9mb3JtYXQoJm91dEluZm8sIEdTVF9WSURFT19GT1JNQVRfSTQyMCwgaW5GcmFtZS53aWR0
aCgpLAorICAgICAgICAgICAgaW5GcmFtZS5oZWlnaHQoKSk7CisgICAgICAgIGF1dG8gaW5mbyA9
IGluRnJhbWUuaW5mbygpOworICAgICAgICBvdXRJbmZvLmZwc19uID0gaW5mby0+ZnBzX247Cisg
ICAgICAgIG91dEluZm8uZnBzX2QgPSBpbmZvLT5mcHNfZDsKKworICAgICAgICBHUmVmUHRyPEdz
dEJ1ZmZlcj4gYnVmZmVyID0gYWRvcHRHUmVmKGdzdF9idWZmZXJfbmV3X3dyYXBwZWRfZnVsbChH
U1RfTUVNT1JZX0ZMQUdfTk9fU0hBUkUsIG5ld0J1ZmZlci0+TXV0YWJsZURhdGFZKCksCisgICAg
ICAgICAgICBvdXRJbmZvLnNpemUsIDAsIG91dEluZm8uc2l6ZSwgbnVsbHB0ciwgbnVsbHB0cikp
OworCisgICAgICAgIEdzdE1hcHBlZEZyYW1lIG91dEZyYW1lKGJ1ZmZlci5nZXQoKSwgb3V0SW5m
bywgR1NUX01BUF9XUklURSk7CisKKyAgICAgICAgR1VuaXF1ZVB0cjxHc3RWaWRlb0NvbnZlcnRl
cj4gdmlkZW9Db252ZXJ0ZXIoZ3N0X3ZpZGVvX2NvbnZlcnRlcl9uZXcoaW5GcmFtZS5pbmZvKCks
CisgICAgICAgICAgICAmb3V0SW5mbywgZ3N0X3N0cnVjdHVyZV9uZXcoIkdzdFZpZGVvQ29udmVy
dENvbmZpZyIsCisgICAgICAgICAgICBHU1RfVklERU9fQ09OVkVSVEVSX09QVF9USFJFQURTLCBH
X1RZUEVfVUlOVCwgc3RkOjp0aHJlYWQ6OmhhcmR3YXJlX2NvbmN1cnJlbmN5KCkgfHwgMSAsIG51
bGxwdHIpKSk7CisKKyAgICAgICAgQVNTRVJUKHZpZGVvQ29udmVydGVyKTsKKworICAgICAgICBn
c3RfdmlkZW9fY29udmVydGVyX2ZyYW1lKHZpZGVvQ29udmVydGVyLmdldCgpLCBpbkZyYW1lLmdl
dCgpLCBvdXRGcmFtZS5nZXQoKSk7CisKKyAgICAgICAgcmV0dXJuIG5ld0J1ZmZlcjsKKyAgICB9
CisKICAgICBuZXdCdWZmZXItPkNvcHkoCi0gICAgICAgIEdTVF9WSURFT19GUkFNRV9XSURUSCgm
ZnJhbWUpLAotICAgICAgICBHU1RfVklERU9fRlJBTUVfSEVJR0hUKCZmcmFtZSksCi0gICAgICAg
IEdTVF9WSURFT19GUkFNRV9DT01QX0RBVEEoJmZyYW1lLCAwKSwKLSAgICAgICAgR1NUX1ZJREVP
X0ZSQU1FX0NPTVBfU1RSSURFKCZmcmFtZSwgMCksCi0gICAgICAgIEdTVF9WSURFT19GUkFNRV9D
T01QX0RBVEEoJmZyYW1lLCAxKSwKLSAgICAgICAgR1NUX1ZJREVPX0ZSQU1FX0NPTVBfU1RSSURF
KCZmcmFtZSwgMSksCi0gICAgICAgIEdTVF9WSURFT19GUkFNRV9DT01QX0RBVEEoJmZyYW1lLCAy
KSwKLSAgICAgICAgR1NUX1ZJREVPX0ZSQU1FX0NPTVBfU1RSSURFKCZmcmFtZSwgMikpOwotICAg
IGdzdF92aWRlb19mcmFtZV91bm1hcCgmZnJhbWUpOworICAgICAgICBpbkZyYW1lLndpZHRoKCks
CisgICAgICAgIGluRnJhbWUuaGVpZ2h0KCksCisgICAgICAgIGluRnJhbWUuQ29tcG9uZW50RGF0
YSgwKSwKKyAgICAgICAgaW5GcmFtZS5Db21wb25lbnRTdHJpZGUoMCksCisgICAgICAgIGluRnJh
bWUuQ29tcG9uZW50RGF0YSgxKSwKKyAgICAgICAgaW5GcmFtZS5Db21wb25lbnRTdHJpZGUoMSks
CisgICAgICAgIGluRnJhbWUuQ29tcG9uZW50RGF0YSgyKSwKKyAgICAgICAgaW5GcmFtZS5Db21w
b25lbnRTdHJpZGUoMikpOwogCiAgICAgcmV0dXJuIG5ld0J1ZmZlcjsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJW
aWRlb0RlY29kZXJGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNwcAppbmRleCBmMGFj
OGRmNmY2YWRiYmU1OWYyOWFiMTMzY2U5NWMyMTQ1MzU4NGQ5Li45OGQwNTAyODk0MDg0MTUyZWFj
Y2UwMTM5MDI0ODJjOWU2YjliYzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJl
YW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAi
d2VicnRjL21lZGlhL2Jhc2UvY29kZWMuaCIKICNpbmNsdWRlICJ3ZWJydGMvbW9kdWxlcy92aWRl
b19jb2RpbmcvY29kZWNzL2gyNjQvaW5jbHVkZS9oMjY0LmgiCiAjaW5jbHVkZSAid2VicnRjL21v
ZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDgvaW5jbHVkZS92cDguaCIKKyNpbmNsdWRlICJ3
ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL3ZwOC9saWJ2cHhfdnA4X2RlY29kZXIu
aCIKICNpbmNsdWRlICJ3ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaW5jbHVkZS92aWRlb19j
b2RlY19pbnRlcmZhY2UuaCIKICNpbmNsdWRlIDxnc3QvYXBwL2dzdGFwcHNpbmsuaD4KICNpbmNs
dWRlIDxnc3QvYXBwL2dzdGFwcHNyYy5oPgpAQCAtMjE0LDE5ICsyMTUsMjYgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gd2VicnRjOjpTZHBWaWRlb0Zvcm1hdChOYW1lKCkpOwogICAgIH0KIAot
ICAgIGJvb2wgSGFzR3N0RGVjb2RlcigpCisgICAgc3RhdGljIEdSZWZQdHI8R3N0RWxlbWVudEZh
Y3Rvcnk+IEdzdERlY29kZXJGYWN0b3J5KGNvbnN0IGNoYXIgKmNhcHNTdHIpCiAgICAgewotCiAg
ICAgICAgIGF1dG8gYWxsX2RlY29kZXJzID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9saXN0X2dldF9l
bGVtZW50cyhHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfREVDT0RFUiwKICAgICAgICAgICAgIEdT
VF9SQU5LX01BUkdJTkFMKTsKLSAgICAgICAgYXV0byBjYXBzID0gYWRvcHRHUmVmKGdzdF9jYXBz
X2Zyb21fc3RyaW5nKENhcHMoKSkpOworICAgICAgICBhdXRvIGNhcHMgPSBhZG9wdEdSZWYoZ3N0
X2NhcHNfZnJvbV9zdHJpbmcoY2Fwc1N0cikpOwogICAgICAgICBhdXRvIGRlY29kZXJzID0gZ3N0
X2VsZW1lbnRfZmFjdG9yeV9saXN0X2ZpbHRlcihhbGxfZGVjb2RlcnMsCiAgICAgICAgICAgICBj
YXBzLmdldCgpLCBHU1RfUEFEX1NJTkssIEZBTFNFKTsKIAogICAgICAgICBnc3RfcGx1Z2luX2Zl
YXR1cmVfbGlzdF9mcmVlKGFsbF9kZWNvZGVycyk7CisgICAgICAgIEdSZWZQdHI8R3N0RWxlbWVu
dEZhY3Rvcnk+IHJlczsKKyAgICAgICAgaWYgKGRlY29kZXJzKQorICAgICAgICAgICAgcmVzID0g
R1NUX0VMRU1FTlRfRkFDVE9SWShkZWNvZGVycy0+ZGF0YSk7CiAgICAgICAgIGdzdF9wbHVnaW5f
ZmVhdHVyZV9saXN0X2ZyZWUoZGVjb2RlcnMpOwogCi0gICAgICAgIHJldHVybiBkZWNvZGVycyAh
PSBudWxscHRyOworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKworICAgIGJvb2wgSGFzR3N0
RGVjb2RlcigpCisgICAgeworICAgICAgICByZXR1cm4gR3N0RGVjb2RlckZhY3RvcnkoQ2Fwcygp
KTsKICAgICB9CiAKICAgICBHc3RGbG93UmV0dXJuIG5ld1NhbXBsZUNhbGxiYWNrKEdzdEVsZW1l
bnQqIHNpbmspCkBAIC0zNDMsMTYgKzM1MSwyOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgZ2NoYXIq
IENhcHMoKSBmaW5hbCB7IHJldHVybiAidmlkZW8veC12cDgiOyB9CiAgICAgY29uc3QgZ2NoYXIq
IE5hbWUoKSBmaW5hbCB7IHJldHVybiBjcmlja2V0OjprVnA4Q29kZWNOYW1lOyB9CiAgICAgd2Vi
cnRjOjpWaWRlb0NvZGVjVHlwZSBDb2RlY1R5cGUoKSBmaW5hbCB7IHJldHVybiB3ZWJydGM6OmtW
aWRlb0NvZGVjVlA4OyB9CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVv
RGVjb2Rlcj4gQ3JlYXRlKCkKKyAgICB7CisgICAgICAgIGF1dG8gZmFjdG9yeSA9IEdzdERlY29k
ZXJGYWN0b3J5KCJ2aWRlby94LXZwOCIpOworCisgICAgICAgIGlmIChmYWN0b3J5ICYmICFnX3N0
cmNtcDAoR1NUX09CSkVDVF9OQU1FKEdTVF9PQkpFQ1QoZmFjdG9yeS5nZXQoKSkpLCAidnA4ZGVj
IikpIHsKKyAgICAgICAgICAgIEdTVF9JTkZPKCJPdXIgYmVzdCBHU3RyZWFtZXIgVlA4IGRlY29k
ZXIgaXMgdnA4ZGVjLCBiZXR0ZXIgdXNlIHRoZSBvbmUgZnJvbSBMaWJXZWJSVEMiKTsKKworICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRGVjb2Rlcj4obmV3
IHdlYnJ0Yzo6TGlidnB4VnA4RGVjb2RlcigpKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVy
biBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXI+KG5ldyBWUDhEZWNvZGVyKCkp
OworICAgIH0KIH07CiAKIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRGVjb2Rlcj4gR1N0
cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9EZWNvZGVyKGNvbnN0IHdlYnJ0
Yzo6U2RwVmlkZW9Gb3JtYXQmIGZvcm1hdCkKIHsKLSAgICBHU3RyZWFtZXJWaWRlb0RlY29kZXIq
IGRlYzsKKyAgICB3ZWJydGM6OlZpZGVvRGVjb2RlciogZGVjOwogCiAgICAgaWYgKGZvcm1hdC5u
YW1lID09IGNyaWNrZXQ6OmtIMjY0Q29kZWNOYW1lKQogICAgICAgICBkZWMgPSBuZXcgSDI2NERl
Y29kZXIoKTsKICAgICBlbHNlIGlmIChmb3JtYXQubmFtZSA9PSBjcmlja2V0OjprVnA4Q29kZWNO
YW1lKQotICAgICAgICBkZWMgPSBuZXcgVlA4RGVjb2RlcigpOworICAgICAgICByZXR1cm4gVlA4
RGVjb2Rlcjo6Q3JlYXRlKCk7CiAgICAgZWxzZSB7CiAgICAgICAgIEdTVF9FUlJPUigiQ291bGQg
bm90IGNyZWF0ZSBkZWNvZGVyIGZvciAlcyIsIGZvcm1hdC5uYW1lLmNfc3RyKCkpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0
cmVhbWVyVmlkZW9FbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIuY3BwCmluZGV4IGQ2MDkzYjlmZGRh
M2E2MmE2NTE0ZmVkNWE4MDk4M2Q1N2Q4N2I0OWYuLmUyZTJkM2U1MTY3ZTg1ODA4NzcwMmI2MTU1
ZTk2NTA3MjI4ZDM5MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29k
ZXIuY3BwCkBAIC0yNzcsMTIgKzI3Nyw2IEBAIHNldHVwX3gyNjRlbmMgKEdPYmplY3QgKiBlbmNv
ZGVyKQogICBnc3RfdXRpbF9zZXRfb2JqZWN0X2FyZyAoZW5jb2RlciwgInR1bmUiLCAiemVyb2xh
dGVuY3kiKTsKIH0KIAotc3RhdGljIHZvaWQKLXNldHVwX3ZwOGVuYyAoR09iamVjdCAqIGVuY29k
ZXIpCi17Ci0gIGdzdF9wcmVzZXRfbG9hZF9wcmVzZXQgKEdTVF9QUkVTRVQgKGVuY29kZXIpLCAi
UHJvZmlsZSBSZWFsdGltZSIpOwotfQotCiBzdGF0aWMgdm9pZAogc2V0dXBfb3BlbmgyNjRlbmMg
KEdPYmplY3QgKikKIHsKQEAgLTI5NSwxMyArMjg5LDYgQEAgc2V0X2JpdHJhdGVfa2JpdF9wZXJf
c2VjIChHT2JqZWN0ICogZW5jb2RlciwgY29uc3QgZ2NoYXIgKiBwcm9wX25hbWUsCiAgIGdfb2Jq
ZWN0X3NldCAoZW5jb2RlciwgcHJvcF9uYW1lLCBiaXRyYXRlLCBOVUxMKTsKIH0KIAotc3RhdGlj
IHZvaWQKLXNldF9iaXRyYXRlX2JpdF9wZXJfc2VjIChHT2JqZWN0ICogZW5jb2RlciwgY29uc3Qg
Z2NoYXIgKiBwcm9wX25hbWUsCi0gICAgZ2ludCBiaXRyYXRlKQotewotICBnX29iamVjdF9zZXQg
KGVuY29kZXIsIHByb3BfbmFtZSwgYml0cmF0ZSAqIEtCSVRfVE9fQklULCBOVUxMKTsKLX0KLQog
c3RhdGljIHZvaWQKIGdzdF93ZWJydGNfdmlkZW9fZW5jb2Rlcl9jbGFzc19pbml0IChHc3RXZWJy
dGNWaWRlb0VuY29kZXJDbGFzcyAqIGtsYXNzKQogewpAQCAtMzQ0LDkgKzMzMSw2IEBAIGdzdF93
ZWJydGNfdmlkZW9fZW5jb2Rlcl9jbGFzc19pbml0IChHc3RXZWJydGNWaWRlb0VuY29kZXJDbGFz
cyAqIGtsYXNzKQogICAgICAgInZpZGVvL3gtaDI2NCIsCiAgICAgICAidmlkZW8veC1oMjY0LGFs
aWdubWVudD1hdSxzdHJlYW0tZm9ybWF0PWJ5dGUtc3RyZWFtLHByb2ZpbGU9YmFzZWxpbmUiLAog
ICAgICAgc2V0dXBfb3BlbmgyNjRlbmMsICJiaXRyYXRlIiwgc2V0X2JpdHJhdGVfa2JpdF9wZXJf
c2VjLCAiZ29wLXNpemUiKTsKLSAgcmVnaXN0ZXJfa25vd25fZW5jb2RlciAoRU5DT0RFUl9WUDgs
ICJ2cDhlbmMiLCBOVUxMLCAidmlkZW8veC12cDgiLCBOVUxMLAotICAgICAgc2V0dXBfdnA4ZW5j
LCAidGFyZ2V0LWJpdHJhdGUiLCBzZXRfYml0cmF0ZV9iaXRfcGVyX3NlYywKLSAgICAgICJrZXlm
cmFtZS1tYXgtZGlzdCIpOwogfQogCiBzdGF0aWMgdm9pZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2Rl
ckZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwCmluZGV4IDA2NTQwMDQ2ZjY4MGE5
OWY3OWFkZTY2NzIyMzkyMTU3NTRmM2RiODkuLmFjNjQ0NWZhMDBjNzFjZGQwMTQ0ODEyMDJmY2Jj
OWU5MWMxNzk3ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9F
bmNvZGVyRmFjdG9yeS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJ3ZWJydGMvbWVk
aWEvYmFzZS9jb2RlYy5oIgogI2luY2x1ZGUgIndlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9j
b2RlY3MvaDI2NC9pbmNsdWRlL2gyNjQuaCIKICNpbmNsdWRlICJ3ZWJydGMvbW9kdWxlcy92aWRl
b19jb2RpbmcvY29kZWNzL3ZwOC9pbmNsdWRlL3ZwOC5oIgorI2luY2x1ZGUgIndlYnJ0Yy9tb2R1
bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvdnA4L2xpYnZweF92cDhfZW5jb2Rlci5oIgogI2luY2x1
ZGUgIndlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3ZpZGVvX2NvZGVjX2ludGVy
ZmFjZS5oIgogI2luY2x1ZGUgIndlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy91dGlsaXR5L3Np
bXVsY2FzdF91dGlsaXR5LmgiCiAKQEAgLTQxMCwxMSArNDExLDExIEBAIHByaXZhdGU6CiAgICAg
VmVjdG9yPEZyYW1lRGF0YT4gbV9mcmFtZXNEYXRhOwogfTsKIAotY2xhc3MgSDI2NEVuY29kZXIg
OiBwdWJsaWMgR1N0cmVhbWVyVmlkZW9FbmNvZGVyIHsKK2NsYXNzIEdTdHJlYW1lckgyNjRFbmNv
ZGVyIDogcHVibGljIEdTdHJlYW1lclZpZGVvRW5jb2RlciB7CiBwdWJsaWM6Ci0gICAgSDI2NEVu
Y29kZXIoKSB7IH0KKyAgICBHU3RyZWFtZXJIMjY0RW5jb2RlcigpIHsgfQogCi0gICAgSDI2NEVu
Y29kZXIoY29uc3Qgd2VicnRjOjpTZHBWaWRlb0Zvcm1hdCYgZm9ybWF0KQorICAgIEdTdHJlYW1l
ckgyNjRFbmNvZGVyKGNvbnN0IHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQmIGZvcm1hdCkKICAgICAg
ICAgOiBtX3BhcnNlcihnc3RfaDI2NF9uYWxfcGFyc2VyX25ldygpKQogICAgICAgICAsIHBhY2tl
dGl6YXRpb25Nb2RlKHdlYnJ0Yzo6SDI2NFBhY2tldGl6YXRpb25Nb2RlOjpOb25JbnRlcmxlYXZl
ZCkKICAgICB7CkBAIC01MDgsMTAgKzUwOSwxMCBAQCBwdWJsaWM6CiAgICAgd2VicnRjOjpIMjY0
UGFja2V0aXphdGlvbk1vZGUgcGFja2V0aXphdGlvbk1vZGU7CiB9OwogCi1jbGFzcyBWUDhFbmNv
ZGVyIDogcHVibGljIEdTdHJlYW1lclZpZGVvRW5jb2RlciB7CitjbGFzcyBHU3RyZWFtZXJWUDhF
bmNvZGVyIDogcHVibGljIEdTdHJlYW1lclZpZGVvRW5jb2RlciB7CiBwdWJsaWM6Ci0gICAgVlA4
RW5jb2RlcigpIHsgfQotICAgIFZQOEVuY29kZXIoY29uc3Qgd2VicnRjOjpTZHBWaWRlb0Zvcm1h
dCYpIHsgfQorICAgIEdTdHJlYW1lclZQOEVuY29kZXIoKSB7IH0KKyAgICBHU3RyZWFtZXJWUDhF
bmNvZGVyKGNvbnN0IHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQmKSB7IH0KICAgICBjb25zdCBnY2hh
ciogQ2FwcygpIGZpbmFsIHsgcmV0dXJuICJ2aWRlby94LXZwOCI7IH0KICAgICBjb25zdCBnY2hh
ciogTmFtZSgpIGZpbmFsIHsgcmV0dXJuIGNyaWNrZXQ6OmtWcDhDb2RlY05hbWU7IH0KICAgICB3
ZWJydGM6OlZpZGVvQ29kZWNUeXBlIENvZGVjVHlwZSgpIGZpbmFsIHsgcmV0dXJuIHdlYnJ0Yzo6
a1ZpZGVvQ29kZWNWUDg7IH0KQEAgLTUzNSwxMSArNTM2LDIyIEBAIHB1YmxpYzoKIAogc3RkOjp1
bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9FbmNvZGVyPiBHU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0
b3J5OjpDcmVhdGVWaWRlb0VuY29kZXIoY29uc3Qgd2VicnRjOjpTZHBWaWRlb0Zvcm1hdCYgZm9y
bWF0KQogewotICAgIGlmIChmb3JtYXQubmFtZSA9PSBjcmlja2V0OjprVnA4Q29kZWNOYW1lKQot
ICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxWUDhFbmNvZGVyPihmb3JtYXQpOworICAg
IGlmIChmb3JtYXQubmFtZSA9PSBjcmlja2V0OjprVnA4Q29kZWNOYW1lKSB7CisgICAgICAgIEdS
ZWZQdHI8R3N0RWxlbWVudD4gd2VicnRjZW5jb2RlciA9IGFkb3B0R1JlZihHU1RfRUxFTUVOVChn
X29iamVjdF9yZWZfc2luayhnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoIndlYnJ0Y3ZpZGVvZW5j
b2RlciIsIE5VTEwpKSkpOworICAgICAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IGVuY29kZXIgPSBu
dWxscHRyOworCisgICAgICAgIGdfb2JqZWN0X3NldCh3ZWJydGNlbmNvZGVyLmdldCgpLCAiZm9y
bWF0IiwgYWRvcHRHUmVmKGdzdF9jYXBzX2Zyb21fc3RyaW5nKCJ2aWRlby94LXZwOCIpKS5nZXQo
KSwgTlVMTCk7CisgICAgICAgIGdfb2JqZWN0X2dldCh3ZWJydGNlbmNvZGVyLmdldCgpLCAiZW5j
b2RlciIsICZlbmNvZGVyLm91dFB0cigpLCBOVUxMKTsKKworICAgICAgICBpZiAoZW5jb2RlcikK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdTdHJlYW1lclZQOEVuY29kZXI+
KGZvcm1hdCk7CisKKyAgICAgICAgR1NUX0lORk8oIlVzaW5nIFZQOCBFbmNvZGVyIGZyb20gTGli
V2ViUlRDLiIpOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTx3ZWJydGM6OkxpYnZw
eFZwOEVuY29kZXI+KCk7CisgICAgfQogCiAgICAgaWYgKGZvcm1hdC5uYW1lID09IGNyaWNrZXQ6
OmtIMjY0Q29kZWNOYW1lKQotICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxIMjY0RW5j
b2Rlcj4oZm9ybWF0KTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R1N0cmVhbWVy
SDI2NEVuY29kZXI+KGZvcm1hdCk7CiAKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KQEAgLTU1OCw4
ICs1NzAsOCBAQCBzdGQ6OnZlY3Rvcjx3ZWJydGM6OlNkcFZpZGVvRm9ybWF0PiBHU3RyZWFtZXJW
aWRlb0VuY29kZXJGYWN0b3J5OjpHZXRTdXBwb3J0ZWRGbwogewogICAgIHN0ZDo6dmVjdG9yPHdl
YnJ0Yzo6U2RwVmlkZW9Gb3JtYXQ+IHN1cHBvcnRlZENvZGVjczsKIAotICAgIFZQOEVuY29kZXIo
KS5BZGRDb2RlY0lmU3VwcG9ydGVkKCZzdXBwb3J0ZWRDb2RlY3MpOwotICAgIEgyNjRFbmNvZGVy
KCkuQWRkQ29kZWNJZlN1cHBvcnRlZCgmc3VwcG9ydGVkQ29kZWNzKTsKKyAgICBzdXBwb3J0ZWRD
b2RlY3MucHVzaF9iYWNrKHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQoY3JpY2tldDo6a1ZwOENvZGVj
TmFtZSkpOworICAgIEdTdHJlYW1lckgyNjRFbmNvZGVyKCkuQWRkQ29kZWNJZlN1cHBvcnRlZCgm
c3VwcG9ydGVkQ29kZWNzKTsKIAogICAgIHJldHVybiBzdXBwb3J0ZWRDb2RlY3M7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355339</attachid>
            <date>2018-11-20 06:39:09 -0800</date>
            <delta_ts>2018-11-22 04:41:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191861-20181120113907.patch</filename>
            <type>text/plain</type>
            <size>20115</size>
            <attacher name="Thibault Saunier">tsaunier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4Mjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCA1NmQ5MmVmOWVlYjUxNjg2ZDgxYTExMjg2OWM4NGZiZjQ3ZDg3N2MwLi41ZGI0
YTgwZDc5YzFhZDAyN2M2YjJhOWYzMzhkNzFjYTE3NDRmNDMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOC0xMS0yMCAgVGhpYmF1bHQg
U2F1bmllciAgPHRzYXVuaWVyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl1bV2Vi
UlRDXSBVc2UgTGliV2ViUlRDIHByb3ZpZGVkIHZwOCBkZWNvZGVycyBhbmQgZW5jb2RlcnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTg2MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6IEJ1aWxkIExpYlZQWCB2cDggZW5jb2RlciBhbmQgZGVjb2RlcnMuCisKIDIwMTgtMTEt
MTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIENvbnZlcnQg
bGlid2VicnRjIGVycm9yIHR5cGVzIHRvIERPTSBleGNlcHRpb25zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTY3
ZTI2MjIzYjZkMGExZGU5ZmI5MWZkMGNmN2U1MDA2Y2FhMDQ2ZC4uN2IxNmNhZGViYTc4NjEzNjA1
Y2Y0ODQ4YjA1MWIyMjBhYjcyOWI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE4
LTExLTIwICBUaGliYXVsdCBTYXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KKworICAgICAg
ICBbR1N0cmVhbWVyXVtXZWJSVENdIFVzZSBMaWJXZWJSVEMgcHJvdmlkZWQgdnA4IGRlY29kZXJz
IGFuZCBlbmNvZGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkxODYxCisKKyAgICAgICAgVGhlIEdTdHJlYW1lciBpbXBsZW1lbnRhdGlvbnMgYXJl
IGxlc3MgZmVhdHVyZSBmdWxsIGFuZCBsZXNzIHRlc3RlZCwgbm93IHRoYXQgQXBwbGUKKyAgICAg
ICAgYWxzbyB1c2UgdGhlIExpYldlYlJUQyBwcm92aWRlZCBpbXBsZW1lbnRhdGlvbnMgaXQgbWFr
ZXMgYSBsb3Qgb2Ygc2Vuc2UgZm9yIHVzIHRvCisgICAgICAgIGRvIHRoZSBzYW1lLgorCisgICAg
ICAgIFdlIHNob3VsZCBtYWtlIHN1cmUgdG8gdXNlIEdTdHJlYW1lciBlbGVtZW50cyBvbiBsb3cg
cG93ZXJlZCBwbGF0Zm9ybXMgYW5kIGZvciBIb3N0V2luZG93CisgICAgICAgIGFjY2VsZXJhdGVk
IGVuY29kZXJzIGFuZCBkZWNvZGVycy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIGlzIG1vc3RseSByZWZhY3RvcmluZywgbm8gbmV3IHRlc3Qg
cmVxdWlyZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVh
bWVyQ29tbW9uLmg6IEFkZGVkIEdzdE1hcHBlZEZyYW1lIHNpbWlsYXIgdG8gR3N0TWFwcGVkQnVm
ZmVyIGJ1dCBmb3IgdmlkZW8gZnJhbWVzLgorICAgICAgICAoV2ViQ29yZTo6R3N0TWFwcGVkRnJh
bWU6OkdzdE1hcHBlZEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkdzdE1hcHBlZEZyYW1lOjpn
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6R3N0TWFwcGVkRnJhbWU6OkNvbXBvbmVudERhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6R3N0TWFwcGVkRnJhbWU6OkNvbXBvbmVudFN0cmlkZSk6CisgICAg
ICAgIChXZWJDb3JlOjpHc3RNYXBwZWRGcmFtZTo6aW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpH
c3RNYXBwZWRGcmFtZTo6d2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6R3N0TWFwcGVkRnJhbWU6
OmhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpHc3RNYXBwZWRGcmFtZTo6Zm9ybWF0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkdzdE1hcHBlZEZyYW1lOjp+R3N0TWFwcGVkRnJhbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6R3N0TWFwcGVkRnJhbWU6Om9wZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HVW5pcXVlUHRyR1N0cmVhbWVyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvRnJh
bWVMaWJXZWJSVEMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9GcmFtZUxp
YldlYlJUQzo6VG9JNDIwKTogSW1wbGVtZW50ZWQgc3VwcG9ydCBmb3IgY29udmVydGluZyBmcmFt
ZSBmb3JtYXRzIHdpdGggdGhlIEdzdFZpZGVvQ29udmVydGVyIEFQSQorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvRGVjb2Rlcjo6R3N0RGVjb2RlckZh
Y3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9EZWNvZGVyOjpIYXNHc3RE
ZWNvZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZQOERlY29kZXI6OkNyZWF0ZSk6IENyZWF0ZXMg
YSBgd2VicnRjOjpMaWJ2cHhWcDhEZWNvZGVyKClgIGlmIEdTdHJlYW1lciBkZWNvZGVyIHdvdWxk
IGJlIHRoZSBMaWJWUFggYmFzZWQgb25lLgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlk
ZW9EZWNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9EZWNvZGVyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyLmNwcDoKKyAgICAg
ICAgKGdzdF93ZWJydGNfdmlkZW9fZW5jb2Rlcl9jbGFzc19pbml0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5j
cHA6IFN0b3AgdXNpbmcgdnA4ZW5jIGFuZCB1c2UgTGliV2ViUlRDIGJhc2VkIGltcGxlbWVudGF0
aW9uCisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJIMjY0RW5jb2Rlcjo6R1N0cmVhbWVySDI2
NEVuY29kZXIpOiBSZW5hbWVkIEgyNjRFbmNvZGVyIHRvIEdTdHJlYW1lckgyNjRFbmNvZGVyIHRv
IGJlIG1vcmUgY29oZXJlbnQgd2l0aCB3aGF0IGlzIGRvbmUgaW4gTGliVlBYCisgICAgICAgIChX
ZWJDb3JlOjpHU3RyZWFtZXJWUDhFbmNvZGVyOjpHU3RyZWFtZXJWUDhFbmNvZGVyKTogUmVuYW1l
ZCBWUDhFbmNvZGVyIHRvIEdTdHJlYW1lclZQOEVuY29kZXIgdG8gYmUgbW9yZSBjb2hlcmVudCB3
aXRoIHdoYXQgaXMgZG9uZSBpbiBMaWJWUFgKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZp
ZGVvRW5jb2RlckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRW5jb2Rlcik6CisgICAgICAgIChXZWJDb3Jl
OjpHU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5OjpHZXRTdXBwb3J0ZWRGb3JtYXRzIGNvbnN0
KToKKwogMjAxOC0xMS0xMyAgVGhpYmF1bHQgU2F1bmllciAgPHRzYXVuaWVyQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0dTdHJlYW1lcl0gRW5oYW5jZSBkZWJ1Z2dpbmcgYnkgbWFraW5nIHN1cmUg
dG8gcHJpbnQgdGhlIHBpcGVsaW5lIGluIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NNYWtlTGlzdHMudHh0CmluZGV4IGNmNGY3OTgwMzg3
MDk2ZmZiYmE0YjQyNTQyMGJkZmQ1Mjc0N2RkNWEuLjQzYTRjYTg2ODUyMjExYjZlZjI0OTJhYTYx
Njk4OTIxNWRlMzM5NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ01ha2VMaXN0
cy50eHQKQEAgLTEwNTAsNiArMTA1MCwxMSBAQCBzZXQod2VicnRjX1NPVVJDRVMKICAgICBTb3Vy
Y2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9pNDIwL2k0MjAuY2MKICAgICBT
b3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDgvZGVmYXVsdF90ZW1w
b3JhbF9sYXllcnMuY2MKICAgICBTb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2Nv
ZGVjcy92cDgvc2NyZWVuc2hhcmVfbGF5ZXJzLmNjCisgICAgU291cmNlL3dlYnJ0Yy9tb2R1bGVz
L3ZpZGVvX2NvZGluZy9jb2RlY3MvdnA4L3ZwOF90ZW1wb3JhbF9sYXllcnMuY2MKKyAgICBTb3Vy
Y2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDgvbGlidnB4X3ZwOF9kZWNv
ZGVyLmNjCisgICAgU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvdnA4
L2xpYnZweF9pbnRlcmZhY2UuY2MKKyAgICBTb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29k
aW5nL2NvZGVjcy92cDgvdGVtcG9yYWxfbGF5ZXJzX2NoZWNrZXIuY2MKKyAgICBTb3VyY2Uvd2Vi
cnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDgvbGlidnB4X3ZwOF9lbmNvZGVyLmNj
CiAgICAgU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvdnA5L3N2Y19j
b25maWcuY2MKICAgICBTb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92
cDkvc3ZjX3JhdGVfYWxsb2NhdG9yLmNjCiAgICAgU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVv
X2NvZGluZy9kZWNvZGVyX2RhdGFiYXNlLmNjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmgKaW5kZXgg
ZjdjOGQyYWYwNjA1NGQ3MTczZGM0YzZhNTg4ZWE2ZTdlYzYwZjU4OS4uY2M3NjljNjNjY2M1ZDY3
ZTM0MjcwMWM4ZGVlYjQxZTM2ODAzZDUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uaApAQCAt
MTM1LDYgKzEzNSw4OSBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEdzdE1hcHBlZEJ1
ZmZlciYgYSwgY29uc3QgR3N0QnVmZmVyKiBiKQogICAgIHJldHVybiBhLnNpemUoKSA9PSBnc3Rf
YnVmZmVyX2dldF9zaXplKG5vbkNvbnN0QikgJiYgIWdzdF9idWZmZXJfbWVtY21wKG5vbkNvbnN0
QiwgMCwgYS5kYXRhKCksIGEuc2l6ZSgpKTsKIH0KIAorY2xhc3MgR3N0TWFwcGVkRnJhbWUgewor
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdzdE1hcHBlZEZyYW1lKTsKK3B1YmxpYzoKKworICAg
IEdzdE1hcHBlZEZyYW1lKEdzdEJ1ZmZlciAqYnVmZmVyLCBHc3RWaWRlb0luZm8gaW5mbywgR3N0
TWFwRmxhZ3MgZmxhZ3MpCisgICAgeworICAgICAgICBtX2lzVmFsaWQgPSBnc3RfdmlkZW9fZnJh
bWVfbWFwKCZtX2ZyYW1lLCAmaW5mbywgYnVmZmVyLCBmbGFncyk7CisgICAgfQorCisgICAgR3N0
TWFwcGVkRnJhbWUoR1JlZlB0cjxHc3RTYW1wbGU+IHNhbXBsZSwgR3N0TWFwRmxhZ3MgZmxhZ3Mp
CisgICAgeworICAgICAgICBHc3RWaWRlb0luZm8gaW5mbzsKKworICAgICAgICBpZiAoIWdzdF92
aWRlb19pbmZvX2Zyb21fY2FwcygmaW5mbywgZ3N0X3NhbXBsZV9nZXRfY2FwcyhzYW1wbGUuZ2V0
KCkpKSkgeworICAgICAgICAgICAgbV9pc1ZhbGlkID0gZmFsc2U7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICBtX2lzVmFsaWQgPSBnc3RfdmlkZW9fZnJhbWVfbWFw
KCZtX2ZyYW1lLCAmaW5mbywgZ3N0X3NhbXBsZV9nZXRfYnVmZmVyKHNhbXBsZS5nZXQoKSksIGZs
YWdzKTsKKyAgICB9CisKKyAgICBHc3RWaWRlb0ZyYW1lICpnZXQoKQorICAgIHsKKyAgICAgICAg
aWYgKCFtX2lzVmFsaWQpIHsKKyAgICAgICAgICAgIEdTVF9JTkZPKCJJbnZhbGlkIGZyYW1lLCBy
ZXR1cm5pbmcgTlVMTCIpOworCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAg
fQorCisgICAgICAgIHJldHVybiAmbV9mcmFtZTsKKyAgICB9CisKKyAgICB1aW50OF90ICpDb21w
b25lbnREYXRhKGludCBjb21wKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEdTVF9WSURFT19GUkFN
RV9DT01QX0RBVEEoJm1fZnJhbWUsIGNvbXApOworICAgIH0KKworICAgIGludCBDb21wb25lbnRT
dHJpZGUoaW50IHN0cmlkZSkKKyAgICB7CisgICAgICAgIHJldHVybiBHU1RfVklERU9fRlJBTUVf
Q09NUF9TVFJJREUoJm1fZnJhbWUsIHN0cmlkZSk7CisgICAgfQorCisgICAgR3N0VmlkZW9JbmZv
ICppbmZvKCkKKyAgICB7CisgICAgICAgIGlmICghbV9pc1ZhbGlkKSB7CisgICAgICAgICAgICBH
U1RfSU5GTygiSW52YWxpZCBmcmFtZSwgcmV0dXJuaW5nIE5VTEwiKTsKKworICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJm1fZnJhbWUuaW5m
bzsKKyAgICB9CisKKyAgICBpbnQgd2lkdGgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faXNW
YWxpZCA/IEdTVF9WSURFT19GUkFNRV9XSURUSCgmbV9mcmFtZSkgOiAtMTsKKyAgICB9CisKKyAg
ICBpbnQgaGVpZ2h0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2lzVmFsaWQgPyBHU1RfVklE
RU9fRlJBTUVfSEVJR0hUKCZtX2ZyYW1lKSA6IC0xOworICAgIH0KKworICAgIGludCBmb3JtYXQo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faXNWYWxpZCA/IEdTVF9WSURFT19GUkFNRV9GT1JN
QVQoJm1fZnJhbWUpIDogR1NUX1ZJREVPX0ZPUk1BVF9VTktOT1dOOworICAgIH0KKworICAgIH5H
c3RNYXBwZWRGcmFtZSgpCisgICAgeworICAgICAgICBpZiAobV9pc1ZhbGlkKQorICAgICAgICAg
ICAgZ3N0X3ZpZGVvX2ZyYW1lX3VubWFwKCZtX2ZyYW1lKTsKKyAgICAgICAgbV9pc1ZhbGlkID0g
ZmFsc2U7CisgICAgfQorCisgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0
dXJuIG1faXNWYWxpZDsgfQorCitwcml2YXRlOgorICAgIEdzdFZpZGVvRnJhbWUgbV9mcmFtZTsK
KyAgICBib29sIG1faXNWYWxpZCB7IGZhbHNlIH07Cit9OworCisKIGJvb2wgZ3N0UmVnaXN0cnlI
YXNFbGVtZW50Rm9yTWVkaWFUeXBlKEdMaXN0KiBlbGVtZW50RmFjdG9yaWVzLCBjb25zdCBjaGFy
KiBjYXBzU3RyaW5nKTsKIHZvaWQgY29ubmVjdFNpbXBsZUJ1c01lc3NhZ2VDYWxsYmFjayhHc3RF
bGVtZW50ICpwaXBlbGluZSk7CiB2b2lkIGRpc2Nvbm5lY3RTaW1wbGVCdXNNZXNzYWdlQ2FsbGJh
Y2soR3N0RWxlbWVudCAqcGlwZWxpbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dVbmlxdWVQdHJHU3RyZWFtZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HVW5pcXVlUHRyR1N0cmVhbWVyLmgK
aW5kZXggMTg1OGExNmVjYjUyYmY4OTQyY2Q4MmNmMjU4NjM5YWFhODc0NzhiMS4uYWIyMWYzYjgw
OGI0ZjMwNTYxODJkZjc1MmUwYTJjNzAzNmJmZDgyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dVbmlxdWVQdHJHU3RyZWFtZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1VuaXF1ZVB0ckdT
dHJlYW1lci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSA8Z3N0L2dzdHNlZ21lbnQuaD4K
ICNpbmNsdWRlIDxnc3QvZ3N0c3RydWN0dXJlLmg+CiAjaW5jbHVkZSA8Z3N0L3BidXRpbHMvaW5z
dGFsbC1wbHVnaW5zLmg+CisjaW5jbHVkZSA8Z3N0L3ZpZGVvL3ZpZGVvLmg+CiAjaW5jbHVkZSA8
d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTM2LDYgKzM3LDcg
QEAgV1RGX0RFRklORV9HUFRSX0RFTEVURVIoR3N0SXRlcmF0b3IsIGdzdF9pdGVyYXRvcl9mcmVl
KQogV1RGX0RFRklORV9HUFRSX0RFTEVURVIoR3N0U2VnbWVudCwgZ3N0X3NlZ21lbnRfZnJlZSkK
IFdURl9ERUZJTkVfR1BUUl9ERUxFVEVSKEdzdEZsb3dDb21iaW5lciwgZ3N0X2Zsb3dfY29tYmlu
ZXJfZnJlZSkKIFdURl9ERUZJTkVfR1BUUl9ERUxFVEVSKEdzdEJ5dGVSZWFkZXIsIGdzdF9ieXRl
X3JlYWRlcl9mcmVlKQorV1RGX0RFRklORV9HUFRSX0RFTEVURVIoR3N0VmlkZW9Db252ZXJ0ZXIs
IGdzdF92aWRlb19jb252ZXJ0ZXJfZnJlZSkKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9GcmFtZUxp
YldlYlJUQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyVmlkZW9GcmFtZUxpYldlYlJUQy5jcHAKaW5kZXggMTIwZjVmM2NkYjVhOGRk
ZTk3NjVhYjE5MzhlZDljMTA3N2NkNzgyMS4uZmJiYjc2NmUyOTc1MmJhMDJhZjFmMWZlNzFhMTZi
MWNjYjQ1MTBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvRnJhbWVMaWJXZWJSVEMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0Zy
YW1lTGliV2ViUlRDLmNwcApAQCAtMjEsNiArMjEsOCBAQAogI2lmIFVTRShHU1RSRUFNRVIpICYm
IFVTRShMSUJXRUJSVEMpCiAjaW5jbHVkZSAiR1N0cmVhbWVyVmlkZW9GcmFtZUxpYldlYlJUQy5o
IgogCisjaW5jbHVkZTx0aHJlYWQ+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgR1Jl
ZlB0cjxHc3RTYW1wbGU+IEdTdHJlYW1lclNhbXBsZUZyb21MaWJXZWJSVENWaWRlb0ZyYW1lKGNv
bnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYgZnJhbWUpCkBAIC05MCwzNyArOTIsNTUgQEAgR1JlZlB0
cjxHc3RTYW1wbGU+IEdTdHJlYW1lclZpZGVvRnJhbWVMaWJXZWJSVEM6OmdldFNhbXBsZSgpCiAK
IHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6Okk0MjBCdWZmZXJJbnRlcmZhY2U+IEdTdHJlYW1l
clZpZGVvRnJhbWVMaWJXZWJSVEM6OlRvSTQyMCgpCiB7Ci0gICAgR3N0VmlkZW9JbmZvIGluZm87
Ci0gICAgR3N0VmlkZW9GcmFtZSBmcmFtZTsKKyAgICBHc3RNYXBwZWRGcmFtZSBpbkZyYW1lKG1f
c2FtcGxlLCBHU1RfTUFQX1JFQUQpOwogCi0gICAgaWYgKCFnc3RfdmlkZW9faW5mb19mcm9tX2Nh
cHMoJmluZm8sIGdzdF9zYW1wbGVfZ2V0X2NhcHMobV9zYW1wbGUuZ2V0KCkpKSkKLSAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgaWYgKCFpbkZyYW1lKSB7CisgICAgICAgIEdTVF9X
QVJOSU5HKCJDb3VsZCBub3QgbWFwIGZyYW1lIik7CiAKLSAgICBpZiAoR1NUX1ZJREVPX0lORk9f
Rk9STUFUKCZpbmZvKSAhPSBHU1RfVklERU9fRk9STUFUX0k0MjApCiAgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIH0KIAotICAgIGdzdF92aWRlb19mcmFtZV9tYXAoJmZyYW1lLCAmaW5mbywg
Z3N0X3NhbXBsZV9nZXRfYnVmZmVyKG1fc2FtcGxlLmdldCgpKSwgR1NUX01BUF9SRUFEKTsKLQot
ICAgIGF1dG8gbmV3QnVmZmVyID0gbV9idWZmZXJQb29sLkNyZWF0ZUJ1ZmZlcihHU1RfVklERU9f
RlJBTUVfV0lEVEgoJmZyYW1lKSwKLSAgICAgICAgR1NUX1ZJREVPX0ZSQU1FX0hFSUdIVCgmZnJh
bWUpKTsKLQorICAgIGF1dG8gbmV3QnVmZmVyID0gbV9idWZmZXJQb29sLkNyZWF0ZUJ1ZmZlcihp
bkZyYW1lLndpZHRoKCksIGluRnJhbWUuaGVpZ2h0KCkpOwogICAgIEFTU0VSVChuZXdCdWZmZXIp
OwogICAgIGlmICghbmV3QnVmZmVyKSB7Ci0gICAgICAgIGdzdF92aWRlb19mcmFtZV91bm1hcCgm
ZnJhbWUpOwogICAgICAgICBHU1RfV0FSTklORygiUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNl
R1N0cmVhbWVyOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSB1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVy
IGZvciBjb252ZXJzaW9uIHRvIFlVViIpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
CiAKKyAgICBpZiAoaW5GcmFtZS5mb3JtYXQoKSAhPSBHU1RfVklERU9fRk9STUFUX0k0MjApIHsK
KyAgICAgICAgR3N0VmlkZW9JbmZvIG91dEluZm87CisKKyAgICAgICAgZ3N0X3ZpZGVvX2luZm9f
c2V0X2Zvcm1hdCgmb3V0SW5mbywgR1NUX1ZJREVPX0ZPUk1BVF9JNDIwLCBpbkZyYW1lLndpZHRo
KCksCisgICAgICAgICAgICBpbkZyYW1lLmhlaWdodCgpKTsKKyAgICAgICAgYXV0byBpbmZvID0g
aW5GcmFtZS5pbmZvKCk7CisgICAgICAgIG91dEluZm8uZnBzX24gPSBpbmZvLT5mcHNfbjsKKyAg
ICAgICAgb3V0SW5mby5mcHNfZCA9IGluZm8tPmZwc19kOworCisgICAgICAgIEdSZWZQdHI8R3N0
QnVmZmVyPiBidWZmZXIgPSBhZG9wdEdSZWYoZ3N0X2J1ZmZlcl9uZXdfd3JhcHBlZF9mdWxsKEdT
VF9NRU1PUllfRkxBR19OT19TSEFSRSwgbmV3QnVmZmVyLT5NdXRhYmxlRGF0YVkoKSwKKyAgICAg
ICAgICAgIG91dEluZm8uc2l6ZSwgMCwgb3V0SW5mby5zaXplLCBudWxscHRyLCBudWxscHRyKSk7
CisKKyAgICAgICAgR3N0TWFwcGVkRnJhbWUgb3V0RnJhbWUoYnVmZmVyLmdldCgpLCBvdXRJbmZv
LCBHU1RfTUFQX1dSSVRFKTsKKworICAgICAgICBHVW5pcXVlUHRyPEdzdFZpZGVvQ29udmVydGVy
PiB2aWRlb0NvbnZlcnRlcihnc3RfdmlkZW9fY29udmVydGVyX25ldyhpbkZyYW1lLmluZm8oKSwK
KyAgICAgICAgICAgICZvdXRJbmZvLCBnc3Rfc3RydWN0dXJlX25ldygiR3N0VmlkZW9Db252ZXJ0
Q29uZmlnIiwKKyAgICAgICAgICAgIEdTVF9WSURFT19DT05WRVJURVJfT1BUX1RIUkVBRFMsIEdf
VFlQRV9VSU5ULCBzdGQ6OnRocmVhZDo6aGFyZHdhcmVfY29uY3VycmVuY3koKSB8fCAxICwgbnVs
bHB0cikpKTsKKworICAgICAgICBBU1NFUlQodmlkZW9Db252ZXJ0ZXIpOworCisgICAgICAgIGdz
dF92aWRlb19jb252ZXJ0ZXJfZnJhbWUodmlkZW9Db252ZXJ0ZXIuZ2V0KCksIGluRnJhbWUuZ2V0
KCksIG91dEZyYW1lLmdldCgpKTsKKworICAgICAgICByZXR1cm4gbmV3QnVmZmVyOworICAgIH0K
KwogICAgIG5ld0J1ZmZlci0+Q29weSgKLSAgICAgICAgR1NUX1ZJREVPX0ZSQU1FX1dJRFRIKCZm
cmFtZSksCi0gICAgICAgIEdTVF9WSURFT19GUkFNRV9IRUlHSFQoJmZyYW1lKSwKLSAgICAgICAg
R1NUX1ZJREVPX0ZSQU1FX0NPTVBfREFUQSgmZnJhbWUsIDApLAotICAgICAgICBHU1RfVklERU9f
RlJBTUVfQ09NUF9TVFJJREUoJmZyYW1lLCAwKSwKLSAgICAgICAgR1NUX1ZJREVPX0ZSQU1FX0NP
TVBfREFUQSgmZnJhbWUsIDEpLAotICAgICAgICBHU1RfVklERU9fRlJBTUVfQ09NUF9TVFJJREUo
JmZyYW1lLCAxKSwKLSAgICAgICAgR1NUX1ZJREVPX0ZSQU1FX0NPTVBfREFUQSgmZnJhbWUsIDIp
LAotICAgICAgICBHU1RfVklERU9fRlJBTUVfQ09NUF9TVFJJREUoJmZyYW1lLCAyKSk7Ci0gICAg
Z3N0X3ZpZGVvX2ZyYW1lX3VubWFwKCZmcmFtZSk7CisgICAgICAgIGluRnJhbWUud2lkdGgoKSwK
KyAgICAgICAgaW5GcmFtZS5oZWlnaHQoKSwKKyAgICAgICAgaW5GcmFtZS5Db21wb25lbnREYXRh
KDApLAorICAgICAgICBpbkZyYW1lLkNvbXBvbmVudFN0cmlkZSgwKSwKKyAgICAgICAgaW5GcmFt
ZS5Db21wb25lbnREYXRhKDEpLAorICAgICAgICBpbkZyYW1lLkNvbXBvbmVudFN0cmlkZSgxKSwK
KyAgICAgICAgaW5GcmFtZS5Db21wb25lbnREYXRhKDIpLAorICAgICAgICBpbkZyYW1lLkNvbXBv
bmVudFN0cmlkZSgyKSk7CiAKICAgICByZXR1cm4gbmV3QnVmZmVyOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZp
ZGVvRGVjb2RlckZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwCmluZGV4IGYwYWM4
ZGY2ZjZhZGJiZTU5ZjI5YWIxMzNjZTk1YzIxNDUzNTg0ZDkuLjk4ZDA1MDI4OTQwODQxNTJlYWNj
ZTAxMzkwMjQ4MmM5ZTZiOWJjMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVh
bWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJ3
ZWJydGMvbWVkaWEvYmFzZS9jb2RlYy5oIgogI2luY2x1ZGUgIndlYnJ0Yy9tb2R1bGVzL3ZpZGVv
X2NvZGluZy9jb2RlY3MvaDI2NC9pbmNsdWRlL2gyNjQuaCIKICNpbmNsdWRlICJ3ZWJydGMvbW9k
dWxlcy92aWRlb19jb2RpbmcvY29kZWNzL3ZwOC9pbmNsdWRlL3ZwOC5oIgorI2luY2x1ZGUgIndl
YnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvdnA4L2xpYnZweF92cDhfZGVjb2Rlci5o
IgogI2luY2x1ZGUgIndlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3ZpZGVvX2Nv
ZGVjX2ludGVyZmFjZS5oIgogI2luY2x1ZGUgPGdzdC9hcHAvZ3N0YXBwc2luay5oPgogI2luY2x1
ZGUgPGdzdC9hcHAvZ3N0YXBwc3JjLmg+CkBAIC0yMTQsMTkgKzIxNSwyNiBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiB3ZWJydGM6OlNkcFZpZGVvRm9ybWF0KE5hbWUoKSk7CiAgICAgfQogCi0g
ICAgYm9vbCBIYXNHc3REZWNvZGVyKCkKKyAgICBzdGF0aWMgR1JlZlB0cjxHc3RFbGVtZW50RmFj
dG9yeT4gR3N0RGVjb2RlckZhY3RvcnkoY29uc3QgY2hhciAqY2Fwc1N0cikKICAgICB7Ci0KICAg
ICAgICAgYXV0byBhbGxfZGVjb2RlcnMgPSBnc3RfZWxlbWVudF9mYWN0b3J5X2xpc3RfZ2V0X2Vs
ZW1lbnRzKEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9ERUNPREVSLAogICAgICAgICAgICAgR1NU
X1JBTktfTUFSR0lOQUwpOwotICAgICAgICBhdXRvIGNhcHMgPSBhZG9wdEdSZWYoZ3N0X2NhcHNf
ZnJvbV9zdHJpbmcoQ2FwcygpKSk7CisgICAgICAgIGF1dG8gY2FwcyA9IGFkb3B0R1JlZihnc3Rf
Y2Fwc19mcm9tX3N0cmluZyhjYXBzU3RyKSk7CiAgICAgICAgIGF1dG8gZGVjb2RlcnMgPSBnc3Rf
ZWxlbWVudF9mYWN0b3J5X2xpc3RfZmlsdGVyKGFsbF9kZWNvZGVycywKICAgICAgICAgICAgIGNh
cHMuZ2V0KCksIEdTVF9QQURfU0lOSywgRkFMU0UpOwogCiAgICAgICAgIGdzdF9wbHVnaW5fZmVh
dHVyZV9saXN0X2ZyZWUoYWxsX2RlY29kZXJzKTsKKyAgICAgICAgR1JlZlB0cjxHc3RFbGVtZW50
RmFjdG9yeT4gcmVzOworICAgICAgICBpZiAoZGVjb2RlcnMpCisgICAgICAgICAgICByZXMgPSBH
U1RfRUxFTUVOVF9GQUNUT1JZKGRlY29kZXJzLT5kYXRhKTsKICAgICAgICAgZ3N0X3BsdWdpbl9m
ZWF0dXJlX2xpc3RfZnJlZShkZWNvZGVycyk7CiAKLSAgICAgICAgcmV0dXJuIGRlY29kZXJzICE9
IG51bGxwdHI7CisgICAgICAgIHJldHVybiByZXM7CisgICAgfQorCisgICAgYm9vbCBIYXNHc3RE
ZWNvZGVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBHc3REZWNvZGVyRmFjdG9yeShDYXBzKCkp
OwogICAgIH0KIAogICAgIEdzdEZsb3dSZXR1cm4gbmV3U2FtcGxlQ2FsbGJhY2soR3N0RWxlbWVu
dCogc2luaykKQEAgLTM0MywxNiArMzUxLDI4IEBAIHB1YmxpYzoKICAgICBjb25zdCBnY2hhciog
Q2FwcygpIGZpbmFsIHsgcmV0dXJuICJ2aWRlby94LXZwOCI7IH0KICAgICBjb25zdCBnY2hhciog
TmFtZSgpIGZpbmFsIHsgcmV0dXJuIGNyaWNrZXQ6OmtWcDhDb2RlY05hbWU7IH0KICAgICB3ZWJy
dGM6OlZpZGVvQ29kZWNUeXBlIENvZGVjVHlwZSgpIGZpbmFsIHsgcmV0dXJuIHdlYnJ0Yzo6a1Zp
ZGVvQ29kZWNWUDg7IH0KKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9E
ZWNvZGVyPiBDcmVhdGUoKQorICAgIHsKKyAgICAgICAgYXV0byBmYWN0b3J5ID0gR3N0RGVjb2Rl
ckZhY3RvcnkoInZpZGVvL3gtdnA4Iik7CisKKyAgICAgICAgaWYgKGZhY3RvcnkgJiYgIWdfc3Ry
Y21wMChHU1RfT0JKRUNUX05BTUUoR1NUX09CSkVDVChmYWN0b3J5LmdldCgpKSksICJ2cDhkZWMi
KSkgeworICAgICAgICAgICAgR1NUX0lORk8oIk91ciBiZXN0IEdTdHJlYW1lciBWUDggZGVjb2Rl
ciBpcyB2cDhkZWMsIGJldHRlciB1c2UgdGhlIG9uZSBmcm9tIExpYldlYlJUQyIpOworCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyPihuZXcg
d2VicnRjOjpMaWJ2cHhWcDhEZWNvZGVyKCkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJu
IHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRGVjb2Rlcj4obmV3IFZQOERlY29kZXIoKSk7
CisgICAgfQogfTsKIAogc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyPiBHU3Ry
ZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5OjpDcmVhdGVWaWRlb0RlY29kZXIoY29uc3Qgd2VicnRj
OjpTZHBWaWRlb0Zvcm1hdCYgZm9ybWF0KQogewotICAgIEdTdHJlYW1lclZpZGVvRGVjb2Rlciog
ZGVjOworICAgIHdlYnJ0Yzo6VmlkZW9EZWNvZGVyKiBkZWM7CiAKICAgICBpZiAoZm9ybWF0Lm5h
bWUgPT0gY3JpY2tldDo6a0gyNjRDb2RlY05hbWUpCiAgICAgICAgIGRlYyA9IG5ldyBIMjY0RGVj
b2RlcigpOwogICAgIGVsc2UgaWYgKGZvcm1hdC5uYW1lID09IGNyaWNrZXQ6OmtWcDhDb2RlY05h
bWUpCi0gICAgICAgIGRlYyA9IG5ldyBWUDhEZWNvZGVyKCk7CisgICAgICAgIHJldHVybiBWUDhE
ZWNvZGVyOjpDcmVhdGUoKTsKICAgICBlbHNlIHsKICAgICAgICAgR1NUX0VSUk9SKCJDb3VsZCBu
b3QgY3JlYXRlIGRlY29kZXIgZm9yICVzIiwgZm9ybWF0Lm5hbWUuY19zdHIoKSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3Ry
ZWFtZXJWaWRlb0VuY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2Rlci5jcHAKaW5kZXggZDYwOTNiOWZkZGEz
YTYyYTY1MTRmZWQ1YTgwOTgzZDU3ZDg3YjQ5Zi4uZTJlMmQzZTUxNjdlODU4MDg3NzAyYjYxNTVl
OTY1MDcyMjhkMzkxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2Rlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2Rl
ci5jcHAKQEAgLTI3NywxMiArMjc3LDYgQEAgc2V0dXBfeDI2NGVuYyAoR09iamVjdCAqIGVuY29k
ZXIpCiAgIGdzdF91dGlsX3NldF9vYmplY3RfYXJnIChlbmNvZGVyLCAidHVuZSIsICJ6ZXJvbGF0
ZW5jeSIpOwogfQogCi1zdGF0aWMgdm9pZAotc2V0dXBfdnA4ZW5jIChHT2JqZWN0ICogZW5jb2Rl
cikKLXsKLSAgZ3N0X3ByZXNldF9sb2FkX3ByZXNldCAoR1NUX1BSRVNFVCAoZW5jb2RlciksICJQ
cm9maWxlIFJlYWx0aW1lIik7Ci19Ci0KIHN0YXRpYyB2b2lkCiBzZXR1cF9vcGVuaDI2NGVuYyAo
R09iamVjdCAqKQogewpAQCAtMjk1LDEzICsyODksNiBAQCBzZXRfYml0cmF0ZV9rYml0X3Blcl9z
ZWMgKEdPYmplY3QgKiBlbmNvZGVyLCBjb25zdCBnY2hhciAqIHByb3BfbmFtZSwKICAgZ19vYmpl
Y3Rfc2V0IChlbmNvZGVyLCBwcm9wX25hbWUsIGJpdHJhdGUsIE5VTEwpOwogfQogCi1zdGF0aWMg
dm9pZAotc2V0X2JpdHJhdGVfYml0X3Blcl9zZWMgKEdPYmplY3QgKiBlbmNvZGVyLCBjb25zdCBn
Y2hhciAqIHByb3BfbmFtZSwKLSAgICBnaW50IGJpdHJhdGUpCi17Ci0gIGdfb2JqZWN0X3NldCAo
ZW5jb2RlciwgcHJvcF9uYW1lLCBiaXRyYXRlICogS0JJVF9UT19CSVQsIE5VTEwpOwotfQotCiBz
dGF0aWMgdm9pZAogZ3N0X3dlYnJ0Y192aWRlb19lbmNvZGVyX2NsYXNzX2luaXQgKEdzdFdlYnJ0
Y1ZpZGVvRW5jb2RlckNsYXNzICoga2xhc3MpCiB7CkBAIC0zNDQsOSArMzMxLDYgQEAgZ3N0X3dl
YnJ0Y192aWRlb19lbmNvZGVyX2NsYXNzX2luaXQgKEdzdFdlYnJ0Y1ZpZGVvRW5jb2RlckNsYXNz
ICoga2xhc3MpCiAgICAgICAidmlkZW8veC1oMjY0IiwKICAgICAgICJ2aWRlby94LWgyNjQsYWxp
Z25tZW50PWF1LHN0cmVhbS1mb3JtYXQ9Ynl0ZS1zdHJlYW0scHJvZmlsZT1iYXNlbGluZSIsCiAg
ICAgICBzZXR1cF9vcGVuaDI2NGVuYywgImJpdHJhdGUiLCBzZXRfYml0cmF0ZV9rYml0X3Blcl9z
ZWMsICJnb3Atc2l6ZSIpOwotICByZWdpc3Rlcl9rbm93bl9lbmNvZGVyIChFTkNPREVSX1ZQOCwg
InZwOGVuYyIsIE5VTEwsICJ2aWRlby94LXZwOCIsIE5VTEwsCi0gICAgICBzZXR1cF92cDhlbmMs
ICJ0YXJnZXQtYml0cmF0ZSIsIHNldF9iaXRyYXRlX2JpdF9wZXJfc2VjLAotICAgICAgImtleWZy
YW1lLW1heC1kaXN0Iik7CiB9CiAKIHN0YXRpYyB2b2lkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVy
RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAKaW5kZXggMDY1NDAwNDZmNjgwYTk5
Zjc5YWRlNjY3MjIzOTIxNTc1NGYzZGI4OS4uYWM2NDQ1ZmEwMGM3MWNkZDAxNDQ4MTIwMmZjYmM5
ZTkxYzE3OTdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0Vu
Y29kZXJGYWN0b3J5LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIndlYnJ0Yy9tZWRp
YS9iYXNlL2NvZGVjLmgiCiAjaW5jbHVkZSAid2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2Nv
ZGVjcy9oMjY0L2luY2x1ZGUvaDI2NC5oIgogI2luY2x1ZGUgIndlYnJ0Yy9tb2R1bGVzL3ZpZGVv
X2NvZGluZy9jb2RlY3MvdnA4L2luY2x1ZGUvdnA4LmgiCisjaW5jbHVkZSAid2VicnRjL21vZHVs
ZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDgvbGlidnB4X3ZwOF9lbmNvZGVyLmgiCiAjaW5jbHVk
ZSAid2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fY29kZWNfaW50ZXJm
YWNlLmgiCiAjaW5jbHVkZSAid2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3V0aWxpdHkvc2lt
dWxjYXN0X3V0aWxpdHkuaCIKIApAQCAtNDEwLDExICs0MTEsMTEgQEAgcHJpdmF0ZToKICAgICBW
ZWN0b3I8RnJhbWVEYXRhPiBtX2ZyYW1lc0RhdGE7CiB9OwogCi1jbGFzcyBIMjY0RW5jb2RlciA6
IHB1YmxpYyBHU3RyZWFtZXJWaWRlb0VuY29kZXIgeworY2xhc3MgR1N0cmVhbWVySDI2NEVuY29k
ZXIgOiBwdWJsaWMgR1N0cmVhbWVyVmlkZW9FbmNvZGVyIHsKIHB1YmxpYzoKLSAgICBIMjY0RW5j
b2RlcigpIHsgfQorICAgIEdTdHJlYW1lckgyNjRFbmNvZGVyKCkgeyB9CiAKLSAgICBIMjY0RW5j
b2Rlcihjb25zdCB3ZWJydGM6OlNkcFZpZGVvRm9ybWF0JiBmb3JtYXQpCisgICAgR1N0cmVhbWVy
SDI2NEVuY29kZXIoY29uc3Qgd2VicnRjOjpTZHBWaWRlb0Zvcm1hdCYgZm9ybWF0KQogICAgICAg
ICA6IG1fcGFyc2VyKGdzdF9oMjY0X25hbF9wYXJzZXJfbmV3KCkpCiAgICAgICAgICwgcGFja2V0
aXphdGlvbk1vZGUod2VicnRjOjpIMjY0UGFja2V0aXphdGlvbk1vZGU6Ok5vbkludGVybGVhdmVk
KQogICAgIHsKQEAgLTUwOCwxMCArNTA5LDEwIEBAIHB1YmxpYzoKICAgICB3ZWJydGM6OkgyNjRQ
YWNrZXRpemF0aW9uTW9kZSBwYWNrZXRpemF0aW9uTW9kZTsKIH07CiAKLWNsYXNzIFZQOEVuY29k
ZXIgOiBwdWJsaWMgR1N0cmVhbWVyVmlkZW9FbmNvZGVyIHsKK2NsYXNzIEdTdHJlYW1lclZQOEVu
Y29kZXIgOiBwdWJsaWMgR1N0cmVhbWVyVmlkZW9FbmNvZGVyIHsKIHB1YmxpYzoKLSAgICBWUDhF
bmNvZGVyKCkgeyB9Ci0gICAgVlA4RW5jb2Rlcihjb25zdCB3ZWJydGM6OlNkcFZpZGVvRm9ybWF0
JikgeyB9CisgICAgR1N0cmVhbWVyVlA4RW5jb2RlcigpIHsgfQorICAgIEdTdHJlYW1lclZQOEVu
Y29kZXIoY29uc3Qgd2VicnRjOjpTZHBWaWRlb0Zvcm1hdCYpIHsgfQogICAgIGNvbnN0IGdjaGFy
KiBDYXBzKCkgZmluYWwgeyByZXR1cm4gInZpZGVvL3gtdnA4IjsgfQogICAgIGNvbnN0IGdjaGFy
KiBOYW1lKCkgZmluYWwgeyByZXR1cm4gY3JpY2tldDo6a1ZwOENvZGVjTmFtZTsgfQogICAgIHdl
YnJ0Yzo6VmlkZW9Db2RlY1R5cGUgQ29kZWNUeXBlKCkgZmluYWwgeyByZXR1cm4gd2VicnRjOjpr
VmlkZW9Db2RlY1ZQODsgfQpAQCAtNTM1LDExICs1MzYsMjIgQEAgcHVibGljOgogCiBzdGQ6OnVu
aXF1ZV9wdHI8d2VicnRjOjpWaWRlb0VuY29kZXI+IEdTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rv
cnk6OkNyZWF0ZVZpZGVvRW5jb2Rlcihjb25zdCB3ZWJydGM6OlNkcFZpZGVvRm9ybWF0JiBmb3Jt
YXQpCiB7Ci0gICAgaWYgKGZvcm1hdC5uYW1lID09IGNyaWNrZXQ6OmtWcDhDb2RlY05hbWUpCi0g
ICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFZQOEVuY29kZXI+KGZvcm1hdCk7CisgICAg
aWYgKGZvcm1hdC5uYW1lID09IGNyaWNrZXQ6OmtWcDhDb2RlY05hbWUpIHsKKyAgICAgICAgR1Jl
ZlB0cjxHc3RFbGVtZW50PiB3ZWJydGNlbmNvZGVyID0gYWRvcHRHUmVmKEdTVF9FTEVNRU5UKGdf
b2JqZWN0X3JlZl9zaW5rKGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgid2VicnRjdmlkZW9lbmNv
ZGVyIiwgTlVMTCkpKSk7CisgICAgICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gZW5jb2RlciA9IG51
bGxwdHI7CisKKyAgICAgICAgZ19vYmplY3Rfc2V0KHdlYnJ0Y2VuY29kZXIuZ2V0KCksICJmb3Jt
YXQiLCBhZG9wdEdSZWYoZ3N0X2NhcHNfZnJvbV9zdHJpbmcoInZpZGVvL3gtdnA4IikpLmdldCgp
LCBOVUxMKTsKKyAgICAgICAgZ19vYmplY3RfZ2V0KHdlYnJ0Y2VuY29kZXIuZ2V0KCksICJlbmNv
ZGVyIiwgJmVuY29kZXIub3V0UHRyKCksIE5VTEwpOworCisgICAgICAgIGlmIChlbmNvZGVyKQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R1N0cmVhbWVyVlA4RW5jb2Rlcj4o
Zm9ybWF0KTsKKworICAgICAgICBHU1RfSU5GTygiVXNpbmcgVlA4IEVuY29kZXIgZnJvbSBMaWJX
ZWJSVEMuIik7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPHdlYnJ0Yzo6TGlidnB4
VnA4RW5jb2Rlcj4oKTsKKyAgICB9CiAKICAgICBpZiAoZm9ybWF0Lm5hbWUgPT0gY3JpY2tldDo6
a0gyNjRDb2RlY05hbWUpCi0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEgyNjRFbmNv
ZGVyPihmb3JtYXQpOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHU3RyZWFtZXJI
MjY0RW5jb2Rlcj4oZm9ybWF0KTsKIAogICAgIHJldHVybiBudWxscHRyOwogfQpAQCAtNTU4LDgg
KzU3MCw4IEBAIHN0ZDo6dmVjdG9yPHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQ+IEdTdHJlYW1lclZp
ZGVvRW5jb2RlckZhY3Rvcnk6OkdldFN1cHBvcnRlZEZvCiB7CiAgICAgc3RkOjp2ZWN0b3I8d2Vi
cnRjOjpTZHBWaWRlb0Zvcm1hdD4gc3VwcG9ydGVkQ29kZWNzOwogCi0gICAgVlA4RW5jb2Rlcigp
LkFkZENvZGVjSWZTdXBwb3J0ZWQoJnN1cHBvcnRlZENvZGVjcyk7Ci0gICAgSDI2NEVuY29kZXIo
KS5BZGRDb2RlY0lmU3VwcG9ydGVkKCZzdXBwb3J0ZWRDb2RlY3MpOworICAgIHN1cHBvcnRlZENv
ZGVjcy5wdXNoX2JhY2sod2VicnRjOjpTZHBWaWRlb0Zvcm1hdChjcmlja2V0OjprVnA4Q29kZWNO
YW1lKSk7CisgICAgR1N0cmVhbWVySDI2NEVuY29kZXIoKS5BZGRDb2RlY0lmU3VwcG9ydGVkKCZz
dXBwb3J0ZWRDb2RlY3MpOwogCiAgICAgcmV0dXJuIHN1cHBvcnRlZENvZGVjczsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355467</attachid>
            <date>2018-11-22 04:41:19 -0800</date>
            <delta_ts>2018-11-27 08:52:58 -0800</delta_ts>
            <desc>Minor ChangeLog enhancement</desc>
            <filename>bug-191861-20181122094117.patch</filename>
            <type>text/plain</type>
            <size>20201</size>
            <attacher name="Thibault Saunier">tsaunier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4NDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCA1NmQ5MmVmOWVlYjUxNjg2ZDgxYTExMjg2OWM4NGZiZjQ3ZDg3N2MwLi41ZGI0
YTgwZDc5YzFhZDAyN2M2YjJhOWYzMzhkNzFjYTE3NDRmNDMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOC0xMS0yMCAgVGhpYmF1bHQg
U2F1bmllciAgPHRzYXVuaWVyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl1bV2Vi
UlRDXSBVc2UgTGliV2ViUlRDIHByb3ZpZGVkIHZwOCBkZWNvZGVycyBhbmQgZW5jb2RlcnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTg2MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6IEJ1aWxkIExpYlZQWCB2cDggZW5jb2RlciBhbmQgZGVjb2RlcnMuCisKIDIwMTgtMTEt
MTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIENvbnZlcnQg
bGlid2VicnRjIGVycm9yIHR5cGVzIHRvIERPTSBleGNlcHRpb25zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDdj
NDM1ZTIzNDY4ZGRjNDdiMjFmYWNiYmYxNzRjYzhkOWU0MjExMi4uZDM2ZGI0MmQ5MjBjMjNiNTVk
YjU3MzNkZTc3OWM2NzViYmU3ZDRkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE4
LTExLTIwICBUaGliYXVsdCBTYXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KKworICAgICAg
ICBbR1N0cmVhbWVyXVtXZWJSVENdIFVzZSBMaWJXZWJSVEMgcHJvdmlkZWQgdnA4IGRlY29kZXJz
IGFuZCBlbmNvZGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkxODYxCisKKyAgICAgICAgVGhlIEdTdHJlYW1lciBpbXBsZW1lbnRhdGlvbnMgYXJl
IGxlc3MgZmVhdHVyZSBmdWxsIGFuZCBsZXNzIHRlc3RlZCwgbm93IHRoYXQgQXBwbGUKKyAgICAg
ICAgYWxzbyB1c2UgdGhlIExpYldlYlJUQyBwcm92aWRlZCBpbXBsZW1lbnRhdGlvbnMgaXQgbWFr
ZXMgYSBsb3Qgb2Ygc2Vuc2UgZm9yIHVzIHRvCisgICAgICAgIGRvIHRoZSBzYW1lLgorCisgICAg
ICAgIEJhc2ljYWxseSBldmVyeXRoaW5nIHJlbGF0ZWQgdG8gdGVtcG9yYWwgc2NhbGFiaWxpdHkg
aXMgbm90IGltcGxlbWVudGVkIGluIEdTdHJlYW1lci4KKworICAgICAgICBXZSBzaG91bGQgbWFr
ZSBzdXJlIHRvIHVzZSBHU3RyZWFtZXIgZWxlbWVudHMgb24gbG93IHBvd2VyZWQgcGxhdGZvcm1z
IGFuZCBmb3IKKyAgICAgICAgYWNjZWxlcmF0ZWQgZW5jb2RlcnMgYW5kIGRlY29kZXJzLgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgbW9z
dGx5IHJlZmFjdG9yaW5nLCBubyBuZXcgdGVzdCByZXF1aXJlZC4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uaDogQWRkZWQgR3N0TWFwcGVk
RnJhbWUgc2ltaWxhciB0byBHc3RNYXBwZWRCdWZmZXIgYnV0IGZvciB2aWRlbyBmcmFtZXMuCisg
ICAgICAgIChXZWJDb3JlOjpHc3RNYXBwZWRGcmFtZTo6R3N0TWFwcGVkRnJhbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6R3N0TWFwcGVkRnJhbWU6OmdldCk6CisgICAgICAgIChXZWJDb3JlOjpHc3RN
YXBwZWRGcmFtZTo6Q29tcG9uZW50RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpHc3RNYXBwZWRG
cmFtZTo6Q29tcG9uZW50U3RyaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdzdE1hcHBlZEZyYW1l
OjppbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OkdzdE1hcHBlZEZyYW1lOjp3aWR0aCk6CisgICAg
ICAgIChXZWJDb3JlOjpHc3RNYXBwZWRGcmFtZTo6aGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6
OkdzdE1hcHBlZEZyYW1lOjpmb3JtYXQpOgorICAgICAgICAoV2ViQ29yZTo6R3N0TWFwcGVkRnJh
bWU6On5Hc3RNYXBwZWRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpHc3RNYXBwZWRGcmFtZTo6
b3BlcmF0b3IgYm9vbCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0dVbmlxdWVQdHJHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9GcmFtZUxpYldlYlJUQy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHU3RyZWFtZXJWaWRlb0ZyYW1lTGliV2ViUlRDOjpUb0k0MjApOiBJbXBsZW1lbnRl
ZCBzdXBwb3J0IGZvciBjb252ZXJ0aW5nIGZyYW1lIGZvcm1hdHMgd2l0aCB0aGUgR3N0VmlkZW9D
b252ZXJ0ZXIgQVBJCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dT
dHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVh
bWVyVmlkZW9EZWNvZGVyOjpHc3REZWNvZGVyRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpH
U3RyZWFtZXJWaWRlb0RlY29kZXI6Okhhc0dzdERlY29kZXIpOgorICAgICAgICAoV2ViQ29yZTo6
VlA4RGVjb2Rlcjo6Q3JlYXRlKTogQ3JlYXRlcyBhIGB3ZWJydGM6OkxpYnZweFZwOERlY29kZXIo
KWAgaWYgR1N0cmVhbWVyIGRlY29kZXIgd291bGQgYmUgdGhlIExpYlZQWCBiYXNlZCBvbmUuCisg
ICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5OjpDcmVhdGVWaWRl
b0RlY29kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3Ry
ZWFtZXJWaWRlb0VuY29kZXIuY3BwOgorICAgICAgICAoZ3N0X3dlYnJ0Y192aWRlb19lbmNvZGVy
X2NsYXNzX2luaXQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9H
U3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcDogU3RvcCB1c2luZyB2cDhlbmMgYW5kIHVz
ZSBMaWJXZWJSVEMgYmFzZWQgaW1wbGVtZW50YXRpb24KKyAgICAgICAgKFdlYkNvcmU6OkdTdHJl
YW1lckgyNjRFbmNvZGVyOjpHU3RyZWFtZXJIMjY0RW5jb2Rlcik6IFJlbmFtZWQgSDI2NEVuY29k
ZXIgdG8gR1N0cmVhbWVySDI2NEVuY29kZXIgdG8gYmUgbW9yZSBjb2hlcmVudCB3aXRoIHdoYXQg
aXMgZG9uZSBpbiBMaWJWUFgKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZQOEVuY29kZXI6
OkdTdHJlYW1lclZQOEVuY29kZXIpOiBSZW5hbWVkIFZQOEVuY29kZXIgdG8gR1N0cmVhbWVyVlA4
RW5jb2RlciB0byBiZSBtb3JlIGNvaGVyZW50IHdpdGggd2hhdCBpcyBkb25lIGluIExpYlZQWAor
ICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlk
ZW9FbmNvZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rv
cnk6OkdldFN1cHBvcnRlZEZvcm1hdHMgY29uc3QpOgorCiAyMDE4LTExLTEzICBUaGliYXVsdCBT
YXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBFbmhh
bmNlIGRlYnVnZ2luZyBieSBtYWtpbmcgc3VyZSB0byBwcmludCB0aGUgcGlwZWxpbmUgaW4gTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ01h
a2VMaXN0cy50eHQKaW5kZXggY2Y0Zjc5ODAzODcwOTZmZmJiYTRiNDI1NDIwYmRmZDUyNzQ3ZGQ1
YS4uNDNhNGNhODY4NTIyMTFiNmVmMjQ5MmFhNjE2OTg5MjE1ZGUzMzk2OCAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9DTWFrZUxpc3RzLnR4dApAQCAtMTA1MCw2ICsxMDUwLDExIEBA
IHNldCh3ZWJydGNfU09VUkNFUwogICAgIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rp
bmcvY29kZWNzL2k0MjAvaTQyMC5jYwogICAgIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19j
b2RpbmcvY29kZWNzL3ZwOC9kZWZhdWx0X3RlbXBvcmFsX2xheWVycy5jYwogICAgIFNvdXJjZS93
ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL3ZwOC9zY3JlZW5zaGFyZV9sYXllcnMu
Y2MKKyAgICBTb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDgvdnA4
X3RlbXBvcmFsX2xheWVycy5jYworICAgIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rp
bmcvY29kZWNzL3ZwOC9saWJ2cHhfdnA4X2RlY29kZXIuY2MKKyAgICBTb3VyY2Uvd2VicnRjL21v
ZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDgvbGlidnB4X2ludGVyZmFjZS5jYworICAgIFNv
dXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL3ZwOC90ZW1wb3JhbF9sYXll
cnNfY2hlY2tlci5jYworICAgIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvY29k
ZWNzL3ZwOC9saWJ2cHhfdnA4X2VuY29kZXIuY2MKICAgICBTb3VyY2Uvd2VicnRjL21vZHVsZXMv
dmlkZW9fY29kaW5nL2NvZGVjcy92cDkvc3ZjX2NvbmZpZy5jYwogICAgIFNvdXJjZS93ZWJydGMv
bW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL3ZwOS9zdmNfcmF0ZV9hbGxvY2F0b3IuY2MKICAg
ICBTb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2RlY29kZXJfZGF0YWJhc2UuY2MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9H
U3RyZWFtZXJDb21tb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJDb21tb24uaAppbmRleCBmN2M4ZDJhZjA2MDU0ZDcxNzNkYzRjNmE1ODhl
YTZlN2VjNjBmNTg5Li5jYzc2OWM2M2NjYzVkNjdlMzQyNzAxYzhkZWViNDFlMzY4MDNkNTE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0
cmVhbWVyQ29tbW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5oCkBAIC0xMzUsNiArMTM1LDg5IEBAIGlubGluZSBib29s
IG9wZXJhdG9yPT0oY29uc3QgR3N0TWFwcGVkQnVmZmVyJiBhLCBjb25zdCBHc3RCdWZmZXIqIGIp
CiAgICAgcmV0dXJuIGEuc2l6ZSgpID09IGdzdF9idWZmZXJfZ2V0X3NpemUobm9uQ29uc3RCKSAm
JiAhZ3N0X2J1ZmZlcl9tZW1jbXAobm9uQ29uc3RCLCAwLCBhLmRhdGEoKSwgYS5zaXplKCkpOwog
fQogCitjbGFzcyBHc3RNYXBwZWRGcmFtZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR3N0
TWFwcGVkRnJhbWUpOworcHVibGljOgorCisgICAgR3N0TWFwcGVkRnJhbWUoR3N0QnVmZmVyICpi
dWZmZXIsIEdzdFZpZGVvSW5mbyBpbmZvLCBHc3RNYXBGbGFncyBmbGFncykKKyAgICB7CisgICAg
ICAgIG1faXNWYWxpZCA9IGdzdF92aWRlb19mcmFtZV9tYXAoJm1fZnJhbWUsICZpbmZvLCBidWZm
ZXIsIGZsYWdzKTsKKyAgICB9CisKKyAgICBHc3RNYXBwZWRGcmFtZShHUmVmUHRyPEdzdFNhbXBs
ZT4gc2FtcGxlLCBHc3RNYXBGbGFncyBmbGFncykKKyAgICB7CisgICAgICAgIEdzdFZpZGVvSW5m
byBpbmZvOworCisgICAgICAgIGlmICghZ3N0X3ZpZGVvX2luZm9fZnJvbV9jYXBzKCZpbmZvLCBn
c3Rfc2FtcGxlX2dldF9jYXBzKHNhbXBsZS5nZXQoKSkpKSB7CisgICAgICAgICAgICBtX2lzVmFs
aWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIG1f
aXNWYWxpZCA9IGdzdF92aWRlb19mcmFtZV9tYXAoJm1fZnJhbWUsICZpbmZvLCBnc3Rfc2FtcGxl
X2dldF9idWZmZXIoc2FtcGxlLmdldCgpKSwgZmxhZ3MpOworICAgIH0KKworICAgIEdzdFZpZGVv
RnJhbWUgKmdldCgpCisgICAgeworICAgICAgICBpZiAoIW1faXNWYWxpZCkgeworICAgICAgICAg
ICAgR1NUX0lORk8oIkludmFsaWQgZnJhbWUsIHJldHVybmluZyBOVUxMIik7CisKKyAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICZtX2ZyYW1l
OworICAgIH0KKworICAgIHVpbnQ4X3QgKkNvbXBvbmVudERhdGEoaW50IGNvbXApCisgICAgewor
ICAgICAgICByZXR1cm4gR1NUX1ZJREVPX0ZSQU1FX0NPTVBfREFUQSgmbV9mcmFtZSwgY29tcCk7
CisgICAgfQorCisgICAgaW50IENvbXBvbmVudFN0cmlkZShpbnQgc3RyaWRlKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIEdTVF9WSURFT19GUkFNRV9DT01QX1NUUklERSgmbV9mcmFtZSwgc3RyaWRl
KTsKKyAgICB9CisKKyAgICBHc3RWaWRlb0luZm8gKmluZm8oKQorICAgIHsKKyAgICAgICAgaWYg
KCFtX2lzVmFsaWQpIHsKKyAgICAgICAgICAgIEdTVF9JTkZPKCJJbnZhbGlkIGZyYW1lLCByZXR1
cm5pbmcgTlVMTCIpOworCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQor
CisgICAgICAgIHJldHVybiAmbV9mcmFtZS5pbmZvOworICAgIH0KKworICAgIGludCB3aWR0aCgp
CisgICAgeworICAgICAgICByZXR1cm4gbV9pc1ZhbGlkID8gR1NUX1ZJREVPX0ZSQU1FX1dJRFRI
KCZtX2ZyYW1lKSA6IC0xOworICAgIH0KKworICAgIGludCBoZWlnaHQoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG1faXNWYWxpZCA/IEdTVF9WSURFT19GUkFNRV9IRUlHSFQoJm1fZnJhbWUpIDog
LTE7CisgICAgfQorCisgICAgaW50IGZvcm1hdCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9p
c1ZhbGlkID8gR1NUX1ZJREVPX0ZSQU1FX0ZPUk1BVCgmbV9mcmFtZSkgOiBHU1RfVklERU9fRk9S
TUFUX1VOS05PV047CisgICAgfQorCisgICAgfkdzdE1hcHBlZEZyYW1lKCkKKyAgICB7CisgICAg
ICAgIGlmIChtX2lzVmFsaWQpCisgICAgICAgICAgICBnc3RfdmlkZW9fZnJhbWVfdW5tYXAoJm1f
ZnJhbWUpOworICAgICAgICBtX2lzVmFsaWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICBleHBsaWNp
dCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9pc1ZhbGlkOyB9CisKK3ByaXZhdGU6
CisgICAgR3N0VmlkZW9GcmFtZSBtX2ZyYW1lOworICAgIGJvb2wgbV9pc1ZhbGlkIHsgZmFsc2Ug
fTsKK307CisKKwogYm9vbCBnc3RSZWdpc3RyeUhhc0VsZW1lbnRGb3JNZWRpYVR5cGUoR0xpc3Qq
IGVsZW1lbnRGYWN0b3JpZXMsIGNvbnN0IGNoYXIqIGNhcHNTdHJpbmcpOwogdm9pZCBjb25uZWN0
U2ltcGxlQnVzTWVzc2FnZUNhbGxiYWNrKEdzdEVsZW1lbnQgKnBpcGVsaW5lKTsKIHZvaWQgZGlz
Y29ubmVjdFNpbXBsZUJ1c01lc3NhZ2VDYWxsYmFjayhHc3RFbGVtZW50ICpwaXBlbGluZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1Vu
aXF1ZVB0ckdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dVbmlxdWVQdHJHU3RyZWFtZXIuaAppbmRleCAxODU4YTE2ZWNiNTJiZjg5NDJjZDgy
Y2YyNTg2MzlhYWE4NzQ3OGIxLi5hYjIxZjNiODA4YjRmMzA1NjE4MmRmNzUyZTBhMmM3MDM2YmZk
ODJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvR1VuaXF1ZVB0ckdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HVW5pcXVlUHRyR1N0cmVhbWVyLmgKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpbmNsdWRlIDxnc3QvZ3N0c2VnbWVudC5oPgogI2luY2x1ZGUgPGdzdC9nc3RzdHJ1Y3R1cmUu
aD4KICNpbmNsdWRlIDxnc3QvcGJ1dGlscy9pbnN0YWxsLXBsdWdpbnMuaD4KKyNpbmNsdWRlIDxn
c3QvdmlkZW8vdmlkZW8uaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKIG5h
bWVzcGFjZSBXVEYgewpAQCAtMzYsNiArMzcsNyBAQCBXVEZfREVGSU5FX0dQVFJfREVMRVRFUihH
c3RJdGVyYXRvciwgZ3N0X2l0ZXJhdG9yX2ZyZWUpCiBXVEZfREVGSU5FX0dQVFJfREVMRVRFUihH
c3RTZWdtZW50LCBnc3Rfc2VnbWVudF9mcmVlKQogV1RGX0RFRklORV9HUFRSX0RFTEVURVIoR3N0
Rmxvd0NvbWJpbmVyLCBnc3RfZmxvd19jb21iaW5lcl9mcmVlKQogV1RGX0RFRklORV9HUFRSX0RF
TEVURVIoR3N0Qnl0ZVJlYWRlciwgZ3N0X2J5dGVfcmVhZGVyX2ZyZWUpCitXVEZfREVGSU5FX0dQ
VFJfREVMRVRFUihHc3RWaWRlb0NvbnZlcnRlciwgZ3N0X3ZpZGVvX2NvbnZlcnRlcl9mcmVlKQog
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJWaWRlb0ZyYW1lTGliV2ViUlRDLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0ZyYW1lTGliV2Vi
UlRDLmNwcAppbmRleCAxMjBmNWYzY2RiNWE4ZGRlOTc2NWFiMTkzOGVkOWMxMDc3Y2Q3ODIxLi5m
YmJiNzY2ZTI5NzUyYmEwMmFmMWYxZmU3MWExNmIxY2NiNDUxMGM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9G
cmFtZUxpYldlYlJUQy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvRnJhbWVMaWJXZWJSVEMuY3BwCkBAIC0yMSw2ICsy
MSw4IEBACiAjaWYgVVNFKEdTVFJFQU1FUikgJiYgVVNFKExJQldFQlJUQykKICNpbmNsdWRlICJH
U3RyZWFtZXJWaWRlb0ZyYW1lTGliV2ViUlRDLmgiCiAKKyNpbmNsdWRlPHRocmVhZD4KKwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBHUmVmUHRyPEdzdFNhbXBsZT4gR1N0cmVhbWVyU2Ft
cGxlRnJvbUxpYldlYlJUQ1ZpZGVvRnJhbWUoY29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1lJiBmcmFt
ZSkKQEAgLTkwLDM3ICs5Miw1NSBAQCBHUmVmUHRyPEdzdFNhbXBsZT4gR1N0cmVhbWVyVmlkZW9G
cmFtZUxpYldlYlJUQzo6Z2V0U2FtcGxlKCkKIAogcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6
STQyMEJ1ZmZlckludGVyZmFjZT4gR1N0cmVhbWVyVmlkZW9GcmFtZUxpYldlYlJUQzo6VG9JNDIw
KCkKIHsKLSAgICBHc3RWaWRlb0luZm8gaW5mbzsKLSAgICBHc3RWaWRlb0ZyYW1lIGZyYW1lOwor
ICAgIEdzdE1hcHBlZEZyYW1lIGluRnJhbWUobV9zYW1wbGUsIEdTVF9NQVBfUkVBRCk7CiAKLSAg
ICBpZiAoIWdzdF92aWRlb19pbmZvX2Zyb21fY2FwcygmaW5mbywgZ3N0X3NhbXBsZV9nZXRfY2Fw
cyhtX3NhbXBsZS5nZXQoKSkpKQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBp
ZiAoIWluRnJhbWUpIHsKKyAgICAgICAgR1NUX1dBUk5JTkcoIkNvdWxkIG5vdCBtYXAgZnJhbWUi
KTsKIAotICAgIGlmIChHU1RfVklERU9fSU5GT19GT1JNQVQoJmluZm8pICE9IEdTVF9WSURFT19G
T1JNQVRfSTQyMCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogCi0gICAgZ3N0X3Zp
ZGVvX2ZyYW1lX21hcCgmZnJhbWUsICZpbmZvLCBnc3Rfc2FtcGxlX2dldF9idWZmZXIobV9zYW1w
bGUuZ2V0KCkpLCBHU1RfTUFQX1JFQUQpOwotCi0gICAgYXV0byBuZXdCdWZmZXIgPSBtX2J1ZmZl
clBvb2wuQ3JlYXRlQnVmZmVyKEdTVF9WSURFT19GUkFNRV9XSURUSCgmZnJhbWUpLAotICAgICAg
ICBHU1RfVklERU9fRlJBTUVfSEVJR0hUKCZmcmFtZSkpOwotCisgICAgYXV0byBuZXdCdWZmZXIg
PSBtX2J1ZmZlclBvb2wuQ3JlYXRlQnVmZmVyKGluRnJhbWUud2lkdGgoKSwgaW5GcmFtZS5oZWln
aHQoKSk7CiAgICAgQVNTRVJUKG5ld0J1ZmZlcik7CiAgICAgaWYgKCFuZXdCdWZmZXIpIHsKLSAg
ICAgICAgZ3N0X3ZpZGVvX2ZyYW1lX3VubWFwKCZmcmFtZSk7CiAgICAgICAgIEdTVF9XQVJOSU5H
KCJSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VHU3RyZWFtZXI6OnZpZGVvU2FtcGxlQXZhaWxh
YmxlIHVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGNvbnZlcnNpb24gdG8gWVVWIik7CiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAorICAgIGlmIChpbkZyYW1lLmZvcm1hdCgp
ICE9IEdTVF9WSURFT19GT1JNQVRfSTQyMCkgeworICAgICAgICBHc3RWaWRlb0luZm8gb3V0SW5m
bzsKKworICAgICAgICBnc3RfdmlkZW9faW5mb19zZXRfZm9ybWF0KCZvdXRJbmZvLCBHU1RfVklE
RU9fRk9STUFUX0k0MjAsIGluRnJhbWUud2lkdGgoKSwKKyAgICAgICAgICAgIGluRnJhbWUuaGVp
Z2h0KCkpOworICAgICAgICBhdXRvIGluZm8gPSBpbkZyYW1lLmluZm8oKTsKKyAgICAgICAgb3V0
SW5mby5mcHNfbiA9IGluZm8tPmZwc19uOworICAgICAgICBvdXRJbmZvLmZwc19kID0gaW5mby0+
ZnBzX2Q7CisKKyAgICAgICAgR1JlZlB0cjxHc3RCdWZmZXI+IGJ1ZmZlciA9IGFkb3B0R1JlZihn
c3RfYnVmZmVyX25ld193cmFwcGVkX2Z1bGwoR1NUX01FTU9SWV9GTEFHX05PX1NIQVJFLCBuZXdC
dWZmZXItPk11dGFibGVEYXRhWSgpLAorICAgICAgICAgICAgb3V0SW5mby5zaXplLCAwLCBvdXRJ
bmZvLnNpemUsIG51bGxwdHIsIG51bGxwdHIpKTsKKworICAgICAgICBHc3RNYXBwZWRGcmFtZSBv
dXRGcmFtZShidWZmZXIuZ2V0KCksIG91dEluZm8sIEdTVF9NQVBfV1JJVEUpOworCisgICAgICAg
IEdVbmlxdWVQdHI8R3N0VmlkZW9Db252ZXJ0ZXI+IHZpZGVvQ29udmVydGVyKGdzdF92aWRlb19j
b252ZXJ0ZXJfbmV3KGluRnJhbWUuaW5mbygpLAorICAgICAgICAgICAgJm91dEluZm8sIGdzdF9z
dHJ1Y3R1cmVfbmV3KCJHc3RWaWRlb0NvbnZlcnRDb25maWciLAorICAgICAgICAgICAgR1NUX1ZJ
REVPX0NPTlZFUlRFUl9PUFRfVEhSRUFEUywgR19UWVBFX1VJTlQsIHN0ZDo6dGhyZWFkOjpoYXJk
d2FyZV9jb25jdXJyZW5jeSgpIHx8IDEgLCBudWxscHRyKSkpOworCisgICAgICAgIEFTU0VSVCh2
aWRlb0NvbnZlcnRlcik7CisKKyAgICAgICAgZ3N0X3ZpZGVvX2NvbnZlcnRlcl9mcmFtZSh2aWRl
b0NvbnZlcnRlci5nZXQoKSwgaW5GcmFtZS5nZXQoKSwgb3V0RnJhbWUuZ2V0KCkpOworCisgICAg
ICAgIHJldHVybiBuZXdCdWZmZXI7CisgICAgfQorCiAgICAgbmV3QnVmZmVyLT5Db3B5KAotICAg
ICAgICBHU1RfVklERU9fRlJBTUVfV0lEVEgoJmZyYW1lKSwKLSAgICAgICAgR1NUX1ZJREVPX0ZS
QU1FX0hFSUdIVCgmZnJhbWUpLAotICAgICAgICBHU1RfVklERU9fRlJBTUVfQ09NUF9EQVRBKCZm
cmFtZSwgMCksCi0gICAgICAgIEdTVF9WSURFT19GUkFNRV9DT01QX1NUUklERSgmZnJhbWUsIDAp
LAotICAgICAgICBHU1RfVklERU9fRlJBTUVfQ09NUF9EQVRBKCZmcmFtZSwgMSksCi0gICAgICAg
IEdTVF9WSURFT19GUkFNRV9DT01QX1NUUklERSgmZnJhbWUsIDEpLAotICAgICAgICBHU1RfVklE
RU9fRlJBTUVfQ09NUF9EQVRBKCZmcmFtZSwgMiksCi0gICAgICAgIEdTVF9WSURFT19GUkFNRV9D
T01QX1NUUklERSgmZnJhbWUsIDIpKTsKLSAgICBnc3RfdmlkZW9fZnJhbWVfdW5tYXAoJmZyYW1l
KTsKKyAgICAgICAgaW5GcmFtZS53aWR0aCgpLAorICAgICAgICBpbkZyYW1lLmhlaWdodCgpLAor
ICAgICAgICBpbkZyYW1lLkNvbXBvbmVudERhdGEoMCksCisgICAgICAgIGluRnJhbWUuQ29tcG9u
ZW50U3RyaWRlKDApLAorICAgICAgICBpbkZyYW1lLkNvbXBvbmVudERhdGEoMSksCisgICAgICAg
IGluRnJhbWUuQ29tcG9uZW50U3RyaWRlKDEpLAorICAgICAgICBpbkZyYW1lLkNvbXBvbmVudERh
dGEoMiksCisgICAgICAgIGluRnJhbWUuQ29tcG9uZW50U3RyaWRlKDIpKTsKIAogICAgIHJldHVy
biBuZXdCdWZmZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9E
ZWNvZGVyRmFjdG9yeS5jcHAKaW5kZXggZjBhYzhkZjZmNmFkYmJlNTlmMjlhYjEzM2NlOTVjMjE0
NTM1ODRkOS4uOThkMDUwMjg5NDA4NDE1MmVhY2NlMDEzOTAyNDgyYzllNmI5YmMzNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJl
YW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNwcApA
QCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIndlYnJ0Yy9tZWRpYS9iYXNlL2NvZGVjLmgiCiAj
aW5jbHVkZSAid2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY0L2luY2x1ZGUv
aDI2NC5oIgogI2luY2x1ZGUgIndlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvdnA4
L2luY2x1ZGUvdnA4LmgiCisjaW5jbHVkZSAid2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2Nv
ZGVjcy92cDgvbGlidnB4X3ZwOF9kZWNvZGVyLmgiCiAjaW5jbHVkZSAid2VicnRjL21vZHVsZXMv
dmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fY29kZWNfaW50ZXJmYWNlLmgiCiAjaW5jbHVkZSA8
Z3N0L2FwcC9nc3RhcHBzaW5rLmg+CiAjaW5jbHVkZSA8Z3N0L2FwcC9nc3RhcHBzcmMuaD4KQEAg
LTIxNCwxOSArMjE1LDI2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHdlYnJ0Yzo6U2RwVmlk
ZW9Gb3JtYXQoTmFtZSgpKTsKICAgICB9CiAKLSAgICBib29sIEhhc0dzdERlY29kZXIoKQorICAg
IHN0YXRpYyBHUmVmUHRyPEdzdEVsZW1lbnRGYWN0b3J5PiBHc3REZWNvZGVyRmFjdG9yeShjb25z
dCBjaGFyICpjYXBzU3RyKQogICAgIHsKLQogICAgICAgICBhdXRvIGFsbF9kZWNvZGVycyA9IGdz
dF9lbGVtZW50X2ZhY3RvcnlfbGlzdF9nZXRfZWxlbWVudHMoR1NUX0VMRU1FTlRfRkFDVE9SWV9U
WVBFX0RFQ09ERVIsCiAgICAgICAgICAgICBHU1RfUkFOS19NQVJHSU5BTCk7Ci0gICAgICAgIGF1
dG8gY2FwcyA9IGFkb3B0R1JlZihnc3RfY2Fwc19mcm9tX3N0cmluZyhDYXBzKCkpKTsKKyAgICAg
ICAgYXV0byBjYXBzID0gYWRvcHRHUmVmKGdzdF9jYXBzX2Zyb21fc3RyaW5nKGNhcHNTdHIpKTsK
ICAgICAgICAgYXV0byBkZWNvZGVycyA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbGlzdF9maWx0ZXIo
YWxsX2RlY29kZXJzLAogICAgICAgICAgICAgY2Fwcy5nZXQoKSwgR1NUX1BBRF9TSU5LLCBGQUxT
RSk7CiAKICAgICAgICAgZ3N0X3BsdWdpbl9mZWF0dXJlX2xpc3RfZnJlZShhbGxfZGVjb2RlcnMp
OworICAgICAgICBHUmVmUHRyPEdzdEVsZW1lbnRGYWN0b3J5PiByZXM7CisgICAgICAgIGlmIChk
ZWNvZGVycykKKyAgICAgICAgICAgIHJlcyA9IEdTVF9FTEVNRU5UX0ZBQ1RPUlkoZGVjb2RlcnMt
PmRhdGEpOwogICAgICAgICBnc3RfcGx1Z2luX2ZlYXR1cmVfbGlzdF9mcmVlKGRlY29kZXJzKTsK
IAotICAgICAgICByZXR1cm4gZGVjb2RlcnMgIT0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHJl
czsKKyAgICB9CisKKyAgICBib29sIEhhc0dzdERlY29kZXIoKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIEdzdERlY29kZXJGYWN0b3J5KENhcHMoKSk7CiAgICAgfQogCiAgICAgR3N0Rmxvd1JldHVy
biBuZXdTYW1wbGVDYWxsYmFjayhHc3RFbGVtZW50KiBzaW5rKQpAQCAtMzQzLDE2ICszNTEsMjgg
QEAgcHVibGljOgogICAgIGNvbnN0IGdjaGFyKiBDYXBzKCkgZmluYWwgeyByZXR1cm4gInZpZGVv
L3gtdnA4IjsgfQogICAgIGNvbnN0IGdjaGFyKiBOYW1lKCkgZmluYWwgeyByZXR1cm4gY3JpY2tl
dDo6a1ZwOENvZGVjTmFtZTsgfQogICAgIHdlYnJ0Yzo6VmlkZW9Db2RlY1R5cGUgQ29kZWNUeXBl
KCkgZmluYWwgeyByZXR1cm4gd2VicnRjOjprVmlkZW9Db2RlY1ZQODsgfQorICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXI+IENyZWF0ZSgpCisgICAgeworICAg
ICAgICBhdXRvIGZhY3RvcnkgPSBHc3REZWNvZGVyRmFjdG9yeSgidmlkZW8veC12cDgiKTsKKwor
ICAgICAgICBpZiAoZmFjdG9yeSAmJiAhZ19zdHJjbXAwKEdTVF9PQkpFQ1RfTkFNRShHU1RfT0JK
RUNUKGZhY3RvcnkuZ2V0KCkpKSwgInZwOGRlYyIpKSB7CisgICAgICAgICAgICBHU1RfSU5GTygi
T3VyIGJlc3QgR1N0cmVhbWVyIFZQOCBkZWNvZGVyIGlzIHZwOGRlYywgYmV0dGVyIHVzZSB0aGUg
b25lIGZyb20gTGliV2ViUlRDIik7CisKKyAgICAgICAgICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9w
dHI8d2VicnRjOjpWaWRlb0RlY29kZXI+KG5ldyB3ZWJydGM6OkxpYnZweFZwOERlY29kZXIoKSk7
CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6Vmlk
ZW9EZWNvZGVyPihuZXcgVlA4RGVjb2RlcigpKTsKKyAgICB9CiB9OwogCiBzdGQ6OnVuaXF1ZV9w
dHI8d2VicnRjOjpWaWRlb0RlY29kZXI+IEdTdHJlYW1lclZpZGVvRGVjb2RlckZhY3Rvcnk6OkNy
ZWF0ZVZpZGVvRGVjb2Rlcihjb25zdCB3ZWJydGM6OlNkcFZpZGVvRm9ybWF0JiBmb3JtYXQpCiB7
Ci0gICAgR1N0cmVhbWVyVmlkZW9EZWNvZGVyKiBkZWM7CisgICAgd2VicnRjOjpWaWRlb0RlY29k
ZXIqIGRlYzsKIAogICAgIGlmIChmb3JtYXQubmFtZSA9PSBjcmlja2V0OjprSDI2NENvZGVjTmFt
ZSkKICAgICAgICAgZGVjID0gbmV3IEgyNjREZWNvZGVyKCk7CiAgICAgZWxzZSBpZiAoZm9ybWF0
Lm5hbWUgPT0gY3JpY2tldDo6a1ZwOENvZGVjTmFtZSkKLSAgICAgICAgZGVjID0gbmV3IFZQOERl
Y29kZXIoKTsKKyAgICAgICAgcmV0dXJuIFZQOERlY29kZXI6OkNyZWF0ZSgpOwogICAgIGVsc2Ug
ewogICAgICAgICBHU1RfRVJST1IoIkNvdWxkIG5vdCBjcmVhdGUgZGVjb2RlciBmb3IgJXMiLCBm
b3JtYXQubmFtZS5jX3N0cigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2Rlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9F
bmNvZGVyLmNwcAppbmRleCBkNjA5M2I5ZmRkYTNhNjJhNjUxNGZlZDVhODA5ODNkNTdkODdiNDlm
Li5lMmUyZDNlNTE2N2U4NTgwODc3MDJiNjE1NWU5NjUwNzIyOGQzOTEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlk
ZW9FbmNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyLmNwcApAQCAtMjc3LDEyICsyNzcsNiBAQCBz
ZXR1cF94MjY0ZW5jIChHT2JqZWN0ICogZW5jb2RlcikKICAgZ3N0X3V0aWxfc2V0X29iamVjdF9h
cmcgKGVuY29kZXIsICJ0dW5lIiwgInplcm9sYXRlbmN5Iik7CiB9CiAKLXN0YXRpYyB2b2lkCi1z
ZXR1cF92cDhlbmMgKEdPYmplY3QgKiBlbmNvZGVyKQotewotICBnc3RfcHJlc2V0X2xvYWRfcHJl
c2V0IChHU1RfUFJFU0VUIChlbmNvZGVyKSwgIlByb2ZpbGUgUmVhbHRpbWUiKTsKLX0KLQogc3Rh
dGljIHZvaWQKIHNldHVwX29wZW5oMjY0ZW5jIChHT2JqZWN0ICopCiB7CkBAIC0yOTUsMTMgKzI4
OSw2IEBAIHNldF9iaXRyYXRlX2tiaXRfcGVyX3NlYyAoR09iamVjdCAqIGVuY29kZXIsIGNvbnN0
IGdjaGFyICogcHJvcF9uYW1lLAogICBnX29iamVjdF9zZXQgKGVuY29kZXIsIHByb3BfbmFtZSwg
Yml0cmF0ZSwgTlVMTCk7CiB9CiAKLXN0YXRpYyB2b2lkCi1zZXRfYml0cmF0ZV9iaXRfcGVyX3Nl
YyAoR09iamVjdCAqIGVuY29kZXIsIGNvbnN0IGdjaGFyICogcHJvcF9uYW1lLAotICAgIGdpbnQg
Yml0cmF0ZSkKLXsKLSAgZ19vYmplY3Rfc2V0IChlbmNvZGVyLCBwcm9wX25hbWUsIGJpdHJhdGUg
KiBLQklUX1RPX0JJVCwgTlVMTCk7Ci19Ci0KIHN0YXRpYyB2b2lkCiBnc3Rfd2VicnRjX3ZpZGVv
X2VuY29kZXJfY2xhc3NfaW5pdCAoR3N0V2VicnRjVmlkZW9FbmNvZGVyQ2xhc3MgKiBrbGFzcykK
IHsKQEAgLTM0NCw5ICszMzEsNiBAQCBnc3Rfd2VicnRjX3ZpZGVvX2VuY29kZXJfY2xhc3NfaW5p
dCAoR3N0V2VicnRjVmlkZW9FbmNvZGVyQ2xhc3MgKiBrbGFzcykKICAgICAgICJ2aWRlby94LWgy
NjQiLAogICAgICAgInZpZGVvL3gtaDI2NCxhbGlnbm1lbnQ9YXUsc3RyZWFtLWZvcm1hdD1ieXRl
LXN0cmVhbSxwcm9maWxlPWJhc2VsaW5lIiwKICAgICAgIHNldHVwX29wZW5oMjY0ZW5jLCAiYml0
cmF0ZSIsIHNldF9iaXRyYXRlX2tiaXRfcGVyX3NlYywgImdvcC1zaXplIik7Ci0gIHJlZ2lzdGVy
X2tub3duX2VuY29kZXIgKEVOQ09ERVJfVlA4LCAidnA4ZW5jIiwgTlVMTCwgInZpZGVvL3gtdnA4
IiwgTlVMTCwKLSAgICAgIHNldHVwX3ZwOGVuYywgInRhcmdldC1iaXRyYXRlIiwgc2V0X2JpdHJh
dGVfYml0X3Blcl9zZWMsCi0gICAgICAia2V5ZnJhbWUtbWF4LWRpc3QiKTsKIH0KIAogc3RhdGlj
IHZvaWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0
b3J5LmNwcAppbmRleCAwNjU0MDA0NmY2ODBhOTlmNzlhZGU2NjcyMjM5MjE1NzU0ZjNkYjg5Li5h
YzY0NDVmYTAwYzcxY2RkMDE0NDgxMjAyZmNiYzllOTFjMTc5N2QzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9F
bmNvZGVyRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwCkBAIC0zMCw2ICsz
MCw3IEBACiAjaW5jbHVkZSAid2VicnRjL21lZGlhL2Jhc2UvY29kZWMuaCIKICNpbmNsdWRlICJ3
ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjQvaW5jbHVkZS9oMjY0LmgiCiAj
aW5jbHVkZSAid2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDgvaW5jbHVkZS92
cDguaCIKKyNpbmNsdWRlICJ3ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL3ZwOC9s
aWJ2cHhfdnA4X2VuY29kZXIuaCIKICNpbmNsdWRlICJ3ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rp
bmcvaW5jbHVkZS92aWRlb19jb2RlY19pbnRlcmZhY2UuaCIKICNpbmNsdWRlICJ3ZWJydGMvbW9k
dWxlcy92aWRlb19jb2RpbmcvdXRpbGl0eS9zaW11bGNhc3RfdXRpbGl0eS5oIgogCkBAIC00MTAs
MTEgKzQxMSwxMSBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxGcmFtZURhdGE+IG1fZnJhbWVzRGF0
YTsKIH07CiAKLWNsYXNzIEgyNjRFbmNvZGVyIDogcHVibGljIEdTdHJlYW1lclZpZGVvRW5jb2Rl
ciB7CitjbGFzcyBHU3RyZWFtZXJIMjY0RW5jb2RlciA6IHB1YmxpYyBHU3RyZWFtZXJWaWRlb0Vu
Y29kZXIgewogcHVibGljOgotICAgIEgyNjRFbmNvZGVyKCkgeyB9CisgICAgR1N0cmVhbWVySDI2
NEVuY29kZXIoKSB7IH0KIAotICAgIEgyNjRFbmNvZGVyKGNvbnN0IHdlYnJ0Yzo6U2RwVmlkZW9G
b3JtYXQmIGZvcm1hdCkKKyAgICBHU3RyZWFtZXJIMjY0RW5jb2Rlcihjb25zdCB3ZWJydGM6OlNk
cFZpZGVvRm9ybWF0JiBmb3JtYXQpCiAgICAgICAgIDogbV9wYXJzZXIoZ3N0X2gyNjRfbmFsX3Bh
cnNlcl9uZXcoKSkKICAgICAgICAgLCBwYWNrZXRpemF0aW9uTW9kZSh3ZWJydGM6OkgyNjRQYWNr
ZXRpemF0aW9uTW9kZTo6Tm9uSW50ZXJsZWF2ZWQpCiAgICAgewpAQCAtNTA4LDEwICs1MDksMTAg
QEAgcHVibGljOgogICAgIHdlYnJ0Yzo6SDI2NFBhY2tldGl6YXRpb25Nb2RlIHBhY2tldGl6YXRp
b25Nb2RlOwogfTsKIAotY2xhc3MgVlA4RW5jb2RlciA6IHB1YmxpYyBHU3RyZWFtZXJWaWRlb0Vu
Y29kZXIgeworY2xhc3MgR1N0cmVhbWVyVlA4RW5jb2RlciA6IHB1YmxpYyBHU3RyZWFtZXJWaWRl
b0VuY29kZXIgewogcHVibGljOgotICAgIFZQOEVuY29kZXIoKSB7IH0KLSAgICBWUDhFbmNvZGVy
KGNvbnN0IHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQmKSB7IH0KKyAgICBHU3RyZWFtZXJWUDhFbmNv
ZGVyKCkgeyB9CisgICAgR1N0cmVhbWVyVlA4RW5jb2Rlcihjb25zdCB3ZWJydGM6OlNkcFZpZGVv
Rm9ybWF0JikgeyB9CiAgICAgY29uc3QgZ2NoYXIqIENhcHMoKSBmaW5hbCB7IHJldHVybiAidmlk
ZW8veC12cDgiOyB9CiAgICAgY29uc3QgZ2NoYXIqIE5hbWUoKSBmaW5hbCB7IHJldHVybiBjcmlj
a2V0OjprVnA4Q29kZWNOYW1lOyB9CiAgICAgd2VicnRjOjpWaWRlb0NvZGVjVHlwZSBDb2RlY1R5
cGUoKSBmaW5hbCB7IHJldHVybiB3ZWJydGM6OmtWaWRlb0NvZGVjVlA4OyB9CkBAIC01MzUsMTEg
KzUzNiwyMiBAQCBwdWJsaWM6CiAKIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRW5jb2Rl
cj4gR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9FbmNvZGVyKGNvbnN0
IHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQmIGZvcm1hdCkKIHsKLSAgICBpZiAoZm9ybWF0Lm5hbWUg
PT0gY3JpY2tldDo6a1ZwOENvZGVjTmFtZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8VlA4RW5jb2Rlcj4oZm9ybWF0KTsKKyAgICBpZiAoZm9ybWF0Lm5hbWUgPT0gY3JpY2tldDo6
a1ZwOENvZGVjTmFtZSkgeworICAgICAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IHdlYnJ0Y2VuY29k
ZXIgPSBhZG9wdEdSZWYoR1NUX0VMRU1FTlQoZ19vYmplY3RfcmVmX3NpbmsoZ3N0X2VsZW1lbnRf
ZmFjdG9yeV9tYWtlKCJ3ZWJydGN2aWRlb2VuY29kZXIiLCBOVUxMKSkpKTsKKyAgICAgICAgR1Jl
ZlB0cjxHc3RFbGVtZW50PiBlbmNvZGVyID0gbnVsbHB0cjsKKworICAgICAgICBnX29iamVjdF9z
ZXQod2VicnRjZW5jb2Rlci5nZXQoKSwgImZvcm1hdCIsIGFkb3B0R1JlZihnc3RfY2Fwc19mcm9t
X3N0cmluZygidmlkZW8veC12cDgiKSkuZ2V0KCksIE5VTEwpOworICAgICAgICBnX29iamVjdF9n
ZXQod2VicnRjZW5jb2Rlci5nZXQoKSwgImVuY29kZXIiLCAmZW5jb2Rlci5vdXRQdHIoKSwgTlVM
TCk7CisKKyAgICAgICAgaWYgKGVuY29kZXIpCisgICAgICAgICAgICByZXR1cm4gc3RkOjptYWtl
X3VuaXF1ZTxHU3RyZWFtZXJWUDhFbmNvZGVyPihmb3JtYXQpOworCisgICAgICAgIEdTVF9JTkZP
KCJVc2luZyBWUDggRW5jb2RlciBmcm9tIExpYldlYlJUQy4iKTsKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8d2VicnRjOjpMaWJ2cHhWcDhFbmNvZGVyPigpOworICAgIH0KIAogICAg
IGlmIChmb3JtYXQubmFtZSA9PSBjcmlja2V0OjprSDI2NENvZGVjTmFtZSkKLSAgICAgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8SDI2NEVuY29kZXI+KGZvcm1hdCk7CisgICAgICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPEdTdHJlYW1lckgyNjRFbmNvZGVyPihmb3JtYXQpOwogCiAgICAg
cmV0dXJuIG51bGxwdHI7CiB9CkBAIC01NTgsOCArNTcwLDggQEAgc3RkOjp2ZWN0b3I8d2VicnRj
OjpTZHBWaWRlb0Zvcm1hdD4gR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeTo6R2V0U3VwcG9y
dGVkRm8KIHsKICAgICBzdGQ6OnZlY3Rvcjx3ZWJydGM6OlNkcFZpZGVvRm9ybWF0PiBzdXBwb3J0
ZWRDb2RlY3M7CiAKLSAgICBWUDhFbmNvZGVyKCkuQWRkQ29kZWNJZlN1cHBvcnRlZCgmc3VwcG9y
dGVkQ29kZWNzKTsKLSAgICBIMjY0RW5jb2RlcigpLkFkZENvZGVjSWZTdXBwb3J0ZWQoJnN1cHBv
cnRlZENvZGVjcyk7CisgICAgc3VwcG9ydGVkQ29kZWNzLnB1c2hfYmFjayh3ZWJydGM6OlNkcFZp
ZGVvRm9ybWF0KGNyaWNrZXQ6OmtWcDhDb2RlY05hbWUpKTsKKyAgICBHU3RyZWFtZXJIMjY0RW5j
b2RlcigpLkFkZENvZGVjSWZTdXBwb3J0ZWQoJnN1cHBvcnRlZENvZGVjcyk7CiAKICAgICByZXR1
cm4gc3VwcG9ydGVkQ29kZWNzOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355737</attachid>
            <date>2018-11-27 08:53:02 -0800</date>
            <delta_ts>2018-11-27 08:57:10 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-191861-20181127135300.patch</filename>
            <type>text/plain</type>
            <size>20321</size>
            <attacher name="Thibault Saunier">tsaunier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4NTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCA1NmQ5MmVmOWVlYjUxNjg2ZDgxYTExMjg2OWM4NGZiZjQ3ZDg3N2MwLi41ZGI0
YTgwZDc5YzFhZDAyN2M2YjJhOWYzMzhkNzFjYTE3NDRmNDMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOC0xMS0yMCAgVGhpYmF1bHQg
U2F1bmllciAgPHRzYXVuaWVyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl1bV2Vi
UlRDXSBVc2UgTGliV2ViUlRDIHByb3ZpZGVkIHZwOCBkZWNvZGVycyBhbmQgZW5jb2RlcnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTg2MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6IEJ1aWxkIExpYlZQWCB2cDggZW5jb2RlciBhbmQgZGVjb2RlcnMuCisKIDIwMTgtMTEt
MTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIENvbnZlcnQg
bGlid2VicnRjIGVycm9yIHR5cGVzIHRvIERPTSBleGNlcHRpb25zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTkx
N2U4ZjlhMjk2YzlhY2FjMzhkNzFiZDU2MDdhNzc5Mjk1N2Y0MC4uNmU3MjFmYzVlMGEyODM4NWM4
YmRmOWVhYTRmNDA1NGMxMTlkMDExYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE4
LTExLTIwICBUaGliYXVsdCBTYXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KKworICAgICAg
ICBbR1N0cmVhbWVyXVtXZWJSVENdIFVzZSBMaWJXZWJSVEMgcHJvdmlkZWQgdnA4IGRlY29kZXJz
IGFuZCBlbmNvZGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkxODYxCisKKyAgICAgICAgVGhlIEdTdHJlYW1lciBpbXBsZW1lbnRhdGlvbnMgYXJl
IGxlc3MgZmVhdHVyZSBmdWxsIGFuZCBsZXNzIHRlc3RlZCwgbm93IHRoYXQgQXBwbGUKKyAgICAg
ICAgYWxzbyB1c2UgdGhlIExpYldlYlJUQyBwcm92aWRlZCBpbXBsZW1lbnRhdGlvbnMgaXQgbWFr
ZXMgYSBsb3Qgb2Ygc2Vuc2UgZm9yIHVzIHRvCisgICAgICAgIGRvIHRoZSBzYW1lLgorCisgICAg
ICAgIEJhc2ljYWxseSBldmVyeXRoaW5nIHJlbGF0ZWQgdG8gdGVtcG9yYWwgc2NhbGFiaWxpdHkg
aXMgbm90IGltcGxlbWVudGVkIGluIEdTdHJlYW1lci4KKworICAgICAgICBXZSBzaG91bGQgbWFr
ZSBzdXJlIHRvIHVzZSBHU3RyZWFtZXIgZWxlbWVudHMgb24gbG93IHBvd2VyZWQgcGxhdGZvcm1z
IGFuZCBmb3IKKyAgICAgICAgYWNjZWxlcmF0ZWQgZW5jb2RlcnMgYW5kIGRlY29kZXJzLgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgbW9z
dGx5IHJlZmFjdG9yaW5nLCBubyBuZXcgdGVzdCByZXF1aXJlZC4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uaDogQWRkZWQgR3N0TWFwcGVk
RnJhbWUgc2ltaWxhciB0byBHc3RNYXBwZWRCdWZmZXIgYnV0IGZvciB2aWRlbyBmcmFtZXMuCisg
ICAgICAgIChXZWJDb3JlOjpHc3RNYXBwZWRGcmFtZTo6R3N0TWFwcGVkRnJhbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6R3N0TWFwcGVkRnJhbWU6OmdldCk6CisgICAgICAgIChXZWJDb3JlOjpHc3RN
YXBwZWRGcmFtZTo6Q29tcG9uZW50RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpHc3RNYXBwZWRG
cmFtZTo6Q29tcG9uZW50U3RyaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdzdE1hcHBlZEZyYW1l
OjppbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OkdzdE1hcHBlZEZyYW1lOjp3aWR0aCk6CisgICAg
ICAgIChXZWJDb3JlOjpHc3RNYXBwZWRGcmFtZTo6aGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6
OkdzdE1hcHBlZEZyYW1lOjpmb3JtYXQpOgorICAgICAgICAoV2ViQ29yZTo6R3N0TWFwcGVkRnJh
bWU6On5Hc3RNYXBwZWRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpHc3RNYXBwZWRGcmFtZTo6
b3BlcmF0b3IgYm9vbCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0dVbmlxdWVQdHJHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9GcmFtZUxpYldlYlJUQy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHU3RyZWFtZXJWaWRlb0ZyYW1lTGliV2ViUlRDOjpUb0k0MjApOiBJbXBsZW1lbnRl
ZCBzdXBwb3J0IGZvciBjb252ZXJ0aW5nIGZyYW1lIGZvcm1hdHMgd2l0aCB0aGUgR3N0VmlkZW9D
b252ZXJ0ZXIgQVBJCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dT
dHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVh
bWVyVmlkZW9EZWNvZGVyOjpHc3REZWNvZGVyRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpH
U3RyZWFtZXJWaWRlb0RlY29kZXI6Okhhc0dzdERlY29kZXIpOgorICAgICAgICAoV2ViQ29yZTo6
VlA4RGVjb2Rlcjo6Q3JlYXRlKTogQ3JlYXRlcyBhIGB3ZWJydGM6OkxpYnZweFZwOERlY29kZXIo
KWAgaWYgR1N0cmVhbWVyIGRlY29kZXIgd291bGQgYmUgdGhlIExpYlZQWCBiYXNlZCBvbmUuCisg
ICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5OjpDcmVhdGVWaWRl
b0RlY29kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3Ry
ZWFtZXJWaWRlb0VuY29kZXIuY3BwOgorICAgICAgICAoZ3N0X3dlYnJ0Y192aWRlb19lbmNvZGVy
X2NsYXNzX2luaXQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9H
U3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcDogU3RvcCB1c2luZyB2cDhlbmMgYW5kIHVz
ZSBMaWJXZWJSVEMgYmFzZWQgaW1wbGVtZW50YXRpb24KKyAgICAgICAgKFdlYkNvcmU6OkdTdHJl
YW1lckgyNjRFbmNvZGVyOjpHU3RyZWFtZXJIMjY0RW5jb2Rlcik6IFJlbmFtZWQgSDI2NEVuY29k
ZXIgdG8gR1N0cmVhbWVySDI2NEVuY29kZXIgdG8gYmUgbW9yZSBjb2hlcmVudCB3aXRoIHdoYXQg
aXMgZG9uZSBpbiBMaWJWUFgKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZQOEVuY29kZXI6
OkdTdHJlYW1lclZQOEVuY29kZXIpOiBSZW5hbWVkIFZQOEVuY29kZXIgdG8gR1N0cmVhbWVyVlA4
RW5jb2RlciB0byBiZSBtb3JlIGNvaGVyZW50IHdpdGggd2hhdCBpcyBkb25lIGluIExpYlZQWAor
ICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlk
ZW9FbmNvZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rv
cnk6OkdldFN1cHBvcnRlZEZvcm1hdHMgY29uc3QpOgorCiAyMDE4LTExLTI2ICBEYW5pZWwgQmF0
ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjM4MDc4KTog
RG8gbm90IGRyYXcgY2FwcyBsb2NrIGluZGljYXRvciB3aGVuIFN0cm9uZyBQYXNzd29yZCBidXR0
b24gaXMgc2hvd24KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9DTWFrZUxpc3RzLnR4dApp
bmRleCBjZjRmNzk4MDM4NzA5NmZmYmJhNGI0MjU0MjBiZGZkNTI3NDdkZDVhLi40M2E0Y2E4Njg1
MjIxMWI2ZWYyNDkyYWE2MTY5ODkyMTVkZTMzOTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL0NNYWtlTGlzdHMudHh0CkBAIC0xMDUwLDYgKzEwNTAsMTEgQEAgc2V0KHdlYnJ0Y19T
T1VSQ0VTCiAgICAgU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvaTQy
MC9pNDIwLmNjCiAgICAgU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3Mv
dnA4L2RlZmF1bHRfdGVtcG9yYWxfbGF5ZXJzLmNjCiAgICAgU291cmNlL3dlYnJ0Yy9tb2R1bGVz
L3ZpZGVvX2NvZGluZy9jb2RlY3MvdnA4L3NjcmVlbnNoYXJlX2xheWVycy5jYworICAgIFNvdXJj
ZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL3ZwOC92cDhfdGVtcG9yYWxfbGF5
ZXJzLmNjCisgICAgU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvdnA4
L2xpYnZweF92cDhfZGVjb2Rlci5jYworICAgIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19j
b2RpbmcvY29kZWNzL3ZwOC9saWJ2cHhfaW50ZXJmYWNlLmNjCisgICAgU291cmNlL3dlYnJ0Yy9t
b2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvdnA4L3RlbXBvcmFsX2xheWVyc19jaGVja2VyLmNj
CisgICAgU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvdnA4L2xpYnZw
eF92cDhfZW5jb2Rlci5jYwogICAgIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcv
Y29kZWNzL3ZwOS9zdmNfY29uZmlnLmNjCiAgICAgU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVv
X2NvZGluZy9jb2RlY3MvdnA5L3N2Y19yYXRlX2FsbG9jYXRvci5jYwogICAgIFNvdXJjZS93ZWJy
dGMvbW9kdWxlcy92aWRlb19jb2RpbmcvZGVjb2Rlcl9kYXRhYmFzZS5jYwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1v
bi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1l
ckNvbW1vbi5oCmluZGV4IGY3YzhkMmFmMDYwNTRkNzE3M2RjNGM2YTU4OGVhNmU3ZWM2MGY1ODku
LjVkNDRkNDc0MDFiYzcxOGNlZGU0NjI5MGU2MDkxMzcxOTBmMjcwMGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVh
bWVyQ29tbW9uLmgKQEAgLTEzNSw5ICsxMzUsOTIgQEAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBHc3RNYXBwZWRCdWZmZXImIGEsIGNvbnN0IEdzdEJ1ZmZlciogYikKICAgICByZXR1cm4g
YS5zaXplKCkgPT0gZ3N0X2J1ZmZlcl9nZXRfc2l6ZShub25Db25zdEIpICYmICFnc3RfYnVmZmVy
X21lbWNtcChub25Db25zdEIsIDAsIGEuZGF0YSgpLCBhLnNpemUoKSk7CiB9CiAKK2NsYXNzIEdz
dE1hcHBlZEZyYW1lIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHc3RNYXBwZWRGcmFtZSk7
CitwdWJsaWM6CisKKyAgICBHc3RNYXBwZWRGcmFtZShHc3RCdWZmZXIqIGJ1ZmZlciwgR3N0Vmlk
ZW9JbmZvIGluZm8sIEdzdE1hcEZsYWdzIGZsYWdzKQorICAgIHsKKyAgICAgICAgbV9pc1ZhbGlk
ID0gZ3N0X3ZpZGVvX2ZyYW1lX21hcCgmbV9mcmFtZSwgJmluZm8sIGJ1ZmZlciwgZmxhZ3MpOwor
ICAgIH0KKworICAgIEdzdE1hcHBlZEZyYW1lKEdSZWZQdHI8R3N0U2FtcGxlPiBzYW1wbGUsIEdz
dE1hcEZsYWdzIGZsYWdzKQorICAgIHsKKyAgICAgICAgR3N0VmlkZW9JbmZvIGluZm87CisKKyAg
ICAgICAgaWYgKCFnc3RfdmlkZW9faW5mb19mcm9tX2NhcHMoJmluZm8sIGdzdF9zYW1wbGVfZ2V0
X2NhcHMoc2FtcGxlLmdldCgpKSkpIHsKKyAgICAgICAgICAgIG1faXNWYWxpZCA9IGZhbHNlOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbV9pc1ZhbGlkID0gZ3N0
X3ZpZGVvX2ZyYW1lX21hcCgmbV9mcmFtZSwgJmluZm8sIGdzdF9zYW1wbGVfZ2V0X2J1ZmZlcihz
YW1wbGUuZ2V0KCkpLCBmbGFncyk7CisgICAgfQorCisgICAgR3N0VmlkZW9GcmFtZSogZ2V0KCkK
KyAgICB7CisgICAgICAgIGlmICghbV9pc1ZhbGlkKSB7CisgICAgICAgICAgICBHU1RfSU5GTygi
SW52YWxpZCBmcmFtZSwgcmV0dXJuaW5nIE5VTEwiKTsKKworICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJm1fZnJhbWU7CisgICAgfQorCisg
ICAgdWludDhfdCogQ29tcG9uZW50RGF0YShpbnQgY29tcCkKKyAgICB7CisgICAgICAgIHJldHVy
biBHU1RfVklERU9fRlJBTUVfQ09NUF9EQVRBKCZtX2ZyYW1lLCBjb21wKTsKKyAgICB9CisKKyAg
ICBpbnQgQ29tcG9uZW50U3RyaWRlKGludCBzdHJpZGUpCisgICAgeworICAgICAgICByZXR1cm4g
R1NUX1ZJREVPX0ZSQU1FX0NPTVBfU1RSSURFKCZtX2ZyYW1lLCBzdHJpZGUpOworICAgIH0KKwor
ICAgIEdzdFZpZGVvSW5mbyogaW5mbygpCisgICAgeworICAgICAgICBpZiAoIW1faXNWYWxpZCkg
eworICAgICAgICAgICAgR1NUX0lORk8oIkludmFsaWQgZnJhbWUsIHJldHVybmluZyBOVUxMIik7
CisKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisKKyAgICAgICAgcmV0
dXJuICZtX2ZyYW1lLmluZm87CisgICAgfQorCisgICAgaW50IHdpZHRoKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBtX2lzVmFsaWQgPyBHU1RfVklERU9fRlJBTUVfV0lEVEgoJm1fZnJhbWUpIDog
LTE7CisgICAgfQorCisgICAgaW50IGhlaWdodCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9p
c1ZhbGlkID8gR1NUX1ZJREVPX0ZSQU1FX0hFSUdIVCgmbV9mcmFtZSkgOiAtMTsKKyAgICB9CisK
KyAgICBpbnQgZm9ybWF0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2lzVmFsaWQgPyBHU1Rf
VklERU9fRlJBTUVfRk9STUFUKCZtX2ZyYW1lKSA6IEdTVF9WSURFT19GT1JNQVRfVU5LTk9XTjsK
KyAgICB9CisKKyAgICB+R3N0TWFwcGVkRnJhbWUoKQorICAgIHsKKyAgICAgICAgaWYgKG1faXNW
YWxpZCkKKyAgICAgICAgICAgIGdzdF92aWRlb19mcmFtZV91bm1hcCgmbV9mcmFtZSk7CisgICAg
ICAgIG1faXNWYWxpZCA9IGZhbHNlOworICAgIH0KKworICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJv
b2woKSBjb25zdCB7IHJldHVybiBtX2lzVmFsaWQ7IH0KKworcHJpdmF0ZToKKyAgICBHc3RWaWRl
b0ZyYW1lIG1fZnJhbWU7CisgICAgYm9vbCBtX2lzVmFsaWQgeyBmYWxzZSB9OworfTsKKworCiBi
b29sIGdzdFJlZ2lzdHJ5SGFzRWxlbWVudEZvck1lZGlhVHlwZShHTGlzdCogZWxlbWVudEZhY3Rv
cmllcywgY29uc3QgY2hhciogY2Fwc1N0cmluZyk7Ci12b2lkIGNvbm5lY3RTaW1wbGVCdXNNZXNz
YWdlQ2FsbGJhY2soR3N0RWxlbWVudCAqcGlwZWxpbmUpOwotdm9pZCBkaXNjb25uZWN0U2ltcGxl
QnVzTWVzc2FnZUNhbGxiYWNrKEdzdEVsZW1lbnQgKnBpcGVsaW5lKTsKK3ZvaWQgY29ubmVjdFNp
bXBsZUJ1c01lc3NhZ2VDYWxsYmFjayhHc3RFbGVtZW50KiBwaXBlbGluZSk7Cit2b2lkIGRpc2Nv
bm5lY3RTaW1wbGVCdXNNZXNzYWdlQ2FsbGJhY2soR3N0RWxlbWVudCogcGlwZWxpbmUpOwogCiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9HVW5pcXVlUHRyR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvR1VuaXF1ZVB0ckdTdHJlYW1lci5oCmluZGV4IDE4NThhMTZlY2I1MmJmODk0
MmNkODJjZjI1ODYzOWFhYTg3NDc4YjEuLmFiMjFmM2I4MDhiNGYzMDU2MTgyZGY3NTJlMGEyYzcw
MzZiZmQ4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9HVW5pcXVlUHRyR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dVbmlxdWVQdHJHU3RyZWFtZXIuaApAQCAtMjYsNiArMjYs
NyBAQAogI2luY2x1ZGUgPGdzdC9nc3RzZWdtZW50Lmg+CiAjaW5jbHVkZSA8Z3N0L2dzdHN0cnVj
dHVyZS5oPgogI2luY2x1ZGUgPGdzdC9wYnV0aWxzL2luc3RhbGwtcGx1Z2lucy5oPgorI2luY2x1
ZGUgPGdzdC92aWRlby92aWRlby5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4K
IAogbmFtZXNwYWNlIFdURiB7CkBAIC0zNiw2ICszNyw3IEBAIFdURl9ERUZJTkVfR1BUUl9ERUxF
VEVSKEdzdEl0ZXJhdG9yLCBnc3RfaXRlcmF0b3JfZnJlZSkKIFdURl9ERUZJTkVfR1BUUl9ERUxF
VEVSKEdzdFNlZ21lbnQsIGdzdF9zZWdtZW50X2ZyZWUpCiBXVEZfREVGSU5FX0dQVFJfREVMRVRF
UihHc3RGbG93Q29tYmluZXIsIGdzdF9mbG93X2NvbWJpbmVyX2ZyZWUpCiBXVEZfREVGSU5FX0dQ
VFJfREVMRVRFUihHc3RCeXRlUmVhZGVyLCBnc3RfYnl0ZV9yZWFkZXJfZnJlZSkKK1dURl9ERUZJ
TkVfR1BUUl9ERUxFVEVSKEdzdFZpZGVvQ29udmVydGVyLCBnc3RfdmlkZW9fY29udmVydGVyX2Zy
ZWUpCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvRnJhbWVMaWJXZWJSVEMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvRnJhbWVM
aWJXZWJSVEMuY3BwCmluZGV4IDEyMGY1ZjNjZGI1YThkZGU5NzY1YWIxOTM4ZWQ5YzEwNzdjZDc4
MjEuLjE0YjQ4MjJjYzdlNmQ2M2QwZWNkZDM4ZDFkY2VjYjc2Njg3M2M2YTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJW
aWRlb0ZyYW1lTGliV2ViUlRDLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9GcmFtZUxpYldlYlJUQy5jcHAKQEAgLTIx
LDYgKzIxLDggQEAKICNpZiBVU0UoR1NUUkVBTUVSKSAmJiBVU0UoTElCV0VCUlRDKQogI2luY2x1
ZGUgIkdTdHJlYW1lclZpZGVvRnJhbWVMaWJXZWJSVEMuaCIKIAorI2luY2x1ZGUgPHRocmVhZD4K
KwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBHUmVmUHRyPEdzdFNhbXBsZT4gR1N0cmVh
bWVyU2FtcGxlRnJvbUxpYldlYlJUQ1ZpZGVvRnJhbWUoY29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1l
JiBmcmFtZSkKQEAgLTkwLDM3ICs5Miw1NSBAQCBHUmVmUHRyPEdzdFNhbXBsZT4gR1N0cmVhbWVy
VmlkZW9GcmFtZUxpYldlYlJUQzo6Z2V0U2FtcGxlKCkKIAogcnRjOjpzY29wZWRfcmVmcHRyPHdl
YnJ0Yzo6STQyMEJ1ZmZlckludGVyZmFjZT4gR1N0cmVhbWVyVmlkZW9GcmFtZUxpYldlYlJUQzo6
VG9JNDIwKCkKIHsKLSAgICBHc3RWaWRlb0luZm8gaW5mbzsKLSAgICBHc3RWaWRlb0ZyYW1lIGZy
YW1lOworICAgIEdzdE1hcHBlZEZyYW1lIGluRnJhbWUobV9zYW1wbGUsIEdTVF9NQVBfUkVBRCk7
CiAKLSAgICBpZiAoIWdzdF92aWRlb19pbmZvX2Zyb21fY2FwcygmaW5mbywgZ3N0X3NhbXBsZV9n
ZXRfY2FwcyhtX3NhbXBsZS5nZXQoKSkpKQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICBpZiAoIWluRnJhbWUpIHsKKyAgICAgICAgR1NUX1dBUk5JTkcoIkNvdWxkIG5vdCBtYXAg
ZnJhbWUiKTsKIAotICAgIGlmIChHU1RfVklERU9fSU5GT19GT1JNQVQoJmluZm8pICE9IEdTVF9W
SURFT19GT1JNQVRfSTQyMCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogCi0gICAg
Z3N0X3ZpZGVvX2ZyYW1lX21hcCgmZnJhbWUsICZpbmZvLCBnc3Rfc2FtcGxlX2dldF9idWZmZXIo
bV9zYW1wbGUuZ2V0KCkpLCBHU1RfTUFQX1JFQUQpOwotCi0gICAgYXV0byBuZXdCdWZmZXIgPSBt
X2J1ZmZlclBvb2wuQ3JlYXRlQnVmZmVyKEdTVF9WSURFT19GUkFNRV9XSURUSCgmZnJhbWUpLAot
ICAgICAgICBHU1RfVklERU9fRlJBTUVfSEVJR0hUKCZmcmFtZSkpOwotCisgICAgYXV0byBuZXdC
dWZmZXIgPSBtX2J1ZmZlclBvb2wuQ3JlYXRlQnVmZmVyKGluRnJhbWUud2lkdGgoKSwgaW5GcmFt
ZS5oZWlnaHQoKSk7CiAgICAgQVNTRVJUKG5ld0J1ZmZlcik7CiAgICAgaWYgKCFuZXdCdWZmZXIp
IHsKLSAgICAgICAgZ3N0X3ZpZGVvX2ZyYW1lX3VubWFwKCZmcmFtZSk7CiAgICAgICAgIEdTVF9X
QVJOSU5HKCJSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VHU3RyZWFtZXI6OnZpZGVvU2FtcGxl
QXZhaWxhYmxlIHVuYWJsZSB0byBhbGxvY2F0ZSBidWZmZXIgZm9yIGNvbnZlcnNpb24gdG8gWVVW
Iik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAorICAgIGlmIChpbkZyYW1lLmZv
cm1hdCgpICE9IEdTVF9WSURFT19GT1JNQVRfSTQyMCkgeworICAgICAgICBHc3RWaWRlb0luZm8g
b3V0SW5mbzsKKworICAgICAgICBnc3RfdmlkZW9faW5mb19zZXRfZm9ybWF0KCZvdXRJbmZvLCBH
U1RfVklERU9fRk9STUFUX0k0MjAsIGluRnJhbWUud2lkdGgoKSwKKyAgICAgICAgICAgIGluRnJh
bWUuaGVpZ2h0KCkpOworICAgICAgICBhdXRvIGluZm8gPSBpbkZyYW1lLmluZm8oKTsKKyAgICAg
ICAgb3V0SW5mby5mcHNfbiA9IGluZm8tPmZwc19uOworICAgICAgICBvdXRJbmZvLmZwc19kID0g
aW5mby0+ZnBzX2Q7CisKKyAgICAgICAgR1JlZlB0cjxHc3RCdWZmZXI+IGJ1ZmZlciA9IGFkb3B0
R1JlZihnc3RfYnVmZmVyX25ld193cmFwcGVkX2Z1bGwoR1NUX01FTU9SWV9GTEFHX05PX1NIQVJF
LCBuZXdCdWZmZXItPk11dGFibGVEYXRhWSgpLAorICAgICAgICAgICAgb3V0SW5mby5zaXplLCAw
LCBvdXRJbmZvLnNpemUsIG51bGxwdHIsIG51bGxwdHIpKTsKKworICAgICAgICBHc3RNYXBwZWRG
cmFtZSBvdXRGcmFtZShidWZmZXIuZ2V0KCksIG91dEluZm8sIEdTVF9NQVBfV1JJVEUpOworCisg
ICAgICAgIEdVbmlxdWVQdHI8R3N0VmlkZW9Db252ZXJ0ZXI+IHZpZGVvQ29udmVydGVyKGdzdF92
aWRlb19jb252ZXJ0ZXJfbmV3KGluRnJhbWUuaW5mbygpLAorICAgICAgICAgICAgJm91dEluZm8s
IGdzdF9zdHJ1Y3R1cmVfbmV3KCJHc3RWaWRlb0NvbnZlcnRDb25maWciLAorICAgICAgICAgICAg
R1NUX1ZJREVPX0NPTlZFUlRFUl9PUFRfVEhSRUFEUywgR19UWVBFX1VJTlQsIHN0ZDo6dGhyZWFk
OjpoYXJkd2FyZV9jb25jdXJyZW5jeSgpIHx8IDEgLCBudWxscHRyKSkpOworCisgICAgICAgIEFT
U0VSVCh2aWRlb0NvbnZlcnRlcik7CisKKyAgICAgICAgZ3N0X3ZpZGVvX2NvbnZlcnRlcl9mcmFt
ZSh2aWRlb0NvbnZlcnRlci5nZXQoKSwgaW5GcmFtZS5nZXQoKSwgb3V0RnJhbWUuZ2V0KCkpOwor
CisgICAgICAgIHJldHVybiBuZXdCdWZmZXI7CisgICAgfQorCiAgICAgbmV3QnVmZmVyLT5Db3B5
KAotICAgICAgICBHU1RfVklERU9fRlJBTUVfV0lEVEgoJmZyYW1lKSwKLSAgICAgICAgR1NUX1ZJ
REVPX0ZSQU1FX0hFSUdIVCgmZnJhbWUpLAotICAgICAgICBHU1RfVklERU9fRlJBTUVfQ09NUF9E
QVRBKCZmcmFtZSwgMCksCi0gICAgICAgIEdTVF9WSURFT19GUkFNRV9DT01QX1NUUklERSgmZnJh
bWUsIDApLAotICAgICAgICBHU1RfVklERU9fRlJBTUVfQ09NUF9EQVRBKCZmcmFtZSwgMSksCi0g
ICAgICAgIEdTVF9WSURFT19GUkFNRV9DT01QX1NUUklERSgmZnJhbWUsIDEpLAotICAgICAgICBH
U1RfVklERU9fRlJBTUVfQ09NUF9EQVRBKCZmcmFtZSwgMiksCi0gICAgICAgIEdTVF9WSURFT19G
UkFNRV9DT01QX1NUUklERSgmZnJhbWUsIDIpKTsKLSAgICBnc3RfdmlkZW9fZnJhbWVfdW5tYXAo
JmZyYW1lKTsKKyAgICAgICAgaW5GcmFtZS53aWR0aCgpLAorICAgICAgICBpbkZyYW1lLmhlaWdo
dCgpLAorICAgICAgICBpbkZyYW1lLkNvbXBvbmVudERhdGEoMCksCisgICAgICAgIGluRnJhbWUu
Q29tcG9uZW50U3RyaWRlKDApLAorICAgICAgICBpbkZyYW1lLkNvbXBvbmVudERhdGEoMSksCisg
ICAgICAgIGluRnJhbWUuQ29tcG9uZW50U3RyaWRlKDEpLAorICAgICAgICBpbkZyYW1lLkNvbXBv
bmVudERhdGEoMiksCisgICAgICAgIGluRnJhbWUuQ29tcG9uZW50U3RyaWRlKDIpKTsKIAogICAg
IHJldHVybiBuZXdCdWZmZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVy
VmlkZW9EZWNvZGVyRmFjdG9yeS5jcHAKaW5kZXggZjBhYzhkZjZmNmFkYmJlNTlmMjlhYjEzM2Nl
OTVjMjE0NTM1ODRkOS4uOThkMDUwMjg5NDA4NDE1MmVhY2NlMDEzOTAyNDgyYzllNmI5YmMzNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRj
L0dTdHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5
LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIndlYnJ0Yy9tZWRpYS9iYXNlL2NvZGVj
LmgiCiAjaW5jbHVkZSAid2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY0L2lu
Y2x1ZGUvaDI2NC5oIgogI2luY2x1ZGUgIndlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2Rl
Y3MvdnA4L2luY2x1ZGUvdnA4LmgiCisjaW5jbHVkZSAid2VicnRjL21vZHVsZXMvdmlkZW9fY29k
aW5nL2NvZGVjcy92cDgvbGlidnB4X3ZwOF9kZWNvZGVyLmgiCiAjaW5jbHVkZSAid2VicnRjL21v
ZHVsZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fY29kZWNfaW50ZXJmYWNlLmgiCiAjaW5j
bHVkZSA8Z3N0L2FwcC9nc3RhcHBzaW5rLmg+CiAjaW5jbHVkZSA8Z3N0L2FwcC9nc3RhcHBzcmMu
aD4KQEAgLTIxNCwxOSArMjE1LDI2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHdlYnJ0Yzo6
U2RwVmlkZW9Gb3JtYXQoTmFtZSgpKTsKICAgICB9CiAKLSAgICBib29sIEhhc0dzdERlY29kZXIo
KQorICAgIHN0YXRpYyBHUmVmUHRyPEdzdEVsZW1lbnRGYWN0b3J5PiBHc3REZWNvZGVyRmFjdG9y
eShjb25zdCBjaGFyICpjYXBzU3RyKQogICAgIHsKLQogICAgICAgICBhdXRvIGFsbF9kZWNvZGVy
cyA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbGlzdF9nZXRfZWxlbWVudHMoR1NUX0VMRU1FTlRfRkFD
VE9SWV9UWVBFX0RFQ09ERVIsCiAgICAgICAgICAgICBHU1RfUkFOS19NQVJHSU5BTCk7Ci0gICAg
ICAgIGF1dG8gY2FwcyA9IGFkb3B0R1JlZihnc3RfY2Fwc19mcm9tX3N0cmluZyhDYXBzKCkpKTsK
KyAgICAgICAgYXV0byBjYXBzID0gYWRvcHRHUmVmKGdzdF9jYXBzX2Zyb21fc3RyaW5nKGNhcHNT
dHIpKTsKICAgICAgICAgYXV0byBkZWNvZGVycyA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbGlzdF9m
aWx0ZXIoYWxsX2RlY29kZXJzLAogICAgICAgICAgICAgY2Fwcy5nZXQoKSwgR1NUX1BBRF9TSU5L
LCBGQUxTRSk7CiAKICAgICAgICAgZ3N0X3BsdWdpbl9mZWF0dXJlX2xpc3RfZnJlZShhbGxfZGVj
b2RlcnMpOworICAgICAgICBHUmVmUHRyPEdzdEVsZW1lbnRGYWN0b3J5PiByZXM7CisgICAgICAg
IGlmIChkZWNvZGVycykKKyAgICAgICAgICAgIHJlcyA9IEdTVF9FTEVNRU5UX0ZBQ1RPUlkoZGVj
b2RlcnMtPmRhdGEpOwogICAgICAgICBnc3RfcGx1Z2luX2ZlYXR1cmVfbGlzdF9mcmVlKGRlY29k
ZXJzKTsKIAotICAgICAgICByZXR1cm4gZGVjb2RlcnMgIT0gbnVsbHB0cjsKKyAgICAgICAgcmV0
dXJuIHJlczsKKyAgICB9CisKKyAgICBib29sIEhhc0dzdERlY29kZXIoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIEdzdERlY29kZXJGYWN0b3J5KENhcHMoKSk7CiAgICAgfQogCiAgICAgR3N0Rmxv
d1JldHVybiBuZXdTYW1wbGVDYWxsYmFjayhHc3RFbGVtZW50KiBzaW5rKQpAQCAtMzQzLDE2ICsz
NTEsMjggQEAgcHVibGljOgogICAgIGNvbnN0IGdjaGFyKiBDYXBzKCkgZmluYWwgeyByZXR1cm4g
InZpZGVvL3gtdnA4IjsgfQogICAgIGNvbnN0IGdjaGFyKiBOYW1lKCkgZmluYWwgeyByZXR1cm4g
Y3JpY2tldDo6a1ZwOENvZGVjTmFtZTsgfQogICAgIHdlYnJ0Yzo6VmlkZW9Db2RlY1R5cGUgQ29k
ZWNUeXBlKCkgZmluYWwgeyByZXR1cm4gd2VicnRjOjprVmlkZW9Db2RlY1ZQODsgfQorICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXI+IENyZWF0ZSgpCisgICAg
eworICAgICAgICBhdXRvIGZhY3RvcnkgPSBHc3REZWNvZGVyRmFjdG9yeSgidmlkZW8veC12cDgi
KTsKKworICAgICAgICBpZiAoZmFjdG9yeSAmJiAhZ19zdHJjbXAwKEdTVF9PQkpFQ1RfTkFNRShH
U1RfT0JKRUNUKGZhY3RvcnkuZ2V0KCkpKSwgInZwOGRlYyIpKSB7CisgICAgICAgICAgICBHU1Rf
SU5GTygiT3VyIGJlc3QgR1N0cmVhbWVyIFZQOCBkZWNvZGVyIGlzIHZwOGRlYywgYmV0dGVyIHVz
ZSB0aGUgb25lIGZyb20gTGliV2ViUlRDIik7CisKKyAgICAgICAgICAgIHJldHVybiBzdGQ6OnVu
aXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXI+KG5ldyB3ZWJydGM6OkxpYnZweFZwOERlY29k
ZXIoKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPHdlYnJ0
Yzo6VmlkZW9EZWNvZGVyPihuZXcgVlA4RGVjb2RlcigpKTsKKyAgICB9CiB9OwogCiBzdGQ6OnVu
aXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXI+IEdTdHJlYW1lclZpZGVvRGVjb2RlckZhY3Rv
cnk6OkNyZWF0ZVZpZGVvRGVjb2Rlcihjb25zdCB3ZWJydGM6OlNkcFZpZGVvRm9ybWF0JiBmb3Jt
YXQpCiB7Ci0gICAgR1N0cmVhbWVyVmlkZW9EZWNvZGVyKiBkZWM7CisgICAgd2VicnRjOjpWaWRl
b0RlY29kZXIqIGRlYzsKIAogICAgIGlmIChmb3JtYXQubmFtZSA9PSBjcmlja2V0OjprSDI2NENv
ZGVjTmFtZSkKICAgICAgICAgZGVjID0gbmV3IEgyNjREZWNvZGVyKCk7CiAgICAgZWxzZSBpZiAo
Zm9ybWF0Lm5hbWUgPT0gY3JpY2tldDo6a1ZwOENvZGVjTmFtZSkKLSAgICAgICAgZGVjID0gbmV3
IFZQOERlY29kZXIoKTsKKyAgICAgICAgcmV0dXJuIFZQOERlY29kZXI6OkNyZWF0ZSgpOwogICAg
IGVsc2UgewogICAgICAgICBHU1RfRVJST1IoIkNvdWxkIG5vdCBjcmVhdGUgZGVjb2RlciBmb3Ig
JXMiLCBmb3JtYXQubmFtZS5jX3N0cigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2Rlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVy
VmlkZW9FbmNvZGVyLmNwcAppbmRleCBkNjA5M2I5ZmRkYTNhNjJhNjUxNGZlZDVhODA5ODNkNTdk
ODdiNDlmLi5lMmUyZDNlNTE2N2U4NTgwODc3MDJiNjE1NWU5NjUwNzIyOGQzOTEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVh
bWVyVmlkZW9FbmNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyLmNwcApAQCAtMjc3LDEyICsyNzcs
NiBAQCBzZXR1cF94MjY0ZW5jIChHT2JqZWN0ICogZW5jb2RlcikKICAgZ3N0X3V0aWxfc2V0X29i
amVjdF9hcmcgKGVuY29kZXIsICJ0dW5lIiwgInplcm9sYXRlbmN5Iik7CiB9CiAKLXN0YXRpYyB2
b2lkCi1zZXR1cF92cDhlbmMgKEdPYmplY3QgKiBlbmNvZGVyKQotewotICBnc3RfcHJlc2V0X2xv
YWRfcHJlc2V0IChHU1RfUFJFU0VUIChlbmNvZGVyKSwgIlByb2ZpbGUgUmVhbHRpbWUiKTsKLX0K
LQogc3RhdGljIHZvaWQKIHNldHVwX29wZW5oMjY0ZW5jIChHT2JqZWN0ICopCiB7CkBAIC0yOTUs
MTMgKzI4OSw2IEBAIHNldF9iaXRyYXRlX2tiaXRfcGVyX3NlYyAoR09iamVjdCAqIGVuY29kZXIs
IGNvbnN0IGdjaGFyICogcHJvcF9uYW1lLAogICBnX29iamVjdF9zZXQgKGVuY29kZXIsIHByb3Bf
bmFtZSwgYml0cmF0ZSwgTlVMTCk7CiB9CiAKLXN0YXRpYyB2b2lkCi1zZXRfYml0cmF0ZV9iaXRf
cGVyX3NlYyAoR09iamVjdCAqIGVuY29kZXIsIGNvbnN0IGdjaGFyICogcHJvcF9uYW1lLAotICAg
IGdpbnQgYml0cmF0ZSkKLXsKLSAgZ19vYmplY3Rfc2V0IChlbmNvZGVyLCBwcm9wX25hbWUsIGJp
dHJhdGUgKiBLQklUX1RPX0JJVCwgTlVMTCk7Ci19Ci0KIHN0YXRpYyB2b2lkCiBnc3Rfd2VicnRj
X3ZpZGVvX2VuY29kZXJfY2xhc3NfaW5pdCAoR3N0V2VicnRjVmlkZW9FbmNvZGVyQ2xhc3MgKiBr
bGFzcykKIHsKQEAgLTM0NCw5ICszMzEsNiBAQCBnc3Rfd2VicnRjX3ZpZGVvX2VuY29kZXJfY2xh
c3NfaW5pdCAoR3N0V2VicnRjVmlkZW9FbmNvZGVyQ2xhc3MgKiBrbGFzcykKICAgICAgICJ2aWRl
by94LWgyNjQiLAogICAgICAgInZpZGVvL3gtaDI2NCxhbGlnbm1lbnQ9YXUsc3RyZWFtLWZvcm1h
dD1ieXRlLXN0cmVhbSxwcm9maWxlPWJhc2VsaW5lIiwKICAgICAgIHNldHVwX29wZW5oMjY0ZW5j
LCAiYml0cmF0ZSIsIHNldF9iaXRyYXRlX2tiaXRfcGVyX3NlYywgImdvcC1zaXplIik7Ci0gIHJl
Z2lzdGVyX2tub3duX2VuY29kZXIgKEVOQ09ERVJfVlA4LCAidnA4ZW5jIiwgTlVMTCwgInZpZGVv
L3gtdnA4IiwgTlVMTCwKLSAgICAgIHNldHVwX3ZwOGVuYywgInRhcmdldC1iaXRyYXRlIiwgc2V0
X2JpdHJhdGVfYml0X3Blcl9zZWMsCi0gICAgICAia2V5ZnJhbWUtbWF4LWRpc3QiKTsKIH0KIAog
c3RhdGljIHZvaWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29k
ZXJGYWN0b3J5LmNwcAppbmRleCAwNjU0MDA0NmY2ODBhOTlmNzlhZGU2NjcyMjM5MjE1NzU0ZjNk
Yjg5Li5hYzY0NDVmYTAwYzcxY2RkMDE0NDgxMjAyZmNiYzllOTFjMTc5N2QzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVy
VmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwCkBAIC0z
MCw2ICszMCw3IEBACiAjaW5jbHVkZSAid2VicnRjL21lZGlhL2Jhc2UvY29kZWMuaCIKICNpbmNs
dWRlICJ3ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjQvaW5jbHVkZS9oMjY0
LmgiCiAjaW5jbHVkZSAid2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDgvaW5j
bHVkZS92cDguaCIKKyNpbmNsdWRlICJ3ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNz
L3ZwOC9saWJ2cHhfdnA4X2VuY29kZXIuaCIKICNpbmNsdWRlICJ3ZWJydGMvbW9kdWxlcy92aWRl
b19jb2RpbmcvaW5jbHVkZS92aWRlb19jb2RlY19pbnRlcmZhY2UuaCIKICNpbmNsdWRlICJ3ZWJy
dGMvbW9kdWxlcy92aWRlb19jb2RpbmcvdXRpbGl0eS9zaW11bGNhc3RfdXRpbGl0eS5oIgogCkBA
IC00MTAsMTEgKzQxMSwxMSBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxGcmFtZURhdGE+IG1fZnJh
bWVzRGF0YTsKIH07CiAKLWNsYXNzIEgyNjRFbmNvZGVyIDogcHVibGljIEdTdHJlYW1lclZpZGVv
RW5jb2RlciB7CitjbGFzcyBHU3RyZWFtZXJIMjY0RW5jb2RlciA6IHB1YmxpYyBHU3RyZWFtZXJW
aWRlb0VuY29kZXIgewogcHVibGljOgotICAgIEgyNjRFbmNvZGVyKCkgeyB9CisgICAgR1N0cmVh
bWVySDI2NEVuY29kZXIoKSB7IH0KIAotICAgIEgyNjRFbmNvZGVyKGNvbnN0IHdlYnJ0Yzo6U2Rw
VmlkZW9Gb3JtYXQmIGZvcm1hdCkKKyAgICBHU3RyZWFtZXJIMjY0RW5jb2Rlcihjb25zdCB3ZWJy
dGM6OlNkcFZpZGVvRm9ybWF0JiBmb3JtYXQpCiAgICAgICAgIDogbV9wYXJzZXIoZ3N0X2gyNjRf
bmFsX3BhcnNlcl9uZXcoKSkKICAgICAgICAgLCBwYWNrZXRpemF0aW9uTW9kZSh3ZWJydGM6Okgy
NjRQYWNrZXRpemF0aW9uTW9kZTo6Tm9uSW50ZXJsZWF2ZWQpCiAgICAgewpAQCAtNTA4LDEwICs1
MDksMTAgQEAgcHVibGljOgogICAgIHdlYnJ0Yzo6SDI2NFBhY2tldGl6YXRpb25Nb2RlIHBhY2tl
dGl6YXRpb25Nb2RlOwogfTsKIAotY2xhc3MgVlA4RW5jb2RlciA6IHB1YmxpYyBHU3RyZWFtZXJW
aWRlb0VuY29kZXIgeworY2xhc3MgR1N0cmVhbWVyVlA4RW5jb2RlciA6IHB1YmxpYyBHU3RyZWFt
ZXJWaWRlb0VuY29kZXIgewogcHVibGljOgotICAgIFZQOEVuY29kZXIoKSB7IH0KLSAgICBWUDhF
bmNvZGVyKGNvbnN0IHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQmKSB7IH0KKyAgICBHU3RyZWFtZXJW
UDhFbmNvZGVyKCkgeyB9CisgICAgR1N0cmVhbWVyVlA4RW5jb2Rlcihjb25zdCB3ZWJydGM6OlNk
cFZpZGVvRm9ybWF0JikgeyB9CiAgICAgY29uc3QgZ2NoYXIqIENhcHMoKSBmaW5hbCB7IHJldHVy
biAidmlkZW8veC12cDgiOyB9CiAgICAgY29uc3QgZ2NoYXIqIE5hbWUoKSBmaW5hbCB7IHJldHVy
biBjcmlja2V0OjprVnA4Q29kZWNOYW1lOyB9CiAgICAgd2VicnRjOjpWaWRlb0NvZGVjVHlwZSBD
b2RlY1R5cGUoKSBmaW5hbCB7IHJldHVybiB3ZWJydGM6OmtWaWRlb0NvZGVjVlA4OyB9CkBAIC01
MzUsMTEgKzUzNiwyMiBAQCBwdWJsaWM6CiAKIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVv
RW5jb2Rlcj4gR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9FbmNvZGVy
KGNvbnN0IHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQmIGZvcm1hdCkKIHsKLSAgICBpZiAoZm9ybWF0
Lm5hbWUgPT0gY3JpY2tldDo6a1ZwOENvZGVjTmFtZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8VlA4RW5jb2Rlcj4oZm9ybWF0KTsKKyAgICBpZiAoZm9ybWF0Lm5hbWUgPT0gY3Jp
Y2tldDo6a1ZwOENvZGVjTmFtZSkgeworICAgICAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IHdlYnJ0
Y2VuY29kZXIgPSBhZG9wdEdSZWYoR1NUX0VMRU1FTlQoZ19vYmplY3RfcmVmX3NpbmsoZ3N0X2Vs
ZW1lbnRfZmFjdG9yeV9tYWtlKCJ3ZWJydGN2aWRlb2VuY29kZXIiLCBOVUxMKSkpKTsKKyAgICAg
ICAgR1JlZlB0cjxHc3RFbGVtZW50PiBlbmNvZGVyID0gbnVsbHB0cjsKKworICAgICAgICBnX29i
amVjdF9zZXQod2VicnRjZW5jb2Rlci5nZXQoKSwgImZvcm1hdCIsIGFkb3B0R1JlZihnc3RfY2Fw
c19mcm9tX3N0cmluZygidmlkZW8veC12cDgiKSkuZ2V0KCksIE5VTEwpOworICAgICAgICBnX29i
amVjdF9nZXQod2VicnRjZW5jb2Rlci5nZXQoKSwgImVuY29kZXIiLCAmZW5jb2Rlci5vdXRQdHIo
KSwgTlVMTCk7CisKKyAgICAgICAgaWYgKGVuY29kZXIpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxHU3RyZWFtZXJWUDhFbmNvZGVyPihmb3JtYXQpOworCisgICAgICAgIEdT
VF9JTkZPKCJVc2luZyBWUDggRW5jb2RlciBmcm9tIExpYldlYlJUQy4iKTsKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8d2VicnRjOjpMaWJ2cHhWcDhFbmNvZGVyPigpOworICAgIH0K
IAogICAgIGlmIChmb3JtYXQubmFtZSA9PSBjcmlja2V0OjprSDI2NENvZGVjTmFtZSkKLSAgICAg
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8SDI2NEVuY29kZXI+KGZvcm1hdCk7CisgICAgICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdTdHJlYW1lckgyNjRFbmNvZGVyPihmb3JtYXQpOwog
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CkBAIC01NTgsOCArNTcwLDggQEAgc3RkOjp2ZWN0b3I8
d2VicnRjOjpTZHBWaWRlb0Zvcm1hdD4gR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeTo6R2V0
U3VwcG9ydGVkRm8KIHsKICAgICBzdGQ6OnZlY3Rvcjx3ZWJydGM6OlNkcFZpZGVvRm9ybWF0PiBz
dXBwb3J0ZWRDb2RlY3M7CiAKLSAgICBWUDhFbmNvZGVyKCkuQWRkQ29kZWNJZlN1cHBvcnRlZCgm
c3VwcG9ydGVkQ29kZWNzKTsKLSAgICBIMjY0RW5jb2RlcigpLkFkZENvZGVjSWZTdXBwb3J0ZWQo
JnN1cHBvcnRlZENvZGVjcyk7CisgICAgc3VwcG9ydGVkQ29kZWNzLnB1c2hfYmFjayh3ZWJydGM6
OlNkcFZpZGVvRm9ybWF0KGNyaWNrZXQ6OmtWcDhDb2RlY05hbWUpKTsKKyAgICBHU3RyZWFtZXJI
MjY0RW5jb2RlcigpLkFkZENvZGVjSWZTdXBwb3J0ZWQoJnN1cHBvcnRlZENvZGVjcyk7CiAKICAg
ICByZXR1cm4gc3VwcG9ydGVkQ29kZWNzOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355738</attachid>
            <date>2018-11-27 08:57:14 -0800</date>
            <delta_ts>2018-11-27 09:34:35 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-191861-20181127135712.patch</filename>
            <type>text/plain</type>
            <size>20325</size>
            <attacher name="Thibault Saunier">tsaunier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4NTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCA1NmQ5MmVmOWVlYjUxNjg2ZDgxYTExMjg2OWM4NGZiZjQ3ZDg3N2MwLi5kNGVl
YTE5MDI5ZGIzYzhkNDEyYWU0MDhkMGZmOTgyZTgyNThkNjI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOC0xMS0yMCAgVGhpYmF1bHQg
U2F1bmllciAgPHRzYXVuaWVyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl1bV2Vi
UlRDXSBVc2UgTGliV2ViUlRDIHByb3ZpZGVkIHZwOCBkZWNvZGVycyBhbmQgZW5jb2RlcnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTg2MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IFBoaWxpcHBlIE5vcm1hbmQuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDogQnVpbGQgTGliVlBYIHZwOCBlbmNvZGVyIGFuZCBkZWNvZGVycy4KKwogMjAxOC0x
MS0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQ29udmVy
dCBsaWJ3ZWJydGMgZXJyb3IgdHlwZXMgdG8gRE9NIGV4Y2VwdGlvbnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5
OTE3ZThmOWEyOTZjOWFjYWMzOGQ3MWJkNTYwN2E3NzkyOTU3ZjQwLi5hNzRiMTVhYzI0MGZlNzQy
ODRkYTM3ZTUyNTBhMThhY2Y0MTFkYmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIw
MTgtMTEtMjAgIFRoaWJhdWx0IFNhdW5pZXIgIDx0c2F1bmllckBpZ2FsaWEuY29tPgorCisgICAg
ICAgIFtHU3RyZWFtZXJdW1dlYlJUQ10gVXNlIExpYldlYlJUQyBwcm92aWRlZCB2cDggZGVjb2Rl
cnMgYW5kIGVuY29kZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTE4NjEKKworICAgICAgICBUaGUgR1N0cmVhbWVyIGltcGxlbWVudGF0aW9ucyBh
cmUgbGVzcyBmZWF0dXJlIGZ1bGwgYW5kIGxlc3MgdGVzdGVkLCBub3cgdGhhdCBBcHBsZQorICAg
ICAgICBhbHNvIHVzZSB0aGUgTGliV2ViUlRDIHByb3ZpZGVkIGltcGxlbWVudGF0aW9ucyBpdCBt
YWtlcyBhIGxvdCBvZiBzZW5zZSBmb3IgdXMgdG8KKyAgICAgICAgZG8gdGhlIHNhbWUuCisKKyAg
ICAgICAgQmFzaWNhbGx5IGV2ZXJ5dGhpbmcgcmVsYXRlZCB0byB0ZW1wb3JhbCBzY2FsYWJpbGl0
eSBpcyBub3QgaW1wbGVtZW50ZWQgaW4gR1N0cmVhbWVyLgorCisgICAgICAgIFdlIHNob3VsZCBt
YWtlIHN1cmUgdG8gdXNlIEdTdHJlYW1lciBlbGVtZW50cyBvbiBsb3cgcG93ZXJlZCBwbGF0Zm9y
bXMgYW5kIGZvcgorICAgICAgICBhY2NlbGVyYXRlZCBlbmNvZGVycyBhbmQgZGVjb2RlcnMuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgUGhpbGlwcGUgTm9ybWFuZC4KKworICAgICAgICBUaGlzIGlz
IG1vc3RseSByZWZhY3RvcmluZywgbm8gbmV3IHRlc3QgcmVxdWlyZWQuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmg6IEFkZGVkIEdzdE1h
cHBlZEZyYW1lIHNpbWlsYXIgdG8gR3N0TWFwcGVkQnVmZmVyIGJ1dCBmb3IgdmlkZW8gZnJhbWVz
LgorICAgICAgICAoV2ViQ29yZTo6R3N0TWFwcGVkRnJhbWU6OkdzdE1hcHBlZEZyYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdzdE1hcHBlZEZyYW1lOjpnZXQpOgorICAgICAgICAoV2ViQ29yZTo6
R3N0TWFwcGVkRnJhbWU6OkNvbXBvbmVudERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6R3N0TWFw
cGVkRnJhbWU6OkNvbXBvbmVudFN0cmlkZSk6CisgICAgICAgIChXZWJDb3JlOjpHc3RNYXBwZWRG
cmFtZTo6aW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpHc3RNYXBwZWRGcmFtZTo6d2lkdGgpOgor
ICAgICAgICAoV2ViQ29yZTo6R3N0TWFwcGVkRnJhbWU6OmhlaWdodCk6CisgICAgICAgIChXZWJD
b3JlOjpHc3RNYXBwZWRGcmFtZTo6Zm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6OkdzdE1hcHBl
ZEZyYW1lOjp+R3N0TWFwcGVkRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6R3N0TWFwcGVkRnJh
bWU6Om9wZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9HVW5pcXVlUHRyR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvRnJhbWVMaWJXZWJSVEMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9GcmFtZUxpYldlYlJUQzo6VG9JNDIwKTogSW1wbGVt
ZW50ZWQgc3VwcG9ydCBmb3IgY29udmVydGluZyBmcmFtZSBmb3JtYXRzIHdpdGggdGhlIEdzdFZp
ZGVvQ29udmVydGVyIEFQSQorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdT
dHJlYW1lclZpZGVvRGVjb2Rlcjo6R3N0RGVjb2RlckZhY3RvcnkpOgorICAgICAgICAoV2ViQ29y
ZTo6R1N0cmVhbWVyVmlkZW9EZWNvZGVyOjpIYXNHc3REZWNvZGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlZQOERlY29kZXI6OkNyZWF0ZSk6IENyZWF0ZXMgYSBgd2VicnRjOjpMaWJ2cHhWcDhEZWNv
ZGVyKClgIGlmIEdTdHJlYW1lciBkZWNvZGVyIHdvdWxkIGJlIHRoZSBMaWJWUFggYmFzZWQgb25l
LgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3JlYXRl
VmlkZW9EZWNvZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
R1N0cmVhbWVyVmlkZW9FbmNvZGVyLmNwcDoKKyAgICAgICAgKGdzdF93ZWJydGNfdmlkZW9fZW5j
b2Rlcl9jbGFzc19pbml0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHA6IFN0b3AgdXNpbmcgdnA4ZW5jIGFu
ZCB1c2UgTGliV2ViUlRDIGJhc2VkIGltcGxlbWVudGF0aW9uCisgICAgICAgIChXZWJDb3JlOjpH
U3RyZWFtZXJIMjY0RW5jb2Rlcjo6R1N0cmVhbWVySDI2NEVuY29kZXIpOiBSZW5hbWVkIEgyNjRF
bmNvZGVyIHRvIEdTdHJlYW1lckgyNjRFbmNvZGVyIHRvIGJlIG1vcmUgY29oZXJlbnQgd2l0aCB3
aGF0IGlzIGRvbmUgaW4gTGliVlBYCisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJWUDhFbmNv
ZGVyOjpHU3RyZWFtZXJWUDhFbmNvZGVyKTogUmVuYW1lZCBWUDhFbmNvZGVyIHRvIEdTdHJlYW1l
clZQOEVuY29kZXIgdG8gYmUgbW9yZSBjb2hlcmVudCB3aXRoIHdoYXQgaXMgZG9uZSBpbiBMaWJW
UFgKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rvcnk6OkNyZWF0
ZVZpZGVvRW5jb2Rlcik6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJWaWRlb0VuY29kZXJG
YWN0b3J5OjpHZXRTdXBwb3J0ZWRGb3JtYXRzIGNvbnN0KToKKwogMjAxOC0xMS0yNiAgRGFuaWVs
IEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjIzODA3
OCk6IERvIG5vdCBkcmF3IGNhcHMgbG9jayBpbmRpY2F0b3Igd2hlbiBTdHJvbmcgUGFzc3dvcmQg
YnV0dG9uIGlzIHNob3duCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ01ha2VMaXN0cy50
eHQKaW5kZXggY2Y0Zjc5ODAzODcwOTZmZmJiYTRiNDI1NDIwYmRmZDUyNzQ3ZGQ1YS4uNDNhNGNh
ODY4NTIyMTFiNmVmMjQ5MmFhNjE2OTg5MjE1ZGUzMzk2OCAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9DTWFrZUxpc3RzLnR4dApAQCAtMTA1MCw2ICsxMDUwLDExIEBAIHNldCh3ZWJy
dGNfU09VUkNFUwogICAgIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNz
L2k0MjAvaTQyMC5jYwogICAgIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvY29k
ZWNzL3ZwOC9kZWZhdWx0X3RlbXBvcmFsX2xheWVycy5jYwogICAgIFNvdXJjZS93ZWJydGMvbW9k
dWxlcy92aWRlb19jb2RpbmcvY29kZWNzL3ZwOC9zY3JlZW5zaGFyZV9sYXllcnMuY2MKKyAgICBT
b3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDgvdnA4X3RlbXBvcmFs
X2xheWVycy5jYworICAgIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNz
L3ZwOC9saWJ2cHhfdnA4X2RlY29kZXIuY2MKKyAgICBTb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlk
ZW9fY29kaW5nL2NvZGVjcy92cDgvbGlidnB4X2ludGVyZmFjZS5jYworICAgIFNvdXJjZS93ZWJy
dGMvbW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL3ZwOC90ZW1wb3JhbF9sYXllcnNfY2hlY2tl
ci5jYworICAgIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL3ZwOC9s
aWJ2cHhfdnA4X2VuY29kZXIuY2MKICAgICBTb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29k
aW5nL2NvZGVjcy92cDkvc3ZjX2NvbmZpZy5jYwogICAgIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92
aWRlb19jb2RpbmcvY29kZWNzL3ZwOS9zdmNfcmF0ZV9hbGxvY2F0b3IuY2MKICAgICBTb3VyY2Uv
d2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2RlY29kZXJfZGF0YWJhc2UuY2MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJD
b21tb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3Ry
ZWFtZXJDb21tb24uaAppbmRleCBmN2M4ZDJhZjA2MDU0ZDcxNzNkYzRjNmE1ODhlYTZlN2VjNjBm
NTg5Li41ZDQ0ZDQ3NDAxYmM3MThjZWRlNDYyOTBlNjA5MTM3MTkwZjI3MDBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29t
bW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dT
dHJlYW1lckNvbW1vbi5oCkBAIC0xMzUsOSArMTM1LDkyIEBAIGlubGluZSBib29sIG9wZXJhdG9y
PT0oY29uc3QgR3N0TWFwcGVkQnVmZmVyJiBhLCBjb25zdCBHc3RCdWZmZXIqIGIpCiAgICAgcmV0
dXJuIGEuc2l6ZSgpID09IGdzdF9idWZmZXJfZ2V0X3NpemUobm9uQ29uc3RCKSAmJiAhZ3N0X2J1
ZmZlcl9tZW1jbXAobm9uQ29uc3RCLCAwLCBhLmRhdGEoKSwgYS5zaXplKCkpOwogfQogCitjbGFz
cyBHc3RNYXBwZWRGcmFtZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR3N0TWFwcGVkRnJh
bWUpOworcHVibGljOgorCisgICAgR3N0TWFwcGVkRnJhbWUoR3N0QnVmZmVyKiBidWZmZXIsIEdz
dFZpZGVvSW5mbyBpbmZvLCBHc3RNYXBGbGFncyBmbGFncykKKyAgICB7CisgICAgICAgIG1faXNW
YWxpZCA9IGdzdF92aWRlb19mcmFtZV9tYXAoJm1fZnJhbWUsICZpbmZvLCBidWZmZXIsIGZsYWdz
KTsKKyAgICB9CisKKyAgICBHc3RNYXBwZWRGcmFtZShHUmVmUHRyPEdzdFNhbXBsZT4gc2FtcGxl
LCBHc3RNYXBGbGFncyBmbGFncykKKyAgICB7CisgICAgICAgIEdzdFZpZGVvSW5mbyBpbmZvOwor
CisgICAgICAgIGlmICghZ3N0X3ZpZGVvX2luZm9fZnJvbV9jYXBzKCZpbmZvLCBnc3Rfc2FtcGxl
X2dldF9jYXBzKHNhbXBsZS5nZXQoKSkpKSB7CisgICAgICAgICAgICBtX2lzVmFsaWQgPSBmYWxz
ZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIG1faXNWYWxpZCA9
IGdzdF92aWRlb19mcmFtZV9tYXAoJm1fZnJhbWUsICZpbmZvLCBnc3Rfc2FtcGxlX2dldF9idWZm
ZXIoc2FtcGxlLmdldCgpKSwgZmxhZ3MpOworICAgIH0KKworICAgIEdzdFZpZGVvRnJhbWUqIGdl
dCgpCisgICAgeworICAgICAgICBpZiAoIW1faXNWYWxpZCkgeworICAgICAgICAgICAgR1NUX0lO
Rk8oIkludmFsaWQgZnJhbWUsIHJldHVybmluZyBOVUxMIik7CisKKyAgICAgICAgICAgIHJldHVy
biBudWxscHRyOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICZtX2ZyYW1lOworICAgIH0K
KworICAgIHVpbnQ4X3QqIENvbXBvbmVudERhdGEoaW50IGNvbXApCisgICAgeworICAgICAgICBy
ZXR1cm4gR1NUX1ZJREVPX0ZSQU1FX0NPTVBfREFUQSgmbV9mcmFtZSwgY29tcCk7CisgICAgfQor
CisgICAgaW50IENvbXBvbmVudFN0cmlkZShpbnQgc3RyaWRlKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIEdTVF9WSURFT19GUkFNRV9DT01QX1NUUklERSgmbV9mcmFtZSwgc3RyaWRlKTsKKyAgICB9
CisKKyAgICBHc3RWaWRlb0luZm8qIGluZm8oKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2lzVmFs
aWQpIHsKKyAgICAgICAgICAgIEdTVF9JTkZPKCJJbnZhbGlkIGZyYW1lLCByZXR1cm5pbmcgTlVM
TCIpOworCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorCisgICAgICAg
IHJldHVybiAmbV9mcmFtZS5pbmZvOworICAgIH0KKworICAgIGludCB3aWR0aCgpCisgICAgewor
ICAgICAgICByZXR1cm4gbV9pc1ZhbGlkID8gR1NUX1ZJREVPX0ZSQU1FX1dJRFRIKCZtX2ZyYW1l
KSA6IC0xOworICAgIH0KKworICAgIGludCBoZWlnaHQoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IG1faXNWYWxpZCA/IEdTVF9WSURFT19GUkFNRV9IRUlHSFQoJm1fZnJhbWUpIDogLTE7CisgICAg
fQorCisgICAgaW50IGZvcm1hdCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9pc1ZhbGlkID8g
R1NUX1ZJREVPX0ZSQU1FX0ZPUk1BVCgmbV9mcmFtZSkgOiBHU1RfVklERU9fRk9STUFUX1VOS05P
V047CisgICAgfQorCisgICAgfkdzdE1hcHBlZEZyYW1lKCkKKyAgICB7CisgICAgICAgIGlmICht
X2lzVmFsaWQpCisgICAgICAgICAgICBnc3RfdmlkZW9fZnJhbWVfdW5tYXAoJm1fZnJhbWUpOwor
ICAgICAgICBtX2lzVmFsaWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICBleHBsaWNpdCBvcGVyYXRv
ciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9pc1ZhbGlkOyB9CisKK3ByaXZhdGU6CisgICAgR3N0
VmlkZW9GcmFtZSBtX2ZyYW1lOworICAgIGJvb2wgbV9pc1ZhbGlkIHsgZmFsc2UgfTsKK307CisK
KwogYm9vbCBnc3RSZWdpc3RyeUhhc0VsZW1lbnRGb3JNZWRpYVR5cGUoR0xpc3QqIGVsZW1lbnRG
YWN0b3JpZXMsIGNvbnN0IGNoYXIqIGNhcHNTdHJpbmcpOwotdm9pZCBjb25uZWN0U2ltcGxlQnVz
TWVzc2FnZUNhbGxiYWNrKEdzdEVsZW1lbnQgKnBpcGVsaW5lKTsKLXZvaWQgZGlzY29ubmVjdFNp
bXBsZUJ1c01lc3NhZ2VDYWxsYmFjayhHc3RFbGVtZW50ICpwaXBlbGluZSk7Cit2b2lkIGNvbm5l
Y3RTaW1wbGVCdXNNZXNzYWdlQ2FsbGJhY2soR3N0RWxlbWVudCogcGlwZWxpbmUpOwordm9pZCBk
aXNjb25uZWN0U2ltcGxlQnVzTWVzc2FnZUNhbGxiYWNrKEdzdEVsZW1lbnQqIHBpcGVsaW5lKTsK
IAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvR1VuaXF1ZVB0ckdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL0dVbmlxdWVQdHJHU3RyZWFtZXIuaAppbmRleCAxODU4YTE2ZWNiNTJi
Zjg5NDJjZDgyY2YyNTg2MzlhYWE4NzQ3OGIxLi5hYjIxZjNiODA4YjRmMzA1NjE4MmRmNzUyZTBh
MmM3MDM2YmZkODJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvR1VuaXF1ZVB0ckdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HVW5pcXVlUHRyR1N0cmVhbWVyLmgKQEAgLTI2LDYg
KzI2LDcgQEAKICNpbmNsdWRlIDxnc3QvZ3N0c2VnbWVudC5oPgogI2luY2x1ZGUgPGdzdC9nc3Rz
dHJ1Y3R1cmUuaD4KICNpbmNsdWRlIDxnc3QvcGJ1dGlscy9pbnN0YWxsLXBsdWdpbnMuaD4KKyNp
bmNsdWRlIDxnc3QvdmlkZW8vdmlkZW8uaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRy
Lmg+CiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtMzYsNiArMzcsNyBAQCBXVEZfREVGSU5FX0dQVFJf
REVMRVRFUihHc3RJdGVyYXRvciwgZ3N0X2l0ZXJhdG9yX2ZyZWUpCiBXVEZfREVGSU5FX0dQVFJf
REVMRVRFUihHc3RTZWdtZW50LCBnc3Rfc2VnbWVudF9mcmVlKQogV1RGX0RFRklORV9HUFRSX0RF
TEVURVIoR3N0Rmxvd0NvbWJpbmVyLCBnc3RfZmxvd19jb21iaW5lcl9mcmVlKQogV1RGX0RFRklO
RV9HUFRSX0RFTEVURVIoR3N0Qnl0ZVJlYWRlciwgZ3N0X2J5dGVfcmVhZGVyX2ZyZWUpCitXVEZf
REVGSU5FX0dQVFJfREVMRVRFUihHc3RWaWRlb0NvbnZlcnRlciwgZ3N0X3ZpZGVvX2NvbnZlcnRl
cl9mcmVlKQogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0ZyYW1lTGliV2ViUlRDLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0Zy
YW1lTGliV2ViUlRDLmNwcAppbmRleCAxMjBmNWYzY2RiNWE4ZGRlOTc2NWFiMTkzOGVkOWMxMDc3
Y2Q3ODIxLi4xNGI0ODIyY2M3ZTZkNjNkMGVjZGQzOGQxZGNlY2I3NjY4NzNjNmE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyVmlkZW9GcmFtZUxpYldlYlJUQy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvRnJhbWVMaWJXZWJSVEMuY3BwCkBA
IC0yMSw2ICsyMSw4IEBACiAjaWYgVVNFKEdTVFJFQU1FUikgJiYgVVNFKExJQldFQlJUQykKICNp
bmNsdWRlICJHU3RyZWFtZXJWaWRlb0ZyYW1lTGliV2ViUlRDLmgiCiAKKyNpbmNsdWRlIDx0aHJl
YWQ+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgR1JlZlB0cjxHc3RTYW1wbGU+IEdT
dHJlYW1lclNhbXBsZUZyb21MaWJXZWJSVENWaWRlb0ZyYW1lKGNvbnN0IHdlYnJ0Yzo6VmlkZW9G
cmFtZSYgZnJhbWUpCkBAIC05MCwzNyArOTIsNTUgQEAgR1JlZlB0cjxHc3RTYW1wbGU+IEdTdHJl
YW1lclZpZGVvRnJhbWVMaWJXZWJSVEM6OmdldFNhbXBsZSgpCiAKIHJ0Yzo6c2NvcGVkX3JlZnB0
cjx3ZWJydGM6Okk0MjBCdWZmZXJJbnRlcmZhY2U+IEdTdHJlYW1lclZpZGVvRnJhbWVMaWJXZWJS
VEM6OlRvSTQyMCgpCiB7Ci0gICAgR3N0VmlkZW9JbmZvIGluZm87Ci0gICAgR3N0VmlkZW9GcmFt
ZSBmcmFtZTsKKyAgICBHc3RNYXBwZWRGcmFtZSBpbkZyYW1lKG1fc2FtcGxlLCBHU1RfTUFQX1JF
QUQpOwogCi0gICAgaWYgKCFnc3RfdmlkZW9faW5mb19mcm9tX2NhcHMoJmluZm8sIGdzdF9zYW1w
bGVfZ2V0X2NhcHMobV9zYW1wbGUuZ2V0KCkpKSkKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgaWYgKCFpbkZyYW1lKSB7CisgICAgICAgIEdTVF9XQVJOSU5HKCJDb3VsZCBub3Qg
bWFwIGZyYW1lIik7CiAKLSAgICBpZiAoR1NUX1ZJREVPX0lORk9fRk9STUFUKCZpbmZvKSAhPSBH
U1RfVklERU9fRk9STUFUX0k0MjApCiAgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KIAot
ICAgIGdzdF92aWRlb19mcmFtZV9tYXAoJmZyYW1lLCAmaW5mbywgZ3N0X3NhbXBsZV9nZXRfYnVm
ZmVyKG1fc2FtcGxlLmdldCgpKSwgR1NUX01BUF9SRUFEKTsKLQotICAgIGF1dG8gbmV3QnVmZmVy
ID0gbV9idWZmZXJQb29sLkNyZWF0ZUJ1ZmZlcihHU1RfVklERU9fRlJBTUVfV0lEVEgoJmZyYW1l
KSwKLSAgICAgICAgR1NUX1ZJREVPX0ZSQU1FX0hFSUdIVCgmZnJhbWUpKTsKLQorICAgIGF1dG8g
bmV3QnVmZmVyID0gbV9idWZmZXJQb29sLkNyZWF0ZUJ1ZmZlcihpbkZyYW1lLndpZHRoKCksIGlu
RnJhbWUuaGVpZ2h0KCkpOwogICAgIEFTU0VSVChuZXdCdWZmZXIpOwogICAgIGlmICghbmV3QnVm
ZmVyKSB7Ci0gICAgICAgIGdzdF92aWRlb19mcmFtZV91bm1hcCgmZnJhbWUpOwogICAgICAgICBH
U1RfV0FSTklORygiUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlR1N0cmVhbWVyOjp2aWRlb1Nh
bXBsZUF2YWlsYWJsZSB1bmFibGUgdG8gYWxsb2NhdGUgYnVmZmVyIGZvciBjb252ZXJzaW9uIHRv
IFlVViIpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKKyAgICBpZiAoaW5GcmFt
ZS5mb3JtYXQoKSAhPSBHU1RfVklERU9fRk9STUFUX0k0MjApIHsKKyAgICAgICAgR3N0VmlkZW9J
bmZvIG91dEluZm87CisKKyAgICAgICAgZ3N0X3ZpZGVvX2luZm9fc2V0X2Zvcm1hdCgmb3V0SW5m
bywgR1NUX1ZJREVPX0ZPUk1BVF9JNDIwLCBpbkZyYW1lLndpZHRoKCksCisgICAgICAgICAgICBp
bkZyYW1lLmhlaWdodCgpKTsKKyAgICAgICAgYXV0byBpbmZvID0gaW5GcmFtZS5pbmZvKCk7Cisg
ICAgICAgIG91dEluZm8uZnBzX24gPSBpbmZvLT5mcHNfbjsKKyAgICAgICAgb3V0SW5mby5mcHNf
ZCA9IGluZm8tPmZwc19kOworCisgICAgICAgIEdSZWZQdHI8R3N0QnVmZmVyPiBidWZmZXIgPSBh
ZG9wdEdSZWYoZ3N0X2J1ZmZlcl9uZXdfd3JhcHBlZF9mdWxsKEdTVF9NRU1PUllfRkxBR19OT19T
SEFSRSwgbmV3QnVmZmVyLT5NdXRhYmxlRGF0YVkoKSwKKyAgICAgICAgICAgIG91dEluZm8uc2l6
ZSwgMCwgb3V0SW5mby5zaXplLCBudWxscHRyLCBudWxscHRyKSk7CisKKyAgICAgICAgR3N0TWFw
cGVkRnJhbWUgb3V0RnJhbWUoYnVmZmVyLmdldCgpLCBvdXRJbmZvLCBHU1RfTUFQX1dSSVRFKTsK
KworICAgICAgICBHVW5pcXVlUHRyPEdzdFZpZGVvQ29udmVydGVyPiB2aWRlb0NvbnZlcnRlcihn
c3RfdmlkZW9fY29udmVydGVyX25ldyhpbkZyYW1lLmluZm8oKSwKKyAgICAgICAgICAgICZvdXRJ
bmZvLCBnc3Rfc3RydWN0dXJlX25ldygiR3N0VmlkZW9Db252ZXJ0Q29uZmlnIiwKKyAgICAgICAg
ICAgIEdTVF9WSURFT19DT05WRVJURVJfT1BUX1RIUkVBRFMsIEdfVFlQRV9VSU5ULCBzdGQ6OnRo
cmVhZDo6aGFyZHdhcmVfY29uY3VycmVuY3koKSB8fCAxICwgbnVsbHB0cikpKTsKKworICAgICAg
ICBBU1NFUlQodmlkZW9Db252ZXJ0ZXIpOworCisgICAgICAgIGdzdF92aWRlb19jb252ZXJ0ZXJf
ZnJhbWUodmlkZW9Db252ZXJ0ZXIuZ2V0KCksIGluRnJhbWUuZ2V0KCksIG91dEZyYW1lLmdldCgp
KTsKKworICAgICAgICByZXR1cm4gbmV3QnVmZmVyOworICAgIH0KKwogICAgIG5ld0J1ZmZlci0+
Q29weSgKLSAgICAgICAgR1NUX1ZJREVPX0ZSQU1FX1dJRFRIKCZmcmFtZSksCi0gICAgICAgIEdT
VF9WSURFT19GUkFNRV9IRUlHSFQoJmZyYW1lKSwKLSAgICAgICAgR1NUX1ZJREVPX0ZSQU1FX0NP
TVBfREFUQSgmZnJhbWUsIDApLAotICAgICAgICBHU1RfVklERU9fRlJBTUVfQ09NUF9TVFJJREUo
JmZyYW1lLCAwKSwKLSAgICAgICAgR1NUX1ZJREVPX0ZSQU1FX0NPTVBfREFUQSgmZnJhbWUsIDEp
LAotICAgICAgICBHU1RfVklERU9fRlJBTUVfQ09NUF9TVFJJREUoJmZyYW1lLCAxKSwKLSAgICAg
ICAgR1NUX1ZJREVPX0ZSQU1FX0NPTVBfREFUQSgmZnJhbWUsIDIpLAotICAgICAgICBHU1RfVklE
RU9fRlJBTUVfQ09NUF9TVFJJREUoJmZyYW1lLCAyKSk7Ci0gICAgZ3N0X3ZpZGVvX2ZyYW1lX3Vu
bWFwKCZmcmFtZSk7CisgICAgICAgIGluRnJhbWUud2lkdGgoKSwKKyAgICAgICAgaW5GcmFtZS5o
ZWlnaHQoKSwKKyAgICAgICAgaW5GcmFtZS5Db21wb25lbnREYXRhKDApLAorICAgICAgICBpbkZy
YW1lLkNvbXBvbmVudFN0cmlkZSgwKSwKKyAgICAgICAgaW5GcmFtZS5Db21wb25lbnREYXRhKDEp
LAorICAgICAgICBpbkZyYW1lLkNvbXBvbmVudFN0cmlkZSgxKSwKKyAgICAgICAgaW5GcmFtZS5D
b21wb25lbnREYXRhKDIpLAorICAgICAgICBpbkZyYW1lLkNvbXBvbmVudFN0cmlkZSgyKSk7CiAK
ICAgICByZXR1cm4gbmV3QnVmZmVyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRGVjb2RlckZhY3Rvcnku
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJl
YW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwCmluZGV4IGYwYWM4ZGY2ZjZhZGJiZTU5ZjI5YWIx
MzNjZTk1YzIxNDUzNTg0ZDkuLjk4ZDA1MDI4OTQwODQxNTJlYWNjZTAxMzkwMjQ4MmM5ZTZiOWJj
MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9EZWNvZGVyRmFj
dG9yeS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJ3ZWJydGMvbWVkaWEvYmFzZS9j
b2RlYy5oIgogI2luY2x1ZGUgIndlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvaDI2
NC9pbmNsdWRlL2gyNjQuaCIKICNpbmNsdWRlICJ3ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcv
Y29kZWNzL3ZwOC9pbmNsdWRlL3ZwOC5oIgorI2luY2x1ZGUgIndlYnJ0Yy9tb2R1bGVzL3ZpZGVv
X2NvZGluZy9jb2RlY3MvdnA4L2xpYnZweF92cDhfZGVjb2Rlci5oIgogI2luY2x1ZGUgIndlYnJ0
Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3ZpZGVvX2NvZGVjX2ludGVyZmFjZS5oIgog
I2luY2x1ZGUgPGdzdC9hcHAvZ3N0YXBwc2luay5oPgogI2luY2x1ZGUgPGdzdC9hcHAvZ3N0YXBw
c3JjLmg+CkBAIC0yMTQsMTkgKzIxNSwyNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB3ZWJy
dGM6OlNkcFZpZGVvRm9ybWF0KE5hbWUoKSk7CiAgICAgfQogCi0gICAgYm9vbCBIYXNHc3REZWNv
ZGVyKCkKKyAgICBzdGF0aWMgR1JlZlB0cjxHc3RFbGVtZW50RmFjdG9yeT4gR3N0RGVjb2RlckZh
Y3RvcnkoY29uc3QgY2hhciAqY2Fwc1N0cikKICAgICB7Ci0KICAgICAgICAgYXV0byBhbGxfZGVj
b2RlcnMgPSBnc3RfZWxlbWVudF9mYWN0b3J5X2xpc3RfZ2V0X2VsZW1lbnRzKEdTVF9FTEVNRU5U
X0ZBQ1RPUllfVFlQRV9ERUNPREVSLAogICAgICAgICAgICAgR1NUX1JBTktfTUFSR0lOQUwpOwot
ICAgICAgICBhdXRvIGNhcHMgPSBhZG9wdEdSZWYoZ3N0X2NhcHNfZnJvbV9zdHJpbmcoQ2Fwcygp
KSk7CisgICAgICAgIGF1dG8gY2FwcyA9IGFkb3B0R1JlZihnc3RfY2Fwc19mcm9tX3N0cmluZyhj
YXBzU3RyKSk7CiAgICAgICAgIGF1dG8gZGVjb2RlcnMgPSBnc3RfZWxlbWVudF9mYWN0b3J5X2xp
c3RfZmlsdGVyKGFsbF9kZWNvZGVycywKICAgICAgICAgICAgIGNhcHMuZ2V0KCksIEdTVF9QQURf
U0lOSywgRkFMU0UpOwogCiAgICAgICAgIGdzdF9wbHVnaW5fZmVhdHVyZV9saXN0X2ZyZWUoYWxs
X2RlY29kZXJzKTsKKyAgICAgICAgR1JlZlB0cjxHc3RFbGVtZW50RmFjdG9yeT4gcmVzOworICAg
ICAgICBpZiAoZGVjb2RlcnMpCisgICAgICAgICAgICByZXMgPSBHU1RfRUxFTUVOVF9GQUNUT1JZ
KGRlY29kZXJzLT5kYXRhKTsKICAgICAgICAgZ3N0X3BsdWdpbl9mZWF0dXJlX2xpc3RfZnJlZShk
ZWNvZGVycyk7CiAKLSAgICAgICAgcmV0dXJuIGRlY29kZXJzICE9IG51bGxwdHI7CisgICAgICAg
IHJldHVybiByZXM7CisgICAgfQorCisgICAgYm9vbCBIYXNHc3REZWNvZGVyKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBHc3REZWNvZGVyRmFjdG9yeShDYXBzKCkpOwogICAgIH0KIAogICAgIEdz
dEZsb3dSZXR1cm4gbmV3U2FtcGxlQ2FsbGJhY2soR3N0RWxlbWVudCogc2luaykKQEAgLTM0Mywx
NiArMzUxLDI4IEBAIHB1YmxpYzoKICAgICBjb25zdCBnY2hhciogQ2FwcygpIGZpbmFsIHsgcmV0
dXJuICJ2aWRlby94LXZwOCI7IH0KICAgICBjb25zdCBnY2hhciogTmFtZSgpIGZpbmFsIHsgcmV0
dXJuIGNyaWNrZXQ6OmtWcDhDb2RlY05hbWU7IH0KICAgICB3ZWJydGM6OlZpZGVvQ29kZWNUeXBl
IENvZGVjVHlwZSgpIGZpbmFsIHsgcmV0dXJuIHdlYnJ0Yzo6a1ZpZGVvQ29kZWNWUDg7IH0KKyAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyPiBDcmVhdGUoKQor
ICAgIHsKKyAgICAgICAgYXV0byBmYWN0b3J5ID0gR3N0RGVjb2RlckZhY3RvcnkoInZpZGVvL3gt
dnA4Iik7CisKKyAgICAgICAgaWYgKGZhY3RvcnkgJiYgIWdfc3RyY21wMChHU1RfT0JKRUNUX05B
TUUoR1NUX09CSkVDVChmYWN0b3J5LmdldCgpKSksICJ2cDhkZWMiKSkgeworICAgICAgICAgICAg
R1NUX0lORk8oIk91ciBiZXN0IEdTdHJlYW1lciBWUDggZGVjb2RlciBpcyB2cDhkZWMsIGJldHRl
ciB1c2UgdGhlIG9uZSBmcm9tIExpYldlYlJUQyIpOworCisgICAgICAgICAgICByZXR1cm4gc3Rk
Ojp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyPihuZXcgd2VicnRjOjpMaWJ2cHhWcDhE
ZWNvZGVyKCkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjx3
ZWJydGM6OlZpZGVvRGVjb2Rlcj4obmV3IFZQOERlY29kZXIoKSk7CisgICAgfQogfTsKIAogc3Rk
Ojp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyPiBHU3RyZWFtZXJWaWRlb0RlY29kZXJG
YWN0b3J5OjpDcmVhdGVWaWRlb0RlY29kZXIoY29uc3Qgd2VicnRjOjpTZHBWaWRlb0Zvcm1hdCYg
Zm9ybWF0KQogewotICAgIEdTdHJlYW1lclZpZGVvRGVjb2RlciogZGVjOworICAgIHdlYnJ0Yzo6
VmlkZW9EZWNvZGVyKiBkZWM7CiAKICAgICBpZiAoZm9ybWF0Lm5hbWUgPT0gY3JpY2tldDo6a0gy
NjRDb2RlY05hbWUpCiAgICAgICAgIGRlYyA9IG5ldyBIMjY0RGVjb2RlcigpOwogICAgIGVsc2Ug
aWYgKGZvcm1hdC5uYW1lID09IGNyaWNrZXQ6OmtWcDhDb2RlY05hbWUpCi0gICAgICAgIGRlYyA9
IG5ldyBWUDhEZWNvZGVyKCk7CisgICAgICAgIHJldHVybiBWUDhEZWNvZGVyOjpDcmVhdGUoKTsK
ICAgICBlbHNlIHsKICAgICAgICAgR1NUX0VSUk9SKCJDb3VsZCBub3QgY3JlYXRlIGRlY29kZXIg
Zm9yICVzIiwgZm9ybWF0Lm5hbWUuY19zdHIoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJl
YW1lclZpZGVvRW5jb2Rlci5jcHAKaW5kZXggZDYwOTNiOWZkZGEzYTYyYTY1MTRmZWQ1YTgwOTgz
ZDU3ZDg3YjQ5Zi4uZTJlMmQzZTUxNjdlODU4MDg3NzAyYjYxNTVlOTY1MDcyMjhkMzkxMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dT
dHJlYW1lclZpZGVvRW5jb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2Rlci5jcHAKQEAgLTI3NywxMiAr
Mjc3LDYgQEAgc2V0dXBfeDI2NGVuYyAoR09iamVjdCAqIGVuY29kZXIpCiAgIGdzdF91dGlsX3Nl
dF9vYmplY3RfYXJnIChlbmNvZGVyLCAidHVuZSIsICJ6ZXJvbGF0ZW5jeSIpOwogfQogCi1zdGF0
aWMgdm9pZAotc2V0dXBfdnA4ZW5jIChHT2JqZWN0ICogZW5jb2RlcikKLXsKLSAgZ3N0X3ByZXNl
dF9sb2FkX3ByZXNldCAoR1NUX1BSRVNFVCAoZW5jb2RlciksICJQcm9maWxlIFJlYWx0aW1lIik7
Ci19Ci0KIHN0YXRpYyB2b2lkCiBzZXR1cF9vcGVuaDI2NGVuYyAoR09iamVjdCAqKQogewpAQCAt
Mjk1LDEzICsyODksNiBAQCBzZXRfYml0cmF0ZV9rYml0X3Blcl9zZWMgKEdPYmplY3QgKiBlbmNv
ZGVyLCBjb25zdCBnY2hhciAqIHByb3BfbmFtZSwKICAgZ19vYmplY3Rfc2V0IChlbmNvZGVyLCBw
cm9wX25hbWUsIGJpdHJhdGUsIE5VTEwpOwogfQogCi1zdGF0aWMgdm9pZAotc2V0X2JpdHJhdGVf
Yml0X3Blcl9zZWMgKEdPYmplY3QgKiBlbmNvZGVyLCBjb25zdCBnY2hhciAqIHByb3BfbmFtZSwK
LSAgICBnaW50IGJpdHJhdGUpCi17Ci0gIGdfb2JqZWN0X3NldCAoZW5jb2RlciwgcHJvcF9uYW1l
LCBiaXRyYXRlICogS0JJVF9UT19CSVQsIE5VTEwpOwotfQotCiBzdGF0aWMgdm9pZAogZ3N0X3dl
YnJ0Y192aWRlb19lbmNvZGVyX2NsYXNzX2luaXQgKEdzdFdlYnJ0Y1ZpZGVvRW5jb2RlckNsYXNz
ICoga2xhc3MpCiB7CkBAIC0zNDQsOSArMzMxLDYgQEAgZ3N0X3dlYnJ0Y192aWRlb19lbmNvZGVy
X2NsYXNzX2luaXQgKEdzdFdlYnJ0Y1ZpZGVvRW5jb2RlckNsYXNzICoga2xhc3MpCiAgICAgICAi
dmlkZW8veC1oMjY0IiwKICAgICAgICJ2aWRlby94LWgyNjQsYWxpZ25tZW50PWF1LHN0cmVhbS1m
b3JtYXQ9Ynl0ZS1zdHJlYW0scHJvZmlsZT1iYXNlbGluZSIsCiAgICAgICBzZXR1cF9vcGVuaDI2
NGVuYywgImJpdHJhdGUiLCBzZXRfYml0cmF0ZV9rYml0X3Blcl9zZWMsICJnb3Atc2l6ZSIpOwot
ICByZWdpc3Rlcl9rbm93bl9lbmNvZGVyIChFTkNPREVSX1ZQOCwgInZwOGVuYyIsIE5VTEwsICJ2
aWRlby94LXZwOCIsIE5VTEwsCi0gICAgICBzZXR1cF92cDhlbmMsICJ0YXJnZXQtYml0cmF0ZSIs
IHNldF9iaXRyYXRlX2JpdF9wZXJfc2VjLAotICAgICAgImtleWZyYW1lLW1heC1kaXN0Iik7CiB9
CiAKIHN0YXRpYyB2b2lkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9F
bmNvZGVyRmFjdG9yeS5jcHAKaW5kZXggMDY1NDAwNDZmNjgwYTk5Zjc5YWRlNjY3MjIzOTIxNTc1
NGYzZGI4OS4uYWM2NDQ1ZmEwMGM3MWNkZDAxNDQ4MTIwMmZjYmM5ZTkxYzE3OTdkMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJl
YW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcApA
QCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIndlYnJ0Yy9tZWRpYS9iYXNlL2NvZGVjLmgiCiAj
aW5jbHVkZSAid2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY0L2luY2x1ZGUv
aDI2NC5oIgogI2luY2x1ZGUgIndlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvdnA4
L2luY2x1ZGUvdnA4LmgiCisjaW5jbHVkZSAid2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2Nv
ZGVjcy92cDgvbGlidnB4X3ZwOF9lbmNvZGVyLmgiCiAjaW5jbHVkZSAid2VicnRjL21vZHVsZXMv
dmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fY29kZWNfaW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAi
d2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3V0aWxpdHkvc2ltdWxjYXN0X3V0aWxpdHkuaCIK
IApAQCAtNDEwLDExICs0MTEsMTEgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8RnJhbWVEYXRhPiBt
X2ZyYW1lc0RhdGE7CiB9OwogCi1jbGFzcyBIMjY0RW5jb2RlciA6IHB1YmxpYyBHU3RyZWFtZXJW
aWRlb0VuY29kZXIgeworY2xhc3MgR1N0cmVhbWVySDI2NEVuY29kZXIgOiBwdWJsaWMgR1N0cmVh
bWVyVmlkZW9FbmNvZGVyIHsKIHB1YmxpYzoKLSAgICBIMjY0RW5jb2RlcigpIHsgfQorICAgIEdT
dHJlYW1lckgyNjRFbmNvZGVyKCkgeyB9CiAKLSAgICBIMjY0RW5jb2Rlcihjb25zdCB3ZWJydGM6
OlNkcFZpZGVvRm9ybWF0JiBmb3JtYXQpCisgICAgR1N0cmVhbWVySDI2NEVuY29kZXIoY29uc3Qg
d2VicnRjOjpTZHBWaWRlb0Zvcm1hdCYgZm9ybWF0KQogICAgICAgICA6IG1fcGFyc2VyKGdzdF9o
MjY0X25hbF9wYXJzZXJfbmV3KCkpCiAgICAgICAgICwgcGFja2V0aXphdGlvbk1vZGUod2VicnRj
OjpIMjY0UGFja2V0aXphdGlvbk1vZGU6Ok5vbkludGVybGVhdmVkKQogICAgIHsKQEAgLTUwOCwx
MCArNTA5LDEwIEBAIHB1YmxpYzoKICAgICB3ZWJydGM6OkgyNjRQYWNrZXRpemF0aW9uTW9kZSBw
YWNrZXRpemF0aW9uTW9kZTsKIH07CiAKLWNsYXNzIFZQOEVuY29kZXIgOiBwdWJsaWMgR1N0cmVh
bWVyVmlkZW9FbmNvZGVyIHsKK2NsYXNzIEdTdHJlYW1lclZQOEVuY29kZXIgOiBwdWJsaWMgR1N0
cmVhbWVyVmlkZW9FbmNvZGVyIHsKIHB1YmxpYzoKLSAgICBWUDhFbmNvZGVyKCkgeyB9Ci0gICAg
VlA4RW5jb2Rlcihjb25zdCB3ZWJydGM6OlNkcFZpZGVvRm9ybWF0JikgeyB9CisgICAgR1N0cmVh
bWVyVlA4RW5jb2RlcigpIHsgfQorICAgIEdTdHJlYW1lclZQOEVuY29kZXIoY29uc3Qgd2VicnRj
OjpTZHBWaWRlb0Zvcm1hdCYpIHsgfQogICAgIGNvbnN0IGdjaGFyKiBDYXBzKCkgZmluYWwgeyBy
ZXR1cm4gInZpZGVvL3gtdnA4IjsgfQogICAgIGNvbnN0IGdjaGFyKiBOYW1lKCkgZmluYWwgeyBy
ZXR1cm4gY3JpY2tldDo6a1ZwOENvZGVjTmFtZTsgfQogICAgIHdlYnJ0Yzo6VmlkZW9Db2RlY1R5
cGUgQ29kZWNUeXBlKCkgZmluYWwgeyByZXR1cm4gd2VicnRjOjprVmlkZW9Db2RlY1ZQODsgfQpA
QCAtNTM1LDExICs1MzYsMjIgQEAgcHVibGljOgogCiBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpW
aWRlb0VuY29kZXI+IEdTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRW5j
b2Rlcihjb25zdCB3ZWJydGM6OlNkcFZpZGVvRm9ybWF0JiBmb3JtYXQpCiB7Ci0gICAgaWYgKGZv
cm1hdC5uYW1lID09IGNyaWNrZXQ6OmtWcDhDb2RlY05hbWUpCi0gICAgICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPFZQOEVuY29kZXI+KGZvcm1hdCk7CisgICAgaWYgKGZvcm1hdC5uYW1lID09
IGNyaWNrZXQ6OmtWcDhDb2RlY05hbWUpIHsKKyAgICAgICAgR1JlZlB0cjxHc3RFbGVtZW50PiB3
ZWJydGNlbmNvZGVyID0gYWRvcHRHUmVmKEdTVF9FTEVNRU5UKGdfb2JqZWN0X3JlZl9zaW5rKGdz
dF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgid2VicnRjdmlkZW9lbmNvZGVyIiwgTlVMTCkpKSk7Cisg
ICAgICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gZW5jb2RlciA9IG51bGxwdHI7CisKKyAgICAgICAg
Z19vYmplY3Rfc2V0KHdlYnJ0Y2VuY29kZXIuZ2V0KCksICJmb3JtYXQiLCBhZG9wdEdSZWYoZ3N0
X2NhcHNfZnJvbV9zdHJpbmcoInZpZGVvL3gtdnA4IikpLmdldCgpLCBOVUxMKTsKKyAgICAgICAg
Z19vYmplY3RfZ2V0KHdlYnJ0Y2VuY29kZXIuZ2V0KCksICJlbmNvZGVyIiwgJmVuY29kZXIub3V0
UHRyKCksIE5VTEwpOworCisgICAgICAgIGlmIChlbmNvZGVyKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8R1N0cmVhbWVyVlA4RW5jb2Rlcj4oZm9ybWF0KTsKKworICAgICAg
ICBHU1RfSU5GTygiVXNpbmcgVlA4IEVuY29kZXIgZnJvbSBMaWJXZWJSVEMuIik7CisgICAgICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPHdlYnJ0Yzo6TGlidnB4VnA4RW5jb2Rlcj4oKTsKKyAg
ICB9CiAKICAgICBpZiAoZm9ybWF0Lm5hbWUgPT0gY3JpY2tldDo6a0gyNjRDb2RlY05hbWUpCi0g
ICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEgyNjRFbmNvZGVyPihmb3JtYXQpOworICAg
ICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHU3RyZWFtZXJIMjY0RW5jb2Rlcj4oZm9ybWF0
KTsKIAogICAgIHJldHVybiBudWxscHRyOwogfQpAQCAtNTU4LDggKzU3MCw4IEBAIHN0ZDo6dmVj
dG9yPHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQ+IEdTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rvcnk6
OkdldFN1cHBvcnRlZEZvCiB7CiAgICAgc3RkOjp2ZWN0b3I8d2VicnRjOjpTZHBWaWRlb0Zvcm1h
dD4gc3VwcG9ydGVkQ29kZWNzOwogCi0gICAgVlA4RW5jb2RlcigpLkFkZENvZGVjSWZTdXBwb3J0
ZWQoJnN1cHBvcnRlZENvZGVjcyk7Ci0gICAgSDI2NEVuY29kZXIoKS5BZGRDb2RlY0lmU3VwcG9y
dGVkKCZzdXBwb3J0ZWRDb2RlY3MpOworICAgIHN1cHBvcnRlZENvZGVjcy5wdXNoX2JhY2sod2Vi
cnRjOjpTZHBWaWRlb0Zvcm1hdChjcmlja2V0OjprVnA4Q29kZWNOYW1lKSk7CisgICAgR1N0cmVh
bWVySDI2NEVuY29kZXIoKS5BZGRDb2RlY0lmU3VwcG9ydGVkKCZzdXBwb3J0ZWRDb2RlY3MpOwog
CiAgICAgcmV0dXJuIHN1cHBvcnRlZENvZGVjczsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>