<?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>213825</bug_id>
          
          <creation_ts>2020-06-30 18:46:55 -0700</creation_ts>
          <short_desc>Allow the File object to be created with a replacement file</short_desc>
          <delta_ts>2020-07-01 20:10:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Images</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>
          
          <blocked>213347</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mifenton</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1667812</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-06-30 18:46:55 -0700</bug_when>
    <thetext>This work is towards bug 213347.

The goal is to enable the UIProcess to pass an original path and an optional replacement path to the WebProcess, e.g. a HIEF image and its transcoded PNG image. The Web process will create the File object with the replacement file but will register the Blob in the NetworkProcess with both: the original file and the replacement file. The Blob in the NetworkProcess will delete the replacement file when it is destroyed.

It is important to create the File object with the replacement file because it needs to get the size and the bytes of the replacement file not the original files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667821</commentid>
    <comment_count>1</comment_count>
      <attachid>403259</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-06-30 19:53:55 -0700</bug_when>
    <thetext>Created attachment 403259
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667984</commentid>
    <comment_count>2</comment_count>
      <attachid>403259</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-01 10:04:11 -0700</bug_when>
    <thetext>Comment on attachment 403259
Patch

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

&quot;objet&quot; -&gt; &quot;object&quot;

&gt; Source/WebCore/ChangeLog:3
&gt; +        Allow the File objet to be created with a replacement file

type: &quot;objet&quot;

Am I correct that this adds unused code, to be used later? Is that why there is no test coverage?

&gt; Source/WebCore/ChangeLog:14
&gt; +        t is important to create the File object with the replacement file because

typo: &quot;t&quot;

&gt; Source/WebCore/fileapi/File.cpp:59
&gt; +    return adoptRef(*new File(WTFMove(internalURL), WTFMove(type), String { effectivePath }, WTFMove(name)));

Why not WTFMove(effectivePath)?

&gt; Source/WebCore/fileapi/File.h:45
&gt; -    WEBCORE_EXPORT static Ref&lt;File&gt; create(const String&amp; path, const String&amp; nameOverride = { });
&gt; +    WEBCORE_EXPORT static Ref&lt;File&gt; create(const String&amp; path, const String&amp; replacementPath = { }, const String&amp; nameOverride = { });

With this change, we have to inspect every File::create call site, because anyone specifying a nameOverride might now be specifying a replacementPath instead by accident. I presume you did that. This is the kind of refactoring that is risky since it silently changes the behavior of existing code.

&gt; Source/WebCore/platform/FileChooser.h:54
&gt; -    FileChooserFileInfo(const String&amp; path, const String&amp; displayName = String())
&gt; +    FileChooserFileInfo(const String&amp; path, const String&amp; replacementPath = { }, const String&amp; displayName = { })
&gt;          : path(path)
&gt; +        , replacementPath(replacementPath)
&gt;          , displayName(displayName)
&gt;      {
&gt;      }

Why do we need a constructor? Can’t we delete it and just use aggregate initialization instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668047</commentid>
    <comment_count>3</comment_count>
      <attachid>403259</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-07-01 13:20:27 -0700</bug_when>
    <thetext>Comment on attachment 403259
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:3
&gt;&gt; +        Allow the File objet to be created with a replacement file
&gt; 
&gt; type: &quot;objet&quot;
&gt; 
&gt; Am I correct that this adds unused code, to be used later? Is that why there is no test coverage?

The typo is fixed. You are right this patch is work towards webkit.org/b/213347. I added this to the ChangeLog.

&gt;&gt; Source/WebCore/ChangeLog:14
&gt;&gt; +        t is important to create the File object with the replacement file because
&gt; 
&gt; typo: &quot;t&quot;

Fixed.

&gt;&gt; Source/WebCore/fileapi/File.cpp:59
&gt;&gt; +    return adoptRef(*new File(WTFMove(internalURL), WTFMove(type), String { effectivePath }, WTFMove(name)));
&gt; 
&gt; Why not WTFMove(effectivePath)?

Fixed.

&gt;&gt; Source/WebCore/fileapi/File.h:45
&gt;&gt; +    WEBCORE_EXPORT static Ref&lt;File&gt; create(const String&amp; path, const String&amp; replacementPath = { }, const String&amp; nameOverride = { });
&gt; 
&gt; With this change, we have to inspect every File::create call site, because anyone specifying a nameOverride might now be specifying a replacementPath instead by accident. I presume you did that. This is the kind of refactoring that is risky since it silently changes the behavior of existing code.

Yes I did that by removing the default values for both replacementPath and nameOverride from the create() method. Then I fixed all compilation errors. And finally I put back the default values and removed the unnecessary initializations in the caller side. This way I made sure nameOverride was never passed as the second argument.

&gt;&gt; Source/WebCore/platform/FileChooser.h:54
&gt;&gt;      }
&gt; 
&gt; Why do we need a constructor? Can’t we delete it and just use aggregate initialization instead?

Fixed. But I had to pass three values always in the aggregate initialization because I was getting this error in the caller side:

error: missing field &apos;replacementPath&apos; initializer [-Werror,-Wmissing-field-initializers]

I am not sure whether -Wmissing-field-initializers is enabled by default or this is WebKit Xcode project settings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668048</commentid>
    <comment_count>4</comment_count>
      <attachid>403314</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-07-01 13:21:36 -0700</bug_when>
    <thetext>Created attachment 403314
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668056</commentid>
    <comment_count>5</comment_count>
      <attachid>403316</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-07-01 13:44:00 -0700</bug_when>
    <thetext>Created attachment 403316
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668063</commentid>
    <comment_count>6</comment_count>
      <attachid>403316</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-01 14:20:42 -0700</bug_when>
    <thetext>Comment on attachment 403316
Patch

Many of the places we have nullString() here we could alternatively have { }.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668076</commentid>
    <comment_count>7</comment_count>
      <attachid>403322</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-07-01 14:58:04 -0700</bug_when>
    <thetext>Created attachment 403322
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668130</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-01 20:09:01 -0700</bug_when>
    <thetext>Committed r263830: &lt;https://trac.webkit.org/changeset/263830&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 403322.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668131</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-01 20:10:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/65015820&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403259</attachid>
            <date>2020-06-30 19:53:55 -0700</date>
            <delta_ts>2020-07-01 13:21:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213825-20200630195354.patch</filename>
            <type>text/plain</type>
            <size>35143</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MzY2NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTA2LTMwICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgdGhl
IEZpbGUgb2JqZXQgdG8gYmUgY3JlYXRlZCB3aXRoIGEgcmVwbGFjZW1lbnQgZmlsZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzODI1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIEZpbGUgb2JqZWN0
IGNhbiBiZSBjcmVhdGVkIHdpdGggYW4gb3B0aW9uYWwgcmVwbGFjZW1lbnQgZmlsZS4gT25seQor
ICAgICAgICB0aGUgcmVnaXN0ZXJlZCBCbG9iRGF0YUZpbGVSZWZlcmVuY2Ugd2lsbCBiZSBjcmVh
dGVkIHdpdGggYm90aCB0aGUgb3JpZ2luYWwKKyAgICAgICAgZmlsZSBwYXRoIGFuZCB0aGUgcmVw
bGFjZW1lbnQgZmlsZSBwYXRoLiBTbyBpdCBjYW4gZGVsZXRlIHRoZSByZXBsYWNlbWVudAorICAg
ICAgICBmaWxlIHdoZW4gaXQgaXMgZGVzdHJveWVkLiBPdGhlcndpc2UgQmxvYkRhdGFGaWxlUmVm
ZXJlbmNlIHdpbGwgYmUgY3JlYXRlZAorICAgICAgICB3aXRoIHRoZSByZXBsYWNlbWVudCBmaWxl
IHBhdGguCisKKyAgICAgICAgdCBpcyBpbXBvcnRhbnQgdG8gY3JlYXRlIHRoZSBGaWxlIG9iamVj
dCB3aXRoIHRoZSByZXBsYWNlbWVudCBmaWxlIGJlY2F1c2UKKyAgICAgICAgaXQgbmVlZHMgdG8g
Z2V0IHRoZSBtZXRhLWRhdGEgYW5kIHRoZSBieXRlcyBvZiB0aGUgcmVwbGFjZW1lbnQgZmlsZSBu
b3QKKyAgICAgICAgdGhlIG9yaWdpbmFsIGZpbGVzLgorCisgICAgICAgICogZmlsZWFwaS9GaWxl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGU6OmNyZWF0ZSk6CisgICAgICAgICogZmlsZWFw
aS9GaWxlLmg6CisgICAgICAgICogZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyRmlsZUJs
b2JVUkwpOgorICAgICAgICAqIGZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oOgorICAg
ICAgICAqIGh0bWwvRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZUZpbGVMaXN0KToKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6ZmlsZXNGcm9tRm9ybUNvbnRyb2xTdGF0
ZSk6CisgICAgICAgIFdoZW4gdGhlIEZpbGVzIGFyZSBjcmVhdGVkIGZyb20gYSBGb3JtQ29udHJv
bFN0YXRlLCB0aGV5IHdpbGwgYmUgY3JlYXRlZAorICAgICAgICB3aXRob3V0IHJlcGxhY2VtZW50
IGZpbGVzIHNpbmNlIHRoZXkgbWlnaHQgaGF2ZSBiZWVuIGRlbGV0ZWQuCisKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9G
aWxlQ2hvb3Nlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlQ2hvb3Nlcjo6Y2hvb3NlRmls
ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlQ2hvb3NlckZpbGVJbmZvOjpGaWxlQ2hvb3NlckZpbGVJbmZvKToKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVDaG9vc2VyOjpjaG9vc2VGaWxlcyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmxvYkRh
dGFGaWxlUmVmZXJlbmNlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlOjp+QmxvYkRhdGFGaWxlUmVmZXJlbmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkJsb2JEYXRhRmlsZVJlZmVyZW5jZTo6cGF0aCk6CisgICAgICAgIChXZWJD
b3JlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2U6OnN0YXJ0VHJhY2tpbmdNb2RpZmljYXRpb25zKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5Lmg6CisKIDIwMjAtMDYtMjkgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBPbiBsb2FkIGZyb20gYmFj
ay9mb3J3YXJkIGNhY2hlLCBjYWxsIGNoZWNrQ29tcGxldGVkKCkgZm9yIEFMTCBmcmFtZXMgaW5z
aWRlIEZyYW1lTG9hZGVyOjpjb21taXRQcm92aXNpb25hbExvYWQoKQpJbmRleDogU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9GaWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0ZpbGUuY3BwCShyZXZpc2lvbiAyNjM2NjYpCisrKyBTb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0ZpbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NiwxNiArNDYsMTcgQEAgUmVmPEZpbGU+IEZp
bGU6OmNyZWF0ZVdpdGhSZWxhdGl2ZVBhdGgoYwogICAgIHJldHVybiBmaWxlOwogfQogCi1SZWY8
RmlsZT4gRmlsZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBuYW1l
T3ZlcnJpZGUpCitSZWY8RmlsZT4gRmlsZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aCwgY29u
c3QgU3RyaW5nJiByZXBsYWNlbWVudFBhdGgsIGNvbnN0IFN0cmluZyYgbmFtZU92ZXJyaWRlKQog
ewogICAgIFN0cmluZyBuYW1lOwogICAgIFN0cmluZyB0eXBlOwotICAgIGNvbXB1dGVOYW1lQW5k
Q29udGVudFR5cGUocGF0aCwgbmFtZU92ZXJyaWRlLCBuYW1lLCB0eXBlKTsKKyAgICBTdHJpbmcg
ZWZmZWN0aXZlUGF0aCA9ICFyZXBsYWNlbWVudFBhdGguaXNOdWxsKCkgPyByZXBsYWNlbWVudFBh
dGggOiBwYXRoOworICAgIGNvbXB1dGVOYW1lQW5kQ29udGVudFR5cGUoZWZmZWN0aXZlUGF0aCwg
bmFtZU92ZXJyaWRlLCBuYW1lLCB0eXBlKTsKIAogICAgIGF1dG8gaW50ZXJuYWxVUkwgPSBCbG9i
VVJMOjpjcmVhdGVJbnRlcm5hbFVSTCgpOwotICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJl
Z2lzdGVyRmlsZUJsb2JVUkwoaW50ZXJuYWxVUkwsIHBhdGgsIHR5cGUpOworICAgIFRocmVhZGFi
bGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyRmlsZUJsb2JVUkwoaW50ZXJuYWxVUkwsIHBhdGgsIHJl
cGxhY2VtZW50UGF0aCwgdHlwZSk7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlKFdU
Rk1vdmUoaW50ZXJuYWxVUkwpLCBXVEZNb3ZlKHR5cGUpLCBTdHJpbmcgeyBwYXRoIH0sIFdURk1v
dmUobmFtZSkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlKFdURk1vdmUoaW50ZXJu
YWxVUkwpLCBXVEZNb3ZlKHR5cGUpLCBTdHJpbmcgeyBlZmZlY3RpdmVQYXRoIH0sIFdURk1vdmUo
bmFtZSkpKTsKIH0KIAogRmlsZTo6RmlsZShVUkwmJiB1cmwsIFN0cmluZyYmIHR5cGUsIFN0cmlu
ZyYmIHBhdGgsIFN0cmluZyYmIG5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Zp
bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaAkocmV2aXNp
b24gMjYzNjY2KQorKysgU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogICAgIH07CiAKICAgICAvLyBDcmVhdGUgYSBm
aWxlIHdpdGggYW4gb3B0aW9uYWwgbmFtZSBleHBvc2VkIHRvIHRoZSBhdXRob3IgKHZpYSBGaWxl
Lm5hbWUgYW5kIGFzc29jaWF0ZWQgRE9NIHByb3BlcnRpZXMpIHRoYXQgZGlmZmVycyBmcm9tIHRo
ZSBvbmUgcHJvdmlkZWQgaW4gdGhlIHBhdGguCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJl
ZjxGaWxlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIG5hbWVPdmVy
cmlkZSA9IHsgfSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGaWxlPiBjcmVhdGUo
Y29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50UGF0aCA9IHsgfSwg
Y29uc3QgU3RyaW5nJiBuYW1lT3ZlcnJpZGUgPSB7IH0pOwogCiAgICAgLy8gQ3JlYXRlIGEgRmls
ZSB1c2luZyB0aGUgJ25ldyBGaWxlJyBjb25zdHJ1Y3Rvci4KICAgICBzdGF0aWMgUmVmPEZpbGU+
IGNyZWF0ZShWZWN0b3I8QmxvYlBhcnRWYXJpYW50PiYmIGJsb2JQYXJ0VmFyaWFudHMsIGNvbnN0
IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFByb3BlcnR5QmFnJiBwcm9wZXJ0eUJhZykKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNw
cAkocmV2aXNpb24gMjYzNjY2KQorKysgU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxl
QmxvYlJlZ2lzdHJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQsMTUgKzY0LDE3IEBAIHN0YXRp
YyBUaHJlYWRTcGVjaWZpYzxCbG9iVXJsT3JpZ2luTWFwPiYKICAgICByZXR1cm4gKm1hcDsKIH0K
IAotdm9pZCBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0
IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUp
Cit2b2lkIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFBh
dGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCiB7CisgICAgU3RyaW5nIGVmZmVjdGl2ZVBh
dGggPSAhcmVwbGFjZW1lbnRQYXRoLmlzTnVsbCgpID8gcmVwbGFjZW1lbnRQYXRoIDogcGF0aDsK
KwogICAgIGlmIChpc01haW5UaHJlYWQoKSkgewotICAgICAgICBibG9iUmVnaXN0cnkoKS5yZWdp
c3RlckZpbGVCbG9iVVJMKHVybCwgQmxvYkRhdGFGaWxlUmVmZXJlbmNlOjpjcmVhdGUocGF0aCks
IGNvbnRlbnRUeXBlKTsKKyAgICAgICAgYmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJGaWxlQmxvYlVS
TCh1cmwsIEJsb2JEYXRhRmlsZVJlZmVyZW5jZTo6Y3JlYXRlKGVmZmVjdGl2ZVBhdGgpLCBwYXRo
LCBjb250ZW50VHlwZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjYWxsT25NYWlu
VGhyZWFkKFt1cmwgPSB1cmwuaXNvbGF0ZWRDb3B5KCksIHBhdGggPSBwYXRoLmlzb2xhdGVkQ29w
eSgpLCBjb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlLmlzb2xhdGVkQ29weSgpXSB7Ci0gICAgICAg
IGJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyRmlsZUJsb2JVUkwodXJsLCBCbG9iRGF0YUZpbGVSZWZl
cmVuY2U6OmNyZWF0ZShwYXRoKSwgY29udGVudFR5cGUpOworICAgIGNhbGxPbk1haW5UaHJlYWQo
W3VybCA9IHVybC5pc29sYXRlZENvcHkoKSwgZWZmZWN0aXZlUGF0aCA9IGVmZmVjdGl2ZVBhdGgu
aXNvbGF0ZWRDb3B5KCksIHBhdGggPSBwYXRoLmlzb2xhdGVkQ29weSgpLCBjb250ZW50VHlwZSA9
IGNvbnRlbnRUeXBlLmlzb2xhdGVkQ29weSgpXSB7CisgICAgICAgIGJsb2JSZWdpc3RyeSgpLnJl
Z2lzdGVyRmlsZUJsb2JVUkwodXJsLCBCbG9iRGF0YUZpbGVSZWZlcmVuY2U6OmNyZWF0ZShlZmZl
Y3RpdmVQYXRoKSwgcGF0aCwgY29udGVudFR5cGUpOwogICAgIH0pOwogfQogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuaAkocmV2aXNp
b24gMjYzNjY2KQorKysgU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lz
dHJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgU2VjdXJpdHlPcmln
aW47CiAKIGNsYXNzIFRocmVhZGFibGVCbG9iUmVnaXN0cnkgewogcHVibGljOgotICAgIHN0YXRp
YyB2b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBwYXRo
LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlckZp
bGVCbG9iVVJMKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBy
ZXBsYWNlbWVudFBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpOwogICAgIHN0YXRpYyB2
b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmLCBWZWN0b3I8QmxvYlBhcnQ+JiYgYmxvYlBh
cnRzLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rl
ckJsb2JVUkwoU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCk7
CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29u
c3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgZmlsZUJhY2tlZFBhdGgs
IGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9E
aXJlY3RvcnlGaWxlTGlzdENyZWF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmNwcAkocmV2aXNpb24gMjYzNjY2KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9EaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02NCw3ICs2NCw3IEBAIHN0YXRpYyBSZWY8RmlsZUxpc3Q+IGNyZWF0ZUZpbGVM
aXN0KGNvbnMKICAgICAgICAgaWYgKEZpbGVTeXN0ZW06OmZpbGVJc0RpcmVjdG9yeShpbmZvLnBh
dGgsIEZpbGVTeXN0ZW06OlNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6Ok5vKSkKICAgICAgICAg
ICAgIGFwcGVuZERpcmVjdG9yeUZpbGVzKGluZm8ucGF0aCwgRmlsZVN5c3RlbTo6cGF0aEdldEZp
bGVOYW1lKGluZm8ucGF0aCksIGZpbGVPYmplY3RzKTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgZmlsZU9iamVjdHMuYXBwZW5kKEZpbGU6OmNyZWF0ZShpbmZvLnBhdGgsIGluZm8uZGlzcGxh
eU5hbWUpKTsKKyAgICAgICAgICAgIGZpbGVPYmplY3RzLmFwcGVuZChGaWxlOjpjcmVhdGUoaW5m
by5wYXRoLCBudWxsU3RyaW5nKCksIGluZm8uZGlzcGxheU5hbWUpKTsKICAgICB9CiAgICAgcmV0
dXJuIEZpbGVMaXN0OjpjcmVhdGUoV1RGTW92ZShmaWxlT2JqZWN0cykpOwogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCShyZXZpc2lvbiAyNjM2NjYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcs
NyArMTE3LDcgQEAgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+IEZpbGVJbnB1dFR5cAogICAg
IGZpbGVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc2l6ZSAvIDIpOwogICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgc2l6ZTsgaSArPSAyKSB7CiAgICAgICAgIGlmICghc3RhdGVbaSArIDFdLmlz
RW1wdHkoKSkKLSAgICAgICAgICAgIGZpbGVzLnVuY2hlY2tlZEFwcGVuZCh7IHN0YXRlW2ldLCBz
dGF0ZVtpICsgMV0gfSk7CisgICAgICAgICAgICBmaWxlcy51bmNoZWNrZWRBcHBlbmQoeyBzdGF0
ZVtpXSwgbnVsbFN0cmluZygpLCBzdGF0ZVtpICsgMV0gfSk7CiAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgIGZpbGVzLnVuY2hlY2tlZEFwcGVuZCh7IHN0YXRlW2ldIH0pOwogICAgIH0KQEAgLTQx
NCw3ICs0MTQsNyBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKGNvbnN0IFZlCiAK
ICAgICBpZiAoIWFsbG93c0RpcmVjdG9yaWVzKCkpIHsKICAgICAgICAgYXV0byBmaWxlcyA9IHBh
dGhzLm1hcChbXShhdXRvJiBmaWxlSW5mbykgewotICAgICAgICAgICAgcmV0dXJuIEZpbGU6OmNy
ZWF0ZShmaWxlSW5mby5wYXRoLCBmaWxlSW5mby5kaXNwbGF5TmFtZSk7CisgICAgICAgICAgICBy
ZXR1cm4gRmlsZTo6Y3JlYXRlKGZpbGVJbmZvLnBhdGgsIGZpbGVJbmZvLnJlcGxhY2VtZW50UGF0
aCwgZmlsZUluZm8uZGlzcGxheU5hbWUpOwogICAgICAgICB9KTsKICAgICAgICAgZGlkQ3JlYXRl
RmlsZUxpc3QoRmlsZUxpc3Q6OmNyZWF0ZShXVEZNb3ZlKGZpbGVzKSksIGljb24pOwogICAgICAg
ICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwCShy
ZXZpc2lvbiAyNjM2NjYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBGaWxlQ2hvb3Nlcjo6Y2hv
b3NlRmlsZShjb25zdCBTdHJpbgogICAgIGNob29zZUZpbGVzKGZpbGVuYW1lcyk7CiB9CiAKLXZv
aWQgRmlsZUNob29zZXI6OmNob29zZUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFt
ZXMpCit2b2lkIEZpbGVDaG9vc2VyOjpjaG9vc2VGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
ZmlsZW5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcmVwbGFjZW1lbnROYW1lcykKIHsKICAg
ICAvLyBGSVhNRTogVGhpcyBpcyBpbmVsZWdhbnQuIFdlIHNob3VsZCBub3QgYmUgbG9va2luZyBh
dCBzZXR0aW5ncyBoZXJlLgogICAgIGlmIChtX3NldHRpbmdzLnNlbGVjdGVkRmlsZXMgPT0gZmls
ZW5hbWVzKQpAQCAtNjgsOCArNjgsOCBAQCB2b2lkIEZpbGVDaG9vc2VyOjpjaG9vc2VGaWxlcyhj
b25zdCBWZWN0CiAgICAgICAgIHJldHVybjsKIAogICAgIFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJ
bmZvPiBmaWxlczsKLSAgICBmb3IgKGF1dG8mIGZpbGVuYW1lIDogZmlsZW5hbWVzKQotICAgICAg
ICBmaWxlcy5hcHBlbmQoRmlsZUNob29zZXJGaWxlSW5mbyhmaWxlbmFtZSkpOworICAgIGZvciAo
c2l6ZV90IGkgPSAwLCBzaXplID0gZmlsZW5hbWVzLnNpemUoKTsgaSA8IHNpemU7ICsraSkKKyAg
ICAgICAgZmlsZXMuYXBwZW5kKEZpbGVDaG9vc2VyRmlsZUluZm8oZmlsZW5hbWVzW2ldLCBpIDwg
cmVwbGFjZW1lbnROYW1lcy5zaXplKCkgPyByZXBsYWNlbWVudE5hbWVzW2ldIDogbnVsbFN0cmlu
ZygpKSk7CiAgICAgbV9jbGllbnQtPmZpbGVzQ2hvc2VuKGZpbGVzKTsKIH0KIApJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oCShyZXZpc2lvbiAyNjM2NjYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw4
ICs0Niw5IEBAIGNsYXNzIEZpbGVDaG9vc2VyOwogY2xhc3MgSWNvbjsKIAogc3RydWN0IEZpbGVD
aG9vc2VyRmlsZUluZm8gewotICAgIEZpbGVDaG9vc2VyRmlsZUluZm8oY29uc3QgU3RyaW5nJiBw
YXRoLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lID0gU3RyaW5nKCkpCisgICAgRmlsZUNob29z
ZXJGaWxlSW5mbyhjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRQ
YXRoID0geyB9LCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lID0geyB9KQogICAgICAgICA6IHBh
dGgocGF0aCkKKyAgICAgICAgLCByZXBsYWNlbWVudFBhdGgocmVwbGFjZW1lbnRQYXRoKQogICAg
ICAgICAsIGRpc3BsYXlOYW1lKGRpc3BsYXlOYW1lKQogICAgIHsKICAgICB9CkBAIC01OCw2ICs1
OSw3IEBAIHN0cnVjdCBGaWxlQ2hvb3NlckZpbGVJbmZvIHsKICAgICB9CiAKICAgICBjb25zdCBT
dHJpbmcgcGF0aDsKKyAgICBjb25zdCBTdHJpbmcgcmVwbGFjZW1lbnRQYXRoOwogICAgIGNvbnN0
IFN0cmluZyBkaXNwbGF5TmFtZTsKIH07CiAKQEAgLTg3LDcgKzg5LDcgQEAgcHVibGljOgogICAg
IHZvaWQgaW52YWxpZGF0ZSgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjaG9vc2VGaWxl
KGNvbnN0IFN0cmluZyYgcGF0aCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjaG9vc2VGaWxl
cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
Y2hvb3NlRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgcmVwbGFjZW1lbnRQYXRocyA9IHsgfSk7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBpcyBhbG1vc3QgaWRlbnRpY2FsIHRvIEZpbGVD
aG9vc2VyOjpjaG9vc2VGaWxlcygpLiBXZSBzaG91bGQgbWVyZ2UgdGhpcwogICAgIC8vIGZ1bmN0
aW9uIHdpdGggRmlsZUNob29zZXI6OmNob29zZUZpbGVzKCkgYW5kIGhlbmNlIHJlbW92ZSB0aGUg
UExBVEZPUk0oSU9TX0ZBTUlMWSktZ3VhcmQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuY3BwCShyZXZp
c2lvbiAyNjM2NjYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRh
RmlsZVJlZmVyZW5jZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDE3ICszMiwxNiBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLUJsb2JEYXRhRmlsZVJlZmVyZW5jZTo6QmxvYkRhdGFGaWxl
UmVmZXJlbmNlKGNvbnN0IFN0cmluZyYgcGF0aCkKK0Jsb2JEYXRhRmlsZVJlZmVyZW5jZTo6Qmxv
YkRhdGFGaWxlUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiByZXBs
YWNlbWVudFBhdGgpCiAgICAgOiBtX3BhdGgocGF0aCkKKyAgICAsIG1fcmVwbGFjZW1lbnRQYXRo
KHJlcGxhY2VtZW50UGF0aCkKIHsKIH0KIAogQmxvYkRhdGFGaWxlUmVmZXJlbmNlOjp+QmxvYkRh
dGFGaWxlUmVmZXJlbmNlKCkKIHsKLSNpZiBFTkFCTEUoRklMRV9SRVBMQUNFTUVOVCkKICAgICBp
ZiAoIW1fcmVwbGFjZW1lbnRQYXRoLmlzTnVsbCgpKQogICAgICAgICBGaWxlU3lzdGVtOjpkZWxl
dGVGaWxlKG1fcmVwbGFjZW1lbnRQYXRoKTsKLSNlbmRpZgogfQogCiBjb25zdCBTdHJpbmcmIEJs
b2JEYXRhRmlsZVJlZmVyZW5jZTo6cGF0aCgpCkBAIC01MCwxMCArNDksOSBAQCBjb25zdCBTdHJp
bmcmIEJsb2JEYXRhRmlsZVJlZmVyZW5jZTo6cGF0CiAjaWYgRU5BQkxFKEZJTEVfUkVQTEFDRU1F
TlQpCiAgICAgaWYgKG1fcmVwbGFjZW1lbnRTaG91bGRCZUdlbmVyYXRlZCkKICAgICAgICAgZ2Vu
ZXJhdGVSZXBsYWNlbWVudEZpbGUoKTsKLQorI2VuZGlmCiAgICAgaWYgKCFtX3JlcGxhY2VtZW50
UGF0aC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIG1fcmVwbGFjZW1lbnRQYXRoOwotI2VuZGlm
CiAKICAgICByZXR1cm4gbV9wYXRoOwogfQpAQCAtMTAxLDYgKzk5LDEzIEBAIHZvaWQgQmxvYkRh
dGFGaWxlUmVmZXJlbmNlOjpzdGFydFRyYWNraW4KICAgICAgICAgcmV0dXJuOwogI2VuZGlmCiAK
KyAgICAvLyBUaGlzIGlzIGEgcmVnaXN0ZXJlZCBibG9iIHdpdGggYSByZXBsYWNlbWVudCBmaWxl
LiBHZXQgdGhlIE1ldGFkYXRhIG9mIHRoZSByZXBsYWNlbWVudCBmaWxlLgorICAgIGlmICghbV9y
ZXBsYWNlbWVudFBhdGguaXNOdWxsKCkpIHsKKyAgICAgICAgbWV0YWRhdGEgPSBGaWxlU3lzdGVt
OjpmaWxlTWV0YWRhdGFGb2xsb3dpbmdTeW1saW5rcyhtX3JlcGxhY2VtZW50UGF0aCk7CisgICAg
ICAgIGlmICghbWV0YWRhdGEpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgbV9z
aXplID0gbWV0YWRhdGEudmFsdWUoKS5sZW5ndGg7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuaAko
cmV2aXNpb24gMjYzNjY2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9i
RGF0YUZpbGVSZWZlcmVuY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsOSArMzUsOSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEJsb2JEYXRhRmlsZVJlZmVy
ZW5jZSA6IHB1YmxpYyBSZWZDb3VudGVkPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4gewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiBjcmVhdGUoY29uc3QgU3Ry
aW5nJiBwYXRoKQorICAgIHN0YXRpYyBSZWY8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiBjcmVhdGUo
Y29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50UGF0aCA9IHsgfSkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJsb2JEYXRhRmlsZVJlZmVyZW5j
ZShwYXRoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJsb2JEYXRhRmlsZVJlZmVy
ZW5jZShwYXRoLCByZXBsYWNlbWVudFBhdGgpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5CbG9i
RGF0YUZpbGVSZWZlcmVuY2UoKTsKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCByZXZva2VGaWxlQWNjZXNzKCk7CiAKIHByb3RlY3RlZDoKLSAgICBCbG9iRGF0YUZp
bGVSZWZlcmVuY2UoY29uc3QgU3RyaW5nJiBwYXRoKTsKKyAgICBCbG9iRGF0YUZpbGVSZWZlcmVu
Y2UoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50UGF0aCk7CiAK
IHByaXZhdGU6CiAjaWYgRU5BQkxFKEZJTEVfUkVQTEFDRU1FTlQpCkBAIC02MCw4ICs2MCw4IEBA
IHByaXZhdGU6CiAjZW5kaWYKIAogICAgIFN0cmluZyBtX3BhdGg7Ci0jaWYgRU5BQkxFKEZJTEVf
UkVQTEFDRU1FTlQpCiAgICAgU3RyaW5nIG1fcmVwbGFjZW1lbnRQYXRoOworI2lmIEVOQUJMRShG
SUxFX1JFUExBQ0VNRU5UKQogICAgIGJvb2wgbV9yZXBsYWNlbWVudFNob3VsZEJlR2VuZXJhdGVk
IHsgZmFsc2UgfTsKICNlbmRpZgogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtX3NpemUgeyAwIH07
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5
LmgJKHJldmlzaW9uIDI2MzY2NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
QmxvYlJlZ2lzdHJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgV0VC
Q09SRV9FWFBPUlQgQmxvYlJlZ2lzdHJ5IHsKIHB1YmxpYzoKIAogICAgIC8vIFJlZ2lzdGVycyBh
IGJsb2IgVVJMIHJlZmVycmluZyB0byB0aGUgc3BlY2lmaWVkIGZpbGUuCi0gICAgdmlydHVhbCB2
b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiwgUmVmPEJsb2JEYXRhRmlsZVJlZmVy
ZW5jZT4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCByZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0IFVSTCYsIFJlZjxCbG9iRGF0YUZpbGVSZWZlcmVu
Y2U+JiYsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgPSAw
OwogCiAgICAgLy8gUmVnaXN0ZXJzIGEgYmxvYiBVUkwgcmVmZXJyaW5nIHRvIHRoZSBzcGVjaWZp
ZWQgYmxvYiBkYXRhLgogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgVVJM
JiwgVmVjdG9yPEJsb2JQYXJ0PiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSA9IDA7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwkocmV2aXNpb24gMjYzNzgxKQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0NiBAQAorMjAyMC0wNi0zMCAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IHRoZSBGaWxl
IG9iamV0IHRvIGJlIGNyZWF0ZWQgd2l0aCBhIHJlcGxhY2VtZW50IGZpbGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzgyNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBVSVByb2Nlc3MgcGFzc2Vz
IGEgbGlzdCBvZiBzdHJpbmdzIHdoaWNoIHJlcHJlc2VudHMgdGhlIHJlcGxhY2VtZW50CisgICAg
ICAgIHBhdGhzIGFsb25nIHdpdGggYSBsaXN0IHRvIHRoZSBvcmlnaW5hbCBwYXRocyB0byB0aGUg
V2ViUHJvY2Vzcy4gVGhlIAorICAgICAgICBXZWJQcm9jZXNzIHBhc3NlcyB0aGVzZSB0d28gbGlz
dCB0byBGaWxlQ2hvb3NlciB3aGljaCBjcmVhdGVzIHRoZSBGaWxlCisgICAgICAgIG9iamVjdHMg
YW5kIHJlZ2lzdGVyIHRoZSBCbG9icy4KKworICAgICAgICBUaGUgV2ViUHJvY2VzcyByZWdpc3Rl
cnMgdGhlIEJsb2JzIGluIHRoZSBOZXR3b3JrUHJvY2VzcyB3aGljaCBjcmVhdGVzCisgICAgICAg
IEJsb2JEYXRhRmlsZVJlZmVyZW5jZSBvYmplY3RzIHdpdGggYm90aCB0aGUgb3JpZ2luYWwgcGF0
aCBhbmQgdGhlCisgICAgICAgIHJlcGxhY2VtZW50IHBhdGguCisKKyAgICAgICAgVGhlIFdlYlBy
b2Nlc3MgdW5yZWdpc3RlcnMgdGhlIEJsb2JzIGZyb20gdGhlIE5ldHdvcmtQcm9jZXNzIHdoaWNo
IGRlbGV0ZXMKKyAgICAgICAgdGhlIGNvcnJlc3BvbmRpbmcgQmxvYkRhdGFGaWxlUmVmZXJlbmNl
IGZyb20gaXRzIHJlZ2lzdHJ5LiBVcG9uIGRlc3Ryb3lpbmcKKyAgICAgICAgdGhlIEJsb2JEYXRh
RmlsZVJlZmVyZW5jZSwgdGhlIHJlcGxhY2VtZW50IGZpbGUgc2hvdWxkIGJlIGRlbGV0ZWQuCisK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWdp
c3RlckZpbGVCbG9iVVJMKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmNyZWF0ZUJsb2JSZWdpc3RyeSk6CisgICAgICAgICogU2hhcmVkL0Jsb2JEYXRhRmls
ZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Qmxv
YkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb246OkJsb2JEYXRhRmlsZVJlZmVy
ZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uKToKKyAgICAgICAgKiBTaGFyZWQvQmxvYkRhdGFGaWxl
UmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDaG9vc2VG
aWxlc0Zvck9wZW5QYW5lbCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdp
c3RyeVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QmxvYlJlZ2lzdHJ5UHJveHk6OnJlZ2lz
dGVyRmlsZUJsb2JVUkwpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0
cnlQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyOjpkaWRDaG9vc2VGaWxlcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYk9w
ZW5QYW5lbFJlc3VsdExpc3RlbmVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDaG9vc2VGaWxlc0Zvck9w
ZW5QYW5lbCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAyMC0wNi0z
MCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IFN3aWZ0
IG92ZXJsYXkgYnVpbGQgYWZ0ZXIgcjI2MzcyNy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCShyZXZpc2lvbiAyNjM2NjYpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzM3
LDcgKzczNyw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmFsbEMKIAog
I2VuZGlmCiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlZ2lzdGVyRmls
ZUJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcGF0aCwgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlJiYgZXh0ZW5zaW9uSGFuZGxlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBl
KQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJGaWxlQmxvYlVS
TChjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIHJlcGxh
Y2VtZW50UGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgZXh0ZW5zaW9uSGFuZGxlLCBj
b25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKQogewogICAgIE5FVFdPUktfUFJPQ0VTU19NRVNTQUdF
X0NIRUNLKCF1cmwuaXNFbXB0eSgpKTsKIApAQCAtNzQ1LDcgKzc0NSw3IEBAIHZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlZ2kKICAgICBpZiAoIXNlc3Npb24pCiAgICAgICAg
IHJldHVybjsKIAotICAgIHNlc3Npb24tPmJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyRmlsZUJsb2JV
UkwodXJsLCBCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
KHBhdGgsIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShXVEZNb3ZlKGV4dGVuc2lvbkhhbmRsZSkp
KSwgY29udGVudFR5cGUpOworICAgIHNlc3Npb24tPmJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyRmls
ZUJsb2JVUkwodXJsLCBCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbjo6
Y3JlYXRlKHBhdGgsIHJlcGxhY2VtZW50UGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdU
Rk1vdmUoZXh0ZW5zaW9uSGFuZGxlKSkpLCBjb250ZW50VHlwZSk7CiB9CiAKIHZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmIHVybCwg
VmVjdG9yPEJsb2JQYXJ0PiYmIGJsb2JQYXJ0cywgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkK
QEAgLTc3NCw3ICs3NzQsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpy
ZWdpCiAgICAgaWYgKCFzZXNzaW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZXNzaW9uLT5i
bG9iUmVnaXN0cnkoKS5yZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZCh1cmwsIHNy
Y1VSTCwgQmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShm
aWxlQmFja2VkUGF0aCwgbnVsbHB0ciksIGNvbnRlbnRUeXBlKTsKKyAgICBzZXNzaW9uLT5ibG9i
UmVnaXN0cnkoKS5yZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZCh1cmwsIHNyY1VS
TCwgQmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShmaWxl
QmFja2VkUGF0aCksIGNvbnRlbnRUeXBlKTsKIH0KIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFVSTCYgc3JjVVJMLCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90IGVuZCkKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgJKHJldmlzaW9uIDI2MzY2NikKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAkod29ya2luZyBjb3B5KQpA
QCAtMjE1LDcgKzIxNSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRSYXdDb29raWUoY29uc3Qg
V2ViQ29yZTo6Q29va2llJik7CiAgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgVVJMJiwgY29u
c3QgU3RyaW5nJiBjb29raWVOYW1lKTsKIAotICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChj
b25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHBhdGgsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYm
LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKKyAgICB2b2lkIHJlZ2lzdGVyRmlsZUJsb2JV
UkwoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIHJlcGxhY2Vt
ZW50UGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYsIGNvbnN0IFN0cmluZyYgY29udGVu
dFR5cGUpOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYsIFZlY3RvcjxXZWJD
b3JlOjpCbG9iUGFydD4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSk7CiAgICAgdm9pZCBy
ZWdpc3RlckJsb2JVUkxGcm9tVVJMKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMKTsKICAg
ICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYsIGNv
bnN0IFVSTCYgc3JjVVJMLCBjb25zdCBTdHJpbmcmIGZpbGVCYWNrZWRQYXRoLCBjb25zdCBTdHJp
bmcmIGNvbnRlbnRUeXBlKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbgkocmV2aXNpb24gMjYzNjY2KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkod29ya2luZyBj
b3B5KQpAQCAtNDYsNyArNDYsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2VzCiAgICAgVW5zdWJzY3JpYmVGcm9tQ29va2llQ2hhbmdlTm90aWZpY2F0aW9ucyhIYXNo
U2V0PFN0cmluZz4gaG9zdHMpCiAjZW5kaWYKIAotICAgIFJlZ2lzdGVyRmlsZUJsb2JVUkwoVVJM
IHVybCwgU3RyaW5nIHBhdGgsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGV4dGVu
c2lvbkhhbmRsZSwgU3RyaW5nIGNvbnRlbnRUeXBlKQorICAgIFJlZ2lzdGVyRmlsZUJsb2JVUkwo
VVJMIHVybCwgU3RyaW5nIHBhdGgsIFN0cmluZyByZXBsYWNlbWVudFBhdGgsIFdlYktpdDo6U2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlIGV4dGVuc2lvbkhhbmRsZSwgU3RyaW5nIGNvbnRlbnRUeXBl
KQogICAgIFJlZ2lzdGVyQmxvYlVSTChVUkwgdXJsLCBWZWN0b3I8V2ViQ29yZTo6QmxvYlBhcnQ+
IGJsb2JQYXJ0cywgU3RyaW5nIGNvbnRlbnRUeXBlKQogICAgIFJlZ2lzdGVyQmxvYlVSTEZyb21V
UkwoVVJMIHVybCwgVVJMIHNyY1VSTCkKICAgICBSZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5Rmls
ZUJhY2tlZChVUkwgdXJsLCBVUkwgc3JjVVJMLCBTdHJpbmcgZmlsZUJhY2tlZFBhdGgsIFN0cmlu
ZyBjb250ZW50VHlwZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCShy
ZXZpc2lvbiAyNjM2NjYpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcs
NyBAQCBCbG9iUmVnaXN0cnkqIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhCiB7CiAgICAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgY2xhc3MgRW1wdHlCbG9iUmVnaXN0cnkgOiBwdWJs
aWMgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5IHsKLSAgICAgICAgdm9pZCByZWdpc3RlckZpbGVCbG9i
VVJMKGNvbnN0IFVSTCYsIFJlZjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYsIGNvbnN0IFN0cmlu
ZyYgY29udGVudFR5cGUpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICAgICAg
dm9pZCByZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0IFVSTCYsIFJlZjxCbG9iRGF0YUZpbGVSZWZl
cmVuY2U+JiYsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkg
ZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgICAgICB2b2lkIHJlZ2lzdGVyQmxv
YlVSTChjb25zdCBVUkwmLCBWZWN0b3I8QmxvYlBhcnQ+JiYsIGNvbnN0IFN0cmluZyYgY29udGVu
dFR5cGUpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICAgICAgdm9pZCByZWdp
c3RlckJsb2JVUkwoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwpIGZpbmFsIHsgQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0KICAgICAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5
RmlsZUJhY2tlZChjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgUmVmUHRyPEJsb2JEYXRh
RmlsZVJlZmVyZW5jZT4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsgfQpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvQmxvYkRhdGFG
aWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb24uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9u
LmNwcAkocmV2aXNpb24gMjYzNjY2KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvQmxvYkRhdGFG
aWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw4ICszMCw4IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1CbG9iRGF0YUZpbGVSZWZlcmVu
Y2VXaXRoU2FuZGJveEV4dGVuc2lvbjo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hF
eHRlbnNpb24oY29uc3QgU3RyaW5nJiBwYXRoLCBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4mJiBz
YW5kYm94RXh0ZW5zaW9uKQotICAgIDogQmxvYkRhdGFGaWxlUmVmZXJlbmNlKHBhdGgpCitCbG9i
RGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbjo6QmxvYkRhdGFGaWxlUmVmZXJl
bmNlV2l0aFNhbmRib3hFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcm
IHJlcGxhY2VtZW50UGF0aCwgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+JiYgc2FuZGJveEV4dGVu
c2lvbikKKyAgICA6IEJsb2JEYXRhRmlsZVJlZmVyZW5jZShwYXRoLCByZXBsYWNlbWVudFBhdGgp
CiAgICAgLCBtX3NhbmRib3hFeHRlbnNpb24oV1RGTW92ZShzYW5kYm94RXh0ZW5zaW9uKSkKIHsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhT
YW5kYm94RXh0ZW5zaW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQmxv
YkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb24uaAkocmV2aXNpb24gMjYzNjY2
KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvQmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRi
b3hFeHRlbnNpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzQsMTMgKzM0LDEzIEBAIGNsYXNzIFNh
bmRib3hFeHRlbnNpb247CiAKIGNsYXNzIEJsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94
RXh0ZW5zaW9uIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkJsb2JEYXRhRmlsZVJlZmVyZW5jZSB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+IGNyZWF0ZShj
b25zdCBTdHJpbmcmIHBhdGgsIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiYmIHNhbmRib3hFeHRl
bnNpb24pCisgICAgc3RhdGljIFJlZjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+IGNyZWF0ZShjb25z
dCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRQYXRoID0geyB9LCBSZWZQ
dHI8U2FuZGJveEV4dGVuc2lvbj4mJiBzYW5kYm94RXh0ZW5zaW9uID0gbnVsbHB0cikKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhT
YW5kYm94RXh0ZW5zaW9uKHBhdGgsIFdURk1vdmUoc2FuZGJveEV4dGVuc2lvbikpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hF
eHRlbnNpb24ocGF0aCwgcmVwbGFjZW1lbnRQYXRoLCBXVEZNb3ZlKHNhbmRib3hFeHRlbnNpb24p
KSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIEJsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5k
Ym94RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgcGF0aCwgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+
JiYpOworICAgIEJsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uKGNvbnN0
IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFBhdGgsIFJlZlB0cjxTYW5k
Ym94RXh0ZW5zaW9uPiYmKTsKICAgICB2aXJ0dWFsIH5CbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRo
U2FuZGJveEV4dGVuc2lvbigpOwogCiAgICAgdm9pZCBwcmVwYXJlRm9yRmlsZUFjY2VzcygpIG92
ZXJyaWRlOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShy
ZXZpc2lvbiAyNjM2NjYpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NjkzLDcgKzY2OTMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkQ2hvb3NlRmlsZXNGb3JPcGVuCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RXh0
ZW5kU2FuZGJveEZvckZpbGVzRnJvbU9wZW5QYW5lbChXVEZNb3ZlKHNhbmRib3hFeHRlbnNpb25I
YW5kbGVzKSkpOwogI2VuZGlmCiAKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRDaG9v
c2VGaWxlc0Zvck9wZW5QYW5lbChmaWxlVVJMcykpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OkRpZENob29zZUZpbGVzRm9yT3BlblBhbmVsKGZpbGVVUkxzLCB7IH0pKTsKIAogICAgIG1f
b3BlblBhbmVsUmVzdWx0TGlzdGVuZXItPmludmFsaWRhdGUoKTsKICAgICBtX29wZW5QYW5lbFJl
c3VsdExpc3RlbmVyID0gbnVsbHB0cjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9G
aWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAJKHJldmlzaW9uIDI2MzY2
NikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotdm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6cmVn
aXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmIHVybCwgUmVmPEJsb2JEYXRhRmlsZVJlZmVyZW5j
ZT4mJiBmaWxlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKQordm9pZCBCbG9iUmVnaXN0cnlQ
cm94eTo6cmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmIHVybCwgUmVmPEJsb2JEYXRhRmls
ZVJlZmVyZW5jZT4mJiBmaWxlLCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgY29u
dGVudFR5cGUpCiB7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGV4dGVuc2lvbkhhbmRs
ZTsKIApAQCAtNDQsNyArNDQsOCBAQCB2b2lkIEJsb2JSZWdpc3RyeVByb3h5OjpyZWdpc3RlckZp
bGVCbG9iCiAgICAgaWYgKCFmaWxlLT5wYXRoKCkuaXNFbXB0eSgpKQogICAgICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUoZmlsZS0+cGF0aCgpLCBTYW5kYm94RXh0ZW5zaW9uOjpU
eXBlOjpSZWFkT25seSwgZXh0ZW5zaW9uSGFuZGxlKTsKIAotICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVnaXN0ZXJGaWxlQmxv
YlVSTCh1cmwsIGZpbGUtPnBhdGgoKSwgZXh0ZW5zaW9uSGFuZGxlLCBjb250ZW50VHlwZSksIDAp
OworICAgIFN0cmluZyByZXBsYWNlbWVudFBhdGggPSBwYXRoID09IGZpbGUtPnBhdGgoKSA/IG51
bGxTdHJpbmcoKSA6IGZpbGUtPnBhdGgoKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5l
bnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdl
czo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlZ2lzdGVyRmlsZUJsb2JVUkwodXJs
LCBwYXRoLCByZXBsYWNlbWVudFBhdGgsIGV4dGVuc2lvbkhhbmRsZSwgY29udGVudFR5cGUpLCAw
KTsKIH0KIAogdm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6cmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVS
TCYgdXJsLCBWZWN0b3I8QmxvYlBhcnQ+JiYgYmxvYlBhcnRzLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnRUeXBlKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lz
dHJ5UHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQ
SS9CbG9iUmVnaXN0cnlQcm94eS5oCShyZXZpc2lvbiAyNjM2NjYpCisrKyBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBCbG9iUmVnaXN0cnlQ
cm94eSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpCbG9iUmVnaXN0cnkgewogcHVibGljOgotICAg
IHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmLCBSZWY8V2ViQ29yZTo6QmxvYkRh
dGFGaWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbDsKKyAg
ICB2b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiwgUmVmPFdlYkNvcmU6OkJsb2JE
YXRhRmlsZVJlZmVyZW5jZT4mJiwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIGNv
bnRlbnRUeXBlKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmLCBW
ZWN0b3I8V2ViQ29yZTo6QmxvYlBhcnQ+JiYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZp
bmFsOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3Jj
VVJMKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2Vk
KGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8V2ViQ29yZTo6QmxvYkRhdGFG
aWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbDsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYk9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAJKHJldmlzaW9uIDI2MzY2NikKKysrIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDYsOSArNDYsOSBAQCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lcjo6fldlYk9wZW5QYW5lCiB7CiB9CiAKLXZvaWQgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXI6OmRpZENob29zZUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlcykKK3ZvaWQgV2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXI6OmRpZENob29zZUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBmaWxlcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHJlcGxhY2VtZW50RmlsZXMpCiB7Ci0g
ICAgbV9maWxlQ2hvb3Nlci0+Y2hvb3NlRmlsZXMoZmlsZXMpOworICAgIG1fZmlsZUNob29zZXIt
PmNob29zZUZpbGVzKGZpbGVzLCByZXBsYWNlbWVudEZpbGVzKTsKIH0KIAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmgJKHJldmlzaW9uIDI2
MzY2NikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYk9wZW5QYW5lbFJl
c3VsdExpc3RlbmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgog
ICAgIH5XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcigpOwogCiAgICAgdm9pZCBkaXNjb25uZWN0
RnJvbVBhZ2UoKSB7IG1fcGFnZSA9IDA7IH0KLSAgICB2b2lkIGRpZENob29zZUZpbGVzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+Jik7CisgICAgdm9pZCBkaWRDaG9vc2VGaWxlcyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYgZmlsZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiByZXBsYWNlbWVudEZpbGVzKTsK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHZvaWQgZGlkQ2hvb3NlRmlsZXNXaXRoRGlz
cGxheVN0cmluZ0FuZEljb24oY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcmIGRp
c3BsYXlTdHJpbmcsIFdlYkNvcmU6Okljb24qKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDI2MzY2NikKKysr
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MzAwLDEyICs0MzAwLDEyIEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ2hvb3NlRmlsZXNG
b3JPcGVuUGFuZWwKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2U6OmRpZENob29zZUZpbGVzRm9y
T3BlblBhbmVsKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlcykKK3ZvaWQgV2ViUGFnZTo6ZGlk
Q2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVzLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgcmVwbGFjZW1lbnRGaWxlcykKIHsKICAgICBpZiAoIW1fYWN0aXZl
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fYWN0aXZl
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXItPmRpZENob29zZUZpbGVzKGZpbGVzKTsKKyAgICBtX2Fj
dGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLT5kaWRDaG9vc2VGaWxlcyhmaWxlcywgcmVwbGFj
ZW1lbnRGaWxlcyk7CiAgICAgbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IG51bGxw
dHI7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgJKHJldmlzaW9uIDI2MzY2NikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTYwMyw3ICsxNjAzLDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGZhaWxlZFRvU2hvd1BvcHVwTWVudSgpOwogI2VuZGlmCiAKLSAgICB2b2lkIGRp
ZENob29zZUZpbGVzRm9yT3BlblBhbmVsKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisgICAgdm9p
ZCBkaWRDaG9vc2VGaWxlc0Zvck9wZW5QYW5lbChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZXMs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiByZXBsYWNlbWVudEZpbGVzKTsKICAgICB2b2lkIGRpZENh
bmNlbEZvck9wZW5QYW5lbCgpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgkocmV2aXNpb24gMjYzNjY2KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMzQzLDcgKzM0Myw3IEBA
IEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW4KICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIERpZENob29zZUZpbGVzRm9yT3BlblBhbmVsV2l0aERpc3BsYXlTdHJp
bmdBbmRJY29uKFZlY3RvcjxTdHJpbmc+IGZpbGVVUkxzLCBTdHJpbmcgZGlzcGxheVN0cmluZywg
SVBDOjpEYXRhUmVmZXJlbmNlIGljb25EYXRhLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSBmcm9udGJvYXJkU2VydmljZXNTYW5kYm94RXh0ZW5zaW9uLCBXZWJLaXQ6OlNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSBpY29uU2VydmljZXNTYW5kYm94RXh0ZW5zaW9uKQogI2VuZGlmCi0g
ICAgRGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwoVmVjdG9yPFN0cmluZz4gZmlsZVVSTHMpCisg
ICAgRGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwoVmVjdG9yPFN0cmluZz4gZmlsZVVSTHMsIFZl
Y3RvcjxTdHJpbmc+IHJlcGxhY2VtZW50VVJMcykKICAgICBEaWRDYW5jZWxGb3JPcGVuUGFuZWwo
KQogI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCiAgICAgRXh0ZW5kU2FuZGJveEZvckZp
bGVzRnJvbU9wZW5QYW5lbChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IHNh
bmRib3hFeHRlbnNpb25zKQpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkocmV2aXNp
b24gMjYzNjY2KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDYtMzAgIFNhaWQgQWJvdS1IYWxsYXdhICA8
c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyB0aGUgRmlsZSBvYmpldCB0
byBiZSBjcmVhdGVkIHdpdGggYSByZXBsYWNlbWVudCBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM4MjUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5tbToKKwogMjAyMC0wNi0yOCAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBpbml0aWFsaXplVGhyZWFkaW5nIHRvIGluaXRpYWxp
emUKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0JKHJldmlzaW9uIDI2MzY2NikK
KysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5tbQkod29ya2luZyBjb3B5KQpAQCAtOTMsNyArOTMsNyBAQCBNZWRpYVN0cmF0ZWd5
KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyCiAKIGNsYXNzIFdlYkJsb2JSZWdpc3RyeSBmaW5h
bCA6IHB1YmxpYyBCbG9iUmVnaXN0cnkgewogcHJpdmF0ZToKLSAgICB2b2lkIHJlZ2lzdGVyRmls
ZUJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIFJlZjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYgcmVm
ZXJlbmNlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5
LnJlZ2lzdGVyRmlsZUJsb2JVUkwodXJsLCBXVEZNb3ZlKHJlZmVyZW5jZSksIGNvbnRlbnRUeXBl
KTsgfQorICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmIHVybCwgUmVmPEJs
b2JEYXRhRmlsZVJlZmVyZW5jZT4mJiByZWZlcmVuY2UsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYgY29udGVudFR5cGUpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJGaWxlQmxv
YlVSTCh1cmwsIFdURk1vdmUocmVmZXJlbmNlKSwgY29udGVudFR5cGUpOyB9CiAgICAgdm9pZCBy
ZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxCbG9iUGFydD4mJiBwYXJ0cywg
Y29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3Rl
ckJsb2JVUkwodXJsLCBXVEZNb3ZlKHBhcnRzKSwgY29udGVudFR5cGUpOyB9CiAgICAgdm9pZCBy
ZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMKSBmaW5hbCB7
IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyQmxvYlVSTCh1cmwsIHNyY1VSTCk7IH0KICAgICB2b2lk
IHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYgdXJsLCBjb25z
dCBVUkwmIHNyY1VSTCwgUmVmUHRyPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4mJiByZWZlcmVuY2Us
IGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0
ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQodXJsLCBzcmNVUkwsIFdURk1vdmUocmVmZXJl
bmNlKSwgY29udGVudFR5cGUpOyB9CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyNjM2NjYpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wNi0zMCAgU2FpZCBBYm91LUhhbGxh
d2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IHRoZSBGaWxlIG9i
amV0IHRvIGJlIGNyZWF0ZWQgd2l0aCBhIHJlcGxhY2VtZW50IGZpbGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzgyNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcDoKKwogMjAyMC0wNi0yOCAgR2VvZmZyZXkgR2FyZW4gIDxnZ2Fy
ZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBpbml0aWFsaXplVGhyZWFkaW5nIHRvIGlu
aXRpYWxpemUKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkocmV2aXNpb24g
MjYzNjY2KQorKysgU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsNyArODAsNyBAQCBNZWRp
YVN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyCiAKIGNsYXNzIFdlYkJsb2JSZWdp
c3RyeSBmaW5hbCA6IHB1YmxpYyBCbG9iUmVnaXN0cnkgewogcHJpdmF0ZToKLSAgICB2b2lkIHJl
Z2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIFJlZjxCbG9iRGF0YUZpbGVSZWZlcmVu
Y2U+JiYgcmVmZXJlbmNlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IG1fYmxv
YlJlZ2lzdHJ5LnJlZ2lzdGVyRmlsZUJsb2JVUkwodXJsLCBXVEZNb3ZlKHJlZmVyZW5jZSksIGNv
bnRlbnRUeXBlKTsgfQorICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmIHVy
bCwgUmVmPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4mJiByZWZlcmVuY2UsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0
ZXJGaWxlQmxvYlVSTCh1cmwsIFdURk1vdmUocmVmZXJlbmNlKSwgY29udGVudFR5cGUpOyB9CiAg
ICAgdm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxCbG9iUGFydD4m
JiBwYXJ0cywgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBtX2Jsb2JSZWdpc3Ry
eS5yZWdpc3RlckJsb2JVUkwodXJsLCBXVEZNb3ZlKHBhcnRzKSwgY29udGVudFR5cGUpOyB9CiAg
ICAgdm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJM
KSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyQmxvYlVSTCh1cmwsIHNyY1VSTCk7IH0K
ICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBVUkwmIHNyY1VSTCwgUmVmUHRyPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4mJiBy
ZWZlcmVuY2UsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsIHsgbV9ibG9iUmVnaXN0
cnkucmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQodXJsLCBzcmNVUkwsIFdURk1v
dmUocmVmZXJlbmNlKSwgY29udGVudFR5cGUpOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403314</attachid>
            <date>2020-07-01 13:21:36 -0700</date>
            <delta_ts>2020-07-01 13:43:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213825-20200701132135.patch</filename>
            <type>text/plain</type>
            <size>38342</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY5MWMzMjhlYjk2ZjFj
MmQ1ZWU2MjJlOTE4OWJiN2FlYTI1MjgwYi4uN2QzOTA1Mzg4YzQ5MDExY2NmYzQzZWYyNGNkM2M1
OTYwMTM0Njk4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIwLTA3LTAxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cg
dGhlIEZpbGUgb2JqZWN0IHRvIGJlIGNyZWF0ZWQgd2l0aCBhIHJlcGxhY2VtZW50IGZpbGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzgyNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFdvcmtpbmcgdG93YXJk
cyB3ZWJraXQub3JnL2IvMjEzMzQ3LCBpdCBuZWVkcyB0byBiZSBwb3NzaWJsZSB0byBjcmVhdGUg
CisgICAgICAgIHRoZSBGaWxlIG9iamVjdCB3aXRoIGFuIG9wdGlvbmFsIHJlcGxhY2VtZW50IGZp
bGUuIE9ubHkgdGhlIHJlZ2lzdGVyZWQKKyAgICAgICAgQmxvYkRhdGFGaWxlUmVmZXJlbmNlIHdp
bGwgYmUgY3JlYXRlZCB3aXRoIGJvdGggdGhlIG9yaWdpbmFsIGZpbGUgcGF0aAorICAgICAgICBh
bmQgdGhlIHJlcGxhY2VtZW50IGZpbGUgcGF0aC4gU28gaXQgY2FuIGRlbGV0ZSB0aGUgcmVwbGFj
ZW1lbnQgZmlsZSB3aGVuCisgICAgICAgIGl0IGlzIGRlc3Ryb3llZC4gT3RoZXJ3aXNlIEJsb2JE
YXRhRmlsZVJlZmVyZW5jZSB3aWxsIGJlIGNyZWF0ZWQgd2l0aCB0aGUKKyAgICAgICAgcmVwbGFj
ZW1lbnQgZmlsZSBwYXRoLgorCisgICAgICAgIEl0IGlzIGltcG9ydGFudCB0byBjcmVhdGUgdGhl
IEZpbGUgb2JqZWN0IHdpdGggdGhlIHJlcGxhY2VtZW50IGZpbGUgYmVjYXVzZQorICAgICAgICBp
dCBuZWVkcyB0byBnZXQgdGhlIG1ldGEtZGF0YSBhbmQgdGhlIGJ5dGVzIG9mIHRoZSByZXBsYWNl
bWVudCBmaWxlIG5vdAorICAgICAgICB0aGUgb3JpZ2luYWwgZmlsZS4KKworICAgICAgICAqIGZp
bGVhcGkvRmlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlOjpjcmVhdGUpOgorICAgICAg
ICAqIGZpbGVhcGkvRmlsZS5oOgorICAgICAgICAqIGZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdp
c3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdp
c3RlckZpbGVCbG9iVVJMKToKKyAgICAgICAgKiBmaWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0
cnkuaDoKKyAgICAgICAgKiBodG1sL0RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVGaWxlTGlzdCk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OmZpbGVzRnJvbUZvcm1D
b250cm9sU3RhdGUpOgorICAgICAgICBXaGVuIHRoZSBGaWxlcyBhcmUgY3JlYXRlZCBmcm9tIGEg
Rm9ybUNvbnRyb2xTdGF0ZSwgdGhleSB3aWxsIGJlIGNyZWF0ZWQKKyAgICAgICAgd2l0aG91dCBy
ZXBsYWNlbWVudCBmaWxlcyBzaW5jZSB0aGV5IG1pZ2h0IGhhdmUgYmVlbiBkZWxldGVkLgorCisg
ICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpmaWxlc0Nob3Nlbik6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpyZWNlaXZlRHJvcHBlZEZpbGVzKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlQ2hvb3Nlcjo6
Y2hvb3NlRmlsZXMpOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmg6CisgICAgICAg
IChXZWJDb3JlOjpGaWxlQ2hvb3NlckZpbGVJbmZvOjppc29sYXRlZENvcHkgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZUNob29zZXI6OmNob29zZUZpbGVzKToKKyAgICAgICAgKFdlYkNv
cmU6OkZpbGVDaG9vc2VyRmlsZUluZm86OkZpbGVDaG9vc2VyRmlsZUluZm8pOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkJsb2JEYXRhRmlsZVJlZmVyZW5jZTo6QmxvYkRhdGFGaWxlUmVmZXJl
bmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2JEYXRhRmlsZVJlZmVyZW5jZTo6fkJsb2JEYXRh
RmlsZVJlZmVyZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2U6
OnBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlOjpzdGFydFRy
YWNraW5nTW9kaWZpY2F0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0
YUZpbGVSZWZlcmVuY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3Ry
eS5oOgorCiAyMDIwLTA3LTAxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgogCiAgICAgICAgIEZpeCB0aGUgV2ViS2l0IGJ1aWxkIGFmdGVyIDxyZGFyOi8vcHJvYmxlbS82
NDI4ODE5MT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggYmYyNDk2MGNkYTdiN2ZhZGUyN2IzNzI1NGMwYmY3YzNkYzhh
MTQxZi4uNTA0OTlkODIwYzJlMDNhODdhZTBjZjM4NWFjZjdlNjQ2MTYxMzI1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0NiBAQAorMjAyMC0wNy0wMSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhh
bGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IHRoZSBGaWxlIG9iamVjdCB0byBiZSBj
cmVhdGVkIHdpdGggYSByZXBsYWNlbWVudCBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM4MjUKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KKworICAgICAgICBUaGUgVUlQcm9jZXNzIHBhc3NlcyBhIGxpc3Qgb2Ygc3RyaW5n
cyB3aGljaCByZXByZXNlbnRzIHRoZSByZXBsYWNlbWVudAorICAgICAgICBwYXRocyBhbG9uZyB3
aXRoIGEgbGlzdCB0byB0aGUgb3JpZ2luYWwgcGF0aHMgdG8gdGhlIFdlYlByb2Nlc3MuIFRoZSAK
KyAgICAgICAgV2ViUHJvY2VzcyBwYXNzZXMgdGhlc2UgdHdvIGxpc3QgdG8gRmlsZUNob29zZXIg
d2hpY2ggY3JlYXRlcyB0aGUgRmlsZQorICAgICAgICBvYmplY3RzIGFuZCByZWdpc3RlciB0aGUg
QmxvYnMuCisKKyAgICAgICAgVGhlIFdlYlByb2Nlc3MgcmVnaXN0ZXJzIHRoZSBCbG9icyBpbiB0
aGUgTmV0d29ya1Byb2Nlc3Mgd2hpY2ggY3JlYXRlcworICAgICAgICBCbG9iRGF0YUZpbGVSZWZl
cmVuY2Ugb2JqZWN0cyB3aXRoIGJvdGggdGhlIG9yaWdpbmFsIHBhdGggYW5kIHRoZQorICAgICAg
ICByZXBsYWNlbWVudCBwYXRoLgorCisgICAgICAgIFRoZSBXZWJQcm9jZXNzIHVucmVnaXN0ZXJz
IHRoZSBCbG9icyBmcm9tIHRoZSBOZXR3b3JrUHJvY2VzcyB3aGljaCBkZWxldGVzCisgICAgICAg
IHRoZSBjb3JyZXNwb25kaW5nIEJsb2JEYXRhRmlsZVJlZmVyZW5jZSBmcm9tIGl0cyByZWdpc3Ry
eS4gVXBvbiBkZXN0cm95aW5nCisgICAgICAgIHRoZSBCbG9iRGF0YUZpbGVSZWZlcmVuY2UsIHRo
ZSByZXBsYWNlbWVudCBmaWxlIHNob3VsZCBiZSBkZWxldGVkLgorCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJGaWxlQmxvYlVSTCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWdpc3Rl
ckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVCbG9i
UmVnaXN0cnkpOgorICAgICAgICAqIFNoYXJlZC9CbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2Fu
ZGJveEV4dGVuc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OkJsb2JEYXRhRmlsZVJlZmVyZW5j
ZVdpdGhTYW5kYm94RXh0ZW5zaW9uOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4
dGVuc2lvbik6CisgICAgICAgICogU2hhcmVkL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5k
Ym94RXh0ZW5zaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkJsb2JSZWdpc3RyeVByb3h5OjpyZWdpc3RlckZpbGVCbG9iVVJMKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjo6ZGlkQ2hvb3NlRmls
ZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjAtMDctMDEgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uKHIyNTkyNDIpIFdlYktpdCBu
byBsb25nZXIgZG9lcyBjbGllbnQgbmF2aWdhdGlvbnMgYXQgZm9yZWdyb3VuZCBwcmlvcml0eSBm
b3IgZXh0ZW5zaW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGViZTMyNWE1MmRl
YTlhMGRhNzdjMWE0MDk1Mjk1NDQxYTA4N2Q0NDAuLjM5N2M2Mzg4NjkxMDA5Y2Q2NDhhODQyNTA4
YmUwZjc2Nzc2MWFiYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MiBAQAorMjAyMC0wNy0wMSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUu
Y29tPgorCisgICAgICAgIEFsbG93IHRoZSBGaWxlIG9iamVjdCB0byBiZSBjcmVhdGVkIHdpdGgg
YSByZXBsYWNlbWVudCBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTM4MjUKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbToKKwogMjAy
MC0wNi0zMCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgU3BsaXQg
Q29sb3Igc2VyaWFsaXphdGlvbiBvdXQgb2YgQ29sb3IgY2xhc3NlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nCmluZGV4IDJiNTQzOTZhY2EyZWZiNDJlYWUyYjkxOWFlY2JhNjYwZWM3M2Y0N2Yu
LmVhN2Q5YTJlZDAwZWI5NzIyZjA4MGFkZjkzOWQwN2Y4ODVmMjYwNTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wNy0wMSAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IHRoZSBGaWxl
IG9iamVjdCB0byBiZSBjcmVhdGVkIHdpdGggYSByZXBsYWNlbWVudCBmaWxlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM4MjUKKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5jcHA6CisKIDIwMjAtMDYtMjggIEdlb2ZmcmV5IEdhcmVuICA8Z2dh
cmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgaW5pdGlhbGl6ZVRocmVhZGluZyB0byBp
bml0aWFsaXplCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcAppbmRleCA4ZDZlMzg3Mzg1NTEzZGRkNDFl
MDM3MjQwOThiNDMyZWFjZWNlYmMwLi44YTc2YTczYzY2YjYzNzVkMTE0MWY1NGJkNzRiODA0MjNh
OTA1ZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAKQEAgLTQ2LDE2ICs0NiwxNyBAQCBSZWY8
RmlsZT4gRmlsZTo6Y3JlYXRlV2l0aFJlbGF0aXZlUGF0aChjb25zdCBTdHJpbmcmIHBhdGgsIGNv
bnN0IFN0cmluZyYgcmVsYXRpdgogICAgIHJldHVybiBmaWxlOwogfQogCi1SZWY8RmlsZT4gRmls
ZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBuYW1lT3ZlcnJpZGUp
CitSZWY8RmlsZT4gRmlsZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5n
JiByZXBsYWNlbWVudFBhdGgsIGNvbnN0IFN0cmluZyYgbmFtZU92ZXJyaWRlKQogewogICAgIFN0
cmluZyBuYW1lOwogICAgIFN0cmluZyB0eXBlOwotICAgIGNvbXB1dGVOYW1lQW5kQ29udGVudFR5
cGUocGF0aCwgbmFtZU92ZXJyaWRlLCBuYW1lLCB0eXBlKTsKKyAgICBTdHJpbmcgZWZmZWN0aXZl
UGF0aCA9ICFyZXBsYWNlbWVudFBhdGguaXNOdWxsKCkgPyByZXBsYWNlbWVudFBhdGggOiBwYXRo
OworICAgIGNvbXB1dGVOYW1lQW5kQ29udGVudFR5cGUoZWZmZWN0aXZlUGF0aCwgbmFtZU92ZXJy
aWRlLCBuYW1lLCB0eXBlKTsKIAogICAgIGF1dG8gaW50ZXJuYWxVUkwgPSBCbG9iVVJMOjpjcmVh
dGVJbnRlcm5hbFVSTCgpOwotICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyRmls
ZUJsb2JVUkwoaW50ZXJuYWxVUkwsIHBhdGgsIHR5cGUpOworICAgIFRocmVhZGFibGVCbG9iUmVn
aXN0cnk6OnJlZ2lzdGVyRmlsZUJsb2JVUkwoaW50ZXJuYWxVUkwsIHBhdGgsIHJlcGxhY2VtZW50
UGF0aCwgdHlwZSk7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlKFdURk1vdmUoaW50
ZXJuYWxVUkwpLCBXVEZNb3ZlKHR5cGUpLCBTdHJpbmcgeyBwYXRoIH0sIFdURk1vdmUobmFtZSkp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlKFdURk1vdmUoaW50ZXJuYWxVUkwpLCBX
VEZNb3ZlKHR5cGUpLCBXVEZNb3ZlKGVmZmVjdGl2ZVBhdGgpLCBXVEZNb3ZlKG5hbWUpKSk7CiB9
CiAKIEZpbGU6OkZpbGUoVVJMJiYgdXJsLCBTdHJpbmcmJiB0eXBlLCBTdHJpbmcmJiBwYXRoLCBT
dHJpbmcmJiBuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaAppbmRleCBkMmY5MzhiNDIwZDNhNjBmYjkz
Zjc0MGJjYjA0ZDc0MWY4M2VmZjc4Li44Nzk3NGQwMDNjMzlkY2U1ZDgzNGZjOTdmMDQ2OGZiMzJk
ZWQzMjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAg
ICAgfTsKIAogICAgIC8vIENyZWF0ZSBhIGZpbGUgd2l0aCBhbiBvcHRpb25hbCBuYW1lIGV4cG9z
ZWQgdG8gdGhlIGF1dGhvciAodmlhIEZpbGUubmFtZSBhbmQgYXNzb2NpYXRlZCBET00gcHJvcGVy
dGllcykgdGhhdCBkaWZmZXJzIGZyb20gdGhlIG9uZSBwcm92aWRlZCBpbiB0aGUgcGF0aC4KLSAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHBh
dGgsIGNvbnN0IFN0cmluZyYgbmFtZU92ZXJyaWRlID0geyB9KTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmPEZpbGU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmlu
ZyYgcmVwbGFjZW1lbnRQYXRoID0geyB9LCBjb25zdCBTdHJpbmcmIG5hbWVPdmVycmlkZSA9IHsg
fSk7CiAKICAgICAvLyBDcmVhdGUgYSBGaWxlIHVzaW5nIHRoZSAnbmV3IEZpbGUnIGNvbnN0cnVj
dG9yLgogICAgIHN0YXRpYyBSZWY8RmlsZT4gY3JlYXRlKFZlY3RvcjxCbG9iUGFydFZhcmlhbnQ+
JiYgYmxvYlBhcnRWYXJpYW50cywgY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgUHJvcGVy
dHlCYWcmIHByb3BlcnR5QmFnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9U
aHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFk
YWJsZUJsb2JSZWdpc3RyeS5jcHAKaW5kZXggNWUxZDRjMDBhOWMwNjhjODAzMWMyNGNjZDYwYWIy
MGE2YWZhMDYwYi4uNzBjYmU2ZGQxNTI5N2Q2NmY5ZGJhNmRhMWMxY2QwMWVmZjA4ZmIzNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3Bw
CkBAIC02NCwxNSArNjQsMTcgQEAgc3RhdGljIFRocmVhZFNwZWNpZmljPEJsb2JVcmxPcmlnaW5N
YXA+JiBvcmlnaW5NYXAoKQogICAgIHJldHVybiAqbWFwOwogfQogCi12b2lkIFRocmVhZGFibGVC
bG9iUmVnaXN0cnk6OnJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0
cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkKK3ZvaWQgVGhyZWFkYWJsZUJs
b2JSZWdpc3RyeTo6cmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50UGF0aCwgY29uc3QgU3RyaW5nJiBj
b250ZW50VHlwZSkKIHsKKyAgICBTdHJpbmcgZWZmZWN0aXZlUGF0aCA9ICFyZXBsYWNlbWVudFBh
dGguaXNOdWxsKCkgPyByZXBsYWNlbWVudFBhdGggOiBwYXRoOworCiAgICAgaWYgKGlzTWFpblRo
cmVhZCgpKSB7Ci0gICAgICAgIGJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyRmlsZUJsb2JVUkwodXJs
LCBCbG9iRGF0YUZpbGVSZWZlcmVuY2U6OmNyZWF0ZShwYXRoKSwgY29udGVudFR5cGUpOworICAg
ICAgICBibG9iUmVnaXN0cnkoKS5yZWdpc3RlckZpbGVCbG9iVVJMKHVybCwgQmxvYkRhdGFGaWxl
UmVmZXJlbmNlOjpjcmVhdGUoZWZmZWN0aXZlUGF0aCksIHBhdGgsIGNvbnRlbnRUeXBlKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNhbGxPbk1haW5UaHJlYWQoW3VybCA9IHVybC5p
c29sYXRlZENvcHkoKSwgcGF0aCA9IHBhdGguaXNvbGF0ZWRDb3B5KCksIGNvbnRlbnRUeXBlID0g
Y29udGVudFR5cGUuaXNvbGF0ZWRDb3B5KCldIHsKLSAgICAgICAgYmxvYlJlZ2lzdHJ5KCkucmVn
aXN0ZXJGaWxlQmxvYlVSTCh1cmwsIEJsb2JEYXRhRmlsZVJlZmVyZW5jZTo6Y3JlYXRlKHBhdGgp
LCBjb250ZW50VHlwZSk7CisgICAgY2FsbE9uTWFpblRocmVhZChbdXJsID0gdXJsLmlzb2xhdGVk
Q29weSgpLCBlZmZlY3RpdmVQYXRoID0gZWZmZWN0aXZlUGF0aC5pc29sYXRlZENvcHkoKSwgcGF0
aCA9IHBhdGguaXNvbGF0ZWRDb3B5KCksIGNvbnRlbnRUeXBlID0gY29udGVudFR5cGUuaXNvbGF0
ZWRDb3B5KCldIHsKKyAgICAgICAgYmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJGaWxlQmxvYlVSTCh1
cmwsIEJsb2JEYXRhRmlsZVJlZmVyZW5jZTo6Y3JlYXRlKGVmZmVjdGl2ZVBhdGgpLCBwYXRoLCBj
b250ZW50VHlwZSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9U
aHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmgKaW5kZXggYTljNzlmZTIyOTJmODk1YjMxYzYwZjc1Njdm
ZmQwNDkzZmVkYzgzMi4uZWNiNzRmMTdjMDZkYmViYzczNDk4M2RiMzkyMWRjOTg5ODQxNTkzMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmgK
QEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgU2VjdXJpdHlPcmlnaW47CiAKIGNsYXNzIFRocmVhZGFi
bGVCbG9iUmVnaXN0cnkgewogcHVibGljOgotICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyRmlsZUJs
b2JVUkwoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnRUeXBlKTsKKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0IFVSTCYs
IGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFBhdGgsIGNvbnN0
IFN0cmluZyYgY29udGVudFR5cGUpOwogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQmxvYlVSTChj
b25zdCBVUkwmLCBWZWN0b3I8QmxvYlBhcnQ+JiYgYmxvYlBhcnRzLCBjb25zdCBTdHJpbmcmIGNv
bnRlbnRUeXBlKTsKICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckJsb2JVUkwoU2VjdXJpdHlPcmln
aW4qLCBjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCk7CiAgICAgc3RhdGljIHZvaWQgcmVn
aXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBz
cmNVUkwsIGNvbnN0IFN0cmluZyYgZmlsZUJhY2tlZFBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVu
dFR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EaXJlY3RvcnlGaWxlTGlz
dENyZWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EaXJlY3RvcnlGaWxlTGlzdENyZWF0
b3IuY3BwCmluZGV4IDFhZjllYjIyYzRhNjQzNTIxNDFlNzE5NTZlNTJhNmNmZjYyYTBmNDcuLjgz
ZjZhYjA1YjU4M2JhNTVjMmU5YzZkMDNhODg4ZmNiY2ZjMTNkMDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvci5jcHAKQEAgLTY0LDcgKzY0LDcg
QEAgc3RhdGljIFJlZjxGaWxlTGlzdD4gY3JlYXRlRmlsZUxpc3QoY29uc3QgVmVjdG9yPEZpbGVD
aG9vc2VyRmlsZUluZm8+JiBwYXRocykKICAgICAgICAgaWYgKEZpbGVTeXN0ZW06OmZpbGVJc0Rp
cmVjdG9yeShpbmZvLnBhdGgsIEZpbGVTeXN0ZW06OlNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6
Ok5vKSkKICAgICAgICAgICAgIGFwcGVuZERpcmVjdG9yeUZpbGVzKGluZm8ucGF0aCwgRmlsZVN5
c3RlbTo6cGF0aEdldEZpbGVOYW1lKGluZm8ucGF0aCksIGZpbGVPYmplY3RzKTsKICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgZmlsZU9iamVjdHMuYXBwZW5kKEZpbGU6OmNyZWF0ZShpbmZvLnBh
dGgsIGluZm8uZGlzcGxheU5hbWUpKTsKKyAgICAgICAgICAgIGZpbGVPYmplY3RzLmFwcGVuZChG
aWxlOjpjcmVhdGUoaW5mby5wYXRoLCBudWxsU3RyaW5nKCksIGluZm8uZGlzcGxheU5hbWUpKTsK
ICAgICB9CiAgICAgcmV0dXJuIEZpbGVMaXN0OjpjcmVhdGUoV1RGTW92ZShmaWxlT2JqZWN0cykp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXggZjNjNzA5OGNiZjVl
NGI4MjBlYjY4MGY3Y2M0MjY1NWYwYjllMmQ2ZC4uZjk2ZDMyYjY3M2ViM2VkMDI0MzhjNWEzMjE5
NDEwYmMxMWEzM2YzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC0x
MTcsOSArMTE3LDkgQEAgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+IEZpbGVJbnB1dFR5cGU6
OmZpbGVzRnJvbUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUMKICAgICBmaWxlcy5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KHNpemUgLyAyKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNp
emU7IGkgKz0gMikgewogICAgICAgICBpZiAoIXN0YXRlW2kgKyAxXS5pc0VtcHR5KCkpCi0gICAg
ICAgICAgICBmaWxlcy51bmNoZWNrZWRBcHBlbmQoeyBzdGF0ZVtpXSwgc3RhdGVbaSArIDFdIH0p
OworICAgICAgICAgICAgZmlsZXMudW5jaGVja2VkQXBwZW5kKHsgc3RhdGVbaV0sIG51bGxTdHJp
bmcoKSwgc3RhdGVbaSArIDFdIH0pOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBmaWxlcy51
bmNoZWNrZWRBcHBlbmQoeyBzdGF0ZVtpXSB9KTsKKyAgICAgICAgICAgIGZpbGVzLnVuY2hlY2tl
ZEFwcGVuZCh7IHN0YXRlW2ldLCBudWxsU3RyaW5nKCksIG51bGxTdHJpbmcoKSB9KTsKICAgICB9
CiAgICAgcmV0dXJuIGZpbGVzOwogfQpAQCAtNDE0LDcgKzQxNCw3IEBAIHZvaWQgRmlsZUlucHV0
VHlwZTo6ZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBwYXRo
cywgY29uc3QKIAogICAgIGlmICghYWxsb3dzRGlyZWN0b3JpZXMoKSkgewogICAgICAgICBhdXRv
IGZpbGVzID0gcGF0aHMubWFwKFtdKGF1dG8mIGZpbGVJbmZvKSB7Ci0gICAgICAgICAgICByZXR1
cm4gRmlsZTo6Y3JlYXRlKGZpbGVJbmZvLnBhdGgsIGZpbGVJbmZvLmRpc3BsYXlOYW1lKTsKKyAg
ICAgICAgICAgIHJldHVybiBGaWxlOjpjcmVhdGUoZmlsZUluZm8ucGF0aCwgZmlsZUluZm8ucmVw
bGFjZW1lbnRQYXRoLCBmaWxlSW5mby5kaXNwbGF5TmFtZSk7CiAgICAgICAgIH0pOwogICAgICAg
ICBkaWRDcmVhdGVGaWxlTGlzdChGaWxlTGlzdDo6Y3JlYXRlKFdURk1vdmUoZmlsZXMpKSwgaWNv
bik7CiAgICAgICAgIHJldHVybjsKQEAgLTQ2OSwxMSArNDY5LDExIEBAIGJvb2wgRmlsZUlucHV0
VHlwZTo6cmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAg
ICAgIFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiBmaWxlczsKICAgICAgICAgZmlsZXMucmVz
ZXJ2ZUluaXRpYWxDYXBhY2l0eShwYXRocy5zaXplKCkpOwogICAgICAgICBmb3IgKGF1dG8mIHBh
dGggOiBwYXRocykKLSAgICAgICAgICAgIGZpbGVzLnVuY2hlY2tlZEFwcGVuZCh7IHBhdGggfSk7
CisgICAgICAgICAgICBmaWxlcy51bmNoZWNrZWRBcHBlbmQoeyBwYXRoLCBudWxsU3RyaW5nKCks
IG51bGxTdHJpbmcoKSB9KTsKIAogICAgICAgICBmaWxlc0Nob3NlbihmaWxlcyk7CiAgICAgfSBl
bHNlCi0gICAgICAgIGZpbGVzQ2hvc2VuKHsgRmlsZUNob29zZXJGaWxlSW5mbyB7IHBhdGhzWzBd
IH0gfSk7CisgICAgICAgIGZpbGVzQ2hvc2VuKHsgeyBwYXRoc1swXSwgbnVsbFN0cmluZygpLCBu
dWxsU3RyaW5nKCkgfSB9KTsKIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRmlsZUNob29zZXIuY3BwCmluZGV4IGFjN2Y1ZDQ3YmNmNDUzOGZlZDgwYzYyYjk5YzI0
NzM1MDQ3NDg4NWIuLjU3NjM3OTY0ODEwZDE0YzUyYjYxY2YwYzdmYWVhZGYwZjY4YzEzNWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHAKQEAgLTU4LDcgKzU4LDcgQEAg
dm9pZCBGaWxlQ2hvb3Nlcjo6Y2hvb3NlRmlsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lKQogICAg
IGNob29zZUZpbGVzKGZpbGVuYW1lcyk7CiB9CiAKLXZvaWQgRmlsZUNob29zZXI6OmNob29zZUZp
bGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpCit2b2lkIEZpbGVDaG9vc2VyOjpj
aG9vc2VGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgcmVwbGFjZW1lbnROYW1lcykKIHsKICAgICAvLyBGSVhNRTogVGhpcyBpcyBpbmVs
ZWdhbnQuIFdlIHNob3VsZCBub3QgYmUgbG9va2luZyBhdCBzZXR0aW5ncyBoZXJlLgogICAgIGlm
IChtX3NldHRpbmdzLnNlbGVjdGVkRmlsZXMgPT0gZmlsZW5hbWVzKQpAQCAtNjgsOCArNjgsOCBA
QCB2b2lkIEZpbGVDaG9vc2VyOjpjaG9vc2VGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmls
ZW5hbWVzKQogICAgICAgICByZXR1cm47CiAKICAgICBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5m
bz4gZmlsZXM7Ci0gICAgZm9yIChhdXRvJiBmaWxlbmFtZSA6IGZpbGVuYW1lcykKLSAgICAgICAg
ZmlsZXMuYXBwZW5kKEZpbGVDaG9vc2VyRmlsZUluZm8oZmlsZW5hbWUpKTsKKyAgICBmb3IgKHNp
emVfdCBpID0gMCwgc2l6ZSA9IGZpbGVuYW1lcy5zaXplKCk7IGkgPCBzaXplOyArK2kpCisgICAg
ICAgIGZpbGVzLmFwcGVuZCh7IGZpbGVuYW1lc1tpXSwgaSA8IHJlcGxhY2VtZW50TmFtZXMuc2l6
ZSgpID8gcmVwbGFjZW1lbnROYW1lc1tpXSA6IG51bGxTdHJpbmcoKSwgbnVsbFN0cmluZygpIH0p
OwogICAgIG1fY2xpZW50LT5maWxlc0Nob3NlbihmaWxlcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9GaWxlQ2hvb3Nlci5oCmluZGV4IGU1MWViOWU4NDM4Nzk1YTc2ZmVjOWEzZGJmN2M2YTA4
NGVhMDg4OTUuLmFiNjhkYWNiZmE3NDBjYTQ4ZWMxYzM0NTJhODYwMjExNjZkOTcxMzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuaApAQCAtNDYsMTggKzQ2LDEzIEBAIGNsYXNz
IEZpbGVDaG9vc2VyOwogY2xhc3MgSWNvbjsKIAogc3RydWN0IEZpbGVDaG9vc2VyRmlsZUluZm8g
ewotICAgIEZpbGVDaG9vc2VyRmlsZUluZm8oY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJp
bmcmIGRpc3BsYXlOYW1lID0gU3RyaW5nKCkpCi0gICAgICAgIDogcGF0aChwYXRoKQotICAgICAg
ICAsIGRpc3BsYXlOYW1lKGRpc3BsYXlOYW1lKQotICAgIHsKLSAgICB9Ci0KICAgICBGaWxlQ2hv
b3NlckZpbGVJbmZvIGlzb2xhdGVkQ29weSgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4g
eyBwYXRoLmlzb2xhdGVkQ29weSgpLCBkaXNwbGF5TmFtZS5pc29sYXRlZENvcHkoKSB9OworICAg
ICAgICByZXR1cm4geyBwYXRoLmlzb2xhdGVkQ29weSgpLCByZXBsYWNlbWVudFBhdGguaXNvbGF0
ZWRDb3B5KCksIGRpc3BsYXlOYW1lLmlzb2xhdGVkQ29weSgpIH07CiAgICAgfQogCiAgICAgY29u
c3QgU3RyaW5nIHBhdGg7CisgICAgY29uc3QgU3RyaW5nIHJlcGxhY2VtZW50UGF0aDsKICAgICBj
b25zdCBTdHJpbmcgZGlzcGxheU5hbWU7CiB9OwogCkBAIC04Nyw3ICs4Miw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGludmFsaWRhdGUoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2hvb3Nl
RmlsZShjb25zdCBTdHJpbmcmIHBhdGgpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2hvb3Nl
RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGNob29zZUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRocywgY29uc3QgVmVjdG9y
PFN0cmluZz4mIHJlcGxhY2VtZW50UGF0aHMgPSB7IH0pOwogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCiAgICAgLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24gaXMgYWxtb3N0IGlkZW50aWNhbCB0byBG
aWxlQ2hvb3Nlcjo6Y2hvb3NlRmlsZXMoKS4gV2Ugc2hvdWxkIG1lcmdlIHRoaXMKICAgICAvLyBm
dW5jdGlvbiB3aXRoIEZpbGVDaG9vc2VyOjpjaG9vc2VGaWxlcygpIGFuZCBoZW5jZSByZW1vdmUg
dGhlIFBMQVRGT1JNKElPU19GQU1JTFkpLWd1YXJkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuY3BwCmluZGV4IDVh
YmZkNzVjYjQ5NDU2ZTQyZDM5ZDQ0ZDNiYzIyNTlhYWZmYTUyMjYuLmRmYjRiNTg0YThhOGUyMzQ2
N2I4NDNhOTVhMzNmN2Q1MTcyYzk4NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5jcHAKQEAgLTMyLDE3ICsz
MiwxNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUJsb2JEYXRhRmlsZVJlZmVyZW5jZTo6
QmxvYkRhdGFGaWxlUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYgcGF0aCkKK0Jsb2JEYXRhRmlsZVJl
ZmVyZW5jZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3Qg
U3RyaW5nJiByZXBsYWNlbWVudFBhdGgpCiAgICAgOiBtX3BhdGgocGF0aCkKKyAgICAsIG1fcmVw
bGFjZW1lbnRQYXRoKHJlcGxhY2VtZW50UGF0aCkKIHsKIH0KIAogQmxvYkRhdGFGaWxlUmVmZXJl
bmNlOjp+QmxvYkRhdGFGaWxlUmVmZXJlbmNlKCkKIHsKLSNpZiBFTkFCTEUoRklMRV9SRVBMQUNF
TUVOVCkKICAgICBpZiAoIW1fcmVwbGFjZW1lbnRQYXRoLmlzTnVsbCgpKQogICAgICAgICBGaWxl
U3lzdGVtOjpkZWxldGVGaWxlKG1fcmVwbGFjZW1lbnRQYXRoKTsKLSNlbmRpZgogfQogCiBjb25z
dCBTdHJpbmcmIEJsb2JEYXRhRmlsZVJlZmVyZW5jZTo6cGF0aCgpCkBAIC01MCwxMCArNDksOSBA
QCBjb25zdCBTdHJpbmcmIEJsb2JEYXRhRmlsZVJlZmVyZW5jZTo6cGF0aCgpCiAjaWYgRU5BQkxF
KEZJTEVfUkVQTEFDRU1FTlQpCiAgICAgaWYgKG1fcmVwbGFjZW1lbnRTaG91bGRCZUdlbmVyYXRl
ZCkKICAgICAgICAgZ2VuZXJhdGVSZXBsYWNlbWVudEZpbGUoKTsKLQorI2VuZGlmCiAgICAgaWYg
KCFtX3JlcGxhY2VtZW50UGF0aC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIG1fcmVwbGFjZW1l
bnRQYXRoOwotI2VuZGlmCiAKICAgICByZXR1cm4gbV9wYXRoOwogfQpAQCAtMTAxLDYgKzk5LDEz
IEBAIHZvaWQgQmxvYkRhdGFGaWxlUmVmZXJlbmNlOjpzdGFydFRyYWNraW5nTW9kaWZpY2F0aW9u
cygpCiAgICAgICAgIHJldHVybjsKICNlbmRpZgogCisgICAgLy8gVGhpcyBpcyBhIHJlZ2lzdGVy
ZWQgYmxvYiB3aXRoIGEgcmVwbGFjZW1lbnQgZmlsZS4gR2V0IHRoZSBNZXRhZGF0YSBvZiB0aGUg
cmVwbGFjZW1lbnQgZmlsZS4KKyAgICBpZiAoIW1fcmVwbGFjZW1lbnRQYXRoLmlzTnVsbCgpKSB7
CisgICAgICAgIG1ldGFkYXRhID0gRmlsZVN5c3RlbTo6ZmlsZU1ldGFkYXRhRm9sbG93aW5nU3lt
bGlua3MobV9yZXBsYWNlbWVudFBhdGgpOworICAgICAgICBpZiAoIW1ldGFkYXRhKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIG1fc2l6ZSA9IG1ldGFkYXRhLnZhbHVlKCkubGVu
Z3RoOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Js
b2JEYXRhRmlsZVJlZmVyZW5jZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9C
bG9iRGF0YUZpbGVSZWZlcmVuY2UuaAppbmRleCA2NTg4MjlkMDdmY2ZiZDZiMDJhMjBlMWNiMDFm
ZGM5ZDZkY2MwN2M5Li44ZmNiZThjMTFmMjEzNDhjZWZlNDhlZDAyNjY1YzU1ZDYzNjk2NzcyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJl
ZmVyZW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFG
aWxlUmVmZXJlbmNlLmgKQEAgLTM1LDkgKzM1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBXRUJDT1JFX0VYUE9SVCBCbG9iRGF0YUZpbGVSZWZlcmVuY2UgOiBwdWJsaWMgUmVmQ291
bnRlZDxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEJs
b2JEYXRhRmlsZVJlZmVyZW5jZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aCkKKyAgICBzdGF0
aWMgUmVmPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aCwg
Y29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFBhdGggPSB7IH0pCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBCbG9iRGF0YUZpbGVSZWZlcmVuY2UocGF0aCkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBCbG9iRGF0YUZpbGVSZWZlcmVuY2UocGF0aCwgcmVwbGFjZW1l
bnRQYXRoKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+QmxvYkRhdGFGaWxlUmVmZXJlbmNlKCk7
CkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmV2b2tlRmlsZUFj
Y2VzcygpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgQmxvYkRhdGFGaWxlUmVmZXJlbmNlKGNvbnN0IFN0
cmluZyYgcGF0aCk7CisgICAgQmxvYkRhdGFGaWxlUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYgcGF0
aCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFBhdGgpOwogCiBwcml2YXRlOgogI2lmIEVOQUJM
RShGSUxFX1JFUExBQ0VNRU5UKQpAQCAtNjAsOCArNjAsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAK
ICAgICBTdHJpbmcgbV9wYXRoOwotI2lmIEVOQUJMRShGSUxFX1JFUExBQ0VNRU5UKQogICAgIFN0
cmluZyBtX3JlcGxhY2VtZW50UGF0aDsKKyNpZiBFTkFCTEUoRklMRV9SRVBMQUNFTUVOVCkKICAg
ICBib29sIG1fcmVwbGFjZW1lbnRTaG91bGRCZUdlbmVyYXRlZCB7IGZhbHNlIH07CiAjZW5kaWYK
ICAgICB1bnNpZ25lZCBsb25nIGxvbmcgbV9zaXplIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5LmgKaW5kZXggZmU5MWU4MWFhZDQzMDJlMDNk
Yjk2N2E0NmEzMDZhYzZkNDJjY2U1NS4uNGIxNWNkZGJlMGU0Yzc2ZThmOTJiMDAyZDYyYTlhYjAy
YjdhNmJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9i
UmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdp
c3RyeS5oCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEJsb2JSZWdpc3Ry
eSB7CiBwdWJsaWM6CiAKICAgICAvLyBSZWdpc3RlcnMgYSBibG9iIFVSTCByZWZlcnJpbmcgdG8g
dGhlIHNwZWNpZmllZCBmaWxlLgotICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckZpbGVCbG9iVVJM
KGNvbnN0IFVSTCYsIFJlZjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYsIGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChj
b25zdCBVUkwmLCBSZWY8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIHBh
dGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpID0gMDsKIAogICAgIC8vIFJlZ2lzdGVycyBh
IGJsb2IgVVJMIHJlZmVycmluZyB0byB0aGUgc3BlY2lmaWVkIGJsb2IgZGF0YS4KICAgICB2aXJ0
dWFsIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYsIFZlY3RvcjxCbG9iUGFydD4mJiwg
Y29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cAppbmRleCA1YzE5MmYyOWU2MTY3YjIxNWExNTRiZjk5N2M2ZGViMWEyYWNhYjA4Li5jOGQ2ZWU3
YzhhNTMxZTM4ZmIwMjI3MjVkYTdmNjUyMGJkODQ4ODVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcApAQCAtNzMyLDcgKzczMiw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmFsbENvb2tpZXNEZWxldGVkKCkKIAogI2VuZGlmCiAKLXZvaWQgTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OnJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgcGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgZXh0ZW5zaW9uSGFu
ZGxlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6cmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50UGF0aCwgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlJiYgZXh0ZW5zaW9uSGFuZGxlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKQog
ewogICAgIE5FVFdPUktfUFJPQ0VTU19NRVNTQUdFX0NIRUNLKCF1cmwuaXNFbXB0eSgpKTsKIApA
QCAtNzQwLDcgKzc0MCw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJl
Z2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0CiAgICAgaWYgKCFzZXNz
aW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZXNzaW9uLT5ibG9iUmVnaXN0cnkoKS5yZWdp
c3RlckZpbGVCbG9iVVJMKHVybCwgQmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRl
bnNpb246OmNyZWF0ZShwYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZShleHRl
bnNpb25IYW5kbGUpKSksIGNvbnRlbnRUeXBlKTsKKyAgICBzZXNzaW9uLT5ibG9iUmVnaXN0cnko
KS5yZWdpc3RlckZpbGVCbG9iVVJMKHVybCwgQmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRi
b3hFeHRlbnNpb246OmNyZWF0ZShwYXRoLCByZXBsYWNlbWVudFBhdGgsIFNhbmRib3hFeHRlbnNp
b246OmNyZWF0ZShXVEZNb3ZlKGV4dGVuc2lvbkhhbmRsZSkpKSwgY29udGVudFR5cGUpOwogfQog
CiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWdpc3RlckJsb2JVUkwoY29u
c3QgVVJMJiB1cmwsIFZlY3RvcjxCbG9iUGFydD4mJiBibG9iUGFydHMsIGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUpCkBAIC03NjksNyArNzY5LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6cmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVIK
ICAgICBpZiAoIXNlc3Npb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIHNlc3Npb24tPmJsb2JS
ZWdpc3RyeSgpLnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKHVybCwgc3JjVVJM
LCBCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKGZpbGVC
YWNrZWRQYXRoLCBudWxscHRyKSwgY29udGVudFR5cGUpOworICAgIHNlc3Npb24tPmJsb2JSZWdp
c3RyeSgpLnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKHVybCwgc3JjVVJMLCBC
bG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKGZpbGVCYWNr
ZWRQYXRoKSwgY29udGVudFR5cGUpOwogfQogCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpyZWdpc3RlckJsb2JVUkxGb3JTbGljZShjb25zdCBVUkwmIHVybCwgY29uc3QgVVJM
JiBzcmNVUkwsIGludDY0X3Qgc3RhcnQsIGludDY0X3QgZW5kKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oCmluZGV4IGU4MjMwMDA5ZWM5NmJmZWVmMjA5OGExYWVlZTdhMjdhYzM5OGMzZGEuLjE4Y2Nl
ZDk3YzY1MzJhMzZhNzBhMzFkZDcxZDZhZmJhZjhkNjZlOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmgKQEAgLTIxNSw3ICsyMTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0UmF3Q29va2ll
KGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYpOwogICAgIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IFVS
TCYsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSk7CiAKLSAgICB2b2lkIHJlZ2lzdGVyRmlsZUJs
b2JVUkwoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBwYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUmJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSk7CisgICAgdm9pZCByZWdpc3RlckZp
bGVCbG9iVVJMKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBy
ZXBsYWNlbWVudFBhdGgsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmLCBjb25zdCBTdHJpbmcm
IGNvbnRlbnRUeXBlKTsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmLCBWZWN0
b3I8V2ViQ29yZTo6QmxvYlBhcnQ+JiYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpOwogICAg
IHZvaWQgcmVnaXN0ZXJCbG9iVVJMRnJvbVVSTChjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VS
TCk7CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChjb25zdCBV
UkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgY29uc3QgU3RyaW5nJiBmaWxlQmFja2VkUGF0aCwgY29u
c3QgU3RyaW5nJiBjb250ZW50VHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbgppbmRleCAyMjAwZDRjNGFkMjBjZjZjMmYxYTViN2E0MDM2YjA2NzQ4MDE0M2Vl
Li43YjgyMjUyMzI3MDBhYTY4OGM5ZDg0YWFjMDQyMGM0OTdiNmU1Y2U3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTQ2LDcgKzQ2LDcgQEAgbWVzc2Fn
ZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAg
IFVuc3Vic2NyaWJlRnJvbUNvb2tpZUNoYW5nZU5vdGlmaWNhdGlvbnMoSGFzaFNldDxTdHJpbmc+
IGhvc3RzKQogI2VuZGlmCiAKLSAgICBSZWdpc3RlckZpbGVCbG9iVVJMKFVSTCB1cmwsIFN0cmlu
ZyBwYXRoLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBleHRlbnNpb25IYW5kbGUs
IFN0cmluZyBjb250ZW50VHlwZSkKKyAgICBSZWdpc3RlckZpbGVCbG9iVVJMKFVSTCB1cmwsIFN0
cmluZyBwYXRoLCBTdHJpbmcgcmVwbGFjZW1lbnRQYXRoLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNp
b246OkhhbmRsZSBleHRlbnNpb25IYW5kbGUsIFN0cmluZyBjb250ZW50VHlwZSkKICAgICBSZWdp
c3RlckJsb2JVUkwoVVJMIHVybCwgVmVjdG9yPFdlYkNvcmU6OkJsb2JQYXJ0PiBibG9iUGFydHMs
IFN0cmluZyBjb250ZW50VHlwZSkKICAgICBSZWdpc3RlckJsb2JVUkxGcm9tVVJMKFVSTCB1cmws
IFVSTCBzcmNVUkwpCiAgICAgUmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoVVJM
IHVybCwgVVJMIHNyY1VSTCwgU3RyaW5nIGZpbGVCYWNrZWRQYXRoLCBTdHJpbmcgY29udGVudFR5
cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IGY2OTYwMWNlZjBlZmM5
M2RiZWQzZTA1M2Q1MzQwODE0N2JlM2VkOTcuLmNmZmM5OWY4MmIwNDRjNDliMDUwMmJlOTVkY2M4
Y2I4OTkxYzIyMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC01Nyw3
ICs1Nyw3IEBAIEJsb2JSZWdpc3RyeSogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXM6
OmNyZWF0ZUJsb2JSZWdpc3RyeSgpCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAg
ICAgY2xhc3MgRW1wdHlCbG9iUmVnaXN0cnkgOiBwdWJsaWMgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5
IHsKLSAgICAgICAgdm9pZCByZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0IFVSTCYsIFJlZjxCbG9i
RGF0YUZpbGVSZWZlcmVuY2U+JiYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsIHsg
QVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICAgICAgdm9pZCByZWdpc3RlckZpbGVCbG9iVVJM
KGNvbnN0IFVSTCYsIFJlZjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYsIGNvbnN0IFN0cmluZyYg
cGF0aCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsgfQogICAgICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmLCBWZWN0b3I8
QmxvYlBhcnQ+JiYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsIHsgQVNTRVJUX05P
VF9SRUFDSEVEKCk7IH0KICAgICAgICAgdm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiwg
Y29uc3QgVVJMJiBzcmNVUkwpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICAg
ICAgdm9pZCByZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChjb25zdCBVUkwmLCBj
b25zdCBVUkwmIHNyY1VSTCwgUmVmUHRyPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4mJiwgY29uc3Qg
U3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNh
bmRib3hFeHRlbnNpb24uY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQmxvYkRhdGFGaWxlUmVm
ZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb24uY3BwCmluZGV4IGZjNzRiNjAxNzNjNTUyNTkwYjU0
ZTM0MGM2NmFlMWZhMzY4NDU3MGEuLjlhNTZlMzliOTI2Yjk2NjI0NWQ2OWI1NzkyMjNkMTAxZjA1
NWZkYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Jsb2JEYXRhRmlsZVJlZmVy
ZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9C
bG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbi5jcHAKQEAgLTMwLDggKzMw
LDggQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLUJsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhT
YW5kYm94RXh0ZW5zaW9uOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lv
bihjb25zdCBTdHJpbmcmIHBhdGgsIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiYmIHNhbmRib3hF
eHRlbnNpb24pCi0gICAgOiBCbG9iRGF0YUZpbGVSZWZlcmVuY2UocGF0aCkKK0Jsb2JEYXRhRmls
ZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRo
U2FuZGJveEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgcmVwbGFj
ZW1lbnRQYXRoLCBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4mJiBzYW5kYm94RXh0ZW5zaW9uKQor
ICAgIDogQmxvYkRhdGFGaWxlUmVmZXJlbmNlKHBhdGgsIHJlcGxhY2VtZW50UGF0aCkKICAgICAs
IG1fc2FuZGJveEV4dGVuc2lvbihXVEZNb3ZlKHNhbmRib3hFeHRlbnNpb24pKQogewogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNh
bmRib3hFeHRlbnNpb24uaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Jsb2JEYXRhRmlsZVJlZmVy
ZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uLmgKaW5kZXggNzVhNWQ0ZDBjYmJlYzA4NWFmZGRiMzhm
ZWJiNTMzZTczNjQwNjMyNi4uN2I4MzI5ZjIyOWE1NWZkNGRiYzNjNDQ2ODM3OWJiMzFiZjEwMzU5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQmxvYkRhdGFGaWxlUmVmZXJlbmNl
V2l0aFNhbmRib3hFeHRlbnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9CbG9iRGF0
YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbi5oCkBAIC0zNCwxMyArMzQsMTMgQEAg
Y2xhc3MgU2FuZGJveEV4dGVuc2lvbjsKIAogY2xhc3MgQmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0
aFNhbmRib3hFeHRlbnNpb24gZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVm
ZXJlbmNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4g
Y3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aCwgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+JiYgc2Fu
ZGJveEV4dGVuc2lvbikKKyAgICBzdGF0aWMgUmVmPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4gY3Jl
YXRlKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFBhdGggPSB7
IH0sIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiYmIHNhbmRib3hFeHRlbnNpb24gPSBudWxscHRy
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQmxvYkRhdGFGaWxlUmVmZXJl
bmNlV2l0aFNhbmRib3hFeHRlbnNpb24ocGF0aCwgV1RGTW92ZShzYW5kYm94RXh0ZW5zaW9uKSkp
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRo
U2FuZGJveEV4dGVuc2lvbihwYXRoLCByZXBsYWNlbWVudFBhdGgsIFdURk1vdmUoc2FuZGJveEV4
dGVuc2lvbikpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgQmxvYkRhdGFGaWxlUmVmZXJlbmNl
V2l0aFNhbmRib3hFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBwYXRoLCBSZWZQdHI8U2FuZGJveEV4
dGVuc2lvbj4mJik7CisgICAgQmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNp
b24oY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50UGF0aCwgUmVm
UHRyPFNhbmRib3hFeHRlbnNpb24+JiYpOwogICAgIHZpcnR1YWwgfkJsb2JEYXRhRmlsZVJlZmVy
ZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uKCk7CiAKICAgICB2b2lkIHByZXBhcmVGb3JGaWxlQWNj
ZXNzKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCA2YjQwMGRjMDYyMTEzYmJjOTEwYmI1NDliNDkxZDQxMWJkOTM2ZWRiLi5iYjNjZmJkNDJm
OWFkMGIxZDYwZTQyNzYxYjg5ZjY4Nzg3NTk2NzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTY3MDAsNyArNjcwMCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRDaG9vc2VGaWxlc0Zvck9wZW5QYW5lbChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZVVS
THMpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RXh0ZW5kU2FuZGJveEZvckZpbGVzRnJv
bU9wZW5QYW5lbChXVEZNb3ZlKHNhbmRib3hFeHRlbnNpb25IYW5kbGVzKSkpOwogI2VuZGlmCiAK
LSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRDaG9vc2VGaWxlc0Zvck9wZW5QYW5lbChm
aWxlVVJMcykpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZENob29zZUZpbGVzRm9y
T3BlblBhbmVsKGZpbGVVUkxzLCB7IH0pKTsKIAogICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXItPmludmFsaWRhdGUoKTsKICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gbnVsbHB0
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdp
c3RyeVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdp
c3RyeVByb3h5LmNwcAppbmRleCA4ZjQ3YjhmMDcwZTFmMjk4MzM0NTM4ZGNhOGNmNGQ0ZTRhMzk0
YzRiLi45MDNmOTQxZDc1ODI3ZTcyNTcyZWZiODIxYjZkMjNlYTljZmJhZGUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHku
Y3BwCkBAIC0zNiw3ICszNiw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCi12b2lkIEJsb2JSZWdpc3RyeVByb3h5OjpyZWdpc3RlckZpbGVCbG9iVVJM
KGNvbnN0IFVSTCYgdXJsLCBSZWY8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmIGZpbGUsIGNvbnN0
IFN0cmluZyYgY29udGVudFR5cGUpCit2b2lkIEJsb2JSZWdpc3RyeVByb3h5OjpyZWdpc3RlckZp
bGVCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBSZWY8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmIGZp
bGUsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkKIHsKICAg
ICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgZXh0ZW5zaW9uSGFuZGxlOwogCkBAIC00NCw3ICs0
NCw4IEBAIHZvaWQgQmxvYlJlZ2lzdHJ5UHJveHk6OnJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3Qg
VVJMJiB1cmwsIFJlZjxCbG9iRGF0YUZpbGVSZWZlCiAgICAgaWYgKCFmaWxlLT5wYXRoKCkuaXNF
bXB0eSgpKQogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUoZmlsZS0+cGF0
aCgpLCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkT25seSwgZXh0ZW5zaW9uSGFuZGxlKTsK
IAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6UmVnaXN0ZXJGaWxlQmxvYlVSTCh1cmwsIGZpbGUtPnBhdGgoKSwgZXh0ZW5zaW9u
SGFuZGxlLCBjb250ZW50VHlwZSksIDApOworICAgIFN0cmluZyByZXBsYWNlbWVudFBhdGggPSBw
YXRoID09IGZpbGUtPnBhdGgoKSA/IG51bGxTdHJpbmcoKSA6IGZpbGUtPnBhdGgoKTsKKyAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5j
b25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OlJlZ2lzdGVyRmlsZUJsb2JVUkwodXJsLCBwYXRoLCByZXBsYWNlbWVudFBhdGgsIGV4dGVuc2lv
bkhhbmRsZSwgY29udGVudFR5cGUpLCAwKTsKIH0KIAogdm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6
cmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8QmxvYlBhcnQ+JiYgYmxvYlBh
cnRzLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgKaW5kZXggNDA5ODRkYjI3ZGFk
ZDdkNjVlOWE1MWFjMTcyZDA1NzcxOTJkNGEzOC4uZTgzN2E2OTY0ZTA0N2QzYTQ1YjMyMGVkMDM2
YjZhOGE3MzAzZjYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVB
UEkvQmxvYlJlZ2lzdHJ5UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmls
ZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBCbG9iUmVnaXN0cnlQcm94eSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpC
bG9iUmVnaXN0cnkgewogcHVibGljOgotICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChjb25z
dCBVUkwmLCBSZWY8V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJp
bmcmIGNvbnRlbnRUeXBlKSBmaW5hbDsKKyAgICB2b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29u
c3QgVVJMJiwgUmVmPFdlYkNvcmU6OkJsb2JEYXRhRmlsZVJlZmVyZW5jZT4mJiwgY29uc3QgU3Ry
aW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbDsKICAgICB2b2lkIHJl
Z2lzdGVyQmxvYlVSTChjb25zdCBVUkwmLCBWZWN0b3I8V2ViQ29yZTo6QmxvYlBhcnQ+JiYsIGNv
bnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJM
KGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVy
QmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJM
LCBSZWZQdHI8V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcm
IGNvbnRlbnRUeXBlKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmNwcAppbmRleCBk
OTgzNDNjNDUxOTcwMDVhZWEzNmE5NmQxMTJiNGQ1ZTZiZmQ5MmFjLi5kMmFhZWY1MzlmMzY2NTQx
MmI0Y2ZmYmRlZDViYTllNjJhNDk1MDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3Bw
CkBAIC00Niw5ICs0Niw5IEBAIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyOjp+V2ViT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXIoKQogewogfQogCi12b2lkIFdlYk9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyOjpkaWRDaG9vc2VGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZXMpCit2b2lkIFdl
Yk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyOjpkaWRDaG9vc2VGaWxlcyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgZmlsZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiByZXBsYWNlbWVudEZpbGVzKQogewot
ICAgIG1fZmlsZUNob29zZXItPmNob29zZUZpbGVzKGZpbGVzKTsKKyAgICBtX2ZpbGVDaG9vc2Vy
LT5jaG9vc2VGaWxlcyhmaWxlcywgcmVwbGFjZW1lbnRGaWxlcyk7CiB9CiAKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmgKaW5kZXggZDBkODU5YjhkMzA2
M2Y0N2E2MTZjMjA0MGVmMzdlYjRmZDFiZDBmOS4uOWU2NzBiNTA4YjQ2YmNhZjJjNzBlOTgxNmZi
Yzg1MTg2N2RlMzNjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oCkBAIC00NCw3ICs0NCw3
IEBAIHB1YmxpYzoKICAgICB+V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIoKTsKIAogICAgIHZv
aWQgZGlzY29ubmVjdEZyb21QYWdlKCkgeyBtX3BhZ2UgPSAwOyB9Ci0gICAgdm9pZCBkaWRDaG9v
c2VGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpOworICAgIHZvaWQgZGlkQ2hvb3NlRmlsZXMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcmVwbGFj
ZW1lbnRGaWxlcyk7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICB2b2lkIGRpZENob29z
ZUZpbGVzV2l0aERpc3BsYXlTdHJpbmdBbmRJY29uKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29u
c3QgU3RyaW5nJiBkaXNwbGF5U3RyaW5nLCBXZWJDb3JlOjpJY29uKik7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNDg4MDA2Zjdj
MzE4YTllM2NjY2M5Yjc4NDY5NWUzYzJiZjY4YjljOS4uNTJjODJlNGI5NWU2ODM3MjZlOWY5OWE2
NDE5ZGY3NWNiZTUyNDZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTQzMDEsMTIgKzQzMDEsMTIgQEAgdm9pZCBXZWJQYWdlOjpkaWRDaG9v
c2VGaWxlc0Zvck9wZW5QYW5lbFdpdGhEaXNwbGF5U3RyaW5nQW5kSWNvbihjb25zdCBWZWN0b3I8
U3QKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2U6OmRpZENob29zZUZpbGVzRm9yT3BlblBhbmVs
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlcykKK3ZvaWQgV2ViUGFnZTo6ZGlkQ2hvb3NlRmls
ZXNGb3JPcGVuUGFuZWwoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVzLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgcmVwbGFjZW1lbnRGaWxlcykKIHsKICAgICBpZiAoIW1fYWN0aXZlT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fYWN0aXZlT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXItPmRpZENob29zZUZpbGVzKGZpbGVzKTsKKyAgICBtX2FjdGl2ZU9wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyLT5kaWRDaG9vc2VGaWxlcyhmaWxlcywgcmVwbGFjZW1lbnRGaWxl
cyk7CiAgICAgbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IG51bGxwdHI7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA5MjA0MTg2
MmUzYzIzMGY5ODRlNTBjYjI2OTM2ZjA5ZTVlMWY2ZjM2Li5iYjlkNTE0NjlhZGQyY2YyZjJjMTU5
Y2IzNjA1YWFlZjcyMDFhNmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC0xNjAyLDcgKzE2MDIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZmFpbGVk
VG9TaG93UG9wdXBNZW51KCk7CiAjZW5kaWYKIAotICAgIHZvaWQgZGlkQ2hvb3NlRmlsZXNGb3JP
cGVuUGFuZWwoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKyAgICB2b2lkIGRpZENob29zZUZpbGVz
Rm9yT3BlblBhbmVsKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlcywgY29uc3QgVmVjdG9yPFN0
cmluZz4mIHJlcGxhY2VtZW50RmlsZXMpOwogICAgIHZvaWQgZGlkQ2FuY2VsRm9yT3BlblBhbmVs
KCk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNjg4OWQ2MjMyYjlm
ZTU1N2ExOWEzOTBhM2FmZTQ0ZDg3M2Y2OWUwOS4uYzVlMzQzMWY2MTc0OGMxZDQxMGQwYmQ0NTI1
Y2YyMWU0ZjY2YzZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0zNDMsNyArMzQzLDcgQEAgR2VuZXJhdGVTeW50
aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5n
Q29tbWFuZFR5cGUKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIERpZENob29zZUZpbGVz
Rm9yT3BlblBhbmVsV2l0aERpc3BsYXlTdHJpbmdBbmRJY29uKFZlY3RvcjxTdHJpbmc+IGZpbGVV
UkxzLCBTdHJpbmcgZGlzcGxheVN0cmluZywgSVBDOjpEYXRhUmVmZXJlbmNlIGljb25EYXRhLCBX
ZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBmcm9udGJvYXJkU2VydmljZXNTYW5kYm94
RXh0ZW5zaW9uLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBpY29uU2VydmljZXNT
YW5kYm94RXh0ZW5zaW9uKQogI2VuZGlmCi0gICAgRGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwo
VmVjdG9yPFN0cmluZz4gZmlsZVVSTHMpCisgICAgRGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwo
VmVjdG9yPFN0cmluZz4gZmlsZVVSTHMsIFZlY3RvcjxTdHJpbmc+IHJlcGxhY2VtZW50VVJMcykK
ICAgICBEaWRDYW5jZWxGb3JPcGVuUGFuZWwoKQogI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lP
TlMpCiAgICAgRXh0ZW5kU2FuZGJveEZvckZpbGVzRnJvbU9wZW5QYW5lbChXZWJLaXQ6OlNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZUFycmF5IHNhbmRib3hFeHRlbnNpb25zKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLm1tCmluZGV4IDJjODAzMGNhODk2ZWJkYTY5ZjU1MTc5OWVjZmUxMzdmZjEy
ZGM5YTQuLmZhZjkzYjczYTJiMDE0MTAzODA1YTVjYzZiY2E3YjY1M2E2NTI3YjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KQEAgLTkzLDcgKzkzLDcgQEAgTWVkaWFTdHJhdGVneSog
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVNZWRpYVN0cmF0ZWd5KCkKIAogY2xhc3MgV2Vi
QmxvYlJlZ2lzdHJ5IGZpbmFsIDogcHVibGljIEJsb2JSZWdpc3RyeSB7CiBwcml2YXRlOgotICAg
IHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmIHVybCwgUmVmPEJsb2JEYXRhRmls
ZVJlZmVyZW5jZT4mJiByZWZlcmVuY2UsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFs
IHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJGaWxlQmxvYlVSTCh1cmwsIFdURk1vdmUocmVmZXJl
bmNlKSwgY29udGVudFR5cGUpOyB9CisgICAgdm9pZCByZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0
IFVSTCYgdXJsLCBSZWY8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmIHJlZmVyZW5jZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBtX2Jsb2JSZWdpc3Ry
eS5yZWdpc3RlckZpbGVCbG9iVVJMKHVybCwgV1RGTW92ZShyZWZlcmVuY2UpLCBjb250ZW50VHlw
ZSk7IH0KICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmIHVybCwgVmVjdG9yPEJs
b2JQYXJ0PiYmIHBhcnRzLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IG1fYmxv
YlJlZ2lzdHJ5LnJlZ2lzdGVyQmxvYlVSTCh1cmwsIFdURk1vdmUocGFydHMpLCBjb250ZW50VHlw
ZSk7IH0KICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmIHVybCwgY29uc3QgVVJM
JiBzcmNVUkwpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJCbG9iVVJMKHVybCwgc3Jj
VVJMKTsgfQogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29u
c3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8QmxvYkRhdGFGaWxlUmVmZXJl
bmNlPiYmIHJlZmVyZW5jZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBtX2Js
b2JSZWdpc3RyeS5yZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZCh1cmwsIHNyY1VS
TCwgV1RGTW92ZShyZWZlcmVuY2UpLCBjb250ZW50VHlwZSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwCmluZGV4IDliMjU3ZjRmMjU1MmVmZjAyZWQ0N2JjZTg1MzdkZDQ0NzBhNDMx
N2UuLjQ3NWIyMWYxNzM3MmY4ZTg4M2Q5MTM2M2M0MDllOGFhNGZhNDY0MGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtODAsNyArODAsNyBAQCBNZWRpYVN0cmF0ZWd5KiBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3koKQogCiBjbGFzcyBXZWJC
bG9iUmVnaXN0cnkgZmluYWwgOiBwdWJsaWMgQmxvYlJlZ2lzdHJ5IHsKIHByaXZhdGU6Ci0gICAg
dm9pZCByZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBSZWY8QmxvYkRhdGFGaWxl
UmVmZXJlbmNlPiYmIHJlZmVyZW5jZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwg
eyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckZpbGVCbG9iVVJMKHVybCwgV1RGTW92ZShyZWZlcmVu
Y2UpLCBjb250ZW50VHlwZSk7IH0KKyAgICB2b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3Qg
VVJMJiB1cmwsIFJlZjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYgcmVmZXJlbmNlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5
LnJlZ2lzdGVyRmlsZUJsb2JVUkwodXJsLCBXVEZNb3ZlKHJlZmVyZW5jZSksIGNvbnRlbnRUeXBl
KTsgfQogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8Qmxv
YlBhcnQ+JiYgcGFydHMsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsIHsgbV9ibG9i
UmVnaXN0cnkucmVnaXN0ZXJCbG9iVVJMKHVybCwgV1RGTW92ZShwYXJ0cyksIGNvbnRlbnRUeXBl
KTsgfQogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwm
IHNyY1VSTCkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckJsb2JVUkwodXJsLCBzcmNV
UkwpOyB9CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChjb25z
dCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkwsIFJlZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVu
Y2U+JiYgcmVmZXJlbmNlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IG1fYmxv
YlJlZ2lzdHJ5LnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKHVybCwgc3JjVVJM
LCBXVEZNb3ZlKHJlZmVyZW5jZSksIGNvbnRlbnRUeXBlKTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403316</attachid>
            <date>2020-07-01 13:44:00 -0700</date>
            <delta_ts>2020-07-01 14:58:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213825-20200701134359.patch</filename>
            <type>text/plain</type>
            <size>38752</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY5MWMzMjhlYjk2ZjFj
MmQ1ZWU2MjJlOTE4OWJiN2FlYTI1MjgwYi4uNzI5NWY5NDAwZThjYzdjNjkwNGZhZmU3NGRmZjVj
YTRiOTZjMGQ1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIwLTA3LTAxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cg
dGhlIEZpbGUgb2JqZWN0IHRvIGJlIGNyZWF0ZWQgd2l0aCBhIHJlcGxhY2VtZW50IGZpbGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzgyNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFdvcmtpbmcgdG93YXJk
cyB3ZWJraXQub3JnL2IvMjEzMzQ3LCBpdCBuZWVkcyB0byBiZSBwb3NzaWJsZSB0byBjcmVhdGUg
CisgICAgICAgIHRoZSBGaWxlIG9iamVjdCB3aXRoIGFuIG9wdGlvbmFsIHJlcGxhY2VtZW50IGZp
bGUuIE9ubHkgdGhlIHJlZ2lzdGVyZWQKKyAgICAgICAgQmxvYkRhdGFGaWxlUmVmZXJlbmNlIHdp
bGwgYmUgY3JlYXRlZCB3aXRoIGJvdGggdGhlIG9yaWdpbmFsIGZpbGUgcGF0aAorICAgICAgICBh
bmQgdGhlIHJlcGxhY2VtZW50IGZpbGUgcGF0aC4gU28gaXQgY2FuIGRlbGV0ZSB0aGUgcmVwbGFj
ZW1lbnQgZmlsZSB3aGVuCisgICAgICAgIGl0IGlzIGRlc3Ryb3llZC4gT3RoZXJ3aXNlIEJsb2JE
YXRhRmlsZVJlZmVyZW5jZSB3aWxsIGJlIGNyZWF0ZWQgd2l0aCB0aGUKKyAgICAgICAgcmVwbGFj
ZW1lbnQgZmlsZSBwYXRoLgorCisgICAgICAgIEl0IGlzIGltcG9ydGFudCB0byBjcmVhdGUgdGhl
IEZpbGUgb2JqZWN0IHdpdGggdGhlIHJlcGxhY2VtZW50IGZpbGUgYmVjYXVzZQorICAgICAgICBp
dCBuZWVkcyB0byBnZXQgdGhlIG1ldGEtZGF0YSBhbmQgdGhlIGJ5dGVzIG9mIHRoZSByZXBsYWNl
bWVudCBmaWxlIG5vdAorICAgICAgICB0aGUgb3JpZ2luYWwgZmlsZS4KKworICAgICAgICAqIGZp
bGVhcGkvRmlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlOjpjcmVhdGUpOgorICAgICAg
ICAqIGZpbGVhcGkvRmlsZS5oOgorICAgICAgICAqIGZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdp
c3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdp
c3RlckZpbGVCbG9iVVJMKToKKyAgICAgICAgKiBmaWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0
cnkuaDoKKyAgICAgICAgKiBodG1sL0RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVGaWxlTGlzdCk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OmZpbGVzRnJvbUZvcm1D
b250cm9sU3RhdGUpOgorICAgICAgICBXaGVuIHRoZSBGaWxlcyBhcmUgY3JlYXRlZCBmcm9tIGEg
Rm9ybUNvbnRyb2xTdGF0ZSwgdGhleSB3aWxsIGJlIGNyZWF0ZWQKKyAgICAgICAgd2l0aG91dCBy
ZXBsYWNlbWVudCBmaWxlcyBzaW5jZSB0aGV5IG1pZ2h0IGhhdmUgYmVlbiBkZWxldGVkLgorCisg
ICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpmaWxlc0Nob3Nlbik6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpyZWNlaXZlRHJvcHBlZEZpbGVzKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlQ2hvb3Nlcjo6
Y2hvb3NlRmlsZXMpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUNob29zZXI6OmNob29zZU1lZGlh
RmlsZXMpOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmg6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlQ2hvb3NlckZpbGVJbmZvOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZUNob29zZXI6OmNob29zZUZpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkZp
bGVDaG9vc2VyRmlsZUluZm86OkZpbGVDaG9vc2VyRmlsZUluZm8pOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkJsb2JEYXRhRmlsZVJlZmVyZW5jZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlKToK
KyAgICAgICAgKFdlYkNvcmU6OkJsb2JEYXRhRmlsZVJlZmVyZW5jZTo6fkJsb2JEYXRhRmlsZVJl
ZmVyZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2U6OnBhdGgp
OgorICAgICAgICAoV2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlOjpzdGFydFRyYWNraW5n
TW9kaWZpY2F0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVS
ZWZlcmVuY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oOgor
CiAyMDIwLTA3LTAxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIEZpeCB0aGUgV2ViS2l0IGJ1aWxkIGFmdGVyIDxyZGFyOi8vcHJvYmxlbS82NDI4ODE5
MT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggYmYyNDk2MGNkYTdiN2ZhZGUyN2IzNzI1NGMwYmY3YzNkYzhhMTQxZi4u
NTA0OTlkODIwYzJlMDNhODdhZTBjZjM4NWFjZjdlNjQ2MTYxMzI1ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAyMC0wNy0wMSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FA
YXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IHRoZSBGaWxlIG9iamVjdCB0byBiZSBjcmVhdGVk
IHdpdGggYSByZXBsYWNlbWVudCBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTM4MjUKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KKworICAgICAgICBUaGUgVUlQcm9jZXNzIHBhc3NlcyBhIGxpc3Qgb2Ygc3RyaW5ncyB3aGlj
aCByZXByZXNlbnRzIHRoZSByZXBsYWNlbWVudAorICAgICAgICBwYXRocyBhbG9uZyB3aXRoIGEg
bGlzdCB0byB0aGUgb3JpZ2luYWwgcGF0aHMgdG8gdGhlIFdlYlByb2Nlc3MuIFRoZSAKKyAgICAg
ICAgV2ViUHJvY2VzcyBwYXNzZXMgdGhlc2UgdHdvIGxpc3QgdG8gRmlsZUNob29zZXIgd2hpY2gg
Y3JlYXRlcyB0aGUgRmlsZQorICAgICAgICBvYmplY3RzIGFuZCByZWdpc3RlciB0aGUgQmxvYnMu
CisKKyAgICAgICAgVGhlIFdlYlByb2Nlc3MgcmVnaXN0ZXJzIHRoZSBCbG9icyBpbiB0aGUgTmV0
d29ya1Byb2Nlc3Mgd2hpY2ggY3JlYXRlcworICAgICAgICBCbG9iRGF0YUZpbGVSZWZlcmVuY2Ug
b2JqZWN0cyB3aXRoIGJvdGggdGhlIG9yaWdpbmFsIHBhdGggYW5kIHRoZQorICAgICAgICByZXBs
YWNlbWVudCBwYXRoLgorCisgICAgICAgIFRoZSBXZWJQcm9jZXNzIHVucmVnaXN0ZXJzIHRoZSBC
bG9icyBmcm9tIHRoZSBOZXR3b3JrUHJvY2VzcyB3aGljaCBkZWxldGVzCisgICAgICAgIHRoZSBj
b3JyZXNwb25kaW5nIEJsb2JEYXRhRmlsZVJlZmVyZW5jZSBmcm9tIGl0cyByZWdpc3RyeS4gVXBv
biBkZXN0cm95aW5nCisgICAgICAgIHRoZSBCbG9iRGF0YUZpbGVSZWZlcmVuY2UsIHRoZSByZXBs
YWNlbWVudCBmaWxlIHNob3VsZCBiZSBkZWxldGVkLgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJGaWxlQmxvYlVSTCk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWdpc3RlckJsb2JV
UkxPcHRpb25hbGx5RmlsZUJhY2tlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVCbG9iUmVnaXN0
cnkpOgorICAgICAgICAqIFNoYXJlZC9CbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4
dGVuc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OkJsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhT
YW5kYm94RXh0ZW5zaW9uOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lv
bik6CisgICAgICAgICogU2hhcmVkL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0
ZW5zaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkJsb2JSZWdpc3RyeVByb3h5OjpyZWdpc3RlckZpbGVCbG9iVVJMKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjo6ZGlkQ2hvb3NlRmlsZXMpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6ZGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjAtMDctMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uKHIyNTkyNDIpIFdlYktpdCBubyBsb25n
ZXIgZG9lcyBjbGllbnQgbmF2aWdhdGlvbnMgYXQgZm9yZWdyb3VuZCBwcmlvcml0eSBmb3IgZXh0
ZW5zaW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGViZTMyNWE1MmRlYTlhMGRh
NzdjMWE0MDk1Mjk1NDQxYTA4N2Q0NDAuLjM5N2M2Mzg4NjkxMDA5Y2Q2NDhhODQyNTA4YmUwZjc2
Nzc2MWFiYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAyMC0wNy0wMSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgor
CisgICAgICAgIEFsbG93IHRoZSBGaWxlIG9iamVjdCB0byBiZSBjcmVhdGVkIHdpdGggYSByZXBs
YWNlbWVudCBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTM4MjUKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbToKKwogMjAyMC0wNi0z
MCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgU3BsaXQgQ29sb3Ig
c2VyaWFsaXphdGlvbiBvdXQgb2YgQ29sb3IgY2xhc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdl
TG9nCmluZGV4IDJiNTQzOTZhY2EyZWZiNDJlYWUyYjkxOWFlY2JhNjYwZWM3M2Y0N2YuLmVhN2Q5
YTJlZDAwZWI5NzIyZjA4MGFkZjkzOWQwN2Y4ODVmMjYwNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wNy0wMSAgU2FpZCBBYm91LUhhbGxhd2Eg
IDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IHRoZSBGaWxlIG9iamVj
dCB0byBiZSBjcmVhdGVkIHdpdGggYSByZXBsYWNlbWVudCBmaWxlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM4MjUKKworICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5jcHA6CisKIDIwMjAtMDYtMjggIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgaW5pdGlhbGl6ZVRocmVhZGluZyB0byBpbml0aWFs
aXplCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcAppbmRleCA4ZDZlMzg3Mzg1NTEzZGRkNDFlMDM3MjQw
OThiNDMyZWFjZWNlYmMwLi44YTc2YTczYzY2YjYzNzVkMTE0MWY1NGJkNzRiODA0MjNhOTA1ZmVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAKQEAgLTQ2LDE2ICs0NiwxNyBAQCBSZWY8RmlsZT4g
RmlsZTo6Y3JlYXRlV2l0aFJlbGF0aXZlUGF0aChjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0
cmluZyYgcmVsYXRpdgogICAgIHJldHVybiBmaWxlOwogfQogCi1SZWY8RmlsZT4gRmlsZTo6Y3Jl
YXRlKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBuYW1lT3ZlcnJpZGUpCitSZWY8
RmlsZT4gRmlsZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiByZXBs
YWNlbWVudFBhdGgsIGNvbnN0IFN0cmluZyYgbmFtZU92ZXJyaWRlKQogewogICAgIFN0cmluZyBu
YW1lOwogICAgIFN0cmluZyB0eXBlOwotICAgIGNvbXB1dGVOYW1lQW5kQ29udGVudFR5cGUocGF0
aCwgbmFtZU92ZXJyaWRlLCBuYW1lLCB0eXBlKTsKKyAgICBTdHJpbmcgZWZmZWN0aXZlUGF0aCA9
ICFyZXBsYWNlbWVudFBhdGguaXNOdWxsKCkgPyByZXBsYWNlbWVudFBhdGggOiBwYXRoOworICAg
IGNvbXB1dGVOYW1lQW5kQ29udGVudFR5cGUoZWZmZWN0aXZlUGF0aCwgbmFtZU92ZXJyaWRlLCBu
YW1lLCB0eXBlKTsKIAogICAgIGF1dG8gaW50ZXJuYWxVUkwgPSBCbG9iVVJMOjpjcmVhdGVJbnRl
cm5hbFVSTCgpOwotICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyRmlsZUJsb2JV
UkwoaW50ZXJuYWxVUkwsIHBhdGgsIHR5cGUpOworICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6
OnJlZ2lzdGVyRmlsZUJsb2JVUkwoaW50ZXJuYWxVUkwsIHBhdGgsIHJlcGxhY2VtZW50UGF0aCwg
dHlwZSk7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlKFdURk1vdmUoaW50ZXJuYWxV
UkwpLCBXVEZNb3ZlKHR5cGUpLCBTdHJpbmcgeyBwYXRoIH0sIFdURk1vdmUobmFtZSkpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlKFdURk1vdmUoaW50ZXJuYWxVUkwpLCBXVEZNb3Zl
KHR5cGUpLCBXVEZNb3ZlKGVmZmVjdGl2ZVBhdGgpLCBXVEZNb3ZlKG5hbWUpKSk7CiB9CiAKIEZp
bGU6OkZpbGUoVVJMJiYgdXJsLCBTdHJpbmcmJiB0eXBlLCBTdHJpbmcmJiBwYXRoLCBTdHJpbmcm
JiBuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaAppbmRleCBkMmY5MzhiNDIwZDNhNjBmYjkzZjc0MGJj
YjA0ZDc0MWY4M2VmZjc4Li44Nzk3NGQwMDNjMzlkY2U1ZDgzNGZjOTdmMDQ2OGZiMzJkZWQzMjhj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0ZpbGUuaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgfTsK
IAogICAgIC8vIENyZWF0ZSBhIGZpbGUgd2l0aCBhbiBvcHRpb25hbCBuYW1lIGV4cG9zZWQgdG8g
dGhlIGF1dGhvciAodmlhIEZpbGUubmFtZSBhbmQgYXNzb2NpYXRlZCBET00gcHJvcGVydGllcykg
dGhhdCBkaWZmZXJzIGZyb20gdGhlIG9uZSBwcm92aWRlZCBpbiB0aGUgcGF0aC4KLSAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHBhdGgsIGNv
bnN0IFN0cmluZyYgbmFtZU92ZXJyaWRlID0geyB9KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgUmVmPEZpbGU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgcmVw
bGFjZW1lbnRQYXRoID0geyB9LCBjb25zdCBTdHJpbmcmIG5hbWVPdmVycmlkZSA9IHsgfSk7CiAK
ICAgICAvLyBDcmVhdGUgYSBGaWxlIHVzaW5nIHRoZSAnbmV3IEZpbGUnIGNvbnN0cnVjdG9yLgog
ICAgIHN0YXRpYyBSZWY8RmlsZT4gY3JlYXRlKFZlY3RvcjxCbG9iUGFydFZhcmlhbnQ+JiYgYmxv
YlBhcnRWYXJpYW50cywgY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgUHJvcGVydHlCYWcm
IHByb3BlcnR5QmFnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRh
YmxlQmxvYlJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJs
b2JSZWdpc3RyeS5jcHAKaW5kZXggNWUxZDRjMDBhOWMwNjhjODAzMWMyNGNjZDYwYWIyMGE2YWZh
MDYwYi4uNzBjYmU2ZGQxNTI5N2Q2NmY5ZGJhNmRhMWMxY2QwMWVmZjA4ZmIzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwCkBAIC02
NCwxNSArNjQsMTcgQEAgc3RhdGljIFRocmVhZFNwZWNpZmljPEJsb2JVcmxPcmlnaW5NYXA+JiBv
cmlnaW5NYXAoKQogICAgIHJldHVybiAqbWFwOwogfQogCi12b2lkIFRocmVhZGFibGVCbG9iUmVn
aXN0cnk6OnJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
cGF0aCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkKK3ZvaWQgVGhyZWFkYWJsZUJsb2JSZWdp
c3RyeTo6cmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBw
YXRoLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50UGF0aCwgY29uc3QgU3RyaW5nJiBjb250ZW50
VHlwZSkKIHsKKyAgICBTdHJpbmcgZWZmZWN0aXZlUGF0aCA9ICFyZXBsYWNlbWVudFBhdGguaXNO
dWxsKCkgPyByZXBsYWNlbWVudFBhdGggOiBwYXRoOworCiAgICAgaWYgKGlzTWFpblRocmVhZCgp
KSB7Ci0gICAgICAgIGJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyRmlsZUJsb2JVUkwodXJsLCBCbG9i
RGF0YUZpbGVSZWZlcmVuY2U6OmNyZWF0ZShwYXRoKSwgY29udGVudFR5cGUpOworICAgICAgICBi
bG9iUmVnaXN0cnkoKS5yZWdpc3RlckZpbGVCbG9iVVJMKHVybCwgQmxvYkRhdGFGaWxlUmVmZXJl
bmNlOjpjcmVhdGUoZWZmZWN0aXZlUGF0aCksIHBhdGgsIGNvbnRlbnRUeXBlKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGNhbGxPbk1haW5UaHJlYWQoW3VybCA9IHVybC5pc29sYXRl
ZENvcHkoKSwgcGF0aCA9IHBhdGguaXNvbGF0ZWRDb3B5KCksIGNvbnRlbnRUeXBlID0gY29udGVu
dFR5cGUuaXNvbGF0ZWRDb3B5KCldIHsKLSAgICAgICAgYmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJG
aWxlQmxvYlVSTCh1cmwsIEJsb2JEYXRhRmlsZVJlZmVyZW5jZTo6Y3JlYXRlKHBhdGgpLCBjb250
ZW50VHlwZSk7CisgICAgY2FsbE9uTWFpblRocmVhZChbdXJsID0gdXJsLmlzb2xhdGVkQ29weSgp
LCBlZmZlY3RpdmVQYXRoID0gZWZmZWN0aXZlUGF0aC5pc29sYXRlZENvcHkoKSwgcGF0aCA9IHBh
dGguaXNvbGF0ZWRDb3B5KCksIGNvbnRlbnRUeXBlID0gY29udGVudFR5cGUuaXNvbGF0ZWRDb3B5
KCldIHsKKyAgICAgICAgYmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJGaWxlQmxvYlVSTCh1cmwsIEJs
b2JEYXRhRmlsZVJlZmVyZW5jZTo6Y3JlYXRlKGVmZmVjdGl2ZVBhdGgpLCBwYXRoLCBjb250ZW50
VHlwZSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
VGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRh
YmxlQmxvYlJlZ2lzdHJ5LmgKaW5kZXggYTljNzlmZTIyOTJmODk1YjMxYzYwZjc1NjdmZmQwNDkz
ZmVkYzgzMi4uZWNiNzRmMTdjMDZkYmViYzczNDk4M2RiMzkyMWRjOTg5ODQxNTkzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmgKQEAgLTQw
LDcgKzQwLDcgQEAgY2xhc3MgU2VjdXJpdHlPcmlnaW47CiAKIGNsYXNzIFRocmVhZGFibGVCbG9i
UmVnaXN0cnkgewogcHVibGljOgotICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwo
Y29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBl
KTsKKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0IFVSTCYsIGNvbnN0
IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFBhdGgsIGNvbnN0IFN0cmlu
ZyYgY29udGVudFR5cGUpOwogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBV
UkwmLCBWZWN0b3I8QmxvYlBhcnQ+JiYgYmxvYlBhcnRzLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRU
eXBlKTsKICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckJsb2JVUkwoU2VjdXJpdHlPcmlnaW4qLCBj
b25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCk7CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJC
bG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkws
IGNvbnN0IFN0cmluZyYgZmlsZUJhY2tlZFBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EaXJlY3RvcnlGaWxlTGlzdENyZWF0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IuY3Bw
CmluZGV4IDFhZjllYjIyYzRhNjQzNTIxNDFlNzE5NTZlNTJhNmNmZjYyYTBmNDcuLjgzZjZhYjA1
YjU4M2JhNTVjMmU5YzZkMDNhODg4ZmNiY2ZjMTNkMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvci5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgc3Rh
dGljIFJlZjxGaWxlTGlzdD4gY3JlYXRlRmlsZUxpc3QoY29uc3QgVmVjdG9yPEZpbGVDaG9vc2Vy
RmlsZUluZm8+JiBwYXRocykKICAgICAgICAgaWYgKEZpbGVTeXN0ZW06OmZpbGVJc0RpcmVjdG9y
eShpbmZvLnBhdGgsIEZpbGVTeXN0ZW06OlNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6Ok5vKSkK
ICAgICAgICAgICAgIGFwcGVuZERpcmVjdG9yeUZpbGVzKGluZm8ucGF0aCwgRmlsZVN5c3RlbTo6
cGF0aEdldEZpbGVOYW1lKGluZm8ucGF0aCksIGZpbGVPYmplY3RzKTsKICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgZmlsZU9iamVjdHMuYXBwZW5kKEZpbGU6OmNyZWF0ZShpbmZvLnBhdGgsIGlu
Zm8uZGlzcGxheU5hbWUpKTsKKyAgICAgICAgICAgIGZpbGVPYmplY3RzLmFwcGVuZChGaWxlOjpj
cmVhdGUoaW5mby5wYXRoLCBudWxsU3RyaW5nKCksIGluZm8uZGlzcGxheU5hbWUpKTsKICAgICB9
CiAgICAgcmV0dXJuIEZpbGVMaXN0OjpjcmVhdGUoV1RGTW92ZShmaWxlT2JqZWN0cykpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXggZjNjNzA5OGNiZjVlNGI4MjBl
YjY4MGY3Y2M0MjY1NWYwYjllMmQ2ZC4uZjk2ZDMyYjY3M2ViM2VkMDI0MzhjNWEzMjE5NDEwYmMx
MWEzM2YzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC0xMTcsOSAr
MTE3LDkgQEAgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+IEZpbGVJbnB1dFR5cGU6OmZpbGVz
RnJvbUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUMKICAgICBmaWxlcy5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KHNpemUgLyAyKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7IGkg
Kz0gMikgewogICAgICAgICBpZiAoIXN0YXRlW2kgKyAxXS5pc0VtcHR5KCkpCi0gICAgICAgICAg
ICBmaWxlcy51bmNoZWNrZWRBcHBlbmQoeyBzdGF0ZVtpXSwgc3RhdGVbaSArIDFdIH0pOworICAg
ICAgICAgICAgZmlsZXMudW5jaGVja2VkQXBwZW5kKHsgc3RhdGVbaV0sIG51bGxTdHJpbmcoKSwg
c3RhdGVbaSArIDFdIH0pOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBmaWxlcy51bmNoZWNr
ZWRBcHBlbmQoeyBzdGF0ZVtpXSB9KTsKKyAgICAgICAgICAgIGZpbGVzLnVuY2hlY2tlZEFwcGVu
ZCh7IHN0YXRlW2ldLCBudWxsU3RyaW5nKCksIG51bGxTdHJpbmcoKSB9KTsKICAgICB9CiAgICAg
cmV0dXJuIGZpbGVzOwogfQpAQCAtNDE0LDcgKzQxNCw3IEBAIHZvaWQgRmlsZUlucHV0VHlwZTo6
ZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBwYXRocywgY29u
c3QKIAogICAgIGlmICghYWxsb3dzRGlyZWN0b3JpZXMoKSkgewogICAgICAgICBhdXRvIGZpbGVz
ID0gcGF0aHMubWFwKFtdKGF1dG8mIGZpbGVJbmZvKSB7Ci0gICAgICAgICAgICByZXR1cm4gRmls
ZTo6Y3JlYXRlKGZpbGVJbmZvLnBhdGgsIGZpbGVJbmZvLmRpc3BsYXlOYW1lKTsKKyAgICAgICAg
ICAgIHJldHVybiBGaWxlOjpjcmVhdGUoZmlsZUluZm8ucGF0aCwgZmlsZUluZm8ucmVwbGFjZW1l
bnRQYXRoLCBmaWxlSW5mby5kaXNwbGF5TmFtZSk7CiAgICAgICAgIH0pOwogICAgICAgICBkaWRD
cmVhdGVGaWxlTGlzdChGaWxlTGlzdDo6Y3JlYXRlKFdURk1vdmUoZmlsZXMpKSwgaWNvbik7CiAg
ICAgICAgIHJldHVybjsKQEAgLTQ2OSwxMSArNDY5LDExIEBAIGJvb2wgRmlsZUlucHV0VHlwZTo6
cmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgICAgIFZl
Y3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiBmaWxlczsKICAgICAgICAgZmlsZXMucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eShwYXRocy5zaXplKCkpOwogICAgICAgICBmb3IgKGF1dG8mIHBhdGggOiBw
YXRocykKLSAgICAgICAgICAgIGZpbGVzLnVuY2hlY2tlZEFwcGVuZCh7IHBhdGggfSk7CisgICAg
ICAgICAgICBmaWxlcy51bmNoZWNrZWRBcHBlbmQoeyBwYXRoLCBudWxsU3RyaW5nKCksIG51bGxT
dHJpbmcoKSB9KTsKIAogICAgICAgICBmaWxlc0Nob3NlbihmaWxlcyk7CiAgICAgfSBlbHNlCi0g
ICAgICAgIGZpbGVzQ2hvc2VuKHsgRmlsZUNob29zZXJGaWxlSW5mbyB7IHBhdGhzWzBdIH0gfSk7
CisgICAgICAgIGZpbGVzQ2hvc2VuKHsgeyBwYXRoc1swXSwgbnVsbFN0cmluZygpLCBudWxsU3Ry
aW5nKCkgfSB9KTsKIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RmlsZUNob29zZXIuY3BwCmluZGV4IGFjN2Y1ZDQ3YmNmNDUzOGZlZDgwYzYyYjk5YzI0NzM1MDQ3
NDg4NWIuLjJjZGU1YmQ1NjI5NGQ5ZTliMDJmZGU0NWUzMmE3Nzk3NTNkNjk2MTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBG
aWxlQ2hvb3Nlcjo6Y2hvb3NlRmlsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lKQogICAgIGNob29z
ZUZpbGVzKGZpbGVuYW1lcyk7CiB9CiAKLXZvaWQgRmlsZUNob29zZXI6OmNob29zZUZpbGVzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpCit2b2lkIEZpbGVDaG9vc2VyOjpjaG9vc2VG
aWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgcmVwbGFjZW1lbnROYW1lcykKIHsKICAgICAvLyBGSVhNRTogVGhpcyBpcyBpbmVsZWdhbnQu
IFdlIHNob3VsZCBub3QgYmUgbG9va2luZyBhdCBzZXR0aW5ncyBoZXJlLgogICAgIGlmIChtX3Nl
dHRpbmdzLnNlbGVjdGVkRmlsZXMgPT0gZmlsZW5hbWVzKQpAQCAtNjgsOCArNjgsOCBAQCB2b2lk
IEZpbGVDaG9vc2VyOjpjaG9vc2VGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVz
KQogICAgICAgICByZXR1cm47CiAKICAgICBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4gZmls
ZXM7Ci0gICAgZm9yIChhdXRvJiBmaWxlbmFtZSA6IGZpbGVuYW1lcykKLSAgICAgICAgZmlsZXMu
YXBwZW5kKEZpbGVDaG9vc2VyRmlsZUluZm8oZmlsZW5hbWUpKTsKKyAgICBmb3IgKHNpemVfdCBp
ID0gMCwgc2l6ZSA9IGZpbGVuYW1lcy5zaXplKCk7IGkgPCBzaXplOyArK2kpCisgICAgICAgIGZp
bGVzLmFwcGVuZCh7IGZpbGVuYW1lc1tpXSwgaSA8IHJlcGxhY2VtZW50TmFtZXMuc2l6ZSgpID8g
cmVwbGFjZW1lbnROYW1lc1tpXSA6IG51bGxTdHJpbmcoKSwgbnVsbFN0cmluZygpIH0pOwogICAg
IG1fY2xpZW50LT5maWxlc0Nob3NlbihmaWxlcyk7CiB9CiAKQEAgLTg4LDcgKzg4LDcgQEAgdm9p
ZCBGaWxlQ2hvb3Nlcjo6Y2hvb3NlTWVkaWFGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmls
ZW5hbWVzLCBjb25zdCBTdHJpbmcKIAogICAgIFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiBm
aWxlczsKICAgICBmb3IgKGF1dG8mIGZpbGVuYW1lIDogZmlsZW5hbWVzKQotICAgICAgICBmaWxl
cy5hcHBlbmQoRmlsZUNob29zZXJGaWxlSW5mbyhmaWxlbmFtZSkpOworICAgICAgICBmaWxlcy5h
cHBlbmQoeyBmaWxlbmFtZSwgbnVsbFN0cmluZygpLCBudWxsU3RyaW5nKCkgfSk7CiAgICAgbV9j
bGllbnQtPmZpbGVzQ2hvc2VuKGZpbGVzLCBkaXNwbGF5U3RyaW5nLCBpY29uKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmgKaW5kZXggZTUxZWI5ZTg0Mzg3OTVhNzZmZWM5
YTNkYmY3YzZhMDg0ZWEwODg5NS4uYWI2OGRhY2JmYTc0MGNhNDhlYzFjMzQ1MmE4NjAyMTE2NmQ5
NzEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oCkBAIC00NiwxOCArNDYs
MTMgQEAgY2xhc3MgRmlsZUNob29zZXI7CiBjbGFzcyBJY29uOwogCiBzdHJ1Y3QgRmlsZUNob29z
ZXJGaWxlSW5mbyB7Ci0gICAgRmlsZUNob29zZXJGaWxlSW5mbyhjb25zdCBTdHJpbmcmIHBhdGgs
IGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUgPSBTdHJpbmcoKSkKLSAgICAgICAgOiBwYXRoKHBh
dGgpCi0gICAgICAgICwgZGlzcGxheU5hbWUoZGlzcGxheU5hbWUpCi0gICAgewotICAgIH0KLQog
ICAgIEZpbGVDaG9vc2VyRmlsZUluZm8gaXNvbGF0ZWRDb3B5KCkgY29uc3QKICAgICB7Ci0gICAg
ICAgIHJldHVybiB7IHBhdGguaXNvbGF0ZWRDb3B5KCksIGRpc3BsYXlOYW1lLmlzb2xhdGVkQ29w
eSgpIH07CisgICAgICAgIHJldHVybiB7IHBhdGguaXNvbGF0ZWRDb3B5KCksIHJlcGxhY2VtZW50
UGF0aC5pc29sYXRlZENvcHkoKSwgZGlzcGxheU5hbWUuaXNvbGF0ZWRDb3B5KCkgfTsKICAgICB9
CiAKICAgICBjb25zdCBTdHJpbmcgcGF0aDsKKyAgICBjb25zdCBTdHJpbmcgcmVwbGFjZW1lbnRQ
YXRoOwogICAgIGNvbnN0IFN0cmluZyBkaXNwbGF5TmFtZTsKIH07CiAKQEAgLTg3LDcgKzgyLDcg
QEAgcHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBjaG9vc2VGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBjaG9vc2VGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgY2hvb3NlRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgcmVwbGFjZW1lbnRQYXRocyA9IHsgfSk7CiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBpcyBhbG1vc3QgaWRl
bnRpY2FsIHRvIEZpbGVDaG9vc2VyOjpjaG9vc2VGaWxlcygpLiBXZSBzaG91bGQgbWVyZ2UgdGhp
cwogICAgIC8vIGZ1bmN0aW9uIHdpdGggRmlsZUNob29zZXI6OmNob29zZUZpbGVzKCkgYW5kIGhl
bmNlIHJlbW92ZSB0aGUgUExBVEZPUk0oSU9TX0ZBTUlMWSktZ3VhcmQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5j
cHAKaW5kZXggNWFiZmQ3NWNiNDk0NTZlNDJkMzlkNDRkM2JjMjI1OWFhZmZhNTIyNi4uZGZiNGI1
ODRhOGE4ZTIzNDY3Yjg0M2E5NWEzM2Y3ZDUxNzJjOTg0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmNwcApA
QCAtMzIsMTcgKzMyLDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQmxvYkRhdGFGaWxl
UmVmZXJlbmNlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2UoY29uc3QgU3RyaW5nJiBwYXRoKQorQmxv
YkRhdGFGaWxlUmVmZXJlbmNlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2UoY29uc3QgU3RyaW5nJiBw
YXRoLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50UGF0aCkKICAgICA6IG1fcGF0aChwYXRoKQor
ICAgICwgbV9yZXBsYWNlbWVudFBhdGgocmVwbGFjZW1lbnRQYXRoKQogewogfQogCiBCbG9iRGF0
YUZpbGVSZWZlcmVuY2U6On5CbG9iRGF0YUZpbGVSZWZlcmVuY2UoKQogewotI2lmIEVOQUJMRShG
SUxFX1JFUExBQ0VNRU5UKQogICAgIGlmICghbV9yZXBsYWNlbWVudFBhdGguaXNOdWxsKCkpCiAg
ICAgICAgIEZpbGVTeXN0ZW06OmRlbGV0ZUZpbGUobV9yZXBsYWNlbWVudFBhdGgpOwotI2VuZGlm
CiB9CiAKIGNvbnN0IFN0cmluZyYgQmxvYkRhdGFGaWxlUmVmZXJlbmNlOjpwYXRoKCkKQEAgLTUw
LDEwICs0OSw5IEBAIGNvbnN0IFN0cmluZyYgQmxvYkRhdGFGaWxlUmVmZXJlbmNlOjpwYXRoKCkK
ICNpZiBFTkFCTEUoRklMRV9SRVBMQUNFTUVOVCkKICAgICBpZiAobV9yZXBsYWNlbWVudFNob3Vs
ZEJlR2VuZXJhdGVkKQogICAgICAgICBnZW5lcmF0ZVJlcGxhY2VtZW50RmlsZSgpOwotCisjZW5k
aWYKICAgICBpZiAoIW1fcmVwbGFjZW1lbnRQYXRoLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4g
bV9yZXBsYWNlbWVudFBhdGg7Ci0jZW5kaWYKIAogICAgIHJldHVybiBtX3BhdGg7CiB9CkBAIC0x
MDEsNiArOTksMTMgQEAgdm9pZCBCbG9iRGF0YUZpbGVSZWZlcmVuY2U6OnN0YXJ0VHJhY2tpbmdN
b2RpZmljYXRpb25zKCkKICAgICAgICAgcmV0dXJuOwogI2VuZGlmCiAKKyAgICAvLyBUaGlzIGlz
IGEgcmVnaXN0ZXJlZCBibG9iIHdpdGggYSByZXBsYWNlbWVudCBmaWxlLiBHZXQgdGhlIE1ldGFk
YXRhIG9mIHRoZSByZXBsYWNlbWVudCBmaWxlLgorICAgIGlmICghbV9yZXBsYWNlbWVudFBhdGgu
aXNOdWxsKCkpIHsKKyAgICAgICAgbWV0YWRhdGEgPSBGaWxlU3lzdGVtOjpmaWxlTWV0YWRhdGFG
b2xsb3dpbmdTeW1saW5rcyhtX3JlcGxhY2VtZW50UGF0aCk7CisgICAgICAgIGlmICghbWV0YWRh
dGEpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgbV9zaXplID0gbWV0YWRhdGEu
dmFsdWUoKS5sZW5ndGg7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5oCmluZGV4IDY1ODgyOWQwN2ZjZmJkNmIw
MmEyMGUxY2IwMWZkYzlkNmRjYzA3YzkuLjhmY2JlOGMxMWYyMTM0OGNlZmU0OGVkMDI2NjVjNTVk
NjM2OTY3NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxv
YkRhdGFGaWxlUmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuaApAQCAtMzUsOSArMzUsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEJsb2JEYXRhRmlsZVJlZmVyZW5jZSA6IHB1
YmxpYyBSZWZDb3VudGVkPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4gewogcHVibGljOgotICAgIHN0
YXRpYyBSZWY8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXRo
KQorICAgIHN0YXRpYyBSZWY8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiBjcmVhdGUoY29uc3QgU3Ry
aW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50UGF0aCA9IHsgfSkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJsb2JEYXRhRmlsZVJlZmVyZW5jZShwYXRoKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJsb2JEYXRhRmlsZVJlZmVyZW5jZShwYXRo
LCByZXBsYWNlbWVudFBhdGgpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5CbG9iRGF0YUZpbGVS
ZWZlcmVuY2UoKTsKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBy
ZXZva2VGaWxlQWNjZXNzKCk7CiAKIHByb3RlY3RlZDoKLSAgICBCbG9iRGF0YUZpbGVSZWZlcmVu
Y2UoY29uc3QgU3RyaW5nJiBwYXRoKTsKKyAgICBCbG9iRGF0YUZpbGVSZWZlcmVuY2UoY29uc3Qg
U3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50UGF0aCk7CiAKIHByaXZhdGU6
CiAjaWYgRU5BQkxFKEZJTEVfUkVQTEFDRU1FTlQpCkBAIC02MCw4ICs2MCw4IEBAIHByaXZhdGU6
CiAjZW5kaWYKIAogICAgIFN0cmluZyBtX3BhdGg7Ci0jaWYgRU5BQkxFKEZJTEVfUkVQTEFDRU1F
TlQpCiAgICAgU3RyaW5nIG1fcmVwbGFjZW1lbnRQYXRoOworI2lmIEVOQUJMRShGSUxFX1JFUExB
Q0VNRU5UKQogICAgIGJvb2wgbV9yZXBsYWNlbWVudFNob3VsZEJlR2VuZXJhdGVkIHsgZmFsc2Ug
fTsKICNlbmRpZgogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtX3NpemUgeyAwIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuaAppbmRleCBmZTkxZTgx
YWFkNDMwMmUwM2RiOTY3YTQ2YTMwNmFjNmQ0MmNjZTU1Li40YjE1Y2RkYmUwZTRjNzZlOGY5MmIw
MDJkNjJhOWFiMDJiN2E2YmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvQmxvYlJlZ2lzdHJ5LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQg
QmxvYlJlZ2lzdHJ5IHsKIHB1YmxpYzoKIAogICAgIC8vIFJlZ2lzdGVycyBhIGJsb2IgVVJMIHJl
ZmVycmluZyB0byB0aGUgc3BlY2lmaWVkIGZpbGUuCi0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVy
RmlsZUJsb2JVUkwoY29uc3QgVVJMJiwgUmVmPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4mJiwgY29u
c3QgU3RyaW5nJiBjb250ZW50VHlwZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckZp
bGVCbG9iVVJMKGNvbnN0IFVSTCYsIFJlZjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYsIGNvbnN0
IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgPSAwOwogCiAgICAgLy8g
UmVnaXN0ZXJzIGEgYmxvYiBVUkwgcmVmZXJyaW5nIHRvIHRoZSBzcGVjaWZpZWQgYmxvYiBkYXRh
LgogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiwgVmVjdG9yPEJs
b2JQYXJ0PiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwCmluZGV4IDVjMTkyZjI5ZTYxNjdiMjE1YTE1NGJmOTk3YzZkZWIxYTJhY2Fi
MDguLmM4ZDZlZTdjOGE1MzFlMzhmYjAyMjcyNWRhN2Y2NTIwYmQ4NDg4NWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCkBAIC03MzIsNyArNzMyLDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6YWxsQ29va2llc0RlbGV0ZWQoKQogCiAjZW5kaWYKIAotdm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBV
UkwmIHVybCwgY29uc3QgU3RyaW5nJiBwYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBl
eHRlbnNpb25IYW5kbGUsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCit2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0IFVSTCYgdXJs
LCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRQYXRoLCBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUmJiBleHRlbnNpb25IYW5kbGUsIGNvbnN0IFN0cmluZyYgY29u
dGVudFR5cGUpCiB7CiAgICAgTkVUV09SS19QUk9DRVNTX01FU1NBR0VfQ0hFQ0soIXVybC5pc0Vt
cHR5KCkpOwogCkBAIC03NDAsNyArNzQwLDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6cmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmIHVybCwgY29uc3QgU3QKICAg
ICBpZiAoIXNlc3Npb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIHNlc3Npb24tPmJsb2JSZWdp
c3RyeSgpLnJlZ2lzdGVyRmlsZUJsb2JVUkwodXJsLCBCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRo
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKHBhdGgsIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShX
VEZNb3ZlKGV4dGVuc2lvbkhhbmRsZSkpKSwgY29udGVudFR5cGUpOworICAgIHNlc3Npb24tPmJs
b2JSZWdpc3RyeSgpLnJlZ2lzdGVyRmlsZUJsb2JVUkwodXJsLCBCbG9iRGF0YUZpbGVSZWZlcmVu
Y2VXaXRoU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKHBhdGgsIHJlcGxhY2VtZW50UGF0aCwgU2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdURk1vdmUoZXh0ZW5zaW9uSGFuZGxlKSkpLCBjb250ZW50
VHlwZSk7CiB9CiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlZ2lzdGVy
QmxvYlVSTChjb25zdCBVUkwmIHVybCwgVmVjdG9yPEJsb2JQYXJ0PiYmIGJsb2JQYXJ0cywgY29u
c3QgU3RyaW5nJiBjb250ZW50VHlwZSkKQEAgLTc2OSw3ICs3NjksNyBAQCB2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tl
ZChjb25zdCBVUgogICAgIGlmICghc2Vzc2lvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgc2Vz
c2lvbi0+YmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQo
dXJsLCBzcmNVUkwsIEJsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGUoZmlsZUJhY2tlZFBhdGgsIG51bGxwdHIpLCBjb250ZW50VHlwZSk7CisgICAgc2Vzc2lv
bi0+YmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQodXJs
LCBzcmNVUkwsIEJsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uOjpjcmVh
dGUoZmlsZUJhY2tlZFBhdGgpLCBjb250ZW50VHlwZSk7CiB9CiAKIHZvaWQgTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNvbnN0IFVSTCYgdXJs
LCBjb25zdCBVUkwmIHNyY1VSTCwgaW50NjRfdCBzdGFydCwgaW50NjRfdCBlbmQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgKaW5kZXggZTgyMzAwMDllYzk2YmZlZWYyMDk4YTFhZWVlN2EyN2FjMzk4
YzNkYS4uMThjY2VkOTdjNjUzMmEzNmE3MGEzMWRkNzFkNmFmYmFmOGQ2NmU5MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaApAQCAtMjE1LDcgKzIxNSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBz
ZXRSYXdDb29raWUoY29uc3QgV2ViQ29yZTo6Q29va2llJik7CiAgICAgdm9pZCBkZWxldGVDb29r
aWUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKTsKIAotICAgIHZvaWQgcmVn
aXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHBhdGgsIFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKKyAgICB2b2lk
IHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25z
dCBTdHJpbmcmIHJlcGxhY2VtZW50UGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYsIGNv
bnN0IFN0cmluZyYgY29udGVudFR5cGUpOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0
IFVSTCYsIFZlY3RvcjxXZWJDb3JlOjpCbG9iUGFydD4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50
VHlwZSk7CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxGcm9tVVJMKGNvbnN0IFVSTCYsIGNvbnN0
IFVSTCYgc3JjVVJMKTsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFj
a2VkKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBjb25zdCBTdHJpbmcmIGZpbGVCYWNr
ZWRQYXRoLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDIyMDBkNGM0YWQyMGNmNmMyZjFhNWI3YTQwMzZi
MDY3NDgwMTQzZWUuLjdiODIyNTIzMjcwMGFhNjg4YzlkODRhYWMwNDIwYzQ5N2I2ZTVjZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNDYsNyArNDYs
NyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNl
aXZlciB7CiAgICAgVW5zdWJzY3JpYmVGcm9tQ29va2llQ2hhbmdlTm90aWZpY2F0aW9ucyhIYXNo
U2V0PFN0cmluZz4gaG9zdHMpCiAjZW5kaWYKIAotICAgIFJlZ2lzdGVyRmlsZUJsb2JVUkwoVVJM
IHVybCwgU3RyaW5nIHBhdGgsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGV4dGVu
c2lvbkhhbmRsZSwgU3RyaW5nIGNvbnRlbnRUeXBlKQorICAgIFJlZ2lzdGVyRmlsZUJsb2JVUkwo
VVJMIHVybCwgU3RyaW5nIHBhdGgsIFN0cmluZyByZXBsYWNlbWVudFBhdGgsIFdlYktpdDo6U2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlIGV4dGVuc2lvbkhhbmRsZSwgU3RyaW5nIGNvbnRlbnRUeXBl
KQogICAgIFJlZ2lzdGVyQmxvYlVSTChVUkwgdXJsLCBWZWN0b3I8V2ViQ29yZTo6QmxvYlBhcnQ+
IGJsb2JQYXJ0cywgU3RyaW5nIGNvbnRlbnRUeXBlKQogICAgIFJlZ2lzdGVyQmxvYlVSTEZyb21V
UkwoVVJMIHVybCwgVVJMIHNyY1VSTCkKICAgICBSZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5Rmls
ZUJhY2tlZChVUkwgdXJsLCBVUkwgc3JjVVJMLCBTdHJpbmcgZmlsZUJhY2tlZFBhdGgsIFN0cmlu
ZyBjb250ZW50VHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggZjY5
NjAxY2VmMGVmYzkzZGJlZDNlMDUzZDUzNDA4MTQ3YmUzZWQ5Ny4uY2ZmYzk5ZjgyYjA0NGM0OWIw
NTAyYmU5NWRjYzhjYjg5OTFjMjIwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5j
cHAKQEAgLTU3LDcgKzU3LDcgQEAgQmxvYlJlZ2lzdHJ5KiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3Jt
U3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKIHsKICAgICB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKICAgICBjbGFzcyBFbXB0eUJsb2JSZWdpc3RyeSA6IHB1YmxpYyBXZWJDb3JlOjpC
bG9iUmVnaXN0cnkgewotICAgICAgICB2b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJM
JiwgUmVmPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlw
ZSkgZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgICAgICB2b2lkIHJlZ2lzdGVy
RmlsZUJsb2JVUkwoY29uc3QgVVJMJiwgUmVmPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4mJiwgY29u
c3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVS
TCYsIFZlY3RvcjxCbG9iUGFydD4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwg
eyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChj
b25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCkgZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQogICAgICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKGNv
bnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8QmxvYkRhdGFGaWxlUmVmZXJlbmNl
PiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9CbG9iRGF0YUZpbGVSZWZl
cmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9CbG9i
RGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbi5jcHAKaW5kZXggZmM3NGI2MDE3
M2M1NTI1OTBiNTRlMzQwYzY2YWUxZmEzNjg0NTcwYS4uOWE1NmUzOWI5MjZiOTY2MjQ1ZDY5YjU3
OTIyM2QxMDFmMDU1ZmRiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQmxvYkRh
dGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uLmNwcApA
QCAtMzAsOCArMzAsOCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotQmxvYkRhdGFGaWxlUmVm
ZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb246OkJsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5k
Ym94RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgcGF0aCwgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+
JiYgc2FuZGJveEV4dGVuc2lvbikKLSAgICA6IEJsb2JEYXRhRmlsZVJlZmVyZW5jZShwYXRoKQor
QmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb246OkJsb2JEYXRhRmlsZVJl
ZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3Ry
aW5nJiByZXBsYWNlbWVudFBhdGgsIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiYmIHNhbmRib3hF
eHRlbnNpb24pCisgICAgOiBCbG9iRGF0YUZpbGVSZWZlcmVuY2UocGF0aCwgcmVwbGFjZW1lbnRQ
YXRoKQogICAgICwgbV9zYW5kYm94RXh0ZW5zaW9uKFdURk1vdmUoc2FuZGJveEV4dGVuc2lvbikp
CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9CbG9iRGF0YUZpbGVSZWZl
cmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQmxvYkRh
dGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb24uaAppbmRleCA3NWE1ZDRkMGNiYmVj
MDg1YWZkZGIzOGZlYmI1MzNlNzM2NDA2MzI2Li43YjgzMjlmMjI5YTU1ZmQ0ZGJjM2M0NDY4Mzc5
YmIzMWJmMTAzNTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9CbG9iRGF0YUZp
bGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uLmgKQEAgLTM0LDEz
ICszNCwxMyBAQCBjbGFzcyBTYW5kYm94RXh0ZW5zaW9uOwogCiBjbGFzcyBCbG9iRGF0YUZpbGVS
ZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbiBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpCbG9i
RGF0YUZpbGVSZWZlcmVuY2UgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QmxvYkRhdGFGaWxl
UmVmZXJlbmNlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXRoLCBSZWZQdHI8U2FuZGJveEV4dGVu
c2lvbj4mJiBzYW5kYm94RXh0ZW5zaW9uKQorICAgIHN0YXRpYyBSZWY8QmxvYkRhdGFGaWxlUmVm
ZXJlbmNlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIHJlcGxhY2Vt
ZW50UGF0aCA9IHsgfSwgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+JiYgc2FuZGJveEV4dGVuc2lv
biA9IG51bGxwdHIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCbG9iRGF0
YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbihwYXRoLCBXVEZNb3ZlKHNhbmRib3hF
eHRlbnNpb24pKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJsb2JEYXRhRmlsZVJl
ZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uKHBhdGgsIHJlcGxhY2VtZW50UGF0aCwgV1RGTW92
ZShzYW5kYm94RXh0ZW5zaW9uKSkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBCbG9iRGF0YUZp
bGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIHBhdGgsIFJlZlB0
cjxTYW5kYm94RXh0ZW5zaW9uPiYmKTsKKyAgICBCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2Fu
ZGJveEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1l
bnRQYXRoLCBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4mJik7CiAgICAgdmlydHVhbCB+QmxvYkRh
dGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb24oKTsKIAogICAgIHZvaWQgcHJlcGFy
ZUZvckZpbGVBY2Nlc3MoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCmluZGV4IDZiNDAwZGMwNjIxMTNiYmM5MTBiYjU0OWI0OTFkNDExYmQ5MzZlZGIu
LmJiM2NmYmQ0MmY5YWQwYjFkNjBlNDI3NjFiODlmNjg3ODc1OTY3MmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjcwMCw3ICs2NzAwLDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZENob29zZUZpbGVzRm9yT3BlblBhbmVsKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBmaWxlVVJMcykKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpFeHRlbmRTYW5kYm94
Rm9yRmlsZXNGcm9tT3BlblBhbmVsKFdURk1vdmUoc2FuZGJveEV4dGVuc2lvbkhhbmRsZXMpKSk7
CiAjZW5kaWYKIAotICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZENob29zZUZpbGVzRm9y
T3BlblBhbmVsKGZpbGVVUkxzKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkQ2hv
b3NlRmlsZXNGb3JPcGVuUGFuZWwoZmlsZVVSTHMsIHsgfSkpOwogCiAgICAgbV9vcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lci0+aW52YWxpZGF0ZSgpOwogICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXIgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVB
UEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVB
UEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwCmluZGV4IDhmNDdiOGYwNzBlMWYyOTgzMzQ1MzhkY2E4
Y2Y0ZDRlNGEzOTRjNGIuLjkwM2Y5NDFkNzU4MjdlNzI1NzJlZmI4MjFiNmQyM2VhOWNmYmFkZTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3Ry
eVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVn
aXN0cnlQcm94eS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXZvaWQgQmxvYlJlZ2lzdHJ5UHJveHk6OnJlZ2lzdGVy
RmlsZUJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIFJlZjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYg
ZmlsZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkKK3ZvaWQgQmxvYlJlZ2lzdHJ5UHJveHk6
OnJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIFJlZjxCbG9iRGF0YUZpbGVSZWZl
cmVuY2U+JiYgZmlsZSwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRU
eXBlKQogewogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBleHRlbnNpb25IYW5kbGU7CiAK
QEAgLTQ0LDcgKzQ0LDggQEAgdm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6cmVnaXN0ZXJGaWxlQmxv
YlVSTChjb25zdCBVUkwmIHVybCwgUmVmPEJsb2JEYXRhRmlsZVJlZmUKICAgICBpZiAoIWZpbGUt
PnBhdGgoKS5pc0VtcHR5KCkpCiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZShmaWxlLT5wYXRoKCksIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRPbmx5LCBleHRlbnNp
b25IYW5kbGUpOwogCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpSZWdpc3RlckZpbGVCbG9iVVJMKHVybCwgZmlsZS0+cGF0aCgp
LCBleHRlbnNpb25IYW5kbGUsIGNvbnRlbnRUeXBlKSwgMCk7CisgICAgU3RyaW5nIHJlcGxhY2Vt
ZW50UGF0aCA9IHBhdGggPT0gZmlsZS0+cGF0aCgpID8gbnVsbFN0cmluZygpIDogZmlsZS0+cGF0
aCgpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6UmVnaXN0ZXJGaWxlQmxvYlVSTCh1cmwsIHBhdGgsIHJlcGxhY2VtZW50UGF0
aCwgZXh0ZW5zaW9uSGFuZGxlLCBjb250ZW50VHlwZSksIDApOwogfQogCiB2b2lkIEJsb2JSZWdp
c3RyeVByb3h5OjpyZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxCbG9iUGFy
dD4mJiBibG9iUGFydHMsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuaAppbmRleCA0
MDk4NGRiMjdkYWRkN2Q2NWU5YTUxYWMxNzJkMDU3NzE5MmQ0YTM4Li5lODM3YTY5NjRlMDQ3ZDNh
NDViMzIwZWQwMzZiNmE4YTczMDNmNjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgKQEAgLTMxLDcgKzMxLDcgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEJsb2JSZWdpc3RyeVByb3h5IGZpbmFsIDogcHVibGlj
IFdlYkNvcmU6OkJsb2JSZWdpc3RyeSB7CiBwdWJsaWM6Ci0gICAgdm9pZCByZWdpc3RlckZpbGVC
bG9iVVJMKGNvbnN0IFVSTCYsIFJlZjxXZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYs
IGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsOworICAgIHZvaWQgcmVnaXN0ZXJGaWxl
QmxvYlVSTChjb25zdCBVUkwmLCBSZWY8V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYm
LCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsOwog
ICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYsIFZlY3RvcjxXZWJDb3JlOjpCbG9i
UGFydD4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWw7CiAgICAgdm9pZCByZWdp
c3RlckJsb2JVUkwoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwpIGZpbmFsOwogICAgIHZv
aWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiwgY29uc3Qg
VVJMJiBzcmNVUkwsIFJlZlB0cjxXZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYsIGNv
bnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIu
Y3BwCmluZGV4IGQ5ODM0M2M0NTE5NzAwNWFlYTM2YTk2ZDExMmI0ZDVlNmJmZDkyYWMuLmQyYWFl
ZjUzOWYzNjY1NDEyYjRjZmZiZGVkNWJhOWU2MmE0OTUwNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lci5jcHAKQEAgLTQ2LDkgKzQ2LDkgQEAgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI6
On5XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcigpCiB7CiB9CiAKLXZvaWQgV2ViT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXI6OmRpZENob29zZUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxl
cykKK3ZvaWQgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI6OmRpZENob29zZUZpbGVzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBmaWxlcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHJlcGxhY2VtZW50
RmlsZXMpCiB7Ci0gICAgbV9maWxlQ2hvb3Nlci0+Y2hvb3NlRmlsZXMoZmlsZXMpOworICAgIG1f
ZmlsZUNob29zZXItPmNob29zZUZpbGVzKGZpbGVzLCByZXBsYWNlbWVudEZpbGVzKTsKIH0KIAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuaAppbmRleCBk
MGQ4NTliOGQzMDYzZjQ3YTYxNmMyMDQwZWYzN2ViNGZkMWJkMGY5Li45ZTY3MGI1MDhiNDZiY2Fm
MmM3MGU5ODE2ZmJjODUxODY3ZGUzM2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmgKQEAg
LTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIH5XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcigp
OwogCiAgICAgdm9pZCBkaXNjb25uZWN0RnJvbVBhZ2UoKSB7IG1fcGFnZSA9IDA7IH0KLSAgICB2
b2lkIGRpZENob29zZUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisgICAgdm9pZCBkaWRD
aG9vc2VGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZXMsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiByZXBsYWNlbWVudEZpbGVzKTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHZv
aWQgZGlkQ2hvb3NlRmlsZXNXaXRoRGlzcGxheVN0cmluZ0FuZEljb24oY29uc3QgVmVjdG9yPFN0
cmluZz4mLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlTdHJpbmcsIFdlYkNvcmU6Okljb24qKTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCA0ODgwMDZmN2MzMThhOWUzY2NjYzliNzg0Njk1ZTNjMmJmNjhiOWM5Li41MmM4MmU0Yjk1ZTY4
MzcyNmU5Zjk5YTY0MTlkZjc1Y2JlNTI0NmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDMwMSwxMiArNDMwMSwxMiBAQCB2b2lkIFdlYlBh
Z2U6OmRpZENob29zZUZpbGVzRm9yT3BlblBhbmVsV2l0aERpc3BsYXlTdHJpbmdBbmRJY29uKGNv
bnN0IFZlY3RvcjxTdAogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZTo6ZGlkQ2hvb3NlRmlsZXNG
b3JPcGVuUGFuZWwoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVzKQordm9pZCBXZWJQYWdlOjpk
aWRDaG9vc2VGaWxlc0Zvck9wZW5QYW5lbChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZXMsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiByZXBsYWNlbWVudEZpbGVzKQogewogICAgIGlmICghbV9hY3Rp
dmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9hY3Rp
dmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci0+ZGlkQ2hvb3NlRmlsZXMoZmlsZXMpOworICAgIG1f
YWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXItPmRpZENob29zZUZpbGVzKGZpbGVzLCByZXBs
YWNlbWVudEZpbGVzKTsKICAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gbnVs
bHB0cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmlu
ZGV4IDkyMDQxODYyZTNjMjMwZjk4NGU1MGNiMjY5MzZmMDllNWUxZjZmMzYuLmJiOWQ1MTQ2OWFk
ZDJjZjJmMmMxNTljYjM2MDVhYWVmNzIwMWE2ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE2MDIsNyArMTYwMiw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBmYWlsZWRUb1Nob3dQb3B1cE1lbnUoKTsKICNlbmRpZgogCi0gICAgdm9pZCBkaWRDaG9v
c2VGaWxlc0Zvck9wZW5QYW5lbChjb25zdCBWZWN0b3I8U3RyaW5nPiYpOworICAgIHZvaWQgZGlk
Q2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVzLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgcmVwbGFjZW1lbnRGaWxlcyk7CiAgICAgdm9pZCBkaWRDYW5jZWxG
b3JPcGVuUGFuZWwoKTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA2
ODg5ZDYyMzJiOWZlNTU3YTE5YTM5MGEzYWZlNDRkODczZjY5ZTA5Li5jNWUzNDMxZjYxNzQ4YzFk
NDEwZDBiZDQ1MjVjZjIxZTRmNjZjNmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTM0Myw3ICszNDMsNyBAQCBH
ZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRo
ZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgRGlk
Q2hvb3NlRmlsZXNGb3JPcGVuUGFuZWxXaXRoRGlzcGxheVN0cmluZ0FuZEljb24oVmVjdG9yPFN0
cmluZz4gZmlsZVVSTHMsIFN0cmluZyBkaXNwbGF5U3RyaW5nLCBJUEM6OkRhdGFSZWZlcmVuY2Ug
aWNvbkRhdGEsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGZyb250Ym9hcmRTZXJ2
aWNlc1NhbmRib3hFeHRlbnNpb24sIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGlj
b25TZXJ2aWNlc1NhbmRib3hFeHRlbnNpb24pCiAjZW5kaWYKLSAgICBEaWRDaG9vc2VGaWxlc0Zv
ck9wZW5QYW5lbChWZWN0b3I8U3RyaW5nPiBmaWxlVVJMcykKKyAgICBEaWRDaG9vc2VGaWxlc0Zv
ck9wZW5QYW5lbChWZWN0b3I8U3RyaW5nPiBmaWxlVVJMcywgVmVjdG9yPFN0cmluZz4gcmVwbGFj
ZW1lbnRVUkxzKQogICAgIERpZENhbmNlbEZvck9wZW5QYW5lbCgpCiAjaWYgRU5BQkxFKFNBTkRC
T1hfRVhURU5TSU9OUykKICAgICBFeHRlbmRTYW5kYm94Rm9yRmlsZXNGcm9tT3BlblBhbmVsKFdl
YktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgc2FuZGJveEV4dGVuc2lvbnMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KaW5kZXggMmM4MDMwY2E4OTZlYmRhNjlmNTUxNzk5
ZWNmZTEzN2ZmMTJkYzlhNC4uZmFmOTNiNzNhMmIwMTQxMDM4MDVhNWNjNmJjYTdiNjUzYTY1Mjdi
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQpAQCAtOTMsNyArOTMsNyBAQCBNZWRp
YVN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlhU3RyYXRlZ3koKQog
CiBjbGFzcyBXZWJCbG9iUmVnaXN0cnkgZmluYWwgOiBwdWJsaWMgQmxvYlJlZ2lzdHJ5IHsKIHBy
aXZhdGU6Ci0gICAgdm9pZCByZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBSZWY8
QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmIHJlZmVyZW5jZSwgY29uc3QgU3RyaW5nJiBjb250ZW50
VHlwZSkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckZpbGVCbG9iVVJMKHVybCwgV1RG
TW92ZShyZWZlcmVuY2UpLCBjb250ZW50VHlwZSk7IH0KKyAgICB2b2lkIHJlZ2lzdGVyRmlsZUJs
b2JVUkwoY29uc3QgVVJMJiB1cmwsIFJlZjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYgcmVmZXJl
bmNlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IG1f
YmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyRmlsZUJsb2JVUkwodXJsLCBXVEZNb3ZlKHJlZmVyZW5jZSks
IGNvbnRlbnRUeXBlKTsgfQogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYgdXJs
LCBWZWN0b3I8QmxvYlBhcnQ+JiYgcGFydHMsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZp
bmFsIHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJCbG9iVVJMKHVybCwgV1RGTW92ZShwYXJ0cyks
IGNvbnRlbnRUeXBlKTsgfQogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYgdXJs
LCBjb25zdCBVUkwmIHNyY1VSTCkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckJsb2JV
UkwodXJsLCBzcmNVUkwpOyB9CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5Rmls
ZUJhY2tlZChjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkwsIFJlZlB0cjxCbG9iRGF0
YUZpbGVSZWZlcmVuY2U+JiYgcmVmZXJlbmNlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBm
aW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2Vk
KHVybCwgc3JjVVJMLCBXVEZNb3ZlKHJlZmVyZW5jZSksIGNvbnRlbnRUeXBlKTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggOWIyNTdmNGYyNTUyZWZmMDJlZDQ3YmNlODUz
N2RkNDQ3MGE0MzE3ZS4uNDc1YjIxZjE3MzcyZjhlODgzZDkxMzYzYzQwOWU4YWE0ZmE0NjQwYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC04MCw3ICs4MCw3IEBAIE1lZGlh
U3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFTdHJhdGVneSgpCiAK
IGNsYXNzIFdlYkJsb2JSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBCbG9iUmVnaXN0cnkgewogcHJp
dmF0ZToKLSAgICB2b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIFJlZjxC
bG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYgcmVmZXJlbmNlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRU
eXBlKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyRmlsZUJsb2JVUkwodXJsLCBXVEZN
b3ZlKHJlZmVyZW5jZSksIGNvbnRlbnRUeXBlKTsgfQorICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxv
YlVSTChjb25zdCBVUkwmIHVybCwgUmVmPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4mJiByZWZlcmVu
Y2UsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsIHsgbV9i
bG9iUmVnaXN0cnkucmVnaXN0ZXJGaWxlQmxvYlVSTCh1cmwsIFdURk1vdmUocmVmZXJlbmNlKSwg
Y29udGVudFR5cGUpOyB9CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiB1cmws
IFZlY3RvcjxCbG9iUGFydD4mJiBwYXJ0cywgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmlu
YWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckJsb2JVUkwodXJsLCBXVEZNb3ZlKHBhcnRzKSwg
Y29udGVudFR5cGUpOyB9CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiB1cmws
IGNvbnN0IFVSTCYgc3JjVVJMKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyQmxvYlVS
TCh1cmwsIHNyY1VSTCk7IH0KICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxl
QmFja2VkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTCwgUmVmUHRyPEJsb2JEYXRh
RmlsZVJlZmVyZW5jZT4mJiByZWZlcmVuY2UsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZp
bmFsIHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQo
dXJsLCBzcmNVUkwsIFdURk1vdmUocmVmZXJlbmNlKSwgY29udGVudFR5cGUpOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403322</attachid>
            <date>2020-07-01 14:58:04 -0700</date>
            <delta_ts>2020-07-01 20:09:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213825-20200701145803.patch</filename>
            <type>text/plain</type>
            <size>38707</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGY5MWMzMjhlYjk2ZjFj
MmQ1ZWU2MjJlOTE4OWJiN2FlYTI1MjgwYi4uNzI5NWY5NDAwZThjYzdjNjkwNGZhZmU3NGRmZjVj
YTRiOTZjMGQ1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIwLTA3LTAxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cg
dGhlIEZpbGUgb2JqZWN0IHRvIGJlIGNyZWF0ZWQgd2l0aCBhIHJlcGxhY2VtZW50IGZpbGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzgyNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFdvcmtpbmcgdG93YXJk
cyB3ZWJraXQub3JnL2IvMjEzMzQ3LCBpdCBuZWVkcyB0byBiZSBwb3NzaWJsZSB0byBjcmVhdGUg
CisgICAgICAgIHRoZSBGaWxlIG9iamVjdCB3aXRoIGFuIG9wdGlvbmFsIHJlcGxhY2VtZW50IGZp
bGUuIE9ubHkgdGhlIHJlZ2lzdGVyZWQKKyAgICAgICAgQmxvYkRhdGFGaWxlUmVmZXJlbmNlIHdp
bGwgYmUgY3JlYXRlZCB3aXRoIGJvdGggdGhlIG9yaWdpbmFsIGZpbGUgcGF0aAorICAgICAgICBh
bmQgdGhlIHJlcGxhY2VtZW50IGZpbGUgcGF0aC4gU28gaXQgY2FuIGRlbGV0ZSB0aGUgcmVwbGFj
ZW1lbnQgZmlsZSB3aGVuCisgICAgICAgIGl0IGlzIGRlc3Ryb3llZC4gT3RoZXJ3aXNlIEJsb2JE
YXRhRmlsZVJlZmVyZW5jZSB3aWxsIGJlIGNyZWF0ZWQgd2l0aCB0aGUKKyAgICAgICAgcmVwbGFj
ZW1lbnQgZmlsZSBwYXRoLgorCisgICAgICAgIEl0IGlzIGltcG9ydGFudCB0byBjcmVhdGUgdGhl
IEZpbGUgb2JqZWN0IHdpdGggdGhlIHJlcGxhY2VtZW50IGZpbGUgYmVjYXVzZQorICAgICAgICBp
dCBuZWVkcyB0byBnZXQgdGhlIG1ldGEtZGF0YSBhbmQgdGhlIGJ5dGVzIG9mIHRoZSByZXBsYWNl
bWVudCBmaWxlIG5vdAorICAgICAgICB0aGUgb3JpZ2luYWwgZmlsZS4KKworICAgICAgICAqIGZp
bGVhcGkvRmlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlOjpjcmVhdGUpOgorICAgICAg
ICAqIGZpbGVhcGkvRmlsZS5oOgorICAgICAgICAqIGZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdp
c3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdp
c3RlckZpbGVCbG9iVVJMKToKKyAgICAgICAgKiBmaWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0
cnkuaDoKKyAgICAgICAgKiBodG1sL0RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVGaWxlTGlzdCk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OmZpbGVzRnJvbUZvcm1D
b250cm9sU3RhdGUpOgorICAgICAgICBXaGVuIHRoZSBGaWxlcyBhcmUgY3JlYXRlZCBmcm9tIGEg
Rm9ybUNvbnRyb2xTdGF0ZSwgdGhleSB3aWxsIGJlIGNyZWF0ZWQKKyAgICAgICAgd2l0aG91dCBy
ZXBsYWNlbWVudCBmaWxlcyBzaW5jZSB0aGV5IG1pZ2h0IGhhdmUgYmVlbiBkZWxldGVkLgorCisg
ICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpmaWxlc0Nob3Nlbik6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpyZWNlaXZlRHJvcHBlZEZpbGVzKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlQ2hvb3Nlcjo6
Y2hvb3NlRmlsZXMpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUNob29zZXI6OmNob29zZU1lZGlh
RmlsZXMpOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmg6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlQ2hvb3NlckZpbGVJbmZvOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZUNob29zZXI6OmNob29zZUZpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkZp
bGVDaG9vc2VyRmlsZUluZm86OkZpbGVDaG9vc2VyRmlsZUluZm8pOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkJsb2JEYXRhRmlsZVJlZmVyZW5jZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlKToK
KyAgICAgICAgKFdlYkNvcmU6OkJsb2JEYXRhRmlsZVJlZmVyZW5jZTo6fkJsb2JEYXRhRmlsZVJl
ZmVyZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2U6OnBhdGgp
OgorICAgICAgICAoV2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlOjpzdGFydFRyYWNraW5n
TW9kaWZpY2F0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVS
ZWZlcmVuY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oOgor
CiAyMDIwLTA3LTAxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIEZpeCB0aGUgV2ViS2l0IGJ1aWxkIGFmdGVyIDxyZGFyOi8vcHJvYmxlbS82NDI4ODE5
MT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggYmYyNDk2MGNkYTdiN2ZhZGUyN2IzNzI1NGMwYmY3YzNkYzhhMTQxZi4u
NTA0OTlkODIwYzJlMDNhODdhZTBjZjM4NWFjZjdlNjQ2MTYxMzI1ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAyMC0wNy0wMSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FA
YXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IHRoZSBGaWxlIG9iamVjdCB0byBiZSBjcmVhdGVk
IHdpdGggYSByZXBsYWNlbWVudCBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTM4MjUKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KKworICAgICAgICBUaGUgVUlQcm9jZXNzIHBhc3NlcyBhIGxpc3Qgb2Ygc3RyaW5ncyB3aGlj
aCByZXByZXNlbnRzIHRoZSByZXBsYWNlbWVudAorICAgICAgICBwYXRocyBhbG9uZyB3aXRoIGEg
bGlzdCB0byB0aGUgb3JpZ2luYWwgcGF0aHMgdG8gdGhlIFdlYlByb2Nlc3MuIFRoZSAKKyAgICAg
ICAgV2ViUHJvY2VzcyBwYXNzZXMgdGhlc2UgdHdvIGxpc3QgdG8gRmlsZUNob29zZXIgd2hpY2gg
Y3JlYXRlcyB0aGUgRmlsZQorICAgICAgICBvYmplY3RzIGFuZCByZWdpc3RlciB0aGUgQmxvYnMu
CisKKyAgICAgICAgVGhlIFdlYlByb2Nlc3MgcmVnaXN0ZXJzIHRoZSBCbG9icyBpbiB0aGUgTmV0
d29ya1Byb2Nlc3Mgd2hpY2ggY3JlYXRlcworICAgICAgICBCbG9iRGF0YUZpbGVSZWZlcmVuY2Ug
b2JqZWN0cyB3aXRoIGJvdGggdGhlIG9yaWdpbmFsIHBhdGggYW5kIHRoZQorICAgICAgICByZXBs
YWNlbWVudCBwYXRoLgorCisgICAgICAgIFRoZSBXZWJQcm9jZXNzIHVucmVnaXN0ZXJzIHRoZSBC
bG9icyBmcm9tIHRoZSBOZXR3b3JrUHJvY2VzcyB3aGljaCBkZWxldGVzCisgICAgICAgIHRoZSBj
b3JyZXNwb25kaW5nIEJsb2JEYXRhRmlsZVJlZmVyZW5jZSBmcm9tIGl0cyByZWdpc3RyeS4gVXBv
biBkZXN0cm95aW5nCisgICAgICAgIHRoZSBCbG9iRGF0YUZpbGVSZWZlcmVuY2UsIHRoZSByZXBs
YWNlbWVudCBmaWxlIHNob3VsZCBiZSBkZWxldGVkLgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJGaWxlQmxvYlVSTCk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWdpc3RlckJsb2JV
UkxPcHRpb25hbGx5RmlsZUJhY2tlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVCbG9iUmVnaXN0
cnkpOgorICAgICAgICAqIFNoYXJlZC9CbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4
dGVuc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OkJsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhT
YW5kYm94RXh0ZW5zaW9uOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lv
bik6CisgICAgICAgICogU2hhcmVkL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0
ZW5zaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkJsb2JSZWdpc3RyeVByb3h5OjpyZWdpc3RlckZpbGVCbG9iVVJMKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjo6ZGlkQ2hvb3NlRmlsZXMpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6ZGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjAtMDctMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uKHIyNTkyNDIpIFdlYktpdCBubyBsb25n
ZXIgZG9lcyBjbGllbnQgbmF2aWdhdGlvbnMgYXQgZm9yZWdyb3VuZCBwcmlvcml0eSBmb3IgZXh0
ZW5zaW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGViZTMyNWE1MmRlYTlhMGRh
NzdjMWE0MDk1Mjk1NDQxYTA4N2Q0NDAuLjM5N2M2Mzg4NjkxMDA5Y2Q2NDhhODQyNTA4YmUwZjc2
Nzc2MWFiYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAyMC0wNy0wMSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgor
CisgICAgICAgIEFsbG93IHRoZSBGaWxlIG9iamVjdCB0byBiZSBjcmVhdGVkIHdpdGggYSByZXBs
YWNlbWVudCBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTM4MjUKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbToKKwogMjAyMC0wNi0z
MCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgU3BsaXQgQ29sb3Ig
c2VyaWFsaXphdGlvbiBvdXQgb2YgQ29sb3IgY2xhc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdl
TG9nCmluZGV4IDJiNTQzOTZhY2EyZWZiNDJlYWUyYjkxOWFlY2JhNjYwZWM3M2Y0N2YuLmVhN2Q5
YTJlZDAwZWI5NzIyZjA4MGFkZjkzOWQwN2Y4ODVmMjYwNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wNy0wMSAgU2FpZCBBYm91LUhhbGxhd2Eg
IDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IHRoZSBGaWxlIG9iamVj
dCB0byBiZSBjcmVhdGVkIHdpdGggYSByZXBsYWNlbWVudCBmaWxlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM4MjUKKworICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5jcHA6CisKIDIwMjAtMDYtMjggIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgaW5pdGlhbGl6ZVRocmVhZGluZyB0byBpbml0aWFs
aXplCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcAppbmRleCA4ZDZlMzg3Mzg1NTEzZGRkNDFlMDM3MjQw
OThiNDMyZWFjZWNlYmMwLi44YTc2YTczYzY2YjYzNzVkMTE0MWY1NGJkNzRiODA0MjNhOTA1ZmVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAKQEAgLTQ2LDE2ICs0NiwxNyBAQCBSZWY8RmlsZT4g
RmlsZTo6Y3JlYXRlV2l0aFJlbGF0aXZlUGF0aChjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0
cmluZyYgcmVsYXRpdgogICAgIHJldHVybiBmaWxlOwogfQogCi1SZWY8RmlsZT4gRmlsZTo6Y3Jl
YXRlKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBuYW1lT3ZlcnJpZGUpCitSZWY8
RmlsZT4gRmlsZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiByZXBs
YWNlbWVudFBhdGgsIGNvbnN0IFN0cmluZyYgbmFtZU92ZXJyaWRlKQogewogICAgIFN0cmluZyBu
YW1lOwogICAgIFN0cmluZyB0eXBlOwotICAgIGNvbXB1dGVOYW1lQW5kQ29udGVudFR5cGUocGF0
aCwgbmFtZU92ZXJyaWRlLCBuYW1lLCB0eXBlKTsKKyAgICBTdHJpbmcgZWZmZWN0aXZlUGF0aCA9
ICFyZXBsYWNlbWVudFBhdGguaXNOdWxsKCkgPyByZXBsYWNlbWVudFBhdGggOiBwYXRoOworICAg
IGNvbXB1dGVOYW1lQW5kQ29udGVudFR5cGUoZWZmZWN0aXZlUGF0aCwgbmFtZU92ZXJyaWRlLCBu
YW1lLCB0eXBlKTsKIAogICAgIGF1dG8gaW50ZXJuYWxVUkwgPSBCbG9iVVJMOjpjcmVhdGVJbnRl
cm5hbFVSTCgpOwotICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyRmlsZUJsb2JV
UkwoaW50ZXJuYWxVUkwsIHBhdGgsIHR5cGUpOworICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6
OnJlZ2lzdGVyRmlsZUJsb2JVUkwoaW50ZXJuYWxVUkwsIHBhdGgsIHJlcGxhY2VtZW50UGF0aCwg
dHlwZSk7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlKFdURk1vdmUoaW50ZXJuYWxV
UkwpLCBXVEZNb3ZlKHR5cGUpLCBTdHJpbmcgeyBwYXRoIH0sIFdURk1vdmUobmFtZSkpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlKFdURk1vdmUoaW50ZXJuYWxVUkwpLCBXVEZNb3Zl
KHR5cGUpLCBXVEZNb3ZlKGVmZmVjdGl2ZVBhdGgpLCBXVEZNb3ZlKG5hbWUpKSk7CiB9CiAKIEZp
bGU6OkZpbGUoVVJMJiYgdXJsLCBTdHJpbmcmJiB0eXBlLCBTdHJpbmcmJiBwYXRoLCBTdHJpbmcm
JiBuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaAppbmRleCBkMmY5MzhiNDIwZDNhNjBmYjkzZjc0MGJj
YjA0ZDc0MWY4M2VmZjc4Li44Nzk3NGQwMDNjMzlkY2U1ZDgzNGZjOTdmMDQ2OGZiMzJkZWQzMjhj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0ZpbGUuaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgfTsK
IAogICAgIC8vIENyZWF0ZSBhIGZpbGUgd2l0aCBhbiBvcHRpb25hbCBuYW1lIGV4cG9zZWQgdG8g
dGhlIGF1dGhvciAodmlhIEZpbGUubmFtZSBhbmQgYXNzb2NpYXRlZCBET00gcHJvcGVydGllcykg
dGhhdCBkaWZmZXJzIGZyb20gdGhlIG9uZSBwcm92aWRlZCBpbiB0aGUgcGF0aC4KLSAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHBhdGgsIGNv
bnN0IFN0cmluZyYgbmFtZU92ZXJyaWRlID0geyB9KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgUmVmPEZpbGU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgcmVw
bGFjZW1lbnRQYXRoID0geyB9LCBjb25zdCBTdHJpbmcmIG5hbWVPdmVycmlkZSA9IHsgfSk7CiAK
ICAgICAvLyBDcmVhdGUgYSBGaWxlIHVzaW5nIHRoZSAnbmV3IEZpbGUnIGNvbnN0cnVjdG9yLgog
ICAgIHN0YXRpYyBSZWY8RmlsZT4gY3JlYXRlKFZlY3RvcjxCbG9iUGFydFZhcmlhbnQ+JiYgYmxv
YlBhcnRWYXJpYW50cywgY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgUHJvcGVydHlCYWcm
IHByb3BlcnR5QmFnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRh
YmxlQmxvYlJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJs
b2JSZWdpc3RyeS5jcHAKaW5kZXggNWUxZDRjMDBhOWMwNjhjODAzMWMyNGNjZDYwYWIyMGE2YWZh
MDYwYi4uNzBjYmU2ZGQxNTI5N2Q2NmY5ZGJhNmRhMWMxY2QwMWVmZjA4ZmIzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwCkBAIC02
NCwxNSArNjQsMTcgQEAgc3RhdGljIFRocmVhZFNwZWNpZmljPEJsb2JVcmxPcmlnaW5NYXA+JiBv
cmlnaW5NYXAoKQogICAgIHJldHVybiAqbWFwOwogfQogCi12b2lkIFRocmVhZGFibGVCbG9iUmVn
aXN0cnk6OnJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
cGF0aCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkKK3ZvaWQgVGhyZWFkYWJsZUJsb2JSZWdp
c3RyeTo6cmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBw
YXRoLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50UGF0aCwgY29uc3QgU3RyaW5nJiBjb250ZW50
VHlwZSkKIHsKKyAgICBTdHJpbmcgZWZmZWN0aXZlUGF0aCA9ICFyZXBsYWNlbWVudFBhdGguaXNO
dWxsKCkgPyByZXBsYWNlbWVudFBhdGggOiBwYXRoOworCiAgICAgaWYgKGlzTWFpblRocmVhZCgp
KSB7Ci0gICAgICAgIGJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyRmlsZUJsb2JVUkwodXJsLCBCbG9i
RGF0YUZpbGVSZWZlcmVuY2U6OmNyZWF0ZShwYXRoKSwgY29udGVudFR5cGUpOworICAgICAgICBi
bG9iUmVnaXN0cnkoKS5yZWdpc3RlckZpbGVCbG9iVVJMKHVybCwgQmxvYkRhdGFGaWxlUmVmZXJl
bmNlOjpjcmVhdGUoZWZmZWN0aXZlUGF0aCksIHBhdGgsIGNvbnRlbnRUeXBlKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGNhbGxPbk1haW5UaHJlYWQoW3VybCA9IHVybC5pc29sYXRl
ZENvcHkoKSwgcGF0aCA9IHBhdGguaXNvbGF0ZWRDb3B5KCksIGNvbnRlbnRUeXBlID0gY29udGVu
dFR5cGUuaXNvbGF0ZWRDb3B5KCldIHsKLSAgICAgICAgYmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJG
aWxlQmxvYlVSTCh1cmwsIEJsb2JEYXRhRmlsZVJlZmVyZW5jZTo6Y3JlYXRlKHBhdGgpLCBjb250
ZW50VHlwZSk7CisgICAgY2FsbE9uTWFpblRocmVhZChbdXJsID0gdXJsLmlzb2xhdGVkQ29weSgp
LCBlZmZlY3RpdmVQYXRoID0gZWZmZWN0aXZlUGF0aC5pc29sYXRlZENvcHkoKSwgcGF0aCA9IHBh
dGguaXNvbGF0ZWRDb3B5KCksIGNvbnRlbnRUeXBlID0gY29udGVudFR5cGUuaXNvbGF0ZWRDb3B5
KCldIHsKKyAgICAgICAgYmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJGaWxlQmxvYlVSTCh1cmwsIEJs
b2JEYXRhRmlsZVJlZmVyZW5jZTo6Y3JlYXRlKGVmZmVjdGl2ZVBhdGgpLCBwYXRoLCBjb250ZW50
VHlwZSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
VGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRh
YmxlQmxvYlJlZ2lzdHJ5LmgKaW5kZXggYTljNzlmZTIyOTJmODk1YjMxYzYwZjc1NjdmZmQwNDkz
ZmVkYzgzMi4uZWNiNzRmMTdjMDZkYmViYzczNDk4M2RiMzkyMWRjOTg5ODQxNTkzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmgKQEAgLTQw
LDcgKzQwLDcgQEAgY2xhc3MgU2VjdXJpdHlPcmlnaW47CiAKIGNsYXNzIFRocmVhZGFibGVCbG9i
UmVnaXN0cnkgewogcHVibGljOgotICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwo
Y29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBl
KTsKKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0IFVSTCYsIGNvbnN0
IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFBhdGgsIGNvbnN0IFN0cmlu
ZyYgY29udGVudFR5cGUpOwogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBV
UkwmLCBWZWN0b3I8QmxvYlBhcnQ+JiYgYmxvYlBhcnRzLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRU
eXBlKTsKICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckJsb2JVUkwoU2VjdXJpdHlPcmlnaW4qLCBj
b25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCk7CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJC
bG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkws
IGNvbnN0IFN0cmluZyYgZmlsZUJhY2tlZFBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EaXJlY3RvcnlGaWxlTGlzdENyZWF0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IuY3Bw
CmluZGV4IDFhZjllYjIyYzRhNjQzNTIxNDFlNzE5NTZlNTJhNmNmZjYyYTBmNDcuLmYwMDk4OWRk
MDNmYzEyOTU2M2E4ODU0ODZkNWE1N2FhN2FkMjBkNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvci5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgc3Rh
dGljIFJlZjxGaWxlTGlzdD4gY3JlYXRlRmlsZUxpc3QoY29uc3QgVmVjdG9yPEZpbGVDaG9vc2Vy
RmlsZUluZm8+JiBwYXRocykKICAgICAgICAgaWYgKEZpbGVTeXN0ZW06OmZpbGVJc0RpcmVjdG9y
eShpbmZvLnBhdGgsIEZpbGVTeXN0ZW06OlNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6Ok5vKSkK
ICAgICAgICAgICAgIGFwcGVuZERpcmVjdG9yeUZpbGVzKGluZm8ucGF0aCwgRmlsZVN5c3RlbTo6
cGF0aEdldEZpbGVOYW1lKGluZm8ucGF0aCksIGZpbGVPYmplY3RzKTsKICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgZmlsZU9iamVjdHMuYXBwZW5kKEZpbGU6OmNyZWF0ZShpbmZvLnBhdGgsIGlu
Zm8uZGlzcGxheU5hbWUpKTsKKyAgICAgICAgICAgIGZpbGVPYmplY3RzLmFwcGVuZChGaWxlOjpj
cmVhdGUoaW5mby5wYXRoLCB7IH0sIGluZm8uZGlzcGxheU5hbWUpKTsKICAgICB9CiAgICAgcmV0
dXJuIEZpbGVMaXN0OjpjcmVhdGUoV1RGTW92ZShmaWxlT2JqZWN0cykpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXggZjNjNzA5OGNiZjVlNGI4MjBlYjY4MGY3Y2M0
MjY1NWYwYjllMmQ2ZC4uODZmM2QzMjY2YmFmMWVmMDQyMTkzMzhiZTAwNDk2ZjJiZDc1OTg4OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC0xMTUsMTIgKzExNSw4IEBA
IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiBGaWxlSW5wdXRUeXBlOjpmaWxlc0Zyb21Gb3Jt
Q29udHJvbFN0YXRlKGNvbnN0IEZvcm1DCiAgICAgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+
IGZpbGVzOwogICAgIHNpemVfdCBzaXplID0gc3RhdGUuc2l6ZSgpOwogICAgIGZpbGVzLnJlc2Vy
dmVJbml0aWFsQ2FwYWNpdHkoc2l6ZSAvIDIpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
c2l6ZTsgaSArPSAyKSB7Ci0gICAgICAgIGlmICghc3RhdGVbaSArIDFdLmlzRW1wdHkoKSkKLSAg
ICAgICAgICAgIGZpbGVzLnVuY2hlY2tlZEFwcGVuZCh7IHN0YXRlW2ldLCBzdGF0ZVtpICsgMV0g
fSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGZpbGVzLnVuY2hlY2tlZEFwcGVuZCh7IHN0
YXRlW2ldIH0pOwotICAgIH0KKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7IGkgKz0g
MikKKyAgICAgICAgZmlsZXMudW5jaGVja2VkQXBwZW5kKHsgc3RhdGVbaV0sIHsgfSwgc3RhdGVb
aSArIDFdIH0pOwogICAgIHJldHVybiBmaWxlczsKIH0KIApAQCAtNDE0LDcgKzQxMCw3IEBAIHZv
aWQgRmlsZUlucHV0VHlwZTo6ZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmls
ZUluZm8+JiBwYXRocywgY29uc3QKIAogICAgIGlmICghYWxsb3dzRGlyZWN0b3JpZXMoKSkgewog
ICAgICAgICBhdXRvIGZpbGVzID0gcGF0aHMubWFwKFtdKGF1dG8mIGZpbGVJbmZvKSB7Ci0gICAg
ICAgICAgICByZXR1cm4gRmlsZTo6Y3JlYXRlKGZpbGVJbmZvLnBhdGgsIGZpbGVJbmZvLmRpc3Bs
YXlOYW1lKTsKKyAgICAgICAgICAgIHJldHVybiBGaWxlOjpjcmVhdGUoZmlsZUluZm8ucGF0aCwg
ZmlsZUluZm8ucmVwbGFjZW1lbnRQYXRoLCBmaWxlSW5mby5kaXNwbGF5TmFtZSk7CiAgICAgICAg
IH0pOwogICAgICAgICBkaWRDcmVhdGVGaWxlTGlzdChGaWxlTGlzdDo6Y3JlYXRlKFdURk1vdmUo
ZmlsZXMpKSwgaWNvbik7CiAgICAgICAgIHJldHVybjsKQEAgLTQ2OSwxMSArNDY1LDExIEBAIGJv
b2wgRmlsZUlucHV0VHlwZTo6cmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBEcmFnRGF0YSYgZHJh
Z0RhdGEpCiAgICAgICAgIFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiBmaWxlczsKICAgICAg
ICAgZmlsZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShwYXRocy5zaXplKCkpOwogICAgICAgICBm
b3IgKGF1dG8mIHBhdGggOiBwYXRocykKLSAgICAgICAgICAgIGZpbGVzLnVuY2hlY2tlZEFwcGVu
ZCh7IHBhdGggfSk7CisgICAgICAgICAgICBmaWxlcy51bmNoZWNrZWRBcHBlbmQoeyBwYXRoLCB7
IH0sIHsgfSB9KTsKIAogICAgICAgICBmaWxlc0Nob3NlbihmaWxlcyk7CiAgICAgfSBlbHNlCi0g
ICAgICAgIGZpbGVzQ2hvc2VuKHsgRmlsZUNob29zZXJGaWxlSW5mbyB7IHBhdGhzWzBdIH0gfSk7
CisgICAgICAgIGZpbGVzQ2hvc2VuKHsgeyBwYXRoc1swXSwgeyB9LCB7IH0gfSB9KTsKIAogICAg
IHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmls
ZUNob29zZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwCmlu
ZGV4IGFjN2Y1ZDQ3YmNmNDUzOGZlZDgwYzYyYjk5YzI0NzM1MDQ3NDg4NWIuLjhlNGVjZTcwNTNh
ZThlOThlZmVjY2ZlNzY1MmY4NmNkMjk3NDA0MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9G
aWxlQ2hvb3Nlci5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBGaWxlQ2hvb3Nlcjo6Y2hvb3Nl
RmlsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lKQogICAgIGNob29zZUZpbGVzKGZpbGVuYW1lcyk7
CiB9CiAKLXZvaWQgRmlsZUNob29zZXI6OmNob29zZUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBmaWxlbmFtZXMpCit2b2lkIEZpbGVDaG9vc2VyOjpjaG9vc2VGaWxlcyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYgZmlsZW5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcmVwbGFjZW1lbnROYW1l
cykKIHsKICAgICAvLyBGSVhNRTogVGhpcyBpcyBpbmVsZWdhbnQuIFdlIHNob3VsZCBub3QgYmUg
bG9va2luZyBhdCBzZXR0aW5ncyBoZXJlLgogICAgIGlmIChtX3NldHRpbmdzLnNlbGVjdGVkRmls
ZXMgPT0gZmlsZW5hbWVzKQpAQCAtNjgsOCArNjgsOCBAQCB2b2lkIEZpbGVDaG9vc2VyOjpjaG9v
c2VGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzKQogICAgICAgICByZXR1cm47
CiAKICAgICBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4gZmlsZXM7Ci0gICAgZm9yIChhdXRv
JiBmaWxlbmFtZSA6IGZpbGVuYW1lcykKLSAgICAgICAgZmlsZXMuYXBwZW5kKEZpbGVDaG9vc2Vy
RmlsZUluZm8oZmlsZW5hbWUpKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9IGZpbGVu
YW1lcy5zaXplKCk7IGkgPCBzaXplOyArK2kpCisgICAgICAgIGZpbGVzLmFwcGVuZCh7IGZpbGVu
YW1lc1tpXSwgaSA8IHJlcGxhY2VtZW50TmFtZXMuc2l6ZSgpID8gcmVwbGFjZW1lbnROYW1lc1tp
XSA6IG51bGxTdHJpbmcoKSwgeyB9IH0pOwogICAgIG1fY2xpZW50LT5maWxlc0Nob3NlbihmaWxl
cyk7CiB9CiAKQEAgLTg4LDcgKzg4LDcgQEAgdm9pZCBGaWxlQ2hvb3Nlcjo6Y2hvb3NlTWVkaWFG
aWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBjb25zdCBTdHJpbmcKIAogICAg
IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiBmaWxlczsKICAgICBmb3IgKGF1dG8mIGZpbGVu
YW1lIDogZmlsZW5hbWVzKQotICAgICAgICBmaWxlcy5hcHBlbmQoRmlsZUNob29zZXJGaWxlSW5m
byhmaWxlbmFtZSkpOworICAgICAgICBmaWxlcy5hcHBlbmQoeyBmaWxlbmFtZSwgeyB9LCB7IH0g
fSk7CiAgICAgbV9jbGllbnQtPmZpbGVzQ2hvc2VuKGZpbGVzLCBkaXNwbGF5U3RyaW5nLCBpY29u
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmgKaW5kZXggZTUxZWI5ZTg0
Mzg3OTVhNzZmZWM5YTNkYmY3YzZhMDg0ZWEwODg5NS4uYWI2OGRhY2JmYTc0MGNhNDhlYzFjMzQ1
MmE4NjAyMTE2NmQ5NzEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmls
ZUNob29zZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5oCkBA
IC00NiwxOCArNDYsMTMgQEAgY2xhc3MgRmlsZUNob29zZXI7CiBjbGFzcyBJY29uOwogCiBzdHJ1
Y3QgRmlsZUNob29zZXJGaWxlSW5mbyB7Ci0gICAgRmlsZUNob29zZXJGaWxlSW5mbyhjb25zdCBT
dHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUgPSBTdHJpbmcoKSkKLSAgICAg
ICAgOiBwYXRoKHBhdGgpCi0gICAgICAgICwgZGlzcGxheU5hbWUoZGlzcGxheU5hbWUpCi0gICAg
ewotICAgIH0KLQogICAgIEZpbGVDaG9vc2VyRmlsZUluZm8gaXNvbGF0ZWRDb3B5KCkgY29uc3QK
ICAgICB7Ci0gICAgICAgIHJldHVybiB7IHBhdGguaXNvbGF0ZWRDb3B5KCksIGRpc3BsYXlOYW1l
Lmlzb2xhdGVkQ29weSgpIH07CisgICAgICAgIHJldHVybiB7IHBhdGguaXNvbGF0ZWRDb3B5KCks
IHJlcGxhY2VtZW50UGF0aC5pc29sYXRlZENvcHkoKSwgZGlzcGxheU5hbWUuaXNvbGF0ZWRDb3B5
KCkgfTsKICAgICB9CiAKICAgICBjb25zdCBTdHJpbmcgcGF0aDsKKyAgICBjb25zdCBTdHJpbmcg
cmVwbGFjZW1lbnRQYXRoOwogICAgIGNvbnN0IFN0cmluZyBkaXNwbGF5TmFtZTsKIH07CiAKQEAg
LTg3LDcgKzgyLDcgQEAgcHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjaG9vc2VGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCk7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjaG9vc2VGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2hvb3NlRmlsZXMoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIHBhdGhzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcmVwbGFjZW1lbnRQYXRocyA9IHsgfSk7
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBp
cyBhbG1vc3QgaWRlbnRpY2FsIHRvIEZpbGVDaG9vc2VyOjpjaG9vc2VGaWxlcygpLiBXZSBzaG91
bGQgbWVyZ2UgdGhpcwogICAgIC8vIGZ1bmN0aW9uIHdpdGggRmlsZUNob29zZXI6OmNob29zZUZp
bGVzKCkgYW5kIGhlbmNlIHJlbW92ZSB0aGUgUExBVEZPUk0oSU9TX0ZBTUlMWSktZ3VhcmQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJl
ZmVyZW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmls
ZVJlZmVyZW5jZS5jcHAKaW5kZXggNWFiZmQ3NWNiNDk0NTZlNDJkMzlkNDRkM2JjMjI1OWFhZmZh
NTIyNi4uZGZiNGI1ODRhOGE4ZTIzNDY3Yjg0M2E5NWEzM2Y3ZDUxNzJjOTg0NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVSZWZlcmVuY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVm
ZXJlbmNlLmNwcApAQCAtMzIsMTcgKzMyLDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
QmxvYkRhdGFGaWxlUmVmZXJlbmNlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2UoY29uc3QgU3RyaW5n
JiBwYXRoKQorQmxvYkRhdGFGaWxlUmVmZXJlbmNlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2UoY29u
c3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50UGF0aCkKICAgICA6IG1f
cGF0aChwYXRoKQorICAgICwgbV9yZXBsYWNlbWVudFBhdGgocmVwbGFjZW1lbnRQYXRoKQogewog
fQogCiBCbG9iRGF0YUZpbGVSZWZlcmVuY2U6On5CbG9iRGF0YUZpbGVSZWZlcmVuY2UoKQogewot
I2lmIEVOQUJMRShGSUxFX1JFUExBQ0VNRU5UKQogICAgIGlmICghbV9yZXBsYWNlbWVudFBhdGgu
aXNOdWxsKCkpCiAgICAgICAgIEZpbGVTeXN0ZW06OmRlbGV0ZUZpbGUobV9yZXBsYWNlbWVudFBh
dGgpOwotI2VuZGlmCiB9CiAKIGNvbnN0IFN0cmluZyYgQmxvYkRhdGFGaWxlUmVmZXJlbmNlOjpw
YXRoKCkKQEAgLTUwLDEwICs0OSw5IEBAIGNvbnN0IFN0cmluZyYgQmxvYkRhdGFGaWxlUmVmZXJl
bmNlOjpwYXRoKCkKICNpZiBFTkFCTEUoRklMRV9SRVBMQUNFTUVOVCkKICAgICBpZiAobV9yZXBs
YWNlbWVudFNob3VsZEJlR2VuZXJhdGVkKQogICAgICAgICBnZW5lcmF0ZVJlcGxhY2VtZW50Rmls
ZSgpOwotCisjZW5kaWYKICAgICBpZiAoIW1fcmVwbGFjZW1lbnRQYXRoLmlzTnVsbCgpKQogICAg
ICAgICByZXR1cm4gbV9yZXBsYWNlbWVudFBhdGg7Ci0jZW5kaWYKIAogICAgIHJldHVybiBtX3Bh
dGg7CiB9CkBAIC0xMDEsNiArOTksMTMgQEAgdm9pZCBCbG9iRGF0YUZpbGVSZWZlcmVuY2U6OnN0
YXJ0VHJhY2tpbmdNb2RpZmljYXRpb25zKCkKICAgICAgICAgcmV0dXJuOwogI2VuZGlmCiAKKyAg
ICAvLyBUaGlzIGlzIGEgcmVnaXN0ZXJlZCBibG9iIHdpdGggYSByZXBsYWNlbWVudCBmaWxlLiBH
ZXQgdGhlIE1ldGFkYXRhIG9mIHRoZSByZXBsYWNlbWVudCBmaWxlLgorICAgIGlmICghbV9yZXBs
YWNlbWVudFBhdGguaXNOdWxsKCkpIHsKKyAgICAgICAgbWV0YWRhdGEgPSBGaWxlU3lzdGVtOjpm
aWxlTWV0YWRhdGFGb2xsb3dpbmdTeW1saW5rcyhtX3JlcGxhY2VtZW50UGF0aCk7CisgICAgICAg
IGlmICghbWV0YWRhdGEpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgbV9zaXpl
ID0gbWV0YWRhdGEudmFsdWUoKS5sZW5ndGg7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5oCmluZGV4IDY1ODgy
OWQwN2ZjZmJkNmIwMmEyMGUxY2IwMWZkYzlkNmRjYzA3YzkuLjhmY2JlOGMxMWYyMTM0OGNlZmU0
OGVkMDI2NjVjNTVkNjM2OTY3NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuaApAQCAtMzUsOSArMzUsOSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEJsb2JEYXRhRmlsZVJl
ZmVyZW5jZSA6IHB1YmxpYyBSZWZDb3VudGVkPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4gewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiBjcmVhdGUoY29uc3Qg
U3RyaW5nJiBwYXRoKQorICAgIHN0YXRpYyBSZWY8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiBjcmVh
dGUoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50UGF0aCA9IHsg
fSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJsb2JEYXRhRmlsZVJlZmVy
ZW5jZShwYXRoKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJsb2JEYXRhRmlsZVJl
ZmVyZW5jZShwYXRoLCByZXBsYWNlbWVudFBhdGgpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5C
bG9iRGF0YUZpbGVSZWZlcmVuY2UoKTsKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCByZXZva2VGaWxlQWNjZXNzKCk7CiAKIHByb3RlY3RlZDoKLSAgICBCbG9iRGF0
YUZpbGVSZWZlcmVuY2UoY29uc3QgU3RyaW5nJiBwYXRoKTsKKyAgICBCbG9iRGF0YUZpbGVSZWZl
cmVuY2UoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50UGF0aCk7
CiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKEZJTEVfUkVQTEFDRU1FTlQpCkBAIC02MCw4ICs2MCw4
IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIFN0cmluZyBtX3BhdGg7Ci0jaWYgRU5BQkxFKEZJ
TEVfUkVQTEFDRU1FTlQpCiAgICAgU3RyaW5nIG1fcmVwbGFjZW1lbnRQYXRoOworI2lmIEVOQUJM
RShGSUxFX1JFUExBQ0VNRU5UKQogICAgIGJvb2wgbV9yZXBsYWNlbWVudFNob3VsZEJlR2VuZXJh
dGVkIHsgZmFsc2UgfTsKICNlbmRpZgogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtX3NpemUgeyAw
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdp
c3RyeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuaApp
bmRleCBmZTkxZTgxYWFkNDMwMmUwM2RiOTY3YTQ2YTMwNmFjNmQ0MmNjZTU1Li40YjE1Y2RkYmUw
ZTRjNzZlOGY5MmIwMDJkNjJhOWFiMDJiN2E2YmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgV0VC
Q09SRV9FWFBPUlQgQmxvYlJlZ2lzdHJ5IHsKIHB1YmxpYzoKIAogICAgIC8vIFJlZ2lzdGVycyBh
IGJsb2IgVVJMIHJlZmVycmluZyB0byB0aGUgc3BlY2lmaWVkIGZpbGUuCi0gICAgdmlydHVhbCB2
b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiwgUmVmPEJsb2JEYXRhRmlsZVJlZmVy
ZW5jZT4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCByZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0IFVSTCYsIFJlZjxCbG9iRGF0YUZpbGVSZWZlcmVu
Y2U+JiYsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgPSAw
OwogCiAgICAgLy8gUmVnaXN0ZXJzIGEgYmxvYiBVUkwgcmVmZXJyaW5nIHRvIHRoZSBzcGVjaWZp
ZWQgYmxvYiBkYXRhLgogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgVVJM
JiwgVmVjdG9yPEJsb2JQYXJ0PiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDVjMTkyZjI5ZTYxNjdiMjE1YTE1NGJmOTk3
YzZkZWIxYTJhY2FiMDguLmM4ZDZlZTdjOGE1MzFlMzhmYjAyMjcyNWRhN2Y2NTIwYmQ4NDg4NWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC03MzIsNyArNzMyLDcgQEAgdm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YWxsQ29va2llc0RlbGV0ZWQoKQogCiAjZW5k
aWYKIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJGaWxlQmxv
YlVSTChjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwYXRoLCBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUmJiBleHRlbnNpb25IYW5kbGUsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCit2
b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWdpc3RlckZpbGVCbG9iVVJMKGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1l
bnRQYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBleHRlbnNpb25IYW5kbGUsIGNvbnN0
IFN0cmluZyYgY29udGVudFR5cGUpCiB7CiAgICAgTkVUV09SS19QUk9DRVNTX01FU1NBR0VfQ0hF
Q0soIXVybC5pc0VtcHR5KCkpOwogCkBAIC03NDAsNyArNzQwLDcgQEAgdm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmIHVybCwg
Y29uc3QgU3QKICAgICBpZiAoIXNlc3Npb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIHNlc3Np
b24tPmJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyRmlsZUJsb2JVUkwodXJsLCBCbG9iRGF0YUZpbGVS
ZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKHBhdGgsIFNhbmRib3hFeHRlbnNp
b246OmNyZWF0ZShXVEZNb3ZlKGV4dGVuc2lvbkhhbmRsZSkpKSwgY29udGVudFR5cGUpOworICAg
IHNlc3Npb24tPmJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyRmlsZUJsb2JVUkwodXJsLCBCbG9iRGF0
YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKHBhdGgsIHJlcGxhY2Vt
ZW50UGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdURk1vdmUoZXh0ZW5zaW9uSGFuZGxl
KSkpLCBjb250ZW50VHlwZSk7CiB9CiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmIHVybCwgVmVjdG9yPEJsb2JQYXJ0PiYmIGJs
b2JQYXJ0cywgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkKQEAgLTc2OSw3ICs3NjksNyBAQCB2
b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWdpc3RlckJsb2JVUkxPcHRpb25h
bGx5RmlsZUJhY2tlZChjb25zdCBVUgogICAgIGlmICghc2Vzc2lvbikKICAgICAgICAgcmV0dXJu
OwogCi0gICAgc2Vzc2lvbi0+YmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxs
eUZpbGVCYWNrZWQodXJsLCBzcmNVUkwsIEJsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGUoZmlsZUJhY2tlZFBhdGgsIG51bGxwdHIpLCBjb250ZW50VHlwZSk7
CisgICAgc2Vzc2lvbi0+YmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZp
bGVCYWNrZWQodXJsLCBzcmNVUkwsIEJsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGUoZmlsZUJhY2tlZFBhdGgpLCBjb250ZW50VHlwZSk7CiB9CiAKIHZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTCwgaW50NjRfdCBzdGFydCwgaW50NjRfdCBl
bmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggZTgyMzAwMDllYzk2YmZlZWYyMDk4YTFh
ZWVlN2EyN2FjMzk4YzNkYS4uMThjY2VkOTdjNjUzMmEzNmE3MGEzMWRkNzFkNmFmYmFmOGQ2NmU5
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMjE1LDcgKzIxNSw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBzZXRSYXdDb29raWUoY29uc3QgV2ViQ29yZTo6Q29va2llJik7CiAgICAgdm9p
ZCBkZWxldGVDb29raWUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKTsKIAot
ICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHBh
dGgsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBl
KTsKKyAgICB2b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5n
JiBwYXRoLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50UGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlJiYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpOwogICAgIHZvaWQgcmVnaXN0ZXJC
bG9iVVJMKGNvbnN0IFVSTCYsIFZlY3RvcjxXZWJDb3JlOjpCbG9iUGFydD4mJiwgY29uc3QgU3Ry
aW5nJiBjb250ZW50VHlwZSk7CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxGcm9tVVJMKGNvbnN0
IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMKTsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlv
bmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBjb25zdCBTdHJp
bmcmIGZpbGVCYWNrZWRQYXRoLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDIyMDBkNGM0YWQyMGNmNmMy
ZjFhNWI3YTQwMzZiMDY3NDgwMTQzZWUuLjdiODIyNTIzMjcwMGFhNjg4YzlkODRhYWMwNDIwYzQ5
N2I2ZTVjZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpA
QCAtNDYsNyArNDYsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyBMZWdhY3lSZWNlaXZlciB7CiAgICAgVW5zdWJzY3JpYmVGcm9tQ29va2llQ2hhbmdlTm90aWZp
Y2F0aW9ucyhIYXNoU2V0PFN0cmluZz4gaG9zdHMpCiAjZW5kaWYKIAotICAgIFJlZ2lzdGVyRmls
ZUJsb2JVUkwoVVJMIHVybCwgU3RyaW5nIHBhdGgsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlIGV4dGVuc2lvbkhhbmRsZSwgU3RyaW5nIGNvbnRlbnRUeXBlKQorICAgIFJlZ2lzdGVy
RmlsZUJsb2JVUkwoVVJMIHVybCwgU3RyaW5nIHBhdGgsIFN0cmluZyByZXBsYWNlbWVudFBhdGgs
IFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGV4dGVuc2lvbkhhbmRsZSwgU3RyaW5n
IGNvbnRlbnRUeXBlKQogICAgIFJlZ2lzdGVyQmxvYlVSTChVUkwgdXJsLCBWZWN0b3I8V2ViQ29y
ZTo6QmxvYlBhcnQ+IGJsb2JQYXJ0cywgU3RyaW5nIGNvbnRlbnRUeXBlKQogICAgIFJlZ2lzdGVy
QmxvYlVSTEZyb21VUkwoVVJMIHVybCwgVVJMIHNyY1VSTCkKICAgICBSZWdpc3RlckJsb2JVUkxP
cHRpb25hbGx5RmlsZUJhY2tlZChVUkwgdXJsLCBVUkwgc3JjVVJMLCBTdHJpbmcgZmlsZUJhY2tl
ZFBhdGgsIFN0cmluZyBjb250ZW50VHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5j
cHAKaW5kZXggZjY5NjAxY2VmMGVmYzkzZGJlZDNlMDUzZDUzNDA4MTQ3YmUzZWQ5Ny4uY2ZmYzk5
ZjgyYjA0NGM0OWIwNTAyYmU5NWRjYzhjYjg5OTFjMjIwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3Jt
U3RyYXRlZ2llcy5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgQmxvYlJlZ2lzdHJ5KiBOZXR3b3JrUHJv
Y2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKIHsKICAgICB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICBjbGFzcyBFbXB0eUJsb2JSZWdpc3RyeSA6IHB1Ymxp
YyBXZWJDb3JlOjpCbG9iUmVnaXN0cnkgewotICAgICAgICB2b2lkIHJlZ2lzdGVyRmlsZUJsb2JV
UkwoY29uc3QgVVJMJiwgUmVmPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4mJiwgY29uc3QgU3RyaW5n
JiBjb250ZW50VHlwZSkgZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgICAgICB2
b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiwgUmVmPEJsb2JEYXRhRmlsZVJlZmVy
ZW5jZT4mJiwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBm
aW5hbCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgICAgIHZvaWQgcmVnaXN0ZXJCbG9i
VVJMKGNvbnN0IFVSTCYsIFZlY3RvcjxCbG9iUGFydD4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50
VHlwZSkgZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgICAgICB2b2lkIHJlZ2lz
dGVyQmxvYlVSTChjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCkgZmluYWwgeyBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgfQogICAgICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlG
aWxlQmFja2VkKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8QmxvYkRhdGFG
aWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9CbG9i
RGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9CbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbi5jcHAKaW5k
ZXggZmM3NGI2MDE3M2M1NTI1OTBiNTRlMzQwYzY2YWUxZmEzNjg0NTcwYS4uOWE1NmUzOWI5MjZi
OTY2MjQ1ZDY5YjU3OTIyM2QxMDFmMDU1ZmRiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvQmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0
ZW5zaW9uLmNwcApAQCAtMzAsOCArMzAsOCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotQmxv
YkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb246OkJsb2JEYXRhRmlsZVJlZmVy
ZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgcGF0aCwgUmVmUHRyPFNhbmRi
b3hFeHRlbnNpb24+JiYgc2FuZGJveEV4dGVuc2lvbikKLSAgICA6IEJsb2JEYXRhRmlsZVJlZmVy
ZW5jZShwYXRoKQorQmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb246OkJs
b2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgcGF0
aCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFBhdGgsIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9u
PiYmIHNhbmRib3hFeHRlbnNpb24pCisgICAgOiBCbG9iRGF0YUZpbGVSZWZlcmVuY2UocGF0aCwg
cmVwbGFjZW1lbnRQYXRoKQogICAgICwgbV9zYW5kYm94RXh0ZW5zaW9uKFdURk1vdmUoc2FuZGJv
eEV4dGVuc2lvbikpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9CbG9i
RGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbi5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb24uaAppbmRleCA3
NWE1ZDRkMGNiYmVjMDg1YWZkZGIzOGZlYmI1MzNlNzM2NDA2MzI2Li43YjgzMjlmMjI5YTU1ZmQ0
ZGJjM2M0NDY4Mzc5YmIzMWJmMTAzNTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9CbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9u
LmgKQEAgLTM0LDEzICszNCwxMyBAQCBjbGFzcyBTYW5kYm94RXh0ZW5zaW9uOwogCiBjbGFzcyBC
bG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbiBmaW5hbCA6IHB1YmxpYyBX
ZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2UgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXRoLCBSZWZQdHI8
U2FuZGJveEV4dGVuc2lvbj4mJiBzYW5kYm94RXh0ZW5zaW9uKQorICAgIHN0YXRpYyBSZWY8Qmxv
YkRhdGFGaWxlUmVmZXJlbmNlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJp
bmcmIHJlcGxhY2VtZW50UGF0aCA9IHsgfSwgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+JiYgc2Fu
ZGJveEV4dGVuc2lvbiA9IG51bGxwdHIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbihwYXRoLCBXVEZN
b3ZlKHNhbmRib3hFeHRlbnNpb24pKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJs
b2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uKHBhdGgsIHJlcGxhY2VtZW50
UGF0aCwgV1RGTW92ZShzYW5kYm94RXh0ZW5zaW9uKSkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAg
ICBCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbihjb25zdCBTdHJpbmcm
IHBhdGgsIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiYmKTsKKyAgICBCbG9iRGF0YUZpbGVSZWZl
cmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmlu
ZyYgcmVwbGFjZW1lbnRQYXRoLCBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4mJik7CiAgICAgdmly
dHVhbCB+QmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb24oKTsKIAogICAg
IHZvaWQgcHJlcGFyZUZvckZpbGVBY2Nlc3MoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDZiNDAwZGMwNjIxMTNiYmM5MTBiYjU0OWI0OTFk
NDExYmQ5MzZlZGIuLmJiM2NmYmQ0MmY5YWQwYjFkNjBlNDI3NjFiODlmNjg3ODc1OTY3MmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjcwMCw3ICs2NzAw
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENob29zZUZpbGVzRm9yT3BlblBhbmVsKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBmaWxlVVJMcykKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpF
eHRlbmRTYW5kYm94Rm9yRmlsZXNGcm9tT3BlblBhbmVsKFdURk1vdmUoc2FuZGJveEV4dGVuc2lv
bkhhbmRsZXMpKSk7CiAjZW5kaWYKIAotICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZENo
b29zZUZpbGVzRm9yT3BlblBhbmVsKGZpbGVVUkxzKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6RGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwoZmlsZVVSTHMsIHsgfSkpOwogCiAgICAg
bV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci0+aW52YWxpZGF0ZSgpOwogICAgIG1fb3BlblBhbmVs
UmVzdWx0TGlzdGVuZXIgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwCmluZGV4IDhmNDdiOGYwNzBlMWYy
OTgzMzQ1MzhkY2E4Y2Y0ZDRlNGEzOTRjNGIuLjkwM2Y5NDFkNzU4MjdlNzI1NzJlZmI4MjFiNmQy
M2VhOWNmYmFkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJ
L0Jsb2JSZWdpc3RyeVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmls
ZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXZvaWQgQmxvYlJlZ2lzdHJ5UHJv
eHk6OnJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIFJlZjxCbG9iRGF0YUZpbGVS
ZWZlcmVuY2U+JiYgZmlsZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkKK3ZvaWQgQmxvYlJl
Z2lzdHJ5UHJveHk6OnJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIFJlZjxCbG9i
RGF0YUZpbGVSZWZlcmVuY2U+JiYgZmlsZSwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJp
bmcmIGNvbnRlbnRUeXBlKQogewogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBleHRlbnNp
b25IYW5kbGU7CiAKQEAgLTQ0LDcgKzQ0LDggQEAgdm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6cmVn
aXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmIHVybCwgUmVmPEJsb2JEYXRhRmlsZVJlZmUKICAg
ICBpZiAoIWZpbGUtPnBhdGgoKS5pc0VtcHR5KCkpCiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246
OmNyZWF0ZUhhbmRsZShmaWxlLT5wYXRoKCksIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRP
bmx5LCBleHRlbnNpb25IYW5kbGUpOwogCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5z
dXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpSZWdpc3RlckZpbGVCbG9iVVJMKHVybCwg
ZmlsZS0+cGF0aCgpLCBleHRlbnNpb25IYW5kbGUsIGNvbnRlbnRUeXBlKSwgMCk7CisgICAgU3Ry
aW5nIHJlcGxhY2VtZW50UGF0aCA9IHBhdGggPT0gZmlsZS0+cGF0aCgpID8gbnVsbFN0cmluZygp
IDogZmlsZS0+cGF0aCgpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVnaXN0ZXJGaWxlQmxvYlVSTCh1cmwsIHBhdGgsIHJl
cGxhY2VtZW50UGF0aCwgZXh0ZW5zaW9uSGFuZGxlLCBjb250ZW50VHlwZSksIDApOwogfQogCiB2
b2lkIEJsb2JSZWdpc3RyeVByb3h5OjpyZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIFZl
Y3RvcjxCbG9iUGFydD4mJiBibG9iUGFydHMsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJv
eHkuaAppbmRleCA0MDk4NGRiMjdkYWRkN2Q2NWU5YTUxYWMxNzJkMDU3NzE5MmQ0YTM4Li5lODM3
YTY5NjRlMDQ3ZDNhNDViMzIwZWQwMzZiNmE4YTczMDNmNjJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgKQEAgLTMxLDcg
KzMxLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEJsb2JSZWdpc3RyeVByb3h5IGZp
bmFsIDogcHVibGljIFdlYkNvcmU6OkJsb2JSZWdpc3RyeSB7CiBwdWJsaWM6Ci0gICAgdm9pZCBy
ZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0IFVSTCYsIFJlZjxXZWJDb3JlOjpCbG9iRGF0YUZpbGVS
ZWZlcmVuY2U+JiYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsOworICAgIHZvaWQg
cmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmLCBSZWY8V2ViQ29yZTo6QmxvYkRhdGFGaWxl
UmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5
cGUpIGZpbmFsOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYsIFZlY3RvcjxX
ZWJDb3JlOjpCbG9iUGFydD4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWw7CiAg
ICAgdm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwpIGZp
bmFsOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoY29uc3Qg
VVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIFJlZlB0cjxXZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZl
cmVuY2U+JiYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXIuY3BwCmluZGV4IGQ5ODM0M2M0NTE5NzAwNWFlYTM2YTk2ZDExMmI0ZDVlNmJm
ZDkyYWMuLmQyYWFlZjUzOWYzNjY1NDEyYjRjZmZiZGVkNWJhOWU2MmE0OTUwNGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYk9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAKQEAgLTQ2LDkgKzQ2LDkgQEAgV2ViT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXI6On5XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcigpCiB7CiB9CiAKLXZvaWQg
V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI6OmRpZENob29zZUZpbGVzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBmaWxlcykKK3ZvaWQgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI6OmRpZENob29z
ZUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlcywgY29uc3QgVmVjdG9yPFN0cmluZz4m
IHJlcGxhY2VtZW50RmlsZXMpCiB7Ci0gICAgbV9maWxlQ2hvb3Nlci0+Y2hvb3NlRmlsZXMoZmls
ZXMpOworICAgIG1fZmlsZUNob29zZXItPmNob29zZUZpbGVzKGZpbGVzLCByZXBsYWNlbWVudEZp
bGVzKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXIuaAppbmRleCBkMGQ4NTliOGQzMDYzZjQ3YTYxNmMyMDQwZWYzN2ViNGZkMWJkMGY5Li45ZTY3
MGI1MDhiNDZiY2FmMmM3MGU5ODE2ZmJjODUxODY3ZGUzM2MzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYk9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIH5XZWJPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lcigpOwogCiAgICAgdm9pZCBkaXNjb25uZWN0RnJvbVBhZ2UoKSB7IG1fcGFnZSA9
IDA7IH0KLSAgICB2b2lkIGRpZENob29zZUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7Cisg
ICAgdm9pZCBkaWRDaG9vc2VGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZXMsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiByZXBsYWNlbWVudEZpbGVzKTsKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogICAgIHZvaWQgZGlkQ2hvb3NlRmlsZXNXaXRoRGlzcGxheVN0cmluZ0FuZEljb24oY29u
c3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlTdHJpbmcsIFdlYkNvcmU6
Okljb24qKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCA0ODgwMDZmN2MzMThhOWUzY2NjYzliNzg0Njk1ZTNjMmJmNjhiOWM5Li41
MmM4MmU0Yjk1ZTY4MzcyNmU5Zjk5YTY0MTlkZjc1Y2JlNTI0NmEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDMwMSwxMiArNDMwMSwxMiBA
QCB2b2lkIFdlYlBhZ2U6OmRpZENob29zZUZpbGVzRm9yT3BlblBhbmVsV2l0aERpc3BsYXlTdHJp
bmdBbmRJY29uKGNvbnN0IFZlY3RvcjxTdAogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZTo6ZGlk
Q2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVzKQordm9p
ZCBXZWJQYWdlOjpkaWRDaG9vc2VGaWxlc0Zvck9wZW5QYW5lbChjb25zdCBWZWN0b3I8U3RyaW5n
PiYgZmlsZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiByZXBsYWNlbWVudEZpbGVzKQogewogICAg
IGlmICghbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcikKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci0+ZGlkQ2hvb3NlRmlsZXMoZmls
ZXMpOworICAgIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXItPmRpZENob29zZUZpbGVz
KGZpbGVzLCByZXBsYWNlbWVudEZpbGVzKTsKICAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyID0gbnVsbHB0cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCmluZGV4IDkyMDQxODYyZTNjMjMwZjk4NGU1MGNiMjY5MzZmMDllNWUxZjZmMzYu
LmJiOWQ1MTQ2OWFkZDJjZjJmMmMxNTljYjM2MDVhYWVmNzIwMWE2ZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE2MDIsNyArMTYwMiw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBmYWlsZWRUb1Nob3dQb3B1cE1lbnUoKTsKICNlbmRpZgogCi0gICAg
dm9pZCBkaWRDaG9vc2VGaWxlc0Zvck9wZW5QYW5lbChjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwor
ICAgIHZvaWQgZGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwoY29uc3QgVmVjdG9yPFN0cmluZz4m
IGZpbGVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcmVwbGFjZW1lbnRGaWxlcyk7CiAgICAgdm9p
ZCBkaWRDYW5jZWxGb3JPcGVuUGFuZWwoKTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgppbmRleCA2ODg5ZDYyMzJiOWZlNTU3YTE5YTM5MGEzYWZlNDRkODczZjY5ZTA5Li5jNWUz
NDMxZjYxNzQ4YzFkNDEwZDBiZDQ1MjVjZjIxZTRmNjZjNmFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTM0Myw3
ICszNDMsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBX
ZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCiAgICAgRGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWxXaXRoRGlzcGxheVN0cmluZ0FuZElj
b24oVmVjdG9yPFN0cmluZz4gZmlsZVVSTHMsIFN0cmluZyBkaXNwbGF5U3RyaW5nLCBJUEM6OkRh
dGFSZWZlcmVuY2UgaWNvbkRhdGEsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGZy
b250Ym9hcmRTZXJ2aWNlc1NhbmRib3hFeHRlbnNpb24sIFdlYktpdDo6U2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlIGljb25TZXJ2aWNlc1NhbmRib3hFeHRlbnNpb24pCiAjZW5kaWYKLSAgICBEaWRD
aG9vc2VGaWxlc0Zvck9wZW5QYW5lbChWZWN0b3I8U3RyaW5nPiBmaWxlVVJMcykKKyAgICBEaWRD
aG9vc2VGaWxlc0Zvck9wZW5QYW5lbChWZWN0b3I8U3RyaW5nPiBmaWxlVVJMcywgVmVjdG9yPFN0
cmluZz4gcmVwbGFjZW1lbnRVUkxzKQogICAgIERpZENhbmNlbEZvck9wZW5QYW5lbCgpCiAjaWYg
RU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKICAgICBFeHRlbmRTYW5kYm94Rm9yRmlsZXNGcm9t
T3BlblBhbmVsKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgc2FuZGJveEV4
dGVuc2lvbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KaW5kZXggMmM4MDMwY2E4OTZl
YmRhNjlmNTUxNzk5ZWNmZTEzN2ZmMTJkYzlhNC4uZmFmOTNiNzNhMmIwMTQxMDM4MDVhNWNjNmJj
YTdiNjUzYTY1MjdiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQpAQCAtOTMsNyAr
OTMsNyBAQCBNZWRpYVN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZU1lZGlh
U3RyYXRlZ3koKQogCiBjbGFzcyBXZWJCbG9iUmVnaXN0cnkgZmluYWwgOiBwdWJsaWMgQmxvYlJl
Z2lzdHJ5IHsKIHByaXZhdGU6Ci0gICAgdm9pZCByZWdpc3RlckZpbGVCbG9iVVJMKGNvbnN0IFVS
TCYgdXJsLCBSZWY8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmIHJlZmVyZW5jZSwgY29uc3QgU3Ry
aW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckZpbGVCbG9i
VVJMKHVybCwgV1RGTW92ZShyZWZlcmVuY2UpLCBjb250ZW50VHlwZSk7IH0KKyAgICB2b2lkIHJl
Z2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIFJlZjxCbG9iRGF0YUZpbGVSZWZlcmVu
Y2U+JiYgcmVmZXJlbmNlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBl
KSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyRmlsZUJsb2JVUkwodXJsLCBXVEZNb3Zl
KHJlZmVyZW5jZSksIGNvbnRlbnRUeXBlKTsgfQogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNv
bnN0IFVSTCYgdXJsLCBWZWN0b3I8QmxvYlBhcnQ+JiYgcGFydHMsIGNvbnN0IFN0cmluZyYgY29u
dGVudFR5cGUpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJCbG9iVVJMKHVybCwgV1RG
TW92ZShwYXJ0cyksIGNvbnRlbnRUeXBlKTsgfQogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTCkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5y
ZWdpc3RlckJsb2JVUkwodXJsLCBzcmNVUkwpOyB9CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxP
cHRpb25hbGx5RmlsZUJhY2tlZChjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkwsIFJl
ZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYgcmVmZXJlbmNlLCBjb25zdCBTdHJpbmcmIGNv
bnRlbnRUeXBlKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFs
bHlGaWxlQmFja2VkKHVybCwgc3JjVVJMLCBXVEZNb3ZlKHJlZmVyZW5jZSksIGNvbnRlbnRUeXBl
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggOWIyNTdmNGYyNTUyZWZm
MDJlZDQ3YmNlODUzN2RkNDQ3MGE0MzE3ZS4uNDc1YjIxZjE3MzcyZjhlODgzZDkxMzYzYzQwOWU4
YWE0ZmE0NjQwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC04MCw3ICs4
MCw3IEBAIE1lZGlhU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTWVkaWFT
dHJhdGVneSgpCiAKIGNsYXNzIFdlYkJsb2JSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBCbG9iUmVn
aXN0cnkgewogcHJpdmF0ZToKLSAgICB2b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJM
JiB1cmwsIFJlZjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYgcmVmZXJlbmNlLCBjb25zdCBTdHJp
bmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyRmlsZUJsb2JV
UkwodXJsLCBXVEZNb3ZlKHJlZmVyZW5jZSksIGNvbnRlbnRUeXBlKTsgfQorICAgIHZvaWQgcmVn
aXN0ZXJGaWxlQmxvYlVSTChjb25zdCBVUkwmIHVybCwgUmVmPEJsb2JEYXRhRmlsZVJlZmVyZW5j
ZT4mJiByZWZlcmVuY2UsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUp
IGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJGaWxlQmxvYlVSTCh1cmwsIFdURk1vdmUo
cmVmZXJlbmNlKSwgY29udGVudFR5cGUpOyB9CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkwoY29u
c3QgVVJMJiB1cmwsIFZlY3RvcjxCbG9iUGFydD4mJiBwYXJ0cywgY29uc3QgU3RyaW5nJiBjb250
ZW50VHlwZSkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckJsb2JVUkwodXJsLCBXVEZN
b3ZlKHBhcnRzKSwgY29udGVudFR5cGUpOyB9CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkwoY29u
c3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJl
Z2lzdGVyQmxvYlVSTCh1cmwsIHNyY1VSTCk7IH0KICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9w
dGlvbmFsbHlGaWxlQmFja2VkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTCwgUmVm
UHRyPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4mJiByZWZlcmVuY2UsIGNvbnN0IFN0cmluZyYgY29u
dGVudFR5cGUpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxs
eUZpbGVCYWNrZWQodXJsLCBzcmNVUkwsIFdURk1vdmUocmVmZXJlbmNlKSwgY29udGVudFR5cGUp
OyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>