<?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>177375</bug_id>
          
          <creation_ts>2017-09-22 12:08:18 -0700</creation_ts>
          <short_desc>WeakPtrFactory should populate m_ref lazily.</short_desc>
          <delta_ts>2017-09-25 18:16:04 -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>Layout and Rendering</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>177389</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1351764</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2017-09-22 12:08:18 -0700</bug_when>
    <thetext>-the first time createWeakPtr is called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351775</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-22 12:31:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/34600468&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351776</commentid>
    <comment_count>2</comment_count>
      <attachid>321579</attachid>
    <who name="alan">zalan</who>
    <bug_when>2017-09-22 12:33:17 -0700</bug_when>
    <thetext>Created attachment 321579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351777</commentid>
    <comment_count>3</comment_count>
      <attachid>321580</attachid>
    <who name="alan">zalan</who>
    <bug_when>2017-09-22 12:41:52 -0700</bug_when>
    <thetext>Created attachment 321580
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351786</commentid>
    <comment_count>4</comment_count>
      <attachid>321584</attachid>
    <who name="alan">zalan</who>
    <bug_when>2017-09-22 12:57:46 -0700</bug_when>
    <thetext>Created attachment 321584
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351788</commentid>
    <comment_count>5</comment_count>
      <attachid>321584</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-09-22 13:00:36 -0700</bug_when>
    <thetext>Comment on attachment 321584
Patch

r=me when it builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351888</commentid>
    <comment_count>6</comment_count>
      <attachid>321603</attachid>
    <who name="alan">zalan</who>
    <bug_when>2017-09-22 16:43:39 -0700</bug_when>
    <thetext>Created attachment 321603
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351919</commentid>
    <comment_count>7</comment_count>
      <attachid>321612</attachid>
    <who name="alan">zalan</who>
    <bug_when>2017-09-22 19:42:22 -0700</bug_when>
    <thetext>Created attachment 321612
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351921</commentid>
    <comment_count>8</comment_count>
      <attachid>321612</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-22 20:56:34 -0700</bug_when>
    <thetext>Comment on attachment 321612
Patch

Rejecting attachment 321612 from commit-queue.

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

ChangeLog entry in Source/WTF/ChangeLog contains OOPS!.

Full output: http://webkit-queues.webkit.org/results/4633838</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351922</commentid>
    <comment_count>9</comment_count>
      <attachid>321614</attachid>
    <who name="alan">zalan</who>
    <bug_when>2017-09-22 20:58:47 -0700</bug_when>
    <thetext>Created attachment 321614
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351923</commentid>
    <comment_count>10</comment_count>
      <attachid>321614</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-22 21:38:50 -0700</bug_when>
    <thetext>Comment on attachment 321614
Patch

Clearing flags on attachment: 321614

Committed r222422: &lt;http://trac.webkit.org/changeset/222422&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351924</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-22 21:38:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351994</commentid>
    <comment_count>12</comment_count>
      <attachid>321614</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-09-23 14:47:51 -0700</bug_when>
    <thetext>Comment on attachment 321614
Patch

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

Thrilled to see this change! I had a very old patch in my git repository trying to do the same thing, but I never got it working 100%.

&gt; Source/WTF/wtf/WeakPtr.h:56
&gt;      explicit WeakReference(T* ptr)

Can we change this constructor to take a reference instead of a pointer?

&gt; Source/WTF/wtf/WeakPtr.h:-87
&gt; -#ifndef NDEBUG
&gt; -    ThreadIdentifier m_boundThread;
&gt; -#endif

What’s the rationale for removing the thread checking? Do we think that clients are now more sophisticated now and don’t need the help catching incorrect uses any longer? Or was it too hard to re-implement this? Or some other reason?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352538</commentid>
    <comment_count>13</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-09-25 18:16:04 -0700</bug_when>
    <thetext>&gt; What’s the rationale for removing the thread checking? Do we think that
&gt; clients are now more sophisticated now and don’t need the help catching
&gt; incorrect uses any longer? Or was it too hard to re-implement this? Or some
&gt; other reason?

Too hard to reimplement: We (validly) use pointers on multiple threads, and one of the first pointers we changed into a weak pointer fired this assertion.

You could imagine retaining this assertion as the default, with an escape hatch for &quot;this pointer can be used on multiple threads&quot;. When we tried that with RefPtr, we eventually had to give it up because too many things needed the escape hatch. I&apos;m hoping WeakPtr will be as successful as RefPtr.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321579</attachid>
            <date>2017-09-22 12:33:17 -0700</date>
            <delta_ts>2017-09-22 12:41:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177375-20170922123317.patch</filename>
            <type>text/plain</type>
            <size>101890</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDgzNDJmOWYzYmMxMGIyMzlhYzhjNzc0
ZDhmY2Y3YmFlMmMwMjQ3YTMuLmRlZGNiNTQ3YTNjYmNjMmUwN2MxMjJiNGZiMTJlOTJlZTQ2MTU1
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTctMDktMjIgIFphbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBXZWFrUHRyRmFjdG9yeSBzaG91bGQgcG9wdWxhdGUgbV9y
ZWYgbGF6aWx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc3Mzc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBoZWxwcyB1cyB3aXRoIHRoZSBvdmVyaGVhZCBvZiBpbml0aWFsaXppbmcgV2Vha1B0
ckZhY3RvcnkgZm9yCisgICAgICAgIG9iamVjdHMgdGhhdCByYXJlbHkgZW5kIHVwIGNyZWF0aW5n
IHRoZSB3ZWFrIHJlZmVyZW5jZS4KKyAgICAgICAgLVRoaXMgaXMgaW4gcHJlcGFyYXRpb24gZm9y
IGludHJvZHVjaW5nIFdlYWtQdHIgdG8gUmVuZGVyT2JqZWN0LiAKKworICAgICAgICAqIHd0Zi9X
ZWFrUHRyLmg6CisgICAgICAgIChXVEY6OldlYWtSZWZlcmVuY2U6OmdldCBjb25zdCk6CisgICAg
ICAgIChXVEY6OldlYWtSZWZlcmVuY2U6OmNsZWFyKToKKyAgICAgICAgKFdURjo6V2Vha1JlZmVy
ZW5jZTo6V2Vha1JlZmVyZW5jZSk6CisgICAgICAgIChXVEY6OldlYWtQdHJGYWN0b3J5Ojp+V2Vh
a1B0ckZhY3RvcnkpOgorICAgICAgICAoV1RGOjpXZWFrUHRyRmFjdG9yeTo6Y3JlYXRlV2Vha1B0
ciBjb25zdCk6CisgICAgICAgIChXVEY6OldlYWtQdHJGYWN0b3J5OjpyZXZva2VBbGwpOgorICAg
ICAgICAoV1RGOjpXZWFrUHRyRmFjdG9yeTo6V2Vha1B0ckZhY3RvcnkpOiBEZWxldGVkLgorCiAy
MDE3LTA5LTIwICBTdGVwaGFuIFN6YWJvICA8c3RlcGhhbi5zemFib0Bzb255LmNvbT4KIAogICAg
ICAgICBbV2luXSBXVEY6IEFkZCBhbGlhcyBmb3IgcHJvY2VzcyBpZCB0byB1c2UgaW4gcGxhY2Ug
b2YgZGlyZWN0IHVzZXMgb2YgcGlkX3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjNDlmOTI0NDAxZWZlOTYwNWZh
MjEyMjZmZGRlZTRkOWUxYjRkN2NjLi4xMDYxYTIxNzc2Zjg2ODM3ZWFkYWRhZDZlODlhZTc1ZDAw
YTEzODk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTY2IEBACisyMDE3LTA5LTIyICBaYWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2Vha1B0ckZhY3Rvcnkgc2hvdWxk
IHBvcHVsYXRlIG1fcmVmIGxhemlseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3NzM3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q0RNOjpDRE0pOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
Q0RNLmg6CisgICAgICAgIChXZWJDb3JlOjpDRE06OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAq
IE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6TWVkaWFLZXlTZXNzaW9uKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhS2V5U2Vzc2lvbjo6Z2VuZXJhdGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhS2V5U2Vzc2lvbjo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Np
b246OnVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246OmNsb3NlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6cmVtb3ZlKToKKyAgICAgICAgKiBN
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUtleXM6Ok1lZGlhS2V5cyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleXM6OmNyZWF0
ZVNlc3Npb24pOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6TWVkaWFEZXZpY2VzKToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFEZXZpY2VzOjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJl
YW1UcmFjazo6TWVkaWFTdHJlYW1UcmFjayk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNr
OjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBhbmltYXRpb24v
V2ViQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6V2ViQW5p
bWF0aW9uKToKKyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9uLmg6CisgICAgICAgICog
Y3NzL0ZvbnRGYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGYWNlOjpGb250RmFjZSk6
CisgICAgICAgIChXZWJDb3JlOjpGb250RmFjZTo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAgIChX
ZWJDb3JlOjpGb250RmFjZTo6Y3JlYXRlV2Vha1B0ciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogY3NzL0ZvbnRGYWNlLmg6CisgICAgICAgICogY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oOgor
ICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRhVHJhbnNmZXJJdGVtTGlzdDo6RGF0YVRyYW5zZmVySXRlbUxpc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUxpc3Q6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhVHJhbnNmZXJJdGVtTGlzdDo6ZW5zdXJlSXRlbXMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0YVRyYW5zZmVySXRlbUxpc3Q6OmRpZFNldFN0cmluZ0RhdGEpOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cG9zdFRhc2spOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNy
ZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KToKKyAgICAg
ICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnQ6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIGh0bWwvSFRNTFBpY3R1cmVFbGVt
ZW50Lmg6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFJlc291cmNlUHJlbG9hZGVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MUmVzb3VyY2VQcmVsb2FkZXI6OkhUTUxSZXNvdXJjZVByZWxv
YWRlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUmVzb3VyY2VQcmVsb2FkZXI6OmNyZWF0ZVdl
YWtQdHIpOgorICAgICAgICAqIGxvYWRlci9MaW5rTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxpbmtMb2FkZXI6OkxpbmtMb2FkZXIpOgorICAgICAgICAqIGxvYWRlci9MaW5rTG9hZGVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjpjcmVhdGVXZWFrUHRyKToKKyAgICAg
ICAgKiBsb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVJlc291cmNlTG9hZGVyOjpNZWRpYVJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKiBsb2Fk
ZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6RE9NV2luZG93KToKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VGFza0Rpc3BhdGNoZXI8VGltZXI+OjpUYXNrRGlzcGF0Y2hlcik6
CisgICAgICAgIChXZWJDb3JlOjpUYXNrRGlzcGF0Y2hlcjxUaW1lcj46OnBvc3RUYXNrKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmg6CisgICAgICAgIChXZWJDb3JlOjpH
ZW5lcmljVGFza1F1ZXVlOjpHZW5lcmljVGFza1F1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6Okdl
bmVyaWNUYXNrUXVldWU6OmVucXVldWVUYXNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxh
YmxlQXJlYS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OmNyZWF0ZVdlYWtQ
dHIpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGJhci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxiYXI6OlNjcm9sbGJhcik6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYmFyLmg6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXI6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAq
IHBsYXRmb3JtL1dpZGdldC5oOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpjcmVhdGVXZWFr
UHRyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9IYXJkd2FyZUxpc3RlbmVy
TWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYzo6QXVk
aW9IYXJkd2FyZUxpc3RlbmVyTWFjKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250
Q2FzY2FkZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6Rm9udENhc2NhZGUp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpGb250Q2FzY2FkZTo6Y3JlYXRlV2Vha1B0ciBjb25zdCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpjcmVhdGVXZWFr
UHRyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1T
ZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbkFW
Rm91bmRhdGlvbk9iakM6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM6OkNETVNlc3Npb25BVkZv
dW5kYXRpb25PYmpDKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RN
U2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNpemVXaWxsQ2hh
bmdlQXRUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyk6
CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YXBwZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjphYm9ydCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YubW06CisgICAgICAg
IChXZWJDb3JlOjpUZXh0dXJlQ2FjaGVDVjo6VGV4dHVyZUNhY2hlQ1YpOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dHVyZUNhY2hlQ1Y6OnRleHR1cmVGcm9tSW1hZ2UpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JN
YWMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5
TGlua0ZpcmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVy
SU9TLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1M6OmNyZWF0
ZVdlYWtQdHIpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJ
T1MubW06CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1M6OlJlbW90
ZUNvbW1hbmRMaXN0ZW5lcklPUyk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1h
bmRMaXN0ZW5lck1hYy5oOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVy
TWFjOjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRl
OjpNZWRpYVN0cmVhbVByaXZhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRl
OjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6
OlJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVu
ZHBvaW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYUVuZHBvaW50OjpNb2NrTWVk
aWFFbmRwb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFFbmRwb2ludDo6Z2VuZXJh
dGVEdGxzSW5mbyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU3Bhbm5l
clBsYWNlaG9sZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck11bHRpQ29sdW1uU3Bh
bm5lclBsYWNlaG9sZGVyOjpSZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlcik6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVmlldzo6UmVuZGVyVmlldyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlcldpZGdldDo6UmVuZGVyV2lkZ2V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyV2lkZ2V0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJXaWRnZXQ6OmNyZWF0ZVdlYWtQ
dHIpOgorICAgICAgICAqIHJlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJvb3RJbmxpbmVCb3g6OlJvb3RJbmxpbmVCb3gpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9Sb290SW5saW5lQm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjpjcmVh
dGVXZWFrUHRyKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6OlNWR1BhdGhFbGVtZW50KToKKyAgICAgICAgKiBzdmcv
U1ZHUGF0aEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFy
T2ZmLmg6CisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNb2NrQ0RNRmFjdG9yeTo6TW9ja0NETUZhY3RvcnkpOgorICAgICAgICAoV2ViQ29y
ZTo6TW9ja0NETUZhY3Rvcnk6OmNyZWF0ZUNETSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ0RN
OjpNb2NrQ0RNKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDRE06OmNyZWF0ZUluc3RhbmNlKToK
KyAgICAgICAgKFdlYkNvcmU6Om1fd2Vha1B0ckZhY3RvcnkpOiBEZWxldGVkLgorCiAyMDE3LTA5
LTIxICBKYXZpZXIgRmVybmFuZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFVucHJlZGljdGFibGUgc2VsZWN0aW9uIHdoZW4gZHJhZ2dpbmcgb3V0IG9mIGZsb2F0IGVsZW1l
bnRzIGNoaWxkcmVuIG9mIGluLWZsb3cgYmxvY2stbGV2ZWwgYm94CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpp
bmRleCBhODQ0NGEwYmI3NTI3MTgwNzI5Y2M2ZDU1YzIxNDQ5NDFjY2Q3YWZkLi5mOWJhOTRmMWY4
YWYwOGFhMzJlYjI0OWZmZTliNzI5MjM1NDk3YzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxNy0wOS0yMiAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgor
CisgICAgICAgIFdlYWtQdHJGYWN0b3J5IHNob3VsZCBwb3B1bGF0ZSBtX3JlZiBsYXppbHkuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzczNzUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9zeXN0
ZW0vbWFjL1N5c3RlbVNsZWVwTGlzdGVuZXJNYWMubW06CisgICAgICAgIChQQUw6OlN5c3RlbVNs
ZWVwTGlzdGVuZXJNYWM6OlN5c3RlbVNsZWVwTGlzdGVuZXJNYWMpOgorCiAyMDE3LTA5LTIwICBB
bnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgRE9NIGFu
ZCBzdHlsaW5nIHN1cHBvcnQgZm9yIENTUyBSZWdpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDViYjhlN2IxMGI1
YzhlMmEwMjhkOTYxMWNhZDliOTJjODlkODRlODYuLjMyMzI5NjhhNDA5ZDg5MzlhYTFmOTA4YTJh
MzYxZTA5MzU2OWFhNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTctMDktMjIgIFph
bGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBXZWFrUHRyRmFjdG9yeSBz
aG91bGQgcG9wdWxhdGUgbV9yZWYgbGF6aWx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3Mzc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3JQ
cm94eTo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6b3BlblBheW1lbnRT
ZXR1cCk6CisgICAgICAgICogVUlQcm9jZXNzL0FwcGxlUGF5L21hYy9XZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHk6OnBsYXRmb3JtU2hvd1BheW1lbnRVSSk6CisgICAgICAgICogVUlQcm9jZXNzL0FwcGxp
Y2F0aW9uU3RhdGVUcmFja2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpBcHBsaWNhdGlvblN0YXRl
VHJhY2tlcjo6QXBwbGljYXRpb25TdGF0ZVRyYWNrZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3JlYXRl
V2Vha1B0cik6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm9j
ZXNzTGF1bmNoZXI6OlByb2Nlc3NMYXVuY2hlcik6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5j
aGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NM
YXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NBc3Nl
cnRpb24uaDoKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlvbjo6Y3JlYXRlV2Vha1B0
cik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Om1fY29uZmlndXJhdGlvblByZWZlcmVuY2VWYWx1ZXMpOgorICAgICAgICAoV2ViS2l0Ojpt
X3dlYWtQdHJGYWN0b3J5KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRlV2Vha1B0ciBjb25z
dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYTo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OlJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhKToKKwogMjAxNy0wOS0yMCAgU3RlcGhhbiBTemFibyAgPHN0ZXBoYW4uc3phYm9Ac29u
eS5jb20+CiAKICAgICAgICAgW1dpbl0gV1RGOiBBZGQgYWxpYXMgZm9yIHByb2Nlc3MgaWQgdG8g
dXNlIGluIHBsYWNlIG9mIGRpcmVjdCB1c2VzIG9mIHBpZF90CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKaW5kZXggZThhOWNkOTFkMTUxZDQwNGM3OTkzODEzM2Q0ZjAyM2ZhNmJkN2NkOS4uZmMz
YmIxYmM2NDU0MDIxMGY5ZTA5MGY5ZGQ1M2E4ZGU1MWEzOGY3NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTA5LTIyICBaYWxhbiBCdWp0YXMgIDx6
YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2Vha1B0ckZhY3Rvcnkgc2hvdWxkIHBvcHVsYXRl
IG1fcmVmIGxhemlseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3NzM3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2Vi
RWRpdG9yQ2xpZW50OjpXZWJFZGl0b3JDbGllbnQpOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50
OjpyZXF1ZXN0Q2FuZGlkYXRlc0ZvclNlbGVjdGlvbik6CisKIDIwMTctMDktMjAgIEpvc2VwaCBQ
ZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBX
ZWJWaWV3IGluZGljYXRpb24gaGlnaGxpZ2h0cyBzdGlja3MgYXJvdW5kIGZvciBXZWJLaXRMZWdh
Y3kgdmlld3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaCBiL1NvdXJjZS9X
VEYvd3RmL1dlYWtQdHIuaAppbmRleCAyOWNjMDU2ZDEzOWFhMDkzMzg3YjIxYTc1ZjYzZWI2ODY3
ZjFjNzJhLi5iZDJmNTQ0M2RlOTFhMDgyZjdhZWYzNDIzNTUyZjE5ZDE5MjBlZGE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9XZWFrUHRyLmgKKysrIGIvU291cmNlL1dURi93dGYvV2Vha1B0
ci5oCkBAIC0zMiwxMCArMzIsNiBAQAogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRl
ZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAotI2lmIFVTRShXRUJfVEhSRUFEKQot
I2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdURiB7CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWtQdHI7CkBAIC00NywyNSArNDMsOSBAQCBj
bGFzcyBXZWFrUmVmZXJlbmNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdlYWtSZWZl
cmVuY2U8VD4+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWFrUmVmZXJlbmNlPFQ+KTsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBUKiBnZXQoKSBjb25z
dAotICAgIHsKLSNpZiBVU0UoV0VCX1RIUkVBRCkKLSAgICAgICAgQVNTRVJUKGNhbkFjY2Vzc1Ro
cmVhZExvY2FsRGF0YUZvclRocmVhZChtX2JvdW5kVGhyZWFkKSk7Ci0jZWxzZQotICAgICAgICBB
U1NFUlQobV9ib3VuZFRocmVhZCA9PSBjdXJyZW50VGhyZWFkKCkpOwotI2VuZGlmCi0gICAgICAg
IHJldHVybiBtX3B0cjsKLSAgICB9CisgICAgVCogZ2V0KCkgY29uc3QgeyByZXR1cm4gbV9wdHI7
IH0KIAotICAgIHZvaWQgY2xlYXIoKQotICAgIHsKLSNpZiBVU0UoV0VCX1RIUkVBRCkKLSAgICAg
ICAgQVNTRVJUKGNhbkFjY2Vzc1RocmVhZExvY2FsRGF0YUZvclRocmVhZChtX2JvdW5kVGhyZWFk
KSk7Ci0jZWxzZQotICAgICAgICBBU1NFUlQobV9ib3VuZFRocmVhZCA9PSBjdXJyZW50VGhyZWFk
KCkpOwotI2VuZGlmCi0gICAgICAgIG1fcHRyID0gbnVsbHB0cjsKLSAgICB9CisgICAgdm9pZCBj
bGVhcigpIHsgbV9wdHIgPSBudWxscHRyOyB9CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNz
IFdlYWtQdHI8VD47CkBAIC03NSwxNiArNTUsMTAgQEAgcHJpdmF0ZToKIAogICAgIGV4cGxpY2l0
IFdlYWtSZWZlcmVuY2UoVCogcHRyKQogICAgICAgICA6IG1fcHRyKHB0cikKLSNpZm5kZWYgTkRF
QlVHCi0gICAgICAgICwgbV9ib3VuZFRocmVhZChjdXJyZW50VGhyZWFkKCkpCi0jZW5kaWYKICAg
ICB7CiAgICAgfQogCiAgICAgVCogbV9wdHI7Ci0jaWZuZGVmIE5ERUJVRwotICAgIFRocmVhZElk
ZW50aWZpZXIgbV9ib3VuZFRocmVhZDsKLSNlbmRpZgogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUg
VD4KQEAgLTExOCwyMyArOTIsMzMgQEAgY2xhc3MgV2Vha1B0ckZhY3RvcnkgewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFdlYWtQdHJGYWN0b3J5PFQ+KTsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBXZWFrUHRyRmFjdG9yeShUKiBwdHIpIDog
bV9yZWYoV2Vha1JlZmVyZW5jZTxUPjo6Y3JlYXRlKHB0cikpIHsgfQotCi0gICAgfldlYWtQdHJG
YWN0b3J5KCkgeyBtX3JlZi0+Y2xlYXIoKTsgfQorICAgIFdlYWtQdHJGYWN0b3J5KCkgPSBkZWZh
dWx0OworICAgIH5XZWFrUHRyRmFjdG9yeSgpCisgICAgeworICAgICAgICBpZiAoIW1fcmVmKQor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX3JlZi0+Y2xlYXIoKTsKKyAgICB9CiAKLSAg
ICAvLyBXZSBzaG91bGQgY29uc2lkZXIgaGF2aW5nIGNyZWF0ZVdlYWtQdHIgcG9wdWxhdGUgbV9y
ZWYgdGhlIGZpcnN0IHRpbWUgY3JlYXRlV2Vha1B0ciBpcyBjYWxsZWQuCi0gICAgV2Vha1B0cjxU
PiBjcmVhdGVXZWFrUHRyKCkgY29uc3QgeyByZXR1cm4gV2Vha1B0cjxUPihtX3JlZi5jb3B5UmVm
KCkpOyB9CisgICAgV2Vha1B0cjxUPiBjcmVhdGVXZWFrUHRyKFQmIHB0cikgY29uc3QKKyAgICB7
CisgICAgICAgIGlmICghbV9yZWYpCisgICAgICAgICAgICBtX3JlZiA9IFdlYWtSZWZlcmVuY2U8
VD46OmNyZWF0ZSgmcHRyKTsKKyAgICAgICAgQVNTRVJUKCZwdHIgPT0gbV9yZWYtPmdldCgpKTsK
KyAgICAgICAgcmV0dXJuIFdlYWtQdHI8VD4oUmVmPFdlYWtSZWZlcmVuY2U8VD4+KCptX3JlZikp
OworICAgIH0KIAogICAgIHZvaWQgcmV2b2tlQWxsKCkKICAgICB7Ci0gICAgICAgIFQqIHB0ciA9
IG1fcmVmLT5nZXQoKTsKKyAgICAgICAgaWYgKCFtX3JlZikKKyAgICAgICAgICAgIHJldHVybjsK
KwogICAgICAgICBtX3JlZi0+Y2xlYXIoKTsKLSAgICAgICAgLy8gV2UgY3JlYXRlIGEgbmV3IFdl
YWtSZWZlcmVuY2Ugc28gdGhhdCBmdXR1cmUgY2FsbHMgdG8gY3JlYXRlV2Vha1B0cigpIGNyZWF0
ZSBub256ZXJvIFdlYWtQdHJzLgotICAgICAgICBtX3JlZiA9IFdlYWtSZWZlcmVuY2U8VD46OmNy
ZWF0ZShwdHIpOworICAgICAgICBtX3JlZiA9IG51bGxwdHI7CiAgICAgfQogCiBwcml2YXRlOgot
ICAgIFJlZjxXZWFrUmVmZXJlbmNlPFQ+PiBtX3JlZjsKKyAgICBtdXRhYmxlIFJlZlB0cjxXZWFr
UmVmZXJlbmNlPFQ+PiBtX3JlZjsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1l
IFU+IGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgV2Vha1B0cjxUPiYgYSwgY29uc3QgV2Vh
a1B0cjxVPiYgYikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvQ0RNLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RN
LmNwcAppbmRleCA2MGU4YWFkYmMyNjcyOWJkOWNjMDlkNGU5MWIwMTEzZDMzODZiOGNiLi5iNzQw
YmIwODk3Mjk5YTYzNmJmMTE4M2RlMDI3NTUyOWVkNGE2NzE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwCkBAIC01OSw3ICs1OSw2IEBAIFJlZjxD
RE0+IENETTo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBrZXlTeXN0
ZW0pCiBDRE06OkNETShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVt
KQogICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmRvY3VtZW50KQogICAgICwgbV9r
ZXlTeXN0ZW0oa2V5U3lzdGVtKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogICAg
IEFTU0VSVChzdXBwb3J0c0tleVN5c3RlbShrZXlTeXN0ZW0pKTsKICAgICBmb3IgKGF1dG8qIGZh
Y3RvcnkgOiBDRE1GYWN0b3J5OjpyZWdpc3RlcmVkRmFjdG9yaWVzKCkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5oCmluZGV4IDQ2ZDUzYWQwNTIzMjM1YTRj
NTg5MmIyZDFiNGQ4MjczMjM3YzAzMjEuLjk3YTRjNTU4ZDA3ZWRlZmYxMDRkMjQ5ZGYxZmNhZmNk
MGQ5ZjcyZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVk
aWEvQ0RNLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0u
aApAQCAtOTksNyArOTksNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFLZXlT
eXN0ZW1Db25maWd1cmF0aW9uPiAgZ2V0U3VwcG9ydGVkQ29uZmlndXJhdGlvbihjb25zdCBNZWRp
YUtleVN5c3RlbUNvbmZpZ3VyYXRpb24mIGNhbmRpZGF0ZUNvbmZpZ3VyYXRpb24sIE1lZGlhS2V5
c1Jlc3RyaWN0aW9ucyYpOwogICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPE1lZGlhS2V5U3lzdGVt
TWVkaWFDYXBhYmlsaXR5Pj4gZ2V0U3VwcG9ydGVkQ2FwYWJpbGl0aWVzRm9yQXVkaW9WaWRlb1R5
cGUoQXVkaW9WaWRlb1R5cGUsIGNvbnN0IFZlY3RvcjxNZWRpYUtleVN5c3RlbU1lZGlhQ2FwYWJp
bGl0eT4mIHJlcXVlc3RlZENhcGFiaWxpdGllcywgY29uc3QgTWVkaWFLZXlTeXN0ZW1Db25maWd1
cmF0aW9uJiBwYXJ0aWFsQ29uZmlndXJhdGlvbiwgTWVkaWFLZXlzUmVzdHJpY3Rpb25zJik7CiAK
LSAgICBXZWFrUHRyPENETT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rv
cnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxDRE0+IGNyZWF0ZVdlYWtQdHIoKSB7
IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKICAgICB1
c2luZyBDb25zZW50U3RhdHVzQ2FsbGJhY2sgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoQ29uc2VudFN0
YXR1cywgTWVkaWFLZXlTeXN0ZW1Db25maWd1cmF0aW9uJiYsIE1lZGlhS2V5c1Jlc3RyaWN0aW9u
cyYmKT47CiAgICAgdm9pZCBnZXRDb25zZW50U3RhdHVzKE1lZGlhS2V5U3lzdGVtQ29uZmlndXJh
dGlvbiYmIGFjY3VtdWxhdGVkQ29uZmlndXJhdGlvbiwgTWVkaWFLZXlzUmVzdHJpY3Rpb25zJiYs
IENvbnNlbnRTdGF0dXNDYWxsYmFjayYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcAppbmRleCBjYmQ5NGMw
NmZmMTY2MzdmNjVjZjU0ZTYzOWI0NzhjMjQ0MzI2MDc2Li40ZDgyNDVjZjc2OTdkODhiMzRiOGQ0
MzcwOTZlYTQwZTg0YTIyZTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwCkBAIC02Miw3ICs2Miw2IEBA
IE1lZGlhS2V5U2Vzc2lvbjo6TWVkaWFLZXlTZXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIFdlYWtQdHI8TWVkaWFLCiAgICAgLCBtX2ltcGxlbWVudGF0aW9uKFdURk1vdmUo
aW1wbGVtZW50YXRpb24pKQogICAgICwgbV9pbnN0YW5jZShXVEZNb3ZlKGluc3RhbmNlKSkKICAg
ICAsIG1fZXZlbnRRdWV1ZSgqdGhpcykKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsK
ICAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vZW5jcnlwdGVkLW1lZGlhLyNkb20tbWVkaWFr
ZXlzLXNldHNlcnZlcmNlcnRpZmljYXRlCiAgICAgLy8gVzNDIEVkaXRvcidzIERyYWZ0IDA5IE5v
dmVtYmVyIDIwMTYKQEAgLTE4OSw3ICsxODgsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6Z2Vu
ZXJhdGVSZXF1ZXN0KGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdERhdGFUeXBlLCBjb25zdCBCdQog
ICAgICAgICAgICAgbV9sYXRlc3REZWNyeXB0VGltZSA9IDA7CiAgICAgICAgIH0KIAotICAgICAg
ICBtX2luc3RhbmNlLT5yZXF1ZXN0TGljZW5zZShtX3Nlc3Npb25UeXBlLCBpbml0RGF0YVR5cGUs
IFdURk1vdmUoaW5pdERhdGEpLCBbdGhpcywgd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChSZWY8U2hhcmVkQnVm
ZmVyPiYmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBib29sIG5lZWRzSW5kaXZp
ZHVhbGl6YXRpb24sIENETUluc3RhbmNlOjpTdWNjZXNzVmFsdWUgc3VjY2VlZGVkKSBtdXRhYmxl
IHsKKyAgICAgICAgbV9pbnN0YW5jZS0+cmVxdWVzdExpY2Vuc2UobV9zZXNzaW9uVHlwZSwgaW5p
dERhdGFUeXBlLCBXVEZNb3ZlKGluaXREYXRhKSwgW3RoaXMsIHdlYWtUaGlzID0gbV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSld
IChSZWY8U2hhcmVkQnVmZmVyPiYmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBi
b29sIG5lZWRzSW5kaXZpZHVhbGl6YXRpb24sIENETUluc3RhbmNlOjpTdWNjZXNzVmFsdWUgc3Vj
Y2VlZGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogCkBAIC0yODIsNyArMjgxLDcgQEAgdm9pZCBNZWRpYUtleVNlc3Npb246
OmxvYWQoY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJv
bWkKICAgICAgICAgLy8gOC42LiBMZXQgbWVzc2FnZSB0eXBlIGJlIG51bGwuCiAgICAgICAgIC8v
IDguNy4gTGV0IGNkbSBiZSB0aGUgQ0RNIGluc3RhbmNlIHJlcHJlc2VudGVkIGJ5IHRoaXMgb2Jq
ZWN0J3MgY2RtIGluc3RhbmNlIHZhbHVlLgogICAgICAgICAvLyA4LjguIFVzZSB0aGUgY2RtIHRv
IGV4ZWN1dGUgdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICAgICAgbV9pbnN0YW5jZS0+bG9hZFNl
c3Npb24obV9zZXNzaW9uVHlwZSwgKnNhbml0aXplZFNlc3Npb25JZCwgb3JpZ2luLCBbdGhpcywg
d2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKSwgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSksIHNhbml0aXplZFNlc3Npb25JZCA9ICpzYW5pdGl6ZWRTZXNzaW9uSWRd
IChzdGQ6Om9wdGlvbmFsPENETUluc3RhbmNlOjpLZXlTdGF0dXNWZWN0b3I+JiYga25vd25LZXlz
LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4mJiBleHBpcmF0aW9uLCBzdGQ6Om9wdGlvbmFsPENETUlu
c3RhbmNlOjpNZXNzYWdlPiYmIG1lc3NhZ2UsIENETUluc3RhbmNlOjpTdWNjZXNzVmFsdWUgc3Vj
Y2VlZGVkLCBDRE1JbnN0YW5jZTo6U2Vzc2lvbkxvYWRGYWlsdXJlIGZhaWx1cmUpIG11dGFibGUg
eworICAgICAgICBtX2luc3RhbmNlLT5sb2FkU2Vzc2lvbihtX3Nlc3Npb25UeXBlLCAqc2FuaXRp
emVkU2Vzc2lvbklkLCBvcmlnaW4sIFt0aGlzLCB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBzYW5pdGl6
ZWRTZXNzaW9uSWQgPSAqc2FuaXRpemVkU2Vzc2lvbklkXSAoc3RkOjpvcHRpb25hbDxDRE1JbnN0
YW5jZTo6S2V5U3RhdHVzVmVjdG9yPiYmIGtub3duS2V5cywgc3RkOjpvcHRpb25hbDxkb3VibGU+
JiYgZXhwaXJhdGlvbiwgc3RkOjpvcHRpb25hbDxDRE1JbnN0YW5jZTo6TWVzc2FnZT4mJiBtZXNz
YWdlLCBDRE1JbnN0YW5jZTo6U3VjY2Vzc1ZhbHVlIHN1Y2NlZWRlZCwgQ0RNSW5zdGFuY2U6OlNl
c3Npb25Mb2FkRmFpbHVyZSBmYWlsdXJlKSBtdXRhYmxlIHsKICAgICAgICAgICAgIC8vIDguOC4x
LiBJZiB0aGVyZSBpcyBubyBkYXRhIHN0b3JlZCBmb3IgdGhlIHNhbml0aXplZCBzZXNzaW9uIElE
IGluIHRoZSBvcmlnaW4sIHJlc29sdmUgcHJvbWlzZSB3aXRoIGZhbHNlIGFuZCBhYm9ydCB0aGVz
ZSBzdGVwcy4KICAgICAgICAgICAgIC8vIDguOC4yLiBJZiB0aGUgc3RvcmVkIHNlc3Npb24ncyBz
ZXNzaW9uIHR5cGUgaXMgbm90IHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50IE1lZGlhS2V5U2Vzc2lv
biBzZXNzaW9uIHR5cGUsIHJlamVjdCBwcm9taXNlIHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVF
cnJvci4KICAgICAgICAgICAgIC8vIDguOC4zLiBMZXQgc2Vzc2lvbiBkYXRhIGJlIHRoZSBkYXRh
IHN0b3JlZCBmb3IgdGhlIHNhbml0aXplZCBzZXNzaW9uIElEIGluIHRoZSBvcmlnaW4uIFRoaXMg
bXVzdCBub3QgaW5jbHVkZSBkYXRhIGZyb20gb3RoZXIgb3JpZ2luKHMpIG9yIHRoYXQgaXMgbm90
IGFzc29jaWF0ZWQgd2l0aCBhbiBvcmlnaW4uCkBAIC0zODMsNyArMzgyLDcgQEAgdm9pZCBNZWRp
YUtleVNlc3Npb246OnVwZGF0ZShjb25zdCBCdWZmZXJTb3VyY2UmIHJlc3BvbnNlLCBSZWY8RGVm
ZXJyZWRQcm9taXNlPiYKICAgICAgICAgLy8gNi41LiBMZXQgc2Vzc2lvbiBjbG9zZWQgYmUgZmFs
c2UuCiAgICAgICAgIC8vIDYuNi4gTGV0IGNkbSBiZSB0aGUgQ0RNIGluc3RhbmNlIHJlcHJlc2Vu
dGVkIGJ5IHRoaXMgb2JqZWN0J3MgY2RtIGluc3RhbmNlIHZhbHVlLgogICAgICAgICAvLyA2Ljcu
IFVzZSB0aGUgY2RtIHRvIGV4ZWN1dGUgdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICAgICAgbV9p
bnN0YW5jZS0+dXBkYXRlTGljZW5zZShtX3Nlc3Npb25JZCwgbV9zZXNzaW9uVHlwZSwgKnNhbml0
aXplZFJlc3BvbnNlLCBbdGhpcywgd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChib29sIHNlc3Npb25XYXNDbG9z
ZWQsIHN0ZDo6b3B0aW9uYWw8Q0RNSW5zdGFuY2U6OktleVN0YXR1c1ZlY3Rvcj4mJiBjaGFuZ2Vk
S2V5cywgc3RkOjpvcHRpb25hbDxkb3VibGU+JiYgY2hhbmdlZEV4cGlyYXRpb24sIHN0ZDo6b3B0
aW9uYWw8Q0RNSW5zdGFuY2U6Ok1lc3NhZ2U+JiYgbWVzc2FnZSwgQ0RNSW5zdGFuY2U6OlN1Y2Nl
c3NWYWx1ZSBzdWNjZWVkZWQpIG11dGFibGUgeworICAgICAgICBtX2luc3RhbmNlLT51cGRhdGVM
aWNlbnNlKG1fc2Vzc2lvbklkLCBtX3Nlc3Npb25UeXBlLCAqc2FuaXRpemVkUmVzcG9uc2UsIFt0
aGlzLCB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIHBy
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoYm9vbCBzZXNzaW9uV2FzQ2xvc2VkLCBzdGQ6Om9w
dGlvbmFsPENETUluc3RhbmNlOjpLZXlTdGF0dXNWZWN0b3I+JiYgY2hhbmdlZEtleXMsIHN0ZDo6
b3B0aW9uYWw8ZG91YmxlPiYmIGNoYW5nZWRFeHBpcmF0aW9uLCBzdGQ6Om9wdGlvbmFsPENETUlu
c3RhbmNlOjpNZXNzYWdlPiYmIG1lc3NhZ2UsIENETUluc3RhbmNlOjpTdWNjZXNzVmFsdWUgc3Vj
Y2VlZGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogCkBAIC00OTUsNyArNDk0LDcgQEAgdm9pZCBNZWRpYUtleVNlc3Npb246
OmNsb3NlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKICAgICBtX3Rhc2tRdWV1ZS5l
bnF1ZXVlVGFzayhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUg
ewogICAgICAgICAvLyA1LjEuIExldCBjZG0gYmUgdGhlIENETSBpbnN0YW5jZSByZXByZXNlbnRl
ZCBieSBzZXNzaW9uJ3MgY2RtIGluc3RhbmNlIHZhbHVlLgogICAgICAgICAvLyA1LjIuIFVzZSBj
ZG0gdG8gY2xvc2UgdGhlIGtleSBzZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCBzZXNzaW9uLgotICAg
ICAgICBtX2luc3RhbmNlLT5jbG9zZVNlc3Npb24obV9zZXNzaW9uSWQsIFt0aGlzLCB3ZWFrVGhp
cyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCBwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0gKCkgbXV0YWJsZSB7CisgICAgICAgIG1faW5zdGFuY2UtPmNsb3NlU2Vzc2lvbiht
X3Nlc3Npb25JZCwgW3RoaXMsIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFr
UHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgewogICAg
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTUz
Myw3ICs1MzIsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6cmVtb3ZlKFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYgcHJvbWlzZSkKICAgICAgICAgLy8gNC4zLiBMZXQgbWVzc2FnZSB0eXBlIGJlIG51
bGwuCiAKICAgICAgICAgLy8gNC40LiBVc2UgdGhlIGNkbSB0byBleGVjdXRlIHRoZSBmb2xsb3dp
bmcgc3RlcHM6Ci0gICAgICAgIG1faW5zdGFuY2UtPnJlbW92ZVNlc3Npb25EYXRhKG1fc2Vzc2lv
bklkLCBtX3Nlc3Npb25UeXBlLCBbdGhpcywgd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChDRE1JbnN0YW5jZTo6
S2V5U3RhdHVzVmVjdG9yJiYga2V5cywgc3RkOjpvcHRpb25hbDxSZWY8U2hhcmVkQnVmZmVyPj4m
JiBtZXNzYWdlLCBDRE1JbnN0YW5jZTo6U3VjY2Vzc1ZhbHVlIHN1Y2NlZWRlZCkgbXV0YWJsZSB7
CisgICAgICAgIG1faW5zdGFuY2UtPnJlbW92ZVNlc3Npb25EYXRhKG1fc2Vzc2lvbklkLCBtX3Nl
c3Npb25UeXBlLCBbdGhpcywgd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKENETUluc3RhbmNlOjpLZXlT
dGF0dXNWZWN0b3ImJiBrZXlzLCBzdGQ6Om9wdGlvbmFsPFJlZjxTaGFyZWRCdWZmZXI+PiYmIG1l
c3NhZ2UsIENETUluc3RhbmNlOjpTdWNjZXNzVmFsdWUgc3VjY2VlZGVkKSBtdXRhYmxlIHsKICAg
ICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAK
aW5kZXggYzBlZjU1NGNiMGU4OThmYzY3MzBlYWRjMjY2MjkwMmNlNWNiNmMwMi4uYmVmMzZhMzJk
ZTFmZWI1Y2FhNDAxODdiNmUxNTYxODE1YjcxZjNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcApAQCAtNDUsNyArNDUsNiBA
QCBNZWRpYUtleXM6Ok1lZGlhS2V5cyhib29sIHVzZURpc3RpbmN0aXZlSWRlbnRpZmllciwgYm9v
bCBwZXJzaXN0ZW50U3RhdGVBbGxvd2VkLAogICAgICwgbV9zdXBwb3J0ZWRTZXNzaW9uVHlwZXMo
c3VwcG9ydGVkU2Vzc2lvblR5cGVzKQogICAgICwgbV9pbXBsZW1lbnRhdGlvbihXVEZNb3ZlKGlt
cGxlbWVudGF0aW9uKSkKICAgICAsIG1faW5zdGFuY2UoV1RGTW92ZShpbnN0YW5jZSkpCi0gICAg
LCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiB9CiAKQEAgLTY4LDcgKzY3LDcgQEAgRXhjZXB0
aW9uT3I8UmVmPE1lZGlhS2V5U2Vzc2lvbj4+IE1lZGlhS2V5czo6Y3JlYXRlU2Vzc2lvbihTY3Jp
cHRFeGVjdXRpb25Db250ZXgKICAgICAvLyAzLiBMZXQgc2Vzc2lvbiBiZSBhIG5ldyBNZWRpYUtl
eVNlc3Npb24gb2JqZWN0LCBhbmQgaW5pdGlhbGl6ZSBpdCBhcyBmb2xsb3dzOgogICAgIC8vIE5P
VEU6IENvbnRpbnVlZCBpbiBNZWRpYUtleVNlc3Npb24uCiAgICAgLy8gNC4gUmV0dXJuIHNlc3Np
b24uCi0gICAgYXV0byBzZXNzaW9uID0gTWVkaWFLZXlTZXNzaW9uOjpjcmVhdGUoY29udGV4dCwg
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIHNlc3Npb25UeXBlLCBtX3VzZURpc3Rp
bmN0aXZlSWRlbnRpZmllciwgbV9pbXBsZW1lbnRhdGlvbi5jb3B5UmVmKCksIG1faW5zdGFuY2Uu
Y29weVJlZigpKTsKKyAgICBhdXRvIHNlc3Npb24gPSBNZWRpYUtleVNlc3Npb246OmNyZWF0ZShj
b250ZXh0LCBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpLCBzZXNzaW9uVHlw
ZSwgbV91c2VEaXN0aW5jdGl2ZUlkZW50aWZpZXIsIG1faW1wbGVtZW50YXRpb24uY29weVJlZigp
LCBtX2luc3RhbmNlLmNvcHlSZWYoKSk7CiAgICAgbV9zZXNzaW9ucy5hcHBlbmQoc2Vzc2lvbi5j
b3B5UmVmKCkpOwogICAgIHJldHVybiBXVEZNb3ZlKHNlc3Npb24pOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCmluZGV4IDZl
NDBjN2Y2MjE4YjQxMWNlODY3NDBjMjBlNzI0YzMyZTJlYjgwZjUuLjQ0MDU5OTY1Y2MxZWJmZDdm
YWYwNGU2YjVhYjU0MDk1OTljODU0YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogaW5saW5lIE1lZGlhRGV2aWNlczo6TWVkaWFEZXZpY2VzKERvY3VtZW50
JiBkb2N1bWVudCkKICAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKCZkb2N1bWVudCkK
ICAgICAsIG1fc2NoZWR1bGVkRXZlbnRUaW1lcigqdGhpcywgJk1lZGlhRGV2aWNlczo6c2NoZWR1
bGVkRXZlbnRUaW1lckZpcmVkKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogICAg
IG1fZGV2aWNlQ2hhbmdlZFRva2VuID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkuYWRkRGV2aWNlc0NoYW5nZWRPYnNlcnZlcihbd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRy
KCksIHRoaXNdKCkgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhRGV2aWNlcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXMuaAppbmRleCA5ZjMwYzNlYWQ5NTI4NmNmMGIxNDFiODU5ODc4NWQ0MDMw
NDkwM2NiLi42MTEyODUzMDUyOTc0ZDdlZWEyNzA5ZTRjYTc4YzNjOWU0YmUwMzcxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKQEAg
LTgyLDcgKzgyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJp
ZGUgeyByZWYoKTsgfQogICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVy
ZWYoKTsgfQogCi0gICAgV2Vha1B0cjxNZWRpYURldmljZXM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJl
dHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8TWVk
aWFEZXZpY2VzPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVh
dGVXZWFrUHRyKCp0aGlzKTsgfQogCiAgICAgVGltZXIgbV9zY2hlZHVsZWRFdmVudFRpbWVyOwog
ICAgIHN0ZDo6b3B0aW9uYWw8UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6RGV2aWNlc0NoYW5n
ZWRPYnNlcnZlclRva2VuPiBtX2RldmljZUNoYW5nZWRUb2tlbjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4
IDE2ODg0ZTM4MjY2ODRjZTc3ODdkNTg2YTg0Zjg4ZmRjNzkxYzI3ODkuLjllMTc4ZGY0YmQyYTVj
OWQ3OWFmMGE3Njk2Zjc5YzMyMmZlMThlODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtNTMsNyArNTMs
NiBAQCBSZWY8TWVkaWFTdHJlYW1UcmFjaz4gTWVkaWFTdHJlYW1UcmFjazo6Y3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsCiBNZWRpYVN0cmVhbVRyYWNrOjpNZWRpYVN0cmVh
bVRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZjxNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZT4mJiBwcml2YXRlVHJhY2spCiAgICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRl
eHQpCiAgICAgLCBtX3ByaXZhdGUoV1RGTW92ZShwcml2YXRlVHJhY2spKQotICAgICwgbV93ZWFr
UHRyRmFjdG9yeSh0aGlzKQogICAgICwgbV90YXNrUXVldWUoY29udGV4dCkKIHsKICAgICBzdXNw
ZW5kSWZOZWVkZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXggNGE0OTk0YTY5ZGYwYmRiMWZmZjhiMzYwMmU0
NmIzMDU5MDM5MWFhMy4uYTUzYWNkNjIzYzQ1MGI4ZmFhZjdmODUyMzRhNWFjYjBmMWZhNzExZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrLmgKQEAgLTE2NSw3ICsxNjUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdHJhY2tT
ZXR0aW5nc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbDsKICAgICB2b2lk
IHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbDsKIAot
ICAgIFdlYWtQdHI8TWVkaWFTdHJlYW1UcmFjaz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxNZWRpYVN0cmVh
bVRyYWNrPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVX
ZWFrUHRyKCp0aGlzKTsgfQogCiAgICAgVmVjdG9yPE9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CiAg
ICAgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBtX3ByaXZhdGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvU3lzdGVtU2xlZXBMaXN0ZW5lck1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9TeXN0ZW1TbGVlcExpc3RlbmVy
TWFjLm1tCmluZGV4IDBiNWEwZjU4MDY2YjNhNmVkMDliZjAyYjM4NzkyMWZlYTEyMmY4MzIuLjZk
NTNhN2JmZDBkOGY3YWNlZDEyZTdjZGVmMjE2ZTI4Y2QyOWZkZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9TeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9TeXN0ZW1TbGVlcExpc3RlbmVy
TWFjLm1tCkBAIC00MCwxNCArNDAsMTMgQEAgc3RkOjp1bmlxdWVfcHRyPFN5c3RlbVNsZWVwTGlz
dGVuZXI+IFN5c3RlbVNsZWVwTGlzdGVuZXI6OmNyZWF0ZShDbGllbnQmIGNsaWVudCkKIAogU3lz
dGVtU2xlZXBMaXN0ZW5lck1hYzo6U3lzdGVtU2xlZXBMaXN0ZW5lck1hYyhDbGllbnQmIGNsaWVu
dCkKICAgICA6IFN5c3RlbVNsZWVwTGlzdGVuZXIoY2xpZW50KQotICAgICwgbV93ZWFrUHRyRmFj
dG9yeSh0aGlzKQogICAgICwgbV9zbGVlcE9ic2VydmVyKG5pbCkKICAgICAsIG1fd2FrZU9ic2Vy
dmVyKG5pbCkKIHsKICAgICBOU05vdGlmaWNhdGlvbkNlbnRlciAqY2VudGVyID0gW1tOU1dvcmtz
cGFjZSBzaGFyZWRXb3Jrc3BhY2VdIG5vdGlmaWNhdGlvbkNlbnRlcl07CiAgICAgTlNPcGVyYXRp
b25RdWV1ZSAqcXVldWUgPSBbTlNPcGVyYXRpb25RdWV1ZSBtYWluUXVldWVdOwogCi0gICAgYXV0
byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAgIGF1dG8g
d2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOwogCiAgICAg
bV9zbGVlcE9ic2VydmVyID0gW2NlbnRlciBhZGRPYnNlcnZlckZvck5hbWU6TlNXb3Jrc3BhY2VX
aWxsU2xlZXBOb3RpZmljYXRpb24gb2JqZWN0Om5pbCBxdWV1ZTpxdWV1ZSB1c2luZ0Jsb2NrOl4o
TlNOb3RpZmljYXRpb24gKikgewogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpc10g
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggZDJkZTFmMzYyOTMwOWU1ZDY4YTliNzUxZGViYTI4
ZDc1NTVhZWRlOC4uZTQxNTVkMThkNTFkZDAwZGU3ZjhhNDBjZWJlZWYzMjM2MDlkZTZiOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xMDksNyArMTA5LDYgQEAgdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OkFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICA6IEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0KHJlbmRlcmVyLT5ub2RlKCkpCiAgICAgLCBtX3JlbmRlcmVyKHJlbmRlcmVyKQotICAgICwg
bV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogI2lmbmRlZiBOREVCVUcKICAgICBtX3JlbmRlcmVy
LT5zZXRIYXNBWE9iamVjdCh0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKaW5kZXggODk1M2VjZDRmYjg5
MjU0Mjg1ZWViMTMzZTMzYWU0NDcyYTY1YmY5Ni4uYTUwNzE1NzA0YWRmMjI0ZGU2N2EzNjFlMGVj
MDQyYmMxMjY0OTFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKQEAgLTIwMCw3ICsyMDAsNyBAQCBwdWJs
aWM6CiAKICAgICBTdHJpbmcgcGFzc3dvcmRGaWVsZFZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgCi0gICAgV2Vha1B0cjxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0PiBjcmVhdGVXZWFrUHRy
KCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFr
UHRyPEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBt
X3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKIHByb3RlY3RlZDoKICAg
ICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KFJlbmRlck9iamVjdCopOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAppbmRleCAwMDY2MWNlOTJiMDZm
YzgxM2RkMjVhYzdkNDYxMzQzNWNiOTZiODM2Li5kYmM1NTY2ZTM1ZTRlZjM4MTE0YzJkYzA2YzRh
ZGU4ZjNlNDNlM2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5p
bWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNw
cApAQCAtNjAsNyArNjAsNiBAQCBSZWZQdHI8V2ViQW5pbWF0aW9uPiBXZWJBbmltYXRpb246OmNy
ZWF0ZShBbmltYXRpb25FZmZlY3QqIGVmZmVjdCwgQW5pbWF0aW9uVGltZQogV2ViQW5pbWF0aW9u
OjpXZWJBbmltYXRpb24oQW5pbWF0aW9uRWZmZWN0KiBlZmZlY3QsIEFuaW1hdGlvblRpbWVsaW5l
KiB0aW1lbGluZSkKICAgICA6IG1fZWZmZWN0KGVmZmVjdCkKICAgICAsIG1fdGltZWxpbmUodGlt
ZWxpbmUpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiAgICAgaWYgKG1fZWZmZWN0
KQogICAgICAgICBtX2VmZmVjdC0+c2V0QW5pbWF0aW9uKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL1dlYkFuaW1hdGlvbi5oCmluZGV4IGIwMTczYjZlMzVkYzBkYWJiYTYxZjYwOTk4ZWVl
YmUzN2M1MGU2ZjUuLmQ2ZmIwYTAwZGExOTJjNmQxZWRiZDRkYmFlNmQ0MTNmZWE2Mjk5NjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgKQEAgLTQ4LDcgKzQ4LDcgQEAg
cHVibGljOgogICAgIEFuaW1hdGlvbkVmZmVjdCogZWZmZWN0KCkgY29uc3QgeyByZXR1cm4gbV9l
ZmZlY3QuZ2V0KCk7IH0KICAgICBBbmltYXRpb25UaW1lbGluZSogdGltZWxpbmUoKSBjb25zdCB7
IHJldHVybiBtX3RpbWVsaW5lLmdldCgpOyB9CiAKLSAgICBXZWFrUHRyPFdlYkFuaW1hdGlvbj4g
Y3JlYXRlV2Vha1B0cigpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vh
a1B0cigpOyB9CisgICAgV2Vha1B0cjxXZWJBbmltYXRpb24+IGNyZWF0ZVdlYWtQdHIoKSB7IHJl
dHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKIHByaXZhdGU6
CiAgICAgV2ViQW5pbWF0aW9uKEFuaW1hdGlvbkVmZmVjdCosIEFuaW1hdGlvblRpbWVsaW5lKik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0ZvbnRGYWNlLmNwcAppbmRleCA4MjUzMWZmODUzMjc4MjhiOWY5ZDc3NjFiMjli
NzlhNjY4NDdjODgxLi45NjZiN2ZhZGY0OWIwZjNlYjA4Yjc0NjgyNmE4OWRlYjVkMDFiYjY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAKQEAgLTEyMCwxNiArMTIwLDE0IEBAIFJlZjxGb250RmFj
ZT4gRm9udEZhY2U6OmNyZWF0ZShDU1NGb250RmFjZSYgZmFjZSkKIH0KIAogRm9udEZhY2U6OkZv
bnRGYWNlKENTU0ZvbnRTZWxlY3RvciYgZm9udFNlbGVjdG9yKQotICAgIDogbV93ZWFrUHRyRmFj
dG9yeSh0aGlzKQotICAgICwgbV9iYWNraW5nKENTU0ZvbnRGYWNlOjpjcmVhdGUoJmZvbnRTZWxl
Y3RvciwgbnVsbHB0ciwgdGhpcykpCisgICAgOiBtX2JhY2tpbmcoQ1NTRm9udEZhY2U6OmNyZWF0
ZSgmZm9udFNlbGVjdG9yLCBudWxscHRyLCB0aGlzKSkKICAgICAsIG1fbG9hZGVkUHJvbWlzZSgq
dGhpcywgJkZvbnRGYWNlOjpsb2FkZWRQcm9taXNlUmVzb2x2ZSkKIHsKICAgICBtX2JhY2tpbmct
PmFkZENsaWVudCgqdGhpcyk7CiB9CiAKIEZvbnRGYWNlOjpGb250RmFjZShDU1NGb250RmFjZSYg
ZmFjZSkKLSAgICA6IG1fd2Vha1B0ckZhY3RvcnkodGhpcykKLSAgICAsIG1fYmFja2luZyhmYWNl
KQorICAgIDogbV9iYWNraW5nKGZhY2UpCiAgICAgLCBtX2xvYWRlZFByb21pc2UoKnRoaXMsICZG
b250RmFjZTo6bG9hZGVkUHJvbWlzZVJlc29sdmUpCiB7CiAgICAgbV9iYWNraW5nLT5hZGRDbGll
bnQoKnRoaXMpOwpAQCAtMTQwLDkgKzEzOCw5IEBAIEZvbnRGYWNlOjp+Rm9udEZhY2UoKQogICAg
IG1fYmFja2luZy0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsKIH0KIAotV2Vha1B0cjxGb250RmFjZT4g
Rm9udEZhY2U6OmNyZWF0ZVdlYWtQdHIoKSBjb25zdAorV2Vha1B0cjxGb250RmFjZT4gRm9udEZh
Y2U6OmNyZWF0ZVdlYWtQdHIoKQogewotICAgIHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0
ZVdlYWtQdHIoKTsKKyAgICByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0
aGlzKTsKIH0KIAogUmVmUHRyPENTU1ZhbHVlPiBGb250RmFjZTo6cGFyc2VTdHJpbmcoY29uc3Qg
U3RyaW5nJiBzdHJpbmcsIENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNl
LmgKaW5kZXggYzcxY2UwM2MwZjBhNWQ3Yjg3ZTkzNGZjZTM2OGEyZmZmMzdkMzZhOC4uMmY0Yzg4
OTQzY2JkZTc2NjE3MjJjMDRjZTZkYzZiZTI2NWM5ODUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0ZvbnRGYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmgK
QEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBmb250U3RhdGVDaGFuZ2VkKENT
U0ZvbnRGYWNlJiwgQ1NTRm9udEZhY2U6OlN0YXR1cyBvbGRTdGF0ZSwgQ1NTRm9udEZhY2U6OlN0
YXR1cyBuZXdTdGF0ZSkgZmluYWw7CiAKLSAgICBXZWFrUHRyPEZvbnRGYWNlPiBjcmVhdGVXZWFr
UHRyKCkgY29uc3Q7CisgICAgV2Vha1B0cjxGb250RmFjZT4gY3JlYXRlV2Vha1B0cigpOwogCiAg
ICAgdm9pZCByZWYoKSBmaW5hbCB7IFJlZkNvdW50ZWQ6OnJlZigpOyB9CiAgICAgdm9pZCBkZXJl
ZigpIGZpbmFsIHsgUmVmQ291bnRlZDo6ZGVyZWYoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
U2hlZXRDb250ZW50cy5oCmluZGV4IDE5MDc1NTg4ZmNkNGM4YmQzMDJkOGY0MDE2ZGZhMWY1NDRi
ZDU0ZjEuLjhjMGI0ZGEzMTM1ZGM4MGU2MGIyYzdmYzBhMTg2ZmRjM2RiMWVhMjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmgKQEAgLTE0Myw3ICsxNDMsNyBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIHNocmlua1RvRml0KCk7CiAKLSAgICBXZWFrUHRyPFN0eWxlU2hlZXRD
b250ZW50cz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRl
V2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxTdHlsZVNoZWV0Q29udGVudHM+IGNyZWF0ZVdlYWtQ
dHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAK
IHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgU3R5bGVTaGVldENvbnRlbnRzKFN0eWxlUnVs
ZUltcG9ydCogb3duZXJSdWxlLCBjb25zdCBTdHJpbmcmIG9yaWdpbmFsVVJMLCBjb25zdCBDU1NQ
YXJzZXJDb250ZXh0Jik7CkBAIC0xNzUsNyArMTc1LDcgQEAgcHJpdmF0ZToKIAogICAgIFZlY3Rv
cjxDU1NTdHlsZVNoZWV0Kj4gbV9jbGllbnRzOwogICAgIAotICAgIFdlYWtQdHJGYWN0b3J5PFN0
eWxlU2hlZXRDb250ZW50cz4gbV93ZWFrUHRyRmFjdG9yeSB7IHRoaXMgfTsKKyAgICBXZWFrUHRy
RmFjdG9yeTxTdHlsZVNoZWV0Q29udGVudHM+IG1fd2Vha1B0ckZhY3Rvcnk7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRy
YW5zZmVySXRlbUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1M
aXN0LmNwcAppbmRleCAwMzM3YTBiZDlmZjg4OTFhMTRmNTdmZjNmMjQ1ZTNkNTA5NzhmNjU5Li5l
NTAyY2NlM2VkMGFlM2MzMzc3YmIyMTlkY2JhYWM5Y2Y0MzZkYjQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAKQEAgLTM5LDggKzM5LDcgQEAgc3RhdGlj
IGJvb2wgaXNTdXBwb3J0ZWRUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKIH0KIAogRGF0YVRyYW5z
ZmVySXRlbUxpc3Q6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0KERhdGFUcmFuc2ZlciYgZGF0YVRyYW5z
ZmVyKQotICAgIDogbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQotICAgICwgbV9kYXRhVHJhbnNmZXIo
ZGF0YVRyYW5zZmVyKQorICAgIDogbV9kYXRhVHJhbnNmZXIoZGF0YVRyYW5zZmVyKQogewogfQog
CkBAIC03OSw3ICs3OCw3IEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPj4g
RGF0YVRyYW5zZmVySXRlbUxpc3Q6OmFkZChjb25zdCBTdHJpbmcmIGRhCiAKICAgICBtX2RhdGFU
cmFuc2Zlci5wYXN0ZWJvYXJkKCkud3JpdGVTdHJpbmcobG93ZXJjYXNlZFR5cGUsIGRhdGEpOwog
ICAgIEFTU0VSVChtX2l0ZW1zKTsKLSAgICBtX2l0ZW1zLT5hcHBlbmQoRGF0YVRyYW5zZmVySXRl
bTo6Y3JlYXRlKG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCB0eXBlKSk7CisgICAg
bV9pdGVtcy0+YXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShtX3dlYWtQdHJGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIoKnRoaXMpLCB0eXBlKSk7CiAgICAgcmV0dXJuIFJlZlB0cjxEYXRhVHJh
bnNmZXJJdGVtPiB7IG1faXRlbXMtPmxhc3QoKS5jb3B5UmVmKCkgfTsKIH0KIApAQCAtMTI3LDEz
ICsxMjYsMTMgQEAgVmVjdG9yPFJlZjxEYXRhVHJhbnNmZXJJdGVtPj4mIERhdGFUcmFuc2Zlckl0
ZW1MaXN0OjplbnN1cmVJdGVtcygpIGNvbnN0CiAgICAgZm9yIChhdXRvJiB0eXBlIDogbV9kYXRh
VHJhbnNmZXIudHlwZXMoKSkgewogICAgICAgICBhdXRvIGxvd2VyY2FzZWRUeXBlID0gdHlwZS5j
b252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwogICAgICAgICBpZiAoaXNTdXBwb3J0ZWRUeXBlKGxv
d2VyY2FzZWRUeXBlKSkKLSAgICAgICAgICAgIGl0ZW1zLmFwcGVuZChEYXRhVHJhbnNmZXJJdGVt
OjpjcmVhdGUobV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIGxvd2VyY2FzZWRUeXBl
KSk7CisgICAgICAgICAgICBpdGVtcy5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqY29uc3RfY2FzdDxEYXRhVHJhbnNmZXJJdGVt
TGlzdCo+KHRoaXMpKSwgbG93ZXJjYXNlZFR5cGUpKTsKICAgICB9CiAKICAgICBmb3IgKGF1dG8m
IGZpbGUgOiBtX2RhdGFUcmFuc2Zlci5maWxlcygpLmZpbGVzKCkpIHsKICAgICAgICAgYXV0byB0
eXBlID0gRmlsZTo6Y29udGVudFR5cGVGb3JGaWxlKGZpbGUtPnBhdGgoKSkuY29udmVydFRvQVND
SUlMb3dlcmNhc2UoKTsKICAgICAgICAgaWYgKGlzU3VwcG9ydGVkVHlwZSh0eXBlKSB8fCBmaWxl
LT5pc0RpcmVjdG9yeSgpKQotICAgICAgICAgICAgaXRlbXMuYXBwZW5kKERhdGFUcmFuc2Zlckl0
ZW06OmNyZWF0ZShtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKSwgdHlwZSwgZmlsZS5j
b3B5UmVmKCkpKTsKKyAgICAgICAgICAgIGl0ZW1zLmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtOjpj
cmVhdGUobV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCpjb25zdF9jYXN0PERhdGFUcmFu
c2Zlckl0ZW1MaXN0Kj4odGhpcykpLCB0eXBlLCBmaWxlLmNvcHlSZWYoKSkpOwogICAgIH0KIAog
ICAgIG1faXRlbXMgPSBXVEZNb3ZlKGl0ZW1zKTsKQEAgLTE3OSw3ICsxNzgsNyBAQCB2b2lkIERh
dGFUcmFuc2Zlckl0ZW1MaXN0OjpkaWRTZXRTdHJpbmdEYXRhKGNvbnN0IFN0cmluZyYgdHlwZSkK
ICAgICBTdHJpbmcgbG93ZXJjYXNlZFR5cGUgPSB0eXBlLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNl
KCk7CiAgICAgcmVtb3ZlU3RyaW5nSXRlbU9mTG93ZXJjYXNlZFR5cGUoKm1faXRlbXMsIHR5cGUu
Y29udmVydFRvQVNDSUlMb3dlcmNhc2UoKSk7CiAKLSAgICBtX2l0ZW1zLT5hcHBlbmQoRGF0YVRy
YW5zZmVySXRlbTo6Y3JlYXRlKG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCBsb3dl
cmNhc2VkVHlwZSkpOworICAgIG1faXRlbXMtPmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVh
dGUobV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgbG93ZXJjYXNlZFR5cGUp
KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggY2VlM2EyY2JlNTZhMDEyZjRk
NjIwNzExMjYwZDQwMDZjNGUzNDdjNS4uMjg0NTE0OTZhNTc4NDYwNmMzNTdjYWZkMThlZDA2MjUy
ZmE1Nzc2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00NjksNyArNDY5LDYgQEAgRG9j
dW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwsIHVuc2lnbmVkIGRv
Y3VtZW50Q2xhc3NlcywgdW5zaWcKICAgICAsIG1fY29uc3RhbnRQcm9wZXJ0eU1hcChzdGQ6Om1h
a2VfdW5pcXVlPENvbnN0YW50UHJvcGVydHlNYXA+KCp0aGlzKSkKICAgICAsIG1fZG9jdW1lbnRD
bGFzc2VzKGRvY3VtZW50Q2xhc3NlcykKICAgICAsIG1fZXZlbnRRdWV1ZSgqdGhpcykKLSAgICAs
IG1fd2Vha0ZhY3RvcnkodGhpcykKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgLCBt
X2Z1bGxTY3JlZW5DaGFuZ2VEZWxheVRpbWVyKCp0aGlzLCAmRG9jdW1lbnQ6OmZ1bGxTY3JlZW5D
aGFuZ2VEZWxheVRpbWVyRmlyZWQpCiAjZW5kaWYKQEAgLTU2MjcsNyArNTYyNiw3IEBAIHZvaWQg
RG9jdW1lbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBs
ZXZlbCwgY29uc3QgU3RyaW5nCiAKIHZvaWQgRG9jdW1lbnQ6OnBvc3RUYXNrKFRhc2smJiB0YXNr
KQogewotICAgIGNhbGxPbk1haW5UaHJlYWQoW2RvY3VtZW50UmVmZXJlbmNlID0gbV93ZWFrRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCksIHRhc2sgPSBXVEZNb3ZlKHRhc2spXSgpIG11dGFibGUgewor
ICAgIGNhbGxPbk1haW5UaHJlYWQoW2RvY3VtZW50UmVmZXJlbmNlID0gbV93ZWFrRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCp0aGlzKSwgdGFzayA9IFdURk1vdmUodGFzayldKCkgbXV0YWJsZSB7CiAg
ICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICAgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gZG9jdW1lbnRSZWZlcmVuY2UuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGUw
MDk1ZmVhMDIxY2I0NDVjODdmZjY2ZGZiMTQwOWYzOWRlZjQ0YTUuLjdhNWQxYWVlMGVjOTI1YWUw
NmU2OGI3Y2VmN2FiMTIzNDM5YmE0NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMjcyLDcg
KzEyNzIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0NhcHR1cmluZygpIGNvbnN0IHsgcmV0dXJu
IE1lZGlhUHJvZHVjZXI6OmlzQ2FwdHVyaW5nKG1fbWVkaWFTdGF0ZSk7IH0KICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHVwZGF0ZUlzUGxheWluZ01lZGlhKHVpbnQ2NF90ID0gSFRNTE1lZGlhRWxl
bWVudEludmFsaWRJRCk7CiAgICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSgpOwotICAg
IFdlYWtQdHI8RG9jdW1lbnQ+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8RG9jdW1lbnQ+IGNyZWF0ZVdlYWtQdHIo
KSB7IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKICNpZiBF
TkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgIHZvaWQgYWRkUGxheWJhY2tUYXJn
ZXRQaWNrZXJDbGllbnQoTWVkaWFQbGF5YmFja1RhcmdldENsaWVudCYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggZjEyMmMwNzhjYTI3MDQzMDRmOWU3YjYy
MGE3YTU0MThmYzAzNDJjNC4uMTcwMGJkNjI1NWVmMTc0YzZhZmI5ODU0Y2ZmZTI1ODhlY2Y4M2Rl
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC00MTEsNyAr
NDExLDYgQEAgc3RhdGljIHVpbnQ2NF90IG5leHRMb2dJZGVudGlmaWVyKCkKIEhUTUxNZWRpYUVs
ZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50LCBib29sIGNyZWF0ZWRCeVBhcnNlcikKICAgICA6IEhUTUxFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwgQWN0aXZlRE9NT2JqZWN0KCZkb2N1bWVudCkKLSAg
ICAsIG1fd2Vha0ZhY3RvcnkodGhpcykKICAgICAsIG1fcGVuZGluZ0FjdGlvblRpbWVyKCp0aGlz
LCAmSFRNTE1lZGlhRWxlbWVudDo6cGVuZGluZ0FjdGlvblRpbWVyRmlyZWQpCiAgICAgLCBtX3By
b2dyZXNzRXZlbnRUaW1lcigqdGhpcywgJkhUTUxNZWRpYUVsZW1lbnQ6OnByb2dyZXNzRXZlbnRU
aW1lckZpcmVkKQogICAgICwgbV9wbGF5YmFja1Byb2dyZXNzVGltZXIoKnRoaXMsICZIVE1MTWVk
aWFFbGVtZW50OjpwbGF5YmFja1Byb2dyZXNzVGltZXJGaXJlZCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmgKaW5kZXggYzMzYWI5Yjg4MGY5ZWE0ODI5MjYyZjNkZTczZmQ2MDMx
MjA3OGFlNC4uYzg0MThmMTU1YWRiYzhmZGU1NjllY2Y2MjYyNGJiZWFlNDMwYmMzYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTE0NSw3ICsxNDUsNyBAQCBjbGFz
cyBIVE1MTWVkaWFFbGVtZW50CiAjZW5kaWYKIHsKIHB1YmxpYzoKLSAgICBXZWFrUHRyPEhUTUxN
ZWRpYUVsZW1lbnQ+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0
ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8SFRNTE1lZGlhRWxlbWVudD4gY3JlYXRlV2Vha1B0
cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KICAgICBN
ZWRpYVBsYXllciogcGxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9wbGF5ZXIuZ2V0KCk7IH0KIAog
ICAgIHZpcnR1YWwgYm9vbCBpc1ZpZGVvKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5oCmluZGV4IDg0YmQ2NmU1M2RiNjY0NmVl
MGYxOTliODY1ZDVhNjZiZjUzZTQ4YWEuLjBjYjQ3ODFkYTVmM2VhYjE4MDIwNWYxYmIxOThlY2Ey
YjcxYTZhZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuaApAQCAt
NDMsMTQgKzQzLDE0IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgdmlld3BvcnRDaGFuZ2VBZmZlY3Rl
ZFBpY3R1cmUoKSBjb25zdDsKIAotICAgIFdlYWtQdHI8SFRNTFBpY3R1cmVFbGVtZW50PiBjcmVh
dGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAg
ICBXZWFrUHRyPEhUTUxQaWN0dXJlRWxlbWVudD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1f
d2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogcHJpdmF0ZToKICAgICBIVE1M
UGljdHVyZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2
b2lkIGRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50JiBvbGREb2N1bWVudCwgRG9jdW1lbnQm
IG5ld0RvY3VtZW50KSBmaW5hbDsKIAotICAgIFdlYWtQdHJGYWN0b3J5PEhUTUxQaWN0dXJlRWxl
bWVudD4gbV93ZWFrRmFjdG9yeSB7IHRoaXMgfTsKKyAgICBXZWFrUHRyRmFjdG9yeTxIVE1MUGlj
dHVyZUVsZW1lbnQ+IG1fd2Vha0ZhY3Rvcnk7CiAgICAgVmVjdG9yPE1lZGlhUXVlcnlSZXN1bHQ+
IG1fdmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0czsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRlci5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFJlc291cmNlUHJlbG9hZGVyLmgKaW5kZXggY2Qx
MGY4NWRlOTEwNGE1MGE5NGQ1ZGJlOGMzMTM5NzM4MGU5NGQ4Yy4uYWEyYzc4MmRlMDU4MzdmNTIy
ODYzOWY5NmIwODMyZTMzYjVjY2FiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFJlc291cmNlUHJlbG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFJlc291cmNlUHJlbG9hZGVyLmgKQEAgLTc3LDE0ICs3NywxMyBAQCBjbGFzcyBI
VE1MUmVzb3VyY2VQcmVsb2FkZXIgewogcHVibGljOgogICAgIGV4cGxpY2l0IEhUTUxSZXNvdXJj
ZVByZWxvYWRlcihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIDogbV9kb2N1bWVudChkb2N1
bWVudCkKLSAgICAgICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCiAgICAgewogICAgIH0KIAogICAg
IHZvaWQgcHJlbG9hZChQcmVsb2FkUmVxdWVzdFN0cmVhbSk7CiAgICAgdm9pZCBwcmVsb2FkKHN0
ZDo6dW5pcXVlX3B0cjxQcmVsb2FkUmVxdWVzdD4pOwogCi0gICAgV2Vha1B0cjxIVE1MUmVzb3Vy
Y2VQcmVsb2FkZXI+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0
ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8SFRNTFJlc291cmNlUHJlbG9hZGVyPiBjcmVhdGVX
ZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQog
CiBwcml2YXRlOgogICAgIERvY3VtZW50JiBtX2RvY3VtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xp
bmtMb2FkZXIuY3BwCmluZGV4IDcyNzk1YjBlMDNlMjcxZDRlZGFiYzYwMjQ2NTI0NTVkMWZjYzgw
NmUuLjJiMTYxMzI2NDMwYzEwZDU5MjQyOGQxNWI0ODc3MmJlZjZhNjkwM2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKQEAgLTU3LDcgKzU3LDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBMaW5rTG9hZGVyOjpMaW5rTG9hZGVyKExpbmtMb2FkZXJDbGllbnQmIGNsaWVudCkK
ICAgICA6IG1fY2xpZW50KGNsaWVudCkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmgKaW5kZXggZGUzYWVhNzVkMjRlZjY3NTVh
ZDJhZDUzODhiZDZhZmQyMzg4NGIxNC4uMTc1NWY2MTE2MTdkZWNkMzBlY2ZkNjBiYzQ4YjNiMjAy
MTZkZDI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5oCkBAIC01OCw3ICs1OCw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBsb2FkTGlua3NGcm9tSGVhZGVyKGNvbnN0IFN0cmlu
ZyYgaGVhZGVyVmFsdWUsIGNvbnN0IFVSTCYgYmFzZVVSTCwgRG9jdW1lbnQmLCBNZWRpYUF0dHJp
YnV0ZUNoZWNrKTsKICAgICBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZFR5cGUoQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwogCi0gICAgV2Vha1B0cjxMaW5rTG9h
ZGVyPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFr
UHRyKCk7IH0KKyAgICBXZWFrUHRyPExpbmtMb2FkZXI+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVy
biBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAgICAgdm9pZCB0cmln
Z2VyRXZlbnRzKGNvbnN0IENhY2hlZFJlc291cmNlJik7CiAgICAgdm9pZCBjYW5jZWxMb2FkKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcAppbmRl
eCBjNDA3YTdjZjU5MDA4ZDc0MzAzY2IyODU1MTI3ZTQ1Y2Q2YWQ5NGZiLi5iMmUxNjA1NmZjNzA4
ZmIzYTgxNWZjODA0NjRlMTI5NzZkYTQ3OTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC00NSw3ICs0NSw2IEBAIE1lZGlhUmVzb3VyY2VM
b2FkZXI6Ok1lZGlhUmVzb3VyY2VMb2FkZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MTWVkaWFF
bGVtZW50JiBtCiAgICAgLCBtX2RvY3VtZW50KCZkb2N1bWVudCkKICAgICAsIG1fbWVkaWFFbGVt
ZW50KG1lZGlhRWxlbWVudC5jcmVhdGVXZWFrUHRyKCkpCiAgICAgLCBtX2Nyb3NzT3JpZ2luTW9k
ZShjcm9zc09yaWdpbk1vZGUpCi0gICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCiB7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5oCmluZGV4IDVhMTBiZjNj
Njk4NGE0YWMzMTM5NmFkOTA1Y2Y0OTEyOTJmMTNhZmMuLmIwMDRiN2FkMWQxOGFlNzcxZDcyYWQ4
ODIzNzQ5ZDMyNTM3MTI2MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRp
YVJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3Vy
Y2VMb2FkZXIuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAgICAgVmVjdG9yPFJlc291cmNl
UmVzcG9uc2U+IHJlc3BvbnNlc0ZvclRlc3RpbmcoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNl
c0ZvclRlc3Rpbmc7IH0KICAgICB2b2lkIGFkZFJlc3BvbnNlRm9yVGVzdGluZyhjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJik7CiAKLSAgICBXZWFrUHRyPGNvbnN0IE1lZGlhUmVzb3VyY2VMb2FkZXI+
IGNyZWF0ZVdlYWtQdHIoKSBjb25zdCB7IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKTsgfQorICAgIFdlYWtQdHI8Y29uc3QgTWVkaWFSZXNvdXJjZUxvYWRlcj4gY3JlYXRlV2Vh
a1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAog
cHJpdmF0ZToKICAgICB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcAppbmRleCA5MmY1YjkwNWNlMTBhOTRlMDgyZmQ2NjUyY2U2MTk3MGJl
MWE4YjJhLi44N2JhOWQ4ZDdhNGU3MDQ4YzI2NTA1YjViNTlhYTJhOWVjNTA1NGYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0zOTQsNyArMzk0LDYgQEAgdm9pZCBET01XaW5kb3c6
OnNldENhblNob3dNb2RhbERpYWxvZ092ZXJyaWRlKGJvb2wgYWxsb3cpCiBET01XaW5kb3c6OkRP
TVdpbmRvdyhEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNl
cnZlcigmZG9jdW1lbnQpCiAgICAgLCBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIoZG9jdW1lbnQu
ZnJhbWUoKSkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKICAgICBBU1NFUlQoZnJh
bWUoKSk7CiAgICAgYWRkTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih0aGlzLCAmbGFuZ3VhZ2VzQ2hh
bmdlZENhbGxiYWNrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IGFiMzI3YmRkMzIxOWIz
MTQyNmNhYTg5ZmYxMGU5N2FkZGY3NGNkY2QuLmQ2ZDRkMTg0OTQ4NmMxZjFjMjliNTk5ZDAxMGM3
OGUyNTEzODM2YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtMzI1LDcgKzMyNSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGVuYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCk7CiAgICAgdm9pZCBk
aXNhYmxlU3VkZGVuVGVybWluYXRpb24oKTsKIAotICAgIFdlYWtQdHI8RE9NV2luZG93PiBjcmVh
dGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0K
KyAgICBXZWFrUHRyPERPTVdpbmRvdz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0
ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogcHJpdmF0ZToKICAgICBleHBsaWNp
dCBET01XaW5kb3coRG9jdW1lbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0dlbmVyaWNUYXNrUXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VuZXJp
Y1Rhc2tRdWV1ZS5jcHAKaW5kZXggMGE2NTUyMDZiNTA4MGQ2OGQ5OGEyNDMyNGVkZTA3MTQ0Mzhl
ZDkzMS4uYWIwODg2MmQzZGU2OWRhMjkxMzUxZDkyZjYzYTY0YTIzNzhjZjlkMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5jcHAKQEAgLTMyLDE0ICszMiwx
MyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBUYXNrRGlzcGF0Y2hlcjxUaW1lcj46OlRhc2tE
aXNwYXRjaGVyKCkKLSAgICA6IG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKIH0KIAogdm9pZCBU
YXNrRGlzcGF0Y2hlcjxUaW1lcj46OnBvc3RUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlv
bikKIHsKICAgICBtX3BlbmRpbmdUYXNrcy5hcHBlbmQoV1RGTW92ZShmdW5jdGlvbikpOwotICAg
IHBlbmRpbmdEaXNwYXRjaGVycygpLmFwcGVuZChtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKSk7CisgICAgcGVuZGluZ0Rpc3BhdGNoZXJzKCkuYXBwZW5kKG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigqdGhpcykpOwogICAgIGlmICghc2hhcmVkVGltZXIoKS5pc0FjdGl2ZSgp
KQogICAgICAgICBzaGFyZWRUaW1lcigpLnN0YXJ0T25lU2hvdCgwX3MpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5oCmluZGV4IDVkNjQ5OGMyZTljY2ZmYWM3
NWQwNzAzYjBhZTJhZjZhYjhjNTFlMjcuLjAyYzBhYjljMmM3Zjg5ZjdjODZhNjcxMGQ2NzliZDAx
YmI5OWU4ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNr
UXVldWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmgK
QEAgLTcwLDE0ICs3MCwxMiBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIEdlbmVyaWNU
YXNrUXVldWUgewogcHVibGljOgogICAgIEdlbmVyaWNUYXNrUXVldWUoKQotICAgICAgICA6IG1f
d2Vha1B0ckZhY3RvcnkodGhpcykKLSAgICAgICAgLCBtX2Rpc3BhdGNoZXIoKQorICAgICAgICA6
IG1fZGlzcGF0Y2hlcigpCiAgICAgewogICAgIH0KIAogICAgIEdlbmVyaWNUYXNrUXVldWUoVCYg
dCkKLSAgICAgICAgOiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0gICAgICAgICwgbV9kaXNwYXRj
aGVyKHQpCisgICAgICAgIDogbV9kaXNwYXRjaGVyKHQpCiAgICAgewogICAgIH0KIApAQCAtODks
NyArODcsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgKyttX3Bl
bmRpbmdUYXNrczsKLSAgICAgICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigpOworICAgICAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCp0aGlzKTsKICAgICAgICAgbV9kaXNwYXRjaGVyLnBvc3RUYXNrKFt3ZWFr
VGhpcywgdGFzayA9IFdURk1vdmUodGFzayldIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMp
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFi
bGVBcmVhLmgKaW5kZXggNGI4MjBmZTJlZGQxMThmZTAyYjU4MTgwOWU2MWIwMmRiMWU3OGVhZS4u
MTRiNjU2MWM1ZmYxMzNlMDExZWFjZjIzYTE3N2NjZmI3N2Q2ZTFiNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmKTsKIAotICAgIFdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+IGNyZWF0ZVdlYWtQdHIo
KSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQ
dHI8U2Nyb2xsYWJsZUFyZWE+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0
b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQ
KQogICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IFZlY3RvcjxMYXlvdXRVbml0PiogaG9yaXpvbnRh
bFNuYXBPZmZzZXRzKCkgY29uc3Q7CkBAIC0zNTQsNyArMzU0LDcgQEAgcHJpdmF0ZToKIAogICAg
IG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbEFuaW1hdG9yPiBtX3Njcm9sbEFuaW1hdG9y
OwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8U2Nyb2xsYWJsZUFyZWE+IG1fd2Vha1B0ckZhY3Rvcnkg
eyB0aGlzIH07CisgICAgV2Vha1B0ckZhY3Rvcnk8U2Nyb2xsYWJsZUFyZWE+IG1fd2Vha1B0ckZh
Y3Rvcnk7CiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogICAgIHN0ZDo6dW5pcXVlX3B0
cjxTY3JvbGxTbmFwT2Zmc2V0c0luZm88TGF5b3V0VW5pdD4+IG1fc25hcE9mZnNldHNJbmZvOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5jcHAKaW5kZXggMDUwZDRkOTliZTA2NjUxMWFj
MTM1NmI3Yzg1YWRhOGQxN2Y0ZDhmNS4uOWVlOTM4MTI2YWQ0NTUwOGYwNDVmNGI1OTliMTUyZGZi
MWJkOGEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCkBAIC03Nyw3ICs3
Nyw2IEBAIFNjcm9sbGJhcjo6U2Nyb2xsYmFyKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJl
YSwgU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50CiAgICAgLCBtX3N1cHByZXNzSW52YWxpZGF0
aW9uKGZhbHNlKQogICAgICwgbV9pc0FscGhhTG9ja2VkKGZhbHNlKQogICAgICwgbV9pc0N1c3Rv
bVNjcm9sbGJhcihpc0N1c3RvbVNjcm9sbGJhcikKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhp
cykKIHsKICAgICB0aGVtZSgpLnJlZ2lzdGVyU2Nyb2xsYmFyKCp0aGlzKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxiYXIuaAppbmRleCBlMjU2MDgxYjc1N2YxMDlhZjQyZjljYzg4ZTVmNzg0
NjQ5MWMwMzEzLi4xYTg2YmYzMzI1YmNiNzMxNzgxN2U2N2RhZDExMTJiNGRjYTAyZWM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuaApAQCAtMTMzLDcgKzEzMyw3IEBAIHB1YmxpYzoK
IAogICAgIGJvb2wgc3VwcG9ydHNVcGRhdGVPblNlY29uZGFyeVRocmVhZCgpIGNvbnN0OwogCi0g
ICAgV2Vha1B0cjxTY3JvbGxiYXI+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8U2Nyb2xsYmFyPiBjcmVhdGVX
ZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsg
fQogCiBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsYmFyKFNjcm9sbGFibGVBcmVhJiwgU2Nyb2xsYmFy
T3JpZW50YXRpb24sIFNjcm9sbGJhckNvbnRyb2xTaXplLCBTY3JvbGxiYXJUaGVtZSogPSAwLCBi
b29sIGlzQ3VzdG9tU2Nyb2xsYmFyID0gZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vV2lkZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaApp
bmRleCA3MTBlZjdiNjRkMzEwZjJiNmM0MzdkYThhOGJkNzJhNGZlZmQ5NmZhLi5iNWM2NzRhZjFi
OWU1MmE5NTNlOWUxYTk5ODc5ZTg1Nzg4Yjc5Nzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9XaWRnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQu
aApAQCAtMTkzLDcgKzE5Myw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFs
IEludFBvaW50IGNvbnZlcnRUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IEludFBvaW50JikgY29uc3Q7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBJbnRQb2ludCBjb252ZXJ0RnJvbUNvbnRhaW5p
bmdWaWV3KGNvbnN0IEludFBvaW50JikgY29uc3Q7CiAKLSAgICBXZWFrUHRyPFdpZGdldD4gY3Jl
YXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9
CisgICAgV2Vha1B0cjxXaWRnZXQ+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCBpbml0
KFBsYXRmb3JtV2lkZ2V0KTsgLy8gTXVzdCBiZSBjYWxsZWQgYnkgYWxsIFdpZGdldCBjb25zdHJ1
Y3RvcnMgdG8gaW5pdGlhbGl6ZSBjcm9zcy1wbGF0Zm9ybSBkYXRhLgpAQCAtMjE2LDcgKzIxNiw3
IEBAIHByaXZhdGU6CiAjZWxzZQogICAgIFJldGFpblB0cjxOU1ZpZXc+IG1fd2lkZ2V0OwogI2Vu
ZGlmCi0gICAgV2Vha1B0ckZhY3Rvcnk8V2lkZ2V0PiBtX3dlYWtQdHJGYWN0b3J5IHsgdGhpcyB9
OworICAgIFdlYWtQdHJGYWN0b3J5PFdpZGdldD4gbV93ZWFrUHRyRmFjdG9yeTsKICAgICBib29s
IG1fc2VsZlZpc2libGU7CiAgICAgYm9vbCBtX3BhcmVudFZpc2libGU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0hhcmR3YXJlTGlzdGVuZXJN
YWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVM
aXN0ZW5lck1hYy5jcHAKaW5kZXggMGI0NGY1OTIxMzU3YTQ2MmUzNTE5ZGNhMmJmNGU1NGZlYmUy
NTYzOC4uZGJiZGM5ZjBhOTdmNWJhNDkwY2Y1MDFkYjMzYzIyNDUzZDc5ODc4NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5l
ck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFy
ZHdhcmVMaXN0ZW5lck1hYy5jcHAKQEAgLTEyMSwxMiArMTIxLDExIEBAIFJlZjxBdWRpb0hhcmR3
YXJlTGlzdGVuZXJNYWM+IEF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYzo6Y3JlYXRlKENsaWVudCYg
Y2xpZW50KQogCiBBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWM6OkF1ZGlvSGFyZHdhcmVMaXN0ZW5l
ck1hYyhDbGllbnQmIGNsaWVudCkKICAgICA6IEF1ZGlvSGFyZHdhcmVMaXN0ZW5lcihjbGllbnQp
Ci0gICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCiB7CiAgICAgc2V0SGFyZHdhcmVBY3Rpdml0eShp
c0F1ZGlvSGFyZHdhcmVQcm9jZXNzUnVubmluZygpKTsKICAgICBzZXRPdXRwdXREZXZpY2VTdXBw
b3J0c0xvd1Bvd2VyTW9kZShjdXJyZW50RGV2aWNlU3VwcG9ydHNMb3dQb3dlckJ1ZmZlclNpemUo
KSk7CiAKLSAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7
CisgICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7
CiAgICAgbV9ibG9jayA9IEJsb2NrX2NvcHkoXihVSW50MzIgY291bnQsIGNvbnN0IEF1ZGlvT2Jq
ZWN0UHJvcGVydHlBZGRyZXNzIHByb3BlcnRpZXNbXSkgewogICAgICAgICBpZiAod2Vha1RoaXMp
CiAgICAgICAgICAgICB3ZWFrVGhpcy0+cHJvcGVydHlDaGFuZ2VkKGNvdW50LCBwcm9wZXJ0aWVz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNj
YWRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNw
cAppbmRleCA5MWQyNDNlMWM4ODMxODFjYjcyM2VjMmY1NjI1N2MwNWZmNzQyYmE4Li4wNWYzOTE3
MDBiOWE2MjAwYTgxOTI1M2FkNGEyMWNiM2YxYTBkNzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwCkBAIC03OCwxMyArNzgsMTEgQEAg
Rm9udENhc2NhZGU6OkNvZGVQYXRoIEZvbnRDYXNjYWRlOjpzX2NvZGVQYXRoID0gQXV0bzsKIC8v
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIEZvbnRDYXNjYWRlOjpGb250
Q2FzY2FkZSgpCi0gICAgOiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiB9CiAKIEZvbnRDYXNj
YWRlOjpGb250Q2FzY2FkZShjb25zdCBGb250Q2FzY2FkZURlc2NyaXB0aW9uJiBmZCwgZmxvYXQg
bGV0dGVyU3BhY2luZywgZmxvYXQgd29yZFNwYWNpbmcpCiAgICAgOiBtX2ZvbnREZXNjcmlwdGlv
bihmZCkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKICAgICAsIG1fbGV0dGVyU3BhY2lu
ZyhsZXR0ZXJTcGFjaW5nKQogICAgICwgbV93b3JkU3BhY2luZyh3b3JkU3BhY2luZykKICAgICAs
IG1fdXNlQmFja3NsYXNoQXNZZW5TeW1ib2wodXNlQmFja3NsYXNoQXNZZW5TaWduRm9yRmFtaWx5
KGZkLmZpcnN0RmFtaWx5KCkpKQpAQCAtOTYsNyArOTQsNiBAQCBGb250Q2FzY2FkZTo6Rm9udENh
c2NhZGUoY29uc3QgRm9udENhc2NhZGVEZXNjcmlwdGlvbiYgZmQsIGZsb2F0IGxldHRlclNwYWNp
bmcsCiAvLyBGSVhNRTogV2Ugc2hvdWxkIG1ha2UgdGhpcyBjb25zdHJ1Y3RvciBwbGF0Zm9ybS1p
bmRlcGVuZGVudC4KIEZvbnRDYXNjYWRlOjpGb250Q2FzY2FkZShjb25zdCBGb250UGxhdGZvcm1E
YXRhJiBmb250RGF0YSwgRm9udFNtb290aGluZ01vZGUgZm9udFNtb290aGluZ01vZGUpCiAgICAg
OiBtX2ZvbnRzKEZvbnRDYXNjYWRlRm9udHM6OmNyZWF0ZUZvclBsYXRmb3JtRm9udChmb250RGF0
YSkpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiAgICAgLCBtX2VuYWJsZUtlcm5pbmco
Y29tcHV0ZUVuYWJsZUtlcm5pbmcoKSkKICAgICAsIG1fcmVxdWlyZXNTaGFwaW5nKGNvbXB1dGVS
ZXF1aXJlc1NoYXBpbmcoKSkKIHsKQEAgLTExMiw3ICsxMDksNiBAQCBGb250Q2FzY2FkZTo6Rm9u
dENhc2NhZGUoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgZm9udERhdGEsIEZvbnRTbW9vdGhpbmdN
b2RlIGZvbgogRm9udENhc2NhZGU6OkZvbnRDYXNjYWRlKGNvbnN0IEZvbnRDYXNjYWRlJiBvdGhl
cikKICAgICA6IG1fZm9udERlc2NyaXB0aW9uKG90aGVyLm1fZm9udERlc2NyaXB0aW9uKQogICAg
ICwgbV9mb250cyhvdGhlci5tX2ZvbnRzKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQog
ICAgICwgbV9sZXR0ZXJTcGFjaW5nKG90aGVyLm1fbGV0dGVyU3BhY2luZykKICAgICAsIG1fd29y
ZFNwYWNpbmcob3RoZXIubV93b3JkU3BhY2luZykKICAgICAsIG1fdXNlQmFja3NsYXNoQXNZZW5T
eW1ib2wob3RoZXIubV91c2VCYWNrc2xhc2hBc1llblN5bWJvbCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oCmluZGV4IGEzYjFmZmViNWJhYjM0NzQ5
MGExYjUwM2FkYWExZmYxNTUyNTMzZWQuLmE0NDY5OTkyYWE1OGUwMzQ1N2RmNTliYTgyYTMwZjEz
NjVjMmUzNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYXNjYWRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENh
c2NhZGUuaApAQCAtMTk1LDcgKzE5NSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgcHJpbWFyeUZv
bnRJc1N5c3RlbUZvbnQoKSBjb25zdDsKIAotICAgIFdlYWtQdHI8Rm9udENhc2NhZGU+IGNyZWF0
ZVdlYWtQdHIoKSBjb25zdCB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIo
KTsgfQorICAgIFdlYWtQdHI8Rm9udENhc2NhZGU+IGNyZWF0ZVdlYWtQdHIoKSBjb25zdCB7IHJl
dHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKmNvbnN0X2Nhc3Q8Rm9udENhc2Nh
ZGUqPih0aGlzKSk7IH0KIAogcHJpdmF0ZToKICAgICBlbnVtIEZvclRleHRFbXBoYXNpc09yTm90
IHsgTm90Rm9yVGV4dEVtcGhhc2lzLCBGb3JUZXh0RW1waGFzaXMgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKaW5kZXggMTYz
NWU5OWJjMjU0MDcyM2MwNWI4ZmZmNzAxYWMxNGJkYzEyZjU5OC4uZDQyOWRiNTU2MDVjYzU3NTBi
YjliNDM1ZDQ2NzU0ZGEzNTllMDg5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKQEAgLTU1LDcgKzU1LDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbihNZWRpYVBsYXllciogcGxheWVyKQogICAgIDogbV9wbGF5
ZXIocGxheWVyKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogICAgICwgbV9xdWV1ZWRO
b3RpZmljYXRpb25zKCkKICAgICAsIG1fcXVldWVNdXRleCgpCiAgICAgLCBtX25ldHdvcmtTdGF0
ZShNZWRpYVBsYXllcjo6RW1wdHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggMzdlM2JlOWNjZTNkMWY3NzdkZjU4NWQyZDgw
ZWUyYTM0NDgwODViNC4uNWU0ODUyNWI3N2RlZjVkNzViNzFlMjk2NGVjZjkyMDA2Yzc2ZjlhOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24uaApAQCAtMTYzLDcgKzE2Myw3IEBAIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIH5NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oKTsKIAotICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigqdGhpcyk7IH0KIAogICAgIC8vIE1lZGlhUGxheWVyUHJpdmF0ZVByaXZhdGVJ
bnRlcmZhY2Ugb3ZlcnJpZGVzLgogICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCkgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRh
dGlvbk9iakMuaAppbmRleCBiYmMwNWQ1MDdmNDI1NjY3OWZiN2Q3YmNmNzIwZDg1MjZjMWFjMzcx
Li4yNWQwYTZlZTE5YzNiYzRmZDlhYjc0NGYzMjM1MTQwZGNmZDZmY2U2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNz
aW9uQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmgKQEAgLTUz
LDcgKzUzLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBwbGF5ZXJEaWRSZWNlaXZlRXJyb3IoTlNF
cnJvciAqKTsKIAotICAgIFdlYWtQdHI8Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM+IGNyZWF0
ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQor
ICAgIFdlYWtQdHI8Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7
IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKIHByb3Rl
Y3RlZDoKICAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM+IG1f
cGFyZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3Vu
ZGF0aW9uT2JqQy5tbQppbmRleCA3NGMzMTMzNzM0NjIyYzc3MGY0ODFkNzU3NGU1NWJhYTY0N2Yw
ZDUxLi5iYmNkNWQzMDUwY2YzNDc3NmE4OTJmMTU5ZTkxOWJiYTMyMjU2MWFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1T
ZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbQpA
QCAtNTMsNyArNTMsNiBAQCBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQzo6Q0RNU2Vzc2lvbkFW
Rm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZAogICAgIDogbV9wYXJlbnQo
cGFyZW50LT5jcmVhdGVXZWFrUHRyKCkpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBt
X3Nlc3Npb25JZChjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkpCi0gICAgLCBtX3dlYWtQdHJG
YWN0b3J5KHRoaXMpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1T
ZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tCmluZGV4IGNkODI4YjM1MzU3MTk1MmYyYjJjNDg1Y2Vh
ZjIxNjZhZWU5ZmI0Y2EuLjlmYTc2MWViOWM1ZmYzNTFkNjY5YTc2MWFhMDRmZjI4OGVlYWJlYjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vz
c2lvbi5tbQpAQCAtODksNyArODksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENETVNlc3Np
b25BVlN0cmVhbVNlc3Npb246OkNETVNlc3Npb25BVlN0cmVhbVNlc3Npb24oY29uc3QgVmVjdG9y
PGludD4mIHByb3RvY29sVmVyc2lvbnMsIENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMmIGNk
bSwgQ0RNU2Vzc2lvbkNsaWVudCogY2xpZW50KQogICAgIDogQ0RNU2Vzc2lvbk1lZGlhU291cmNl
QVZGT2JqQyhjZG0sIGNsaWVudCkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKICAgICAs
IG1fZGF0YVBhcnNlck9ic2VydmVyKGFkb3B0TlMoW1tXZWJDRE1TZXNzaW9uQVZTdHJlYW1TZXNz
aW9uT2JzZXJ2ZXIgYWxsb2NdIGluaXRXaXRoUGFyZW50OnRoaXNdKSkKICAgICAsIG1fcHJvdG9j
b2xWZXJzaW9ucyhwcm90b2NvbFZlcnNpb25zKQogICAgICwgbV9tb2RlKE5vcm1hbCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMuaAppbmRleCA2MjU1ZjQ5M2YyY2QyZjE1NjBiYjZmMTU5OTQyZmZjZTNmNzcw
MWU3Li40OWE3MWFhYjJmMDMzNDgwN2JlYmIyNTM0NjVlODk2ZmEwOWJlZGJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5oCkBAIC0xNTgsNyArMTU4LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3Zl
U2Vzc2lvbihDRE1TZXNzaW9uJik7CiAjZW5kaWYKIAotICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0
ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiBwcml2YXRlOgogICAgIC8vIGVuZ2luZSBz
dXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCBkOTk0MjdhNmJlZmM2MzViM2FlNDhh
OGQ1NTBhZTZjMThmNDA5ZGRjLi5jNTU3NWE4MjU1ODc1MjI4NzY4M2YzZmVjOTc1NWU4ZDBjNjM2
ZDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTU0MSw3ICs1NDEsNiBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNsZWFyTWVkaWFDYWNoZUZvck9yaWdp
bnMoY29uc3QgU3RyaW5nJgogCiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAg
ICAgOiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24ocGxheWVyKQotICAgICwgbV93ZWFr
UHRyRmFjdG9yeSh0aGlzKQogI2lmIFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYg
RU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKICAgICAsIG1fdmlkZW9GdWxsc2NyZWVu
TGF5ZXJNYW5hZ2VyKFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlcjo6Y3JlYXRlKCkpCiAgICAg
LCBtX3ZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoTWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0eVJlc2l6
ZUFzcGVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggOGQzOGVkMWRhNjdlM2IwOWUy
ODIwZjVkMjM5ZDIzODc0YmJkODU1Ni4uMWIxYjk3MTNmNDA5ZDk4YjUyYjg4MzMxYTQyYzUxOWRm
N2FlM2RlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTEzMCw3ICsxMzAsNyBAQCBw
dWJsaWM6CiAgICAgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgbWVkaWFDb250ZW50VHlwZXNS
ZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdDsKICAgICBib29sIHNob3VsZENoZWNrSGFy
ZHdhcmVTdXBwb3J0KCkgY29uc3Q7CiAKLSAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rv
cnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKIHByaXZhdGU6CiAgICAgLy8gTWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggNmEyMDRhMTIw
ZTBmNmM3N2Y0ZDUxODU5MjU5MThiOGQ4MjhhMTE1Ny4uYTc3MWQxOTMzYWM1Nzc5ZTViOWQyMmVk
MzY1Y2EyZTllYTcxYzYwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMTI1LDgg
KzEyNSw2IEBAIHN0YXRpYyB2b2lkIENNVGltZWJhc2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENhbGxi
YWNrKENNTm90aWZpY2F0aW9uQ2VudGVyUmVmLCBjb25zCiAKIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKE1l
ZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgOiBtX3BsYXllcihwbGF5ZXIpCi0gICAgLCBtX3dlYWtQ
dHJGYWN0b3J5KHRoaXMpCi0gICAgLCBtX3NpemVDaGFuZ2VPYnNlcnZlcldlYWtQdHJGYWN0b3J5
KHRoaXMpCiAgICAgLCBtX3N5bmNocm9uaXplcihhZG9wdE5TKFthbGxvY0FWU2FtcGxlQnVmZmVy
UmVuZGVyU3luY2hyb25pemVySW5zdGFuY2UoKSBpbml0XSkpCiAgICAgLCBtX3NlZWtUaW1lcigq
dGhpcywgJk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2Vla0ludGVybmFs
KQogICAgICwgbV9zZXNzaW9uKG51bGxwdHIpCkBAIC04OTAsNyArODg4LDcgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmVmZmVjdGl2ZVJhdGVDaGFuZ2VkKCkK
IAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNpemVXaWxsQ2hh
bmdlQXRUaW1lKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgRmxvYXRTaXplJiBzaXplKQog
ewotICAgIGF1dG8gd2Vha1RoaXMgPSBtX3NpemVDaGFuZ2VPYnNlcnZlcldlYWtQdHJGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBhdXRvIHdlYWtUaGlzID0gbV9zaXplQ2hhbmdlT2JzZXJ2
ZXJXZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsKICAgICBOU0FycmF5KiB0aW1l
cyA9IEBbW05TVmFsdWUgdmFsdWVXaXRoQ01UaW1lOnRvQ01UaW1lKHRpbWUpXV07CiAgICAgUmV0
YWluUHRyPGlkPiBvYnNlcnZlciA9IFttX3N5bmNocm9uaXplciBhZGRCb3VuZGFyeVRpbWVPYnNl
cnZlckZvclRpbWVzOnRpbWVzIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdC
bG9jazpbdGhpcywgd2Vha1RoaXMsIHNpemVdIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLmgKaW5kZXggZTE3MGZmOGQwYjdmNmYxNjIxYjA4YTc5YTlmMThl
MDlhMjAwOGJlYS4uYzE1MWM3MjUxZjI2ZTkwMWViYmQ1NTI5NWI4N2QwMWU1NWY1ZTViYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgogICAgIE1l
ZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2
b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpOwogCi0gICAgV2Vha1B0
cjxNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7
IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDPiBjcmVhdGVXZWFrUHRyKCkgeyBy
ZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiAgICAgdm9p
ZCBlbnN1cmVMYXllcnMoKTsKICAgICB2b2lkIGRlc3Ryb3lMYXllcnMoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQy5tbQppbmRleCBjNDJlNDYyNmQ2NTM2ZjU5MzY2MTI3MmI4ZjhkMjRjMjY0ZjE1
MjlhLi41NTVlNDgyNjkxZGJhMzIxNThiYWI4MzZkZGFhNjhhZGFhZjI1ODE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tCkBAIC0xODgsNyArMTg4LDYgQEAgc3RhdGljIGNvbnN0IGRvdWJs
ZSByZW5kZXJlckxhdGVuY3kgPSAwLjAyOwogCiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyhNZWRpYVBsYXll
ciogcGxheWVyKQogICAgIDogbV9wbGF5ZXIocGxheWVyKQotICAgICwgbV93ZWFrUHRyRmFjdG9y
eSh0aGlzKQogICAgICwgbV9zdGF0dXNDaGFuZ2VMaXN0ZW5lcihhZG9wdE5TKFtbV2ViQVZTYW1w
bGVCdWZmZXJTdGF0dXNDaGFuZ2VMaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhQYXJlbnQ6dGhpc10p
KQogICAgICwgbV9jbG9jayhDbG9jazo6Y3JlYXRlKCkpCiAjaWYgUExBVEZPUk0oSU9TKSB8fCAo
UExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgKaW5k
ZXggZjFkMTZlZmJhYmVjNjU1Y2M5ZTNiYzMxZWMwY2VmMGNhNGNkZTM0ZS4uYWM5ZGFmYjMxOTQ5
MmY2OTkwMTg5N2Q5ZmM1NzYxNjI3NDYwNzY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCkBAIC0xNTMsNyArMTUzLDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGZsdXNoKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciAqKTsK
ICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAotICAgIFdlYWtQdHI8U291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+
IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRo
aXMpOyB9CiAKICAgICBWZWN0b3I8UmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDPj4gbV92aWRlb1RyYWNrczsKICAgICBWZWN0b3I8UmVmUHRyPEF1ZGlvVHJhY2tQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDPj4gbV9hdWRpb1RyYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KaW5kZXggYzkwMGU3
ZTBlMDBlNDcwMWU4NTU1ZDU4OWY0OGE1NGU3MzA1ZjhkMy4uYjhkNTQ4NDVmZmZmMWU0MGQ2OGNj
YTI1MGQ3NzU3NzliMWE5NWFlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KQEAgLTQ3OSw5ICs0NzksNyBAQCBSZWZQdHI8
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpj
cmVhdGUoTWVkaWFTb3VyYwogfQogCiBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6U291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMoTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQyogcGFyZW50KQot
ICAgIDogbV93ZWFrRmFjdG9yeSh0aGlzKQotICAgICwgbV9hcHBlbmRXZWFrRmFjdG9yeSh0aGlz
KQotICAgICwgbV9wYXJzZXIoYWRvcHROUyhbYWxsb2NBVlN0cmVhbURhdGFQYXJzZXJJbnN0YW5j
ZSgpIGluaXRdKSkKKyAgICA6IG1fcGFyc2VyKGFkb3B0TlMoW2FsbG9jQVZTdHJlYW1EYXRhUGFy
c2VySW5zdGFuY2UoKSBpbml0XSkpCiAgICAgLCBtX2RlbGVnYXRlKGFkb3B0TlMoW1tXZWJBVlN0
cmVhbURhdGFQYXJzZXJMaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhQYXJzZXI6bV9wYXJzZXIuZ2V0
KCkgcGFyZW50OmNyZWF0ZVdlYWtQdHIoKV0pKQogICAgICwgbV9lcnJvckxpc3RlbmVyKGFkb3B0
TlMoW1tXZWJBVlNhbXBsZUJ1ZmZlckVycm9yTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoUGFyZW50
OnRoaXNdKSkKICAgICAsIG1faXNBcHBlbmRpbmdHcm91cChhZG9wdE9TT2JqZWN0KGRpc3BhdGNo
X2dyb3VwX2NyZWF0ZSgpKSkKQEAgLTY3NSw3ICs2NzMsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjphcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQg
bGVuZwogICAgIExPRyhNZWRpYVNvdXJjZSwgIlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjph
cHBlbmQoJXApIC0gZGF0YTolcCwgbGVuZ3RoOiVkIiwgdGhpcywgZGF0YSwgbGVuZ3RoKTsKIAog
ICAgIFJldGFpblB0cjxOU0RhdGE+IG5zRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGlu
aXRXaXRoQnl0ZXM6ZGF0YSBsZW5ndGg6bGVuZ3RoXSk7Ci0gICAgV2Vha1B0cjxTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQz4gd2Vha1RoaXMgPSBtX2FwcGVuZFdlYWtGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKTsKKyAgICBXZWFrUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDPiB3ZWFrVGhp
cyA9IG1fYXBwZW5kV2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiAgICAgUmV0YWlu
UHRyPEFWU3RyZWFtRGF0YVBhcnNlcj4gcGFyc2VyID0gbV9wYXJzZXI7CiAgICAgUmV0YWluUHRy
PFdlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyPiBkZWxlZ2F0ZSA9IG1fZGVsZWdhdGU7CiAK
QEAgLTcxNSw3ICs3MTMsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjphYm9y
dCgpCiAgICAgICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWduYWwobV9oYXNTZXNzaW9uU2VtYXBo
b3JlLmdldCgpKTsKICAgICBkaXNwYXRjaF9ncm91cF93YWl0KG1faXNBcHBlbmRpbmdHcm91cC5n
ZXQoKSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKICAgICBtX2FwcGVuZFdlYWtGYWN0b3J5LnJl
dm9rZUFsbCgpOwotICAgIG1fZGVsZWdhdGUuZ2V0KCkucGFyZW50ID0gbV9hcHBlbmRXZWFrRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgbV9kZWxlZ2F0ZS5nZXQoKS5wYXJlbnQgPSBtX2Fw
cGVuZFdlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOwogfQogCiB2b2lkIFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjpyZXNldFBhcnNlclN0YXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YubW0KaW5kZXggZmU3
OTE5Y2UyZDhlY2YwMjI1Mjg3MjBiMTYxMDViYzJlMmRkY2QyOC4uM2RhMDE2NGMxZTVjOTM1ZThl
NGNjNDRhM2JkY2RkZWQ1ZmI1ZTVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YubW0KQEAgLTUwLDcgKzUwLDYgQEAgc3Rk
Ojp1bmlxdWVfcHRyPFRleHR1cmVDYWNoZUNWPiBUZXh0dXJlQ2FjaGVDVjo6Y3JlYXRlKEdyYXBo
aWNzQ29udGV4dDNEJiBjb250ZXgKIFRleHR1cmVDYWNoZUNWOjpUZXh0dXJlQ2FjaGVDVihHcmFw
aGljc0NvbnRleHQzRCYgY29udGV4dCwgUmV0YWluUHRyPFRleHR1cmVDYWNoZVR5cGU+JiYgY2Fj
aGUpCiAgICAgOiBtX2NvbnRleHQoY29udGV4dCkKICAgICAsIG1fY2FjaGUoY2FjaGUpCi0gICAg
LCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiB9CiAKQEAgLTczLDcgKzcyLDcgQEAgUmV0YWlu
UHRyPFRleHR1cmVDYWNoZUNWOjpUZXh0dXJlVHlwZT4gVGV4dHVyZUNhY2hlQ1Y6OnRleHR1cmVG
cm9tSW1hZ2UoQ1ZJbWFnZUIKICNlbmRpZgogICAgIFJldGFpblB0cjxUZXh0dXJlVHlwZT4gdmlk
ZW9UZXh0dXJlID0gYWRvcHRDRihiYXJlVmlkZW9UZXh0dXJlKTsKIAotICAgIGF1dG8gd2Vha1Ro
aXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBhdXRvIHdlYWtUaGlz
ID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsKICAgICBkaXNwYXRjaF9h
c3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbd2Vha1RoaXNdIHsKICAgICAgICAgaWYg
KCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRv
ck1hYy5jcHAKaW5kZXggZTMxYTFhOWQ5MGQ1MjY3ODhlMzU3NmVkNWJkODY2OGUxODczNGRiMi4u
NWEwMDJjOWE2N2U2NDlkZThkOWJkNWU5OGZjOTBhYjgxNTIwYjZhNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1h
Yy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3BsYXlS
ZWZyZXNoTW9uaXRvck1hYy5jcHAKQEAgLTM2LDcgKzM2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYyhQ
bGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCiAgICAgOiBEaXNwbGF5UmVmcmVzaE1vbml0b3Io
ZGlzcGxheUlEKQotICAgICwgbV93ZWFrRmFjdG9yeSh0aGlzKQogICAgICwgbV9kaXNwbGF5TGlu
ayhudWxscHRyKQogewogfQpAQCAtOTIsOCArOTEsNyBAQCB2b2lkIERpc3BsYXlSZWZyZXNoTW9u
aXRvck1hYzo6ZGlzcGxheUxpbmtGaXJlZCgpCiAKICAgICBzZXRJc1ByZXZpb3VzRnJhbWVEb25l
KGZhbHNlKTsKIAotICAgIC8vIEZJWE1FOiBJcyBpdCByZWFsbHkgb2theSB0byBjcmVhdGUgYSB3
ZWFrUHRyIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQgYW5kIHRoZW4gdXNlIGl0IG9uIHRoZSBtYWlu
IHRocmVhZD8KLSAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtQdHIgPSBtX3dlYWtG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKV0geworICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChb
d2Vha1B0ciA9IG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyldIHsKICAgICAgICAg
aWYgKGF1dG8qIG1vbml0b3IgPSB3ZWFrUHRyLmdldCgpKQogICAgICAgICAgICAgaGFuZGxlRGlz
cGxheVJlZnJlc2hlZE5vdGlmaWNhdGlvbk9uTWFpblRocmVhZChtb25pdG9yKTsKICAgICB9KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9SZW1vdGVDb21tYW5kTGlz
dGVuZXJJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9SZW1vdGVDb21tYW5kTGlz
dGVuZXJJT1MuaAppbmRleCBmYzAyZWU1OWQ5YWNhNjk2MjU3YzVmNGYzM2ZmOGNlMTcxNDZjZmEx
Li5iZTE1OTRlYmRiNGI3MGM3YzgzNWNjNTA4YjkxMGViODMxZmRhNDQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5o
CkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SZW1vdGVDb21tYW5kTGlz
dGVuZXJJT1MoKTsKIAogcHJvdGVjdGVkOgotICAgIFdlYWtQdHI8UmVtb3RlQ29tbWFuZExpc3Rl
bmVySU9TPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVX
ZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUz4gY3JlYXRl
V2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7
IH0KICAgICB2b2lkIHVwZGF0ZVN1cHBvcnRlZENvbW1hbmRzKCkgb3ZlcnJpZGU7CiAKICAgICBX
ZWFrUHRyRmFjdG9yeTxSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1M+IG1fd2Vha1B0ckZhY3Rvcnk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExp
c3RlbmVySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRM
aXN0ZW5lcklPUy5tbQppbmRleCA0MWY5ZGI2ODFiM2ZmMWUzNzI2OGEyZDNmOTk1NWJkNWU3YWUz
NmQ1Li5lNGE2OWM0YWNiZGE4NGI5ODM5MzYwZGU2ODU4NGNjNDU3OWM4ODg3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJ
T1MubW0KQEAgLTQ3LDcgKzQ3LDYgQEAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUNvbW1hbmRMaXN0
ZW5lcj4gUmVtb3RlQ29tbWFuZExpc3RlbmVyOjpjcmVhdGUoUmVtb3RlQ29tbWEKIAogUmVtb3Rl
Q29tbWFuZExpc3RlbmVySU9TOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MoUmVtb3RlQ29tbWFu
ZExpc3RlbmVyQ2xpZW50JiBjbGllbnQpCiAgICAgOiBSZW1vdGVDb21tYW5kTGlzdGVuZXIoY2xp
ZW50KQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogICAgIE1QUmVtb3RlQ29tbWFu
ZENlbnRlciAqY2VudGVyID0gW2dldE1QUmVtb3RlQ29tbWFuZENlbnRlckNsYXNzKCkgc2hhcmVk
Q29tbWFuZENlbnRlcl07CiAgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SZW1vdGVDb21tYW5kTGlzdGVu
ZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SZW1vdGVDb21tYW5kTGlzdGVu
ZXJNYWMuaAppbmRleCBkYjY5ZDc2NjJlZjc0YWViZDAzZTc4YWI4OWE4MzM1ZjI1ZTgzMzFiLi5i
NzgxZTZhZDRhMWMyZjg0ZTk0MTZjNWU0YjE2MzFkZGYzYWMyNTZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5oCkBA
IC0zOSwxMSArMzksMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflJlbW90ZUNvbW1hbmRMaXN0
ZW5lck1hYygpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgV2Vha1B0cjxSZW1vdGVDb21tYW5kTGlzdGVu
ZXJNYWM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKTsgfQorICAgIFdlYWtQdHI8UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjPiBjcmVhdGVX
ZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsg
fQogCiAgICAgdm9pZCB1cGRhdGVTdXBwb3J0ZWRDb21tYW5kcygpIG92ZXJyaWRlOwogCi0gICAg
V2Vha1B0ckZhY3Rvcnk8UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjPiBtX3dlYWtQdHJGYWN0b3J5
IHsgdGhpcyB9OworICAgIFdlYWtQdHJGYWN0b3J5PFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYz4g
bV93ZWFrUHRyRmFjdG9yeTsKICAgICB2b2lkKiBtX2NvbW1hbmRIYW5kbGVyIHsgbnVsbHB0ciB9
OwogfTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCmluZGV4IGIyNGU2NGUxMTVmNzc1N2UwMDFi
N2RlODlhOWUzM2M2ODg3ZTJlYWYuLjcxMTlkYmM4NDMyOTExOTE0ZDRhODJiZWI0MTU1MzBkMGY0
OGFlN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcApAQCAtNTksOCArNTksNyBAQCBSZWY8TWVkaWFT
dHJlYW1Qcml2YXRlPiBNZWRpYVN0cmVhbVByaXZhdGU6OmNyZWF0ZShjb25zdCBWZWN0b3I8UmVm
PFJlYWx0aW1lTWVkaQogfQogCiBNZWRpYVN0cmVhbVByaXZhdGU6Ok1lZGlhU3RyZWFtUHJpdmF0
ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciYgdHJhY2tzLCBTdHJpbmcmJiBp
ZCkKLSAgICA6IG1fd2Vha1B0ckZhY3RvcnkodGhpcykKLSAgICAsIG1faWQoV1RGTW92ZShpZCkp
CisgICAgOiBtX2lkKFdURk1vdmUoaWQpKQogewogICAgIEFTU0VSVCghbV9pZC5pc0VtcHR5KCkp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtUHJpdmF0ZS5oCmluZGV4IDIxMmRmOTAzMTA4MzBhNTBlYzAwMjA4MGIyN2RkMjEy
NDQyNjFmMGEuLjlmMWFiNTJiNWM2ZGIyODk5ZGJmNmFjNzk5Nzg3ODkxMDYyNDljMGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtUHJpdmF0ZS5oCkBAIC0xMDcsNyArMTA3LDcgQEAgcHVibGljOgogCiAgICAgRmxvYXRTaXpl
IGludHJpbnNpY1NpemUoKSBjb25zdDsKIAotICAgIFdlYWtQdHI8TWVkaWFTdHJlYW1Qcml2YXRl
PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCk7IH0KKyAgICBXZWFrUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3JlYXRlV2Vha1B0cigpIHsg
cmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogICAgIHZv
aWQgbW9uaXRvck9yaWVudGF0aW9uKE9yaWVudGF0aW9uTm90aWZpZXImKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlLmNwcAppbmRleCAxYjc1MDI1MTc5YjEwOTFkMGFjODQ5N2QxMGYwMGZhOTdiOTIxNWQ0
Li42YzAzNzYyYWVhY2RhZTEzY2YwYTFlOTE3MTIzYWZjZGUyNjExN2IzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlLmNwcApAQCAtNDcsOCArNDcsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZWFs
dGltZU1lZGlhU291cmNlOjpSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYgaWQsIFR5
cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lKQotICAgIDogbV93ZWFrUHRyRmFjdG9yeSh0aGlz
KQotICAgICwgbV9pZChpZCkKKyAgICA6IG1faWQoaWQpCiAgICAgLCBtX3R5cGUodHlwZSkKICAg
ICAsIG1fbmFtZShuYW1lKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDFmMDg3ZjY4YjRlYzgz
MzU5ZDAwNTg0MGFhZGJhYzQzNDA3OWY0YWIuLjg0NmZiNzI0ODdlMjdmYTMzYTg2OTNlYjNjY2Rl
ZGY1ZTJiYzM0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTI0MCw3ICsyNDAsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYpOwogICAg
IHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRm
b3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCk7CiAK
LSAgICBXZWFrUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVy
biBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8UmVhbHRp
bWVNZWRpYVNvdXJjZT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc3Rh
cnRQcm9kdWNpbmdEYXRhKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja01lZGlhRW5kcG9pbnQuY3BwCmluZGV4IDM3NWNlN2RmZGJjZjYxYmUwODIzOTU0Mjgw
NjNmNjA3ZDg0MzEwOGUuLjBlOWI0MWU1YzExOTVjNmUzZWMxMzcwNzVlYTRmZmE2Njg2YzdhYWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9p
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9p
bnQuY3BwCkBAIC01Nyw3ICs1Nyw2IEBAIE1vY2tNZWRpYUVuZHBvaW50OjpNb2NrTWVkaWFFbmRw
b2ludChNZWRpYUVuZHBvaW50Q2xpZW50JiBjbGllbnQpCiAgICAgLCBtX2ljZUNhbmRpZGF0ZVRp
bWVyKCp0aGlzLCAmTW9ja01lZGlhRW5kcG9pbnQ6OmljZUNhbmRpZGF0ZVRpbWVyRmlyZWQpCiAg
ICAgLCBtX2ljZVRyYW5zcG9ydFRpbWVyKCp0aGlzLCAmTW9ja01lZGlhRW5kcG9pbnQ6OmljZVRy
YW5zcG9ydFRpbWVyRmlyZWQpCiAgICAgLCBtX3VubXV0ZVRpbWVyKCp0aGlzLCAmTW9ja01lZGlh
RW5kcG9pbnQ6OnVubXV0ZVRpbWVyRmlyZWQpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMp
CiB7CiB9CiAKQEAgLTczLDcgKzcyLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVs
SGFuZGxlcj4gTW9ja01lZGlhRW5kcG9pbnQ6OmNyZWF0ZURhdGFDaGFubmVsSGFuZGwKIAogdm9p
ZCBNb2NrTWVkaWFFbmRwb2ludDo6Z2VuZXJhdGVEdGxzSW5mbygpCiB7Ci0gICAgYXV0byB3ZWFr
VGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAgIGF1dG8gd2Vha1Ro
aXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOwogCiAgICAgY2FsbE9u
TWFpblRocmVhZChbd2Vha1RoaXNdIHsKICAgICAgICAgaWYgKHdlYWtUaGlzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNl
aG9sZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNw
YW5uZXJQbGFjZWhvbGRlci5jcHAKaW5kZXggZWY3M2Q1N2FiNTVhMzZhNzUxMDQwZTE0ZDA3MjZl
NjMyZjUyYTcwZS4uOGZiMGQ0MDk4NGVmMDliMjk2MjRhYWE3MjlhMzBjYzFkMTQ4MjQzMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU3Bhbm5l
clBsYWNlaG9sZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVs
dGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIuY3BwCkBAIC00Nyw3ICs0Nyw2IEBAIFJlbmRlck11
bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyOjpSZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFj
ZWhvbGRlcihSZW5kZXJNCiAgICAgOiBSZW5kZXJCb3goZmxvd1RocmVhZC0+ZG9jdW1lbnQoKSwg
V1RGTW92ZShzdHlsZSksIFJlbmRlckJveE1vZGVsT2JqZWN0RmxhZykKICAgICAsIG1fc3Bhbm5l
cigmc3Bhbm5lcikKICAgICAsIG1fZmxvd1RocmVhZChmbG93VGhyZWFkKQotICAgICwgbV93ZWFr
UHRyRmFjdG9yeSh0aGlzKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlci5oCmluZGV4
IDAzNDExZDk0NzEyY2NiMmJlOGQ4ZjQ3MTA4YzEwYTBhNGQzNjVhYjcuLmIxNTAzOTAxMmMwNDQ3
OGUwYzFhOGU4NTNiZTMwMjUyNWM1NDI0MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlci5o
CkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKIAogICAgIFJlbmRlckJveCogc3Bhbm5lcigpIGNv
bnN0IHsgcmV0dXJuIG1fc3Bhbm5lcjsgfQogICAgIFJlbmRlck11bHRpQ29sdW1uRmxvd1RocmVh
ZCogZmxvd1RocmVhZCgpIGNvbnN0IHsgcmV0dXJuIG1fZmxvd1RocmVhZDsgfQotICAgIFdlYWtQ
dHI8UmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXI+IGNyZWF0ZVdlYWtQdHIoKSB7
IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8
UmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXI+IGNyZWF0ZVdlYWtQdHIoKSB7IHJl
dHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKIHByaXZhdGU6
CiAgICAgUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIoUmVuZGVyTXVsdGlDb2x1
bW5GbG93VGhyZWFkKiwgUmVuZGVyQm94JiBzcGFubmVyLCBSZW5kZXJTdHlsZSYmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCBmOThiZmI2ZTJhOTQyZmU0Mjc3
ZThlMGI0MTEyMjM2NWFmN2QzZDc2Li5lYTI2MzZhZTZjODhjZGQwMWE3MjBlNGZlYTZjOTNlMDcy
N2Q0NGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC0xMjEs
NyArMTIxLDYgQEAgcHJpdmF0ZToKIFJlbmRlclZpZXc6OlJlbmRlclZpZXcoRG9jdW1lbnQmIGRv
Y3VtZW50LCBSZW5kZXJTdHlsZSYmIHN0eWxlKQogICAgIDogUmVuZGVyQmxvY2tGbG93KGRvY3Vt
ZW50LCBXVEZNb3ZlKHN0eWxlKSkKICAgICAsIG1fZnJhbWVWaWV3KCpkb2N1bWVudC52aWV3KCkp
Ci0gICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCiAgICAgLCBtX2xhenlSZXBhaW50VGltZXIoKnRo
aXMsICZSZW5kZXJWaWV3OjpsYXp5UmVwYWludFRpbWVyRmlyZWQpCiAjaWYgRU5BQkxFKFNFUlZJ
Q0VfQ09OVFJPTFMpCiAgICAgLCBtX3NlbGVjdGlvblJlY3RHYXRoZXJlcigqdGhpcykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCmluZGV4IDdmNzU0OGMwYTk0OWUwODU2N2NiMWE0
NGMwYzMwMTIwMGQ3ODhkMjUuLjZhZGVjMzk1ZDc4ZmQyNDI4ZTUyOGNmNDRmZjBhYTFkOTZlN2Jl
M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaApAQCAtMjM1LDcgKzIzNSw3
IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBtX3dhc0FjY3VtdWxhdGluZ1JlcGFpbnRSZWdpb247
CiAgICAgfTsKIAotICAgIFdlYWtQdHI8UmVuZGVyVmlldz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0
dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxSZW5kZXJW
aWV3PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCp0aGlzKTsgfQogCiAgICAgdm9pZCBzY2hlZHVsZUxhenlSZXBhaW50KFJlbmRlckJveCYpOwog
ICAgIHZvaWQgdW5zY2hlZHVsZUxhenlSZXBhaW50KFJlbmRlckJveCYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAppbmRleCA0Y2U3MmNlNmRhYTkxMjc3NjRkOWY4
OWQ0MGQ0NDQwNmJhYmY4NTY2Li40YjRkNDQ0NDMyYWFmMWYwNWE0MGE5ZjA2N2Q5ZTQyOTBhZjg2
NDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcApAQCAtODEs
NyArODEsNiBAQCBzdGF0aWMgdm9pZCBtb3ZlV2lkZ2V0VG9QYXJlbnRTb29uKFdpZGdldCYgY2hp
bGQsIEZyYW1lVmlldyogcGFyZW50KQogCiBSZW5kZXJXaWRnZXQ6OlJlbmRlcldpZGdldChIVE1M
RnJhbWVPd25lckVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUpCiAgICAgOiBS
ZW5kZXJSZXBsYWNlZChlbGVtZW50LCBXVEZNb3ZlKHN0eWxlKSkKLSAgICAsIG1fd2Vha1B0ckZh
Y3RvcnkodGhpcykKIHsKICAgICBzZXRJbmxpbmUoZmFsc2UpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcldpZGdldC5oCmluZGV4IGI3YjdjN2IxMmUxODBkZTE4N2Q1YWU3YjMyNzU0
YmRhMmIxYTgwMTMuLmMxMmY1Nzk2NzQ3MjQ5OTU3MjMxZGFiZjA2ZGJiZjRlMjc0OGJjMmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKQEAgLTcxLDcgKzcxLDcgQEAg
cHVibGljOgogCiAgICAgYm9vbCByZXF1aXJlc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25z
dDsKIAotICAgIFdlYWtQdHI8UmVuZGVyV2lkZ2V0PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4g
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPFJlbmRlcldp
ZGdldD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vh
a1B0cigqdGhpcyk7IH0KIAogICAgIHZvaWQgcmVmKCkgeyArK21fcmVmQ291bnQ7IH0KICAgICB2
b2lkIGRlcmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElu
bGluZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAK
aW5kZXggMTRmMzMxZjRjYTAzNDUxZjNlMjczMzFiMmRlN2FkYjAwMDIyNjU2NC4uYzI3ZmE0YWEx
NTY5ODNmOWJiMDU1OGVjNGExY2UyOWExYjQ0NDllYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9Sb290SW5saW5lQm94LmNwcApAQCAtNjEsOCArNjEsNiBAQCBSb290SW5saW5lQm94OjpS
b290SW5saW5lQm94KFJlbmRlckJsb2NrRmxvdyYgYmxvY2spCiAgICAgOiBJbmxpbmVGbG93Qm94
KGJsb2NrKQogICAgICwgbV9saW5lQnJlYWtQb3MoMCkKICAgICAsIG1fbGluZUJyZWFrT2JqKG51
bGxwdHIpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0KIHsKICAgICBzZXRJc0hvcml6
b250YWwoYmxvY2suaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guaAppbmRleCBjMTk1OGYzODc5ZmUxMjIwOWNjMjA2MjZi
OWE3YjFmNzIwY2YzNTc5Li4xMTIyN2M2NTU1YzAyYTJjMzA0YWI0YWMzMmZlZmU3NzRmOTc3ZGY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmgKQEAgLTM5LDcgKzM5
LDcgQEAgY2xhc3MgUm9vdElubGluZUJveCA6IHB1YmxpYyBJbmxpbmVGbG93Qm94IHsKIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBSb290SW5saW5lQm94KFJlbmRlckJsb2NrRmxvdyYpOwogICAgIHZp
cnR1YWwgflJvb3RJbmxpbmVCb3goKTsKLSAgICBXZWFrUHRyPFJvb3RJbmxpbmVCb3g+IGNyZWF0
ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQor
ICAgIFdlYWtQdHI8Um9vdElubGluZUJveD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vh
a1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogICAgIFJlbmRlckJsb2NrRmxv
dyYgYmxvY2tGbG93KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3Bw
CmluZGV4IGUyMjMwZjQxMmRkODEzNWJmMjU3NjE1YmViOGVlNDg0NzdmZGUwNGUuLjQwNDIzMTdj
YzYxZmRhNzk1NGMwZjE0NGNhM2Q2MzgxZWYzYzk5NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhFbGVtZW50LmNwcApAQCAtODEsNyArODEsNiBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJP
UEVSVElFUwogaW5saW5lIFNWR1BhdGhFbGVtZW50OjpTVkdQYXRoRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFwaGlj
c0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX3BhdGhTZWdMaXN0KFBhdGhTZWdV
bmFsdGVyZWRSb2xlKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogICAgICwgbV9pc0Fu
aW1WYWxPYnNlcnZlZChmYWxzZSkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6
cGF0aFRhZykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAppbmRleCAzZjQ3MTA1YjRk
MGNiMzNlY2QwZWIwYWVmY2IxMmYzYzM3Zjk1ZDM5Li40ODI0NzgyZmMzZTg3Y2NkOWM2Yjg0ZjVk
ZjdiMmU1YWY0M2FhNzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaApAQCAtOTcs
NyArOTcsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzQW5pbVZhbE9ic2VydmVkKCkgY29uc3Qg
eyByZXR1cm4gbV9pc0FuaW1WYWxPYnNlcnZlZDsgfQogCi0gICAgV2Vha1B0cjxTVkdQYXRoRWxl
bWVudD4gY3JlYXRlV2Vha1B0cigpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxTVkdQYXRoRWxlbWVudD4gY3JlYXRlV2Vha1B0
cigpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqY29uc3Rf
Y2FzdDxTVkdQYXRoRWxlbWVudCo+KHRoaXMpKTsgfQogCiAgICAgdm9pZCBhbmltYXRlZFByb3Bl
cnR5V2lsbEJlRGVsZXRlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdNYXRyaXhUZWFyT2ZmLmgKaW5kZXggMDE4ODAzMWNlMzhhYzFlZjQyZDdmODYxNWQ3NGZj
OGZmZjg4YjExZi4uZTBiZjBkMDgyN2U3M2Y3ZmM4ZmZkMjA5MzA5ZGYwMWUzYzI5OWExNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVhck9mZi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJPZmYuaApA
QCAtMzAsNyArMzAsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlRfVU5VU0VEKHZh
bHVlLCAmcGFyZW50LnByb3BlcnR5UmVmZXJlbmNlKCkuc3ZnTWF0cml4KCkgPT0gJnZhbHVlKTsK
ICAgICAgICAgUmVmPFNWR01hdHJpeFRlYXJPZmY+IHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgU1ZH
TWF0cml4VGVhck9mZihwYXJlbnQpKTsKLSAgICAgICAgcGFyZW50LmFkZENoaWxkKHJlc3VsdC0+
bV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCkpOworICAgICAgICBwYXJlbnQuYWRkQ2hpbGQo
cmVzdWx0LT5tX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIocmVzdWx0KSk7CiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgfQogCkBAIC00OCw3ICs0OCw2IEBAIHByaXZhdGU6CiAgICAgU1ZH
TWF0cml4VGVhck9mZihTVkdUcmFuc2Zvcm0mIHBhcmVudCkKICAgICAgICAgOiBTVkdNYXRyaXgo
bnVsbHB0cikKICAgICAgICAgLCBtX3BhcmVudCgmcGFyZW50KQotICAgICAgICAsIG1fd2Vha0Zh
Y3RvcnkodGhpcykKICAgICB7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NE
TUZhY3RvcnkuY3BwCmluZGV4IGExYTc5OGQxNzkzMTI0MmI1ZjZlMDdlNzk1Nzg5MDk0OThiODNh
YzQuLmIyZmM2YzE3OThjYmRhMmE2MmY0MTk2N2U1MjRlYTY3ZWE4NThlYjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3BwCkBAIC0zOCw3ICszOCw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogTW9ja0NETUZhY3Rvcnk6Ok1vY2tDRE1GYWN0b3J5KCkKICAgICA6
IG1fc3VwcG9ydGVkU2Vzc2lvblR5cGVzKHsgTWVkaWFLZXlTZXNzaW9uVHlwZTo6VGVtcG9yYXJ5
LCBNZWRpYUtleVNlc3Npb25UeXBlOjpQZXJzaXN0ZW50VXNhZ2VSZWNvcmQsIE1lZGlhS2V5U2Vz
c2lvblR5cGU6OlBlcnNpc3RlbnRMaWNlbnNlIH0pCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRo
aXMpCiB7CiAgICAgQ0RNRmFjdG9yeTo6cmVnaXN0ZXJGYWN0b3J5KCp0aGlzKTsKIH0KQEAgLTk4
LDEyICs5NywxMSBAQCB2b2lkIE1vY2tDRE1GYWN0b3J5OjpzZXRTdXBwb3J0ZWREYXRhVHlwZXMo
VmVjdG9yPFN0cmluZz4mJiB0eXBlcykKIAogc3RkOjp1bmlxdWVfcHRyPENETVByaXZhdGU+IE1v
Y2tDRE1GYWN0b3J5OjpjcmVhdGVDRE0oY29uc3QgU3RyaW5nJikKIHsKLSAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxNb2NrQ0RNPihtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKSk7
CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TW9ja0NETT4obV93ZWFrUHRyRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCp0aGlzKSk7CiB9CiAKIE1vY2tDRE06Ok1vY2tDRE0oV2Vha1B0cjxNb2Nr
Q0RNRmFjdG9yeT4gZmFjdG9yeSkKICAgICA6IG1fZmFjdG9yeShXVEZNb3ZlKGZhY3RvcnkpKQot
ICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogfQogCkBAIC0xNjcsNyArMTY1LDcgQEAg
UmVmUHRyPENETUluc3RhbmNlPiBNb2NrQ0RNOjpjcmVhdGVJbnN0YW5jZSgpCiB7CiAgICAgaWYg
KG1fZmFjdG9yeSAmJiAhbV9mYWN0b3J5LT5jYW5DcmVhdGVJbnN0YW5jZXMoKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNb2NrQ0RNSW5zdGFuY2Uo
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IE1vY2tDRE1JbnN0YW5jZShtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMp
KSk7CiB9CiAKIHZvaWQgTW9ja0NETTo6bG9hZEFuZEluaXRpYWxpemUoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHkuY3BwCmluZGV4IDEwZTE0ZjcwZWQ2N2YxZGNiYWI5MTc3Y2NhM2RjMWM1Nzcy
NDliMzcuLjk2MWJiZDM3YzM3ZmI2MDJlNTg1ZDYzMWIyNDRmZWE4Y2IwZDliYjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRv
clByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTQwLDcgKzQwLDYgQEAgc3RhdGljIFdlYlBheW1l
bnRDb29yZGluYXRvclByb3h5KiBhY3RpdmVQYXltZW50Q29vcmRpbmF0b3JQcm94eTsKIAogV2Vi
UGF5bWVudENvb3JkaW5hdG9yUHJveHk6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5KFdlYlBh
Z2VQcm94eSYgd2ViUGFnZVByb3h5KQogICAgIDogbV93ZWJQYWdlUHJveHkod2ViUGFnZVByb3h5
KQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogICAgICwgbV9zdGF0ZShTdGF0ZTo6SWRs
ZSkKICAgICAsIG1fbWVyY2hhbnRWYWxpZGF0aW9uU3RhdGUoTWVyY2hhbnRWYWxpZGF0aW9uU3Rh
dGU6OklkbGUpCiB7CkBAIC02NSw3ICs2NCw3IEBAIHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHk6OmNhbk1ha2VQYXltZW50cyhib29sJiByZXBseSkKIAogdm9pZCBXZWJQYXltZW50Q29v
cmRpbmF0b3JQcm94eTo6Y2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQoY29uc3QgU3RyaW5n
JiBtZXJjaGFudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG9tYWluTmFtZSwgdWludDY0X3Qg
cmVxdWVzdElEKQogewotICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0
ZVdlYWtQdHIoKTsKKyAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVX
ZWFrUHRyKCp0aGlzKTsKICAgICBwbGF0Zm9ybUNhbk1ha2VQYXltZW50c1dpdGhBY3RpdmVDYXJk
KG1lcmNoYW50SWRlbnRpZmllciwgZG9tYWluTmFtZSwgW3dlYWtUaGlzLCByZXF1ZXN0SURdKGJv
b2wgY2FuTWFrZVBheW1lbnRzKSB7CiAgICAgICAgIGF1dG8gcGF5bWVudENvb3JkaW5hdG9yUHJv
eHkgPSB3ZWFrVGhpcy5nZXQoKTsKICAgICAgICAgaWYgKCFwYXltZW50Q29vcmRpbmF0b3JQcm94
eSkKQEAgLTc3LDcgKzc2LDcgQEAgdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y2Fu
TWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQoY29uc3QgU3RyaW5nJiBtZXIKIAogdm9pZCBXZWJQ
YXltZW50Q29vcmRpbmF0b3JQcm94eTo6b3BlblBheW1lbnRTZXR1cChjb25zdCBTdHJpbmcmIG1l
cmNoYW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCB1aW50NjRfdCByZXF1
ZXN0SUQpCiB7Ci0gICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vh
a1B0cigpOworICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKnRoaXMpOwogICAgIHBsYXRmb3JtT3BlblBheW1lbnRTZXR1cChtZXJjaGFudElkZW50aWZp
ZXIsIGRvbWFpbk5hbWUsIFt3ZWFrVGhpcywgcmVxdWVzdElEXShib29sIHJlc3VsdCkgewogICAg
ICAgICBhdXRvIHBheW1lbnRDb29yZGluYXRvclByb3h5ID0gd2Vha1RoaXMuZ2V0KCk7CiAgICAg
ICAgIGlmICghcGF5bWVudENvb3JkaW5hdG9yUHJveHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9tYWMvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9tYWMvV2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHlNYWMubW0KaW5kZXggM2U1MDY5YTFkNTQ1MGM5MWRlMTk3OWI1YzdkYzE0OTBl
M2UxNjliYS4uYTEyZWM0NjczNDljYzFhMDZjOGFhMmM2ZGNlZjFlNWJlMjZlNmNhMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkvbWFjL1dlYlBheW1lbnRDb29y
ZGluYXRvclByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxlUGF5
L21hYy9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eU1hYy5tbQpAQCAtNDYsNyArNDYsNyBAQCB2
b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybVNob3dQYXltZW50VUkoY29u
c3QgV2ViQ29yZTo6VVJMJiBvcmlnaQogICAgIGF1dG8gcGF5bWVudFJlcXVlc3QgPSB0b1BLUGF5
bWVudFJlcXVlc3QobV93ZWJQYWdlUHJveHksIG9yaWdpbmF0aW5nVVJMLCBsaW5rSWNvblVSTFN0
cmluZ3MsIHJlcXVlc3QpOwogCiAgICAgYXV0byBzaG93UGF5bWVudFVJUmVxdWVzdFNlZWQgPSBt
X3Nob3dQYXltZW50VUlSZXF1ZXN0U2VlZDsKLSAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZh
Y3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiAgICAgW2dldFBLUGF5bWVudEF1dGhvcml6YXRp
b25WaWV3Q29udHJvbGxlckNsYXNzKCkgcmVxdWVzdFZpZXdDb250cm9sbGVyV2l0aFBheW1lbnRS
ZXF1ZXN0OnBheW1lbnRSZXF1ZXN0LmdldCgpIGNvbXBsZXRpb246QmxvY2tQdHI8dm9pZCAoUEtQ
YXltZW50QXV0aG9yaXphdGlvblZpZXdDb250cm9sbGVyICosIE5TRXJyb3IgKik+Ojpmcm9tQ2Fs
bGFibGUoW3BheW1lbnRSZXF1ZXN0LCBzaG93UGF5bWVudFVJUmVxdWVzdFNlZWQsIHdlYWtUaGlz
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShQS1BheW1l
bnRBdXRob3JpemF0aW9uVmlld0NvbnRyb2xsZXIgKnZpZXdDb250cm9sbGVyLCBOU0Vycm9yICpl
cnJvcikgewogICAgICAgICBhdXRvIHBheW1lbnRDb29yZGluYXRvclByb3h5ID0gd2Vha1RoaXMu
Z2V0KCk7CiAgICAgICAgIGlmICghcGF5bWVudENvb3JkaW5hdG9yUHJveHkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsaWNhdGlvblN0YXRlVHJhY2tlci5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxpY2F0aW9uU3RhdGVUcmFja2VyLm1tCmluZGV4IDZi
MjkzOWFkM2MwZTA2YjVkZDUyMWNlN2E4ODYyZDJiZGI3ZTg1ODcuLmM2NTIzYTM4YWQ4NjNmOGZi
YzUyZTRkMTgyZTBlODdhMGM3Nzk4MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FwcGxpY2F0aW9uU3RhdGVUcmFja2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FwcGxpY2F0aW9uU3RhdGVUcmFja2VyLm1tCkBAIC03OSw3ICs3OSw2IEBAIEFwcGxpY2F0
aW9uU3RhdGVUcmFja2VyOjpBcHBsaWNhdGlvblN0YXRlVHJhY2tlcihVSVZpZXcgKnZpZXcsIFNF
TCBkaWRFbnRlckJhY2tnCiAgICAgLCBtX2RpZEZpbmlzaFNuYXBzaG90dGluZ0FmdGVyRW50ZXJp
bmdCYWNrZ3JvdW5kU2VsZWN0b3IoZGlkRmluaXNoU25hcHNob3R0aW5nQWZ0ZXJFbnRlcmluZ0Jh
Y2tncm91bmRTZWxlY3RvcikKICAgICAsIG1fd2lsbEVudGVyRm9yZWdyb3VuZFNlbGVjdG9yKHdp
bGxFbnRlckZvcmVncm91bmRTZWxlY3RvcikKICAgICAsIG1faXNJbkJhY2tncm91bmQodHJ1ZSkK
LSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKICAgICAsIG1fZGlkRW50ZXJCYWNrZ3JvdW5k
T2JzZXJ2ZXIobnVsbHB0cikKICAgICAsIG1fZGlkQ3JlYXRlV2luZG93Q29udGV4dE9ic2VydmVy
KG51bGxwdHIpCiAgICAgLCBtX2RpZEZpbmlzaFNuYXBzaG90dGluZ0FmdGVyRW50ZXJpbmdCYWNr
Z3JvdW5kT2JzZXJ2ZXIobnVsbHB0cikKQEAgLTk0LDcgKzkzLDcgQEAgQXBwbGljYXRpb25TdGF0
ZVRyYWNrZXI6OkFwcGxpY2F0aW9uU3RhdGVUcmFja2VyKFVJVmlldyAqdmlldywgU0VMIGRpZEVu
dGVyQmFja2cKICAgICBBU1NFUlQod2luZG93KTsKIAogICAgIE5TTm90aWZpY2F0aW9uQ2VudGVy
ICpub3RpZmljYXRpb25DZW50ZXIgPSBbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRl
cl07Ci0gICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigp
OworICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRo
aXMpOwogICAgIG1fZGlkQ3JlYXRlV2luZG93Q29udGV4dE9ic2VydmVyID0gW25vdGlmaWNhdGlv
bkNlbnRlciBhZGRPYnNlcnZlckZvck5hbWU6QCJfVUlXaW5kb3dEaWRDcmVhdGVXaW5kb3dDb250
ZXh0Tm90aWZpY2F0aW9uIiBvYmplY3Q6d2luZG93IHF1ZXVlOm5pbCB1c2luZ0Jsb2NrOlt3ZWFr
VGhpc10oTlNOb3RpZmljYXRpb24gKikgewogICAgICAgICBhdXRvIGFwcGxpY2F0aW9uU3RhdGVU
cmFja2VyID0gd2Vha1RoaXMuZ2V0KCk7CiAgICAgICAgIGlmICghYXBwbGljYXRpb25TdGF0ZVRy
YWNrZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRl
eCBiNDM5N2M2NmIzYWYwYjhjMzhiOTkxNzQ2OGQ5ODgyYzI5NjlhM2VmLi40MTZkY2MwZTZlOTQ3
ODczYWFhZGVlOWJhMTA4MzJhYmMxZjA5MTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTU3NCw3ICs1NzQsNyBAQCBwcml2YXRlOgogI2VuZGlm
IC8vIEVOQUJMRShXRUJfUExBWUJBQ0tfQ09OVFJPTFNfTUFOQUdFUikKICNlbmRpZiAvLyBIQVZF
KFRPVUNIX0JBUikKIAotICAgIFdlYWtQdHI8V2ViVmlld0ltcGw+IGNyZWF0ZVdlYWtQdHIoKSB7
IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8
V2ViVmlld0ltcGw+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKICAgICBib29sIHN1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0
TW9kZXMoKSBjb25zdDsKICAgICBmbG9hdCBpbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcigpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRl
eCAwMTU1Y2IxOGIxNTE0MzlhMGYxM2IyM2FhZGFhZDYxNzcxYzZlNTkwLi45Mzg0NmE4ZDU4Y2Jm
ZGNiM2QzMmI2MWZlYzRlYjdkMWI5NWVkNWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtMTI3MSw3ICsxMjcxLDYgQEAgV2ViVmlld0ltcGw6
OldlYlZpZXdJbXBsKE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0ZT4gKnZpZXcsIFdLV2ViVmll
dyAqb3V0ZXJXZWIKICAgICA6IG1fdmlldyh2aWV3KQogICAgICwgbV9wYWdlQ2xpZW50KHN0ZDo6
bWFrZV91bmlxdWU8UGFnZUNsaWVudEltcGw+KHZpZXcsIG91dGVyV2ViVmlldykpCiAgICAgLCBt
X3BhZ2UocHJvY2Vzc1Bvb2wuY3JlYXRlV2ViUGFnZSgqbV9wYWdlQ2xpZW50LCBXVEZNb3ZlKGNv
bmZpZ3VyYXRpb24pKSkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKICAgICAsIG1fbmVl
ZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKG1fcGFnZS0+cHJlZmVyZW5jZXMoKS5wbHVn
aW5zRW5hYmxlZCgpKQogICAgICwgbV9pbnRyaW5zaWNDb250ZW50U2l6ZShDR1NpemVNYWtlKE5T
Vmlld05vSW5zdHJpbnNpY01ldHJpYywgTlNWaWV3Tm9JbnN0cmluc2ljTWV0cmljKSkKICAgICAs
IG1fbGF5b3V0U3RyYXRlZ3koW1dLVmlld0xheW91dFN0cmF0ZWd5IGxheW91dFN0cmF0ZWd5V2l0
aFBhZ2U6bV9wYWdlIHZpZXc6dmlldyB2aWV3SW1wbDoqdGhpcyBtb2RlOmtXS0xheW91dE1vZGVW
aWV3U2l6ZV0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Q
cm9jZXNzTGF1bmNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJv
Y2Vzc0xhdW5jaGVyLmNwcAppbmRleCBmMmY3MmFjYzNmMjRiMjk5ZmIwY2U4YjdmODkyY2FkZGJh
MTcwYTkwLi4wZmZhOTJkYzhkZDlmMDNiMzI2YWM1ZTEyYmY4ZDgxYmRkZGUxMTA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5j
cHAKQEAgLTMzLDcgKzMzLDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIFByb2Nlc3NMYXVuY2hl
cjo6UHJvY2Vzc0xhdW5jaGVyKENsaWVudCogY2xpZW50LCBjb25zdCBMYXVuY2hPcHRpb25zJiBs
YXVuY2hPcHRpb25zKQogICAgIDogbV9jbGllbnQoY2xpZW50KQotICAgICwgbV93ZWFrUHRyRmFj
dG9yeSh0aGlzKQogICAgICwgbV9sYXVuY2hPcHRpb25zKGxhdW5jaE9wdGlvbnMpCiAgICAgLCBt
X3Byb2Nlc3NJZGVudGlmaWVyKDApCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQppbmRleCBhMTY2MGI0
ZWM5NGFlZjhhYTNmODQ3YjMzMTA4MWFiNDgxM2YwNGIyLi42NDg5ZjViMzBjODg2MzJiZDJiNGE4
YjRhMWI2NGM4MmY5NGMxOGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9M
YXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KQEAgLTE4Niw3ICsxODYs
NyBAQCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAKICAgICB4cGNfZGlj
dGlvbmFyeV9zZXRfdmFsdWUoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgImV4dHJhLWluaXRpYWxp
emF0aW9uLWRhdGEiLCBleHRyYUluaXRpYWxpemF0aW9uRGF0YS5nZXQoKSk7CiAKLSAgICBhdXRv
IHdlYWtQcm9jZXNzTGF1bmNoZXIgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsK
KyAgICBhdXRvIHdlYWtQcm9jZXNzTGF1bmNoZXIgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKnRoaXMpOwogICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyKG1feHBj
Q29ubmVjdGlvbi5nZXQoKSwgW3dlYWtQcm9jZXNzTGF1bmNoZXIsIGxpc3RlbmluZ1BvcnRdKHhw
Y19vYmplY3RfdCBldmVudCkgewogICAgICAgICBBU1NFUlQoeHBjX2dldF90eXBlKGV2ZW50KSA9
PSBYUENfVFlQRV9FUlJPUik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Byb2Nlc3NBc3NlcnRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3Nl
cnRpb24uaAppbmRleCAyMDMyMDAwNjU1NzZmNTgwN2YyY2UxNjE3YWVjOWJkNDllOWYxNzg1Li40
ZDRkYzY2ZjI1NWVhNmZjYzQwY2UzYTNjYmIzNWU0ZDgxMjJmOGNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oCkBAIC02OSw3ICs2OSw3IEBAIHByb3RlY3Rl
ZDoKIAogcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1MpICYmICFQTEFURk9STShJT1NfU0lNVUxB
VE9SKQotICAgIFdlYWtQdHI8UHJvY2Vzc0Fzc2VydGlvbj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0
dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxQcm9jZXNz
QXNzZXJ0aW9uPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVX
ZWFrUHRyKCp0aGlzKTsgfQogICAgIHZvaWQgbWFya0FzSW52YWxpZGF0ZWQoKTsKIAogICAgIFJl
dGFpblB0cjxCS1NQcm9jZXNzQXNzZXJ0aW9uPiBtX2Fzc2VydGlvbjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDEyNjU3ODFkOTM1MDcxNzdjMzkwOTJmMzkx
YzRkNzBlMjU3OWVhZTMuLmYzYjUyZmU1ZGU1ZTBjNTMyZWNiNjYzYWYyZjcxYzliNzFmYzU0MGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzY1LDcgKzM2
NSw2IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQs
IFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgdWluCiAjZW5kaWYKICAgICAsIG1fcGFnZUxvYWRT
dGF0ZSgqdGhpcykKICAgICAsIG1fY29uZmlndXJhdGlvblByZWZlcmVuY2VWYWx1ZXMobV9jb25m
aWd1cmF0aW9uLT5wcmVmZXJlbmNlVmFsdWVzKCkpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRo
aXMpCiB7CiAgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmFkZE9ic2VydmVyKG1fdmlz
aXRlZExpbmtTdG9yZSk7CiAgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmFkZE9ic2Vy
dmVyKG1fd2Vic2l0ZURhdGFTdG9yZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IGI1NjRjZGMzNTgzM2ZlNzc1NmMxZWVmM2I3MGRlZDdlODAxZTA2MmYuLjcxNTI4
MjI0MDhmYzk0Nzg0ZGQzZjYzNjZiNjU0MWEwNGFiOWZlMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMTkwLDcgKzExOTAsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBnYW1lcGFkQWN0aXZpdHkoY29uc3QgVmVjdG9yPEdhbWVwYWREYXRhPiYsIGJvb2wgc2hvdWxk
TWFrZUdhbWVwYWRzVmlzaWJsZSk7CiAjZW5kaWYKICAgICAgICAgCi0gICAgV2Vha1B0cjxXZWJQ
YWdlUHJveHk+IGNyZWF0ZVdlYWtQdHIoKSBjb25zdCB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8V2ViUGFnZVByb3h5PiBjcmVhdGVXZWFr
UHRyKCkgY29uc3QgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCpjb25z
dF9jYXN0PFdlYlBhZ2VQcm94eSo+KHRoaXMpKTsgfQogCiAgICAgdm9pZCBpc0xvYWRpbmdDaGFu
Z2VkKCkgeyBhY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6Oklz
TG9hZGluZyk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEuaAppbmRleCA0Mjc1YWUzMTE1YTZkMjUxODRiYzJiZGRkODJkMDRhNTVhOTk5
N2JmLi5lNThkZDYxMzA4ZGM3N2RjMjY5OGRiNjliNzc0YzcxMzU0MjUzNzk3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaApAQCAtNTQs
NyArNTQsNyBAQCBwdWJsaWM6CiAgICAgdWludDY0X3QgbmV4dFRyYW5zYWN0aW9uSUQoKSBjb25z
dCB7IHJldHVybiBtX2N1cnJlbnRUcmFuc2FjdGlvbklEICsgMTsgfQogICAgIHVpbnQ2NF90IGxh
c3RDb21taXR0ZWRUcmFuc2FjdGlvbklEKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50VHJhbnNh
Y3Rpb25JRDsgfQogCi0gICAgV2Vha1B0cjxSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYT4gY3Jl
YXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9
CisgICAgV2Vha1B0cjxSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYT4gY3JlYXRlV2Vha1B0cigp
IHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogcHJp
dmF0ZToKICAgICAvLyBEcmF3aW5nQXJlYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCmluZGV4IGUwZmU0YzEzYWZjN2Y0MWI0NDc1N2I1
YmY4MDJkYWExN2FjMjIxYjIuLjllYmE5YTlkNzhkNWQzYWQ2Y2Y0YTJjZjg2ZDhhOWRhOGM0MTBm
OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWEubW0KQEAgLTYwLDcgKzYwLDYgQEAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OlJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhKFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IFcKICAgICAs
IG1fcmVtb3RlTGF5ZXJUcmVlQ29udGV4dChzdGQ6Om1ha2VfdW5pcXVlPFJlbW90ZUxheWVyVHJl
ZUNvbnRleHQ+KHdlYlBhZ2UpKQogICAgICwgbV9yb290TGF5ZXIoR3JhcGhpY3NMYXllcjo6Y3Jl
YXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKSkKICAgICAsIG1fbGF5ZXJGbHVzaFRp
bWVyKCp0aGlzLCAmUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKQotICAg
ICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogICAgIHdlYlBhZ2UuY29yZVBhZ2UoKS0+c2V0
dGluZ3MoKS5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsKICNpZiBQTEFURk9STShJT1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQubW0KaW5kZXggM2RkZWJiNWNiZTgxOTcxNGI3ZWFmM2I1OWM3YzkzOGY0
ZTNjNTMyYi4uMzQzYzJjN2ZiNzk1OWM0YTlhYTUxNTIxMThkYzA2Zjg2Yjg3MDE2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5tbQpAQCAtMTk1LDcgKzE5NSw2IEBAIEBlbmQKIFdlYkVkaXRvckNsaWVudDo6
V2ViRWRpdG9yQ2xpZW50KFdlYlZpZXcgKndlYlZpZXcpCiAgICAgOiBtX3dlYlZpZXcod2ViVmll
dykKICAgICAsIG1fdW5kb1RhcmdldChhZG9wdE5TKFtbV2ViRWRpdG9yVW5kb1RhcmdldCBhbGxv
Y10gaW5pdF0pKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogfQogCkBAIC0xMjQ3
LDcgKzEyNDYsNyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENhbmRpZGF0ZXNGb3JT
ZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZQogICAgIG1fcGFyYWdyYXBoQ29u
dGV4dEZvckNhbmRpZGF0ZVJlcXVlc3QgPSBwbGFpblRleHQoZnJhbWUtPmVkaXRvcigpLmNvbnRl
eHRSYW5nZUZvckNhbmRpZGF0ZVJlcXVlc3QoKS5nZXQoKSk7CiAKICAgICBOU1RleHRDaGVja2lu
Z1R5cGVzIGNoZWNraW5nVHlwZXMgPSBOU1RleHRDaGVja2luZ1R5cGVTcGVsbGluZyB8IE5TVGV4
dENoZWNraW5nVHlwZVJlcGxhY2VtZW50IHwgTlNUZXh0Q2hlY2tpbmdUeXBlQ29ycmVjdGlvbjsK
LSAgICBhdXRvIHdlYWtFZGl0b3IgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsK
KyAgICBhdXRvIHdlYWtFZGl0b3IgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRo
aXMpOwogICAgIG1fbGFzdENhbmRpZGF0ZVJlcXVlc3RTZXF1ZW5jZU51bWJlciA9IFtbTlNTcGVs
bENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSByZXF1ZXN0Q2FuZGlkYXRlc0ZvclNlbGVjdGVk
UmFuZ2U6bV9yYW5nZUZvckNhbmRpZGF0ZXMgaW5TdHJpbmc6bV9wYXJhZ3JhcGhDb250ZXh0Rm9y
Q2FuZGlkYXRlUmVxdWVzdC5nZXQoKSB0eXBlczpjaGVja2luZ1R5cGVzIG9wdGlvbnM6bmlsIGlu
U3BlbGxEb2N1bWVudFdpdGhUYWc6c3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoKSBjb21wbGV0aW9u
SGFuZGxlcjpbd2Vha0VkaXRvcl0oTlNJbnRlZ2VyIHNlcXVlbmNlTnVtYmVyLCBOU0FycmF5PE5T
VGV4dENoZWNraW5nUmVzdWx0ICo+ICpjYW5kaWRhdGVzKSB7CiAgICAgICAgIGRpc3BhdGNoX2Fz
eW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57CiAgICAgICAgICAgICBpZiAoIXdlYWtF
ZGl0b3IpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggMTFmZDhmMmFkODc4MjAxMDE4YTVhYzFiYzlkOTI1NjE4YWIxNTBkOC4uZjZjZTY2ZTEyMjE2
YTc1MWUxZTZkZTQzMWZhNzdjZDZiMjgxMDQ1OSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA5LTIyICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2Vha1B0ckZhY3Rvcnkgc2hv
dWxkIHBvcHVsYXRlIG1fcmVmIGxhemlseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3NzM3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV2Vha1B0ci5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNy0wOS0yMCAgSm9zZXBoIFBl
Y29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSB0ZXN0MjYyIHRl
c3RzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XZWFrUHRyLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dlYWtQdHIuY3BwCmluZGV4IDc0NWFh
ZGQyYmQ1MmI3MGE5NjM4OGY1MDc0ZTEzYTNiYjZlZWFhYjQuLjFhMTIwYzY0NjdiMWQzNzNlZGU4
MmI2NTg4YzBkMjk5OTBiYjY5ZDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1dlYWtQdHIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dl
YWtQdHIuY3BwCkBAIC02MCw5ICs2MCw5IEBAIFRFU1QoV1RGX1dlYWtQdHIsIEFzc2lnbm1lbnQp
CiAgICAgaW50IGR1bW15ID0gNTsKICAgICBXZWFrUHRyPGludD4gd2Vha1B0cjsKICAgICB7Ci0g
ICAgICAgIFdlYWtQdHJGYWN0b3J5PGludD4gZmFjdG9yeSgmZHVtbXkpOworICAgICAgICBXZWFr
UHRyRmFjdG9yeTxpbnQ+IGZhY3Rvcnk7CiAgICAgICAgIEVYUEVDVF9OVUxMKHdlYWtQdHIuZ2V0
KCkpOwotICAgICAgICB3ZWFrUHRyID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgICAg
IHdlYWtQdHIgPSBmYWN0b3J5LmNyZWF0ZVdlYWtQdHIoJmR1bW15KTsKICAgICAgICAgRVhQRUNU
X0VRKHdlYWtQdHIuZ2V0KCksICZkdW1teSk7CiAgICAgfQogICAgIEVYUEVDVF9OVUxMKHdlYWtQ
dHIuZ2V0KCkpOwpAQCAtNzIsMTAgKzcyLDEwIEBAIFRFU1QoV1RGX1dlYWtQdHIsIE11bHRpcGxl
RmFjdG9yaWVzKQogewogICAgIGludCBkdW1teTEgPSA1OwogICAgIGludCBkdW1teTIgPSA3Owot
ICAgIFdlYWtQdHJGYWN0b3J5PGludD4qIGZhY3RvcnkxID0gbmV3IFdlYWtQdHJGYWN0b3J5PGlu
dD4oJmR1bW15MSk7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8aW50PiogZmFjdG9yeTIgPSBuZXcgV2Vh
a1B0ckZhY3Rvcnk8aW50PigmZHVtbXkyKTsKLSAgICBXZWFrUHRyPGludD4gd2Vha1B0cjEgPSBm
YWN0b3J5MS0+Y3JlYXRlV2Vha1B0cigpOwotICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMiA9IGZh
Y3RvcnkyLT5jcmVhdGVXZWFrUHRyKCk7CisgICAgV2Vha1B0ckZhY3Rvcnk8aW50PiogZmFjdG9y
eTEgPSBuZXcgV2Vha1B0ckZhY3Rvcnk8aW50PigpOworICAgIFdlYWtQdHJGYWN0b3J5PGludD4q
IGZhY3RvcnkyID0gbmV3IFdlYWtQdHJGYWN0b3J5PGludD4oKTsKKyAgICBXZWFrUHRyPGludD4g
d2Vha1B0cjEgPSBmYWN0b3J5MS0+Y3JlYXRlV2Vha1B0cigmZHVtbXkxKTsKKyAgICBXZWFrUHRy
PGludD4gd2Vha1B0cjIgPSBmYWN0b3J5Mi0+Y3JlYXRlV2Vha1B0cigmZHVtbXkyKTsKICAgICBF
WFBFQ1RfRVEod2Vha1B0cjEuZ2V0KCksICZkdW1teTEpOwogICAgIEVYUEVDVF9FUSh3ZWFrUHRy
Mi5nZXQoKSwgJmR1bW15Mik7CiAgICAgRVhQRUNUX1RSVUUod2Vha1B0cjEgIT0gd2Vha1B0cjIp
OwpAQCAtOTEsMTAgKzkxLDEwIEBAIFRFU1QoV1RGX1dlYWtQdHIsIE11bHRpcGxlRmFjdG9yaWVz
KQogVEVTVChXVEZfV2Vha1B0ciwgUmV2b2tlQWxsKQogewogICAgIGludCBkdW1teSA9IDU7Ci0g
ICAgV2Vha1B0ckZhY3Rvcnk8aW50PiBmYWN0b3J5KCZkdW1teSk7Ci0gICAgV2Vha1B0cjxpbnQ+
IHdlYWtQdHIxID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7Ci0gICAgV2Vha1B0cjxpbnQ+IHdl
YWtQdHIyID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7Ci0gICAgV2Vha1B0cjxpbnQ+IHdlYWtQ
dHIzID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgV2Vha1B0ckZhY3Rvcnk8aW50PiBm
YWN0b3J5OworICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMSA9IGZhY3RvcnkuY3JlYXRlV2Vha1B0
cigmZHVtbXkpOworICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMiA9IGZhY3RvcnkuY3JlYXRlV2Vh
a1B0cigmZHVtbXkpOworICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMyA9IGZhY3RvcnkuY3JlYXRl
V2Vha1B0cigmZHVtbXkpOwogICAgIEVYUEVDVF9FUSh3ZWFrUHRyMS5nZXQoKSwgJmR1bW15KTsK
ICAgICBFWFBFQ1RfRVEod2Vha1B0cjIuZ2V0KCksICZkdW1teSk7CiAgICAgRVhQRUNUX0VRKHdl
YWtQdHIzLmdldCgpLCAmZHVtbXkpOwpAQCAtMTA0LDE1ICsxMDQsNiBAQCBURVNUKFdURl9XZWFr
UHRyLCBSZXZva2VBbGwpCiAgICAgRVhQRUNUX05VTEwod2Vha1B0cjMuZ2V0KCkpOwogfQogCi1U
RVNUKFdURl9XZWFrUHRyLCBOdWxsRmFjdG9yeSkKLXsKLSAgICBXZWFrUHRyRmFjdG9yeTxpbnQ+
IGZhY3RvcnkobnVsbHB0cik7Ci0gICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIgPSBmYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKTsKLSAgICBFWFBFQ1RfTlVMTCh3ZWFrUHRyLmdldCgpKTsKLSAgICBmYWN0
b3J5LnJldm9rZUFsbCgpOwotICAgIEVYUEVDVF9OVUxMKHdlYWtQdHIuZ2V0KCkpOwotfQotCiBz
dHJ1Y3QgRm9vIHsKICAgICB2b2lkIGJhcigpIHsgfTsKIH07CkBAIC0xMjAsOCArMTExLDggQEAg
c3RydWN0IEZvbyB7CiBURVNUKFdURl9XZWFrUHRyLCBEZXJlZmVyZW5jZSkKIHsKICAgICBGb28g
ZjsKLSAgICBXZWFrUHRyRmFjdG9yeTxGb28+IGZhY3RvcnkoJmYpOwotICAgIFdlYWtQdHI8Rm9v
PiB3ZWFrUHRyID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgV2Vha1B0ckZhY3Rvcnk8
Rm9vPiBmYWN0b3J5OworICAgIFdlYWtQdHI8Rm9vPiB3ZWFrUHRyID0gZmFjdG9yeS5jcmVhdGVX
ZWFrUHRyKCZmKTsKICAgICB3ZWFrUHRyLT5iYXIoKTsKIH0KIApAQCAtMTMwLDEzICsxMjEsMTMg
QEAgVEVTVChXVEZfV2Vha1B0ciwgRm9yZ2V0KQogICAgIGludCBkdW1teSA9IDU7CiAgICAgaW50
IGR1bW15MiA9IDc7CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxpbnQ+IG91dGVyRmFjdG9yeSgmZHVt
bXkyKTsKKyAgICBXZWFrUHRyRmFjdG9yeTxpbnQ+IG91dGVyRmFjdG9yeTsKICAgICBXZWFrUHRy
PGludD4gd2Vha1B0cjEsIHdlYWtQdHIyLCB3ZWFrUHRyMywgd2Vha1B0cjQ7CiAgICAgewotICAg
ICAgICBXZWFrUHRyRmFjdG9yeTxpbnQ+IGlubmVyRmFjdG9yeSgmZHVtbXkpOwotICAgICAgICB3
ZWFrUHRyMSA9IGlubmVyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7Ci0gICAgICAgIHdlYWtQdHIy
ID0gaW5uZXJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKLSAgICAgICAgd2Vha1B0cjMgPSBpbm5l
ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAgICAgICBXZWFrUHRyRmFjdG9yeTxpbnQ+IGlu
bmVyRmFjdG9yeTsKKyAgICAgICAgd2Vha1B0cjEgPSBpbm5lckZhY3RvcnkuY3JlYXRlV2Vha1B0
cigmZHVtbXkpOworICAgICAgICB3ZWFrUHRyMiA9IGlubmVyRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCZkdW1teSk7CisgICAgICAgIHdlYWtQdHIzID0gaW5uZXJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIo
JmR1bW15KTsKICAgICAgICAgRVhQRUNUX0VRKHdlYWtQdHIxLmdldCgpLCAmZHVtbXkpOwogICAg
ICAgICBFWFBFQ1RfRVEod2Vha1B0cjIuZ2V0KCksICZkdW1teSk7CiAgICAgICAgIEVYUEVDVF9F
USh3ZWFrUHRyMy5nZXQoKSwgJmR1bW15KTsKQEAgLTE2Niw3ICsxNTcsNyBAQCBURVNUKFdURl9X
ZWFrUHRyLCBGb3JnZXQpCiAgICAgICAgIEVYUEVDVF9OVUxMKHdlYWtQdHI1LmdldCgpKTsKICAg
ICAgICAgRVhQRUNUX0VRKHdlYWtQdHIyLmdldCgpLCAmZHVtbXkpOwogCi0gICAgICAgIHdlYWtQ
dHI0ID0gb3V0ZXJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICAgICAgd2Vha1B0cjQgPSBv
dXRlckZhY3RvcnkuY3JlYXRlV2Vha1B0cigmZHVtbXkyKTsKICAgICAgICAgRVhQRUNUX0VRKHdl
YWtQdHIyLmdldCgpLCAmZHVtbXkpOwogICAgICAgICBFWFBFQ1RfRVEod2Vha1B0cjQuZ2V0KCks
ICZkdW1teTIpOwogICAgIH0KQEAgLTE4NCw3ICsxNzUsNyBAQCBURVNUKFdURl9XZWFrUHRyLCBG
b3JnZXQpCiAgICAgRVhQRUNUX05VTEwod2Vha1B0cjYuZ2V0KCkpOwogICAgIEVYUEVDVF9FUSh3
ZWFrUHRyNS5nZXQoKSwgd2Vha1B0cjYuZ2V0KCkpOwogCi0gICAgV2Vha1B0cjxpbnQ+IHdlYWtQ
dHI3ID0gb3V0ZXJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBXZWFrUHRyPGludD4gd2Vh
a1B0cjcgPSBvdXRlckZhY3RvcnkuY3JlYXRlV2Vha1B0cigmZHVtbXkyKTsKICAgICBFWFBFQ1Rf
RVEod2Vha1B0cjcuZ2V0KCksICZkdW1teTIpOwogICAgIHdlYWtQdHI3ID0gbnVsbHB0cjsKICAg
ICBFWFBFQ1RfTlVMTCh3ZWFrUHRyNy5nZXQoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321580</attachid>
            <date>2017-09-22 12:41:52 -0700</date>
            <delta_ts>2017-09-22 12:57:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177375-20170922124151.patch</filename>
            <type>text/plain</type>
            <size>101902</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMzk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNhY2Q4MjNjMzdjZDIwMTRlODAzNzUw
YjczOTRkNTgxYzJkMjMyZjIuLmE0YzUzMWM1MWQxZTI5NTE2NDRlNmNiYmIzYjkxOTg1N2I4YjA5
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTctMDktMjIgIFphbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBXZWFrUHRyRmFjdG9yeSBzaG91bGQgcG9wdWxhdGUgbV9y
ZWYgbGF6aWx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc3Mzc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBoZWxwcyB1cyB3aXRoIHRoZSBvdmVyaGVhZCBvZiBpbml0aWFsaXppbmcgV2Vha1B0
ckZhY3RvcnkgZm9yCisgICAgICAgIG9iamVjdHMgdGhhdCByYXJlbHkgZW5kIHVwIGNyZWF0aW5n
IHRoZSB3ZWFrIHJlZmVyZW5jZS4KKyAgICAgICAgLVRoaXMgaXMgaW4gcHJlcGFyYXRpb24gZm9y
IGludHJvZHVjaW5nIFdlYWtQdHIgdG8gUmVuZGVyT2JqZWN0LiAKKworICAgICAgICAqIHd0Zi9X
ZWFrUHRyLmg6CisgICAgICAgIChXVEY6OldlYWtSZWZlcmVuY2U6OmdldCBjb25zdCk6CisgICAg
ICAgIChXVEY6OldlYWtSZWZlcmVuY2U6OmNsZWFyKToKKyAgICAgICAgKFdURjo6V2Vha1JlZmVy
ZW5jZTo6V2Vha1JlZmVyZW5jZSk6CisgICAgICAgIChXVEY6OldlYWtQdHJGYWN0b3J5Ojp+V2Vh
a1B0ckZhY3RvcnkpOgorICAgICAgICAoV1RGOjpXZWFrUHRyRmFjdG9yeTo6Y3JlYXRlV2Vha1B0
ciBjb25zdCk6CisgICAgICAgIChXVEY6OldlYWtQdHJGYWN0b3J5OjpyZXZva2VBbGwpOgorICAg
ICAgICAoV1RGOjpXZWFrUHRyRmFjdG9yeTo6V2Vha1B0ckZhY3RvcnkpOiBEZWxldGVkLgorCiAy
MDE3LTA5LTIxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgTWFrZSBTdHJpbmdCdWlsZGVyIG1vdmFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNTNlMTY2
NzVhNjlmMzIxY2FmNGNmOTEwNTg4YzY3ZmQzZWZiOTM1Li42ZGU2OWUyYjk0MmNlZTEzM2VmMDJj
ZjFjYjViNjIxMGI3NWUxYWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTY2IEBACisyMDE3LTA5
LTIyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2Vha1B0ckZh
Y3Rvcnkgc2hvdWxkIHBvcHVsYXRlIG1fcmVmIGxhemlseS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzM3NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0RNOjpDRE0pOgorICAgICAgICAqIE1vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvQ0RNLmg6CisgICAgICAgIChXZWJDb3JlOjpDRE06OmNyZWF0ZVdlYWtQdHIp
OgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6TWVkaWFLZXlTZXNzaW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6Z2VuZXJhdGVSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUtleVNlc3Npb246OnVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Np
b246OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6cmVtb3ZlKToK
KyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYUtleXM6Ok1lZGlhS2V5cyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUtleXM6OmNyZWF0ZVNlc3Npb24pOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFEZXZpY2VzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6TWVkaWFEZXZp
Y2VzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTdHJlYW1UcmFjazo6TWVkaWFTdHJlYW1UcmFjayk6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbVRyYWNrOjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCk6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAg
KiBhbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1h
dGlvbjo6V2ViQW5pbWF0aW9uKToKKyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9uLmg6
CisgICAgICAgICogY3NzL0ZvbnRGYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGYWNl
OjpGb250RmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpGb250RmFjZTo6Y3JlYXRlV2Vha1B0cik6
CisgICAgICAgIChXZWJDb3JlOjpGb250RmFjZTo6Y3JlYXRlV2Vha1B0ciBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgICogY3NzL0ZvbnRGYWNlLmg6CisgICAgICAgICogY3NzL1N0eWxlU2hlZXRD
b250ZW50cy5oOgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtTGlzdDo6RGF0YVRyYW5zZmVySXRlbUxpc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUxpc3Q6OmFkZCk6CisgICAgICAg
IChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtTGlzdDo6ZW5zdXJlSXRlbXMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUxpc3Q6OmRpZFNldFN0cmluZ0RhdGEpOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
cG9zdFRhc2spOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVt
ZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIGh0bWwvSFRN
TFBpY3R1cmVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFJlc291cmNlUHJl
bG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUmVzb3VyY2VQcmVsb2FkZXI6OkhUTUxS
ZXNvdXJjZVByZWxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUmVzb3VyY2VQcmVsb2Fk
ZXI6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIGxvYWRlci9MaW5rTG9hZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxpbmtMb2FkZXI6OkxpbmtMb2FkZXIpOgorICAgICAgICAqIGxvYWRl
ci9MaW5rTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjpjcmVhdGVXZWFr
UHRyKToKKyAgICAgICAgKiBsb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVJlc291cmNlTG9hZGVyOjpNZWRpYVJlc291cmNlTG9hZGVyKToKKyAg
ICAgICAgKiBsb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIHBhZ2UvRE9N
V2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6RE9NV2luZG93KToKKyAg
ICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBsYXRmb3JtL0dlbmVyaWNUYXNr
UXVldWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGFza0Rpc3BhdGNoZXI8VGltZXI+OjpUYXNr
RGlzcGF0Y2hlcik6CisgICAgICAgIChXZWJDb3JlOjpUYXNrRGlzcGF0Y2hlcjxUaW1lcj46OnBv
c3RUYXNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmg6CisgICAgICAg
IChXZWJDb3JlOjpHZW5lcmljVGFza1F1ZXVlOjpHZW5lcmljVGFza1F1ZXVlKToKKyAgICAgICAg
KFdlYkNvcmU6OkdlbmVyaWNUYXNrUXVldWU6OmVucXVldWVUYXNrKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6
OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGJhci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxiYXI6OlNjcm9sbGJhcik6CisgICAgICAgICogcGxhdGZvcm0v
U2Nyb2xsYmFyLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXI6OmNyZWF0ZVdlYWtQdHIp
OgorICAgICAgICAqIHBsYXRmb3JtL1dpZGdldC5oOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0
OjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9IYXJk
d2FyZUxpc3RlbmVyTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvSGFyZHdhcmVMaXN0
ZW5lck1hYzo6QXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FzY2FkZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6
Rm9udENhc2NhZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmg6
CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6Y3JlYXRlV2Vha1B0ciBjb25zdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb246Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbik6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
OjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAoV2ViQ29yZTo6
Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25P
YmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM6OkNE
TVNlc3Npb25BVkZvdW5kYXRpb25PYmpDKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tOgorICAgICAgICAo
V2ViQ29yZTo6Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vz
c2lvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OnNpemVXaWxsQ2hhbmdlQXRUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
OjphYm9ydCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1Yu
bW06CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlQ2FjaGVDVjo6VGV4dHVyZUNhY2hlQ1YpOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZUNhY2hlQ1Y6OnRleHR1cmVGcm9tSW1hZ2UpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpEaXNwbGF5UmVm
cmVzaE1vbml0b3JNYWMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9y
TWFjOjpkaXNwbGF5TGlua0ZpcmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUmVtb3RlQ29t
bWFuZExpc3RlbmVySU9TLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVu
ZXJJT1M6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9SZW1vdGVDb21t
YW5kTGlzdGVuZXJJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVu
ZXJJT1M6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUyk6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5oOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29t
bWFuZExpc3RlbmVyTWFjOjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW1Qcml2YXRlOjpNZWRpYVN0cmVhbVByaXZhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW1Qcml2YXRlOjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U6OlJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2Nr
L01vY2tNZWRpYUVuZHBvaW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYUVuZHBv
aW50OjpNb2NrTWVkaWFFbmRwb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFFbmRw
b2ludDo6Z2VuZXJhdGVEdGxzSW5mbyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck11bHRp
Q29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck11
bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyOjpSZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFj
ZWhvbGRlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBs
YWNlaG9sZGVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6UmVuZGVyVmlldyk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclZpZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlcldpZGdldDo6UmVuZGVyV2lkZ2V0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyV2lkZ2V0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJXaWRnZXQ6
OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIHJlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6OlJvb3RJbmxpbmVCb3gpOgorICAgICAg
ICAqIHJlbmRlcmluZy9Sb290SW5saW5lQm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5s
aW5lQm94OjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6OlNWR1BhdGhFbGVtZW50KToKKyAg
ICAgICAgKiBzdmcvU1ZHUGF0aEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9T
VkdNYXRyaXhUZWFyT2ZmLmg6CisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ0RNRmFjdG9yeTo6TW9ja0NETUZhY3RvcnkpOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja0NETUZhY3Rvcnk6OmNyZWF0ZUNETSk6CisgICAgICAgIChXZWJD
b3JlOjpNb2NrQ0RNOjpNb2NrQ0RNKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDRE06OmNyZWF0
ZUluc3RhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6Om1fd2Vha1B0ckZhY3RvcnkpOiBEZWxldGVk
LgorCiAyMDE3LTA5LTIyICBCYXN1a2UgU3V6dWtpICA8QmFzdWtlLlN1enVraUBzb255LmNvbT4K
IAogICAgICAgICBbQ3VybF0gVXNlIGRpZFJlY2VpdmVCdWZmZXIgaW5zdGVhZCBvZiBkaWRSZWNl
aXZlRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggNjk4ODBjMThhZTExZmNlODdkOTgzMTRkNDM0
NjBmMzExZDQ1ODRjOC4uZTI1ZTY4MzU3ODQ4MWE2NjBkNjAwNGJhN2FhNTJlYmEyZTM5YTQxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDktMjIgIFphbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBXZWFrUHRyRmFjdG9yeSBzaG91bGQg
cG9wdWxhdGUgbV9yZWYgbGF6aWx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc3Mzc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBwYWwvc3lzdGVtL21hYy9TeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1t
OgorICAgICAgICAoUEFMOjpTeXN0ZW1TbGVlcExpc3RlbmVyTWFjOjpTeXN0ZW1TbGVlcExpc3Rl
bmVyTWFjKToKKwogMjAxNy0wOS0yMSAgWW9zaGlha2kgSml0c3VrYXdhICA8WW9zaGlha2kuSml0
c3VrYXdhQHNvbnkuY29tPgogCiAgICAgICAgIFtQQUxdIE1vdmUgTWVkaWFUaW1lQVZGb3VuZGF0
aW9uIGludG8gUEFMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ3YzU3MTI0MGIxZDJiYTQ5YzBmODlmMTkxNmIwMDFm
ZWNmOWQ1ZTIuLjM5NTk5MDc5ZDg4YjEyN2FhOGY0NjA2N2M2ZDkwMDg1MjJmMmM1MTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTctMDktMjIgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KKworICAgICAgICBXZWFrUHRyRmFjdG9yeSBzaG91bGQgcG9wdWxhdGUgbV9yZWYg
bGF6aWx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTc3Mzc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6V2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94
eTo6Y2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YXltZW50Q29vcmRpbmF0b3JQcm94eTo6b3BlblBheW1lbnRTZXR1cCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FwcGxlUGF5L21hYy9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eU1hYy5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtU2hvd1Bh
eW1lbnRVSSk6CisgICAgICAgICogVUlQcm9jZXNzL0FwcGxpY2F0aW9uU3RhdGVUcmFja2VyLm1t
OgorICAgICAgICAoV2ViS2l0OjpBcHBsaWNhdGlvblN0YXRlVHJhY2tlcjo6QXBwbGljYXRpb25T
dGF0ZVRyYWNrZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNz
TGF1bmNoZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NM
YXVuY2hlcik6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNo
ZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vz
cyk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uaDoKKyAgICAgICAgKFdl
YktpdDo6UHJvY2Vzc0Fzc2VydGlvbjo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fY29uZmlndXJhdGlvblBy
ZWZlcmVuY2VWYWx1ZXMpOgorICAgICAgICAoV2ViS2l0OjptX3dlYWtQdHJGYWN0b3J5KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRlV2Vha1B0ciBjb25zdCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5o
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Y3JlYXRlV2Vh
a1B0cik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWE6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhKToKKwogMjAxNy0wOS0y
MiAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBOb24tcHJl
dmFsZW50IHJlc291cmNlcyBzaG91bGQgYmUgYWxsb3dlZCBhY2Nlc3MgdG8gZXhpc3RpbmcgY29v
a2llcyBpbiBhIHRoaXJkLXBhcnR5IGNvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpp
bmRleCAxMGZjMTY2ODNmNzNlZjMxMWViMTViOThkOWFkY2RhYWIyNzkzMWY1Li40MzAzNGEwODk3
NTI0NjZjYWM3MjIxMWM4YWM1MjM4MDIwNGY3NmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDktMjIgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KKworICAgICAgICBXZWFrUHRyRmFjdG9yeSBzaG91bGQgcG9wdWxhdGUgbV9yZWYg
bGF6aWx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTc3Mzc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06CisgICAgICAgIChXZWJFZGl0b3JD
bGllbnQ6OldlYkVkaXRvckNsaWVudCk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnJlcXVl
c3RDYW5kaWRhdGVzRm9yU2VsZWN0aW9uKToKKwogMjAxNy0wOS0yMiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBoaWdoIHJlc29sdXRpb24gdGltZXN0YW1w
IGZvciBldmVudCB0aW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9XZWFrUHRyLmggYi9T
b3VyY2UvV1RGL3d0Zi9XZWFrUHRyLmgKaW5kZXggMjljYzA1NmQxMzlhYTA5MzM4N2IyMWE3NWY2
M2ViNjg2N2YxYzcyYS4uYmQyZjU0NDNkZTkxYTA4MmY3YWVmMzQyMzU1MmYxOWQxOTIwZWRhNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvV2Vha1B0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1dlYWtQdHIuaApAQCAtMzIsMTAgKzMyLDYgQEAKICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKLSNpZiBVU0UoV0VCX1RI
UkVBRCkKLSNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBX
VEYgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBXZWFrUHRyOwpAQCAtNDcsMjUgKzQz
LDkgQEAgY2xhc3MgV2Vha1JlZmVyZW5jZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxX
ZWFrUmVmZXJlbmNlPFQ+PiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2Vha1JlZmVyZW5j
ZTxUPik7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgVCogZ2V0
KCkgY29uc3QKLSAgICB7Ci0jaWYgVVNFKFdFQl9USFJFQUQpCi0gICAgICAgIEFTU0VSVChjYW5B
Y2Nlc3NUaHJlYWRMb2NhbERhdGFGb3JUaHJlYWQobV9ib3VuZFRocmVhZCkpOwotI2Vsc2UKLSAg
ICAgICAgQVNTRVJUKG1fYm91bmRUaHJlYWQgPT0gY3VycmVudFRocmVhZCgpKTsKLSNlbmRpZgot
ICAgICAgICByZXR1cm4gbV9wdHI7Ci0gICAgfQorICAgIFQqIGdldCgpIGNvbnN0IHsgcmV0dXJu
IG1fcHRyOyB9CiAKLSAgICB2b2lkIGNsZWFyKCkKLSAgICB7Ci0jaWYgVVNFKFdFQl9USFJFQUQp
Ci0gICAgICAgIEFTU0VSVChjYW5BY2Nlc3NUaHJlYWRMb2NhbERhdGFGb3JUaHJlYWQobV9ib3Vu
ZFRocmVhZCkpOwotI2Vsc2UKLSAgICAgICAgQVNTRVJUKG1fYm91bmRUaHJlYWQgPT0gY3VycmVu
dFRocmVhZCgpKTsKLSNlbmRpZgotICAgICAgICBtX3B0ciA9IG51bGxwdHI7Ci0gICAgfQorICAg
IHZvaWQgY2xlYXIoKSB7IG1fcHRyID0gbnVsbHB0cjsgfQogCiBwcml2YXRlOgogICAgIGZyaWVu
ZCBjbGFzcyBXZWFrUHRyPFQ+OwpAQCAtNzUsMTYgKzU1LDEwIEBAIHByaXZhdGU6CiAKICAgICBl
eHBsaWNpdCBXZWFrUmVmZXJlbmNlKFQqIHB0cikKICAgICAgICAgOiBtX3B0cihwdHIpCi0jaWZu
ZGVmIE5ERUJVRwotICAgICAgICAsIG1fYm91bmRUaHJlYWQoY3VycmVudFRocmVhZCgpKQotI2Vu
ZGlmCiAgICAgewogICAgIH0KIAogICAgIFQqIG1fcHRyOwotI2lmbmRlZiBOREVCVUcKLSAgICBU
aHJlYWRJZGVudGlmaWVyIG1fYm91bmRUaHJlYWQ7Ci0jZW5kaWYKIH07CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+CkBAIC0xMTgsMjMgKzkyLDMzIEBAIGNsYXNzIFdlYWtQdHJGYWN0b3J5IHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWFrUHRyRmFjdG9yeTxUPik7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgV2Vha1B0ckZhY3RvcnkoVCog
cHRyKSA6IG1fcmVmKFdlYWtSZWZlcmVuY2U8VD46OmNyZWF0ZShwdHIpKSB7IH0KLQotICAgIH5X
ZWFrUHRyRmFjdG9yeSgpIHsgbV9yZWYtPmNsZWFyKCk7IH0KKyAgICBXZWFrUHRyRmFjdG9yeSgp
ID0gZGVmYXVsdDsKKyAgICB+V2Vha1B0ckZhY3RvcnkoKQorICAgIHsKKyAgICAgICAgaWYgKCFt
X3JlZikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9yZWYtPmNsZWFyKCk7CisgICAg
fQogCi0gICAgLy8gV2Ugc2hvdWxkIGNvbnNpZGVyIGhhdmluZyBjcmVhdGVXZWFrUHRyIHBvcHVs
YXRlIG1fcmVmIHRoZSBmaXJzdCB0aW1lIGNyZWF0ZVdlYWtQdHIgaXMgY2FsbGVkLgotICAgIFdl
YWtQdHI8VD4gY3JlYXRlV2Vha1B0cigpIGNvbnN0IHsgcmV0dXJuIFdlYWtQdHI8VD4obV9yZWYu
Y29weVJlZigpKTsgfQorICAgIFdlYWtQdHI8VD4gY3JlYXRlV2Vha1B0cihUJiBwdHIpIGNvbnN0
CisgICAgeworICAgICAgICBpZiAoIW1fcmVmKQorICAgICAgICAgICAgbV9yZWYgPSBXZWFrUmVm
ZXJlbmNlPFQ+OjpjcmVhdGUoJnB0cik7CisgICAgICAgIEFTU0VSVCgmcHRyID09IG1fcmVmLT5n
ZXQoKSk7CisgICAgICAgIHJldHVybiBXZWFrUHRyPFQ+KFJlZjxXZWFrUmVmZXJlbmNlPFQ+Pigq
bV9yZWYpKTsKKyAgICB9CiAKICAgICB2b2lkIHJldm9rZUFsbCgpCiAgICAgewotICAgICAgICBU
KiBwdHIgPSBtX3JlZi0+Z2V0KCk7CisgICAgICAgIGlmICghbV9yZWYpCisgICAgICAgICAgICBy
ZXR1cm47CisKICAgICAgICAgbV9yZWYtPmNsZWFyKCk7Ci0gICAgICAgIC8vIFdlIGNyZWF0ZSBh
IG5ldyBXZWFrUmVmZXJlbmNlIHNvIHRoYXQgZnV0dXJlIGNhbGxzIHRvIGNyZWF0ZVdlYWtQdHIo
KSBjcmVhdGUgbm9uemVybyBXZWFrUHRycy4KLSAgICAgICAgbV9yZWYgPSBXZWFrUmVmZXJlbmNl
PFQ+OjpjcmVhdGUocHRyKTsKKyAgICAgICAgbV9yZWYgPSBudWxscHRyOwogICAgIH0KIAogcHJp
dmF0ZToKLSAgICBSZWY8V2Vha1JlZmVyZW5jZTxUPj4gbV9yZWY7CisgICAgbXV0YWJsZSBSZWZQ
dHI8V2Vha1JlZmVyZW5jZTxUPj4gbV9yZWY7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFdlYWtQdHI8VD4mIGEsIGNv
bnN0IFdlYWtQdHI8VT4mIGIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL0NETS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL0NETS5jcHAKaW5kZXggNjBlOGFhZGJjMjY3MjliZDljYzA5ZDRlOTFiMDExM2QzMzg2Yjhj
Yi4uYjc0MGJiMDg5NzI5OWE2MzZiZjExODNkZTAyNzU1MjllZDRhNjcxNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmNwcApAQCAtNTksNyArNTksNiBA
QCBSZWY8Q0RNPiBDRE06OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtKQogQ0RNOjpDRE0oRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGtl
eVN5c3RlbSkKICAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKCZkb2N1bWVudCkKICAg
ICAsIG1fa2V5U3lzdGVtKGtleVN5c3RlbSkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykK
IHsKICAgICBBU1NFUlQoc3VwcG9ydHNLZXlTeXN0ZW0oa2V5U3lzdGVtKSk7CiAgICAgZm9yIChh
dXRvKiBmYWN0b3J5IDogQ0RNRmFjdG9yeTo6cmVnaXN0ZXJlZEZhY3RvcmllcygpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uaAppbmRleCA0NmQ1M2FkMDUy
MzIzNWE0YzU4OTJiMmQxYjRkODI3MzIzN2MwMzIxLi45N2E0YzU1OGQwN2VkZWZmMTA0ZDI0OWRm
MWZjYWZjZDBkOWY3MmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL0NETS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVk
aWEvQ0RNLmgKQEAgLTk5LDcgKzk5LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6Om9wdGlvbmFsPE1l
ZGlhS2V5U3lzdGVtQ29uZmlndXJhdGlvbj4gIGdldFN1cHBvcnRlZENvbmZpZ3VyYXRpb24oY29u
c3QgTWVkaWFLZXlTeXN0ZW1Db25maWd1cmF0aW9uJiBjYW5kaWRhdGVDb25maWd1cmF0aW9uLCBN
ZWRpYUtleXNSZXN0cmljdGlvbnMmKTsKICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxNZWRpYUtl
eVN5c3RlbU1lZGlhQ2FwYWJpbGl0eT4+IGdldFN1cHBvcnRlZENhcGFiaWxpdGllc0ZvckF1ZGlv
VmlkZW9UeXBlKEF1ZGlvVmlkZW9UeXBlLCBjb25zdCBWZWN0b3I8TWVkaWFLZXlTeXN0ZW1NZWRp
YUNhcGFiaWxpdHk+JiByZXF1ZXN0ZWRDYXBhYmlsaXRpZXMsIGNvbnN0IE1lZGlhS2V5U3lzdGVt
Q29uZmlndXJhdGlvbiYgcGFydGlhbENvbmZpZ3VyYXRpb24sIE1lZGlhS2V5c1Jlc3RyaWN0aW9u
cyYpOwogCi0gICAgV2Vha1B0cjxDRE0+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQ
dHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8Q0RNPiBjcmVhdGVXZWFr
UHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQog
CiAgICAgdXNpbmcgQ29uc2VudFN0YXR1c0NhbGxiYWNrID0gV1RGOjpGdW5jdGlvbjx2b2lkKENv
bnNlbnRTdGF0dXMsIE1lZGlhS2V5U3lzdGVtQ29uZmlndXJhdGlvbiYmLCBNZWRpYUtleXNSZXN0
cmljdGlvbnMmJik+OwogICAgIHZvaWQgZ2V0Q29uc2VudFN0YXR1cyhNZWRpYUtleVN5c3RlbUNv
bmZpZ3VyYXRpb24mJiBhY2N1bXVsYXRlZENvbmZpZ3VyYXRpb24sIE1lZGlhS2V5c1Jlc3RyaWN0
aW9ucyYmLCBDb25zZW50U3RhdHVzQ2FsbGJhY2smJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKaW5kZXgg
Y2JkOTRjMDZmZjE2NjM3ZjY1Y2Y1NGU2MzliNDc4YzI0NDMyNjA3Ni4uNGQ4MjQ1Y2Y3Njk3ZDg4
YjM0YjhkNDM3MDk2ZWE0MGU4NGEyMmUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcApAQCAtNjIsNyAr
NjIsNiBAQCBNZWRpYUtleVNlc3Npb246Ok1lZGlhS2V5U2Vzc2lvbihTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBXZWFrUHRyPE1lZGlhSwogICAgICwgbV9pbXBsZW1lbnRhdGlvbihX
VEZNb3ZlKGltcGxlbWVudGF0aW9uKSkKICAgICAsIG1faW5zdGFuY2UoV1RGTW92ZShpbnN0YW5j
ZSkpCiAgICAgLCBtX2V2ZW50UXVldWUoKnRoaXMpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRo
aXMpCiB7CiAgICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2VuY3J5cHRlZC1tZWRpYS8jZG9t
LW1lZGlha2V5cy1zZXRzZXJ2ZXJjZXJ0aWZpY2F0ZQogICAgIC8vIFczQyBFZGl0b3IncyBEcmFm
dCAwOSBOb3ZlbWJlciAyMDE2CkBAIC0xODksNyArMTg4LDcgQEAgdm9pZCBNZWRpYUtleVNlc3Np
b246OmdlbmVyYXRlUmVxdWVzdChjb25zdCBBdG9taWNTdHJpbmcmIGluaXREYXRhVHlwZSwgY29u
c3QgQnUKICAgICAgICAgICAgIG1fbGF0ZXN0RGVjcnlwdFRpbWUgPSAwOwogICAgICAgICB9CiAK
LSAgICAgICAgbV9pbnN0YW5jZS0+cmVxdWVzdExpY2Vuc2UobV9zZXNzaW9uVHlwZSwgaW5pdERh
dGFUeXBlLCBXVEZNb3ZlKGluaXREYXRhKSwgW3RoaXMsIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoUmVmPFNo
YXJlZEJ1ZmZlcj4mJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCwgYm9vbCBuZWVk
c0luZGl2aWR1YWxpemF0aW9uLCBDRE1JbnN0YW5jZTo6U3VjY2Vzc1ZhbHVlIHN1Y2NlZWRlZCkg
bXV0YWJsZSB7CisgICAgICAgIG1faW5zdGFuY2UtPnJlcXVlc3RMaWNlbnNlKG1fc2Vzc2lvblR5
cGUsIGluaXREYXRhVHlwZSwgV1RGTW92ZShpbml0RGF0YSksIFt0aGlzLCB3ZWFrVGhpcyA9IG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXSAoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNlc3Np
b25JZCwgYm9vbCBuZWVkc0luZGl2aWR1YWxpemF0aW9uLCBDRE1JbnN0YW5jZTo6U3VjY2Vzc1Zh
bHVlIHN1Y2NlZWRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAg
ICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMjgyLDcgKzI4MSw3IEBAIHZvaWQgTWVkaWFLZXlT
ZXNzaW9uOjpsb2FkKGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBSZWY8RGVmZXJyZWRQcm9taXNl
PiYmIHByb21pCiAgICAgICAgIC8vIDguNi4gTGV0IG1lc3NhZ2UgdHlwZSBiZSBudWxsLgogICAg
ICAgICAvLyA4LjcuIExldCBjZG0gYmUgdGhlIENETSBpbnN0YW5jZSByZXByZXNlbnRlZCBieSB0
aGlzIG9iamVjdCdzIGNkbSBpbnN0YW5jZSB2YWx1ZS4KICAgICAgICAgLy8gOC44LiBVc2UgdGhl
IGNkbSB0byBleGVjdXRlIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgIG1faW5zdGFuY2Ut
PmxvYWRTZXNzaW9uKG1fc2Vzc2lvblR5cGUsICpzYW5pdGl6ZWRTZXNzaW9uSWQsIG9yaWdpbiwg
W3RoaXMsIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpLCBzYW5pdGl6ZWRTZXNzaW9uSWQgPSAqc2FuaXRpemVkU2Vz
c2lvbklkXSAoc3RkOjpvcHRpb25hbDxDRE1JbnN0YW5jZTo6S2V5U3RhdHVzVmVjdG9yPiYmIGtu
b3duS2V5cywgc3RkOjpvcHRpb25hbDxkb3VibGU+JiYgZXhwaXJhdGlvbiwgc3RkOjpvcHRpb25h
bDxDRE1JbnN0YW5jZTo6TWVzc2FnZT4mJiBtZXNzYWdlLCBDRE1JbnN0YW5jZTo6U3VjY2Vzc1Zh
bHVlIHN1Y2NlZWRlZCwgQ0RNSW5zdGFuY2U6OlNlc3Npb25Mb2FkRmFpbHVyZSBmYWlsdXJlKSBt
dXRhYmxlIHsKKyAgICAgICAgbV9pbnN0YW5jZS0+bG9hZFNlc3Npb24obV9zZXNzaW9uVHlwZSwg
KnNhbml0aXplZFNlc3Npb25JZCwgb3JpZ2luLCBbdGhpcywgd2Vha1RoaXMgPSBtX3dlYWtQdHJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwg
c2FuaXRpemVkU2Vzc2lvbklkID0gKnNhbml0aXplZFNlc3Npb25JZF0gKHN0ZDo6b3B0aW9uYWw8
Q0RNSW5zdGFuY2U6OktleVN0YXR1c1ZlY3Rvcj4mJiBrbm93bktleXMsIHN0ZDo6b3B0aW9uYWw8
ZG91YmxlPiYmIGV4cGlyYXRpb24sIHN0ZDo6b3B0aW9uYWw8Q0RNSW5zdGFuY2U6Ok1lc3NhZ2U+
JiYgbWVzc2FnZSwgQ0RNSW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQsIENETUluc3Rh
bmNlOjpTZXNzaW9uTG9hZEZhaWx1cmUgZmFpbHVyZSkgbXV0YWJsZSB7CiAgICAgICAgICAgICAv
LyA4LjguMS4gSWYgdGhlcmUgaXMgbm8gZGF0YSBzdG9yZWQgZm9yIHRoZSBzYW5pdGl6ZWQgc2Vz
c2lvbiBJRCBpbiB0aGUgb3JpZ2luLCByZXNvbHZlIHByb21pc2Ugd2l0aCBmYWxzZSBhbmQgYWJv
cnQgdGhlc2Ugc3RlcHMuCiAgICAgICAgICAgICAvLyA4LjguMi4gSWYgdGhlIHN0b3JlZCBzZXNz
aW9uJ3Mgc2Vzc2lvbiB0eXBlIGlzIG5vdCB0aGUgc2FtZSBhcyB0aGUgY3VycmVudCBNZWRpYUtl
eVNlc3Npb24gc2Vzc2lvbiB0eXBlLCByZWplY3QgcHJvbWlzZSB3aXRoIGEgbmV3bHkgY3JlYXRl
ZCBUeXBlRXJyb3IuCiAgICAgICAgICAgICAvLyA4LjguMy4gTGV0IHNlc3Npb24gZGF0YSBiZSB0
aGUgZGF0YSBzdG9yZWQgZm9yIHRoZSBzYW5pdGl6ZWQgc2Vzc2lvbiBJRCBpbiB0aGUgb3JpZ2lu
LiBUaGlzIG11c3Qgbm90IGluY2x1ZGUgZGF0YSBmcm9tIG90aGVyIG9yaWdpbihzKSBvciB0aGF0
IGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggYW4gb3JpZ2luLgpAQCAtMzgzLDcgKzM4Miw3IEBAIHZv
aWQgTWVkaWFLZXlTZXNzaW9uOjp1cGRhdGUoY29uc3QgQnVmZmVyU291cmNlJiByZXNwb25zZSwg
UmVmPERlZmVycmVkUHJvbWlzZT4mCiAgICAgICAgIC8vIDYuNS4gTGV0IHNlc3Npb24gY2xvc2Vk
IGJlIGZhbHNlLgogICAgICAgICAvLyA2LjYuIExldCBjZG0gYmUgdGhlIENETSBpbnN0YW5jZSBy
ZXByZXNlbnRlZCBieSB0aGlzIG9iamVjdCdzIGNkbSBpbnN0YW5jZSB2YWx1ZS4KICAgICAgICAg
Ly8gNi43LiBVc2UgdGhlIGNkbSB0byBleGVjdXRlIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAg
ICAgIG1faW5zdGFuY2UtPnVwZGF0ZUxpY2Vuc2UobV9zZXNzaW9uSWQsIG1fc2Vzc2lvblR5cGUs
ICpzYW5pdGl6ZWRSZXNwb25zZSwgW3RoaXMsIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoYm9vbCBzZXNzaW9u
V2FzQ2xvc2VkLCBzdGQ6Om9wdGlvbmFsPENETUluc3RhbmNlOjpLZXlTdGF0dXNWZWN0b3I+JiYg
Y2hhbmdlZEtleXMsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiYmIGNoYW5nZWRFeHBpcmF0aW9uLCBz
dGQ6Om9wdGlvbmFsPENETUluc3RhbmNlOjpNZXNzYWdlPiYmIG1lc3NhZ2UsIENETUluc3RhbmNl
OjpTdWNjZXNzVmFsdWUgc3VjY2VlZGVkKSBtdXRhYmxlIHsKKyAgICAgICAgbV9pbnN0YW5jZS0+
dXBkYXRlTGljZW5zZShtX3Nlc3Npb25JZCwgbV9zZXNzaW9uVHlwZSwgKnNhbml0aXplZFJlc3Bv
bnNlLCBbdGhpcywgd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRo
aXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKGJvb2wgc2Vzc2lvbldhc0Nsb3NlZCwg
c3RkOjpvcHRpb25hbDxDRE1JbnN0YW5jZTo6S2V5U3RhdHVzVmVjdG9yPiYmIGNoYW5nZWRLZXlz
LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4mJiBjaGFuZ2VkRXhwaXJhdGlvbiwgc3RkOjpvcHRpb25h
bDxDRE1JbnN0YW5jZTo6TWVzc2FnZT4mJiBtZXNzYWdlLCBDRE1JbnN0YW5jZTo6U3VjY2Vzc1Zh
bHVlIHN1Y2NlZWRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAg
ICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNDk1LDcgKzQ5NCw3IEBAIHZvaWQgTWVkaWFLZXlT
ZXNzaW9uOjpjbG9zZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiAgICAgbV90YXNr
UXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBt
dXRhYmxlIHsKICAgICAgICAgLy8gNS4xLiBMZXQgY2RtIGJlIHRoZSBDRE0gaW5zdGFuY2UgcmVw
cmVzZW50ZWQgYnkgc2Vzc2lvbidzIGNkbSBpbnN0YW5jZSB2YWx1ZS4KICAgICAgICAgLy8gNS4y
LiBVc2UgY2RtIHRvIGNsb3NlIHRoZSBrZXkgc2Vzc2lvbiBhc3NvY2lhdGVkIHdpdGggc2Vzc2lv
bi4KLSAgICAgICAgbV9pbnN0YW5jZS0+Y2xvc2VTZXNzaW9uKG1fc2Vzc2lvbklkLCBbdGhpcywg
d2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKSwgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgeworICAgICAgICBtX2luc3RhbmNlLT5jbG9zZVNl
c3Npb24obV9zZXNzaW9uSWQsIFt0aGlzLCB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBtdXRhYmxl
IHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
CkBAIC01MzMsNyArNTMyLDcgQEAgdm9pZCBNZWRpYUtleVNlc3Npb246OnJlbW92ZShSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiAgICAgICAgIC8vIDQuMy4gTGV0IG1lc3NhZ2UgdHlw
ZSBiZSBudWxsLgogCiAgICAgICAgIC8vIDQuNC4gVXNlIHRoZSBjZG0gdG8gZXhlY3V0ZSB0aGUg
Zm9sbG93aW5nIHN0ZXBzOgotICAgICAgICBtX2luc3RhbmNlLT5yZW1vdmVTZXNzaW9uRGF0YSht
X3Nlc3Npb25JZCwgbV9zZXNzaW9uVHlwZSwgW3RoaXMsIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoQ0RNSW5z
dGFuY2U6OktleVN0YXR1c1ZlY3RvciYmIGtleXMsIHN0ZDo6b3B0aW9uYWw8UmVmPFNoYXJlZEJ1
ZmZlcj4+JiYgbWVzc2FnZSwgQ0RNSW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQpIG11
dGFibGUgeworICAgICAgICBtX2luc3RhbmNlLT5yZW1vdmVTZXNzaW9uRGF0YShtX3Nlc3Npb25J
ZCwgbV9zZXNzaW9uVHlwZSwgW3RoaXMsIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVh
dGVXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChDRE1JbnN0YW5j
ZTo6S2V5U3RhdHVzVmVjdG9yJiYga2V5cywgc3RkOjpvcHRpb25hbDxSZWY8U2hhcmVkQnVmZmVy
Pj4mJiBtZXNzYWdlLCBDRE1JbnN0YW5jZTo6U3VjY2Vzc1ZhbHVlIHN1Y2NlZWRlZCkgbXV0YWJs
ZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJldHVybjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRp
YUtleXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtl
eXMuY3BwCmluZGV4IGMwZWY1NTRjYjBlODk4ZmM2NzMwZWFkYzI2NjI5MDJjZTVjYjZjMDIuLmJl
ZjM2YTMyZGUxZmViNWNhYTQwMTg3YjZlMTU2MTgxNWI3MWYzY2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAKQEAgLTQ1LDcg
KzQ1LDYgQEAgTWVkaWFLZXlzOjpNZWRpYUtleXMoYm9vbCB1c2VEaXN0aW5jdGl2ZUlkZW50aWZp
ZXIsIGJvb2wgcGVyc2lzdGVudFN0YXRlQWxsb3dlZCwKICAgICAsIG1fc3VwcG9ydGVkU2Vzc2lv
blR5cGVzKHN1cHBvcnRlZFNlc3Npb25UeXBlcykKICAgICAsIG1faW1wbGVtZW50YXRpb24oV1RG
TW92ZShpbXBsZW1lbnRhdGlvbikpCiAgICAgLCBtX2luc3RhbmNlKFdURk1vdmUoaW5zdGFuY2Up
KQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogfQogCkBAIC02OCw3ICs2Nyw3IEBA
IEV4Y2VwdGlvbk9yPFJlZjxNZWRpYUtleVNlc3Npb24+PiBNZWRpYUtleXM6OmNyZWF0ZVNlc3Np
b24oU2NyaXB0RXhlY3V0aW9uQ29udGV4CiAgICAgLy8gMy4gTGV0IHNlc3Npb24gYmUgYSBuZXcg
TWVkaWFLZXlTZXNzaW9uIG9iamVjdCwgYW5kIGluaXRpYWxpemUgaXQgYXMgZm9sbG93czoKICAg
ICAvLyBOT1RFOiBDb250aW51ZWQgaW4gTWVkaWFLZXlTZXNzaW9uLgogICAgIC8vIDQuIFJldHVy
biBzZXNzaW9uLgotICAgIGF1dG8gc2Vzc2lvbiA9IE1lZGlhS2V5U2Vzc2lvbjo6Y3JlYXRlKGNv
bnRleHQsIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCBzZXNzaW9uVHlwZSwgbV91
c2VEaXN0aW5jdGl2ZUlkZW50aWZpZXIsIG1faW1wbGVtZW50YXRpb24uY29weVJlZigpLCBtX2lu
c3RhbmNlLmNvcHlSZWYoKSk7CisgICAgYXV0byBzZXNzaW9uID0gTWVkaWFLZXlTZXNzaW9uOjpj
cmVhdGUoY29udGV4dCwgbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgc2Vz
c2lvblR5cGUsIG1fdXNlRGlzdGluY3RpdmVJZGVudGlmaWVyLCBtX2ltcGxlbWVudGF0aW9uLmNv
cHlSZWYoKSwgbV9pbnN0YW5jZS5jb3B5UmVmKCkpOwogICAgIG1fc2Vzc2lvbnMuYXBwZW5kKHNl
c3Npb24uY29weVJlZigpKTsKICAgICByZXR1cm4gV1RGTW92ZShzZXNzaW9uKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcApp
bmRleCA2ZTQwYzdmNjIxOGI0MTFjZTg2NzQwYzIwZTcyNGMzMmUyZWI4MGY1Li40NDA1OTk2NWNj
MWViZmQ3ZmFmMDRlNmI1YWI1NDA5NTk5Yzg1NGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCkBAIC00Nyw3ICs0Nyw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGlubGluZSBNZWRpYURldmljZXM6Ok1lZGlhRGV2aWNlcyhE
b2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmZG9j
dW1lbnQpCiAgICAgLCBtX3NjaGVkdWxlZEV2ZW50VGltZXIoKnRoaXMsICZNZWRpYURldmljZXM6
OnNjaGVkdWxlZEV2ZW50VGltZXJGaXJlZCkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykK
IHsKICAgICBtX2RldmljZUNoYW5nZWRUb2tlbiA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNpbmdsZXRvbigpLmFkZERldmljZXNDaGFuZ2VkT2JzZXJ2ZXIoW3dlYWtUaGlzID0gY3JlYXRl
V2Vha1B0cigpLCB0aGlzXSgpIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKaW5kZXggOWYzMGMzZWFkOTUyODZjZjBiMTQxYjg1OTg3
ODVkNDAzMDQ5MDNjYi4uNjExMjg1MzA1Mjk3NGQ3ZWVhMjcwOWU0Y2E3OGMzYzllNGJlMDM3MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmlj
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy5oCkBAIC04Miw3ICs4Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWZFdmVudFRhcmdldCgp
IG92ZXJyaWRlIHsgcmVmKCk7IH0KICAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlk
ZSB7IGRlcmVmKCk7IH0KIAotICAgIFdlYWtQdHI8TWVkaWFEZXZpY2VzPiBjcmVhdGVXZWFrUHRy
KCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFr
UHRyPE1lZGlhRGV2aWNlcz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rv
cnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogICAgIFRpbWVyIG1fc2NoZWR1bGVkRXZlbnRU
aW1lcjsKICAgICBzdGQ6Om9wdGlvbmFsPFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OkRldmlj
ZXNDaGFuZ2VkT2JzZXJ2ZXJUb2tlbj4gbV9kZXZpY2VDaGFuZ2VkVG9rZW47CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNw
cAppbmRleCAxNjg4NGUzODI2Njg0Y2U3Nzg3ZDU4NmE4NGY4OGZkYzc5MWMyNzg5Li45ZTE3OGRm
NGJkMmE1YzlkNzlhZjBhNzY5NmY3OWMzMjJmZTE4ZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKQEAgLTUz
LDcgKzUzLDYgQEAgUmVmPE1lZGlhU3RyZWFtVHJhY2s+IE1lZGlhU3RyZWFtVHJhY2s6OmNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LAogTWVkaWFTdHJlYW1UcmFjazo6TWVk
aWFTdHJlYW1UcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWY8TWVkaWFT
dHJlYW1UcmFja1ByaXZhdGU+JiYgcHJpdmF0ZVRyYWNrKQogICAgIDogQWN0aXZlRE9NT2JqZWN0
KCZjb250ZXh0KQogICAgICwgbV9wcml2YXRlKFdURk1vdmUocHJpdmF0ZVRyYWNrKSkKLSAgICAs
IG1fd2Vha1B0ckZhY3RvcnkodGhpcykKICAgICAsIG1fdGFza1F1ZXVlKGNvbnRleHQpCiB7CiAg
ICAgc3VzcGVuZElmTmVlZGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCmluZGV4IDRhNDk5NGE2OWRmMGJkYjFmZmY4
YjM2MDJlNDZiMzA1OTAzOTFhYTMuLmE1M2FjZDYyM2M0NTBiOGZhYWY3Zjg1MjM0YTVhY2IwZjFm
YTcxMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5oCkBAIC0xNjUsNyArMTY1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHRyYWNrU2V0dGluZ3NDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWw7CiAg
ICAgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmlu
YWw7CiAKLSAgICBXZWFrUHRyPE1lZGlhU3RyZWFtVHJhY2s+IGNyZWF0ZVdlYWtQdHIoKSB7IHJl
dHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8TWVk
aWFTdHJlYW1UcmFjaz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogICAgIFZlY3RvcjxPYnNlcnZlcio+IG1fb2JzZXJ2
ZXJzOwogICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1N5c3RlbVNsZWVwTGlzdGVu
ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvU3lzdGVtU2xlZXBM
aXN0ZW5lck1hYy5tbQppbmRleCAwYjVhMGY1ODA2NmIzYTZlZDA5YmYwMmIzODc5MjFmZWExMjJm
ODMyLi42ZDUzYTdiZmQwZDhmN2FjZWQxMmU3Y2RlZjIxNmUyOGNkMjlmZGZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvU3lzdGVtU2xlZXBMaXN0ZW5lck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvU3lzdGVtU2xlZXBM
aXN0ZW5lck1hYy5tbQpAQCAtNDAsMTQgKzQwLDEzIEBAIHN0ZDo6dW5pcXVlX3B0cjxTeXN0ZW1T
bGVlcExpc3RlbmVyPiBTeXN0ZW1TbGVlcExpc3RlbmVyOjpjcmVhdGUoQ2xpZW50JiBjbGllbnQp
CiAKIFN5c3RlbVNsZWVwTGlzdGVuZXJNYWM6OlN5c3RlbVNsZWVwTGlzdGVuZXJNYWMoQ2xpZW50
JiBjbGllbnQpCiAgICAgOiBTeXN0ZW1TbGVlcExpc3RlbmVyKGNsaWVudCkKLSAgICAsIG1fd2Vh
a1B0ckZhY3RvcnkodGhpcykKICAgICAsIG1fc2xlZXBPYnNlcnZlcihuaWwpCiAgICAgLCBtX3dh
a2VPYnNlcnZlcihuaWwpCiB7CiAgICAgTlNOb3RpZmljYXRpb25DZW50ZXIgKmNlbnRlciA9IFtb
TlNXb3Jrc3BhY2Ugc2hhcmVkV29ya3NwYWNlXSBub3RpZmljYXRpb25DZW50ZXJdOwogICAgIE5T
T3BlcmF0aW9uUXVldWUgKnF1ZXVlID0gW05TT3BlcmF0aW9uUXVldWUgbWFpblF1ZXVlXTsKIAot
ICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAg
ICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsK
IAogICAgIG1fc2xlZXBPYnNlcnZlciA9IFtjZW50ZXIgYWRkT2JzZXJ2ZXJGb3JOYW1lOk5TV29y
a3NwYWNlV2lsbFNsZWVwTm90aWZpY2F0aW9uIG9iamVjdDpuaWwgcXVldWU6cXVldWUgdXNpbmdC
bG9jazpeKE5TTm90aWZpY2F0aW9uICopIHsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vh
a1RoaXNdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGQyZGUxZjM2MjkzMDllNWQ2OGE5Yjc1
MWRlYmEyOGQ3NTU1YWVkZTguLmU0MTU1ZDE4ZDUxZGQwMGRlN2Y4YTQwY2ViZWVmMzIzNjA5ZGU2
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMTA5LDcgKzEwOSw2IEBAIHVzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7CiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0KFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgOiBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdChyZW5kZXJlci0+bm9kZSgpKQogICAgICwgbV9yZW5kZXJlcihyZW5kZXJlcikK
LSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKICNpZm5kZWYgTkRFQlVHCiAgICAgbV9y
ZW5kZXJlci0+c2V0SGFzQVhPYmplY3QodHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCmluZGV4IDg5NTNl
Y2Q0ZmI4OTI1NDI4NWVlYjEzM2UzM2FlNDQ3MmE2NWJmOTYuLmE1MDcxNTcwNGFkZjIyNGRlNjdh
MzYxZTBlYzA0MmJjMTI2NDkxYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCkBAIC0yMDAsNyArMjAwLDcg
QEAgcHVibGljOgogCiAgICAgU3RyaW5nIHBhc3N3b3JkRmllbGRWYWx1ZSgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIAotICAgIFdlYWtQdHI8QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdD4gY3JlYXRl
V2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9Cisg
ICAgV2Vha1B0cjxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0PiBjcmVhdGVXZWFrUHRyKCkgeyBy
ZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiBwcm90ZWN0
ZWQ6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChSZW5kZXJPYmplY3Qq
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKaW5kZXggMDA2NjFj
ZTkyYjA2ZmM4MTNkZDI1YWM3ZDQ2MTM0MzVjYjk2YjgzNi4uZGJjNTU2NmUzNWU0ZWYzODExNGMy
ZGMwNmM0YWRlOGYzZTQzZTNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L1dlYkFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1h
dGlvbi5jcHAKQEAgLTYwLDcgKzYwLDYgQEAgUmVmUHRyPFdlYkFuaW1hdGlvbj4gV2ViQW5pbWF0
aW9uOjpjcmVhdGUoQW5pbWF0aW9uRWZmZWN0KiBlZmZlY3QsIEFuaW1hdGlvblRpbWUKIFdlYkFu
aW1hdGlvbjo6V2ViQW5pbWF0aW9uKEFuaW1hdGlvbkVmZmVjdCogZWZmZWN0LCBBbmltYXRpb25U
aW1lbGluZSogdGltZWxpbmUpCiAgICAgOiBtX2VmZmVjdChlZmZlY3QpCiAgICAgLCBtX3RpbWVs
aW5lKHRpbWVsaW5lKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogICAgIGlmICht
X2VmZmVjdCkKICAgICAgICAgbV9lZmZlY3QtPnNldEFuaW1hdGlvbih0aGlzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaAppbmRleCBiMDE3M2I2ZTM1ZGMwZGFiYmE2MWY2
MDk5OGVlZWJlMzdjNTBlNmY1Li5kNmZiMGEwMGRhMTkyYzZkMWVkYmQ0ZGJhZTZkNDEzZmVhNjI5
OTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCkBAIC00OCw3ICs0
OCw3IEBAIHB1YmxpYzoKICAgICBBbmltYXRpb25FZmZlY3QqIGVmZmVjdCgpIGNvbnN0IHsgcmV0
dXJuIG1fZWZmZWN0LmdldCgpOyB9CiAgICAgQW5pbWF0aW9uVGltZWxpbmUqIHRpbWVsaW5lKCkg
Y29uc3QgeyByZXR1cm4gbV90aW1lbGluZS5nZXQoKTsgfQogCi0gICAgV2Vha1B0cjxXZWJBbmlt
YXRpb24+IGNyZWF0ZVdlYWtQdHIoKSBjb25zdCB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8V2ViQW5pbWF0aW9uPiBjcmVhdGVXZWFrUHRy
KCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiBw
cml2YXRlOgogICAgIFdlYkFuaW1hdGlvbihBbmltYXRpb25FZmZlY3QqLCBBbmltYXRpb25UaW1l
bGluZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAKaW5kZXggODI1MzFmZjg1MzI3ODI4YjlmOWQ3
NzYxYjI5Yjc5YTY2ODQ3Yzg4MS4uOTY2YjdmYWRmNDliMGYzZWIwOGI3NDY4MjZhODlkZWI1ZDAx
YmI2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCkBAIC0xMjAsMTYgKzEyMCwxNCBAQCBSZWY8
Rm9udEZhY2U+IEZvbnRGYWNlOjpjcmVhdGUoQ1NTRm9udEZhY2UmIGZhY2UpCiB9CiAKIEZvbnRG
YWNlOjpGb250RmFjZShDU1NGb250U2VsZWN0b3ImIGZvbnRTZWxlY3RvcikKLSAgICA6IG1fd2Vh
a1B0ckZhY3RvcnkodGhpcykKLSAgICAsIG1fYmFja2luZyhDU1NGb250RmFjZTo6Y3JlYXRlKCZm
b250U2VsZWN0b3IsIG51bGxwdHIsIHRoaXMpKQorICAgIDogbV9iYWNraW5nKENTU0ZvbnRGYWNl
OjpjcmVhdGUoJmZvbnRTZWxlY3RvciwgbnVsbHB0ciwgdGhpcykpCiAgICAgLCBtX2xvYWRlZFBy
b21pc2UoKnRoaXMsICZGb250RmFjZTo6bG9hZGVkUHJvbWlzZVJlc29sdmUpCiB7CiAgICAgbV9i
YWNraW5nLT5hZGRDbGllbnQoKnRoaXMpOwogfQogCiBGb250RmFjZTo6Rm9udEZhY2UoQ1NTRm9u
dEZhY2UmIGZhY2UpCi0gICAgOiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0gICAgLCBtX2JhY2tp
bmcoZmFjZSkKKyAgICA6IG1fYmFja2luZyhmYWNlKQogICAgICwgbV9sb2FkZWRQcm9taXNlKCp0
aGlzLCAmRm9udEZhY2U6OmxvYWRlZFByb21pc2VSZXNvbHZlKQogewogICAgIG1fYmFja2luZy0+
YWRkQ2xpZW50KCp0aGlzKTsKQEAgLTE0MCw5ICsxMzgsOSBAQCBGb250RmFjZTo6fkZvbnRGYWNl
KCkKICAgICBtX2JhY2tpbmctPnJlbW92ZUNsaWVudCgqdGhpcyk7CiB9CiAKLVdlYWtQdHI8Rm9u
dEZhY2U+IEZvbnRGYWNlOjpjcmVhdGVXZWFrUHRyKCkgY29uc3QKK1dlYWtQdHI8Rm9udEZhY2U+
IEZvbnRGYWNlOjpjcmVhdGVXZWFrUHRyKCkKIHsKLSAgICByZXR1cm4gbV93ZWFrUHRyRmFjdG9y
eS5jcmVhdGVXZWFrUHRyKCk7CisgICAgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vh
a1B0cigqdGhpcyk7CiB9CiAKIFJlZlB0cjxDU1NWYWx1ZT4gRm9udEZhY2U6OnBhcnNlU3RyaW5n
KGNvbnN0IFN0cmluZyYgc3RyaW5nLCBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9G
b250RmFjZS5oCmluZGV4IGM3MWNlMDNjMGYwYTVkN2I4N2U5MzRmY2UzNjhhMmZmZjM3ZDM2YTgu
LjJmNGM4ODk0M2NiZGU3NjYxNzIyYzA0Y2U2ZGM2YmUyNjVjOTg1MTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250
RmFjZS5oCkBAIC04NSw3ICs4NSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZm9udFN0YXRlQ2hh
bmdlZChDU1NGb250RmFjZSYsIENTU0ZvbnRGYWNlOjpTdGF0dXMgb2xkU3RhdGUsIENTU0ZvbnRG
YWNlOjpTdGF0dXMgbmV3U3RhdGUpIGZpbmFsOwogCi0gICAgV2Vha1B0cjxGb250RmFjZT4gY3Jl
YXRlV2Vha1B0cigpIGNvbnN0OworICAgIFdlYWtQdHI8Rm9udEZhY2U+IGNyZWF0ZVdlYWtQdHIo
KTsKIAogICAgIHZvaWQgcmVmKCkgZmluYWwgeyBSZWZDb3VudGVkOjpyZWYoKTsgfQogICAgIHZv
aWQgZGVyZWYoKSBmaW5hbCB7IFJlZkNvdW50ZWQ6OmRlcmVmKCk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVNoZWV0Q29udGVudHMuaAppbmRleCAxOTA3NTU4OGZjZDRjOGJkMzAyZDhmNDAxNmRm
YTFmNTQ0YmQ1NGYxLi44YzBiNGRhMzEzNWRjODBlNjBiMmM3ZmMwYTE4NmZkYzNkYjFlYTIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oCkBAIC0xNDMsNyArMTQzLDcg
QEAgcHVibGljOgogCiAgICAgdm9pZCBzaHJpbmtUb0ZpdCgpOwogCi0gICAgV2Vha1B0cjxTdHls
ZVNoZWV0Q29udGVudHM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8U3R5bGVTaGVldENvbnRlbnRzPiBjcmVh
dGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlz
KTsgfQogCiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIFN0eWxlU2hlZXRDb250ZW50cyhT
dHlsZVJ1bGVJbXBvcnQqIG93bmVyUnVsZSwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbFVSTCwgY29u
c3QgQ1NTUGFyc2VyQ29udGV4dCYpOwpAQCAtMTc1LDcgKzE3NSw3IEBAIHByaXZhdGU6CiAKICAg
ICBWZWN0b3I8Q1NTU3R5bGVTaGVldCo+IG1fY2xpZW50czsKICAgICAKLSAgICBXZWFrUHRyRmFj
dG9yeTxTdHlsZVNoZWV0Q29udGVudHM+IG1fd2Vha1B0ckZhY3RvcnkgeyB0aGlzIH07CisgICAg
V2Vha1B0ckZhY3Rvcnk8U3R5bGVTaGVldENvbnRlbnRzPiBtX3dlYWtQdHJGYWN0b3J5OwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNm
ZXJJdGVtTGlzdC5jcHAKaW5kZXggNmY2YzBmYThkOWY1Y2Q2YjBiYzI0OTc3NzAwOTU4NTlhNTYw
ZjY5ZC4uNzVjNjdlMGMxMGI4NDhkNGYxOWZiZjI5MGYxNjdlN2UyMTNmYWUwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwCkBAIC00MSw4ICs0MSw3IEBA
IHN0YXRpYyBib29sIGlzU3VwcG9ydGVkVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCiB9CiAKIERh
dGFUcmFuc2Zlckl0ZW1MaXN0OjpEYXRhVHJhbnNmZXJJdGVtTGlzdChEYXRhVHJhbnNmZXImIGRh
dGFUcmFuc2ZlcikKLSAgICA6IG1fd2Vha1B0ckZhY3RvcnkodGhpcykKLSAgICAsIG1fZGF0YVRy
YW5zZmVyKGRhdGFUcmFuc2ZlcikKKyAgICA6IG1fZGF0YVRyYW5zZmVyKGRhdGFUcmFuc2ZlcikK
IHsKIH0KIApAQCAtODEsNyArODAsNyBAQCBFeGNlcHRpb25PcjxSZWZQdHI8RGF0YVRyYW5zZmVy
SXRlbT4+IERhdGFUcmFuc2Zlckl0ZW1MaXN0OjphZGQoY29uc3QgU3RyaW5nJiBkYQogCiAgICAg
bV9kYXRhVHJhbnNmZXIucGFzdGVib2FyZCgpLndyaXRlU3RyaW5nKGxvd2VyY2FzZWRUeXBlLCBk
YXRhKTsKICAgICBBU1NFUlQobV9pdGVtcyk7Ci0gICAgbV9pdGVtcy0+YXBwZW5kKERhdGFUcmFu
c2Zlckl0ZW06OmNyZWF0ZShtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKSwgbG93ZXJj
YXNlZFR5cGUpKTsKKyAgICBtX2l0ZW1zLT5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRl
KG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIGxvd2VyY2FzZWRUeXBlKSk7
CiAgICAgcmV0dXJuIFJlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiB7IG1faXRlbXMtPmxhc3QoKS5j
b3B5UmVmKCkgfTsKIH0KIApAQCAtMTI5LDEzICsxMjgsMTMgQEAgVmVjdG9yPFJlZjxEYXRhVHJh
bnNmZXJJdGVtPj4mIERhdGFUcmFuc2Zlckl0ZW1MaXN0OjplbnN1cmVJdGVtcygpIGNvbnN0CiAg
ICAgZm9yIChhdXRvJiB0eXBlIDogbV9kYXRhVHJhbnNmZXIudHlwZXMoKSkgewogICAgICAgICBh
dXRvIGxvd2VyY2FzZWRUeXBlID0gdHlwZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwogICAg
ICAgICBpZiAoaXNTdXBwb3J0ZWRUeXBlKGxvd2VyY2FzZWRUeXBlKSkKLSAgICAgICAgICAgIGl0
ZW1zLmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUobV93ZWFrUHRyRmFjdG9yeS5jcmVh
dGVXZWFrUHRyKCksIGxvd2VyY2FzZWRUeXBlKSk7CisgICAgICAgICAgICBpdGVtcy5hcHBlbmQo
RGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigq
Y29uc3RfY2FzdDxEYXRhVHJhbnNmZXJJdGVtTGlzdCo+KHRoaXMpKSwgbG93ZXJjYXNlZFR5cGUp
KTsKICAgICB9CiAKICAgICBmb3IgKGF1dG8mIGZpbGUgOiBtX2RhdGFUcmFuc2Zlci5maWxlcygp
LmZpbGVzKCkpIHsKICAgICAgICAgYXV0byB0eXBlID0gRmlsZTo6Y29udGVudFR5cGVGb3JGaWxl
KGZpbGUtPnBhdGgoKSkuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKICAgICAgICAgaWYgKGlz
U3VwcG9ydGVkVHlwZSh0eXBlKSB8fCBmaWxlLT5pc0RpcmVjdG9yeSgpKQotICAgICAgICAgICAg
aXRlbXMuYXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKSwgdHlwZSwgZmlsZS5jb3B5UmVmKCkpKTsKKyAgICAgICAgICAgIGl0ZW1z
LmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUobV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVX
ZWFrUHRyKCpjb25zdF9jYXN0PERhdGFUcmFuc2Zlckl0ZW1MaXN0Kj4odGhpcykpLCB0eXBlLCBm
aWxlLmNvcHlSZWYoKSkpOwogICAgIH0KIAogICAgIG1faXRlbXMgPSBXVEZNb3ZlKGl0ZW1zKTsK
QEAgLTE4MSw3ICsxODAsNyBAQCB2b2lkIERhdGFUcmFuc2Zlckl0ZW1MaXN0OjpkaWRTZXRTdHJp
bmdEYXRhKGNvbnN0IFN0cmluZyYgdHlwZSkKICAgICBTdHJpbmcgbG93ZXJjYXNlZFR5cGUgPSB0
eXBlLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCk7CiAgICAgcmVtb3ZlU3RyaW5nSXRlbU9mTG93
ZXJjYXNlZFR5cGUoKm1faXRlbXMsIHR5cGUuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKSk7CiAK
LSAgICBtX2l0ZW1zLT5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKG1fd2Vha1B0ckZh
Y3RvcnkuY3JlYXRlV2Vha1B0cigpLCBsb3dlcmNhc2VkVHlwZSkpOworICAgIG1faXRlbXMtPmFw
cGVuZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUobV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFr
UHRyKCp0aGlzKSwgbG93ZXJjYXNlZFR5cGUpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKaW5kZXggY2VlM2EyY2JlNTZhMDEyZjRkNjIwNzExMjYwZDQwMDZjNGUzNDdjNS4uMjg0NTE0
OTZhNTc4NDYwNmMzNTdjYWZkMThlZDA2MjUyZmE1Nzc2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCkBAIC00NjksNyArNDY5LDYgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwg
Y29uc3QgVVJMJiB1cmwsIHVuc2lnbmVkIGRvY3VtZW50Q2xhc3NlcywgdW5zaWcKICAgICAsIG1f
Y29uc3RhbnRQcm9wZXJ0eU1hcChzdGQ6Om1ha2VfdW5pcXVlPENvbnN0YW50UHJvcGVydHlNYXA+
KCp0aGlzKSkKICAgICAsIG1fZG9jdW1lbnRDbGFzc2VzKGRvY3VtZW50Q2xhc3NlcykKICAgICAs
IG1fZXZlbnRRdWV1ZSgqdGhpcykKLSAgICAsIG1fd2Vha0ZhY3RvcnkodGhpcykKICNpZiBFTkFC
TEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgLCBtX2Z1bGxTY3JlZW5DaGFuZ2VEZWxheVRpbWVyKCp0
aGlzLCAmRG9jdW1lbnQ6OmZ1bGxTY3JlZW5DaGFuZ2VEZWxheVRpbWVyRmlyZWQpCiAjZW5kaWYK
QEAgLTU2MjcsNyArNTYyNiw3IEBAIHZvaWQgRG9jdW1lbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nCiAKIHZvaWQgRG9j
dW1lbnQ6OnBvc3RUYXNrKFRhc2smJiB0YXNrKQogewotICAgIGNhbGxPbk1haW5UaHJlYWQoW2Rv
Y3VtZW50UmVmZXJlbmNlID0gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIHRhc2sgPSBX
VEZNb3ZlKHRhc2spXSgpIG11dGFibGUgeworICAgIGNhbGxPbk1haW5UaHJlYWQoW2RvY3VtZW50
UmVmZXJlbmNlID0gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgdGFzayA9IFdU
Rk1vdmUodGFzayldKCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CiAKICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZG9jdW1lbnRSZWZlcmVuY2UuZ2V0KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGUwMDk1ZmVhMDIxY2I0NDVjODdmZjY2ZGZiMTQwOWYz
OWRlZjQ0YTUuLjdhNWQxYWVlMGVjOTI1YWUwNmU2OGI3Y2VmN2FiMTIzNDM5YmE0NmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCkBAIC0xMjcyLDcgKzEyNzIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBp
c0NhcHR1cmluZygpIGNvbnN0IHsgcmV0dXJuIE1lZGlhUHJvZHVjZXI6OmlzQ2FwdHVyaW5nKG1f
bWVkaWFTdGF0ZSk7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVwZGF0ZUlzUGxheWluZ01l
ZGlhKHVpbnQ2NF90ID0gSFRNTE1lZGlhRWxlbWVudEludmFsaWRJRCk7CiAgICAgdm9pZCBwYWdl
TXV0ZWRTdGF0ZURpZENoYW5nZSgpOwotICAgIFdlYWtQdHI8RG9jdW1lbnQ+IGNyZWF0ZVdlYWtQ
dHIoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQ
dHI8RG9jdW1lbnQ+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0
ZVdlYWtQdHIoKnRoaXMpOyB9CiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VU
KQogICAgIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoTWVkaWFQbGF5YmFja1Rh
cmdldENsaWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5k
ZXggZjEyMmMwNzhjYTI3MDQzMDRmOWU3YjYyMGE3YTU0MThmYzAzNDJjNC4uMTcwMGJkNjI1NWVm
MTc0YzZhZmI5ODU0Y2ZmZTI1ODhlY2Y4M2RlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCkBAIC00MTEsNyArNDExLDYgQEAgc3RhdGljIHVpbnQ2NF90IG5leHRM
b2dJZGVudGlmaWVyKCkKIEhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIGNyZWF0ZWRC
eVBhcnNlcikKICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwgQWN0
aXZlRE9NT2JqZWN0KCZkb2N1bWVudCkKLSAgICAsIG1fd2Vha0ZhY3RvcnkodGhpcykKICAgICAs
IG1fcGVuZGluZ0FjdGlvblRpbWVyKCp0aGlzLCAmSFRNTE1lZGlhRWxlbWVudDo6cGVuZGluZ0Fj
dGlvblRpbWVyRmlyZWQpCiAgICAgLCBtX3Byb2dyZXNzRXZlbnRUaW1lcigqdGhpcywgJkhUTUxN
ZWRpYUVsZW1lbnQ6OnByb2dyZXNzRXZlbnRUaW1lckZpcmVkKQogICAgICwgbV9wbGF5YmFja1By
b2dyZXNzVGltZXIoKnRoaXMsICZIVE1MTWVkaWFFbGVtZW50OjpwbGF5YmFja1Byb2dyZXNzVGlt
ZXJGaXJlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggYzMzYWI5
Yjg4MGY5ZWE0ODI5MjYyZjNkZTczZmQ2MDMxMjA3OGFlNC4uYzg0MThmMTU1YWRiYzhmZGU1Njll
Y2Y2MjYyNGJiZWFlNDMwYmMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmgKQEAgLTE0NSw3ICsxNDUsNyBAQCBjbGFzcyBIVE1MTWVkaWFFbGVtZW50CiAjZW5kaWYKIHsK
IHB1YmxpYzoKLSAgICBXZWFrUHRyPEhUTUxNZWRpYUVsZW1lbnQ+IGNyZWF0ZVdlYWtQdHIoKSB7
IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8SFRN
TE1lZGlhRWxlbWVudD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigqdGhpcyk7IH0KICAgICBNZWRpYVBsYXllciogcGxheWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9wbGF5ZXIuZ2V0KCk7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBpc1ZpZGVvKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFBpY3R1cmVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVu
dC5oCmluZGV4IDg0YmQ2NmU1M2RiNjY0NmVlMGYxOTliODY1ZDVhNjZiZjUzZTQ4YWEuLjBjYjQ3
ODFkYTVmM2VhYjE4MDIwNWYxYmIxOThlY2EyYjcxYTZhZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUGljdHVyZUVsZW1lbnQuaApAQCAtNDMsMTQgKzQzLDE0IEBAIHB1YmxpYzoKIAogICAg
IGJvb2wgdmlld3BvcnRDaGFuZ2VBZmZlY3RlZFBpY3R1cmUoKSBjb25zdDsKIAotICAgIFdlYWtQ
dHI8SFRNTFBpY3R1cmVFbGVtZW50PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPEhUTUxQaWN0dXJlRWxlbWVudD4g
Y3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhp
cyk7IH0KIAogcHJpdmF0ZToKICAgICBIVE1MUGljdHVyZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2b2lkIGRpZE1vdmVUb05ld0RvY3VtZW50KERvY3Vt
ZW50JiBvbGREb2N1bWVudCwgRG9jdW1lbnQmIG5ld0RvY3VtZW50KSBmaW5hbDsKIAotICAgIFdl
YWtQdHJGYWN0b3J5PEhUTUxQaWN0dXJlRWxlbWVudD4gbV93ZWFrRmFjdG9yeSB7IHRoaXMgfTsK
KyAgICBXZWFrUHRyRmFjdG9yeTxIVE1MUGljdHVyZUVsZW1lbnQ+IG1fd2Vha0ZhY3Rvcnk7CiAg
ICAgVmVjdG9yPE1lZGlhUXVlcnlSZXN1bHQ+IG1fdmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJ5
UmVzdWx0czsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxSZXNvdXJjZVByZWxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFJl
c291cmNlUHJlbG9hZGVyLmgKaW5kZXggY2QxMGY4NWRlOTEwNGE1MGE5NGQ1ZGJlOGMzMTM5NzM4
MGU5NGQ4Yy4uYWEyYzc4MmRlMDU4MzdmNTIyODYzOWY5NmIwODMyZTMzYjVjY2FiMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFJlc291cmNlUHJlbG9hZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFJlc291cmNlUHJlbG9hZGVyLmgK
QEAgLTc3LDE0ICs3NywxMyBAQCBjbGFzcyBIVE1MUmVzb3VyY2VQcmVsb2FkZXIgewogcHVibGlj
OgogICAgIGV4cGxpY2l0IEhUTUxSZXNvdXJjZVByZWxvYWRlcihEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKLSAgICAgICAgLCBtX3dlYWtGYWN0b3J5
KHRoaXMpCiAgICAgewogICAgIH0KIAogICAgIHZvaWQgcHJlbG9hZChQcmVsb2FkUmVxdWVzdFN0
cmVhbSk7CiAgICAgdm9pZCBwcmVsb2FkKHN0ZDo6dW5pcXVlX3B0cjxQcmVsb2FkUmVxdWVzdD4p
OwogCi0gICAgV2Vha1B0cjxIVE1MUmVzb3VyY2VQcmVsb2FkZXI+IGNyZWF0ZVdlYWtQdHIoKSB7
IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8SFRN
TFJlc291cmNlUHJlbG9hZGVyPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9y
eS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiBwcml2YXRlOgogICAgIERvY3VtZW50JiBtX2Rv
Y3VtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCmluZGV4IDcyNzk1YjBlMDNl
MjcxZDRlZGFiYzYwMjQ2NTI0NTVkMWZjYzgwNmUuLjJiMTYxMzI2NDMwYzEwZDU5MjQyOGQxNWI0
ODc3MmJlZjZhNjkwM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKQEAgLTU3
LDcgKzU3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBMaW5rTG9hZGVyOjpMaW5rTG9hZGVy
KExpbmtMb2FkZXJDbGllbnQmIGNsaWVudCkKICAgICA6IG1fY2xpZW50KGNsaWVudCkKLSAgICAs
IG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0xpbmtMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVy
LmgKaW5kZXggZGUzYWVhNzVkMjRlZjY3NTVhZDJhZDUzODhiZDZhZmQyMzg4NGIxNC4uMTc1NWY2
MTE2MTdkZWNkMzBlY2ZkNjBiYzQ4YjNiMjAyMTZkZDI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlu
a0xvYWRlci5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBsb2Fk
TGlua3NGcm9tSGVhZGVyKGNvbnN0IFN0cmluZyYgaGVhZGVyVmFsdWUsIGNvbnN0IFVSTCYgYmFz
ZVVSTCwgRG9jdW1lbnQmLCBNZWRpYUF0dHJpYnV0ZUNoZWNrKTsKICAgICBzdGF0aWMgYm9vbCBp
c1N1cHBvcnRlZFR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUpOwogCi0gICAgV2Vha1B0cjxMaW5rTG9hZGVyPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4g
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPExpbmtMb2Fk
ZXI+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKnRoaXMpOyB9CiAgICAgdm9pZCB0cmlnZ2VyRXZlbnRzKGNvbnN0IENhY2hlZFJlc291cmNl
Jik7CiAgICAgdm9pZCBjYW5jZWxMb2FkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9N
ZWRpYVJlc291cmNlTG9hZGVyLmNwcAppbmRleCBjNDA3YTdjZjU5MDA4ZDc0MzAzY2IyODU1MTI3
ZTQ1Y2Q2YWQ5NGZiLi5iMmUxNjA1NmZjNzA4ZmIzYTgxNWZjODA0NjRlMTI5NzZkYTQ3OTA1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC00
NSw3ICs0NSw2IEBAIE1lZGlhUmVzb3VyY2VMb2FkZXI6Ok1lZGlhUmVzb3VyY2VMb2FkZXIoRG9j
dW1lbnQmIGRvY3VtZW50LCBIVE1MTWVkaWFFbGVtZW50JiBtCiAgICAgLCBtX2RvY3VtZW50KCZk
b2N1bWVudCkKICAgICAsIG1fbWVkaWFFbGVtZW50KG1lZGlhRWxlbWVudC5jcmVhdGVXZWFrUHRy
KCkpCiAgICAgLCBtX2Nyb3NzT3JpZ2luTW9kZShjcm9zc09yaWdpbk1vZGUpCi0gICAgLCBtX3dl
YWtGYWN0b3J5KHRoaXMpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9NZWRpYVJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNv
dXJjZUxvYWRlci5oCmluZGV4IDVhMTBiZjNjNjk4NGE0YWMzMTM5NmFkOTA1Y2Y0OTEyOTJmMTNh
ZmMuLmIwMDRiN2FkMWQxOGFlNzcxZDcyYWQ4ODIzNzQ5ZDMyNTM3MTI2MjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuaApAQCAtNTgsNyArNTgsNyBAQCBw
dWJsaWM6CiAgICAgVmVjdG9yPFJlc291cmNlUmVzcG9uc2U+IHJlc3BvbnNlc0ZvclRlc3Rpbmco
KSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlc0ZvclRlc3Rpbmc7IH0KICAgICB2b2lkIGFkZFJl
c3BvbnNlRm9yVGVzdGluZyhjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAKLSAgICBXZWFrUHRy
PGNvbnN0IE1lZGlhUmVzb3VyY2VMb2FkZXI+IGNyZWF0ZVdlYWtQdHIoKSBjb25zdCB7IHJldHVy
biBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8Y29uc3QgTWVk
aWFSZXNvdXJjZUxvYWRlcj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogcHJpdmF0ZToKICAgICB2b2lkIGNvbnRleHREZXN0
cm95ZWQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA5MmY1Yjkw
NWNlMTBhOTRlMDgyZmQ2NjUyY2U2MTk3MGJlMWE4YjJhLi44N2JhOWQ4ZDdhNGU3MDQ4YzI2NTA1
YjViNTlhYTJhOWVjNTA1NGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0zOTQs
NyArMzk0LDYgQEAgdm9pZCBET01XaW5kb3c6OnNldENhblNob3dNb2RhbERpYWxvZ092ZXJyaWRl
KGJvb2wgYWxsb3cpCiBET01XaW5kb3c6OkRPTVdpbmRvdyhEb2N1bWVudCYgZG9jdW1lbnQpCiAg
ICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmZG9jdW1lbnQpCiAgICAgLCBGcmFtZURl
c3RydWN0aW9uT2JzZXJ2ZXIoZG9jdW1lbnQuZnJhbWUoKSkKLSAgICAsIG1fd2Vha1B0ckZhY3Rv
cnkodGhpcykKIHsKICAgICBBU1NFUlQoZnJhbWUoKSk7CiAgICAgYWRkTGFuZ3VhZ2VDaGFuZ2VP
YnNlcnZlcih0aGlzLCAmbGFuZ3VhZ2VzQ2hhbmdlZENhbGxiYWNrKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5oCmluZGV4IGFiMzI3YmRkMzIxOWIzMTQyNmNhYTg5ZmYxMGU5N2FkZGY3NGNkY2QuLmQ2
ZDRkMTg0OTQ4NmMxZjFjMjliNTk5ZDAxMGM3OGUyNTEzODM2YmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaApAQCAtMzI1LDcgKzMyNSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuYWJsZVN1ZGRl
blRlcm1pbmF0aW9uKCk7CiAgICAgdm9pZCBkaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKTsKIAot
ICAgIFdlYWtQdHI8RE9NV2luZG93PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPERPTVdpbmRvdz4gY3JlYXRl
V2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7
IH0KIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBET01XaW5kb3coRG9jdW1lbnQmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5jcHAKaW5kZXggMGE2NTUyMDZi
NTA4MGQ2OGQ5OGEyNDMyNGVkZTA3MTQ0MzhlZDkzMS4uYWIwODg2MmQzZGU2OWRhMjkxMzUxZDky
ZjYzYTY0YTIzNzhjZjlkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2Vu
ZXJpY1Rhc2tRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VuZXJpY1Rh
c2tRdWV1ZS5jcHAKQEAgLTMyLDE0ICszMiwxMyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBU
YXNrRGlzcGF0Y2hlcjxUaW1lcj46OlRhc2tEaXNwYXRjaGVyKCkKLSAgICA6IG1fd2Vha1B0ckZh
Y3RvcnkodGhpcykKIHsKIH0KIAogdm9pZCBUYXNrRGlzcGF0Y2hlcjxUaW1lcj46OnBvc3RUYXNr
KEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKIHsKICAgICBtX3BlbmRpbmdUYXNrcy5hcHBl
bmQoV1RGTW92ZShmdW5jdGlvbikpOwotICAgIHBlbmRpbmdEaXNwYXRjaGVycygpLmFwcGVuZCht
X3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKSk7CisgICAgcGVuZGluZ0Rpc3BhdGNoZXJz
KCkuYXBwZW5kKG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcykpOwogICAgIGlm
ICghc2hhcmVkVGltZXIoKS5pc0FjdGl2ZSgpKQogICAgICAgICBzaGFyZWRUaW1lcigpLnN0YXJ0
T25lU2hvdCgwX3MpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2Vu
ZXJpY1Rhc2tRdWV1ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1
ZS5oCmluZGV4IDVkNjQ5OGMyZTljY2ZmYWM3NWQwNzAzYjBhZTJhZjZhYjhjNTFlMjcuLjAyYzBh
YjljMmM3Zjg5ZjdjODZhNjcxMGQ2NzliZDAxYmI5OWU4ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmgKQEAgLTcwLDE0ICs3MCwxMiBAQCB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KIGNsYXNzIEdlbmVyaWNUYXNrUXVldWUgewogcHVibGljOgogICAgIEdlbmVy
aWNUYXNrUXVldWUoKQotICAgICAgICA6IG1fd2Vha1B0ckZhY3RvcnkodGhpcykKLSAgICAgICAg
LCBtX2Rpc3BhdGNoZXIoKQorICAgICAgICA6IG1fZGlzcGF0Y2hlcigpCiAgICAgewogICAgIH0K
IAogICAgIEdlbmVyaWNUYXNrUXVldWUoVCYgdCkKLSAgICAgICAgOiBtX3dlYWtQdHJGYWN0b3J5
KHRoaXMpCi0gICAgICAgICwgbV9kaXNwYXRjaGVyKHQpCisgICAgICAgIDogbV9kaXNwYXRjaGVy
KHQpCiAgICAgewogICAgIH0KIApAQCAtODksNyArODcsNyBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgKyttX3BlbmRpbmdUYXNrczsKLSAgICAgICAgYXV0byB3ZWFr
VGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAgICAgICBhdXRvIHdl
YWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsKICAgICAgICAg
bV9kaXNwYXRjaGVyLnBvc3RUYXNrKFt3ZWFrVGhpcywgdGFzayA9IFdURk1vdmUodGFzayldIHsK
ICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggNGI4MjBmZTJlZGQxMThm
ZTAyYjU4MTgwOWU2MWIwMmRiMWU3OGVhZS4uMTRiNjU2MWM1ZmYxMzNlMDExZWFjZjIzYTE3N2Nj
ZmI3N2Q2ZTFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJs
ZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBA
IC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFuZGxl
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKIAotICAgIFdlYWtQdHI8U2Ny
b2xsYWJsZUFyZWE+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+IGNyZWF0ZVdlYWtQ
dHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAK
ICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IFZl
Y3RvcjxMYXlvdXRVbml0PiogaG9yaXpvbnRhbFNuYXBPZmZzZXRzKCkgY29uc3Q7CkBAIC0zNTQs
NyArMzU0LDcgQEAgcHJpdmF0ZToKIAogICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPFNjcm9s
bEFuaW1hdG9yPiBtX3Njcm9sbEFuaW1hdG9yOwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8U2Nyb2xs
YWJsZUFyZWE+IG1fd2Vha1B0ckZhY3RvcnkgeyB0aGlzIH07CisgICAgV2Vha1B0ckZhY3Rvcnk8
U2Nyb2xsYWJsZUFyZWE+IG1fd2Vha1B0ckZhY3Rvcnk7CiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9M
TF9TTkFQKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxTbmFwT2Zmc2V0c0luZm88TGF5b3V0
VW5pdD4+IG1fc25hcE9mZnNldHNJbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsYmFyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5j
cHAKaW5kZXggMDUwZDRkOTliZTA2NjUxMWFjMTM1NmI3Yzg1YWRhOGQxN2Y0ZDhmNS4uOWVlOTM4
MTI2YWQ0NTUwOGYwNDVmNGI1OTliMTUyZGZiMWJkOGEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxiYXIuY3BwCkBAIC03Nyw3ICs3Nyw2IEBAIFNjcm9sbGJhcjo6U2Nyb2xsYmFyKFNj
cm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50
CiAgICAgLCBtX3N1cHByZXNzSW52YWxpZGF0aW9uKGZhbHNlKQogICAgICwgbV9pc0FscGhhTG9j
a2VkKGZhbHNlKQogICAgICwgbV9pc0N1c3RvbVNjcm9sbGJhcihpc0N1c3RvbVNjcm9sbGJhcikK
LSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKICAgICB0aGVtZSgpLnJlZ2lzdGVyU2Ny
b2xsYmFyKCp0aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsYmFyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuaAppbmRleCBlMjU2
MDgxYjc1N2YxMDlhZjQyZjljYzg4ZTVmNzg0NjQ5MWMwMzEzLi4xYTg2YmYzMzI1YmNiNzMxNzgx
N2U2N2RhZDExMTJiNGRjYTAyZWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxiYXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuaApA
QCAtMTMzLDcgKzEzMyw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgc3VwcG9ydHNVcGRhdGVPblNl
Y29uZGFyeVRocmVhZCgpIGNvbnN0OwogCi0gICAgV2Vha1B0cjxTY3JvbGxiYXI+IGNyZWF0ZVdl
YWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAg
IFdlYWtQdHI8U2Nyb2xsYmFyPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsYmFy
KFNjcm9sbGFibGVBcmVhJiwgU2Nyb2xsYmFyT3JpZW50YXRpb24sIFNjcm9sbGJhckNvbnRyb2xT
aXplLCBTY3JvbGxiYXJUaGVtZSogPSAwLCBib29sIGlzQ3VzdG9tU2Nyb2xsYmFyID0gZmFsc2Up
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAppbmRleCA3MTBlZjdiNjRkMzEwZjJiNmM0MzdkYThh
OGJkNzJhNGZlZmQ5NmZhLi5iNWM2NzRhZjFiOWU1MmE5NTNlOWUxYTk5ODc5ZTg1Nzg4Yjc5Nzk1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaApAQCAtMTkzLDcgKzE5Myw3IEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEludFBvaW50IGNvbnZlcnRUb0NvbnRhaW5pbmdW
aWV3KGNvbnN0IEludFBvaW50JikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBJ
bnRQb2ludCBjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3KGNvbnN0IEludFBvaW50JikgY29uc3Q7
CiAKLSAgICBXZWFrUHRyPFdpZGdldD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0
ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxXaWRnZXQ+IGNyZWF0ZVdl
YWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9
CiAKIHByaXZhdGU6CiAgICAgdm9pZCBpbml0KFBsYXRmb3JtV2lkZ2V0KTsgLy8gTXVzdCBiZSBj
YWxsZWQgYnkgYWxsIFdpZGdldCBjb25zdHJ1Y3RvcnMgdG8gaW5pdGlhbGl6ZSBjcm9zcy1wbGF0
Zm9ybSBkYXRhLgpAQCAtMjE2LDcgKzIxNiw3IEBAIHByaXZhdGU6CiAjZWxzZQogICAgIFJldGFp
blB0cjxOU1ZpZXc+IG1fd2lkZ2V0OwogI2VuZGlmCi0gICAgV2Vha1B0ckZhY3Rvcnk8V2lkZ2V0
PiBtX3dlYWtQdHJGYWN0b3J5IHsgdGhpcyB9OworICAgIFdlYWtQdHJGYWN0b3J5PFdpZGdldD4g
bV93ZWFrUHRyRmFjdG9yeTsKICAgICBib29sIG1fc2VsZlZpc2libGU7CiAgICAgYm9vbCBtX3Bh
cmVudFZpc2libGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L21hYy9BdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHAKaW5kZXggMGI0NGY1OTIx
MzU3YTQ2MmUzNTE5ZGNhMmJmNGU1NGZlYmUyNTYzOC4uZGJiZGM5ZjBhOTdmNWJhNDkwY2Y1MDFk
YjMzYzIyNDUzZDc5ODc4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHAKQEAgLTEyMSwx
MiArMTIxLDExIEBAIFJlZjxBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWM+IEF1ZGlvSGFyZHdhcmVM
aXN0ZW5lck1hYzo6Y3JlYXRlKENsaWVudCYgY2xpZW50KQogCiBBdWRpb0hhcmR3YXJlTGlzdGVu
ZXJNYWM6OkF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYyhDbGllbnQmIGNsaWVudCkKICAgICA6IEF1
ZGlvSGFyZHdhcmVMaXN0ZW5lcihjbGllbnQpCi0gICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCiB7
CiAgICAgc2V0SGFyZHdhcmVBY3Rpdml0eShpc0F1ZGlvSGFyZHdhcmVQcm9jZXNzUnVubmluZygp
KTsKICAgICBzZXRPdXRwdXREZXZpY2VTdXBwb3J0c0xvd1Bvd2VyTW9kZShjdXJyZW50RGV2aWNl
U3VwcG9ydHNMb3dQb3dlckJ1ZmZlclNpemUoKSk7CiAKLSAgICBhdXRvIHdlYWtUaGlzID0gbV93
ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha0Zh
Y3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiAgICAgbV9ibG9jayA9IEJsb2NrX2NvcHkoXihV
SW50MzIgY291bnQsIGNvbnN0IEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzIHByb3BlcnRpZXNb
XSkgewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+cHJvcGVy
dHlDaGFuZ2VkKGNvdW50LCBwcm9wZXJ0aWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcAppbmRleCA5MWQyNDNlMWM4ODMxODFjYjcyM2Vj
MmY1NjI1N2MwNWZmNzQyYmE4Li4wNWYzOTE3MDBiOWE2MjAwYTgxOTI1M2FkNGEyMWNiM2YxYTBk
NzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2Fz
Y2FkZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2Nh
ZGUuY3BwCkBAIC03OCwxMyArNzgsMTEgQEAgRm9udENhc2NhZGU6OkNvZGVQYXRoIEZvbnRDYXNj
YWRlOjpzX2NvZGVQYXRoID0gQXV0bzsKIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CiAKIEZvbnRDYXNjYWRlOjpGb250Q2FzY2FkZSgpCi0gICAgOiBtX3dlYWtQdHJGYWN0
b3J5KHRoaXMpCiB7CiB9CiAKIEZvbnRDYXNjYWRlOjpGb250Q2FzY2FkZShjb25zdCBGb250Q2Fz
Y2FkZURlc2NyaXB0aW9uJiBmZCwgZmxvYXQgbGV0dGVyU3BhY2luZywgZmxvYXQgd29yZFNwYWNp
bmcpCiAgICAgOiBtX2ZvbnREZXNjcmlwdGlvbihmZCkKLSAgICAsIG1fd2Vha1B0ckZhY3Rvcnko
dGhpcykKICAgICAsIG1fbGV0dGVyU3BhY2luZyhsZXR0ZXJTcGFjaW5nKQogICAgICwgbV93b3Jk
U3BhY2luZyh3b3JkU3BhY2luZykKICAgICAsIG1fdXNlQmFja3NsYXNoQXNZZW5TeW1ib2wodXNl
QmFja3NsYXNoQXNZZW5TaWduRm9yRmFtaWx5KGZkLmZpcnN0RmFtaWx5KCkpKQpAQCAtOTYsNyAr
OTQsNiBAQCBGb250Q2FzY2FkZTo6Rm9udENhc2NhZGUoY29uc3QgRm9udENhc2NhZGVEZXNjcmlw
dGlvbiYgZmQsIGZsb2F0IGxldHRlclNwYWNpbmcsCiAvLyBGSVhNRTogV2Ugc2hvdWxkIG1ha2Ug
dGhpcyBjb25zdHJ1Y3RvciBwbGF0Zm9ybS1pbmRlcGVuZGVudC4KIEZvbnRDYXNjYWRlOjpGb250
Q2FzY2FkZShjb25zdCBGb250UGxhdGZvcm1EYXRhJiBmb250RGF0YSwgRm9udFNtb290aGluZ01v
ZGUgZm9udFNtb290aGluZ01vZGUpCiAgICAgOiBtX2ZvbnRzKEZvbnRDYXNjYWRlRm9udHM6OmNy
ZWF0ZUZvclBsYXRmb3JtRm9udChmb250RGF0YSkpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRo
aXMpCiAgICAgLCBtX2VuYWJsZUtlcm5pbmcoY29tcHV0ZUVuYWJsZUtlcm5pbmcoKSkKICAgICAs
IG1fcmVxdWlyZXNTaGFwaW5nKGNvbXB1dGVSZXF1aXJlc1NoYXBpbmcoKSkKIHsKQEAgLTExMiw3
ICsxMDksNiBAQCBGb250Q2FzY2FkZTo6Rm9udENhc2NhZGUoY29uc3QgRm9udFBsYXRmb3JtRGF0
YSYgZm9udERhdGEsIEZvbnRTbW9vdGhpbmdNb2RlIGZvbgogRm9udENhc2NhZGU6OkZvbnRDYXNj
YWRlKGNvbnN0IEZvbnRDYXNjYWRlJiBvdGhlcikKICAgICA6IG1fZm9udERlc2NyaXB0aW9uKG90
aGVyLm1fZm9udERlc2NyaXB0aW9uKQogICAgICwgbV9mb250cyhvdGhlci5tX2ZvbnRzKQotICAg
ICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogICAgICwgbV9sZXR0ZXJTcGFjaW5nKG90aGVyLm1f
bGV0dGVyU3BhY2luZykKICAgICAsIG1fd29yZFNwYWNpbmcob3RoZXIubV93b3JkU3BhY2luZykK
ICAgICAsIG1fdXNlQmFja3NsYXNoQXNZZW5TeW1ib2wob3RoZXIubV91c2VCYWNrc2xhc2hBc1ll
blN5bWJvbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYXNjYWRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2Fk
ZS5oCmluZGV4IGEzYjFmZmViNWJhYjM0NzQ5MGExYjUwM2FkYWExZmYxNTUyNTMzZWQuLmE0NDY5
OTkyYWE1OGUwMzQ1N2RmNTliYTgyYTMwZjEzNjVjMmUzNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaApAQCAtMTk1LDcgKzE5NSw3IEBAIHB1
YmxpYzoKIAogICAgIGJvb2wgcHJpbWFyeUZvbnRJc1N5c3RlbUZvbnQoKSBjb25zdDsKIAotICAg
IFdlYWtQdHI8Rm9udENhc2NhZGU+IGNyZWF0ZVdlYWtQdHIoKSBjb25zdCB7IHJldHVybiBtX3dl
YWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8Rm9udENhc2NhZGU+
IGNyZWF0ZVdlYWtQdHIoKSBjb25zdCB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKmNvbnN0X2Nhc3Q8Rm9udENhc2NhZGUqPih0aGlzKSk7IH0KIAogcHJpdmF0ZToKICAg
ICBlbnVtIEZvclRleHRFbXBoYXNpc09yTm90IHsgTm90Rm9yVGV4dEVtcGhhc2lzLCBGb3JUZXh0
RW1waGFzaXMgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5jcHAKaW5kZXggMTYzNWU5OWJjMjU0MDcyM2MwNWI4ZmZmNzAxYWMxNGJk
YzEyZjU5OC4uZDQyOWRiNTU2MDVjYzU3NTBiYjliNDM1ZDQ2NzU0ZGEzNTllMDg5OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5j
cHAKQEAgLTU1LDcgKzU1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbihNZWRpYVBs
YXllciogcGxheWVyKQogICAgIDogbV9wbGF5ZXIocGxheWVyKQotICAgICwgbV93ZWFrUHRyRmFj
dG9yeSh0aGlzKQogICAgICwgbV9xdWV1ZWROb3RpZmljYXRpb25zKCkKICAgICAsIG1fcXVldWVN
dXRleCgpCiAgICAgLCBtX25ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6RW1wdHkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXgg
MzdlM2JlOWNjZTNkMWY3NzdkZjU4NWQyZDgwZWUyYTM0NDgwODViNC4uNWU0ODUyNWI3N2RlZjVk
NzViNzFlMjk2NGVjZjkyMDA2Yzc2ZjlhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaApAQCAtMTYzLDcgKzE2Myw3IEBAIHByb3Rl
Y3RlZDoKICAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oTWVkaWFQ
bGF5ZXIqKTsKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oKTsK
IAotICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uPiBjcmVhdGVXZWFr
UHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBX
ZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbj4gY3JlYXRlV2Vha1B0cigpIHsg
cmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogICAgIC8v
IE1lZGlhUGxheWVyUHJpdmF0ZVByaXZhdGVJbnRlcmZhY2Ugb3ZlcnJpZGVzLgogICAgIHZvaWQg
bG9hZChjb25zdCBTdHJpbmcmIHVybCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3Vu
ZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMuaAppbmRleCBiYmMwNWQ1MDdmNDI1
NjY3OWZiN2Q3YmNmNzIwZDg1MjZjMWFjMzcxLi4yNWQwYTZlZTE5YzNiYzRmZDlhYjc0NGYzMjM1
MTQwZGNmZDZmY2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Np
b25BVkZvdW5kYXRpb25PYmpDLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBwbGF5ZXJEaWRSZWNlaXZlRXJyb3IoTlNFcnJvciAqKTsKIAotICAgIFdlYWtQdHI8Q0RNU2Vz
c2lvbkFWRm91bmRhdGlvbk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8Q0RNU2Vzc2lvbkFWRm91bmRh
dGlvbk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0
ZVdlYWtQdHIoKnRoaXMpOyB9CiAKIHByb3RlY3RlZDoKICAgICBXZWFrUHRyPE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM+IG1fcGFyZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91
bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA3NGMzMTMzNzM0
NjIyYzc3MGY0ODFkNzU3NGU1NWJhYTY0N2YwZDUxLi5iYmNkNWQzMDUwY2YzNDc3NmE4OTJmMTU5
ZTkxOWJiYTMyMjU2MWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1T
ZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtNTMsNyArNTMsNiBAQCBDRE1TZXNzaW9uQVZG
b3VuZGF0aW9uT2JqQzo6Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZAogICAgIDogbV9wYXJlbnQocGFyZW50LT5jcmVhdGVXZWFrUHRyKCkpCiAgICAg
LCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX3Nlc3Npb25JZChjcmVhdGVDYW5vbmljYWxVVUlE
U3RyaW5nKCkpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NE
TVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tCmluZGV4
IGNkODI4YjM1MzU3MTk1MmYyYjJjNDg1Y2VhZjIxNjZhZWU5ZmI0Y2EuLjlmYTc2MWViOWM1ZmYz
NTFkNjY5YTc2MWFhMDRmZjI4OGVlYWJlYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Np
b24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5tbQpAQCAtODksNyArODksNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIENETVNlc3Npb25BVlN0cmVhbVNlc3Npb246OkNETVNlc3Npb25B
VlN0cmVhbVNlc3Npb24oY29uc3QgVmVjdG9yPGludD4mIHByb3RvY29sVmVyc2lvbnMsIENETVBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMmIGNkbSwgQ0RNU2Vzc2lvbkNsaWVudCogY2xpZW50KQog
ICAgIDogQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQyhjZG0sIGNsaWVudCkKLSAgICAsIG1f
d2Vha1B0ckZhY3RvcnkodGhpcykKICAgICAsIG1fZGF0YVBhcnNlck9ic2VydmVyKGFkb3B0TlMo
W1tXZWJDRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uT2JzZXJ2ZXIgYWxsb2NdIGluaXRXaXRoUGFy
ZW50OnRoaXNdKSkKICAgICAsIG1fcHJvdG9jb2xWZXJzaW9ucyhwcm90b2NvbFZlcnNpb25zKQog
ICAgICwgbV9tb2RlKE5vcm1hbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCA2MjU1ZjQ5M2Yy
Y2QyZjE1NjBiYjZmMTU5OTQyZmZjZTNmNzcwMWU3Li40OWE3MWFhYjJmMDMzNDgwN2JlYmIyNTM0
NjVlODk2ZmEwOWJlZGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0xNTgsNyArMTU4LDcg
QEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlU2Vzc2lvbihDRE1TZXNzaW9uJik7CiAjZW5kaWYK
IAotICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQz4gY3JlYXRl
V2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9Cisg
ICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDPiBjcmVhdGVXZWFr
UHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQog
CiBwcml2YXRlOgogICAgIC8vIGVuZ2luZSBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpp
bmRleCA2YTNlZGExYTUwMWY1OTk1ZjFlNDRlZDIxNGQ1YjU2NTRmYmMxZDRlLi44MTRjZmI2M2I3
OGFkMmQzODM5NWJjZDI2ZTBlZGMyODc2ZDU1OTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0K
QEAgLTU0MSw3ICs1NDEsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OmNsZWFyTWVkaWFDYWNoZUZvck9yaWdpbnMoY29uc3QgU3RyaW5nJgogCiBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgOiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb24ocGxheWVyKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogI2lmIFBMQVRGT1JN
KElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RF
KSkKICAgICAsIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyKFZpZGVvRnVsbHNjcmVlbkxh
eWVyTWFuYWdlcjo6Y3JlYXRlKCkpCiAgICAgLCBtX3ZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoTWVk
aWFQbGF5ZXI6OlZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
LmgKaW5kZXggOGQzOGVkMWRhNjdlM2IwOWUyODIwZjVkMjM5ZDIzODc0YmJkODU1Ni4uMWIxYjk3
MTNmNDA5ZDk4YjUyYjg4MzMxYTQyYzUxOWRmN2FlM2RlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLmgKQEAgLTEzMCw3ICsxMzAsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgVmVjdG9yPENvbnRl
bnRUeXBlPiYgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25z
dDsKICAgICBib29sIHNob3VsZENoZWNrSGFyZHdhcmVTdXBwb3J0KCkgY29uc3Q7CiAKLSAgICBX
ZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQz4gY3JlYXRlV2Vha1B0
cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vh
a1B0cjxNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIo
KSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKIHBy
aXZhdGU6CiAgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMubW0KaW5kZXggNWM2NzExOTdlMmI3OWQ5N2VhZTI5ZWFiYjI3MDBlNTdjZDU5ZDJj
ZS4uYzNiM2M3ZmM5NDlmYTkyMWEyZWVjNDU4ZDNmZDRhNmJhOTUyODRmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5tbQpAQCAtMTI1LDggKzEyNSw2IEBAIHN0YXRpYyB2b2lkIENNVGltZWJh
c2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENhbGxiYWNrKENNTm90aWZpY2F0aW9uQ2VudGVyUmVmLCBj
b25zCiAKIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgOiBtX3Bs
YXllcihwbGF5ZXIpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0gICAgLCBtX3NpemVD
aGFuZ2VPYnNlcnZlcldlYWtQdHJGYWN0b3J5KHRoaXMpCiAgICAgLCBtX3N5bmNocm9uaXplcihh
ZG9wdE5TKFthbGxvY0FWU2FtcGxlQnVmZmVyUmVuZGVyU3luY2hyb25pemVySW5zdGFuY2UoKSBp
bml0XSkpCiAgICAgLCBtX3NlZWtUaW1lcigqdGhpcywgJk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6c2Vla0ludGVybmFsKQogICAgICwgbV9zZXNzaW9uKG51bGxwdHIpCkBA
IC04OTAsNyArODg4LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OmVmZmVjdGl2ZVJhdGVDaGFuZ2VkKCkKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnNpemVXaWxsQ2hhbmdlQXRUaW1lKGNvbnN0IE1lZGlhVGltZSYgdGlt
ZSwgY29uc3QgRmxvYXRTaXplJiBzaXplKQogewotICAgIGF1dG8gd2Vha1RoaXMgPSBtX3NpemVD
aGFuZ2VPYnNlcnZlcldlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBhdXRvIHdl
YWtUaGlzID0gbV9zaXplQ2hhbmdlT2JzZXJ2ZXJXZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCp0aGlzKTsKICAgICBOU0FycmF5KiB0aW1lcyA9IEBbW05TVmFsdWUgdmFsdWVXaXRoQ01UaW1l
OlBBTDo6dG9DTVRpbWUodGltZSldXTsKICAgICBSZXRhaW5QdHI8aWQ+IG9ic2VydmVyID0gW21f
c3luY2hyb25pemVyIGFkZEJvdW5kYXJ5VGltZU9ic2VydmVyRm9yVGltZXM6dGltZXMgcXVldWU6
ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOlt0aGlzLCB3ZWFrVGhpcywgc2l6
ZV0gewogICAgICAgICBpZiAoIXdlYWtUaGlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAppbmRl
eCBlMTcwZmY4ZDBiN2Y2ZjE2MjFiMDhhNzlhOWYxOGUwOWEyMDA4YmVhLi5jMTUxYzcyNTFmMjZl
OTAxZWJiZDU1Mjk1Yjg3ZDAxZTU1ZjVlNWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApA
QCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVh
ZHlTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBs
YXllcjo6UmVhZHlTdGF0ZSk7CiAKLSAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKICAgICB2b2lkIGVuc3VyZUxheWVycygpOwogICAgIHZv
aWQgZGVzdHJveUxheWVycygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IDkwNTVk
YmY5YmQ4YzAxMTViNjQ2ZDlhM2U4ZWM5YThjNmE3ODVhMjYuLjFjZDQ3MDkxNzBlYjE2ODA1ZmU3
ZDQzNzNlYmVlMzNmMmViODEwY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTE4
OCw3ICsxODgsNiBAQCBzdGF0aWMgY29uc3QgZG91YmxlIHJlbmRlcmVyTGF0ZW5jeSA9IDAuMDI7
CiAKIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgOiBtX3BsYXll
cihwbGF5ZXIpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiAgICAgLCBtX3N0YXR1c0No
YW5nZUxpc3RlbmVyKGFkb3B0TlMoW1tXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3Rl
bmVyIGFsbG9jXSBpbml0V2l0aFBhcmVudDp0aGlzXSkpCiAgICAgLCBtX2Nsb2NrKENsb2NrOjpj
cmVhdGUoKSkKICNpZiBQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShW
SURFT19QUkVTRU5UQVRJT05fTU9ERSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaAppbmRleCBmMWQxNmVmYmFiZWM2NTVjYzllM2Jj
MzFlYzBjZWYwY2E0Y2RlMzRlLi5hYzlkYWZiMzE5NDkyZjY5OTAxODk3ZDlmYzU3NjE2Mjc0NjA3
Njg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDLmgKQEAgLTE1Myw3ICsxNTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZmx1c2go
QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICopOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAogCi0gICAgV2Vha1B0cjxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQz4gY3JlYXRlV2Vh
a1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vh
a1B0cjxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJu
IG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogICAgIFZlY3RvcjxSZWZQ
dHI8VmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM+PiBtX3ZpZGVvVHJhY2tzOwog
ICAgIFZlY3RvcjxSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM+PiBt
X2F1ZGlvVHJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQy5tbQppbmRleCBjYjZiMzUyYTZkM2E1NWNkMWZhNzI1Y2E4MGYzMjM4
NDljNmNiOTlmLi5hZWI5NDNhNTcwOWFlOTFmODQ3NWYyMTA4ZTk5MWMxYTA1MzAzYTFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5tbQpAQCAtNDc5LDkgKzQ3OSw3IEBAIFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qz4gU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmNyZWF0ZShNZWRpYVNvdXJjCiB9CiAKIFNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyhNZWRp
YVNvdXJjZVByaXZhdGVBVkZPYmpDKiBwYXJlbnQpCi0gICAgOiBtX3dlYWtGYWN0b3J5KHRoaXMp
Ci0gICAgLCBtX2FwcGVuZFdlYWtGYWN0b3J5KHRoaXMpCi0gICAgLCBtX3BhcnNlcihhZG9wdE5T
KFthbGxvY0FWU3RyZWFtRGF0YVBhcnNlckluc3RhbmNlKCkgaW5pdF0pKQorICAgIDogbV9wYXJz
ZXIoYWRvcHROUyhbYWxsb2NBVlN0cmVhbURhdGFQYXJzZXJJbnN0YW5jZSgpIGluaXRdKSkKICAg
ICAsIG1fZGVsZWdhdGUoYWRvcHROUyhbW1dlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyIGFs
bG9jXSBpbml0V2l0aFBhcnNlcjptX3BhcnNlci5nZXQoKSBwYXJlbnQ6Y3JlYXRlV2Vha1B0cigp
XSkpCiAgICAgLCBtX2Vycm9yTGlzdGVuZXIoYWRvcHROUyhbW1dlYkFWU2FtcGxlQnVmZmVyRXJy
b3JMaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhQYXJlbnQ6dGhpc10pKQogICAgICwgbV9pc0FwcGVu
ZGluZ0dyb3VwKGFkb3B0T1NPYmplY3QoZGlzcGF0Y2hfZ3JvdXBfY3JlYXRlKCkpKQpAQCAtNjc1
LDcgKzY3Myw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFwcGVuZChjb25z
dCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5nCiAgICAgTE9HKE1lZGlhU291cmNl
LCAiU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFwcGVuZCglcCkgLSBkYXRhOiVwLCBsZW5n
dGg6JWQiLCB0aGlzLCBkYXRhLCBsZW5ndGgpOwogCiAgICAgUmV0YWluUHRyPE5TRGF0YT4gbnNE
YXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczpkYXRhIGxlbmd0aDps
ZW5ndGhdKTsKLSAgICBXZWFrUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDPiB3ZWFrVGhp
cyA9IG1fYXBwZW5kV2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAgIFdlYWtQdHI8U291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+IHdlYWtUaGlzID0gbV9hcHBlbmRXZWFrRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCp0aGlzKTsKICAgICBSZXRhaW5QdHI8QVZTdHJlYW1EYXRhUGFyc2VyPiBw
YXJzZXIgPSBtX3BhcnNlcjsKICAgICBSZXRhaW5QdHI8V2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlz
dGVuZXI+IGRlbGVnYXRlID0gbV9kZWxlZ2F0ZTsKIApAQCAtNzE1LDcgKzcxMyw3IEBAIHZvaWQg
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFib3J0KCkKICAgICAgICAgZGlzcGF0Y2hfc2Vt
YXBob3JlX3NpZ25hbChtX2hhc1Nlc3Npb25TZW1hcGhvcmUuZ2V0KCkpOwogICAgIGRpc3BhdGNo
X2dyb3VwX3dhaXQobV9pc0FwcGVuZGluZ0dyb3VwLmdldCgpLCBESVNQQVRDSF9USU1FX0ZPUkVW
RVIpOwogICAgIG1fYXBwZW5kV2Vha0ZhY3RvcnkucmV2b2tlQWxsKCk7Ci0gICAgbV9kZWxlZ2F0
ZS5nZXQoKS5wYXJlbnQgPSBtX2FwcGVuZFdlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAg
ICBtX2RlbGVnYXRlLmdldCgpLnBhcmVudCA9IG1fYXBwZW5kV2Vha0ZhY3RvcnkuY3JlYXRlV2Vh
a1B0cigqdGhpcyk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnJlc2V0
UGFyc2VyU3RhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvVGV4dHVyZUNhY2hlQ1YubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jdi9UZXh0dXJlQ2FjaGVDVi5tbQppbmRleCBmZTc5MTljZTJkOGVjZjAyMjUyODcyMGIxNjEw
NWJjMmUyZGRjZDI4Li4zZGEwMTY0YzFlNWM5MzVlOGU0Y2M0NGEzYmRjZGRlZDVmYjVlNWNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2Fj
aGVDVi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJl
Q2FjaGVDVi5tbQpAQCAtNTAsNyArNTAsNiBAQCBzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZUNhY2hl
Q1Y+IFRleHR1cmVDYWNoZUNWOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleAogVGV4
dHVyZUNhY2hlQ1Y6OlRleHR1cmVDYWNoZUNWKEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0LCBS
ZXRhaW5QdHI8VGV4dHVyZUNhY2hlVHlwZT4mJiBjYWNoZSkKICAgICA6IG1fY29udGV4dChjb250
ZXh0KQogICAgICwgbV9jYWNoZShjYWNoZSkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykK
IHsKIH0KIApAQCAtNzMsNyArNzIsNyBAQCBSZXRhaW5QdHI8VGV4dHVyZUNhY2hlQ1Y6OlRleHR1
cmVUeXBlPiBUZXh0dXJlQ2FjaGVDVjo6dGV4dHVyZUZyb21JbWFnZShDVkltYWdlQgogI2VuZGlm
CiAgICAgUmV0YWluUHRyPFRleHR1cmVUeXBlPiB2aWRlb1RleHR1cmUgPSBhZG9wdENGKGJhcmVW
aWRlb1RleHR1cmUpOwogCi0gICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigpOworICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0
ZVdlYWtQdHIoKnRoaXMpOwogICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1
ZXVlKCksIFt3ZWFrVGhpc10gewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcAppbmRleCBlMzFhMWE5ZDkw
ZDUyNjc4OGUzNTc2ZWQ1YmQ4NjY4ZTE4NzM0ZGIyLi41YTAwMmM5YTY3ZTY0OWRlOGQ5YmQ1ZTk4
ZmM5MGFiODE1MjBiNmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcApAQCAt
MzYsNyArMzYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERpc3BsYXlSZWZyZXNoTW9uaXRv
ck1hYzo6RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJ
RCkKICAgICA6IERpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpCi0gICAgLCBtX3dlYWtG
YWN0b3J5KHRoaXMpCiAgICAgLCBtX2Rpc3BsYXlMaW5rKG51bGxwdHIpCiB7CiB9CkBAIC05Miw4
ICs5MSw3IEBAIHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5TGlua0ZpcmVk
KCkKIAogICAgIHNldElzUHJldmlvdXNGcmFtZURvbmUoZmFsc2UpOwogCi0gICAgLy8gRklYTUU6
IElzIGl0IHJlYWxseSBva2F5IHRvIGNyZWF0ZSBhIHdlYWtQdHIgb24gYSBiYWNrZ3JvdW5kIHRo
cmVhZCBhbmQgdGhlbiB1c2UgaXQgb24gdGhlIG1haW4gdGhyZWFkPwotICAgIFJ1bkxvb3A6Om1h
aW4oKS5kaXNwYXRjaChbd2Vha1B0ciA9IG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpXSB7
CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrUHRyID0gbV93ZWFrRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCp0aGlzKV0gewogICAgICAgICBpZiAoYXV0byogbW9uaXRvciA9IHdlYWtQ
dHIuZ2V0KCkpCiAgICAgICAgICAgICBoYW5kbGVEaXNwbGF5UmVmcmVzaGVkTm90aWZpY2F0aW9u
T25NYWluVGhyZWFkKG1vbml0b3IpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5oCmluZGV4IGZjMDJlZTU5
ZDlhY2E2OTYyNTdjNWY0ZjMzZmY4Y2UxNzE0NmNmYTEuLmJlMTU5NGViZGI0YjcwYzdjODM1Y2M1
MDhiOTEwZWI4MzFmZGE0NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgflJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUygpOwogCiBwcm90ZWN0ZWQ6
Ci0gICAgV2Vha1B0cjxSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1M+IGNyZWF0ZVdlYWtQdHIoKSB7
IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8
UmVtb3RlQ29tbWFuZExpc3RlbmVySU9TPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFr
UHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogICAgIHZvaWQgdXBkYXRlU3VwcG9y
dGVkQ29tbWFuZHMoKSBvdmVycmlkZTsKIAogICAgIFdlYWtQdHJGYWN0b3J5PFJlbW90ZUNvbW1h
bmRMaXN0ZW5lcklPUz4gbV93ZWFrUHRyRmFjdG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tCmluZGV4IDQxZjlk
YjY4MWIzZmYxZTM3MjY4YTJkM2Y5OTU1YmQ1ZTdhZTM2ZDUuLmU0YTY5YzRhY2JkYTg0Yjk4Mzkz
NjBkZTY4NTg0Y2M0NTc5Yzg4ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbQpAQCAtNDcsNyArNDcsNiBAQCBz
dGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQ29tbWFuZExpc3RlbmVyPiBSZW1vdGVDb21tYW5kTGlzdGVu
ZXI6OmNyZWF0ZShSZW1vdGVDb21tYQogCiBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1M6OlJlbW90
ZUNvbW1hbmRMaXN0ZW5lcklPUyhSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmIGNsaWVudCkK
ICAgICA6IFJlbW90ZUNvbW1hbmRMaXN0ZW5lcihjbGllbnQpCi0gICAgLCBtX3dlYWtQdHJGYWN0
b3J5KHRoaXMpCiB7CiAgICAgTVBSZW1vdGVDb21tYW5kQ2VudGVyICpjZW50ZXIgPSBbZ2V0TVBS
ZW1vdGVDb21tYW5kQ2VudGVyQ2xhc3MoKSBzaGFyZWRDb21tYW5kQ2VudGVyXTsKICAgICBhdXRv
IHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5oCmluZGV4IGRiNjlkNzY2MmVm
NzRhZWJkMDNlNzhhYjg5YTgzMzVmMjVlODMzMWIuLmI3ODFlNmFkNGExYzJmODRlOTQxNmM1ZTRi
MTYzMWRkZjNhYzI1NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9S
ZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmgKQEAgLTM5LDExICszOSwxMSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB+UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjKCk7CiAKIHByb3RlY3RlZDoK
LSAgICBXZWFrUHRyPFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYz4gY3JlYXRlV2Vha1B0cigpIHsg
cmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxS
ZW1vdGVDb21tYW5kTGlzdGVuZXJNYWM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQ
dHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKICAgICB2b2lkIHVwZGF0ZVN1cHBv
cnRlZENvbW1hbmRzKCkgb3ZlcnJpZGU7CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxSZW1vdGVDb21t
YW5kTGlzdGVuZXJNYWM+IG1fd2Vha1B0ckZhY3RvcnkgeyB0aGlzIH07CisgICAgV2Vha1B0ckZh
Y3Rvcnk8UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjPiBtX3dlYWtQdHJGYWN0b3J5OwogICAgIHZv
aWQqIG1fY29tbWFuZEhhbmRsZXIgeyBudWxscHRyIH07CiB9OwogICAgIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0
ZS5jcHAKaW5kZXggYjI0ZTY0ZTExNWY3NzU3ZTAwMWI3ZGU4OWE5ZTMzYzY4ODdlMmVhZi4uNzEx
OWRiYzg0MzI5MTE5MTRkNGE4MmJlYjQxNTUzMGQwZjQ4YWU3YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUu
Y3BwCkBAIC01OSw4ICs1OSw3IEBAIFJlZjxNZWRpYVN0cmVhbVByaXZhdGU+IE1lZGlhU3RyZWFt
UHJpdmF0ZTo6Y3JlYXRlKGNvbnN0IFZlY3RvcjxSZWY8UmVhbHRpbWVNZWRpCiB9CiAKIE1lZGlh
U3RyZWFtUHJpdmF0ZTo6TWVkaWFTdHJlYW1Qcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlVmVjdG9yJiB0cmFja3MsIFN0cmluZyYmIGlkKQotICAgIDogbV93ZWFrUHRyRmFjdG9y
eSh0aGlzKQotICAgICwgbV9pZChXVEZNb3ZlKGlkKSkKKyAgICA6IG1faWQoV1RGTW92ZShpZCkp
CiB7CiAgICAgQVNTRVJUKCFtX2lkLmlzRW1wdHkoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKaW5kZXgg
MjEyZGY5MDMxMDgzMGE1MGVjMDAyMDgwYjI3ZGQyMTI0NDI2MWYwYS4uOWYxYWI1MmI1YzZkYjI4
OTlkYmY2YWM3OTk3ODc4OTEwNjI0OWMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKQEAgLTEwNyw3ICsx
MDcsNyBAQCBwdWJsaWM6CiAKICAgICBGbG9hdFNpemUgaW50cmluc2ljU2l6ZSgpIGNvbnN0Owog
Ci0gICAgV2Vha1B0cjxNZWRpYVN0cmVhbVByaXZhdGU+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVy
biBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8TWVkaWFT
dHJlYW1Qcml2YXRlPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiAgICAgdm9pZCBtb25pdG9yT3JpZW50YXRpb24oT3Jp
ZW50YXRpb25Ob3RpZmllciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCmluZGV4IDFiNzUwMjUx
NzliMTA5MWQwYWM4NDk3ZDEwZjAwZmE5N2I5MjE1ZDQuLjZjMDM3NjJhZWFjZGFlMTNjZjBhMWU5
MTcxMjNhZmNkZTI2MTE3YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC00Nyw4ICs0Nyw3
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1l
TWVkaWFTb3VyY2UoY29uc3QgU3RyaW5nJiBpZCwgVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIG5h
bWUpCi0gICAgOiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0gICAgLCBtX2lkKGlkKQorICAgIDog
bV9pZChpZCkKICAgICAsIG1fdHlwZSh0eXBlKQogICAgICwgbV9uYW1lKG5hbWUpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmgKaW5kZXggMWYwODdmNjhiNGVjODMzNTlkMDA1ODQwYWFkYmFjNDM0MDc5ZjRh
Yi4uODQ2ZmI3MjQ4N2UyN2ZhMzNhODY5M2ViM2NjZGVkZjVlMmJjMzRhMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2UuaApAQCAtMjQwLDcgKzI0MCw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHZpZGVvU2Ft
cGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJik7CiAgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFi
bGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKIAotICAgIFdlYWtQdHI8UmVhbHRpbWVNZWRp
YVNvdXJjZT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRl
V2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGVXZWFr
UHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQog
CiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSB7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9pbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2ludC5jcHAK
aW5kZXggMzc1Y2U3ZGZkYmNmNjFiZTA4MjM5NTQyODA2M2Y2MDdkODQzMTA4ZS4uMGU5YjQxZTVj
MTE5NWM2ZTNlYzEzNzA3NWVhNGZmYTY2ODZjN2FhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2ludC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2ludC5jcHAKQEAgLTU3LDcgKzU3LDYgQEAg
TW9ja01lZGlhRW5kcG9pbnQ6Ok1vY2tNZWRpYUVuZHBvaW50KE1lZGlhRW5kcG9pbnRDbGllbnQm
IGNsaWVudCkKICAgICAsIG1faWNlQ2FuZGlkYXRlVGltZXIoKnRoaXMsICZNb2NrTWVkaWFFbmRw
b2ludDo6aWNlQ2FuZGlkYXRlVGltZXJGaXJlZCkKICAgICAsIG1faWNlVHJhbnNwb3J0VGltZXIo
KnRoaXMsICZNb2NrTWVkaWFFbmRwb2ludDo6aWNlVHJhbnNwb3J0VGltZXJGaXJlZCkKICAgICAs
IG1fdW5tdXRlVGltZXIoKnRoaXMsICZNb2NrTWVkaWFFbmRwb2ludDo6dW5tdXRlVGltZXJGaXJl
ZCkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKIH0KIApAQCAtNzMsNyArNzIsNyBA
QCBzdGQ6OnVuaXF1ZV9wdHI8UlRDRGF0YUNoYW5uZWxIYW5kbGVyPiBNb2NrTWVkaWFFbmRwb2lu
dDo6Y3JlYXRlRGF0YUNoYW5uZWxIYW5kbAogCiB2b2lkIE1vY2tNZWRpYUVuZHBvaW50OjpnZW5l
cmF0ZUR0bHNJbmZvKCkKIHsKLSAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCk7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigqdGhpcyk7CiAKICAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpc10gewog
ICAgICAgICBpZiAod2Vha1RoaXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyLmNwcAppbmRl
eCBlZjczZDU3YWI1NWEzNmE3NTEwNDBlMTRkMDcyNmU2MzJmNTJhNzBlLi44ZmIwZDQwOTg0ZWYw
OWIyOTYyNGFhYTcyOWEzMGNjMWQxNDgyNDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRl
ci5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAgUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xk
ZXI6OlJlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyKFJlbmRlck0KICAgICA6IFJl
bmRlckJveChmbG93VGhyZWFkLT5kb2N1bWVudCgpLCBXVEZNb3ZlKHN0eWxlKSwgUmVuZGVyQm94
TW9kZWxPYmplY3RGbGFnKQogICAgICwgbV9zcGFubmVyKCZzcGFubmVyKQogICAgICwgbV9mbG93
VGhyZWFkKGZsb3dUaHJlYWQpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNw
YW5uZXJQbGFjZWhvbGRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRp
Q29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyLmgKaW5kZXggMDM0MTFkOTQ3MTJjY2IyYmU4ZDhmNDcx
MDhjMTBhMGE0ZDM2NWFiNy4uYjE1MDM5MDEyYzA0NDc4ZTBjMWE4ZTg1M2JlMzAyNTI1YzU0MjQx
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1u
U3Bhbm5lclBsYWNlaG9sZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyLmgKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGlj
OgogCiAgICAgUmVuZGVyQm94KiBzcGFubmVyKCkgY29uc3QgeyByZXR1cm4gbV9zcGFubmVyOyB9
CiAgICAgUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkKiBmbG93VGhyZWFkKCkgY29uc3QgeyBy
ZXR1cm4gbV9mbG93VGhyZWFkOyB9Ci0gICAgV2Vha1B0cjxSZW5kZXJNdWx0aUNvbHVtblNwYW5u
ZXJQbGFjZWhvbGRlcj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxSZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQ
bGFjZWhvbGRlcj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigqdGhpcyk7IH0KIAogcHJpdmF0ZToKICAgICBSZW5kZXJNdWx0aUNvbHVtblNw
YW5uZXJQbGFjZWhvbGRlcihSZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQqLCBSZW5kZXJCb3gm
IHNwYW5uZXIsIFJlbmRlclN0eWxlJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuY3BwCmluZGV4IDJhYjE4ODk1N2E4ZWYwZDk3MWQ4MzQzODVhNzZhZWVhMmZmYzVlNjUuLjQ3
NTA2MDhlZmFlYWM2MjZkM2Y1ZGJkMjQwMWJjYTg0NGFkZWQ5NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTEyMSw3ICsxMjEsNiBAQCBwcml2YXRlOgogUmVu
ZGVyVmlldzo6UmVuZGVyVmlldyhEb2N1bWVudCYgZG9jdW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5
bGUpCiAgICAgOiBSZW5kZXJCbG9ja0Zsb3coZG9jdW1lbnQsIFdURk1vdmUoc3R5bGUpKQogICAg
ICwgbV9mcmFtZVZpZXcoKmRvY3VtZW50LnZpZXcoKSkKLSAgICAsIG1fd2Vha0ZhY3RvcnkodGhp
cykKICAgICAsIG1fbGF6eVJlcGFpbnRUaW1lcigqdGhpcywgJlJlbmRlclZpZXc6OmxhenlSZXBh
aW50VGltZXJGaXJlZCkKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICAsIG1fc2Vs
ZWN0aW9uUmVjdEdhdGhlcmVyKCp0aGlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmgKaW5kZXggYWE0ZjYyYjkxMWI5YTQzZDRlMGM4MmQ2OWM5MzBjZDY3M2EzNGFjMi4uMzAyMjMw
NzQ2YjFkN2YzZGIzNzg5ZmQ4YmQ3MjBjZGYyNmQ1YjNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5oCkBAIC0yMzMsNyArMjMzLDcgQEAgcHVibGljOgogICAgICAgICBib29s
IG1fd2FzQWNjdW11bGF0aW5nUmVwYWludFJlZ2lvbjsKICAgICB9OwogCi0gICAgV2Vha1B0cjxS
ZW5kZXJWaWV3PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVX
ZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPFJlbmRlclZpZXc+IGNyZWF0ZVdlYWtQdHIoKSB7IHJl
dHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKICAgICB2b2lkIHNj
aGVkdWxlTGF6eVJlcGFpbnQoUmVuZGVyQm94Jik7CiAgICAgdm9pZCB1bnNjaGVkdWxlTGF6eVJl
cGFpbnQoUmVuZGVyQm94Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyV2lkZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQu
Y3BwCmluZGV4IDRjZTcyY2U2ZGFhOTEyNzc2NGQ5Zjg5ZDQwZDQ0NDA2YmFiZjg1NjYuLjRiNGQ0
NDQ0MzJhYWYxZjA1YTQwYTlmMDY3ZDllNDI5MGFmODY0MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCkBAIC04MSw3ICs4MSw2IEBAIHN0YXRpYyB2b2lkIG1v
dmVXaWRnZXRUb1BhcmVudFNvb24oV2lkZ2V0JiBjaGlsZCwgRnJhbWVWaWV3KiBwYXJlbnQpCiAK
IFJlbmRlcldpZGdldDo6UmVuZGVyV2lkZ2V0KEhUTUxGcmFtZU93bmVyRWxlbWVudCYgZWxlbWVu
dCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKICAgICA6IFJlbmRlclJlcGxhY2VkKGVsZW1lbnQsIFdU
Rk1vdmUoc3R5bGUpKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogICAgIHNldElu
bGluZShmYWxzZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyV2lkZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKaW5k
ZXggYjdiN2M3YjEyZTE4MGRlMTg3ZDVhZTdiMzI3NTRiZGEyYjFhODAxMy4uYzEyZjU3OTY3NDcy
NDk5NTcyMzFkYWJmMDZkYmJmNGUyNzQ4YmMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcldpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJXaWRnZXQuaApAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIHJlcXVp
cmVzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0OwogCi0gICAgV2Vha1B0cjxSZW5kZXJX
aWRnZXQ+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKTsgfQorICAgIFdlYWtQdHI8UmVuZGVyV2lkZ2V0PiBjcmVhdGVXZWFrUHRyKCkgeyBy
ZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiAgICAgdm9p
ZCByZWYoKSB7ICsrbV9yZWZDb3VudDsgfQogICAgIHZvaWQgZGVyZWYoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcAppbmRleCAzODE4OWE3NDE0YTk1MmM1MDE0
NzBkZmMyOWMyNWY1N2ZmYjMwM2M0Li42MzA2MTkyZDM4YjNkMTU1Y2YwMzE2MTBlYzRjMDM1NzE1
NmU4ZGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJv
eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCkBA
IC02MSw4ICs2MSw2IEBAIFJvb3RJbmxpbmVCb3g6OlJvb3RJbmxpbmVCb3goUmVuZGVyQmxvY2tG
bG93JiBibG9jaykKICAgICA6IElubGluZUZsb3dCb3goYmxvY2spCiAgICAgLCBtX2xpbmVCcmVh
a1BvcygwKQogICAgICwgbV9saW5lQnJlYWtPYmoobnVsbHB0cikKLSAgICAsIG1fd2Vha1B0ckZh
Y3RvcnkodGhpcykKLQogewogICAgIHNldElzSG9yaXpvbnRhbChibG9jay5pc0hvcml6b250YWxX
cml0aW5nTW9kZSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
b290SW5saW5lQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5o
CmluZGV4IGMxOTU4ZjM4NzlmZTEyMjA5Y2MyMDYyNmI5YTdiMWY3MjBjZjM1NzkuLjExMjI3YzY1
NTVjMDJhMmMzMDRhYjRhYzMyZmVmZTc3NGY5NzdkZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1Jvb3RJbmxpbmVCb3guaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBSb290SW5saW5lQm94
IDogcHVibGljIElubGluZUZsb3dCb3ggewogcHVibGljOgogICAgIGV4cGxpY2l0IFJvb3RJbmxp
bmVCb3goUmVuZGVyQmxvY2tGbG93Jik7CiAgICAgdmlydHVhbCB+Um9vdElubGluZUJveCgpOwot
ICAgIFdlYWtQdHI8Um9vdElubGluZUJveD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vh
a1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxSb290SW5saW5lQm94
PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCp0aGlzKTsgfQogCiAgICAgUmVuZGVyQmxvY2tGbG93JiBibG9ja0Zsb3coKSBjb25zdDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKaW5kZXggZTIyMzBmNDEyZGQ4MTM1YmYy
NTc2MTViZWI4ZWU0ODQ3N2ZkZTA0ZS4uNDA0MjMxN2NjNjFmZGE3OTU0YzBmMTQ0Y2EzZDYzODFl
ZjNjOTk2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCkBAIC04MSw3ICs4
MSw2IEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiBpbmxpbmUgU1ZHUGF0aEVs
ZW1lbnQ6OlNWR1BhdGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCkKICAgICAsIG1fcGF0aFNlZ0xpc3QoUGF0aFNlZ1VuYWx0ZXJlZFJvbGUpCi0gICAgLCBtX3dl
YWtQdHJGYWN0b3J5KHRoaXMpCiAgICAgLCBtX2lzQW5pbVZhbE9ic2VydmVkKGZhbHNlKQogewog
ICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpwYXRoVGFnKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoRWxlbWVudC5oCmluZGV4IDNmNDcxMDViNGQwY2IzM2VjZDBlYjBhZWZjYjEyZjNjMzdm
OTVkMzkuLjQ4MjQ3ODJmYzNlODdjY2Q5YzZiODRmNWRmN2IyZTVhZjQzYWE3NTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCkBAIC05Nyw3ICs5Nyw3IEBAIHB1YmxpYzoKIAogICAg
IGJvb2wgaXNBbmltVmFsT2JzZXJ2ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQW5pbVZhbE9ic2Vy
dmVkOyB9CiAKLSAgICBXZWFrUHRyPFNWR1BhdGhFbGVtZW50PiBjcmVhdGVXZWFrUHRyKCkgY29u
c3QgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFr
UHRyPFNWR1BhdGhFbGVtZW50PiBjcmVhdGVXZWFrUHRyKCkgY29uc3QgeyByZXR1cm4gbV93ZWFr
UHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCpjb25zdF9jYXN0PFNWR1BhdGhFbGVtZW50Kj4odGhp
cykpOyB9CiAKICAgICB2b2lkIGFuaW1hdGVkUHJvcGVydHlXaWxsQmVEZWxldGVkKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJPZmYu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJPZmYuaAppbmRl
eCAwMTg4MDMxY2UzOGFjMWVmNDJkN2Y4NjE1ZDc0ZmM4ZmZmODhiMTFmLi5lMGJmMGQwODI3ZTcz
ZjdmYzhmZmQyMDkzMDlkZjAxZTNjMjk5YTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVhck9mZi5oCkBAIC0zMCw3ICszMCw3IEBAIHB1YmxpYzoK
ICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQodmFsdWUsICZwYXJlbnQucHJvcGVydHlSZWZl
cmVuY2UoKS5zdmdNYXRyaXgoKSA9PSAmdmFsdWUpOwogICAgICAgICBSZWY8U1ZHTWF0cml4VGVh
ck9mZj4gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXhUZWFyT2ZmKHBhcmVudCkpOwot
ICAgICAgICBwYXJlbnQuYWRkQ2hpbGQocmVzdWx0LT5tX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKSk7CisgICAgICAgIHBhcmVudC5hZGRDaGlsZChyZXN1bHQtPm1fd2Vha0ZhY3RvcnkuY3Jl
YXRlV2Vha1B0cihyZXN1bHQpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKQEAg
LTQ4LDcgKzQ4LDYgQEAgcHJpdmF0ZToKICAgICBTVkdNYXRyaXhUZWFyT2ZmKFNWR1RyYW5zZm9y
bSYgcGFyZW50KQogICAgICAgICA6IFNWR01hdHJpeChudWxscHRyKQogICAgICAgICAsIG1fcGFy
ZW50KCZwYXJlbnQpCi0gICAgICAgICwgbV93ZWFrRmFjdG9yeSh0aGlzKQogICAgIHsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHAKaW5kZXggYTFhNzk4
ZDE3OTMxMjQyYjVmNmUwN2U3OTU3ODkwOTQ5OGI4M2FjNC4uYjJmYzZjMTc5OGNiZGEyYTYyZjQx
OTY3ZTUyNGVhNjdlYTg1OGViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9N
b2NrQ0RNRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFj
dG9yeS5jcHAKQEAgLTM4LDcgKzM4LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBNb2NrQ0RN
RmFjdG9yeTo6TW9ja0NETUZhY3RvcnkoKQogICAgIDogbV9zdXBwb3J0ZWRTZXNzaW9uVHlwZXMo
eyBNZWRpYUtleVNlc3Npb25UeXBlOjpUZW1wb3JhcnksIE1lZGlhS2V5U2Vzc2lvblR5cGU6OlBl
cnNpc3RlbnRVc2FnZVJlY29yZCwgTWVkaWFLZXlTZXNzaW9uVHlwZTo6UGVyc2lzdGVudExpY2Vu
c2UgfSkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKICAgICBDRE1GYWN0b3J5Ojpy
ZWdpc3RlckZhY3RvcnkoKnRoaXMpOwogfQpAQCAtOTgsMTIgKzk3LDExIEBAIHZvaWQgTW9ja0NE
TUZhY3Rvcnk6OnNldFN1cHBvcnRlZERhdGFUeXBlcyhWZWN0b3I8U3RyaW5nPiYmIHR5cGVzKQog
CiBzdGQ6OnVuaXF1ZV9wdHI8Q0RNUHJpdmF0ZT4gTW9ja0NETUZhY3Rvcnk6OmNyZWF0ZUNETShj
b25zdCBTdHJpbmcmKQogewotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1vY2tDRE0+KG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3Vu
aXF1ZTxNb2NrQ0RNPihtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpKTsKIH0K
IAogTW9ja0NETTo6TW9ja0NETShXZWFrUHRyPE1vY2tDRE1GYWN0b3J5PiBmYWN0b3J5KQogICAg
IDogbV9mYWN0b3J5KFdURk1vdmUoZmFjdG9yeSkpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRo
aXMpCiB7CiB9CiAKQEAgLTE2Nyw3ICsxNjUsNyBAQCBSZWZQdHI8Q0RNSW5zdGFuY2U+IE1vY2tD
RE06OmNyZWF0ZUluc3RhbmNlKCkKIHsKICAgICBpZiAobV9mYWN0b3J5ICYmICFtX2ZhY3Rvcnkt
PmNhbkNyZWF0ZUluc3RhbmNlcygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IE1vY2tDRE1JbnN0YW5jZShtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTW9ja0NETUluc3RhbmNlKG1fd2Vh
a1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcykpKTsKIH0KIAogdm9pZCBNb2NrQ0RNOjps
b2FkQW5kSW5pdGlhbGl6ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
cHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXggMTBl
MTRmNzBlZDY3ZjFkY2JhYjkxNzdjY2EzZGMxYzU3NzI0OWIzNy4uOTYxYmJkMzdjMzdmYjYwMmU1
ODVkNjMxYjI0NGZlYThjYjBkOWJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmNwcApA
QCAtNDAsNyArNDAsNiBAQCBzdGF0aWMgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkqIGFjdGl2
ZVBheW1lbnRDb29yZGluYXRvclByb3h5OwogCiBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6
V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkoV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHkpCiAg
ICAgOiBtX3dlYlBhZ2VQcm94eSh3ZWJQYWdlUHJveHkpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5
KHRoaXMpCiAgICAgLCBtX3N0YXRlKFN0YXRlOjpJZGxlKQogICAgICwgbV9tZXJjaGFudFZhbGlk
YXRpb25TdGF0ZShNZXJjaGFudFZhbGlkYXRpb25TdGF0ZTo6SWRsZSkKIHsKQEAgLTY1LDcgKzY0
LDcgQEAgdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y2FuTWFrZVBheW1lbnRzKGJv
b2wmIHJlcGx5KQogCiB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpjYW5NYWtlUGF5
bWVudHNXaXRoQWN0aXZlQ2FyZChjb25zdCBTdHJpbmcmIG1lcmNoYW50SWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBkb21haW5OYW1lLCB1aW50NjRfdCByZXF1ZXN0SUQpCiB7Ci0gICAgYXV0byB3
ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAgIGF1dG8gd2Vh
a1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOwogICAgIHBsYXRm
b3JtQ2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQobWVyY2hhbnRJZGVudGlmaWVyLCBkb21h
aW5OYW1lLCBbd2Vha1RoaXMsIHJlcXVlc3RJRF0oYm9vbCBjYW5NYWtlUGF5bWVudHMpIHsKICAg
ICAgICAgYXV0byBwYXltZW50Q29vcmRpbmF0b3JQcm94eSA9IHdlYWtUaGlzLmdldCgpOwogICAg
ICAgICBpZiAoIXBheW1lbnRDb29yZGluYXRvclByb3h5KQpAQCAtNzcsNyArNzYsNyBAQCB2b2lk
IFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpjYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2Fy
ZChjb25zdCBTdHJpbmcmIG1lcgogCiB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5Ojpv
cGVuUGF5bWVudFNldHVwKGNvbnN0IFN0cmluZyYgbWVyY2hhbnRJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIGRvbWFpbk5hbWUsIHVpbnQ2NF90IHJlcXVlc3RJRCkKIHsKLSAgICBhdXRvIHdlYWtU
aGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgYXV0byB3ZWFrVGhp
cyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiAgICAgcGxhdGZvcm1P
cGVuUGF5bWVudFNldHVwKG1lcmNoYW50SWRlbnRpZmllciwgZG9tYWluTmFtZSwgW3dlYWtUaGlz
LCByZXF1ZXN0SURdKGJvb2wgcmVzdWx0KSB7CiAgICAgICAgIGF1dG8gcGF5bWVudENvb3JkaW5h
dG9yUHJveHkgPSB3ZWFrVGhpcy5nZXQoKTsKICAgICAgICAgaWYgKCFwYXltZW50Q29vcmRpbmF0
b3JQcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxlUGF5L21h
Yy9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FwcGxlUGF5L21hYy9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eU1hYy5tbQppbmRleCAz
ZTUwNjlhMWQ1NDUwYzkxZGUxOTc5YjVjN2RjMTQ5MGUzZTE2OWJhLi5hMTJlYzQ2NzM0OWNjMWEw
NmM4YWEyYzZkY2VmMWU1YmUyNmU2Y2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BcHBsZVBheS9tYWMvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkvbWFjL1dlYlBheW1lbnRDb29yZGluYXRv
clByb3h5TWFjLm1tCkBAIC00Niw3ICs0Niw3IEBAIHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHk6OnBsYXRmb3JtU2hvd1BheW1lbnRVSShjb25zdCBXZWJDb3JlOjpVUkwmIG9yaWdpCiAg
ICAgYXV0byBwYXltZW50UmVxdWVzdCA9IHRvUEtQYXltZW50UmVxdWVzdChtX3dlYlBhZ2VQcm94
eSwgb3JpZ2luYXRpbmdVUkwsIGxpbmtJY29uVVJMU3RyaW5ncywgcmVxdWVzdCk7CiAKICAgICBh
dXRvIHNob3dQYXltZW50VUlSZXF1ZXN0U2VlZCA9IG1fc2hvd1BheW1lbnRVSVJlcXVlc3RTZWVk
OwotICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsK
KyAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlz
KTsKICAgICBbZ2V0UEtQYXltZW50QXV0aG9yaXphdGlvblZpZXdDb250cm9sbGVyQ2xhc3MoKSBy
ZXF1ZXN0Vmlld0NvbnRyb2xsZXJXaXRoUGF5bWVudFJlcXVlc3Q6cGF5bWVudFJlcXVlc3QuZ2V0
KCkgY29tcGxldGlvbjpCbG9ja1B0cjx2b2lkIChQS1BheW1lbnRBdXRob3JpemF0aW9uVmlld0Nv
bnRyb2xsZXIgKiwgTlNFcnJvciAqKT46OmZyb21DYWxsYWJsZShbcGF5bWVudFJlcXVlc3QsIHNo
b3dQYXltZW50VUlSZXF1ZXN0U2VlZCwgd2Vha1RoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildKFBLUGF5bWVudEF1dGhvcml6YXRpb25WaWV3Q29udHJv
bGxlciAqdmlld0NvbnRyb2xsZXIsIE5TRXJyb3IgKmVycm9yKSB7CiAgICAgICAgIGF1dG8gcGF5
bWVudENvb3JkaW5hdG9yUHJveHkgPSB3ZWFrVGhpcy5nZXQoKTsKICAgICAgICAgaWYgKCFwYXlt
ZW50Q29vcmRpbmF0b3JQcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FwcGxpY2F0aW9uU3RhdGVUcmFja2VyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBw
bGljYXRpb25TdGF0ZVRyYWNrZXIubW0KaW5kZXggNmIyOTM5YWQzYzBlMDZiNWRkNTIxY2U3YTg4
NjJkMmJkYjdlODU4Ny4uYzY1MjNhMzhhZDg2M2Y4ZmJjNTJlNGQxODJlMGU4N2EwYzc3OTgzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGljYXRpb25TdGF0ZVRyYWNr
ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGljYXRpb25TdGF0ZVRyYWNr
ZXIubW0KQEAgLTc5LDcgKzc5LDYgQEAgQXBwbGljYXRpb25TdGF0ZVRyYWNrZXI6OkFwcGxpY2F0
aW9uU3RhdGVUcmFja2VyKFVJVmlldyAqdmlldywgU0VMIGRpZEVudGVyQmFja2cKICAgICAsIG1f
ZGlkRmluaXNoU25hcHNob3R0aW5nQWZ0ZXJFbnRlcmluZ0JhY2tncm91bmRTZWxlY3RvcihkaWRG
aW5pc2hTbmFwc2hvdHRpbmdBZnRlckVudGVyaW5nQmFja2dyb3VuZFNlbGVjdG9yKQogICAgICwg
bV93aWxsRW50ZXJGb3JlZ3JvdW5kU2VsZWN0b3Iod2lsbEVudGVyRm9yZWdyb3VuZFNlbGVjdG9y
KQogICAgICwgbV9pc0luQmFja2dyb3VuZCh0cnVlKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0
aGlzKQogICAgICwgbV9kaWRFbnRlckJhY2tncm91bmRPYnNlcnZlcihudWxscHRyKQogICAgICwg
bV9kaWRDcmVhdGVXaW5kb3dDb250ZXh0T2JzZXJ2ZXIobnVsbHB0cikKICAgICAsIG1fZGlkRmlu
aXNoU25hcHNob3R0aW5nQWZ0ZXJFbnRlcmluZ0JhY2tncm91bmRPYnNlcnZlcihudWxscHRyKQpA
QCAtOTQsNyArOTMsNyBAQCBBcHBsaWNhdGlvblN0YXRlVHJhY2tlcjo6QXBwbGljYXRpb25TdGF0
ZVRyYWNrZXIoVUlWaWV3ICp2aWV3LCBTRUwgZGlkRW50ZXJCYWNrZwogICAgIEFTU0VSVCh3aW5k
b3cpOwogCiAgICAgTlNOb3RpZmljYXRpb25DZW50ZXIgKm5vdGlmaWNhdGlvbkNlbnRlciA9IFtO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXTsKLSAgICBhdXRvIHdlYWtUaGlzID0g
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiAgICAgbV9kaWRDcmVhdGVXaW5k
b3dDb250ZXh0T2JzZXJ2ZXIgPSBbbm90aWZpY2F0aW9uQ2VudGVyIGFkZE9ic2VydmVyRm9yTmFt
ZTpAIl9VSVdpbmRvd0RpZENyZWF0ZVdpbmRvd0NvbnRleHROb3RpZmljYXRpb24iIG9iamVjdDp3
aW5kb3cgcXVldWU6bmlsIHVzaW5nQmxvY2s6W3dlYWtUaGlzXShOU05vdGlmaWNhdGlvbiAqKSB7
CiAgICAgICAgIGF1dG8gYXBwbGljYXRpb25TdGF0ZVRyYWNrZXIgPSB3ZWFrVGhpcy5nZXQoKTsK
ICAgICAgICAgaWYgKCFhcHBsaWNhdGlvblN0YXRlVHJhY2tlcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4IGI0Mzk3YzY2YjNhZjBiOGMzOGI5OTE3
NDY4ZDk4ODJjMjk2OWEzZWYuLjQxNmRjYzBlNmU5NDc4NzNhYWFkZWU5YmExMDgzMmFiYzFmMDkx
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAt
NTc0LDcgKzU3NCw3IEBAIHByaXZhdGU6CiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9QTEFZQkFDS19D
T05UUk9MU19NQU5BR0VSKQogI2VuZGlmIC8vIEhBVkUoVE9VQ0hfQkFSKQogCi0gICAgV2Vha1B0
cjxXZWJWaWV3SW1wbD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxXZWJWaWV3SW1wbD4gY3JlYXRlV2Vha1B0
cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAog
ICAgIGJvb2wgc3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2RlcygpIGNvbnN0OwogICAgIGZsb2F0
IGludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDAxNTVjYjE4YjE1MTQzOWEwZjEzYjIz
YWFkYWFkNjE3NzFjNmU1OTAuLjkzODQ2YThkNThjYmZkY2IzZDMyYjYxZmVjNGViN2QxYjk1ZWQ1
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBA
IC0xMjcxLDcgKzEyNzEsNiBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoTlNWaWV3IDxXZWJW
aWV3SW1wbERlbGVnYXRlPiAqdmlldywgV0tXZWJWaWV3ICpvdXRlcldlYgogICAgIDogbV92aWV3
KHZpZXcpCiAgICAgLCBtX3BhZ2VDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxQYWdlQ2xpZW50SW1w
bD4odmlldywgb3V0ZXJXZWJWaWV3KSkKICAgICAsIG1fcGFnZShwcm9jZXNzUG9vbC5jcmVhdGVX
ZWJQYWdlKCptX3BhZ2VDbGllbnQsIFdURk1vdmUoY29uZmlndXJhdGlvbikpKQotICAgICwgbV93
ZWFrUHRyRmFjdG9yeSh0aGlzKQogICAgICwgbV9uZWVkc1ZpZXdGcmFtZUluV2luZG93Q29vcmRp
bmF0ZXMobV9wYWdlLT5wcmVmZXJlbmNlcygpLnBsdWdpbnNFbmFibGVkKCkpCiAgICAgLCBtX2lu
dHJpbnNpY0NvbnRlbnRTaXplKENHU2l6ZU1ha2UoTlNWaWV3Tm9JbnN0cmluc2ljTWV0cmljLCBO
U1ZpZXdOb0luc3RyaW5zaWNNZXRyaWMpKQogICAgICwgbV9sYXlvdXRTdHJhdGVneShbV0tWaWV3
TGF5b3V0U3RyYXRlZ3kgbGF5b3V0U3RyYXRlZ3lXaXRoUGFnZTptX3BhZ2Ugdmlldzp2aWV3IHZp
ZXdJbXBsOip0aGlzIG1vZGU6a1dLTGF5b3V0TW9kZVZpZXdTaXplXSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuY3BwCmluZGV4IGYy
ZjcyYWNjM2YyNGIyOTlmYjBjZThiN2Y4OTJjYWRkYmExNzBhOTAuLjBmZmE5MmRjOGRkOWYwM2Iz
MjZhYzVlMTJiZjhkODFiZGRkZTExMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmNwcApAQCAtMzMsNyArMzMsNiBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzTGF1bmNoZXIoQ2xpZW50
KiBjbGllbnQsIGNvbnN0IExhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdGlvbnMpCiAgICAgOiBtX2Ns
aWVudChjbGllbnQpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiAgICAgLCBtX2xhdW5j
aE9wdGlvbnMobGF1bmNoT3B0aW9ucykKICAgICAsIG1fcHJvY2Vzc0lkZW50aWZpZXIoMCkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNz
TGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJv
Y2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4IGExNjYwYjRlYzk0YWVmOGFhM2Y4NDdiMzMxMDgxYWI0
ODEzZjA0YjIuLjY0ODlmNWIzMGM4ODYzMmJkMmI0YThiNGExYjY0YzgyZjk0YzE4ZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNo
ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nl
c3NMYXVuY2hlck1hYy5tbQpAQCAtMTg2LDcgKzE4Niw3IEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVy
OjpsYXVuY2hQcm9jZXNzKCkKIAogICAgIHhwY19kaWN0aW9uYXJ5X3NldF92YWx1ZShib290c3Ry
YXBNZXNzYWdlLmdldCgpLCAiZXh0cmEtaW5pdGlhbGl6YXRpb24tZGF0YSIsIGV4dHJhSW5pdGlh
bGl6YXRpb25EYXRhLmdldCgpKTsKIAotICAgIGF1dG8gd2Vha1Byb2Nlc3NMYXVuY2hlciA9IG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAgIGF1dG8gd2Vha1Byb2Nlc3NMYXVu
Y2hlciA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiAgICAgeHBjX2Nv
bm5lY3Rpb25fc2V0X2V2ZW50X2hhbmRsZXIobV94cGNDb25uZWN0aW9uLmdldCgpLCBbd2Vha1By
b2Nlc3NMYXVuY2hlciwgbGlzdGVuaW5nUG9ydF0oeHBjX29iamVjdF90IGV2ZW50KSB7CiAgICAg
ICAgIEFTU0VSVCh4cGNfZ2V0X3R5cGUoZXZlbnQpID09IFhQQ19UWVBFX0VSUk9SKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oCmluZGV4IDIwMzIwMDA2NTU3
NmY1ODA3ZjJjZTE2MTdhZWM5YmQ0OWU5ZjE3ODUuLjRkNGRjNjZmMjU1ZWE2ZmNjNDBjZTNhM2Ni
YjM1ZTRkODEyMmY4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nl
c3NBc3NlcnRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0
aW9uLmgKQEAgLTY5LDcgKzY5LDcgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogI2lmIFBMQVRG
T1JNKElPUykgJiYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1IpCi0gICAgV2Vha1B0cjxQcm9jZXNz
QXNzZXJ0aW9uPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVX
ZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPFByb2Nlc3NBc3NlcnRpb24+IGNyZWF0ZVdlYWtQdHIo
KSB7IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAgICAgdm9p
ZCBtYXJrQXNJbnZhbGlkYXRlZCgpOwogCiAgICAgUmV0YWluUHRyPEJLU1Byb2Nlc3NBc3NlcnRp
b24+IG1fYXNzZXJ0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
aW5kZXggMTI2NTc4MWQ5MzUwNzE3N2MzOTA5MmYzOTFjNGQ3MGUyNTc5ZWFlMy4uZjNiNTJmZTVk
ZTVlMGM1MzJlY2I2NjNhZjJmNzFjOWI3MWZjNTQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zNjUsNyArMzY1LDYgQEAgV2ViUGFnZVByb3h5OjpXZWJQ
YWdlUHJveHkoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNz
LCB1aW4KICNlbmRpZgogICAgICwgbV9wYWdlTG9hZFN0YXRlKCp0aGlzKQogICAgICwgbV9jb25m
aWd1cmF0aW9uUHJlZmVyZW5jZVZhbHVlcyhtX2NvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VWYWx1
ZXMoKSkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKICAgICBtX3dlYlByb2Nlc3NM
aWZldGltZVRyYWNrZXIuYWRkT2JzZXJ2ZXIobV92aXNpdGVkTGlua1N0b3JlKTsKICAgICBtX3dl
YlByb2Nlc3NMaWZldGltZVRyYWNrZXIuYWRkT2JzZXJ2ZXIobV93ZWJzaXRlRGF0YVN0b3JlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYjU2NGNkYzM1ODMzZmU3
NzU2YzFlZWYzYjcwZGVkN2U4MDFlMDYyZi4uNzE1MjgyMjQwOGZjOTQ3ODRkZDNmNjM2NmI2NTQx
YTA0YWI5ZmUzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEx
OTAsNyArMTE5MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdhbWVwYWRBY3Rpdml0eShjb25zdCBW
ZWN0b3I8R2FtZXBhZERhdGE+JiwgYm9vbCBzaG91bGRNYWtlR2FtZXBhZHNWaXNpYmxlKTsKICNl
bmRpZgogICAgICAgICAKLSAgICBXZWFrUHRyPFdlYlBhZ2VQcm94eT4gY3JlYXRlV2Vha1B0cigp
IGNvbnN0IHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAg
V2Vha1B0cjxXZWJQYWdlUHJveHk+IGNyZWF0ZVdlYWtQdHIoKSBjb25zdCB7IHJldHVybiBtX3dl
YWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKmNvbnN0X2Nhc3Q8V2ViUGFnZVByb3h5Kj4odGhp
cykpOyB9CiAKICAgICB2b2lkIGlzTG9hZGluZ0NoYW5nZWQoKSB7IGFjdGl2aXR5U3RhdGVEaWRD
aGFuZ2UoV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNMb2FkaW5nKTsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCmluZGV4IDQyNzVh
ZTMxMTVhNmQyNTE4NGJjMmJkZGQ4MmQwNGE1NWE5OTk3YmYuLmU1OGRkNjEzMDhkYzc3ZGMyNjk4
ZGI2OWI3NzRjNzEzNTQyNTM3OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB1
aW50NjRfdCBuZXh0VHJhbnNhY3Rpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFRyYW5z
YWN0aW9uSUQgKyAxOyB9CiAgICAgdWludDY0X3QgbGFzdENvbW1pdHRlZFRyYW5zYWN0aW9uSUQo
KSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRUcmFuc2FjdGlvbklEOyB9CiAKLSAgICBXZWFrUHRy
PFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93
ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPFJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9y
eS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiBwcml2YXRlOgogICAgIC8vIERyYXdpbmdBcmVh
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEu
bW0KaW5kZXggZTBmZTRjMTNhZmM3ZjQxYjQ0NzU3YjViZjgwMmRhYTE3YWMyMjFiMi4uOWViYTlh
OWQ3OGQ1ZDNhZDZjZjRhMmNmODZkOGE5ZGE4YzQxMGY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQpAQCAtNjAsNyArNjAsNiBA
QCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEo
V2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgVwogICAgICwgbV9yZW1vdGVMYXllclRyZWVDb250ZXh0
KHN0ZDo6bWFrZV91bmlxdWU8UmVtb3RlTGF5ZXJUcmVlQ29udGV4dD4od2ViUGFnZSkpCiAgICAg
LCBtX3Jvb3RMYXllcihHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3Rvcnko
KSwgKnRoaXMpKQogICAgICwgbV9sYXllckZsdXNoVGltZXIoKnRoaXMsICZSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMp
CiB7CiAgICAgd2ViUGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLnNldEZvcmNlQ29tcG9zaXRp
bmdNb2RlKHRydWUpOwogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCAz
ZGRlYmI1Y2JlODE5NzE0YjdlYWYzYjU5YzdjOTM4ZjRlM2M1MzJiLi4zNDNjMmM3ZmI3OTU5YzRh
OWFhNTE1MjExOGRjMDZmODZiODcwMTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC0xOTUsNyAr
MTk1LDYgQEAgQGVuZAogV2ViRWRpdG9yQ2xpZW50OjpXZWJFZGl0b3JDbGllbnQoV2ViVmlldyAq
d2ViVmlldykKICAgICA6IG1fd2ViVmlldyh3ZWJWaWV3KQogICAgICwgbV91bmRvVGFyZ2V0KGFk
b3B0TlMoW1tXZWJFZGl0b3JVbmRvVGFyZ2V0IGFsbG9jXSBpbml0XSkpCi0gICAgLCBtX3dlYWtQ
dHJGYWN0b3J5KHRoaXMpCiB7CiB9CiAKQEAgLTEyNDcsNyArMTI0Niw3IEBAIHZvaWQgV2ViRWRp
dG9yQ2xpZW50OjpyZXF1ZXN0Q2FuZGlkYXRlc0ZvclNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBzZWxlCiAgICAgbV9wYXJhZ3JhcGhDb250ZXh0Rm9yQ2FuZGlkYXRlUmVxdWVzdCA9
IHBsYWluVGV4dChmcmFtZS0+ZWRpdG9yKCkuY29udGV4dFJhbmdlRm9yQ2FuZGlkYXRlUmVxdWVz
dCgpLmdldCgpKTsKIAogICAgIE5TVGV4dENoZWNraW5nVHlwZXMgY2hlY2tpbmdUeXBlcyA9IE5T
VGV4dENoZWNraW5nVHlwZVNwZWxsaW5nIHwgTlNUZXh0Q2hlY2tpbmdUeXBlUmVwbGFjZW1lbnQg
fCBOU1RleHRDaGVja2luZ1R5cGVDb3JyZWN0aW9uOwotICAgIGF1dG8gd2Vha0VkaXRvciA9IG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAgIGF1dG8gd2Vha0VkaXRvciA9IG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiAgICAgbV9sYXN0Q2FuZGlkYXRl
UmVxdWVzdFNlcXVlbmNlTnVtYmVyID0gW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNr
ZXJdIHJlcXVlc3RDYW5kaWRhdGVzRm9yU2VsZWN0ZWRSYW5nZTptX3JhbmdlRm9yQ2FuZGlkYXRl
cyBpblN0cmluZzptX3BhcmFncmFwaENvbnRleHRGb3JDYW5kaWRhdGVSZXF1ZXN0LmdldCgpIHR5
cGVzOmNoZWNraW5nVHlwZXMgb3B0aW9uczpuaWwgaW5TcGVsbERvY3VtZW50V2l0aFRhZzpzcGVs
bENoZWNrZXJEb2N1bWVudFRhZygpIGNvbXBsZXRpb25IYW5kbGVyOlt3ZWFrRWRpdG9yXShOU0lu
dGVnZXIgc2VxdWVuY2VOdW1iZXIsIE5TQXJyYXk8TlNUZXh0Q2hlY2tpbmdSZXN1bHQgKj4gKmNh
bmRpZGF0ZXMpIHsKICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVl
dWUoKSwgXnsKICAgICAgICAgICAgIGlmICghd2Vha0VkaXRvcikKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhZWIwMmEzODBmNTFmZWU1OTFhZmIy
YTIyYTAyZTIzYTcxMzAzYTQzLi4yYzA4Nzk3M2U2YmEzMDdmZTUwOWMxMTJiMDQyNjk5Y2FjYmIx
MjBmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTctMDktMjIgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNv
bT4KKworICAgICAgICBXZWFrUHRyRmFjdG9yeSBzaG91bGQgcG9wdWxhdGUgbV9yZWYgbGF6aWx5
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3Mzc1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9XZWFrUHRyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorCiAyMDE3LTA5LTIyICBUaW0gSG9ydG9uIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5j
b20+IGFuZCBNaWNoYWVsIENhdGFuemFybyA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFJlbW92ZSBidWlsZC13ZWJraXQncyBub3Rpb24gb2YgZmVhdHVyZSBmbGFncyBoYXZpbmcg
YSBkZWZhdWx0IHZhbHVlCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9XZWFrUHRyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dlYWtQdHIuY3Bw
CmluZGV4IDc0NWFhZGQyYmQ1MmI3MGE5NjM4OGY1MDc0ZTEzYTNiYjZlZWFhYjQuLjFhMTIwYzY0
NjdiMWQzNzNlZGU4MmI2NTg4YzBkMjk5OTBiYjY5ZDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1dlYWtQdHIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1dlYWtQdHIuY3BwCkBAIC02MCw5ICs2MCw5IEBAIFRFU1QoV1RGX1dlYWtQdHIs
IEFzc2lnbm1lbnQpCiAgICAgaW50IGR1bW15ID0gNTsKICAgICBXZWFrUHRyPGludD4gd2Vha1B0
cjsKICAgICB7Ci0gICAgICAgIFdlYWtQdHJGYWN0b3J5PGludD4gZmFjdG9yeSgmZHVtbXkpOwor
ICAgICAgICBXZWFrUHRyRmFjdG9yeTxpbnQ+IGZhY3Rvcnk7CiAgICAgICAgIEVYUEVDVF9OVUxM
KHdlYWtQdHIuZ2V0KCkpOwotICAgICAgICB3ZWFrUHRyID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCk7CisgICAgICAgIHdlYWtQdHIgPSBmYWN0b3J5LmNyZWF0ZVdlYWtQdHIoJmR1bW15KTsKICAg
ICAgICAgRVhQRUNUX0VRKHdlYWtQdHIuZ2V0KCksICZkdW1teSk7CiAgICAgfQogICAgIEVYUEVD
VF9OVUxMKHdlYWtQdHIuZ2V0KCkpOwpAQCAtNzIsMTAgKzcyLDEwIEBAIFRFU1QoV1RGX1dlYWtQ
dHIsIE11bHRpcGxlRmFjdG9yaWVzKQogewogICAgIGludCBkdW1teTEgPSA1OwogICAgIGludCBk
dW1teTIgPSA3OwotICAgIFdlYWtQdHJGYWN0b3J5PGludD4qIGZhY3RvcnkxID0gbmV3IFdlYWtQ
dHJGYWN0b3J5PGludD4oJmR1bW15MSk7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8aW50PiogZmFjdG9y
eTIgPSBuZXcgV2Vha1B0ckZhY3Rvcnk8aW50PigmZHVtbXkyKTsKLSAgICBXZWFrUHRyPGludD4g
d2Vha1B0cjEgPSBmYWN0b3J5MS0+Y3JlYXRlV2Vha1B0cigpOwotICAgIFdlYWtQdHI8aW50PiB3
ZWFrUHRyMiA9IGZhY3RvcnkyLT5jcmVhdGVXZWFrUHRyKCk7CisgICAgV2Vha1B0ckZhY3Rvcnk8
aW50PiogZmFjdG9yeTEgPSBuZXcgV2Vha1B0ckZhY3Rvcnk8aW50PigpOworICAgIFdlYWtQdHJG
YWN0b3J5PGludD4qIGZhY3RvcnkyID0gbmV3IFdlYWtQdHJGYWN0b3J5PGludD4oKTsKKyAgICBX
ZWFrUHRyPGludD4gd2Vha1B0cjEgPSBmYWN0b3J5MS0+Y3JlYXRlV2Vha1B0cigmZHVtbXkxKTsK
KyAgICBXZWFrUHRyPGludD4gd2Vha1B0cjIgPSBmYWN0b3J5Mi0+Y3JlYXRlV2Vha1B0cigmZHVt
bXkyKTsKICAgICBFWFBFQ1RfRVEod2Vha1B0cjEuZ2V0KCksICZkdW1teTEpOwogICAgIEVYUEVD
VF9FUSh3ZWFrUHRyMi5nZXQoKSwgJmR1bW15Mik7CiAgICAgRVhQRUNUX1RSVUUod2Vha1B0cjEg
IT0gd2Vha1B0cjIpOwpAQCAtOTEsMTAgKzkxLDEwIEBAIFRFU1QoV1RGX1dlYWtQdHIsIE11bHRp
cGxlRmFjdG9yaWVzKQogVEVTVChXVEZfV2Vha1B0ciwgUmV2b2tlQWxsKQogewogICAgIGludCBk
dW1teSA9IDU7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8aW50PiBmYWN0b3J5KCZkdW1teSk7Ci0gICAg
V2Vha1B0cjxpbnQ+IHdlYWtQdHIxID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7Ci0gICAgV2Vh
a1B0cjxpbnQ+IHdlYWtQdHIyID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7Ci0gICAgV2Vha1B0
cjxpbnQ+IHdlYWtQdHIzID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgV2Vha1B0ckZh
Y3Rvcnk8aW50PiBmYWN0b3J5OworICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMSA9IGZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigmZHVtbXkpOworICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMiA9IGZhY3Rv
cnkuY3JlYXRlV2Vha1B0cigmZHVtbXkpOworICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMyA9IGZh
Y3RvcnkuY3JlYXRlV2Vha1B0cigmZHVtbXkpOwogICAgIEVYUEVDVF9FUSh3ZWFrUHRyMS5nZXQo
KSwgJmR1bW15KTsKICAgICBFWFBFQ1RfRVEod2Vha1B0cjIuZ2V0KCksICZkdW1teSk7CiAgICAg
RVhQRUNUX0VRKHdlYWtQdHIzLmdldCgpLCAmZHVtbXkpOwpAQCAtMTA0LDE1ICsxMDQsNiBAQCBU
RVNUKFdURl9XZWFrUHRyLCBSZXZva2VBbGwpCiAgICAgRVhQRUNUX05VTEwod2Vha1B0cjMuZ2V0
KCkpOwogfQogCi1URVNUKFdURl9XZWFrUHRyLCBOdWxsRmFjdG9yeSkKLXsKLSAgICBXZWFrUHRy
RmFjdG9yeTxpbnQ+IGZhY3RvcnkobnVsbHB0cik7Ci0gICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIg
PSBmYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKLSAgICBFWFBFQ1RfTlVMTCh3ZWFrUHRyLmdldCgp
KTsKLSAgICBmYWN0b3J5LnJldm9rZUFsbCgpOwotICAgIEVYUEVDVF9OVUxMKHdlYWtQdHIuZ2V0
KCkpOwotfQotCiBzdHJ1Y3QgRm9vIHsKICAgICB2b2lkIGJhcigpIHsgfTsKIH07CkBAIC0xMjAs
OCArMTExLDggQEAgc3RydWN0IEZvbyB7CiBURVNUKFdURl9XZWFrUHRyLCBEZXJlZmVyZW5jZSkK
IHsKICAgICBGb28gZjsKLSAgICBXZWFrUHRyRmFjdG9yeTxGb28+IGZhY3RvcnkoJmYpOwotICAg
IFdlYWtQdHI8Rm9vPiB3ZWFrUHRyID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgV2Vh
a1B0ckZhY3Rvcnk8Rm9vPiBmYWN0b3J5OworICAgIFdlYWtQdHI8Rm9vPiB3ZWFrUHRyID0gZmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCZmKTsKICAgICB3ZWFrUHRyLT5iYXIoKTsKIH0KIApAQCAtMTMw
LDEzICsxMjEsMTMgQEAgVEVTVChXVEZfV2Vha1B0ciwgRm9yZ2V0KQogICAgIGludCBkdW1teSA9
IDU7CiAgICAgaW50IGR1bW15MiA9IDc7CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxpbnQ+IG91dGVy
RmFjdG9yeSgmZHVtbXkyKTsKKyAgICBXZWFrUHRyRmFjdG9yeTxpbnQ+IG91dGVyRmFjdG9yeTsK
ICAgICBXZWFrUHRyPGludD4gd2Vha1B0cjEsIHdlYWtQdHIyLCB3ZWFrUHRyMywgd2Vha1B0cjQ7
CiAgICAgewotICAgICAgICBXZWFrUHRyRmFjdG9yeTxpbnQ+IGlubmVyRmFjdG9yeSgmZHVtbXkp
OwotICAgICAgICB3ZWFrUHRyMSA9IGlubmVyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7Ci0gICAg
ICAgIHdlYWtQdHIyID0gaW5uZXJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKLSAgICAgICAgd2Vh
a1B0cjMgPSBpbm5lckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAgICAgICBXZWFrUHRyRmFj
dG9yeTxpbnQ+IGlubmVyRmFjdG9yeTsKKyAgICAgICAgd2Vha1B0cjEgPSBpbm5lckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigmZHVtbXkpOworICAgICAgICB3ZWFrUHRyMiA9IGlubmVyRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCZkdW1teSk7CisgICAgICAgIHdlYWtQdHIzID0gaW5uZXJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoJmR1bW15KTsKICAgICAgICAgRVhQRUNUX0VRKHdlYWtQdHIxLmdldCgpLCAm
ZHVtbXkpOwogICAgICAgICBFWFBFQ1RfRVEod2Vha1B0cjIuZ2V0KCksICZkdW1teSk7CiAgICAg
ICAgIEVYUEVDVF9FUSh3ZWFrUHRyMy5nZXQoKSwgJmR1bW15KTsKQEAgLTE2Niw3ICsxNTcsNyBA
QCBURVNUKFdURl9XZWFrUHRyLCBGb3JnZXQpCiAgICAgICAgIEVYUEVDVF9OVUxMKHdlYWtQdHI1
LmdldCgpKTsKICAgICAgICAgRVhQRUNUX0VRKHdlYWtQdHIyLmdldCgpLCAmZHVtbXkpOwogCi0g
ICAgICAgIHdlYWtQdHI0ID0gb3V0ZXJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICAgICAg
d2Vha1B0cjQgPSBvdXRlckZhY3RvcnkuY3JlYXRlV2Vha1B0cigmZHVtbXkyKTsKICAgICAgICAg
RVhQRUNUX0VRKHdlYWtQdHIyLmdldCgpLCAmZHVtbXkpOwogICAgICAgICBFWFBFQ1RfRVEod2Vh
a1B0cjQuZ2V0KCksICZkdW1teTIpOwogICAgIH0KQEAgLTE4NCw3ICsxNzUsNyBAQCBURVNUKFdU
Rl9XZWFrUHRyLCBGb3JnZXQpCiAgICAgRVhQRUNUX05VTEwod2Vha1B0cjYuZ2V0KCkpOwogICAg
IEVYUEVDVF9FUSh3ZWFrUHRyNS5nZXQoKSwgd2Vha1B0cjYuZ2V0KCkpOwogCi0gICAgV2Vha1B0
cjxpbnQ+IHdlYWtQdHI3ID0gb3V0ZXJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBXZWFr
UHRyPGludD4gd2Vha1B0cjcgPSBvdXRlckZhY3RvcnkuY3JlYXRlV2Vha1B0cigmZHVtbXkyKTsK
ICAgICBFWFBFQ1RfRVEod2Vha1B0cjcuZ2V0KCksICZkdW1teTIpOwogICAgIHdlYWtQdHI3ID0g
bnVsbHB0cjsKICAgICBFWFBFQ1RfTlVMTCh3ZWFrUHRyNy5nZXQoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321584</attachid>
            <date>2017-09-22 12:57:46 -0700</date>
            <delta_ts>2017-09-22 16:43:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177375-20170922125746.patch</filename>
            <type>text/plain</type>
            <size>102597</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMzk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNhY2Q4MjNjMzdjZDIwMTRlODAzNzUw
YjczOTRkNTgxYzJkMjMyZjIuLmE0YzUzMWM1MWQxZTI5NTE2NDRlNmNiYmIzYjkxOTg1N2I4YjA5
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTctMDktMjIgIFphbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBXZWFrUHRyRmFjdG9yeSBzaG91bGQgcG9wdWxhdGUgbV9y
ZWYgbGF6aWx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc3Mzc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBoZWxwcyB1cyB3aXRoIHRoZSBvdmVyaGVhZCBvZiBpbml0aWFsaXppbmcgV2Vha1B0
ckZhY3RvcnkgZm9yCisgICAgICAgIG9iamVjdHMgdGhhdCByYXJlbHkgZW5kIHVwIGNyZWF0aW5n
IHRoZSB3ZWFrIHJlZmVyZW5jZS4KKyAgICAgICAgLVRoaXMgaXMgaW4gcHJlcGFyYXRpb24gZm9y
IGludHJvZHVjaW5nIFdlYWtQdHIgdG8gUmVuZGVyT2JqZWN0LiAKKworICAgICAgICAqIHd0Zi9X
ZWFrUHRyLmg6CisgICAgICAgIChXVEY6OldlYWtSZWZlcmVuY2U6OmdldCBjb25zdCk6CisgICAg
ICAgIChXVEY6OldlYWtSZWZlcmVuY2U6OmNsZWFyKToKKyAgICAgICAgKFdURjo6V2Vha1JlZmVy
ZW5jZTo6V2Vha1JlZmVyZW5jZSk6CisgICAgICAgIChXVEY6OldlYWtQdHJGYWN0b3J5Ojp+V2Vh
a1B0ckZhY3RvcnkpOgorICAgICAgICAoV1RGOjpXZWFrUHRyRmFjdG9yeTo6Y3JlYXRlV2Vha1B0
ciBjb25zdCk6CisgICAgICAgIChXVEY6OldlYWtQdHJGYWN0b3J5OjpyZXZva2VBbGwpOgorICAg
ICAgICAoV1RGOjpXZWFrUHRyRmFjdG9yeTo6V2Vha1B0ckZhY3RvcnkpOiBEZWxldGVkLgorCiAy
MDE3LTA5LTIxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgTWFrZSBTdHJpbmdCdWlsZGVyIG1vdmFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNTNlMTY2
NzVhNjlmMzIxY2FmNGNmOTEwNTg4YzY3ZmQzZWZiOTM1Li42ZGU2OWUyYjk0MmNlZTEzM2VmMDJj
ZjFjYjViNjIxMGI3NWUxYWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTY2IEBACisyMDE3LTA5
LTIyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2Vha1B0ckZh
Y3Rvcnkgc2hvdWxkIHBvcHVsYXRlIG1fcmVmIGxhemlseS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzM3NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0RNOjpDRE0pOgorICAgICAgICAqIE1vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvQ0RNLmg6CisgICAgICAgIChXZWJDb3JlOjpDRE06OmNyZWF0ZVdlYWtQdHIp
OgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6TWVkaWFLZXlTZXNzaW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6Z2VuZXJhdGVSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUtleVNlc3Npb246OnVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Np
b246OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6cmVtb3ZlKToK
KyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYUtleXM6Ok1lZGlhS2V5cyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUtleXM6OmNyZWF0ZVNlc3Npb24pOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFEZXZpY2VzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6TWVkaWFEZXZp
Y2VzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTdHJlYW1UcmFjazo6TWVkaWFTdHJlYW1UcmFjayk6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbVRyYWNrOjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCk6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAg
KiBhbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1h
dGlvbjo6V2ViQW5pbWF0aW9uKToKKyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9uLmg6
CisgICAgICAgICogY3NzL0ZvbnRGYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGYWNl
OjpGb250RmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpGb250RmFjZTo6Y3JlYXRlV2Vha1B0cik6
CisgICAgICAgIChXZWJDb3JlOjpGb250RmFjZTo6Y3JlYXRlV2Vha1B0ciBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgICogY3NzL0ZvbnRGYWNlLmg6CisgICAgICAgICogY3NzL1N0eWxlU2hlZXRD
b250ZW50cy5oOgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtTGlzdDo6RGF0YVRyYW5zZmVySXRlbUxpc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUxpc3Q6OmFkZCk6CisgICAgICAg
IChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtTGlzdDo6ZW5zdXJlSXRlbXMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUxpc3Q6OmRpZFNldFN0cmluZ0RhdGEpOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
cG9zdFRhc2spOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVt
ZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIGh0bWwvSFRN
TFBpY3R1cmVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFJlc291cmNlUHJl
bG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUmVzb3VyY2VQcmVsb2FkZXI6OkhUTUxS
ZXNvdXJjZVByZWxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUmVzb3VyY2VQcmVsb2Fk
ZXI6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIGxvYWRlci9MaW5rTG9hZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxpbmtMb2FkZXI6OkxpbmtMb2FkZXIpOgorICAgICAgICAqIGxvYWRl
ci9MaW5rTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjpjcmVhdGVXZWFr
UHRyKToKKyAgICAgICAgKiBsb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVJlc291cmNlTG9hZGVyOjpNZWRpYVJlc291cmNlTG9hZGVyKToKKyAg
ICAgICAgKiBsb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIHBhZ2UvRE9N
V2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6RE9NV2luZG93KToKKyAg
ICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBsYXRmb3JtL0dlbmVyaWNUYXNr
UXVldWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGFza0Rpc3BhdGNoZXI8VGltZXI+OjpUYXNr
RGlzcGF0Y2hlcik6CisgICAgICAgIChXZWJDb3JlOjpUYXNrRGlzcGF0Y2hlcjxUaW1lcj46OnBv
c3RUYXNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmg6CisgICAgICAg
IChXZWJDb3JlOjpHZW5lcmljVGFza1F1ZXVlOjpHZW5lcmljVGFza1F1ZXVlKToKKyAgICAgICAg
KFdlYkNvcmU6OkdlbmVyaWNUYXNrUXVldWU6OmVucXVldWVUYXNrKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6
OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGJhci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxiYXI6OlNjcm9sbGJhcik6CisgICAgICAgICogcGxhdGZvcm0v
U2Nyb2xsYmFyLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXI6OmNyZWF0ZVdlYWtQdHIp
OgorICAgICAgICAqIHBsYXRmb3JtL1dpZGdldC5oOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0
OjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9IYXJk
d2FyZUxpc3RlbmVyTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvSGFyZHdhcmVMaXN0
ZW5lck1hYzo6QXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FzY2FkZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6
Rm9udENhc2NhZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmg6
CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6Y3JlYXRlV2Vha1B0ciBjb25zdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb246Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbik6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
OjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAoV2ViQ29yZTo6
Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25P
YmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM6OkNE
TVNlc3Npb25BVkZvdW5kYXRpb25PYmpDKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tOgorICAgICAgICAo
V2ViQ29yZTo6Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vz
c2lvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OnNpemVXaWxsQ2hhbmdlQXRUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
OjphYm9ydCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1Yu
bW06CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlQ2FjaGVDVjo6VGV4dHVyZUNhY2hlQ1YpOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZUNhY2hlQ1Y6OnRleHR1cmVGcm9tSW1hZ2UpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpEaXNwbGF5UmVm
cmVzaE1vbml0b3JNYWMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9y
TWFjOjpkaXNwbGF5TGlua0ZpcmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUmVtb3RlQ29t
bWFuZExpc3RlbmVySU9TLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVu
ZXJJT1M6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9SZW1vdGVDb21t
YW5kTGlzdGVuZXJJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVu
ZXJJT1M6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUyk6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5oOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29t
bWFuZExpc3RlbmVyTWFjOjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW1Qcml2YXRlOjpNZWRpYVN0cmVhbVByaXZhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW1Qcml2YXRlOjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U6OlJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2Nr
L01vY2tNZWRpYUVuZHBvaW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYUVuZHBv
aW50OjpNb2NrTWVkaWFFbmRwb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFFbmRw
b2ludDo6Z2VuZXJhdGVEdGxzSW5mbyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck11bHRp
Q29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck11
bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyOjpSZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFj
ZWhvbGRlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBs
YWNlaG9sZGVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6UmVuZGVyVmlldyk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclZpZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlcldpZGdldDo6UmVuZGVyV2lkZ2V0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyV2lkZ2V0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJXaWRnZXQ6
OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIHJlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6OlJvb3RJbmxpbmVCb3gpOgorICAgICAg
ICAqIHJlbmRlcmluZy9Sb290SW5saW5lQm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5s
aW5lQm94OjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6OlNWR1BhdGhFbGVtZW50KToKKyAg
ICAgICAgKiBzdmcvU1ZHUGF0aEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9T
VkdNYXRyaXhUZWFyT2ZmLmg6CisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ0RNRmFjdG9yeTo6TW9ja0NETUZhY3RvcnkpOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja0NETUZhY3Rvcnk6OmNyZWF0ZUNETSk6CisgICAgICAgIChXZWJD
b3JlOjpNb2NrQ0RNOjpNb2NrQ0RNKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDRE06OmNyZWF0
ZUluc3RhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6Om1fd2Vha1B0ckZhY3RvcnkpOiBEZWxldGVk
LgorCiAyMDE3LTA5LTIyICBCYXN1a2UgU3V6dWtpICA8QmFzdWtlLlN1enVraUBzb255LmNvbT4K
IAogICAgICAgICBbQ3VybF0gVXNlIGRpZFJlY2VpdmVCdWZmZXIgaW5zdGVhZCBvZiBkaWRSZWNl
aXZlRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggNjk4ODBjMThhZTExZmNlODdkOTgzMTRkNDM0
NjBmMzExZDQ1ODRjOC4uZTI1ZTY4MzU3ODQ4MWE2NjBkNjAwNGJhN2FhNTJlYmEyZTM5YTQxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDktMjIgIFphbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBXZWFrUHRyRmFjdG9yeSBzaG91bGQg
cG9wdWxhdGUgbV9yZWYgbGF6aWx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc3Mzc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBwYWwvc3lzdGVtL21hYy9TeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1t
OgorICAgICAgICAoUEFMOjpTeXN0ZW1TbGVlcExpc3RlbmVyTWFjOjpTeXN0ZW1TbGVlcExpc3Rl
bmVyTWFjKToKKwogMjAxNy0wOS0yMSAgWW9zaGlha2kgSml0c3VrYXdhICA8WW9zaGlha2kuSml0
c3VrYXdhQHNvbnkuY29tPgogCiAgICAgICAgIFtQQUxdIE1vdmUgTWVkaWFUaW1lQVZGb3VuZGF0
aW9uIGludG8gUEFMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ3YzU3MTI0MGIxZDJiYTQ5YzBmODlmMTkxNmIwMDFm
ZWNmOWQ1ZTIuLjM5NTk5MDc5ZDg4YjEyN2FhOGY0NjA2N2M2ZDkwMDg1MjJmMmM1MTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTctMDktMjIgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KKworICAgICAgICBXZWFrUHRyRmFjdG9yeSBzaG91bGQgcG9wdWxhdGUgbV9yZWYg
bGF6aWx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTc3Mzc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6V2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94
eTo6Y2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YXltZW50Q29vcmRpbmF0b3JQcm94eTo6b3BlblBheW1lbnRTZXR1cCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FwcGxlUGF5L21hYy9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eU1hYy5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtU2hvd1Bh
eW1lbnRVSSk6CisgICAgICAgICogVUlQcm9jZXNzL0FwcGxpY2F0aW9uU3RhdGVUcmFja2VyLm1t
OgorICAgICAgICAoV2ViS2l0OjpBcHBsaWNhdGlvblN0YXRlVHJhY2tlcjo6QXBwbGljYXRpb25T
dGF0ZVRyYWNrZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNz
TGF1bmNoZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NM
YXVuY2hlcik6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNo
ZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vz
cyk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uaDoKKyAgICAgICAgKFdl
YktpdDo6UHJvY2Vzc0Fzc2VydGlvbjo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fY29uZmlndXJhdGlvblBy
ZWZlcmVuY2VWYWx1ZXMpOgorICAgICAgICAoV2ViS2l0OjptX3dlYWtQdHJGYWN0b3J5KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRlV2Vha1B0ciBjb25zdCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5o
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Y3JlYXRlV2Vh
a1B0cik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWE6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhKToKKwogMjAxNy0wOS0y
MiAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBOb24tcHJl
dmFsZW50IHJlc291cmNlcyBzaG91bGQgYmUgYWxsb3dlZCBhY2Nlc3MgdG8gZXhpc3RpbmcgY29v
a2llcyBpbiBhIHRoaXJkLXBhcnR5IGNvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpp
bmRleCAxMGZjMTY2ODNmNzNlZjMxMWViMTViOThkOWFkY2RhYWIyNzkzMWY1Li40MzAzNGEwODk3
NTI0NjZjYWM3MjIxMWM4YWM1MjM4MDIwNGY3NmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDktMjIgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KKworICAgICAgICBXZWFrUHRyRmFjdG9yeSBzaG91bGQgcG9wdWxhdGUgbV9yZWYg
bGF6aWx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTc3Mzc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06CisgICAgICAgIChXZWJFZGl0b3JD
bGllbnQ6OldlYkVkaXRvckNsaWVudCk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnJlcXVl
c3RDYW5kaWRhdGVzRm9yU2VsZWN0aW9uKToKKwogMjAxNy0wOS0yMiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBoaWdoIHJlc29sdXRpb24gdGltZXN0YW1w
IGZvciBldmVudCB0aW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9XZWFrUHRyLmggYi9T
b3VyY2UvV1RGL3d0Zi9XZWFrUHRyLmgKaW5kZXggMjljYzA1NmQxMzlhYTA5MzM4N2IyMWE3NWY2
M2ViNjg2N2YxYzcyYS4uYmQyZjU0NDNkZTkxYTA4MmY3YWVmMzQyMzU1MmYxOWQxOTIwZWRhNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvV2Vha1B0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1dlYWtQdHIuaApAQCAtMzIsMTAgKzMyLDYgQEAKICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKLSNpZiBVU0UoV0VCX1RI
UkVBRCkKLSNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBX
VEYgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBXZWFrUHRyOwpAQCAtNDcsMjUgKzQz
LDkgQEAgY2xhc3MgV2Vha1JlZmVyZW5jZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxX
ZWFrUmVmZXJlbmNlPFQ+PiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2Vha1JlZmVyZW5j
ZTxUPik7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgVCogZ2V0
KCkgY29uc3QKLSAgICB7Ci0jaWYgVVNFKFdFQl9USFJFQUQpCi0gICAgICAgIEFTU0VSVChjYW5B
Y2Nlc3NUaHJlYWRMb2NhbERhdGFGb3JUaHJlYWQobV9ib3VuZFRocmVhZCkpOwotI2Vsc2UKLSAg
ICAgICAgQVNTRVJUKG1fYm91bmRUaHJlYWQgPT0gY3VycmVudFRocmVhZCgpKTsKLSNlbmRpZgot
ICAgICAgICByZXR1cm4gbV9wdHI7Ci0gICAgfQorICAgIFQqIGdldCgpIGNvbnN0IHsgcmV0dXJu
IG1fcHRyOyB9CiAKLSAgICB2b2lkIGNsZWFyKCkKLSAgICB7Ci0jaWYgVVNFKFdFQl9USFJFQUQp
Ci0gICAgICAgIEFTU0VSVChjYW5BY2Nlc3NUaHJlYWRMb2NhbERhdGFGb3JUaHJlYWQobV9ib3Vu
ZFRocmVhZCkpOwotI2Vsc2UKLSAgICAgICAgQVNTRVJUKG1fYm91bmRUaHJlYWQgPT0gY3VycmVu
dFRocmVhZCgpKTsKLSNlbmRpZgotICAgICAgICBtX3B0ciA9IG51bGxwdHI7Ci0gICAgfQorICAg
IHZvaWQgY2xlYXIoKSB7IG1fcHRyID0gbnVsbHB0cjsgfQogCiBwcml2YXRlOgogICAgIGZyaWVu
ZCBjbGFzcyBXZWFrUHRyPFQ+OwpAQCAtNzUsMTYgKzU1LDEwIEBAIHByaXZhdGU6CiAKICAgICBl
eHBsaWNpdCBXZWFrUmVmZXJlbmNlKFQqIHB0cikKICAgICAgICAgOiBtX3B0cihwdHIpCi0jaWZu
ZGVmIE5ERUJVRwotICAgICAgICAsIG1fYm91bmRUaHJlYWQoY3VycmVudFRocmVhZCgpKQotI2Vu
ZGlmCiAgICAgewogICAgIH0KIAogICAgIFQqIG1fcHRyOwotI2lmbmRlZiBOREVCVUcKLSAgICBU
aHJlYWRJZGVudGlmaWVyIG1fYm91bmRUaHJlYWQ7Ci0jZW5kaWYKIH07CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+CkBAIC0xMTgsMjMgKzkyLDMzIEBAIGNsYXNzIFdlYWtQdHJGYWN0b3J5IHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWFrUHRyRmFjdG9yeTxUPik7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgV2Vha1B0ckZhY3RvcnkoVCog
cHRyKSA6IG1fcmVmKFdlYWtSZWZlcmVuY2U8VD46OmNyZWF0ZShwdHIpKSB7IH0KLQotICAgIH5X
ZWFrUHRyRmFjdG9yeSgpIHsgbV9yZWYtPmNsZWFyKCk7IH0KKyAgICBXZWFrUHRyRmFjdG9yeSgp
ID0gZGVmYXVsdDsKKyAgICB+V2Vha1B0ckZhY3RvcnkoKQorICAgIHsKKyAgICAgICAgaWYgKCFt
X3JlZikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9yZWYtPmNsZWFyKCk7CisgICAg
fQogCi0gICAgLy8gV2Ugc2hvdWxkIGNvbnNpZGVyIGhhdmluZyBjcmVhdGVXZWFrUHRyIHBvcHVs
YXRlIG1fcmVmIHRoZSBmaXJzdCB0aW1lIGNyZWF0ZVdlYWtQdHIgaXMgY2FsbGVkLgotICAgIFdl
YWtQdHI8VD4gY3JlYXRlV2Vha1B0cigpIGNvbnN0IHsgcmV0dXJuIFdlYWtQdHI8VD4obV9yZWYu
Y29weVJlZigpKTsgfQorICAgIFdlYWtQdHI8VD4gY3JlYXRlV2Vha1B0cihUJiBwdHIpIGNvbnN0
CisgICAgeworICAgICAgICBpZiAoIW1fcmVmKQorICAgICAgICAgICAgbV9yZWYgPSBXZWFrUmVm
ZXJlbmNlPFQ+OjpjcmVhdGUoJnB0cik7CisgICAgICAgIEFTU0VSVCgmcHRyID09IG1fcmVmLT5n
ZXQoKSk7CisgICAgICAgIHJldHVybiBXZWFrUHRyPFQ+KFJlZjxXZWFrUmVmZXJlbmNlPFQ+Pigq
bV9yZWYpKTsKKyAgICB9CiAKICAgICB2b2lkIHJldm9rZUFsbCgpCiAgICAgewotICAgICAgICBU
KiBwdHIgPSBtX3JlZi0+Z2V0KCk7CisgICAgICAgIGlmICghbV9yZWYpCisgICAgICAgICAgICBy
ZXR1cm47CisKICAgICAgICAgbV9yZWYtPmNsZWFyKCk7Ci0gICAgICAgIC8vIFdlIGNyZWF0ZSBh
IG5ldyBXZWFrUmVmZXJlbmNlIHNvIHRoYXQgZnV0dXJlIGNhbGxzIHRvIGNyZWF0ZVdlYWtQdHIo
KSBjcmVhdGUgbm9uemVybyBXZWFrUHRycy4KLSAgICAgICAgbV9yZWYgPSBXZWFrUmVmZXJlbmNl
PFQ+OjpjcmVhdGUocHRyKTsKKyAgICAgICAgbV9yZWYgPSBudWxscHRyOwogICAgIH0KIAogcHJp
dmF0ZToKLSAgICBSZWY8V2Vha1JlZmVyZW5jZTxUPj4gbV9yZWY7CisgICAgbXV0YWJsZSBSZWZQ
dHI8V2Vha1JlZmVyZW5jZTxUPj4gbV9yZWY7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFdlYWtQdHI8VD4mIGEsIGNv
bnN0IFdlYWtQdHI8VT4mIGIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL0NETS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL0NETS5jcHAKaW5kZXggNjBlOGFhZGJjMjY3MjliZDljYzA5ZDRlOTFiMDExM2QzMzg2Yjhj
Yi4uYjc0MGJiMDg5NzI5OWE2MzZiZjExODNkZTAyNzU1MjllZDRhNjcxNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmNwcApAQCAtNTksNyArNTksNiBA
QCBSZWY8Q0RNPiBDRE06OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtKQogQ0RNOjpDRE0oRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGtl
eVN5c3RlbSkKICAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKCZkb2N1bWVudCkKICAg
ICAsIG1fa2V5U3lzdGVtKGtleVN5c3RlbSkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykK
IHsKICAgICBBU1NFUlQoc3VwcG9ydHNLZXlTeXN0ZW0oa2V5U3lzdGVtKSk7CiAgICAgZm9yIChh
dXRvKiBmYWN0b3J5IDogQ0RNRmFjdG9yeTo6cmVnaXN0ZXJlZEZhY3RvcmllcygpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uaAppbmRleCA0NmQ1M2FkMDUy
MzIzNWE0YzU4OTJiMmQxYjRkODI3MzIzN2MwMzIxLi45N2E0YzU1OGQwN2VkZWZmMTA0ZDI0OWRm
MWZjYWZjZDBkOWY3MmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL0NETS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVk
aWEvQ0RNLmgKQEAgLTk5LDcgKzk5LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6Om9wdGlvbmFsPE1l
ZGlhS2V5U3lzdGVtQ29uZmlndXJhdGlvbj4gIGdldFN1cHBvcnRlZENvbmZpZ3VyYXRpb24oY29u
c3QgTWVkaWFLZXlTeXN0ZW1Db25maWd1cmF0aW9uJiBjYW5kaWRhdGVDb25maWd1cmF0aW9uLCBN
ZWRpYUtleXNSZXN0cmljdGlvbnMmKTsKICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxNZWRpYUtl
eVN5c3RlbU1lZGlhQ2FwYWJpbGl0eT4+IGdldFN1cHBvcnRlZENhcGFiaWxpdGllc0ZvckF1ZGlv
VmlkZW9UeXBlKEF1ZGlvVmlkZW9UeXBlLCBjb25zdCBWZWN0b3I8TWVkaWFLZXlTeXN0ZW1NZWRp
YUNhcGFiaWxpdHk+JiByZXF1ZXN0ZWRDYXBhYmlsaXRpZXMsIGNvbnN0IE1lZGlhS2V5U3lzdGVt
Q29uZmlndXJhdGlvbiYgcGFydGlhbENvbmZpZ3VyYXRpb24sIE1lZGlhS2V5c1Jlc3RyaWN0aW9u
cyYpOwogCi0gICAgV2Vha1B0cjxDRE0+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQ
dHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8Q0RNPiBjcmVhdGVXZWFr
UHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQog
CiAgICAgdXNpbmcgQ29uc2VudFN0YXR1c0NhbGxiYWNrID0gV1RGOjpGdW5jdGlvbjx2b2lkKENv
bnNlbnRTdGF0dXMsIE1lZGlhS2V5U3lzdGVtQ29uZmlndXJhdGlvbiYmLCBNZWRpYUtleXNSZXN0
cmljdGlvbnMmJik+OwogICAgIHZvaWQgZ2V0Q29uc2VudFN0YXR1cyhNZWRpYUtleVN5c3RlbUNv
bmZpZ3VyYXRpb24mJiBhY2N1bXVsYXRlZENvbmZpZ3VyYXRpb24sIE1lZGlhS2V5c1Jlc3RyaWN0
aW9ucyYmLCBDb25zZW50U3RhdHVzQ2FsbGJhY2smJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKaW5kZXgg
Y2JkOTRjMDZmZjE2NjM3ZjY1Y2Y1NGU2MzliNDc4YzI0NDMyNjA3Ni4uNGQ4MjQ1Y2Y3Njk3ZDg4
YjM0YjhkNDM3MDk2ZWE0MGU4NGEyMmUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcApAQCAtNjIsNyAr
NjIsNiBAQCBNZWRpYUtleVNlc3Npb246Ok1lZGlhS2V5U2Vzc2lvbihTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBXZWFrUHRyPE1lZGlhSwogICAgICwgbV9pbXBsZW1lbnRhdGlvbihX
VEZNb3ZlKGltcGxlbWVudGF0aW9uKSkKICAgICAsIG1faW5zdGFuY2UoV1RGTW92ZShpbnN0YW5j
ZSkpCiAgICAgLCBtX2V2ZW50UXVldWUoKnRoaXMpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRo
aXMpCiB7CiAgICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2VuY3J5cHRlZC1tZWRpYS8jZG9t
LW1lZGlha2V5cy1zZXRzZXJ2ZXJjZXJ0aWZpY2F0ZQogICAgIC8vIFczQyBFZGl0b3IncyBEcmFm
dCAwOSBOb3ZlbWJlciAyMDE2CkBAIC0xODksNyArMTg4LDcgQEAgdm9pZCBNZWRpYUtleVNlc3Np
b246OmdlbmVyYXRlUmVxdWVzdChjb25zdCBBdG9taWNTdHJpbmcmIGluaXREYXRhVHlwZSwgY29u
c3QgQnUKICAgICAgICAgICAgIG1fbGF0ZXN0RGVjcnlwdFRpbWUgPSAwOwogICAgICAgICB9CiAK
LSAgICAgICAgbV9pbnN0YW5jZS0+cmVxdWVzdExpY2Vuc2UobV9zZXNzaW9uVHlwZSwgaW5pdERh
dGFUeXBlLCBXVEZNb3ZlKGluaXREYXRhKSwgW3RoaXMsIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoUmVmPFNo
YXJlZEJ1ZmZlcj4mJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCwgYm9vbCBuZWVk
c0luZGl2aWR1YWxpemF0aW9uLCBDRE1JbnN0YW5jZTo6U3VjY2Vzc1ZhbHVlIHN1Y2NlZWRlZCkg
bXV0YWJsZSB7CisgICAgICAgIG1faW5zdGFuY2UtPnJlcXVlc3RMaWNlbnNlKG1fc2Vzc2lvblR5
cGUsIGluaXREYXRhVHlwZSwgV1RGTW92ZShpbml0RGF0YSksIFt0aGlzLCB3ZWFrVGhpcyA9IG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXSAoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNlc3Np
b25JZCwgYm9vbCBuZWVkc0luZGl2aWR1YWxpemF0aW9uLCBDRE1JbnN0YW5jZTo6U3VjY2Vzc1Zh
bHVlIHN1Y2NlZWRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAg
ICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMjgyLDcgKzI4MSw3IEBAIHZvaWQgTWVkaWFLZXlT
ZXNzaW9uOjpsb2FkKGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBSZWY8RGVmZXJyZWRQcm9taXNl
PiYmIHByb21pCiAgICAgICAgIC8vIDguNi4gTGV0IG1lc3NhZ2UgdHlwZSBiZSBudWxsLgogICAg
ICAgICAvLyA4LjcuIExldCBjZG0gYmUgdGhlIENETSBpbnN0YW5jZSByZXByZXNlbnRlZCBieSB0
aGlzIG9iamVjdCdzIGNkbSBpbnN0YW5jZSB2YWx1ZS4KICAgICAgICAgLy8gOC44LiBVc2UgdGhl
IGNkbSB0byBleGVjdXRlIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgIG1faW5zdGFuY2Ut
PmxvYWRTZXNzaW9uKG1fc2Vzc2lvblR5cGUsICpzYW5pdGl6ZWRTZXNzaW9uSWQsIG9yaWdpbiwg
W3RoaXMsIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpLCBzYW5pdGl6ZWRTZXNzaW9uSWQgPSAqc2FuaXRpemVkU2Vz
c2lvbklkXSAoc3RkOjpvcHRpb25hbDxDRE1JbnN0YW5jZTo6S2V5U3RhdHVzVmVjdG9yPiYmIGtu
b3duS2V5cywgc3RkOjpvcHRpb25hbDxkb3VibGU+JiYgZXhwaXJhdGlvbiwgc3RkOjpvcHRpb25h
bDxDRE1JbnN0YW5jZTo6TWVzc2FnZT4mJiBtZXNzYWdlLCBDRE1JbnN0YW5jZTo6U3VjY2Vzc1Zh
bHVlIHN1Y2NlZWRlZCwgQ0RNSW5zdGFuY2U6OlNlc3Npb25Mb2FkRmFpbHVyZSBmYWlsdXJlKSBt
dXRhYmxlIHsKKyAgICAgICAgbV9pbnN0YW5jZS0+bG9hZFNlc3Npb24obV9zZXNzaW9uVHlwZSwg
KnNhbml0aXplZFNlc3Npb25JZCwgb3JpZ2luLCBbdGhpcywgd2Vha1RoaXMgPSBtX3dlYWtQdHJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwg
c2FuaXRpemVkU2Vzc2lvbklkID0gKnNhbml0aXplZFNlc3Npb25JZF0gKHN0ZDo6b3B0aW9uYWw8
Q0RNSW5zdGFuY2U6OktleVN0YXR1c1ZlY3Rvcj4mJiBrbm93bktleXMsIHN0ZDo6b3B0aW9uYWw8
ZG91YmxlPiYmIGV4cGlyYXRpb24sIHN0ZDo6b3B0aW9uYWw8Q0RNSW5zdGFuY2U6Ok1lc3NhZ2U+
JiYgbWVzc2FnZSwgQ0RNSW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQsIENETUluc3Rh
bmNlOjpTZXNzaW9uTG9hZEZhaWx1cmUgZmFpbHVyZSkgbXV0YWJsZSB7CiAgICAgICAgICAgICAv
LyA4LjguMS4gSWYgdGhlcmUgaXMgbm8gZGF0YSBzdG9yZWQgZm9yIHRoZSBzYW5pdGl6ZWQgc2Vz
c2lvbiBJRCBpbiB0aGUgb3JpZ2luLCByZXNvbHZlIHByb21pc2Ugd2l0aCBmYWxzZSBhbmQgYWJv
cnQgdGhlc2Ugc3RlcHMuCiAgICAgICAgICAgICAvLyA4LjguMi4gSWYgdGhlIHN0b3JlZCBzZXNz
aW9uJ3Mgc2Vzc2lvbiB0eXBlIGlzIG5vdCB0aGUgc2FtZSBhcyB0aGUgY3VycmVudCBNZWRpYUtl
eVNlc3Npb24gc2Vzc2lvbiB0eXBlLCByZWplY3QgcHJvbWlzZSB3aXRoIGEgbmV3bHkgY3JlYXRl
ZCBUeXBlRXJyb3IuCiAgICAgICAgICAgICAvLyA4LjguMy4gTGV0IHNlc3Npb24gZGF0YSBiZSB0
aGUgZGF0YSBzdG9yZWQgZm9yIHRoZSBzYW5pdGl6ZWQgc2Vzc2lvbiBJRCBpbiB0aGUgb3JpZ2lu
LiBUaGlzIG11c3Qgbm90IGluY2x1ZGUgZGF0YSBmcm9tIG90aGVyIG9yaWdpbihzKSBvciB0aGF0
IGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggYW4gb3JpZ2luLgpAQCAtMzgzLDcgKzM4Miw3IEBAIHZv
aWQgTWVkaWFLZXlTZXNzaW9uOjp1cGRhdGUoY29uc3QgQnVmZmVyU291cmNlJiByZXNwb25zZSwg
UmVmPERlZmVycmVkUHJvbWlzZT4mCiAgICAgICAgIC8vIDYuNS4gTGV0IHNlc3Npb24gY2xvc2Vk
IGJlIGZhbHNlLgogICAgICAgICAvLyA2LjYuIExldCBjZG0gYmUgdGhlIENETSBpbnN0YW5jZSBy
ZXByZXNlbnRlZCBieSB0aGlzIG9iamVjdCdzIGNkbSBpbnN0YW5jZSB2YWx1ZS4KICAgICAgICAg
Ly8gNi43LiBVc2UgdGhlIGNkbSB0byBleGVjdXRlIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAg
ICAgIG1faW5zdGFuY2UtPnVwZGF0ZUxpY2Vuc2UobV9zZXNzaW9uSWQsIG1fc2Vzc2lvblR5cGUs
ICpzYW5pdGl6ZWRSZXNwb25zZSwgW3RoaXMsIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoYm9vbCBzZXNzaW9u
V2FzQ2xvc2VkLCBzdGQ6Om9wdGlvbmFsPENETUluc3RhbmNlOjpLZXlTdGF0dXNWZWN0b3I+JiYg
Y2hhbmdlZEtleXMsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiYmIGNoYW5nZWRFeHBpcmF0aW9uLCBz
dGQ6Om9wdGlvbmFsPENETUluc3RhbmNlOjpNZXNzYWdlPiYmIG1lc3NhZ2UsIENETUluc3RhbmNl
OjpTdWNjZXNzVmFsdWUgc3VjY2VlZGVkKSBtdXRhYmxlIHsKKyAgICAgICAgbV9pbnN0YW5jZS0+
dXBkYXRlTGljZW5zZShtX3Nlc3Npb25JZCwgbV9zZXNzaW9uVHlwZSwgKnNhbml0aXplZFJlc3Bv
bnNlLCBbdGhpcywgd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRo
aXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKGJvb2wgc2Vzc2lvbldhc0Nsb3NlZCwg
c3RkOjpvcHRpb25hbDxDRE1JbnN0YW5jZTo6S2V5U3RhdHVzVmVjdG9yPiYmIGNoYW5nZWRLZXlz
LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4mJiBjaGFuZ2VkRXhwaXJhdGlvbiwgc3RkOjpvcHRpb25h
bDxDRE1JbnN0YW5jZTo6TWVzc2FnZT4mJiBtZXNzYWdlLCBDRE1JbnN0YW5jZTo6U3VjY2Vzc1Zh
bHVlIHN1Y2NlZWRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAg
ICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNDk1LDcgKzQ5NCw3IEBAIHZvaWQgTWVkaWFLZXlT
ZXNzaW9uOjpjbG9zZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiAgICAgbV90YXNr
UXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBt
dXRhYmxlIHsKICAgICAgICAgLy8gNS4xLiBMZXQgY2RtIGJlIHRoZSBDRE0gaW5zdGFuY2UgcmVw
cmVzZW50ZWQgYnkgc2Vzc2lvbidzIGNkbSBpbnN0YW5jZSB2YWx1ZS4KICAgICAgICAgLy8gNS4y
LiBVc2UgY2RtIHRvIGNsb3NlIHRoZSBrZXkgc2Vzc2lvbiBhc3NvY2lhdGVkIHdpdGggc2Vzc2lv
bi4KLSAgICAgICAgbV9pbnN0YW5jZS0+Y2xvc2VTZXNzaW9uKG1fc2Vzc2lvbklkLCBbdGhpcywg
d2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKSwgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgeworICAgICAgICBtX2luc3RhbmNlLT5jbG9zZVNl
c3Npb24obV9zZXNzaW9uSWQsIFt0aGlzLCB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoKSBtdXRhYmxl
IHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
CkBAIC01MzMsNyArNTMyLDcgQEAgdm9pZCBNZWRpYUtleVNlc3Npb246OnJlbW92ZShSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiAgICAgICAgIC8vIDQuMy4gTGV0IG1lc3NhZ2UgdHlw
ZSBiZSBudWxsLgogCiAgICAgICAgIC8vIDQuNC4gVXNlIHRoZSBjZG0gdG8gZXhlY3V0ZSB0aGUg
Zm9sbG93aW5nIHN0ZXBzOgotICAgICAgICBtX2luc3RhbmNlLT5yZW1vdmVTZXNzaW9uRGF0YSht
X3Nlc3Npb25JZCwgbV9zZXNzaW9uVHlwZSwgW3RoaXMsIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoQ0RNSW5z
dGFuY2U6OktleVN0YXR1c1ZlY3RvciYmIGtleXMsIHN0ZDo6b3B0aW9uYWw8UmVmPFNoYXJlZEJ1
ZmZlcj4+JiYgbWVzc2FnZSwgQ0RNSW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQpIG11
dGFibGUgeworICAgICAgICBtX2luc3RhbmNlLT5yZW1vdmVTZXNzaW9uRGF0YShtX3Nlc3Npb25J
ZCwgbV9zZXNzaW9uVHlwZSwgW3RoaXMsIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVh
dGVXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChDRE1JbnN0YW5j
ZTo6S2V5U3RhdHVzVmVjdG9yJiYga2V5cywgc3RkOjpvcHRpb25hbDxSZWY8U2hhcmVkQnVmZmVy
Pj4mJiBtZXNzYWdlLCBDRE1JbnN0YW5jZTo6U3VjY2Vzc1ZhbHVlIHN1Y2NlZWRlZCkgbXV0YWJs
ZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJldHVybjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRp
YUtleXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtl
eXMuY3BwCmluZGV4IGMwZWY1NTRjYjBlODk4ZmM2NzMwZWFkYzI2NjI5MDJjZTVjYjZjMDIuLmJl
ZjM2YTMyZGUxZmViNWNhYTQwMTg3YjZlMTU2MTgxNWI3MWYzY2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAKQEAgLTQ1LDcg
KzQ1LDYgQEAgTWVkaWFLZXlzOjpNZWRpYUtleXMoYm9vbCB1c2VEaXN0aW5jdGl2ZUlkZW50aWZp
ZXIsIGJvb2wgcGVyc2lzdGVudFN0YXRlQWxsb3dlZCwKICAgICAsIG1fc3VwcG9ydGVkU2Vzc2lv
blR5cGVzKHN1cHBvcnRlZFNlc3Npb25UeXBlcykKICAgICAsIG1faW1wbGVtZW50YXRpb24oV1RG
TW92ZShpbXBsZW1lbnRhdGlvbikpCiAgICAgLCBtX2luc3RhbmNlKFdURk1vdmUoaW5zdGFuY2Up
KQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogfQogCkBAIC02OCw3ICs2Nyw3IEBA
IEV4Y2VwdGlvbk9yPFJlZjxNZWRpYUtleVNlc3Npb24+PiBNZWRpYUtleXM6OmNyZWF0ZVNlc3Np
b24oU2NyaXB0RXhlY3V0aW9uQ29udGV4CiAgICAgLy8gMy4gTGV0IHNlc3Npb24gYmUgYSBuZXcg
TWVkaWFLZXlTZXNzaW9uIG9iamVjdCwgYW5kIGluaXRpYWxpemUgaXQgYXMgZm9sbG93czoKICAg
ICAvLyBOT1RFOiBDb250aW51ZWQgaW4gTWVkaWFLZXlTZXNzaW9uLgogICAgIC8vIDQuIFJldHVy
biBzZXNzaW9uLgotICAgIGF1dG8gc2Vzc2lvbiA9IE1lZGlhS2V5U2Vzc2lvbjo6Y3JlYXRlKGNv
bnRleHQsIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCBzZXNzaW9uVHlwZSwgbV91
c2VEaXN0aW5jdGl2ZUlkZW50aWZpZXIsIG1faW1wbGVtZW50YXRpb24uY29weVJlZigpLCBtX2lu
c3RhbmNlLmNvcHlSZWYoKSk7CisgICAgYXV0byBzZXNzaW9uID0gTWVkaWFLZXlTZXNzaW9uOjpj
cmVhdGUoY29udGV4dCwgbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgc2Vz
c2lvblR5cGUsIG1fdXNlRGlzdGluY3RpdmVJZGVudGlmaWVyLCBtX2ltcGxlbWVudGF0aW9uLmNv
cHlSZWYoKSwgbV9pbnN0YW5jZS5jb3B5UmVmKCkpOwogICAgIG1fc2Vzc2lvbnMuYXBwZW5kKHNl
c3Npb24uY29weVJlZigpKTsKICAgICByZXR1cm4gV1RGTW92ZShzZXNzaW9uKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcApp
bmRleCA2ZTQwYzdmNjIxOGI0MTFjZTg2NzQwYzIwZTcyNGMzMmUyZWI4MGY1Li40NDA1OTk2NWNj
MWViZmQ3ZmFmMDRlNmI1YWI1NDA5NTk5Yzg1NGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCkBAIC00Nyw3ICs0Nyw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGlubGluZSBNZWRpYURldmljZXM6Ok1lZGlhRGV2aWNlcyhE
b2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmZG9j
dW1lbnQpCiAgICAgLCBtX3NjaGVkdWxlZEV2ZW50VGltZXIoKnRoaXMsICZNZWRpYURldmljZXM6
OnNjaGVkdWxlZEV2ZW50VGltZXJGaXJlZCkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykK
IHsKICAgICBtX2RldmljZUNoYW5nZWRUb2tlbiA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNpbmdsZXRvbigpLmFkZERldmljZXNDaGFuZ2VkT2JzZXJ2ZXIoW3dlYWtUaGlzID0gY3JlYXRl
V2Vha1B0cigpLCB0aGlzXSgpIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKaW5kZXggOWYzMGMzZWFkOTUyODZjZjBiMTQxYjg1OTg3
ODVkNDAzMDQ5MDNjYi4uNjExMjg1MzA1Mjk3NGQ3ZWVhMjcwOWU0Y2E3OGMzYzllNGJlMDM3MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmlj
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy5oCkBAIC04Miw3ICs4Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWZFdmVudFRhcmdldCgp
IG92ZXJyaWRlIHsgcmVmKCk7IH0KICAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlk
ZSB7IGRlcmVmKCk7IH0KIAotICAgIFdlYWtQdHI8TWVkaWFEZXZpY2VzPiBjcmVhdGVXZWFrUHRy
KCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFr
UHRyPE1lZGlhRGV2aWNlcz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rv
cnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogICAgIFRpbWVyIG1fc2NoZWR1bGVkRXZlbnRU
aW1lcjsKICAgICBzdGQ6Om9wdGlvbmFsPFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OkRldmlj
ZXNDaGFuZ2VkT2JzZXJ2ZXJUb2tlbj4gbV9kZXZpY2VDaGFuZ2VkVG9rZW47CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNw
cAppbmRleCAxNjg4NGUzODI2Njg0Y2U3Nzg3ZDU4NmE4NGY4OGZkYzc5MWMyNzg5Li45ZTE3OGRm
NGJkMmE1YzlkNzlhZjBhNzY5NmY3OWMzMjJmZTE4ZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKQEAgLTUz
LDcgKzUzLDYgQEAgUmVmPE1lZGlhU3RyZWFtVHJhY2s+IE1lZGlhU3RyZWFtVHJhY2s6OmNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LAogTWVkaWFTdHJlYW1UcmFjazo6TWVk
aWFTdHJlYW1UcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWY8TWVkaWFT
dHJlYW1UcmFja1ByaXZhdGU+JiYgcHJpdmF0ZVRyYWNrKQogICAgIDogQWN0aXZlRE9NT2JqZWN0
KCZjb250ZXh0KQogICAgICwgbV9wcml2YXRlKFdURk1vdmUocHJpdmF0ZVRyYWNrKSkKLSAgICAs
IG1fd2Vha1B0ckZhY3RvcnkodGhpcykKICAgICAsIG1fdGFza1F1ZXVlKGNvbnRleHQpCiB7CiAg
ICAgc3VzcGVuZElmTmVlZGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCmluZGV4IDRhNDk5NGE2OWRmMGJkYjFmZmY4
YjM2MDJlNDZiMzA1OTAzOTFhYTMuLmE1M2FjZDYyM2M0NTBiOGZhYWY3Zjg1MjM0YTVhY2IwZjFm
YTcxMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5oCkBAIC0xNjUsNyArMTY1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHRyYWNrU2V0dGluZ3NDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWw7CiAg
ICAgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmlu
YWw7CiAKLSAgICBXZWFrUHRyPE1lZGlhU3RyZWFtVHJhY2s+IGNyZWF0ZVdlYWtQdHIoKSB7IHJl
dHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8TWVk
aWFTdHJlYW1UcmFjaz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogICAgIFZlY3RvcjxPYnNlcnZlcio+IG1fb2JzZXJ2
ZXJzOwogICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1N5c3RlbVNsZWVwTGlzdGVu
ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvU3lzdGVtU2xlZXBM
aXN0ZW5lck1hYy5tbQppbmRleCAwYjVhMGY1ODA2NmIzYTZlZDA5YmYwMmIzODc5MjFmZWExMjJm
ODMyLi42ZDUzYTdiZmQwZDhmN2FjZWQxMmU3Y2RlZjIxNmUyOGNkMjlmZGZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvU3lzdGVtU2xlZXBMaXN0ZW5lck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvU3lzdGVtU2xlZXBM
aXN0ZW5lck1hYy5tbQpAQCAtNDAsMTQgKzQwLDEzIEBAIHN0ZDo6dW5pcXVlX3B0cjxTeXN0ZW1T
bGVlcExpc3RlbmVyPiBTeXN0ZW1TbGVlcExpc3RlbmVyOjpjcmVhdGUoQ2xpZW50JiBjbGllbnQp
CiAKIFN5c3RlbVNsZWVwTGlzdGVuZXJNYWM6OlN5c3RlbVNsZWVwTGlzdGVuZXJNYWMoQ2xpZW50
JiBjbGllbnQpCiAgICAgOiBTeXN0ZW1TbGVlcExpc3RlbmVyKGNsaWVudCkKLSAgICAsIG1fd2Vh
a1B0ckZhY3RvcnkodGhpcykKICAgICAsIG1fc2xlZXBPYnNlcnZlcihuaWwpCiAgICAgLCBtX3dh
a2VPYnNlcnZlcihuaWwpCiB7CiAgICAgTlNOb3RpZmljYXRpb25DZW50ZXIgKmNlbnRlciA9IFtb
TlNXb3Jrc3BhY2Ugc2hhcmVkV29ya3NwYWNlXSBub3RpZmljYXRpb25DZW50ZXJdOwogICAgIE5T
T3BlcmF0aW9uUXVldWUgKnF1ZXVlID0gW05TT3BlcmF0aW9uUXVldWUgbWFpblF1ZXVlXTsKIAot
ICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAg
ICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsK
IAogICAgIG1fc2xlZXBPYnNlcnZlciA9IFtjZW50ZXIgYWRkT2JzZXJ2ZXJGb3JOYW1lOk5TV29y
a3NwYWNlV2lsbFNsZWVwTm90aWZpY2F0aW9uIG9iamVjdDpuaWwgcXVldWU6cXVldWUgdXNpbmdC
bG9jazpeKE5TTm90aWZpY2F0aW9uICopIHsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vh
a1RoaXNdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGQyZGUxZjM2MjkzMDllNWQ2OGE5Yjc1
MWRlYmEyOGQ3NTU1YWVkZTguLmU0MTU1ZDE4ZDUxZGQwMGRlN2Y4YTQwY2ViZWVmMzIzNjA5ZGU2
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMTA5LDcgKzEwOSw2IEBAIHVzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7CiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0KFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgOiBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdChyZW5kZXJlci0+bm9kZSgpKQogICAgICwgbV9yZW5kZXJlcihyZW5kZXJlcikK
LSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKICNpZm5kZWYgTkRFQlVHCiAgICAgbV9y
ZW5kZXJlci0+c2V0SGFzQVhPYmplY3QodHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCmluZGV4IDg5NTNl
Y2Q0ZmI4OTI1NDI4NWVlYjEzM2UzM2FlNDQ3MmE2NWJmOTYuLmE1MDcxNTcwNGFkZjIyNGRlNjdh
MzYxZTBlYzA0MmJjMTI2NDkxYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCkBAIC0yMDAsNyArMjAwLDcg
QEAgcHVibGljOgogCiAgICAgU3RyaW5nIHBhc3N3b3JkRmllbGRWYWx1ZSgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIAotICAgIFdlYWtQdHI8QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdD4gY3JlYXRl
V2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9Cisg
ICAgV2Vha1B0cjxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0PiBjcmVhdGVXZWFrUHRyKCkgeyBy
ZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiBwcm90ZWN0
ZWQ6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChSZW5kZXJPYmplY3Qq
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKaW5kZXggMDA2NjFj
ZTkyYjA2ZmM4MTNkZDI1YWM3ZDQ2MTM0MzVjYjk2YjgzNi4uZGJjNTU2NmUzNWU0ZWYzODExNGMy
ZGMwNmM0YWRlOGYzZTQzZTNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L1dlYkFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1h
dGlvbi5jcHAKQEAgLTYwLDcgKzYwLDYgQEAgUmVmUHRyPFdlYkFuaW1hdGlvbj4gV2ViQW5pbWF0
aW9uOjpjcmVhdGUoQW5pbWF0aW9uRWZmZWN0KiBlZmZlY3QsIEFuaW1hdGlvblRpbWUKIFdlYkFu
aW1hdGlvbjo6V2ViQW5pbWF0aW9uKEFuaW1hdGlvbkVmZmVjdCogZWZmZWN0LCBBbmltYXRpb25U
aW1lbGluZSogdGltZWxpbmUpCiAgICAgOiBtX2VmZmVjdChlZmZlY3QpCiAgICAgLCBtX3RpbWVs
aW5lKHRpbWVsaW5lKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogICAgIGlmICht
X2VmZmVjdCkKICAgICAgICAgbV9lZmZlY3QtPnNldEFuaW1hdGlvbih0aGlzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaAppbmRleCBiMDE3M2I2ZTM1ZGMwZGFiYmE2MWY2
MDk5OGVlZWJlMzdjNTBlNmY1Li5kNmZiMGEwMGRhMTkyYzZkMWVkYmQ0ZGJhZTZkNDEzZmVhNjI5
OTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCkBAIC00OCw3ICs0
OCw3IEBAIHB1YmxpYzoKICAgICBBbmltYXRpb25FZmZlY3QqIGVmZmVjdCgpIGNvbnN0IHsgcmV0
dXJuIG1fZWZmZWN0LmdldCgpOyB9CiAgICAgQW5pbWF0aW9uVGltZWxpbmUqIHRpbWVsaW5lKCkg
Y29uc3QgeyByZXR1cm4gbV90aW1lbGluZS5nZXQoKTsgfQogCi0gICAgV2Vha1B0cjxXZWJBbmlt
YXRpb24+IGNyZWF0ZVdlYWtQdHIoKSBjb25zdCB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8V2ViQW5pbWF0aW9uPiBjcmVhdGVXZWFrUHRy
KCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiBw
cml2YXRlOgogICAgIFdlYkFuaW1hdGlvbihBbmltYXRpb25FZmZlY3QqLCBBbmltYXRpb25UaW1l
bGluZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAKaW5kZXggODI1MzFmZjg1MzI3ODI4YjlmOWQ3
NzYxYjI5Yjc5YTY2ODQ3Yzg4MS4uOTY2YjdmYWRmNDliMGYzZWIwOGI3NDY4MjZhODlkZWI1ZDAx
YmI2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCkBAIC0xMjAsMTYgKzEyMCwxNCBAQCBSZWY8
Rm9udEZhY2U+IEZvbnRGYWNlOjpjcmVhdGUoQ1NTRm9udEZhY2UmIGZhY2UpCiB9CiAKIEZvbnRG
YWNlOjpGb250RmFjZShDU1NGb250U2VsZWN0b3ImIGZvbnRTZWxlY3RvcikKLSAgICA6IG1fd2Vh
a1B0ckZhY3RvcnkodGhpcykKLSAgICAsIG1fYmFja2luZyhDU1NGb250RmFjZTo6Y3JlYXRlKCZm
b250U2VsZWN0b3IsIG51bGxwdHIsIHRoaXMpKQorICAgIDogbV9iYWNraW5nKENTU0ZvbnRGYWNl
OjpjcmVhdGUoJmZvbnRTZWxlY3RvciwgbnVsbHB0ciwgdGhpcykpCiAgICAgLCBtX2xvYWRlZFBy
b21pc2UoKnRoaXMsICZGb250RmFjZTo6bG9hZGVkUHJvbWlzZVJlc29sdmUpCiB7CiAgICAgbV9i
YWNraW5nLT5hZGRDbGllbnQoKnRoaXMpOwogfQogCiBGb250RmFjZTo6Rm9udEZhY2UoQ1NTRm9u
dEZhY2UmIGZhY2UpCi0gICAgOiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0gICAgLCBtX2JhY2tp
bmcoZmFjZSkKKyAgICA6IG1fYmFja2luZyhmYWNlKQogICAgICwgbV9sb2FkZWRQcm9taXNlKCp0
aGlzLCAmRm9udEZhY2U6OmxvYWRlZFByb21pc2VSZXNvbHZlKQogewogICAgIG1fYmFja2luZy0+
YWRkQ2xpZW50KCp0aGlzKTsKQEAgLTE0MCw5ICsxMzgsOSBAQCBGb250RmFjZTo6fkZvbnRGYWNl
KCkKICAgICBtX2JhY2tpbmctPnJlbW92ZUNsaWVudCgqdGhpcyk7CiB9CiAKLVdlYWtQdHI8Rm9u
dEZhY2U+IEZvbnRGYWNlOjpjcmVhdGVXZWFrUHRyKCkgY29uc3QKK1dlYWtQdHI8Rm9udEZhY2U+
IEZvbnRGYWNlOjpjcmVhdGVXZWFrUHRyKCkKIHsKLSAgICByZXR1cm4gbV93ZWFrUHRyRmFjdG9y
eS5jcmVhdGVXZWFrUHRyKCk7CisgICAgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vh
a1B0cigqdGhpcyk7CiB9CiAKIFJlZlB0cjxDU1NWYWx1ZT4gRm9udEZhY2U6OnBhcnNlU3RyaW5n
KGNvbnN0IFN0cmluZyYgc3RyaW5nLCBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9G
b250RmFjZS5oCmluZGV4IGM3MWNlMDNjMGYwYTVkN2I4N2U5MzRmY2UzNjhhMmZmZjM3ZDM2YTgu
LjJmNGM4ODk0M2NiZGU3NjYxNzIyYzA0Y2U2ZGM2YmUyNjVjOTg1MTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250
RmFjZS5oCkBAIC04NSw3ICs4NSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZm9udFN0YXRlQ2hh
bmdlZChDU1NGb250RmFjZSYsIENTU0ZvbnRGYWNlOjpTdGF0dXMgb2xkU3RhdGUsIENTU0ZvbnRG
YWNlOjpTdGF0dXMgbmV3U3RhdGUpIGZpbmFsOwogCi0gICAgV2Vha1B0cjxGb250RmFjZT4gY3Jl
YXRlV2Vha1B0cigpIGNvbnN0OworICAgIFdlYWtQdHI8Rm9udEZhY2U+IGNyZWF0ZVdlYWtQdHIo
KTsKIAogICAgIHZvaWQgcmVmKCkgZmluYWwgeyBSZWZDb3VudGVkOjpyZWYoKTsgfQogICAgIHZv
aWQgZGVyZWYoKSBmaW5hbCB7IFJlZkNvdW50ZWQ6OmRlcmVmKCk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVNoZWV0Q29udGVudHMuaAppbmRleCAxOTA3NTU4OGZjZDRjOGJkMzAyZDhmNDAxNmRm
YTFmNTQ0YmQ1NGYxLi44YzBiNGRhMzEzNWRjODBlNjBiMmM3ZmMwYTE4NmZkYzNkYjFlYTIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oCkBAIC0xNDMsNyArMTQzLDcg
QEAgcHVibGljOgogCiAgICAgdm9pZCBzaHJpbmtUb0ZpdCgpOwogCi0gICAgV2Vha1B0cjxTdHls
ZVNoZWV0Q29udGVudHM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8U3R5bGVTaGVldENvbnRlbnRzPiBjcmVh
dGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlz
KTsgfQogCiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIFN0eWxlU2hlZXRDb250ZW50cyhT
dHlsZVJ1bGVJbXBvcnQqIG93bmVyUnVsZSwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbFVSTCwgY29u
c3QgQ1NTUGFyc2VyQ29udGV4dCYpOwpAQCAtMTc1LDcgKzE3NSw3IEBAIHByaXZhdGU6CiAKICAg
ICBWZWN0b3I8Q1NTU3R5bGVTaGVldCo+IG1fY2xpZW50czsKICAgICAKLSAgICBXZWFrUHRyRmFj
dG9yeTxTdHlsZVNoZWV0Q29udGVudHM+IG1fd2Vha1B0ckZhY3RvcnkgeyB0aGlzIH07CisgICAg
V2Vha1B0ckZhY3Rvcnk8U3R5bGVTaGVldENvbnRlbnRzPiBtX3dlYWtQdHJGYWN0b3J5OwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNm
ZXJJdGVtTGlzdC5jcHAKaW5kZXggNmY2YzBmYThkOWY1Y2Q2YjBiYzI0OTc3NzAwOTU4NTlhNTYw
ZjY5ZC4uNzVjNjdlMGMxMGI4NDhkNGYxOWZiZjI5MGYxNjdlN2UyMTNmYWUwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwCkBAIC00MSw4ICs0MSw3IEBA
IHN0YXRpYyBib29sIGlzU3VwcG9ydGVkVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCiB9CiAKIERh
dGFUcmFuc2Zlckl0ZW1MaXN0OjpEYXRhVHJhbnNmZXJJdGVtTGlzdChEYXRhVHJhbnNmZXImIGRh
dGFUcmFuc2ZlcikKLSAgICA6IG1fd2Vha1B0ckZhY3RvcnkodGhpcykKLSAgICAsIG1fZGF0YVRy
YW5zZmVyKGRhdGFUcmFuc2ZlcikKKyAgICA6IG1fZGF0YVRyYW5zZmVyKGRhdGFUcmFuc2ZlcikK
IHsKIH0KIApAQCAtODEsNyArODAsNyBAQCBFeGNlcHRpb25PcjxSZWZQdHI8RGF0YVRyYW5zZmVy
SXRlbT4+IERhdGFUcmFuc2Zlckl0ZW1MaXN0OjphZGQoY29uc3QgU3RyaW5nJiBkYQogCiAgICAg
bV9kYXRhVHJhbnNmZXIucGFzdGVib2FyZCgpLndyaXRlU3RyaW5nKGxvd2VyY2FzZWRUeXBlLCBk
YXRhKTsKICAgICBBU1NFUlQobV9pdGVtcyk7Ci0gICAgbV9pdGVtcy0+YXBwZW5kKERhdGFUcmFu
c2Zlckl0ZW06OmNyZWF0ZShtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKSwgbG93ZXJj
YXNlZFR5cGUpKTsKKyAgICBtX2l0ZW1zLT5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRl
KG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIGxvd2VyY2FzZWRUeXBlKSk7
CiAgICAgcmV0dXJuIFJlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiB7IG1faXRlbXMtPmxhc3QoKS5j
b3B5UmVmKCkgfTsKIH0KIApAQCAtMTI5LDEzICsxMjgsMTMgQEAgVmVjdG9yPFJlZjxEYXRhVHJh
bnNmZXJJdGVtPj4mIERhdGFUcmFuc2Zlckl0ZW1MaXN0OjplbnN1cmVJdGVtcygpIGNvbnN0CiAg
ICAgZm9yIChhdXRvJiB0eXBlIDogbV9kYXRhVHJhbnNmZXIudHlwZXMoKSkgewogICAgICAgICBh
dXRvIGxvd2VyY2FzZWRUeXBlID0gdHlwZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwogICAg
ICAgICBpZiAoaXNTdXBwb3J0ZWRUeXBlKGxvd2VyY2FzZWRUeXBlKSkKLSAgICAgICAgICAgIGl0
ZW1zLmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUobV93ZWFrUHRyRmFjdG9yeS5jcmVh
dGVXZWFrUHRyKCksIGxvd2VyY2FzZWRUeXBlKSk7CisgICAgICAgICAgICBpdGVtcy5hcHBlbmQo
RGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigq
Y29uc3RfY2FzdDxEYXRhVHJhbnNmZXJJdGVtTGlzdCo+KHRoaXMpKSwgbG93ZXJjYXNlZFR5cGUp
KTsKICAgICB9CiAKICAgICBmb3IgKGF1dG8mIGZpbGUgOiBtX2RhdGFUcmFuc2Zlci5maWxlcygp
LmZpbGVzKCkpIHsKICAgICAgICAgYXV0byB0eXBlID0gRmlsZTo6Y29udGVudFR5cGVGb3JGaWxl
KGZpbGUtPnBhdGgoKSkuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKICAgICAgICAgaWYgKGlz
U3VwcG9ydGVkVHlwZSh0eXBlKSB8fCBmaWxlLT5pc0RpcmVjdG9yeSgpKQotICAgICAgICAgICAg
aXRlbXMuYXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKSwgdHlwZSwgZmlsZS5jb3B5UmVmKCkpKTsKKyAgICAgICAgICAgIGl0ZW1z
LmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUobV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVX
ZWFrUHRyKCpjb25zdF9jYXN0PERhdGFUcmFuc2Zlckl0ZW1MaXN0Kj4odGhpcykpLCB0eXBlLCBm
aWxlLmNvcHlSZWYoKSkpOwogICAgIH0KIAogICAgIG1faXRlbXMgPSBXVEZNb3ZlKGl0ZW1zKTsK
QEAgLTE4MSw3ICsxODAsNyBAQCB2b2lkIERhdGFUcmFuc2Zlckl0ZW1MaXN0OjpkaWRTZXRTdHJp
bmdEYXRhKGNvbnN0IFN0cmluZyYgdHlwZSkKICAgICBTdHJpbmcgbG93ZXJjYXNlZFR5cGUgPSB0
eXBlLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCk7CiAgICAgcmVtb3ZlU3RyaW5nSXRlbU9mTG93
ZXJjYXNlZFR5cGUoKm1faXRlbXMsIHR5cGUuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKSk7CiAK
LSAgICBtX2l0ZW1zLT5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKG1fd2Vha1B0ckZh
Y3RvcnkuY3JlYXRlV2Vha1B0cigpLCBsb3dlcmNhc2VkVHlwZSkpOworICAgIG1faXRlbXMtPmFw
cGVuZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUobV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFr
UHRyKCp0aGlzKSwgbG93ZXJjYXNlZFR5cGUpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKaW5kZXggY2VlM2EyY2JlNTZhMDEyZjRkNjIwNzExMjYwZDQwMDZjNGUzNDdjNS4uMjg0NTE0
OTZhNTc4NDYwNmMzNTdjYWZkMThlZDA2MjUyZmE1Nzc2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCkBAIC00NjksNyArNDY5LDYgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwg
Y29uc3QgVVJMJiB1cmwsIHVuc2lnbmVkIGRvY3VtZW50Q2xhc3NlcywgdW5zaWcKICAgICAsIG1f
Y29uc3RhbnRQcm9wZXJ0eU1hcChzdGQ6Om1ha2VfdW5pcXVlPENvbnN0YW50UHJvcGVydHlNYXA+
KCp0aGlzKSkKICAgICAsIG1fZG9jdW1lbnRDbGFzc2VzKGRvY3VtZW50Q2xhc3NlcykKICAgICAs
IG1fZXZlbnRRdWV1ZSgqdGhpcykKLSAgICAsIG1fd2Vha0ZhY3RvcnkodGhpcykKICNpZiBFTkFC
TEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgLCBtX2Z1bGxTY3JlZW5DaGFuZ2VEZWxheVRpbWVyKCp0
aGlzLCAmRG9jdW1lbnQ6OmZ1bGxTY3JlZW5DaGFuZ2VEZWxheVRpbWVyRmlyZWQpCiAjZW5kaWYK
QEAgLTU2MjcsNyArNTYyNiw3IEBAIHZvaWQgRG9jdW1lbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nCiAKIHZvaWQgRG9j
dW1lbnQ6OnBvc3RUYXNrKFRhc2smJiB0YXNrKQogewotICAgIGNhbGxPbk1haW5UaHJlYWQoW2Rv
Y3VtZW50UmVmZXJlbmNlID0gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIHRhc2sgPSBX
VEZNb3ZlKHRhc2spXSgpIG11dGFibGUgeworICAgIGNhbGxPbk1haW5UaHJlYWQoW2RvY3VtZW50
UmVmZXJlbmNlID0gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgdGFzayA9IFdU
Rk1vdmUodGFzayldKCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CiAKICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZG9jdW1lbnRSZWZlcmVuY2UuZ2V0KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGUwMDk1ZmVhMDIxY2I0NDVjODdmZjY2ZGZiMTQwOWYz
OWRlZjQ0YTUuLjdhNWQxYWVlMGVjOTI1YWUwNmU2OGI3Y2VmN2FiMTIzNDM5YmE0NmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCkBAIC0xMjcyLDcgKzEyNzIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBp
c0NhcHR1cmluZygpIGNvbnN0IHsgcmV0dXJuIE1lZGlhUHJvZHVjZXI6OmlzQ2FwdHVyaW5nKG1f
bWVkaWFTdGF0ZSk7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVwZGF0ZUlzUGxheWluZ01l
ZGlhKHVpbnQ2NF90ID0gSFRNTE1lZGlhRWxlbWVudEludmFsaWRJRCk7CiAgICAgdm9pZCBwYWdl
TXV0ZWRTdGF0ZURpZENoYW5nZSgpOwotICAgIFdlYWtQdHI8RG9jdW1lbnQ+IGNyZWF0ZVdlYWtQ
dHIoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQ
dHI8RG9jdW1lbnQ+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0
ZVdlYWtQdHIoKnRoaXMpOyB9CiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VU
KQogICAgIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoTWVkaWFQbGF5YmFja1Rh
cmdldENsaWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5k
ZXggZjEyMmMwNzhjYTI3MDQzMDRmOWU3YjYyMGE3YTU0MThmYzAzNDJjNC4uMTcwMGJkNjI1NWVm
MTc0YzZhZmI5ODU0Y2ZmZTI1ODhlY2Y4M2RlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCkBAIC00MTEsNyArNDExLDYgQEAgc3RhdGljIHVpbnQ2NF90IG5leHRM
b2dJZGVudGlmaWVyKCkKIEhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIGNyZWF0ZWRC
eVBhcnNlcikKICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwgQWN0
aXZlRE9NT2JqZWN0KCZkb2N1bWVudCkKLSAgICAsIG1fd2Vha0ZhY3RvcnkodGhpcykKICAgICAs
IG1fcGVuZGluZ0FjdGlvblRpbWVyKCp0aGlzLCAmSFRNTE1lZGlhRWxlbWVudDo6cGVuZGluZ0Fj
dGlvblRpbWVyRmlyZWQpCiAgICAgLCBtX3Byb2dyZXNzRXZlbnRUaW1lcigqdGhpcywgJkhUTUxN
ZWRpYUVsZW1lbnQ6OnByb2dyZXNzRXZlbnRUaW1lckZpcmVkKQogICAgICwgbV9wbGF5YmFja1By
b2dyZXNzVGltZXIoKnRoaXMsICZIVE1MTWVkaWFFbGVtZW50OjpwbGF5YmFja1Byb2dyZXNzVGlt
ZXJGaXJlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggYzMzYWI5
Yjg4MGY5ZWE0ODI5MjYyZjNkZTczZmQ2MDMxMjA3OGFlNC4uYzg0MThmMTU1YWRiYzhmZGU1Njll
Y2Y2MjYyNGJiZWFlNDMwYmMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmgKQEAgLTE0NSw3ICsxNDUsNyBAQCBjbGFzcyBIVE1MTWVkaWFFbGVtZW50CiAjZW5kaWYKIHsK
IHB1YmxpYzoKLSAgICBXZWFrUHRyPEhUTUxNZWRpYUVsZW1lbnQ+IGNyZWF0ZVdlYWtQdHIoKSB7
IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8SFRN
TE1lZGlhRWxlbWVudD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigqdGhpcyk7IH0KICAgICBNZWRpYVBsYXllciogcGxheWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9wbGF5ZXIuZ2V0KCk7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBpc1ZpZGVvKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFBpY3R1cmVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVu
dC5oCmluZGV4IDg0YmQ2NmU1M2RiNjY0NmVlMGYxOTliODY1ZDVhNjZiZjUzZTQ4YWEuLjBjYjQ3
ODFkYTVmM2VhYjE4MDIwNWYxYmIxOThlY2EyYjcxYTZhZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUGljdHVyZUVsZW1lbnQuaApAQCAtNDMsMTQgKzQzLDE0IEBAIHB1YmxpYzoKIAogICAg
IGJvb2wgdmlld3BvcnRDaGFuZ2VBZmZlY3RlZFBpY3R1cmUoKSBjb25zdDsKIAotICAgIFdlYWtQ
dHI8SFRNTFBpY3R1cmVFbGVtZW50PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPEhUTUxQaWN0dXJlRWxlbWVudD4g
Y3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhp
cyk7IH0KIAogcHJpdmF0ZToKICAgICBIVE1MUGljdHVyZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2b2lkIGRpZE1vdmVUb05ld0RvY3VtZW50KERvY3Vt
ZW50JiBvbGREb2N1bWVudCwgRG9jdW1lbnQmIG5ld0RvY3VtZW50KSBmaW5hbDsKIAotICAgIFdl
YWtQdHJGYWN0b3J5PEhUTUxQaWN0dXJlRWxlbWVudD4gbV93ZWFrRmFjdG9yeSB7IHRoaXMgfTsK
KyAgICBXZWFrUHRyRmFjdG9yeTxIVE1MUGljdHVyZUVsZW1lbnQ+IG1fd2Vha0ZhY3Rvcnk7CiAg
ICAgVmVjdG9yPE1lZGlhUXVlcnlSZXN1bHQ+IG1fdmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJ5
UmVzdWx0czsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxSZXNvdXJjZVByZWxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFJl
c291cmNlUHJlbG9hZGVyLmgKaW5kZXggY2QxMGY4NWRlOTEwNGE1MGE5NGQ1ZGJlOGMzMTM5NzM4
MGU5NGQ4Yy4uYWEyYzc4MmRlMDU4MzdmNTIyODYzOWY5NmIwODMyZTMzYjVjY2FiMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFJlc291cmNlUHJlbG9hZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFJlc291cmNlUHJlbG9hZGVyLmgK
QEAgLTc3LDE0ICs3NywxMyBAQCBjbGFzcyBIVE1MUmVzb3VyY2VQcmVsb2FkZXIgewogcHVibGlj
OgogICAgIGV4cGxpY2l0IEhUTUxSZXNvdXJjZVByZWxvYWRlcihEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKLSAgICAgICAgLCBtX3dlYWtGYWN0b3J5
KHRoaXMpCiAgICAgewogICAgIH0KIAogICAgIHZvaWQgcHJlbG9hZChQcmVsb2FkUmVxdWVzdFN0
cmVhbSk7CiAgICAgdm9pZCBwcmVsb2FkKHN0ZDo6dW5pcXVlX3B0cjxQcmVsb2FkUmVxdWVzdD4p
OwogCi0gICAgV2Vha1B0cjxIVE1MUmVzb3VyY2VQcmVsb2FkZXI+IGNyZWF0ZVdlYWtQdHIoKSB7
IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8SFRN
TFJlc291cmNlUHJlbG9hZGVyPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9y
eS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiBwcml2YXRlOgogICAgIERvY3VtZW50JiBtX2Rv
Y3VtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCmluZGV4IDcyNzk1YjBlMDNl
MjcxZDRlZGFiYzYwMjQ2NTI0NTVkMWZjYzgwNmUuLjJiMTYxMzI2NDMwYzEwZDU5MjQyOGQxNWI0
ODc3MmJlZjZhNjkwM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKQEAgLTU3
LDcgKzU3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBMaW5rTG9hZGVyOjpMaW5rTG9hZGVy
KExpbmtMb2FkZXJDbGllbnQmIGNsaWVudCkKICAgICA6IG1fY2xpZW50KGNsaWVudCkKLSAgICAs
IG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0xpbmtMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVy
LmgKaW5kZXggZGUzYWVhNzVkMjRlZjY3NTVhZDJhZDUzODhiZDZhZmQyMzg4NGIxNC4uMTc1NWY2
MTE2MTdkZWNkMzBlY2ZkNjBiYzQ4YjNiMjAyMTZkZDI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlu
a0xvYWRlci5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBsb2Fk
TGlua3NGcm9tSGVhZGVyKGNvbnN0IFN0cmluZyYgaGVhZGVyVmFsdWUsIGNvbnN0IFVSTCYgYmFz
ZVVSTCwgRG9jdW1lbnQmLCBNZWRpYUF0dHJpYnV0ZUNoZWNrKTsKICAgICBzdGF0aWMgYm9vbCBp
c1N1cHBvcnRlZFR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUpOwogCi0gICAgV2Vha1B0cjxMaW5rTG9hZGVyPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4g
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPExpbmtMb2Fk
ZXI+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKnRoaXMpOyB9CiAgICAgdm9pZCB0cmlnZ2VyRXZlbnRzKGNvbnN0IENhY2hlZFJlc291cmNl
Jik7CiAgICAgdm9pZCBjYW5jZWxMb2FkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9N
ZWRpYVJlc291cmNlTG9hZGVyLmNwcAppbmRleCBjNDA3YTdjZjU5MDA4ZDc0MzAzY2IyODU1MTI3
ZTQ1Y2Q2YWQ5NGZiLi5iMmUxNjA1NmZjNzA4ZmIzYTgxNWZjODA0NjRlMTI5NzZkYTQ3OTA1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC00
NSw3ICs0NSw2IEBAIE1lZGlhUmVzb3VyY2VMb2FkZXI6Ok1lZGlhUmVzb3VyY2VMb2FkZXIoRG9j
dW1lbnQmIGRvY3VtZW50LCBIVE1MTWVkaWFFbGVtZW50JiBtCiAgICAgLCBtX2RvY3VtZW50KCZk
b2N1bWVudCkKICAgICAsIG1fbWVkaWFFbGVtZW50KG1lZGlhRWxlbWVudC5jcmVhdGVXZWFrUHRy
KCkpCiAgICAgLCBtX2Nyb3NzT3JpZ2luTW9kZShjcm9zc09yaWdpbk1vZGUpCi0gICAgLCBtX3dl
YWtGYWN0b3J5KHRoaXMpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9NZWRpYVJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNv
dXJjZUxvYWRlci5oCmluZGV4IDVhMTBiZjNjNjk4NGE0YWMzMTM5NmFkOTA1Y2Y0OTEyOTJmMTNh
ZmMuLmIwMDRiN2FkMWQxOGFlNzcxZDcyYWQ4ODIzNzQ5ZDMyNTM3MTI2MjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuaApAQCAtNTgsNyArNTgsNyBAQCBw
dWJsaWM6CiAgICAgVmVjdG9yPFJlc291cmNlUmVzcG9uc2U+IHJlc3BvbnNlc0ZvclRlc3Rpbmco
KSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlc0ZvclRlc3Rpbmc7IH0KICAgICB2b2lkIGFkZFJl
c3BvbnNlRm9yVGVzdGluZyhjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAKLSAgICBXZWFrUHRy
PGNvbnN0IE1lZGlhUmVzb3VyY2VMb2FkZXI+IGNyZWF0ZVdlYWtQdHIoKSBjb25zdCB7IHJldHVy
biBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8Y29uc3QgTWVk
aWFSZXNvdXJjZUxvYWRlcj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogcHJpdmF0ZToKICAgICB2b2lkIGNvbnRleHREZXN0
cm95ZWQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA5MmY1Yjkw
NWNlMTBhOTRlMDgyZmQ2NjUyY2U2MTk3MGJlMWE4YjJhLi44N2JhOWQ4ZDdhNGU3MDQ4YzI2NTA1
YjViNTlhYTJhOWVjNTA1NGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0zOTQs
NyArMzk0LDYgQEAgdm9pZCBET01XaW5kb3c6OnNldENhblNob3dNb2RhbERpYWxvZ092ZXJyaWRl
KGJvb2wgYWxsb3cpCiBET01XaW5kb3c6OkRPTVdpbmRvdyhEb2N1bWVudCYgZG9jdW1lbnQpCiAg
ICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmZG9jdW1lbnQpCiAgICAgLCBGcmFtZURl
c3RydWN0aW9uT2JzZXJ2ZXIoZG9jdW1lbnQuZnJhbWUoKSkKLSAgICAsIG1fd2Vha1B0ckZhY3Rv
cnkodGhpcykKIHsKICAgICBBU1NFUlQoZnJhbWUoKSk7CiAgICAgYWRkTGFuZ3VhZ2VDaGFuZ2VP
YnNlcnZlcih0aGlzLCAmbGFuZ3VhZ2VzQ2hhbmdlZENhbGxiYWNrKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5oCmluZGV4IGFiMzI3YmRkMzIxOWIzMTQyNmNhYTg5ZmYxMGU5N2FkZGY3NGNkY2QuLmQ2
ZDRkMTg0OTQ4NmMxZjFjMjliNTk5ZDAxMGM3OGUyNTEzODM2YmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaApAQCAtMzI1LDcgKzMyNSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuYWJsZVN1ZGRl
blRlcm1pbmF0aW9uKCk7CiAgICAgdm9pZCBkaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKTsKIAot
ICAgIFdlYWtQdHI8RE9NV2luZG93PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPERPTVdpbmRvdz4gY3JlYXRl
V2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7
IH0KIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBET01XaW5kb3coRG9jdW1lbnQmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5jcHAKaW5kZXggMGE2NTUyMDZi
NTA4MGQ2OGQ5OGEyNDMyNGVkZTA3MTQ0MzhlZDkzMS4uYWIwODg2MmQzZGU2OWRhMjkxMzUxZDky
ZjYzYTY0YTIzNzhjZjlkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2Vu
ZXJpY1Rhc2tRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VuZXJpY1Rh
c2tRdWV1ZS5jcHAKQEAgLTMyLDE0ICszMiwxMyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBU
YXNrRGlzcGF0Y2hlcjxUaW1lcj46OlRhc2tEaXNwYXRjaGVyKCkKLSAgICA6IG1fd2Vha1B0ckZh
Y3RvcnkodGhpcykKIHsKIH0KIAogdm9pZCBUYXNrRGlzcGF0Y2hlcjxUaW1lcj46OnBvc3RUYXNr
KEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKIHsKICAgICBtX3BlbmRpbmdUYXNrcy5hcHBl
bmQoV1RGTW92ZShmdW5jdGlvbikpOwotICAgIHBlbmRpbmdEaXNwYXRjaGVycygpLmFwcGVuZCht
X3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKSk7CisgICAgcGVuZGluZ0Rpc3BhdGNoZXJz
KCkuYXBwZW5kKG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcykpOwogICAgIGlm
ICghc2hhcmVkVGltZXIoKS5pc0FjdGl2ZSgpKQogICAgICAgICBzaGFyZWRUaW1lcigpLnN0YXJ0
T25lU2hvdCgwX3MpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2Vu
ZXJpY1Rhc2tRdWV1ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1
ZS5oCmluZGV4IDVkNjQ5OGMyZTljY2ZmYWM3NWQwNzAzYjBhZTJhZjZhYjhjNTFlMjcuLjAyYzBh
YjljMmM3Zjg5ZjdjODZhNjcxMGQ2NzliZDAxYmI5OWU4ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmgKQEAgLTcwLDE0ICs3MCwxMiBAQCB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KIGNsYXNzIEdlbmVyaWNUYXNrUXVldWUgewogcHVibGljOgogICAgIEdlbmVy
aWNUYXNrUXVldWUoKQotICAgICAgICA6IG1fd2Vha1B0ckZhY3RvcnkodGhpcykKLSAgICAgICAg
LCBtX2Rpc3BhdGNoZXIoKQorICAgICAgICA6IG1fZGlzcGF0Y2hlcigpCiAgICAgewogICAgIH0K
IAogICAgIEdlbmVyaWNUYXNrUXVldWUoVCYgdCkKLSAgICAgICAgOiBtX3dlYWtQdHJGYWN0b3J5
KHRoaXMpCi0gICAgICAgICwgbV9kaXNwYXRjaGVyKHQpCisgICAgICAgIDogbV9kaXNwYXRjaGVy
KHQpCiAgICAgewogICAgIH0KIApAQCAtODksNyArODcsNyBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgKyttX3BlbmRpbmdUYXNrczsKLSAgICAgICAgYXV0byB3ZWFr
VGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAgICAgICBhdXRvIHdl
YWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsKICAgICAgICAg
bV9kaXNwYXRjaGVyLnBvc3RUYXNrKFt3ZWFrVGhpcywgdGFzayA9IFdURk1vdmUodGFzayldIHsK
ICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggNGI4MjBmZTJlZGQxMThm
ZTAyYjU4MTgwOWU2MWIwMmRiMWU3OGVhZS4uMTRiNjU2MWM1ZmYxMzNlMDExZWFjZjIzYTE3N2Nj
ZmI3N2Q2ZTFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJs
ZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBA
IC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFuZGxl
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKIAotICAgIFdlYWtQdHI8U2Ny
b2xsYWJsZUFyZWE+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+IGNyZWF0ZVdlYWtQ
dHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAK
ICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IFZl
Y3RvcjxMYXlvdXRVbml0PiogaG9yaXpvbnRhbFNuYXBPZmZzZXRzKCkgY29uc3Q7CkBAIC0zNTQs
NyArMzU0LDcgQEAgcHJpdmF0ZToKIAogICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPFNjcm9s
bEFuaW1hdG9yPiBtX3Njcm9sbEFuaW1hdG9yOwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8U2Nyb2xs
YWJsZUFyZWE+IG1fd2Vha1B0ckZhY3RvcnkgeyB0aGlzIH07CisgICAgV2Vha1B0ckZhY3Rvcnk8
U2Nyb2xsYWJsZUFyZWE+IG1fd2Vha1B0ckZhY3Rvcnk7CiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9M
TF9TTkFQKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxTbmFwT2Zmc2V0c0luZm88TGF5b3V0
VW5pdD4+IG1fc25hcE9mZnNldHNJbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsYmFyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5j
cHAKaW5kZXggMDUwZDRkOTliZTA2NjUxMWFjMTM1NmI3Yzg1YWRhOGQxN2Y0ZDhmNS4uOWVlOTM4
MTI2YWQ0NTUwOGYwNDVmNGI1OTliMTUyZGZiMWJkOGEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxiYXIuY3BwCkBAIC03Nyw3ICs3Nyw2IEBAIFNjcm9sbGJhcjo6U2Nyb2xsYmFyKFNj
cm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50
CiAgICAgLCBtX3N1cHByZXNzSW52YWxpZGF0aW9uKGZhbHNlKQogICAgICwgbV9pc0FscGhhTG9j
a2VkKGZhbHNlKQogICAgICwgbV9pc0N1c3RvbVNjcm9sbGJhcihpc0N1c3RvbVNjcm9sbGJhcikK
LSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKICAgICB0aGVtZSgpLnJlZ2lzdGVyU2Ny
b2xsYmFyKCp0aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsYmFyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuaAppbmRleCBlMjU2
MDgxYjc1N2YxMDlhZjQyZjljYzg4ZTVmNzg0NjQ5MWMwMzEzLi4xYTg2YmYzMzI1YmNiNzMxNzgx
N2U2N2RhZDExMTJiNGRjYTAyZWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxiYXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuaApA
QCAtMTMzLDcgKzEzMyw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgc3VwcG9ydHNVcGRhdGVPblNl
Y29uZGFyeVRocmVhZCgpIGNvbnN0OwogCi0gICAgV2Vha1B0cjxTY3JvbGxiYXI+IGNyZWF0ZVdl
YWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAg
IFdlYWtQdHI8U2Nyb2xsYmFyPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsYmFy
KFNjcm9sbGFibGVBcmVhJiwgU2Nyb2xsYmFyT3JpZW50YXRpb24sIFNjcm9sbGJhckNvbnRyb2xT
aXplLCBTY3JvbGxiYXJUaGVtZSogPSAwLCBib29sIGlzQ3VzdG9tU2Nyb2xsYmFyID0gZmFsc2Up
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAppbmRleCA3MTBlZjdiNjRkMzEwZjJiNmM0MzdkYThh
OGJkNzJhNGZlZmQ5NmZhLi5iNWM2NzRhZjFiOWU1MmE5NTNlOWUxYTk5ODc5ZTg1Nzg4Yjc5Nzk1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaApAQCAtMTkzLDcgKzE5Myw3IEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEludFBvaW50IGNvbnZlcnRUb0NvbnRhaW5pbmdW
aWV3KGNvbnN0IEludFBvaW50JikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBJ
bnRQb2ludCBjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3KGNvbnN0IEludFBvaW50JikgY29uc3Q7
CiAKLSAgICBXZWFrUHRyPFdpZGdldD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0
ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxXaWRnZXQ+IGNyZWF0ZVdl
YWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9
CiAKIHByaXZhdGU6CiAgICAgdm9pZCBpbml0KFBsYXRmb3JtV2lkZ2V0KTsgLy8gTXVzdCBiZSBj
YWxsZWQgYnkgYWxsIFdpZGdldCBjb25zdHJ1Y3RvcnMgdG8gaW5pdGlhbGl6ZSBjcm9zcy1wbGF0
Zm9ybSBkYXRhLgpAQCAtMjE2LDcgKzIxNiw3IEBAIHByaXZhdGU6CiAjZWxzZQogICAgIFJldGFp
blB0cjxOU1ZpZXc+IG1fd2lkZ2V0OwogI2VuZGlmCi0gICAgV2Vha1B0ckZhY3Rvcnk8V2lkZ2V0
PiBtX3dlYWtQdHJGYWN0b3J5IHsgdGhpcyB9OworICAgIFdlYWtQdHJGYWN0b3J5PFdpZGdldD4g
bV93ZWFrUHRyRmFjdG9yeTsKICAgICBib29sIG1fc2VsZlZpc2libGU7CiAgICAgYm9vbCBtX3Bh
cmVudFZpc2libGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L21hYy9BdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHAKaW5kZXggMGI0NGY1OTIx
MzU3YTQ2MmUzNTE5ZGNhMmJmNGU1NGZlYmUyNTYzOC4uZGJiZGM5ZjBhOTdmNWJhNDkwY2Y1MDFk
YjMzYzIyNDUzZDc5ODc4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHAKQEAgLTEyMSwx
MiArMTIxLDExIEBAIFJlZjxBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWM+IEF1ZGlvSGFyZHdhcmVM
aXN0ZW5lck1hYzo6Y3JlYXRlKENsaWVudCYgY2xpZW50KQogCiBBdWRpb0hhcmR3YXJlTGlzdGVu
ZXJNYWM6OkF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYyhDbGllbnQmIGNsaWVudCkKICAgICA6IEF1
ZGlvSGFyZHdhcmVMaXN0ZW5lcihjbGllbnQpCi0gICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCiB7
CiAgICAgc2V0SGFyZHdhcmVBY3Rpdml0eShpc0F1ZGlvSGFyZHdhcmVQcm9jZXNzUnVubmluZygp
KTsKICAgICBzZXRPdXRwdXREZXZpY2VTdXBwb3J0c0xvd1Bvd2VyTW9kZShjdXJyZW50RGV2aWNl
U3VwcG9ydHNMb3dQb3dlckJ1ZmZlclNpemUoKSk7CiAKLSAgICBhdXRvIHdlYWtUaGlzID0gbV93
ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha0Zh
Y3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiAgICAgbV9ibG9jayA9IEJsb2NrX2NvcHkoXihV
SW50MzIgY291bnQsIGNvbnN0IEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzIHByb3BlcnRpZXNb
XSkgewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+cHJvcGVy
dHlDaGFuZ2VkKGNvdW50LCBwcm9wZXJ0aWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcAppbmRleCA5MWQyNDNlMWM4ODMxODFjYjcyM2Vj
MmY1NjI1N2MwNWZmNzQyYmE4Li4wNWYzOTE3MDBiOWE2MjAwYTgxOTI1M2FkNGEyMWNiM2YxYTBk
NzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2Fz
Y2FkZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2Nh
ZGUuY3BwCkBAIC03OCwxMyArNzgsMTEgQEAgRm9udENhc2NhZGU6OkNvZGVQYXRoIEZvbnRDYXNj
YWRlOjpzX2NvZGVQYXRoID0gQXV0bzsKIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CiAKIEZvbnRDYXNjYWRlOjpGb250Q2FzY2FkZSgpCi0gICAgOiBtX3dlYWtQdHJGYWN0
b3J5KHRoaXMpCiB7CiB9CiAKIEZvbnRDYXNjYWRlOjpGb250Q2FzY2FkZShjb25zdCBGb250Q2Fz
Y2FkZURlc2NyaXB0aW9uJiBmZCwgZmxvYXQgbGV0dGVyU3BhY2luZywgZmxvYXQgd29yZFNwYWNp
bmcpCiAgICAgOiBtX2ZvbnREZXNjcmlwdGlvbihmZCkKLSAgICAsIG1fd2Vha1B0ckZhY3Rvcnko
dGhpcykKICAgICAsIG1fbGV0dGVyU3BhY2luZyhsZXR0ZXJTcGFjaW5nKQogICAgICwgbV93b3Jk
U3BhY2luZyh3b3JkU3BhY2luZykKICAgICAsIG1fdXNlQmFja3NsYXNoQXNZZW5TeW1ib2wodXNl
QmFja3NsYXNoQXNZZW5TaWduRm9yRmFtaWx5KGZkLmZpcnN0RmFtaWx5KCkpKQpAQCAtOTYsNyAr
OTQsNiBAQCBGb250Q2FzY2FkZTo6Rm9udENhc2NhZGUoY29uc3QgRm9udENhc2NhZGVEZXNjcmlw
dGlvbiYgZmQsIGZsb2F0IGxldHRlclNwYWNpbmcsCiAvLyBGSVhNRTogV2Ugc2hvdWxkIG1ha2Ug
dGhpcyBjb25zdHJ1Y3RvciBwbGF0Zm9ybS1pbmRlcGVuZGVudC4KIEZvbnRDYXNjYWRlOjpGb250
Q2FzY2FkZShjb25zdCBGb250UGxhdGZvcm1EYXRhJiBmb250RGF0YSwgRm9udFNtb290aGluZ01v
ZGUgZm9udFNtb290aGluZ01vZGUpCiAgICAgOiBtX2ZvbnRzKEZvbnRDYXNjYWRlRm9udHM6OmNy
ZWF0ZUZvclBsYXRmb3JtRm9udChmb250RGF0YSkpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRo
aXMpCiAgICAgLCBtX2VuYWJsZUtlcm5pbmcoY29tcHV0ZUVuYWJsZUtlcm5pbmcoKSkKICAgICAs
IG1fcmVxdWlyZXNTaGFwaW5nKGNvbXB1dGVSZXF1aXJlc1NoYXBpbmcoKSkKIHsKQEAgLTExMiw3
ICsxMDksNiBAQCBGb250Q2FzY2FkZTo6Rm9udENhc2NhZGUoY29uc3QgRm9udFBsYXRmb3JtRGF0
YSYgZm9udERhdGEsIEZvbnRTbW9vdGhpbmdNb2RlIGZvbgogRm9udENhc2NhZGU6OkZvbnRDYXNj
YWRlKGNvbnN0IEZvbnRDYXNjYWRlJiBvdGhlcikKICAgICA6IG1fZm9udERlc2NyaXB0aW9uKG90
aGVyLm1fZm9udERlc2NyaXB0aW9uKQogICAgICwgbV9mb250cyhvdGhlci5tX2ZvbnRzKQotICAg
ICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogICAgICwgbV9sZXR0ZXJTcGFjaW5nKG90aGVyLm1f
bGV0dGVyU3BhY2luZykKICAgICAsIG1fd29yZFNwYWNpbmcob3RoZXIubV93b3JkU3BhY2luZykK
ICAgICAsIG1fdXNlQmFja3NsYXNoQXNZZW5TeW1ib2wob3RoZXIubV91c2VCYWNrc2xhc2hBc1ll
blN5bWJvbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYXNjYWRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2Fk
ZS5oCmluZGV4IGEzYjFmZmViNWJhYjM0NzQ5MGExYjUwM2FkYWExZmYxNTUyNTMzZWQuLmE0NDY5
OTkyYWE1OGUwMzQ1N2RmNTliYTgyYTMwZjEzNjVjMmUzNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaApAQCAtMTk1LDcgKzE5NSw3IEBAIHB1
YmxpYzoKIAogICAgIGJvb2wgcHJpbWFyeUZvbnRJc1N5c3RlbUZvbnQoKSBjb25zdDsKIAotICAg
IFdlYWtQdHI8Rm9udENhc2NhZGU+IGNyZWF0ZVdlYWtQdHIoKSBjb25zdCB7IHJldHVybiBtX3dl
YWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8Rm9udENhc2NhZGU+
IGNyZWF0ZVdlYWtQdHIoKSBjb25zdCB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKmNvbnN0X2Nhc3Q8Rm9udENhc2NhZGUqPih0aGlzKSk7IH0KIAogcHJpdmF0ZToKICAg
ICBlbnVtIEZvclRleHRFbXBoYXNpc09yTm90IHsgTm90Rm9yVGV4dEVtcGhhc2lzLCBGb3JUZXh0
RW1waGFzaXMgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5jcHAKaW5kZXggMTYzNWU5OWJjMjU0MDcyM2MwNWI4ZmZmNzAxYWMxNGJk
YzEyZjU5OC4uZDQyOWRiNTU2MDVjYzU3NTBiYjliNDM1ZDQ2NzU0ZGEzNTllMDg5OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5j
cHAKQEAgLTU1LDcgKzU1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbihNZWRpYVBs
YXllciogcGxheWVyKQogICAgIDogbV9wbGF5ZXIocGxheWVyKQotICAgICwgbV93ZWFrUHRyRmFj
dG9yeSh0aGlzKQogICAgICwgbV9xdWV1ZWROb3RpZmljYXRpb25zKCkKICAgICAsIG1fcXVldWVN
dXRleCgpCiAgICAgLCBtX25ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6RW1wdHkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXgg
MzdlM2JlOWNjZTNkMWY3NzdkZjU4NWQyZDgwZWUyYTM0NDgwODViNC4uNWU0ODUyNWI3N2RlZjVk
NzViNzFlMjk2NGVjZjkyMDA2Yzc2ZjlhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaApAQCAtMTYzLDcgKzE2Myw3IEBAIHByb3Rl
Y3RlZDoKICAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oTWVkaWFQ
bGF5ZXIqKTsKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oKTsK
IAotICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uPiBjcmVhdGVXZWFr
UHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBX
ZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbj4gY3JlYXRlV2Vha1B0cigpIHsg
cmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogICAgIC8v
IE1lZGlhUGxheWVyUHJpdmF0ZVByaXZhdGVJbnRlcmZhY2Ugb3ZlcnJpZGVzLgogICAgIHZvaWQg
bG9hZChjb25zdCBTdHJpbmcmIHVybCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3Vu
ZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMuaAppbmRleCBiYmMwNWQ1MDdmNDI1
NjY3OWZiN2Q3YmNmNzIwZDg1MjZjMWFjMzcxLi4yNWQwYTZlZTE5YzNiYzRmZDlhYjc0NGYzMjM1
MTQwZGNmZDZmY2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Np
b25BVkZvdW5kYXRpb25PYmpDLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBwbGF5ZXJEaWRSZWNlaXZlRXJyb3IoTlNFcnJvciAqKTsKIAotICAgIFdlYWtQdHI8Q0RNU2Vz
c2lvbkFWRm91bmRhdGlvbk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8Q0RNU2Vzc2lvbkFWRm91bmRh
dGlvbk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0
ZVdlYWtQdHIoKnRoaXMpOyB9CiAKIHByb3RlY3RlZDoKICAgICBXZWFrUHRyPE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM+IG1fcGFyZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91
bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA3NGMzMTMzNzM0
NjIyYzc3MGY0ODFkNzU3NGU1NWJhYTY0N2YwZDUxLi5iYmNkNWQzMDUwY2YzNDc3NmE4OTJmMTU5
ZTkxOWJiYTMyMjU2MWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1T
ZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtNTMsNyArNTMsNiBAQCBDRE1TZXNzaW9uQVZG
b3VuZGF0aW9uT2JqQzo6Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZAogICAgIDogbV9wYXJlbnQocGFyZW50LT5jcmVhdGVXZWFrUHRyKCkpCiAgICAg
LCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX3Nlc3Npb25JZChjcmVhdGVDYW5vbmljYWxVVUlE
U3RyaW5nKCkpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NE
TVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tCmluZGV4
IGNkODI4YjM1MzU3MTk1MmYyYjJjNDg1Y2VhZjIxNjZhZWU5ZmI0Y2EuLjlmYTc2MWViOWM1ZmYz
NTFkNjY5YTc2MWFhMDRmZjI4OGVlYWJlYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Np
b24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5tbQpAQCAtODksNyArODksNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIENETVNlc3Npb25BVlN0cmVhbVNlc3Npb246OkNETVNlc3Npb25B
VlN0cmVhbVNlc3Npb24oY29uc3QgVmVjdG9yPGludD4mIHByb3RvY29sVmVyc2lvbnMsIENETVBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMmIGNkbSwgQ0RNU2Vzc2lvbkNsaWVudCogY2xpZW50KQog
ICAgIDogQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQyhjZG0sIGNsaWVudCkKLSAgICAsIG1f
d2Vha1B0ckZhY3RvcnkodGhpcykKICAgICAsIG1fZGF0YVBhcnNlck9ic2VydmVyKGFkb3B0TlMo
W1tXZWJDRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uT2JzZXJ2ZXIgYWxsb2NdIGluaXRXaXRoUGFy
ZW50OnRoaXNdKSkKICAgICAsIG1fcHJvdG9jb2xWZXJzaW9ucyhwcm90b2NvbFZlcnNpb25zKQog
ICAgICwgbV9tb2RlKE5vcm1hbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCA2MjU1ZjQ5M2Yy
Y2QyZjE1NjBiYjZmMTU5OTQyZmZjZTNmNzcwMWU3Li40OWE3MWFhYjJmMDMzNDgwN2JlYmIyNTM0
NjVlODk2ZmEwOWJlZGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0xNTgsNyArMTU4LDcg
QEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlU2Vzc2lvbihDRE1TZXNzaW9uJik7CiAjZW5kaWYK
IAotICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQz4gY3JlYXRl
V2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9Cisg
ICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDPiBjcmVhdGVXZWFr
UHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQog
CiBwcml2YXRlOgogICAgIC8vIGVuZ2luZSBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpp
bmRleCA2YTNlZGExYTUwMWY1OTk1ZjFlNDRlZDIxNGQ1YjU2NTRmYmMxZDRlLi44MTRjZmI2M2I3
OGFkMmQzODM5NWJjZDI2ZTBlZGMyODc2ZDU1OTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0K
QEAgLTU0MSw3ICs1NDEsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OmNsZWFyTWVkaWFDYWNoZUZvck9yaWdpbnMoY29uc3QgU3RyaW5nJgogCiBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgOiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb24ocGxheWVyKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogI2lmIFBMQVRGT1JN
KElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RF
KSkKICAgICAsIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyKFZpZGVvRnVsbHNjcmVlbkxh
eWVyTWFuYWdlcjo6Y3JlYXRlKCkpCiAgICAgLCBtX3ZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoTWVk
aWFQbGF5ZXI6OlZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
LmgKaW5kZXggOGQzOGVkMWRhNjdlM2IwOWUyODIwZjVkMjM5ZDIzODc0YmJkODU1Ni4uMWIxYjk3
MTNmNDA5ZDk4YjUyYjg4MzMxYTQyYzUxOWRmN2FlM2RlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLmgKQEAgLTEzMCw3ICsxMzAsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgVmVjdG9yPENvbnRl
bnRUeXBlPiYgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25z
dDsKICAgICBib29sIHNob3VsZENoZWNrSGFyZHdhcmVTdXBwb3J0KCkgY29uc3Q7CiAKLSAgICBX
ZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQz4gY3JlYXRlV2Vha1B0
cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vh
a1B0cjxNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIo
KSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKIHBy
aXZhdGU6CiAgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMubW0KaW5kZXggNWM2NzExOTdlMmI3OWQ5N2VhZTI5ZWFiYjI3MDBlNTdjZDU5ZDJj
ZS4uYzNiM2M3ZmM5NDlmYTkyMWEyZWVjNDU4ZDNmZDRhNmJhOTUyODRmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5tbQpAQCAtMTI1LDggKzEyNSw2IEBAIHN0YXRpYyB2b2lkIENNVGltZWJh
c2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENhbGxiYWNrKENNTm90aWZpY2F0aW9uQ2VudGVyUmVmLCBj
b25zCiAKIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgOiBtX3Bs
YXllcihwbGF5ZXIpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0gICAgLCBtX3NpemVD
aGFuZ2VPYnNlcnZlcldlYWtQdHJGYWN0b3J5KHRoaXMpCiAgICAgLCBtX3N5bmNocm9uaXplcihh
ZG9wdE5TKFthbGxvY0FWU2FtcGxlQnVmZmVyUmVuZGVyU3luY2hyb25pemVySW5zdGFuY2UoKSBp
bml0XSkpCiAgICAgLCBtX3NlZWtUaW1lcigqdGhpcywgJk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6c2Vla0ludGVybmFsKQogICAgICwgbV9zZXNzaW9uKG51bGxwdHIpCkBA
IC04OTAsNyArODg4LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OmVmZmVjdGl2ZVJhdGVDaGFuZ2VkKCkKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnNpemVXaWxsQ2hhbmdlQXRUaW1lKGNvbnN0IE1lZGlhVGltZSYgdGlt
ZSwgY29uc3QgRmxvYXRTaXplJiBzaXplKQogewotICAgIGF1dG8gd2Vha1RoaXMgPSBtX3NpemVD
aGFuZ2VPYnNlcnZlcldlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBhdXRvIHdl
YWtUaGlzID0gbV9zaXplQ2hhbmdlT2JzZXJ2ZXJXZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCp0aGlzKTsKICAgICBOU0FycmF5KiB0aW1lcyA9IEBbW05TVmFsdWUgdmFsdWVXaXRoQ01UaW1l
OlBBTDo6dG9DTVRpbWUodGltZSldXTsKICAgICBSZXRhaW5QdHI8aWQ+IG9ic2VydmVyID0gW21f
c3luY2hyb25pemVyIGFkZEJvdW5kYXJ5VGltZU9ic2VydmVyRm9yVGltZXM6dGltZXMgcXVldWU6
ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOlt0aGlzLCB3ZWFrVGhpcywgc2l6
ZV0gewogICAgICAgICBpZiAoIXdlYWtUaGlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAppbmRl
eCBlMTcwZmY4ZDBiN2Y2ZjE2MjFiMDhhNzlhOWYxOGUwOWEyMDA4YmVhLi5jMTUxYzcyNTFmMjZl
OTAxZWJiZDU1Mjk1Yjg3ZDAxZTU1ZjVlNWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApA
QCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVh
ZHlTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBs
YXllcjo6UmVhZHlTdGF0ZSk7CiAKLSAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKICAgICB2b2lkIGVuc3VyZUxheWVycygpOwogICAgIHZv
aWQgZGVzdHJveUxheWVycygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IDkwNTVk
YmY5YmQ4YzAxMTViNjQ2ZDlhM2U4ZWM5YThjNmE3ODVhMjYuLjFjZDQ3MDkxNzBlYjE2ODA1ZmU3
ZDQzNzNlYmVlMzNmMmViODEwY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTE4
OCw3ICsxODgsNiBAQCBzdGF0aWMgY29uc3QgZG91YmxlIHJlbmRlcmVyTGF0ZW5jeSA9IDAuMDI7
CiAKIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgOiBtX3BsYXll
cihwbGF5ZXIpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiAgICAgLCBtX3N0YXR1c0No
YW5nZUxpc3RlbmVyKGFkb3B0TlMoW1tXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3Rl
bmVyIGFsbG9jXSBpbml0V2l0aFBhcmVudDp0aGlzXSkpCiAgICAgLCBtX2Nsb2NrKENsb2NrOjpj
cmVhdGUoKSkKICNpZiBQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShW
SURFT19QUkVTRU5UQVRJT05fTU9ERSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaAppbmRleCBmMWQxNmVmYmFiZWM2NTVjYzllM2Jj
MzFlYzBjZWYwY2E0Y2RlMzRlLi5hYzlkYWZiMzE5NDkyZjY5OTAxODk3ZDlmYzU3NjE2Mjc0NjA3
Njg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDLmgKQEAgLTE1Myw3ICsxNTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZmx1c2go
QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICopOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAogCi0gICAgV2Vha1B0cjxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQz4gY3JlYXRlV2Vh
a1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vh
a1B0cjxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJu
IG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogICAgIFZlY3RvcjxSZWZQ
dHI8VmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM+PiBtX3ZpZGVvVHJhY2tzOwog
ICAgIFZlY3RvcjxSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM+PiBt
X2F1ZGlvVHJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQy5tbQppbmRleCBjYjZiMzUyYTZkM2E1NWNkMWZhNzI1Y2E4MGYzMjM4
NDljNmNiOTlmLi5hZWI5NDNhNTcwOWFlOTFmODQ3NWYyMTA4ZTk5MWMxYTA1MzAzYTFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5tbQpAQCAtNDc5LDkgKzQ3OSw3IEBAIFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qz4gU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmNyZWF0ZShNZWRpYVNvdXJjCiB9CiAKIFNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyhNZWRp
YVNvdXJjZVByaXZhdGVBVkZPYmpDKiBwYXJlbnQpCi0gICAgOiBtX3dlYWtGYWN0b3J5KHRoaXMp
Ci0gICAgLCBtX2FwcGVuZFdlYWtGYWN0b3J5KHRoaXMpCi0gICAgLCBtX3BhcnNlcihhZG9wdE5T
KFthbGxvY0FWU3RyZWFtRGF0YVBhcnNlckluc3RhbmNlKCkgaW5pdF0pKQorICAgIDogbV9wYXJz
ZXIoYWRvcHROUyhbYWxsb2NBVlN0cmVhbURhdGFQYXJzZXJJbnN0YW5jZSgpIGluaXRdKSkKICAg
ICAsIG1fZGVsZWdhdGUoYWRvcHROUyhbW1dlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyIGFs
bG9jXSBpbml0V2l0aFBhcnNlcjptX3BhcnNlci5nZXQoKSBwYXJlbnQ6Y3JlYXRlV2Vha1B0cigp
XSkpCiAgICAgLCBtX2Vycm9yTGlzdGVuZXIoYWRvcHROUyhbW1dlYkFWU2FtcGxlQnVmZmVyRXJy
b3JMaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhQYXJlbnQ6dGhpc10pKQogICAgICwgbV9pc0FwcGVu
ZGluZ0dyb3VwKGFkb3B0T1NPYmplY3QoZGlzcGF0Y2hfZ3JvdXBfY3JlYXRlKCkpKQpAQCAtNjc1
LDcgKzY3Myw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFwcGVuZChjb25z
dCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5nCiAgICAgTE9HKE1lZGlhU291cmNl
LCAiU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFwcGVuZCglcCkgLSBkYXRhOiVwLCBsZW5n
dGg6JWQiLCB0aGlzLCBkYXRhLCBsZW5ndGgpOwogCiAgICAgUmV0YWluUHRyPE5TRGF0YT4gbnNE
YXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczpkYXRhIGxlbmd0aDps
ZW5ndGhdKTsKLSAgICBXZWFrUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDPiB3ZWFrVGhp
cyA9IG1fYXBwZW5kV2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAgIFdlYWtQdHI8U291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+IHdlYWtUaGlzID0gbV9hcHBlbmRXZWFrRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCp0aGlzKTsKICAgICBSZXRhaW5QdHI8QVZTdHJlYW1EYXRhUGFyc2VyPiBw
YXJzZXIgPSBtX3BhcnNlcjsKICAgICBSZXRhaW5QdHI8V2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlz
dGVuZXI+IGRlbGVnYXRlID0gbV9kZWxlZ2F0ZTsKIApAQCAtNzE1LDcgKzcxMyw3IEBAIHZvaWQg
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFib3J0KCkKICAgICAgICAgZGlzcGF0Y2hfc2Vt
YXBob3JlX3NpZ25hbChtX2hhc1Nlc3Npb25TZW1hcGhvcmUuZ2V0KCkpOwogICAgIGRpc3BhdGNo
X2dyb3VwX3dhaXQobV9pc0FwcGVuZGluZ0dyb3VwLmdldCgpLCBESVNQQVRDSF9USU1FX0ZPUkVW
RVIpOwogICAgIG1fYXBwZW5kV2Vha0ZhY3RvcnkucmV2b2tlQWxsKCk7Ci0gICAgbV9kZWxlZ2F0
ZS5nZXQoKS5wYXJlbnQgPSBtX2FwcGVuZFdlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAg
ICBtX2RlbGVnYXRlLmdldCgpLnBhcmVudCA9IG1fYXBwZW5kV2Vha0ZhY3RvcnkuY3JlYXRlV2Vh
a1B0cigqdGhpcyk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnJlc2V0
UGFyc2VyU3RhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvVGV4dHVyZUNhY2hlQ1YubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jdi9UZXh0dXJlQ2FjaGVDVi5tbQppbmRleCBmZTc5MTljZTJkOGVjZjAyMjUyODcyMGIxNjEw
NWJjMmUyZGRjZDI4Li4zZGEwMTY0YzFlNWM5MzVlOGU0Y2M0NGEzYmRjZGRlZDVmYjVlNWNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2Fj
aGVDVi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJl
Q2FjaGVDVi5tbQpAQCAtNTAsNyArNTAsNiBAQCBzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZUNhY2hl
Q1Y+IFRleHR1cmVDYWNoZUNWOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleAogVGV4
dHVyZUNhY2hlQ1Y6OlRleHR1cmVDYWNoZUNWKEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0LCBS
ZXRhaW5QdHI8VGV4dHVyZUNhY2hlVHlwZT4mJiBjYWNoZSkKICAgICA6IG1fY29udGV4dChjb250
ZXh0KQogICAgICwgbV9jYWNoZShjYWNoZSkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykK
IHsKIH0KIApAQCAtNzMsNyArNzIsNyBAQCBSZXRhaW5QdHI8VGV4dHVyZUNhY2hlQ1Y6OlRleHR1
cmVUeXBlPiBUZXh0dXJlQ2FjaGVDVjo6dGV4dHVyZUZyb21JbWFnZShDVkltYWdlQgogI2VuZGlm
CiAgICAgUmV0YWluUHRyPFRleHR1cmVUeXBlPiB2aWRlb1RleHR1cmUgPSBhZG9wdENGKGJhcmVW
aWRlb1RleHR1cmUpOwogCi0gICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigpOworICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0
ZVdlYWtQdHIoKnRoaXMpOwogICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1
ZXVlKCksIFt3ZWFrVGhpc10gewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcAppbmRleCBlMzFhMWE5ZDkw
ZDUyNjc4OGUzNTc2ZWQ1YmQ4NjY4ZTE4NzM0ZGIyLi41YTAwMmM5YTY3ZTY0OWRlOGQ5YmQ1ZTk4
ZmM5MGFiODE1MjBiNmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcApAQCAt
MzYsNyArMzYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERpc3BsYXlSZWZyZXNoTW9uaXRv
ck1hYzo6RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJ
RCkKICAgICA6IERpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpCi0gICAgLCBtX3dlYWtG
YWN0b3J5KHRoaXMpCiAgICAgLCBtX2Rpc3BsYXlMaW5rKG51bGxwdHIpCiB7CiB9CkBAIC05Miw4
ICs5MSw3IEBAIHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5TGlua0ZpcmVk
KCkKIAogICAgIHNldElzUHJldmlvdXNGcmFtZURvbmUoZmFsc2UpOwogCi0gICAgLy8gRklYTUU6
IElzIGl0IHJlYWxseSBva2F5IHRvIGNyZWF0ZSBhIHdlYWtQdHIgb24gYSBiYWNrZ3JvdW5kIHRo
cmVhZCBhbmQgdGhlbiB1c2UgaXQgb24gdGhlIG1haW4gdGhyZWFkPwotICAgIFJ1bkxvb3A6Om1h
aW4oKS5kaXNwYXRjaChbd2Vha1B0ciA9IG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpXSB7
CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrUHRyID0gbV93ZWFrRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCp0aGlzKV0gewogICAgICAgICBpZiAoYXV0byogbW9uaXRvciA9IHdlYWtQ
dHIuZ2V0KCkpCiAgICAgICAgICAgICBoYW5kbGVEaXNwbGF5UmVmcmVzaGVkTm90aWZpY2F0aW9u
T25NYWluVGhyZWFkKG1vbml0b3IpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5oCmluZGV4IGZjMDJlZTU5
ZDlhY2E2OTYyNTdjNWY0ZjMzZmY4Y2UxNzE0NmNmYTEuLmJlMTU5NGViZGI0YjcwYzdjODM1Y2M1
MDhiOTEwZWI4MzFmZGE0NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgflJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUygpOwogCiBwcm90ZWN0ZWQ6
Ci0gICAgV2Vha1B0cjxSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1M+IGNyZWF0ZVdlYWtQdHIoKSB7
IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8
UmVtb3RlQ29tbWFuZExpc3RlbmVySU9TPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFr
UHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogICAgIHZvaWQgdXBkYXRlU3VwcG9y
dGVkQ29tbWFuZHMoKSBvdmVycmlkZTsKIAogICAgIFdlYWtQdHJGYWN0b3J5PFJlbW90ZUNvbW1h
bmRMaXN0ZW5lcklPUz4gbV93ZWFrUHRyRmFjdG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tCmluZGV4IDQxZjlk
YjY4MWIzZmYxZTM3MjY4YTJkM2Y5OTU1YmQ1ZTdhZTM2ZDUuLmU0YTY5YzRhY2JkYTg0Yjk4Mzkz
NjBkZTY4NTg0Y2M0NTc5Yzg4ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbQpAQCAtNDcsNyArNDcsNiBAQCBz
dGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQ29tbWFuZExpc3RlbmVyPiBSZW1vdGVDb21tYW5kTGlzdGVu
ZXI6OmNyZWF0ZShSZW1vdGVDb21tYQogCiBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1M6OlJlbW90
ZUNvbW1hbmRMaXN0ZW5lcklPUyhSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmIGNsaWVudCkK
ICAgICA6IFJlbW90ZUNvbW1hbmRMaXN0ZW5lcihjbGllbnQpCi0gICAgLCBtX3dlYWtQdHJGYWN0
b3J5KHRoaXMpCiB7CiAgICAgTVBSZW1vdGVDb21tYW5kQ2VudGVyICpjZW50ZXIgPSBbZ2V0TVBS
ZW1vdGVDb21tYW5kQ2VudGVyQ2xhc3MoKSBzaGFyZWRDb21tYW5kQ2VudGVyXTsKICAgICBhdXRv
IHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYy5oCmluZGV4IGRiNjlkNzY2MmVm
NzRhZWJkMDNlNzhhYjg5YTgzMzVmMjVlODMzMWIuLmI3ODFlNmFkNGExYzJmODRlOTQxNmM1ZTRi
MTYzMWRkZjNhYzI1NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9S
ZW1vdGVDb21tYW5kTGlzdGVuZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjLmgKQEAgLTM5LDExICszOSwxMSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB+UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjKCk7CiAKIHByb3RlY3RlZDoK
LSAgICBXZWFrUHRyPFJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYz4gY3JlYXRlV2Vha1B0cigpIHsg
cmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxS
ZW1vdGVDb21tYW5kTGlzdGVuZXJNYWM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQ
dHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKICAgICB2b2lkIHVwZGF0ZVN1cHBv
cnRlZENvbW1hbmRzKCkgb3ZlcnJpZGU7CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxSZW1vdGVDb21t
YW5kTGlzdGVuZXJNYWM+IG1fd2Vha1B0ckZhY3RvcnkgeyB0aGlzIH07CisgICAgV2Vha1B0ckZh
Y3Rvcnk8UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjPiBtX3dlYWtQdHJGYWN0b3J5OwogICAgIHZv
aWQqIG1fY29tbWFuZEhhbmRsZXIgeyBudWxscHRyIH07CiB9OwogICAgIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0
ZS5jcHAKaW5kZXggYjI0ZTY0ZTExNWY3NzU3ZTAwMWI3ZGU4OWE5ZTMzYzY4ODdlMmVhZi4uNzEx
OWRiYzg0MzI5MTE5MTRkNGE4MmJlYjQxNTUzMGQwZjQ4YWU3YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUu
Y3BwCkBAIC01OSw4ICs1OSw3IEBAIFJlZjxNZWRpYVN0cmVhbVByaXZhdGU+IE1lZGlhU3RyZWFt
UHJpdmF0ZTo6Y3JlYXRlKGNvbnN0IFZlY3RvcjxSZWY8UmVhbHRpbWVNZWRpCiB9CiAKIE1lZGlh
U3RyZWFtUHJpdmF0ZTo6TWVkaWFTdHJlYW1Qcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlVmVjdG9yJiB0cmFja3MsIFN0cmluZyYmIGlkKQotICAgIDogbV93ZWFrUHRyRmFjdG9y
eSh0aGlzKQotICAgICwgbV9pZChXVEZNb3ZlKGlkKSkKKyAgICA6IG1faWQoV1RGTW92ZShpZCkp
CiB7CiAgICAgQVNTRVJUKCFtX2lkLmlzRW1wdHkoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKaW5kZXgg
MjEyZGY5MDMxMDgzMGE1MGVjMDAyMDgwYjI3ZGQyMTI0NDI2MWYwYS4uOWYxYWI1MmI1YzZkYjI4
OTlkYmY2YWM3OTk3ODc4OTEwNjI0OWMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKQEAgLTEwNyw3ICsx
MDcsNyBAQCBwdWJsaWM6CiAKICAgICBGbG9hdFNpemUgaW50cmluc2ljU2l6ZSgpIGNvbnN0Owog
Ci0gICAgV2Vha1B0cjxNZWRpYVN0cmVhbVByaXZhdGU+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVy
biBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8TWVkaWFT
dHJlYW1Qcml2YXRlPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiAgICAgdm9pZCBtb25pdG9yT3JpZW50YXRpb24oT3Jp
ZW50YXRpb25Ob3RpZmllciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCmluZGV4IDFiNzUwMjUx
NzliMTA5MWQwYWM4NDk3ZDEwZjAwZmE5N2I5MjE1ZDQuLjZjMDM3NjJhZWFjZGFlMTNjZjBhMWU5
MTcxMjNhZmNkZTI2MTE3YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC00Nyw4ICs0Nyw3
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1l
TWVkaWFTb3VyY2UoY29uc3QgU3RyaW5nJiBpZCwgVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIG5h
bWUpCi0gICAgOiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0gICAgLCBtX2lkKGlkKQorICAgIDog
bV9pZChpZCkKICAgICAsIG1fdHlwZSh0eXBlKQogICAgICwgbV9uYW1lKG5hbWUpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmgKaW5kZXggMWYwODdmNjhiNGVjODMzNTlkMDA1ODQwYWFkYmFjNDM0MDc5ZjRh
Yi4uODQ2ZmI3MjQ4N2UyN2ZhMzNhODY5M2ViM2NjZGVkZjVlMmJjMzRhMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2UuaApAQCAtMjQwLDcgKzI0MCw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHZpZGVvU2Ft
cGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJik7CiAgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFi
bGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKIAotICAgIFdlYWtQdHI8UmVhbHRpbWVNZWRp
YVNvdXJjZT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRl
V2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGVXZWFr
UHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQog
CiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSB7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9pbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2ludC5jcHAK
aW5kZXggMzc1Y2U3ZGZkYmNmNjFiZTA4MjM5NTQyODA2M2Y2MDdkODQzMTA4ZS4uMGU5YjQxZTVj
MTE5NWM2ZTNlYzEzNzA3NWVhNGZmYTY2ODZjN2FhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2ludC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2ludC5jcHAKQEAgLTU3LDcgKzU3LDYgQEAg
TW9ja01lZGlhRW5kcG9pbnQ6Ok1vY2tNZWRpYUVuZHBvaW50KE1lZGlhRW5kcG9pbnRDbGllbnQm
IGNsaWVudCkKICAgICAsIG1faWNlQ2FuZGlkYXRlVGltZXIoKnRoaXMsICZNb2NrTWVkaWFFbmRw
b2ludDo6aWNlQ2FuZGlkYXRlVGltZXJGaXJlZCkKICAgICAsIG1faWNlVHJhbnNwb3J0VGltZXIo
KnRoaXMsICZNb2NrTWVkaWFFbmRwb2ludDo6aWNlVHJhbnNwb3J0VGltZXJGaXJlZCkKICAgICAs
IG1fdW5tdXRlVGltZXIoKnRoaXMsICZNb2NrTWVkaWFFbmRwb2ludDo6dW5tdXRlVGltZXJGaXJl
ZCkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKIH0KIApAQCAtNzMsNyArNzIsNyBA
QCBzdGQ6OnVuaXF1ZV9wdHI8UlRDRGF0YUNoYW5uZWxIYW5kbGVyPiBNb2NrTWVkaWFFbmRwb2lu
dDo6Y3JlYXRlRGF0YUNoYW5uZWxIYW5kbAogCiB2b2lkIE1vY2tNZWRpYUVuZHBvaW50OjpnZW5l
cmF0ZUR0bHNJbmZvKCkKIHsKLSAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCk7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigqdGhpcyk7CiAKICAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpc10gewog
ICAgICAgICBpZiAod2Vha1RoaXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyLmNwcAppbmRl
eCBlZjczZDU3YWI1NWEzNmE3NTEwNDBlMTRkMDcyNmU2MzJmNTJhNzBlLi44ZmIwZDQwOTg0ZWYw
OWIyOTYyNGFhYTcyOWEzMGNjMWQxNDgyNDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRl
ci5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAgUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xk
ZXI6OlJlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyKFJlbmRlck0KICAgICA6IFJl
bmRlckJveChmbG93VGhyZWFkLT5kb2N1bWVudCgpLCBXVEZNb3ZlKHN0eWxlKSwgUmVuZGVyQm94
TW9kZWxPYmplY3RGbGFnKQogICAgICwgbV9zcGFubmVyKCZzcGFubmVyKQogICAgICwgbV9mbG93
VGhyZWFkKGZsb3dUaHJlYWQpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNw
YW5uZXJQbGFjZWhvbGRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRp
Q29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyLmgKaW5kZXggMDM0MTFkOTQ3MTJjY2IyYmU4ZDhmNDcx
MDhjMTBhMGE0ZDM2NWFiNy4uYjE1MDM5MDEyYzA0NDc4ZTBjMWE4ZTg1M2JlMzAyNTI1YzU0MjQx
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1u
U3Bhbm5lclBsYWNlaG9sZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyLmgKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGlj
OgogCiAgICAgUmVuZGVyQm94KiBzcGFubmVyKCkgY29uc3QgeyByZXR1cm4gbV9zcGFubmVyOyB9
CiAgICAgUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkKiBmbG93VGhyZWFkKCkgY29uc3QgeyBy
ZXR1cm4gbV9mbG93VGhyZWFkOyB9Ci0gICAgV2Vha1B0cjxSZW5kZXJNdWx0aUNvbHVtblNwYW5u
ZXJQbGFjZWhvbGRlcj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxSZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQ
bGFjZWhvbGRlcj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigqdGhpcyk7IH0KIAogcHJpdmF0ZToKICAgICBSZW5kZXJNdWx0aUNvbHVtblNw
YW5uZXJQbGFjZWhvbGRlcihSZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQqLCBSZW5kZXJCb3gm
IHNwYW5uZXIsIFJlbmRlclN0eWxlJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuY3BwCmluZGV4IDJhYjE4ODk1N2E4ZWYwZDk3MWQ4MzQzODVhNzZhZWVhMmZmYzVlNjUuLjQ3
NTA2MDhlZmFlYWM2MjZkM2Y1ZGJkMjQwMWJjYTg0NGFkZWQ5NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTEyMSw3ICsxMjEsNiBAQCBwcml2YXRlOgogUmVu
ZGVyVmlldzo6UmVuZGVyVmlldyhEb2N1bWVudCYgZG9jdW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5
bGUpCiAgICAgOiBSZW5kZXJCbG9ja0Zsb3coZG9jdW1lbnQsIFdURk1vdmUoc3R5bGUpKQogICAg
ICwgbV9mcmFtZVZpZXcoKmRvY3VtZW50LnZpZXcoKSkKLSAgICAsIG1fd2Vha0ZhY3RvcnkodGhp
cykKICAgICAsIG1fbGF6eVJlcGFpbnRUaW1lcigqdGhpcywgJlJlbmRlclZpZXc6OmxhenlSZXBh
aW50VGltZXJGaXJlZCkKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICAsIG1fc2Vs
ZWN0aW9uUmVjdEdhdGhlcmVyKCp0aGlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmgKaW5kZXggYWE0ZjYyYjkxMWI5YTQzZDRlMGM4MmQ2OWM5MzBjZDY3M2EzNGFjMi4uMzAyMjMw
NzQ2YjFkN2YzZGIzNzg5ZmQ4YmQ3MjBjZGYyNmQ1YjNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5oCkBAIC0yMzMsNyArMjMzLDcgQEAgcHVibGljOgogICAgICAgICBib29s
IG1fd2FzQWNjdW11bGF0aW5nUmVwYWludFJlZ2lvbjsKICAgICB9OwogCi0gICAgV2Vha1B0cjxS
ZW5kZXJWaWV3PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVX
ZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPFJlbmRlclZpZXc+IGNyZWF0ZVdlYWtQdHIoKSB7IHJl
dHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKICAgICB2b2lkIHNj
aGVkdWxlTGF6eVJlcGFpbnQoUmVuZGVyQm94Jik7CiAgICAgdm9pZCB1bnNjaGVkdWxlTGF6eVJl
cGFpbnQoUmVuZGVyQm94Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyV2lkZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQu
Y3BwCmluZGV4IDRjZTcyY2U2ZGFhOTEyNzc2NGQ5Zjg5ZDQwZDQ0NDA2YmFiZjg1NjYuLjRiNGQ0
NDQ0MzJhYWYxZjA1YTQwYTlmMDY3ZDllNDI5MGFmODY0MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCkBAIC04MSw3ICs4MSw2IEBAIHN0YXRpYyB2b2lkIG1v
dmVXaWRnZXRUb1BhcmVudFNvb24oV2lkZ2V0JiBjaGlsZCwgRnJhbWVWaWV3KiBwYXJlbnQpCiAK
IFJlbmRlcldpZGdldDo6UmVuZGVyV2lkZ2V0KEhUTUxGcmFtZU93bmVyRWxlbWVudCYgZWxlbWVu
dCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKICAgICA6IFJlbmRlclJlcGxhY2VkKGVsZW1lbnQsIFdU
Rk1vdmUoc3R5bGUpKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogICAgIHNldElu
bGluZShmYWxzZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyV2lkZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKaW5k
ZXggYjdiN2M3YjEyZTE4MGRlMTg3ZDVhZTdiMzI3NTRiZGEyYjFhODAxMy4uYzEyZjU3OTY3NDcy
NDk5NTcyMzFkYWJmMDZkYmJmNGUyNzQ4YmMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcldpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJXaWRnZXQuaApAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIHJlcXVp
cmVzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0OwogCi0gICAgV2Vha1B0cjxSZW5kZXJX
aWRnZXQ+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKTsgfQorICAgIFdlYWtQdHI8UmVuZGVyV2lkZ2V0PiBjcmVhdGVXZWFrUHRyKCkgeyBy
ZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiAgICAgdm9p
ZCByZWYoKSB7ICsrbV9yZWZDb3VudDsgfQogICAgIHZvaWQgZGVyZWYoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcAppbmRleCAzODE4OWE3NDE0YTk1MmM1MDE0
NzBkZmMyOWMyNWY1N2ZmYjMwM2M0Li42MzA2MTkyZDM4YjNkMTU1Y2YwMzE2MTBlYzRjMDM1NzE1
NmU4ZGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJv
eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCkBA
IC02MSw4ICs2MSw2IEBAIFJvb3RJbmxpbmVCb3g6OlJvb3RJbmxpbmVCb3goUmVuZGVyQmxvY2tG
bG93JiBibG9jaykKICAgICA6IElubGluZUZsb3dCb3goYmxvY2spCiAgICAgLCBtX2xpbmVCcmVh
a1BvcygwKQogICAgICwgbV9saW5lQnJlYWtPYmoobnVsbHB0cikKLSAgICAsIG1fd2Vha1B0ckZh
Y3RvcnkodGhpcykKLQogewogICAgIHNldElzSG9yaXpvbnRhbChibG9jay5pc0hvcml6b250YWxX
cml0aW5nTW9kZSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
b290SW5saW5lQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5o
CmluZGV4IGMxOTU4ZjM4NzlmZTEyMjA5Y2MyMDYyNmI5YTdiMWY3MjBjZjM1NzkuLjExMjI3YzY1
NTVjMDJhMmMzMDRhYjRhYzMyZmVmZTc3NGY5NzdkZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1Jvb3RJbmxpbmVCb3guaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBSb290SW5saW5lQm94
IDogcHVibGljIElubGluZUZsb3dCb3ggewogcHVibGljOgogICAgIGV4cGxpY2l0IFJvb3RJbmxp
bmVCb3goUmVuZGVyQmxvY2tGbG93Jik7CiAgICAgdmlydHVhbCB+Um9vdElubGluZUJveCgpOwot
ICAgIFdlYWtQdHI8Um9vdElubGluZUJveD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vh
a1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxSb290SW5saW5lQm94
PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCp0aGlzKTsgfQogCiAgICAgUmVuZGVyQmxvY2tGbG93JiBibG9ja0Zsb3coKSBjb25zdDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKaW5kZXggZTIyMzBmNDEyZGQ4MTM1YmYy
NTc2MTViZWI4ZWU0ODQ3N2ZkZTA0ZS4uNDA0MjMxN2NjNjFmZGE3OTU0YzBmMTQ0Y2EzZDYzODFl
ZjNjOTk2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCkBAIC04MSw3ICs4
MSw2IEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiBpbmxpbmUgU1ZHUGF0aEVs
ZW1lbnQ6OlNWR1BhdGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCkKICAgICAsIG1fcGF0aFNlZ0xpc3QoUGF0aFNlZ1VuYWx0ZXJlZFJvbGUpCi0gICAgLCBtX3dl
YWtQdHJGYWN0b3J5KHRoaXMpCiAgICAgLCBtX2lzQW5pbVZhbE9ic2VydmVkKGZhbHNlKQogewog
ICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpwYXRoVGFnKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoRWxlbWVudC5oCmluZGV4IDNmNDcxMDViNGQwY2IzM2VjZDBlYjBhZWZjYjEyZjNjMzdm
OTVkMzkuLjQ4MjQ3ODJmYzNlODdjY2Q5YzZiODRmNWRmN2IyZTVhZjQzYWE3NTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCkBAIC05Nyw3ICs5Nyw3IEBAIHB1YmxpYzoKIAogICAg
IGJvb2wgaXNBbmltVmFsT2JzZXJ2ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQW5pbVZhbE9ic2Vy
dmVkOyB9CiAKLSAgICBXZWFrUHRyPFNWR1BhdGhFbGVtZW50PiBjcmVhdGVXZWFrUHRyKCkgY29u
c3QgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFr
UHRyPFNWR1BhdGhFbGVtZW50PiBjcmVhdGVXZWFrUHRyKCkgY29uc3QgeyByZXR1cm4gbV93ZWFr
UHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCpjb25zdF9jYXN0PFNWR1BhdGhFbGVtZW50Kj4odGhp
cykpOyB9CiAKICAgICB2b2lkIGFuaW1hdGVkUHJvcGVydHlXaWxsQmVEZWxldGVkKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJPZmYu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJPZmYuaAppbmRl
eCAwMTg4MDMxY2UzOGFjMWVmNDJkN2Y4NjE1ZDc0ZmM4ZmZmODhiMTFmLi5lMGJmMGQwODI3ZTcz
ZjdmYzhmZmQyMDkzMDlkZjAxZTNjMjk5YTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVhck9mZi5oCkBAIC0zMCw3ICszMCw3IEBAIHB1YmxpYzoK
ICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQodmFsdWUsICZwYXJlbnQucHJvcGVydHlSZWZl
cmVuY2UoKS5zdmdNYXRyaXgoKSA9PSAmdmFsdWUpOwogICAgICAgICBSZWY8U1ZHTWF0cml4VGVh
ck9mZj4gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXhUZWFyT2ZmKHBhcmVudCkpOwot
ICAgICAgICBwYXJlbnQuYWRkQ2hpbGQocmVzdWx0LT5tX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKSk7CisgICAgICAgIHBhcmVudC5hZGRDaGlsZChyZXN1bHQtPm1fd2Vha0ZhY3RvcnkuY3Jl
YXRlV2Vha1B0cihyZXN1bHQpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKQEAg
LTQ4LDcgKzQ4LDYgQEAgcHJpdmF0ZToKICAgICBTVkdNYXRyaXhUZWFyT2ZmKFNWR1RyYW5zZm9y
bSYgcGFyZW50KQogICAgICAgICA6IFNWR01hdHJpeChudWxscHRyKQogICAgICAgICAsIG1fcGFy
ZW50KCZwYXJlbnQpCi0gICAgICAgICwgbV93ZWFrRmFjdG9yeSh0aGlzKQogICAgIHsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHAKaW5kZXggYTFhNzk4
ZDE3OTMxMjQyYjVmNmUwN2U3OTU3ODkwOTQ5OGI4M2FjNC4uYjJmYzZjMTc5OGNiZGEyYTYyZjQx
OTY3ZTUyNGVhNjdlYTg1OGViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9N
b2NrQ0RNRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFj
dG9yeS5jcHAKQEAgLTM4LDcgKzM4LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBNb2NrQ0RN
RmFjdG9yeTo6TW9ja0NETUZhY3RvcnkoKQogICAgIDogbV9zdXBwb3J0ZWRTZXNzaW9uVHlwZXMo
eyBNZWRpYUtleVNlc3Npb25UeXBlOjpUZW1wb3JhcnksIE1lZGlhS2V5U2Vzc2lvblR5cGU6OlBl
cnNpc3RlbnRVc2FnZVJlY29yZCwgTWVkaWFLZXlTZXNzaW9uVHlwZTo6UGVyc2lzdGVudExpY2Vu
c2UgfSkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKICAgICBDRE1GYWN0b3J5Ojpy
ZWdpc3RlckZhY3RvcnkoKnRoaXMpOwogfQpAQCAtOTgsMTIgKzk3LDExIEBAIHZvaWQgTW9ja0NE
TUZhY3Rvcnk6OnNldFN1cHBvcnRlZERhdGFUeXBlcyhWZWN0b3I8U3RyaW5nPiYmIHR5cGVzKQog
CiBzdGQ6OnVuaXF1ZV9wdHI8Q0RNUHJpdmF0ZT4gTW9ja0NETUZhY3Rvcnk6OmNyZWF0ZUNETShj
b25zdCBTdHJpbmcmKQogewotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1vY2tDRE0+KG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3Vu
aXF1ZTxNb2NrQ0RNPihtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpKTsKIH0K
IAogTW9ja0NETTo6TW9ja0NETShXZWFrUHRyPE1vY2tDRE1GYWN0b3J5PiBmYWN0b3J5KQogICAg
IDogbV9mYWN0b3J5KFdURk1vdmUoZmFjdG9yeSkpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRo
aXMpCiB7CiB9CiAKQEAgLTE2Nyw3ICsxNjUsNyBAQCBSZWZQdHI8Q0RNSW5zdGFuY2U+IE1vY2tD
RE06OmNyZWF0ZUluc3RhbmNlKCkKIHsKICAgICBpZiAobV9mYWN0b3J5ICYmICFtX2ZhY3Rvcnkt
PmNhbkNyZWF0ZUluc3RhbmNlcygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IE1vY2tDRE1JbnN0YW5jZShtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTW9ja0NETUluc3RhbmNlKG1fd2Vh
a1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcykpKTsKIH0KIAogdm9pZCBNb2NrQ0RNOjps
b2FkQW5kSW5pdGlhbGl6ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
cHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXggMTBl
MTRmNzBlZDY3ZjFkY2JhYjkxNzdjY2EzZGMxYzU3NzI0OWIzNy4uOTYxYmJkMzdjMzdmYjYwMmU1
ODVkNjMxYjI0NGZlYThjYjBkOWJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmNwcApA
QCAtNDAsNyArNDAsNiBAQCBzdGF0aWMgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkqIGFjdGl2
ZVBheW1lbnRDb29yZGluYXRvclByb3h5OwogCiBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6
V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkoV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHkpCiAg
ICAgOiBtX3dlYlBhZ2VQcm94eSh3ZWJQYWdlUHJveHkpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5
KHRoaXMpCiAgICAgLCBtX3N0YXRlKFN0YXRlOjpJZGxlKQogICAgICwgbV9tZXJjaGFudFZhbGlk
YXRpb25TdGF0ZShNZXJjaGFudFZhbGlkYXRpb25TdGF0ZTo6SWRsZSkKIHsKQEAgLTY1LDcgKzY0
LDcgQEAgdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y2FuTWFrZVBheW1lbnRzKGJv
b2wmIHJlcGx5KQogCiB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpjYW5NYWtlUGF5
bWVudHNXaXRoQWN0aXZlQ2FyZChjb25zdCBTdHJpbmcmIG1lcmNoYW50SWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBkb21haW5OYW1lLCB1aW50NjRfdCByZXF1ZXN0SUQpCiB7Ci0gICAgYXV0byB3
ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAgIGF1dG8gd2Vh
a1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOwogICAgIHBsYXRm
b3JtQ2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQobWVyY2hhbnRJZGVudGlmaWVyLCBkb21h
aW5OYW1lLCBbd2Vha1RoaXMsIHJlcXVlc3RJRF0oYm9vbCBjYW5NYWtlUGF5bWVudHMpIHsKICAg
ICAgICAgYXV0byBwYXltZW50Q29vcmRpbmF0b3JQcm94eSA9IHdlYWtUaGlzLmdldCgpOwogICAg
ICAgICBpZiAoIXBheW1lbnRDb29yZGluYXRvclByb3h5KQpAQCAtNzcsNyArNzYsNyBAQCB2b2lk
IFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpjYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2Fy
ZChjb25zdCBTdHJpbmcmIG1lcgogCiB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5Ojpv
cGVuUGF5bWVudFNldHVwKGNvbnN0IFN0cmluZyYgbWVyY2hhbnRJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIGRvbWFpbk5hbWUsIHVpbnQ2NF90IHJlcXVlc3RJRCkKIHsKLSAgICBhdXRvIHdlYWtU
aGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgYXV0byB3ZWFrVGhp
cyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiAgICAgcGxhdGZvcm1P
cGVuUGF5bWVudFNldHVwKG1lcmNoYW50SWRlbnRpZmllciwgZG9tYWluTmFtZSwgW3dlYWtUaGlz
LCByZXF1ZXN0SURdKGJvb2wgcmVzdWx0KSB7CiAgICAgICAgIGF1dG8gcGF5bWVudENvb3JkaW5h
dG9yUHJveHkgPSB3ZWFrVGhpcy5nZXQoKTsKICAgICAgICAgaWYgKCFwYXltZW50Q29vcmRpbmF0
b3JQcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxlUGF5L21h
Yy9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FwcGxlUGF5L21hYy9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eU1hYy5tbQppbmRleCAz
ZTUwNjlhMWQ1NDUwYzkxZGUxOTc5YjVjN2RjMTQ5MGUzZTE2OWJhLi5hMTJlYzQ2NzM0OWNjMWEw
NmM4YWEyYzZkY2VmMWU1YmUyNmU2Y2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BcHBsZVBheS9tYWMvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkvbWFjL1dlYlBheW1lbnRDb29yZGluYXRv
clByb3h5TWFjLm1tCkBAIC00Niw3ICs0Niw3IEBAIHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHk6OnBsYXRmb3JtU2hvd1BheW1lbnRVSShjb25zdCBXZWJDb3JlOjpVUkwmIG9yaWdpCiAg
ICAgYXV0byBwYXltZW50UmVxdWVzdCA9IHRvUEtQYXltZW50UmVxdWVzdChtX3dlYlBhZ2VQcm94
eSwgb3JpZ2luYXRpbmdVUkwsIGxpbmtJY29uVVJMU3RyaW5ncywgcmVxdWVzdCk7CiAKICAgICBh
dXRvIHNob3dQYXltZW50VUlSZXF1ZXN0U2VlZCA9IG1fc2hvd1BheW1lbnRVSVJlcXVlc3RTZWVk
OwotICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsK
KyAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlz
KTsKICAgICBbZ2V0UEtQYXltZW50QXV0aG9yaXphdGlvblZpZXdDb250cm9sbGVyQ2xhc3MoKSBy
ZXF1ZXN0Vmlld0NvbnRyb2xsZXJXaXRoUGF5bWVudFJlcXVlc3Q6cGF5bWVudFJlcXVlc3QuZ2V0
KCkgY29tcGxldGlvbjpCbG9ja1B0cjx2b2lkIChQS1BheW1lbnRBdXRob3JpemF0aW9uVmlld0Nv
bnRyb2xsZXIgKiwgTlNFcnJvciAqKT46OmZyb21DYWxsYWJsZShbcGF5bWVudFJlcXVlc3QsIHNo
b3dQYXltZW50VUlSZXF1ZXN0U2VlZCwgd2Vha1RoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildKFBLUGF5bWVudEF1dGhvcml6YXRpb25WaWV3Q29udHJv
bGxlciAqdmlld0NvbnRyb2xsZXIsIE5TRXJyb3IgKmVycm9yKSB7CiAgICAgICAgIGF1dG8gcGF5
bWVudENvb3JkaW5hdG9yUHJveHkgPSB3ZWFrVGhpcy5nZXQoKTsKICAgICAgICAgaWYgKCFwYXlt
ZW50Q29vcmRpbmF0b3JQcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FwcGxpY2F0aW9uU3RhdGVUcmFja2VyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBw
bGljYXRpb25TdGF0ZVRyYWNrZXIubW0KaW5kZXggNmIyOTM5YWQzYzBlMDZiNWRkNTIxY2U3YTg4
NjJkMmJkYjdlODU4Ny4uYzY1MjNhMzhhZDg2M2Y4ZmJjNTJlNGQxODJlMGU4N2EwYzc3OTgzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGljYXRpb25TdGF0ZVRyYWNr
ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGljYXRpb25TdGF0ZVRyYWNr
ZXIubW0KQEAgLTc5LDcgKzc5LDYgQEAgQXBwbGljYXRpb25TdGF0ZVRyYWNrZXI6OkFwcGxpY2F0
aW9uU3RhdGVUcmFja2VyKFVJVmlldyAqdmlldywgU0VMIGRpZEVudGVyQmFja2cKICAgICAsIG1f
ZGlkRmluaXNoU25hcHNob3R0aW5nQWZ0ZXJFbnRlcmluZ0JhY2tncm91bmRTZWxlY3RvcihkaWRG
aW5pc2hTbmFwc2hvdHRpbmdBZnRlckVudGVyaW5nQmFja2dyb3VuZFNlbGVjdG9yKQogICAgICwg
bV93aWxsRW50ZXJGb3JlZ3JvdW5kU2VsZWN0b3Iod2lsbEVudGVyRm9yZWdyb3VuZFNlbGVjdG9y
KQogICAgICwgbV9pc0luQmFja2dyb3VuZCh0cnVlKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0
aGlzKQogICAgICwgbV9kaWRFbnRlckJhY2tncm91bmRPYnNlcnZlcihudWxscHRyKQogICAgICwg
bV9kaWRDcmVhdGVXaW5kb3dDb250ZXh0T2JzZXJ2ZXIobnVsbHB0cikKICAgICAsIG1fZGlkRmlu
aXNoU25hcHNob3R0aW5nQWZ0ZXJFbnRlcmluZ0JhY2tncm91bmRPYnNlcnZlcihudWxscHRyKQpA
QCAtOTQsNyArOTMsNyBAQCBBcHBsaWNhdGlvblN0YXRlVHJhY2tlcjo6QXBwbGljYXRpb25TdGF0
ZVRyYWNrZXIoVUlWaWV3ICp2aWV3LCBTRUwgZGlkRW50ZXJCYWNrZwogICAgIEFTU0VSVCh3aW5k
b3cpOwogCiAgICAgTlNOb3RpZmljYXRpb25DZW50ZXIgKm5vdGlmaWNhdGlvbkNlbnRlciA9IFtO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXTsKLSAgICBhdXRvIHdlYWtUaGlzID0g
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiAgICAgbV9kaWRDcmVhdGVXaW5k
b3dDb250ZXh0T2JzZXJ2ZXIgPSBbbm90aWZpY2F0aW9uQ2VudGVyIGFkZE9ic2VydmVyRm9yTmFt
ZTpAIl9VSVdpbmRvd0RpZENyZWF0ZVdpbmRvd0NvbnRleHROb3RpZmljYXRpb24iIG9iamVjdDp3
aW5kb3cgcXVldWU6bmlsIHVzaW5nQmxvY2s6W3dlYWtUaGlzXShOU05vdGlmaWNhdGlvbiAqKSB7
CiAgICAgICAgIGF1dG8gYXBwbGljYXRpb25TdGF0ZVRyYWNrZXIgPSB3ZWFrVGhpcy5nZXQoKTsK
ICAgICAgICAgaWYgKCFhcHBsaWNhdGlvblN0YXRlVHJhY2tlcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4IGI0Mzk3YzY2YjNhZjBiOGMzOGI5OTE3
NDY4ZDk4ODJjMjk2OWEzZWYuLjQxNmRjYzBlNmU5NDc4NzNhYWFkZWU5YmExMDgzMmFiYzFmMDkx
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAt
NTc0LDcgKzU3NCw3IEBAIHByaXZhdGU6CiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9QTEFZQkFDS19D
T05UUk9MU19NQU5BR0VSKQogI2VuZGlmIC8vIEhBVkUoVE9VQ0hfQkFSKQogCi0gICAgV2Vha1B0
cjxXZWJWaWV3SW1wbD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxXZWJWaWV3SW1wbD4gY3JlYXRlV2Vha1B0
cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAog
ICAgIGJvb2wgc3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2RlcygpIGNvbnN0OwogICAgIGZsb2F0
IGludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDAxNTVjYjE4YjE1MTQzOWEwZjEzYjIz
YWFkYWFkNjE3NzFjNmU1OTAuLjkzODQ2YThkNThjYmZkY2IzZDMyYjYxZmVjNGViN2QxYjk1ZWQ1
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBA
IC0xMjcxLDcgKzEyNzEsNiBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoTlNWaWV3IDxXZWJW
aWV3SW1wbERlbGVnYXRlPiAqdmlldywgV0tXZWJWaWV3ICpvdXRlcldlYgogICAgIDogbV92aWV3
KHZpZXcpCiAgICAgLCBtX3BhZ2VDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxQYWdlQ2xpZW50SW1w
bD4odmlldywgb3V0ZXJXZWJWaWV3KSkKICAgICAsIG1fcGFnZShwcm9jZXNzUG9vbC5jcmVhdGVX
ZWJQYWdlKCptX3BhZ2VDbGllbnQsIFdURk1vdmUoY29uZmlndXJhdGlvbikpKQotICAgICwgbV93
ZWFrUHRyRmFjdG9yeSh0aGlzKQogICAgICwgbV9uZWVkc1ZpZXdGcmFtZUluV2luZG93Q29vcmRp
bmF0ZXMobV9wYWdlLT5wcmVmZXJlbmNlcygpLnBsdWdpbnNFbmFibGVkKCkpCiAgICAgLCBtX2lu
dHJpbnNpY0NvbnRlbnRTaXplKENHU2l6ZU1ha2UoTlNWaWV3Tm9JbnN0cmluc2ljTWV0cmljLCBO
U1ZpZXdOb0luc3RyaW5zaWNNZXRyaWMpKQogICAgICwgbV9sYXlvdXRTdHJhdGVneShbV0tWaWV3
TGF5b3V0U3RyYXRlZ3kgbGF5b3V0U3RyYXRlZ3lXaXRoUGFnZTptX3BhZ2Ugdmlldzp2aWV3IHZp
ZXdJbXBsOip0aGlzIG1vZGU6a1dLTGF5b3V0TW9kZVZpZXdTaXplXSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuY3BwCmluZGV4IGYy
ZjcyYWNjM2YyNGIyOTlmYjBjZThiN2Y4OTJjYWRkYmExNzBhOTAuLjBmZmE5MmRjOGRkOWYwM2Iz
MjZhYzVlMTJiZjhkODFiZGRkZTExMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmNwcApAQCAtMzMsNyArMzMsNiBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzTGF1bmNoZXIoQ2xpZW50
KiBjbGllbnQsIGNvbnN0IExhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdGlvbnMpCiAgICAgOiBtX2Ns
aWVudChjbGllbnQpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiAgICAgLCBtX2xhdW5j
aE9wdGlvbnMobGF1bmNoT3B0aW9ucykKICAgICAsIG1fcHJvY2Vzc0lkZW50aWZpZXIoMCkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNz
TGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJv
Y2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4IGExNjYwYjRlYzk0YWVmOGFhM2Y4NDdiMzMxMDgxYWI0
ODEzZjA0YjIuLjY0ODlmNWIzMGM4ODYzMmJkMmI0YThiNGExYjY0YzgyZjk0YzE4ZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNo
ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nl
c3NMYXVuY2hlck1hYy5tbQpAQCAtMTg2LDcgKzE4Niw3IEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVy
OjpsYXVuY2hQcm9jZXNzKCkKIAogICAgIHhwY19kaWN0aW9uYXJ5X3NldF92YWx1ZShib290c3Ry
YXBNZXNzYWdlLmdldCgpLCAiZXh0cmEtaW5pdGlhbGl6YXRpb24tZGF0YSIsIGV4dHJhSW5pdGlh
bGl6YXRpb25EYXRhLmdldCgpKTsKIAotICAgIGF1dG8gd2Vha1Byb2Nlc3NMYXVuY2hlciA9IG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAgIGF1dG8gd2Vha1Byb2Nlc3NMYXVu
Y2hlciA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiAgICAgeHBjX2Nv
bm5lY3Rpb25fc2V0X2V2ZW50X2hhbmRsZXIobV94cGNDb25uZWN0aW9uLmdldCgpLCBbd2Vha1By
b2Nlc3NMYXVuY2hlciwgbGlzdGVuaW5nUG9ydF0oeHBjX29iamVjdF90IGV2ZW50KSB7CiAgICAg
ICAgIEFTU0VSVCh4cGNfZ2V0X3R5cGUoZXZlbnQpID09IFhQQ19UWVBFX0VSUk9SKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oCmluZGV4IDIwMzIwMDA2NTU3
NmY1ODA3ZjJjZTE2MTdhZWM5YmQ0OWU5ZjE3ODUuLjRkNGRjNjZmMjU1ZWE2ZmNjNDBjZTNhM2Ni
YjM1ZTRkODEyMmY4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nl
c3NBc3NlcnRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0
aW9uLmgKQEAgLTY5LDcgKzY5LDcgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogI2lmIFBMQVRG
T1JNKElPUykgJiYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1IpCi0gICAgV2Vha1B0cjxQcm9jZXNz
QXNzZXJ0aW9uPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVX
ZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPFByb2Nlc3NBc3NlcnRpb24+IGNyZWF0ZVdlYWtQdHIo
KSB7IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAgICAgdm9p
ZCBtYXJrQXNJbnZhbGlkYXRlZCgpOwogCiAgICAgUmV0YWluUHRyPEJLU1Byb2Nlc3NBc3NlcnRp
b24+IG1fYXNzZXJ0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
aW5kZXggMTI2NTc4MWQ5MzUwNzE3N2MzOTA5MmYzOTFjNGQ3MGUyNTc5ZWFlMy4uZjNiNTJmZTVk
ZTVlMGM1MzJlY2I2NjNhZjJmNzFjOWI3MWZjNTQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zNjUsNyArMzY1LDYgQEAgV2ViUGFnZVByb3h5OjpXZWJQ
YWdlUHJveHkoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNz
LCB1aW4KICNlbmRpZgogICAgICwgbV9wYWdlTG9hZFN0YXRlKCp0aGlzKQogICAgICwgbV9jb25m
aWd1cmF0aW9uUHJlZmVyZW5jZVZhbHVlcyhtX2NvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VWYWx1
ZXMoKSkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKICAgICBtX3dlYlByb2Nlc3NM
aWZldGltZVRyYWNrZXIuYWRkT2JzZXJ2ZXIobV92aXNpdGVkTGlua1N0b3JlKTsKICAgICBtX3dl
YlByb2Nlc3NMaWZldGltZVRyYWNrZXIuYWRkT2JzZXJ2ZXIobV93ZWJzaXRlRGF0YVN0b3JlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYjU2NGNkYzM1ODMzZmU3
NzU2YzFlZWYzYjcwZGVkN2U4MDFlMDYyZi4uNzE1MjgyMjQwOGZjOTQ3ODRkZDNmNjM2NmI2NTQx
YTA0YWI5ZmUzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEx
OTAsNyArMTE5MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdhbWVwYWRBY3Rpdml0eShjb25zdCBW
ZWN0b3I8R2FtZXBhZERhdGE+JiwgYm9vbCBzaG91bGRNYWtlR2FtZXBhZHNWaXNpYmxlKTsKICNl
bmRpZgogICAgICAgICAKLSAgICBXZWFrUHRyPFdlYlBhZ2VQcm94eT4gY3JlYXRlV2Vha1B0cigp
IGNvbnN0IHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAg
V2Vha1B0cjxXZWJQYWdlUHJveHk+IGNyZWF0ZVdlYWtQdHIoKSBjb25zdCB7IHJldHVybiBtX3dl
YWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKmNvbnN0X2Nhc3Q8V2ViUGFnZVByb3h5Kj4odGhp
cykpOyB9CiAKICAgICB2b2lkIGlzTG9hZGluZ0NoYW5nZWQoKSB7IGFjdGl2aXR5U3RhdGVEaWRD
aGFuZ2UoV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNMb2FkaW5nKTsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCmluZGV4IDQyNzVh
ZTMxMTVhNmQyNTE4NGJjMmJkZGQ4MmQwNGE1NWE5OTk3YmYuLmU1OGRkNjEzMDhkYzc3ZGMyNjk4
ZGI2OWI3NzRjNzEzNTQyNTM3OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB1
aW50NjRfdCBuZXh0VHJhbnNhY3Rpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFRyYW5z
YWN0aW9uSUQgKyAxOyB9CiAgICAgdWludDY0X3QgbGFzdENvbW1pdHRlZFRyYW5zYWN0aW9uSUQo
KSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRUcmFuc2FjdGlvbklEOyB9CiAKLSAgICBXZWFrUHRy
PFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93
ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPFJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9y
eS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiBwcml2YXRlOgogICAgIC8vIERyYXdpbmdBcmVh
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEu
bW0KaW5kZXggZTBmZTRjMTNhZmM3ZjQxYjQ0NzU3YjViZjgwMmRhYTE3YWMyMjFiMi4uOWViYTlh
OWQ3OGQ1ZDNhZDZjZjRhMmNmODZkOGE5ZGE4YzQxMGY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQpAQCAtNjAsNyArNjAsNiBA
QCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEo
V2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgVwogICAgICwgbV9yZW1vdGVMYXllclRyZWVDb250ZXh0
KHN0ZDo6bWFrZV91bmlxdWU8UmVtb3RlTGF5ZXJUcmVlQ29udGV4dD4od2ViUGFnZSkpCiAgICAg
LCBtX3Jvb3RMYXllcihHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3Rvcnko
KSwgKnRoaXMpKQogICAgICwgbV9sYXllckZsdXNoVGltZXIoKnRoaXMsICZSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMp
CiB7CiAgICAgd2ViUGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLnNldEZvcmNlQ29tcG9zaXRp
bmdNb2RlKHRydWUpOwogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCAz
ZGRlYmI1Y2JlODE5NzE0YjdlYWYzYjU5YzdjOTM4ZjRlM2M1MzJiLi4zNDNjMmM3ZmI3OTU5YzRh
OWFhNTE1MjExOGRjMDZmODZiODcwMTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC0xOTUsNyAr
MTk1LDYgQEAgQGVuZAogV2ViRWRpdG9yQ2xpZW50OjpXZWJFZGl0b3JDbGllbnQoV2ViVmlldyAq
d2ViVmlldykKICAgICA6IG1fd2ViVmlldyh3ZWJWaWV3KQogICAgICwgbV91bmRvVGFyZ2V0KGFk
b3B0TlMoW1tXZWJFZGl0b3JVbmRvVGFyZ2V0IGFsbG9jXSBpbml0XSkpCi0gICAgLCBtX3dlYWtQ
dHJGYWN0b3J5KHRoaXMpCiB7CiB9CiAKQEAgLTEyNDcsNyArMTI0Niw3IEBAIHZvaWQgV2ViRWRp
dG9yQ2xpZW50OjpyZXF1ZXN0Q2FuZGlkYXRlc0ZvclNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBzZWxlCiAgICAgbV9wYXJhZ3JhcGhDb250ZXh0Rm9yQ2FuZGlkYXRlUmVxdWVzdCA9
IHBsYWluVGV4dChmcmFtZS0+ZWRpdG9yKCkuY29udGV4dFJhbmdlRm9yQ2FuZGlkYXRlUmVxdWVz
dCgpLmdldCgpKTsKIAogICAgIE5TVGV4dENoZWNraW5nVHlwZXMgY2hlY2tpbmdUeXBlcyA9IE5T
VGV4dENoZWNraW5nVHlwZVNwZWxsaW5nIHwgTlNUZXh0Q2hlY2tpbmdUeXBlUmVwbGFjZW1lbnQg
fCBOU1RleHRDaGVja2luZ1R5cGVDb3JyZWN0aW9uOwotICAgIGF1dG8gd2Vha0VkaXRvciA9IG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAgIGF1dG8gd2Vha0VkaXRvciA9IG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiAgICAgbV9sYXN0Q2FuZGlkYXRl
UmVxdWVzdFNlcXVlbmNlTnVtYmVyID0gW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNr
ZXJdIHJlcXVlc3RDYW5kaWRhdGVzRm9yU2VsZWN0ZWRSYW5nZTptX3JhbmdlRm9yQ2FuZGlkYXRl
cyBpblN0cmluZzptX3BhcmFncmFwaENvbnRleHRGb3JDYW5kaWRhdGVSZXF1ZXN0LmdldCgpIHR5
cGVzOmNoZWNraW5nVHlwZXMgb3B0aW9uczpuaWwgaW5TcGVsbERvY3VtZW50V2l0aFRhZzpzcGVs
bENoZWNrZXJEb2N1bWVudFRhZygpIGNvbXBsZXRpb25IYW5kbGVyOlt3ZWFrRWRpdG9yXShOU0lu
dGVnZXIgc2VxdWVuY2VOdW1iZXIsIE5TQXJyYXk8TlNUZXh0Q2hlY2tpbmdSZXN1bHQgKj4gKmNh
bmRpZGF0ZXMpIHsKICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVl
dWUoKSwgXnsKICAgICAgICAgICAgIGlmICghd2Vha0VkaXRvcikKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhZWIwMmEzODBmNTFmZWU1OTFhZmIy
YTIyYTAyZTIzYTcxMzAzYTQzLi4yYzA4Nzk3M2U2YmEzMDdmZTUwOWMxMTJiMDQyNjk5Y2FjYmIx
MjBmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTctMDktMjIgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNv
bT4KKworICAgICAgICBXZWFrUHRyRmFjdG9yeSBzaG91bGQgcG9wdWxhdGUgbV9yZWYgbGF6aWx5
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3Mzc1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9XZWFrUHRyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorCiAyMDE3LTA5LTIyICBUaW0gSG9ydG9uIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5j
b20+IGFuZCBNaWNoYWVsIENhdGFuemFybyA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFJlbW92ZSBidWlsZC13ZWJraXQncyBub3Rpb24gb2YgZmVhdHVyZSBmbGFncyBoYXZpbmcg
YSBkZWZhdWx0IHZhbHVlCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9XZWFrUHRyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dlYWtQdHIuY3Bw
CmluZGV4IDc0NWFhZGQyYmQ1MmI3MGE5NjM4OGY1MDc0ZTEzYTNiYjZlZWFhYjQuLmNmNjdhNjA2
MzExZGEzZWNmYzQ1MWU2NGEyNzViODVjN2IyNWFmMDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1dlYWtQdHIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1dlYWtQdHIuY3BwCkBAIC0zMywxMCArMzMsMTAgQEAgbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkgewogVEVTVChXVEZfV2Vha1B0ciwgQmFzaWMpCiB7CiAgICAgaW50IGR1bW15ID0g
NTsKLSAgICBXZWFrUHRyRmFjdG9yeTxpbnQ+KiBmYWN0b3J5ID0gbmV3IFdlYWtQdHJGYWN0b3J5
PGludD4oJmR1bW15KTsKLSAgICBXZWFrUHRyPGludD4gd2Vha1B0cjEgPSBmYWN0b3J5LT5jcmVh
dGVXZWFrUHRyKCk7Ci0gICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIyID0gZmFjdG9yeS0+Y3JlYXRl
V2Vha1B0cigpOwotICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMyA9IGZhY3RvcnktPmNyZWF0ZVdl
YWtQdHIoKTsKKyAgICBXZWFrUHRyRmFjdG9yeTxpbnQ+KiBmYWN0b3J5ID0gbmV3IFdlYWtQdHJG
YWN0b3J5PGludD4oKTsKKyAgICBXZWFrUHRyPGludD4gd2Vha1B0cjEgPSBmYWN0b3J5LT5jcmVh
dGVXZWFrUHRyKCZkdW1teSk7CisgICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIyID0gZmFjdG9yeS0+
Y3JlYXRlV2Vha1B0cigmZHVtbXkpOworICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMyA9IGZhY3Rv
cnktPmNyZWF0ZVdlYWtQdHIoJmR1bW15KTsKICAgICBFWFBFQ1RfRVEod2Vha1B0cjEuZ2V0KCks
ICZkdW1teSk7CiAgICAgRVhQRUNUX0VRKHdlYWtQdHIyLmdldCgpLCAmZHVtbXkpOwogICAgIEVY
UEVDVF9FUSh3ZWFrUHRyMy5nZXQoKSwgJmR1bW15KTsKQEAgLTYwLDkgKzYwLDkgQEAgVEVTVChX
VEZfV2Vha1B0ciwgQXNzaWdubWVudCkKICAgICBpbnQgZHVtbXkgPSA1OwogICAgIFdlYWtQdHI8
aW50PiB3ZWFrUHRyOwogICAgIHsKLSAgICAgICAgV2Vha1B0ckZhY3Rvcnk8aW50PiBmYWN0b3J5
KCZkdW1teSk7CisgICAgICAgIFdlYWtQdHJGYWN0b3J5PGludD4gZmFjdG9yeTsKICAgICAgICAg
RVhQRUNUX05VTEwod2Vha1B0ci5nZXQoKSk7Ci0gICAgICAgIHdlYWtQdHIgPSBmYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKTsKKyAgICAgICAgd2Vha1B0ciA9IGZhY3RvcnkuY3JlYXRlV2Vha1B0cigm
ZHVtbXkpOwogICAgICAgICBFWFBFQ1RfRVEod2Vha1B0ci5nZXQoKSwgJmR1bW15KTsKICAgICB9
CiAgICAgRVhQRUNUX05VTEwod2Vha1B0ci5nZXQoKSk7CkBAIC03MiwxMCArNzIsMTAgQEAgVEVT
VChXVEZfV2Vha1B0ciwgTXVsdGlwbGVGYWN0b3JpZXMpCiB7CiAgICAgaW50IGR1bW15MSA9IDU7
CiAgICAgaW50IGR1bW15MiA9IDc7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8aW50PiogZmFjdG9yeTEg
PSBuZXcgV2Vha1B0ckZhY3Rvcnk8aW50PigmZHVtbXkxKTsKLSAgICBXZWFrUHRyRmFjdG9yeTxp
bnQ+KiBmYWN0b3J5MiA9IG5ldyBXZWFrUHRyRmFjdG9yeTxpbnQ+KCZkdW1teTIpOwotICAgIFdl
YWtQdHI8aW50PiB3ZWFrUHRyMSA9IGZhY3RvcnkxLT5jcmVhdGVXZWFrUHRyKCk7Ci0gICAgV2Vh
a1B0cjxpbnQ+IHdlYWtQdHIyID0gZmFjdG9yeTItPmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBXZWFr
UHRyRmFjdG9yeTxpbnQ+KiBmYWN0b3J5MSA9IG5ldyBXZWFrUHRyRmFjdG9yeTxpbnQ+KCk7Cisg
ICAgV2Vha1B0ckZhY3Rvcnk8aW50PiogZmFjdG9yeTIgPSBuZXcgV2Vha1B0ckZhY3Rvcnk8aW50
PigpOworICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMSA9IGZhY3RvcnkxLT5jcmVhdGVXZWFrUHRy
KCZkdW1teTEpOworICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMiA9IGZhY3RvcnkyLT5jcmVhdGVX
ZWFrUHRyKCZkdW1teTIpOwogICAgIEVYUEVDVF9FUSh3ZWFrUHRyMS5nZXQoKSwgJmR1bW15MSk7
CiAgICAgRVhQRUNUX0VRKHdlYWtQdHIyLmdldCgpLCAmZHVtbXkyKTsKICAgICBFWFBFQ1RfVFJV
RSh3ZWFrUHRyMSAhPSB3ZWFrUHRyMik7CkBAIC05MSwxMCArOTEsMTAgQEAgVEVTVChXVEZfV2Vh
a1B0ciwgTXVsdGlwbGVGYWN0b3JpZXMpCiBURVNUKFdURl9XZWFrUHRyLCBSZXZva2VBbGwpCiB7
CiAgICAgaW50IGR1bW15ID0gNTsKLSAgICBXZWFrUHRyRmFjdG9yeTxpbnQ+IGZhY3RvcnkoJmR1
bW15KTsKLSAgICBXZWFrUHRyPGludD4gd2Vha1B0cjEgPSBmYWN0b3J5LmNyZWF0ZVdlYWtQdHIo
KTsKLSAgICBXZWFrUHRyPGludD4gd2Vha1B0cjIgPSBmYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsK
LSAgICBXZWFrUHRyPGludD4gd2Vha1B0cjMgPSBmYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAg
ICBXZWFrUHRyRmFjdG9yeTxpbnQ+IGZhY3Rvcnk7CisgICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIx
ID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRyKCZkdW1teSk7CisgICAgV2Vha1B0cjxpbnQ+IHdlYWtQ
dHIyID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRyKCZkdW1teSk7CisgICAgV2Vha1B0cjxpbnQ+IHdl
YWtQdHIzID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRyKCZkdW1teSk7CiAgICAgRVhQRUNUX0VRKHdl
YWtQdHIxLmdldCgpLCAmZHVtbXkpOwogICAgIEVYUEVDVF9FUSh3ZWFrUHRyMi5nZXQoKSwgJmR1
bW15KTsKICAgICBFWFBFQ1RfRVEod2Vha1B0cjMuZ2V0KCksICZkdW1teSk7CkBAIC0xMDQsMTUg
KzEwNCw2IEBAIFRFU1QoV1RGX1dlYWtQdHIsIFJldm9rZUFsbCkKICAgICBFWFBFQ1RfTlVMTCh3
ZWFrUHRyMy5nZXQoKSk7CiB9CiAKLVRFU1QoV1RGX1dlYWtQdHIsIE51bGxGYWN0b3J5KQotewot
ICAgIFdlYWtQdHJGYWN0b3J5PGludD4gZmFjdG9yeShudWxscHRyKTsKLSAgICBXZWFrUHRyPGlu
dD4gd2Vha1B0ciA9IGZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOwotICAgIEVYUEVDVF9OVUxMKHdl
YWtQdHIuZ2V0KCkpOwotICAgIGZhY3RvcnkucmV2b2tlQWxsKCk7Ci0gICAgRVhQRUNUX05VTEwo
d2Vha1B0ci5nZXQoKSk7Ci19Ci0KIHN0cnVjdCBGb28gewogICAgIHZvaWQgYmFyKCkgeyB9Owog
fTsKQEAgLTEyMCw4ICsxMTEsOCBAQCBzdHJ1Y3QgRm9vIHsKIFRFU1QoV1RGX1dlYWtQdHIsIERl
cmVmZXJlbmNlKQogewogICAgIEZvbyBmOwotICAgIFdlYWtQdHJGYWN0b3J5PEZvbz4gZmFjdG9y
eSgmZik7Ci0gICAgV2Vha1B0cjxGb28+IHdlYWtQdHIgPSBmYWN0b3J5LmNyZWF0ZVdlYWtQdHIo
KTsKKyAgICBXZWFrUHRyRmFjdG9yeTxGb28+IGZhY3Rvcnk7CisgICAgV2Vha1B0cjxGb28+IHdl
YWtQdHIgPSBmYWN0b3J5LmNyZWF0ZVdlYWtQdHIoJmYpOwogICAgIHdlYWtQdHItPmJhcigpOwog
fQogCkBAIC0xMzAsMTMgKzEyMSwxMyBAQCBURVNUKFdURl9XZWFrUHRyLCBGb3JnZXQpCiAgICAg
aW50IGR1bW15ID0gNTsKICAgICBpbnQgZHVtbXkyID0gNzsKIAotICAgIFdlYWtQdHJGYWN0b3J5
PGludD4gb3V0ZXJGYWN0b3J5KCZkdW1teTIpOworICAgIFdlYWtQdHJGYWN0b3J5PGludD4gb3V0
ZXJGYWN0b3J5OwogICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMSwgd2Vha1B0cjIsIHdlYWtQdHIz
LCB3ZWFrUHRyNDsKICAgICB7Ci0gICAgICAgIFdlYWtQdHJGYWN0b3J5PGludD4gaW5uZXJGYWN0
b3J5KCZkdW1teSk7Ci0gICAgICAgIHdlYWtQdHIxID0gaW5uZXJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKTsKLSAgICAgICAgd2Vha1B0cjIgPSBpbm5lckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOwot
ICAgICAgICB3ZWFrUHRyMyA9IGlubmVyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgICAg
IFdlYWtQdHJGYWN0b3J5PGludD4gaW5uZXJGYWN0b3J5OworICAgICAgICB3ZWFrUHRyMSA9IGlu
bmVyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCZkdW1teSk7CisgICAgICAgIHdlYWtQdHIyID0gaW5u
ZXJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoJmR1bW15KTsKKyAgICAgICAgd2Vha1B0cjMgPSBpbm5l
ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigmZHVtbXkpOwogICAgICAgICBFWFBFQ1RfRVEod2Vha1B0
cjEuZ2V0KCksICZkdW1teSk7CiAgICAgICAgIEVYUEVDVF9FUSh3ZWFrUHRyMi5nZXQoKSwgJmR1
bW15KTsKICAgICAgICAgRVhQRUNUX0VRKHdlYWtQdHIzLmdldCgpLCAmZHVtbXkpOwpAQCAtMTY2
LDcgKzE1Nyw3IEBAIFRFU1QoV1RGX1dlYWtQdHIsIEZvcmdldCkKICAgICAgICAgRVhQRUNUX05V
TEwod2Vha1B0cjUuZ2V0KCkpOwogICAgICAgICBFWFBFQ1RfRVEod2Vha1B0cjIuZ2V0KCksICZk
dW1teSk7CiAKLSAgICAgICAgd2Vha1B0cjQgPSBvdXRlckZhY3RvcnkuY3JlYXRlV2Vha1B0cigp
OworICAgICAgICB3ZWFrUHRyNCA9IG91dGVyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCZkdW1teTIp
OwogICAgICAgICBFWFBFQ1RfRVEod2Vha1B0cjIuZ2V0KCksICZkdW1teSk7CiAgICAgICAgIEVY
UEVDVF9FUSh3ZWFrUHRyNC5nZXQoKSwgJmR1bW15Mik7CiAgICAgfQpAQCAtMTg0LDcgKzE3NSw3
IEBAIFRFU1QoV1RGX1dlYWtQdHIsIEZvcmdldCkKICAgICBFWFBFQ1RfTlVMTCh3ZWFrUHRyNi5n
ZXQoKSk7CiAgICAgRVhQRUNUX0VRKHdlYWtQdHI1LmdldCgpLCB3ZWFrUHRyNi5nZXQoKSk7CiAK
LSAgICBXZWFrUHRyPGludD4gd2Vha1B0cjcgPSBvdXRlckZhY3RvcnkuY3JlYXRlV2Vha1B0cigp
OworICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyNyA9IG91dGVyRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCZkdW1teTIpOwogICAgIEVYUEVDVF9FUSh3ZWFrUHRyNy5nZXQoKSwgJmR1bW15Mik7CiAgICAg
d2Vha1B0cjcgPSBudWxscHRyOwogICAgIEVYUEVDVF9OVUxMKHdlYWtQdHI3LmdldCgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321603</attachid>
            <date>2017-09-22 16:43:39 -0700</date>
            <delta_ts>2017-09-22 19:42:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177375-20170922164338.patch</filename>
            <type>text/plain</type>
            <size>103400</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMzk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNhY2Q4MjNjMzdjZDIwMTRlODAzNzUw
YjczOTRkNTgxYzJkMjMyZjIuLjZjOTBhY2Q2MzQ1NWY5YTZkZWVlYTNlN2FmZDc5YTIzMTUwZmQx
MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTctMDktMjIgIFphbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBXZWFrUHRyRmFjdG9yeSBzaG91bGQgcG9wdWxhdGUgbV9y
ZWYgbGF6aWx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc3Mzc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBoZWxwcyB1cyB3aXRoIHRoZSBvdmVyaGVhZCBvZiBpbml0aWFsaXppbmcgV2Vha1B0
ckZhY3RvcnkgZm9yCisgICAgICAgIG9iamVjdHMgdGhhdCByYXJlbHkgZW5kIHVwIGNyZWF0aW5n
IHRoZSB3ZWFrIHJlZmVyZW5jZS4KKyAgICAgICAgLVRoaXMgaXMgaW4gcHJlcGFyYXRpb24gZm9y
IGludHJvZHVjaW5nIFdlYWtQdHIgdG8gUmVuZGVyT2JqZWN0LgorCisgICAgICAgIEFsbCBjcmVk
aXQgdG8gR2VvZmZyZXkgR2FyZW4uCisKKyAgICAgICAgKiB3dGYvV2Vha1B0ci5oOgorICAgICAg
ICAoV1RGOjpXZWFrUmVmZXJlbmNlOjpnZXQgY29uc3QpOgorICAgICAgICAoV1RGOjpXZWFrUmVm
ZXJlbmNlOjpjbGVhcik6CisgICAgICAgIChXVEY6OldlYWtSZWZlcmVuY2U6OldlYWtSZWZlcmVu
Y2UpOgorICAgICAgICAoV1RGOjpXZWFrUHRyRmFjdG9yeTo6fldlYWtQdHJGYWN0b3J5KToKKyAg
ICAgICAgKFdURjo6V2Vha1B0ckZhY3Rvcnk6OmNyZWF0ZVdlYWtQdHIgY29uc3QpOgorICAgICAg
ICAoV1RGOjpXZWFrUHRyRmFjdG9yeTo6cmV2b2tlQWxsKToKKyAgICAgICAgKFdURjo6V2Vha1B0
ckZhY3Rvcnk6OldlYWtQdHJGYWN0b3J5KTogRGVsZXRlZC4KKwogMjAxNy0wOS0yMSAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgU3Ry
aW5nQnVpbGRlciBtb3ZhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjUzZTE2Njc1YTY5ZjMyMWNhZjRjZjkx
MDU4OGM2N2ZkM2VmYjkzNS4uNmRlNjllMmI5NDJjZWUxMzNlZjAyY2YxY2I1YjYyMTBiNzVlMWFm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2NiBAQAorMjAxNy0wOS0yMiAgWmFsYW4gQnVqdGFz
ICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYWtQdHJGYWN0b3J5IHNob3VsZCBwb3B1
bGF0ZSBtX3JlZiBsYXppbHkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzczNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNETTo6Q0RNKToKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5o
OgorICAgICAgICAoV2ViQ29yZTo6Q0RNOjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBNb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUtleVNlc3Npb246Ok1lZGlhS2V5U2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUtleVNlc3Npb246OmdlbmVyYXRlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUtleVNlc3Npb246OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTZXNzaW9uOjp1
cGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTZXNzaW9uOjpjbG9zZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246OnJlbW92ZSk6CisgICAgICAgICogTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFL
ZXlzOjpNZWRpYUtleXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlzOjpjcmVhdGVTZXNz
aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6Ok1lZGlhRGV2aWNlcyk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhRGV2aWNlczo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJh
Y2s6Ok1lZGlhU3RyZWFtVHJhY2spOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6Y3Jl
YXRlV2Vha1B0cik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICogYW5pbWF0aW9uL1dlYkFu
aW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OldlYkFuaW1hdGlv
bik6CisgICAgICAgICogYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oOgorICAgICAgICAqIGNzcy9G
b250RmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250RmFjZTo6Rm9udEZhY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udEZhY2U6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udEZhY2U6OmNyZWF0ZVdlYWtQdHIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNz
cy9Gb250RmFjZS5oOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0Q29udGVudHMuaDoKKyAgICAg
ICAgKiBkb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YVRyYW5zZmVySXRlbUxpc3Q6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0OjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRy
YW5zZmVySXRlbUxpc3Q6OmVuc3VyZUl0ZW1zIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGFUcmFuc2Zlckl0ZW1MaXN0OjpkaWRTZXRTdHJpbmdEYXRhKToKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnBvc3RUYXNrKToKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGVX
ZWFrUHRyKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudCk6CisgICAgICAgICog
aHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBodG1sL0hUTUxQaWN0dXJlRWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRlci5oOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFJlc291cmNlUHJlbG9hZGVyOjpIVE1MUmVzb3VyY2VQcmVsb2FkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFJlc291cmNlUHJlbG9hZGVyOjpjcmVhdGVXZWFrUHRy
KToKKyAgICAgICAgKiBsb2FkZXIvTGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
aW5rTG9hZGVyOjpMaW5rTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvTGlua0xvYWRlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6TGlua0xvYWRlcjo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICog
bG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFS
ZXNvdXJjZUxvYWRlcjo6TWVkaWFSZXNvdXJjZUxvYWRlcik6CisgICAgICAgICogbG9hZGVyL01l
ZGlhUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OkRPTVdpbmRvdyk6CisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRhc2tEaXNwYXRjaGVyPFRpbWVyPjo6VGFza0Rpc3BhdGNoZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6VGFza0Rpc3BhdGNoZXI8VGltZXI+Ojpwb3N0VGFzayk6CisgICAgICAg
ICogcGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJp
Y1Rhc2tRdWV1ZTo6R2VuZXJpY1Rhc2tRdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmlj
VGFza1F1ZXVlOjplbnF1ZXVlVGFzayk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpjcmVhdGVXZWFrUHRyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxiYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYmFyOjpTY3JvbGxiYXIpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGJhci5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyOjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9XaWRnZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6Y3JlYXRlV2Vha1B0cik6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWM6OkF1ZGlvSGFy
ZHdhcmVMaXN0ZW5lck1hYyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2Nh
ZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhc2NhZGU6OkZvbnRDYXNjYWRlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udENhc2NhZGU6OmNyZWF0ZVdlYWtQdHIgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6Y3JlYXRlV2Vha1B0cik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lv
bkFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25BVkZvdW5k
YXRpb25PYmpDOjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkNETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDOjpDRE1TZXNzaW9uQVZGb3VuZGF0
aW9uT2JqQyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Np
b25BVlN0cmVhbVNlc3Npb246OkNETVNlc3Npb25BVlN0cmVhbVNlc3Npb24pOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1t
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
OjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzaXplV2lsbENoYW5nZUF0
VGltZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMpOgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFwcGVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YWJvcnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dHVyZUNhY2hlQ1Y6OlRleHR1cmVDYWNoZUNWKToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHR1cmVDYWNoZUNWOjp0ZXh0dXJlRnJvbUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6ZGlzcGxheUxpbmtG
aXJlZCk6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVySU9TOjpjcmVhdGVXZWFr
UHRyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1t
OgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVySU9TOjpSZW1vdGVDb21t
YW5kTGlzdGVuZXJJT1MpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9SZW1vdGVDb21tYW5kTGlz
dGVuZXJNYWMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYzo6
Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1Qcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6TWVk
aWFTdHJlYW1Qcml2YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3Jl
YXRlV2Vha1B0cik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpSZWFs
dGltZU1lZGlhU291cmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2lu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFFbmRwb2ludDo6TW9ja01lZGlhRW5k
cG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhRW5kcG9pbnQ6OmdlbmVyYXRlRHRs
c0luZm8pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFj
ZWhvbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQ
bGFjZWhvbGRlcjo6UmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlci5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clZpZXc6OlJlbmRlclZpZXcpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3Lmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJXaWRnZXQ6OlJlbmRlcldpZGdldCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcldp
ZGdldC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyV2lkZ2V0OjpjcmVhdGVXZWFrUHRyKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSb290SW5saW5lQm94OjpSb290SW5saW5lQm94KToKKyAgICAgICAgKiByZW5kZXJpbmcvUm9v
dElubGluZUJveC5oOgorICAgICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6Y3JlYXRlV2Vh
a1B0cik6CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1BhdGhFbGVtZW50OjpTVkdQYXRoRWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR1Bh
dGhFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVhck9mZi5o
OgorICAgICAgICAqIHRlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TW9ja0NETUZhY3Rvcnk6Ok1vY2tDRE1GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tDRE1GYWN0b3J5OjpjcmVhdGVDRE0pOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NETTo6TW9j
a0NETSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ0RNOjpjcmVhdGVJbnN0YW5jZSk6CisgICAg
ICAgIChXZWJDb3JlOjptX3dlYWtQdHJGYWN0b3J5KTogRGVsZXRlZC4KKwogMjAxNy0wOS0yMiAg
QmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29ueS5jb20+CiAKICAgICAgICAgW0N1cmxd
IFVzZSBkaWRSZWNlaXZlQnVmZmVyIGluc3RlYWQgb2YgZGlkUmVjZWl2ZURhdGEKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hh
bmdlTG9nCmluZGV4IDY5ODgwYzE4YWUxMWZjZTg3ZDk4MzE0ZDQzNDYwZjMxMWQ0NTg0YzguLmUy
NWU2ODM1Nzg0ODFhNjYwZDYwMDRiYTdhYTUyZWJhMmUzOWE0MTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA5LTIyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgV2Vha1B0ckZhY3Rvcnkgc2hvdWxkIHBvcHVsYXRlIG1fcmVmIGxh
emlseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NzM3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGFsL3N5c3RlbS9tYWMvU3lzdGVtU2xlZXBMaXN0ZW5lck1hYy5tbToKKyAgICAgICAgKFBBTDo6
U3lzdGVtU2xlZXBMaXN0ZW5lck1hYzo6U3lzdGVtU2xlZXBMaXN0ZW5lck1hYyk6CisKIDIwMTct
MDktMjEgIFlvc2hpYWtpIEppdHN1a2F3YSAgPFlvc2hpYWtpLkppdHN1a2F3YUBzb255LmNvbT4K
IAogICAgICAgICBbUEFMXSBNb3ZlIE1lZGlhVGltZUFWRm91bmRhdGlvbiBpbnRvIFBBTApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCBkN2M1NzEyNDBiMWQyYmE0OWMwZjg5ZjE5MTZiMDAxZmVjZjlkNWUyLi4zOTU5OTA3
OWQ4OGIxMjdhYThmNDYwNjdjNmQ5MDA4NTIyZjJjNTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4
IEBACisyMDE3LTA5LTIyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgV2Vha1B0ckZhY3Rvcnkgc2hvdWxkIHBvcHVsYXRlIG1fcmVmIGxhemlseS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzM3NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FwcGxl
UGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGF5bWVudENvb3JkaW5hdG9yUHJveHk6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OmNhbk1ha2VQYXltZW50
c1dpdGhBY3RpdmVDYXJkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHk6Om9wZW5QYXltZW50U2V0dXApOgorICAgICAgICAqIFVJUHJvY2Vzcy9BcHBsZVBheS9t
YWMvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybVNob3dQYXltZW50VUkpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BcHBsaWNhdGlvblN0YXRlVHJhY2tlci5tbToKKyAgICAgICAgKFdlYktp
dDo6QXBwbGljYXRpb25TdGF0ZVRyYWNrZXI6OkFwcGxpY2F0aW9uU3RhdGVUcmFja2VyKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OldlYlZpZXdJbXBs
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzTGF1bmNoZXIpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAg
ICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3Nl
cnRpb246OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjptX2NvbmZpZ3VyYXRpb25QcmVmZXJlbmNlVmFsdWVzKToK
KyAgICAgICAgKFdlYktpdDo6bV93ZWFrUHRyRmFjdG9yeSk6IERlbGV0ZWQuCisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmNyZWF0ZVdlYWtQdHIgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1v
dGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWEubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSk6CisKIDIwMTctMDktMjIgIEpvaG4gV2lsYW5kZXIg
IDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgTm9uLXByZXZhbGVudCByZXNvdXJjZXMg
c2hvdWxkIGJlIGFsbG93ZWQgYWNjZXNzIHRvIGV4aXN0aW5nIGNvb2tpZXMgaW4gYSB0aGlyZC1w
YXJ0eSBjb250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMTBmYzE2NjgzZjcz
ZWYzMTFlYjE1Yjk4ZDlhZGNkYWFiMjc5MzFmNS4uNDMwMzRhMDg5NzUyNDY2Y2FjNzIyMTFjOGFj
NTIzODAyMDRmNzZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDE3LTA5LTIyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgV2Vha1B0ckZhY3Rvcnkgc2hvdWxkIHBvcHVsYXRlIG1fcmVmIGxhemlseS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzM3NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpXZWJFZGl0b3JD
bGllbnQpOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2FuZGlkYXRlc0ZvclNl
bGVjdGlvbik6CisKIDIwMTctMDktMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBVc2UgaGlnaCByZXNvbHV0aW9uIHRpbWVzdGFtcCBmb3IgZXZlbnQgdGltZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV2Vha1B0ci5oIGIvU291cmNlL1dURi93dGYvV2Vh
a1B0ci5oCmluZGV4IDI5Y2MwNTZkMTM5YWEwOTMzODdiMjFhNzVmNjNlYjY4NjdmMWM3MmEuLmJk
MmY1NDQzZGU5MWEwODJmN2FlZjM0MjM1NTJmMTlkMTkyMGVkYTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1dlYWtQdHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9XZWFrUHRyLmgKQEAgLTMy
LDEwICszMiw2IEBACiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL1RocmVhZGluZy5oPgogCi0jaWYgVVNFKFdFQl9USFJFQUQpCi0jaW5jbHVkZSA8
d3RmL01haW5UaHJlYWQuaD4KLSNlbmRpZgotCiBuYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgVD4gY2xhc3MgV2Vha1B0cjsKQEAgLTQ3LDI1ICs0Myw5IEBAIGNsYXNzIFdlYWtS
ZWZlcmVuY2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2Vha1JlZmVyZW5jZTxUPj4g
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYWtSZWZlcmVuY2U8VD4pOwogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFQqIGdldCgpIGNvbnN0Ci0gICAgewot
I2lmIFVTRShXRUJfVEhSRUFEKQotICAgICAgICBBU1NFUlQoY2FuQWNjZXNzVGhyZWFkTG9jYWxE
YXRhRm9yVGhyZWFkKG1fYm91bmRUaHJlYWQpKTsKLSNlbHNlCi0gICAgICAgIEFTU0VSVChtX2Jv
dW5kVGhyZWFkID09IGN1cnJlbnRUaHJlYWQoKSk7Ci0jZW5kaWYKLSAgICAgICAgcmV0dXJuIG1f
cHRyOwotICAgIH0KKyAgICBUKiBnZXQoKSBjb25zdCB7IHJldHVybiBtX3B0cjsgfQogCi0gICAg
dm9pZCBjbGVhcigpCi0gICAgewotI2lmIFVTRShXRUJfVEhSRUFEKQotICAgICAgICBBU1NFUlQo
Y2FuQWNjZXNzVGhyZWFkTG9jYWxEYXRhRm9yVGhyZWFkKG1fYm91bmRUaHJlYWQpKTsKLSNlbHNl
Ci0gICAgICAgIEFTU0VSVChtX2JvdW5kVGhyZWFkID09IGN1cnJlbnRUaHJlYWQoKSk7Ci0jZW5k
aWYKLSAgICAgICAgbV9wdHIgPSBudWxscHRyOwotICAgIH0KKyAgICB2b2lkIGNsZWFyKCkgeyBt
X3B0ciA9IG51bGxwdHI7IH0KIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgV2Vha1B0cjxU
PjsKQEAgLTc1LDE2ICs1NSwxMCBAQCBwcml2YXRlOgogCiAgICAgZXhwbGljaXQgV2Vha1JlZmVy
ZW5jZShUKiBwdHIpCiAgICAgICAgIDogbV9wdHIocHRyKQotI2lmbmRlZiBOREVCVUcKLSAgICAg
ICAgLCBtX2JvdW5kVGhyZWFkKGN1cnJlbnRUaHJlYWQoKSkKLSNlbmRpZgogICAgIHsKICAgICB9
CiAKICAgICBUKiBtX3B0cjsKLSNpZm5kZWYgTkRFQlVHCi0gICAgVGhyZWFkSWRlbnRpZmllciBt
X2JvdW5kVGhyZWFkOwotI2VuZGlmCiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpAQCAtMTE4
LDIzICs5MiwzMyBAQCBjbGFzcyBXZWFrUHRyRmFjdG9yeSB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoV2Vha1B0ckZhY3Rvcnk8VD4pOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgotICAgIGV4cGxpY2l0IFdlYWtQdHJGYWN0b3J5KFQqIHB0cikgOiBtX3JlZihXZWFr
UmVmZXJlbmNlPFQ+OjpjcmVhdGUocHRyKSkgeyB9Ci0KLSAgICB+V2Vha1B0ckZhY3RvcnkoKSB7
IG1fcmVmLT5jbGVhcigpOyB9CisgICAgV2Vha1B0ckZhY3RvcnkoKSA9IGRlZmF1bHQ7CisgICAg
fldlYWtQdHJGYWN0b3J5KCkKKyAgICB7CisgICAgICAgIGlmICghbV9yZWYpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIG1fcmVmLT5jbGVhcigpOworICAgIH0KIAotICAgIC8vIFdlIHNo
b3VsZCBjb25zaWRlciBoYXZpbmcgY3JlYXRlV2Vha1B0ciBwb3B1bGF0ZSBtX3JlZiB0aGUgZmly
c3QgdGltZSBjcmVhdGVXZWFrUHRyIGlzIGNhbGxlZC4KLSAgICBXZWFrUHRyPFQ+IGNyZWF0ZVdl
YWtQdHIoKSBjb25zdCB7IHJldHVybiBXZWFrUHRyPFQ+KG1fcmVmLmNvcHlSZWYoKSk7IH0KKyAg
ICBXZWFrUHRyPFQ+IGNyZWF0ZVdlYWtQdHIoVCYgcHRyKSBjb25zdAorICAgIHsKKyAgICAgICAg
aWYgKCFtX3JlZikKKyAgICAgICAgICAgIG1fcmVmID0gV2Vha1JlZmVyZW5jZTxUPjo6Y3JlYXRl
KCZwdHIpOworICAgICAgICBBU1NFUlQoJnB0ciA9PSBtX3JlZi0+Z2V0KCkpOworICAgICAgICBy
ZXR1cm4gV2Vha1B0cjxUPihSZWY8V2Vha1JlZmVyZW5jZTxUPj4oKm1fcmVmKSk7CisgICAgfQog
CiAgICAgdm9pZCByZXZva2VBbGwoKQogICAgIHsKLSAgICAgICAgVCogcHRyID0gbV9yZWYtPmdl
dCgpOworICAgICAgICBpZiAoIW1fcmVmKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAg
IG1fcmVmLT5jbGVhcigpOwotICAgICAgICAvLyBXZSBjcmVhdGUgYSBuZXcgV2Vha1JlZmVyZW5j
ZSBzbyB0aGF0IGZ1dHVyZSBjYWxscyB0byBjcmVhdGVXZWFrUHRyKCkgY3JlYXRlIG5vbnplcm8g
V2Vha1B0cnMuCi0gICAgICAgIG1fcmVmID0gV2Vha1JlZmVyZW5jZTxUPjo6Y3JlYXRlKHB0cik7
CisgICAgICAgIG1fcmVmID0gbnVsbHB0cjsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgUmVmPFdl
YWtSZWZlcmVuY2U8VD4+IG1fcmVmOworICAgIG11dGFibGUgUmVmUHRyPFdlYWtSZWZlcmVuY2U8
VD4+IG1fcmVmOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5l
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBXZWFrUHRyPFQ+JiBhLCBjb25zdCBXZWFrUHRyPFU+JiBi
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0u
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwCmluZGV4
IDYwZThhYWRiYzI2NzI5YmQ5Y2MwOWQ0ZTkxYjAxMTNkMzM4NmI4Y2IuLmI3NDBiYjA4OTcyOTlh
NjM2YmYxMTgzZGUwMjc1NTI5ZWQ0YTY3MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL0NETS5jcHAKQEAgLTU5LDcgKzU5LDYgQEAgUmVmPENETT4gQ0RNOjpj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKIENETTo6
Q0RNKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCiAgICAgOiBD
b250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmZG9jdW1lbnQpCiAgICAgLCBtX2tleVN5c3RlbShr
ZXlTeXN0ZW0pCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiAgICAgQVNTRVJUKHN1
cHBvcnRzS2V5U3lzdGVtKGtleVN5c3RlbSkpOwogICAgIGZvciAoYXV0byogZmFjdG9yeSA6IENE
TUZhY3Rvcnk6OnJlZ2lzdGVyZWRGYWN0b3JpZXMoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmgKaW5kZXggNDZkNTNhZDA1MjMyMzVhNGM1ODkyYjJkMWI0
ZDgyNzMyMzdjMDMyMS4uOTdhNGM1NThkMDdlZGVmZjEwNGQyNDlkZjFmY2FmY2QwZDlmNzJmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5oCkBAIC05OSw3
ICs5OSw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxNZWRpYUtleVN5c3RlbUNvbmZp
Z3VyYXRpb24+ICBnZXRTdXBwb3J0ZWRDb25maWd1cmF0aW9uKGNvbnN0IE1lZGlhS2V5U3lzdGVt
Q29uZmlndXJhdGlvbiYgY2FuZGlkYXRlQ29uZmlndXJhdGlvbiwgTWVkaWFLZXlzUmVzdHJpY3Rp
b25zJik7CiAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8TWVkaWFLZXlTeXN0ZW1NZWRpYUNhcGFi
aWxpdHk+PiBnZXRTdXBwb3J0ZWRDYXBhYmlsaXRpZXNGb3JBdWRpb1ZpZGVvVHlwZShBdWRpb1Zp
ZGVvVHlwZSwgY29uc3QgVmVjdG9yPE1lZGlhS2V5U3lzdGVtTWVkaWFDYXBhYmlsaXR5PiYgcmVx
dWVzdGVkQ2FwYWJpbGl0aWVzLCBjb25zdCBNZWRpYUtleVN5c3RlbUNvbmZpZ3VyYXRpb24mIHBh
cnRpYWxDb25maWd1cmF0aW9uLCBNZWRpYUtleXNSZXN0cmljdGlvbnMmKTsKIAotICAgIFdlYWtQ
dHI8Q0RNPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVX
ZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPENETT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogICAgIHVzaW5nIENvbnNl
bnRTdGF0dXNDYWxsYmFjayA9IFdURjo6RnVuY3Rpb248dm9pZChDb25zZW50U3RhdHVzLCBNZWRp
YUtleVN5c3RlbUNvbmZpZ3VyYXRpb24mJiwgTWVkaWFLZXlzUmVzdHJpY3Rpb25zJiYpPjsKICAg
ICB2b2lkIGdldENvbnNlbnRTdGF0dXMoTWVkaWFLZXlTeXN0ZW1Db25maWd1cmF0aW9uJiYgYWNj
dW11bGF0ZWRDb25maWd1cmF0aW9uLCBNZWRpYUtleXNSZXN0cmljdGlvbnMmJiwgQ29uc2VudFN0
YXR1c0NhbGxiYWNrJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwCmluZGV4IGNiZDk0YzA2ZmYxNjYzN2Y2
NWNmNTRlNjM5YjQ3OGMyNDQzMjYwNzYuLjRkODI0NWNmNzY5N2Q4OGIzNGI4ZDQzNzA5NmVhNDBl
ODRhMjJlMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVk
aWEvTWVkaWFLZXlTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKQEAgLTYyLDcgKzYyLDYgQEAgTWVkaWFLZXlT
ZXNzaW9uOjpNZWRpYUtleVNlc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
V2Vha1B0cjxNZWRpYUsKICAgICAsIG1faW1wbGVtZW50YXRpb24oV1RGTW92ZShpbXBsZW1lbnRh
dGlvbikpCiAgICAgLCBtX2luc3RhbmNlKFdURk1vdmUoaW5zdGFuY2UpKQogICAgICwgbV9ldmVu
dFF1ZXVlKCp0aGlzKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogICAgIC8vIGh0
dHBzOi8vdzNjLmdpdGh1Yi5pby9lbmNyeXB0ZWQtbWVkaWEvI2RvbS1tZWRpYWtleXMtc2V0c2Vy
dmVyY2VydGlmaWNhdGUKICAgICAvLyBXM0MgRWRpdG9yJ3MgRHJhZnQgMDkgTm92ZW1iZXIgMjAx
NgpAQCAtMTg5LDcgKzE4OCw3IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjpnZW5lcmF0ZVJlcXVl
c3QoY29uc3QgQXRvbWljU3RyaW5nJiBpbml0RGF0YVR5cGUsIGNvbnN0IEJ1CiAgICAgICAgICAg
ICBtX2xhdGVzdERlY3J5cHRUaW1lID0gMDsKICAgICAgICAgfQogCi0gICAgICAgIG1faW5zdGFu
Y2UtPnJlcXVlc3RMaWNlbnNlKG1fc2Vzc2lvblR5cGUsIGluaXREYXRhVHlwZSwgV1RGTW92ZShp
bml0RGF0YSksIFt0aGlzLCB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0
cigpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKFJlZjxTaGFyZWRCdWZmZXI+JiYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIGJvb2wgbmVlZHNJbmRpdmlkdWFsaXphdGlv
biwgQ0RNSW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQpIG11dGFibGUgeworICAgICAg
ICBtX2luc3RhbmNlLT5yZXF1ZXN0TGljZW5zZShtX3Nlc3Npb25UeXBlLCBpbml0RGF0YVR5cGUs
IFdURk1vdmUoaW5pdERhdGEpLCBbdGhpcywgd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKFJlZjxTaGFy
ZWRCdWZmZXI+JiYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIGJvb2wgbmVlZHNJ
bmRpdmlkdWFsaXphdGlvbiwgQ0RNSW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQpIG11
dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1
cm47CiAKQEAgLTI4Miw3ICsyODEsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6bG9hZChjb25z
dCBTdHJpbmcmIHNlc3Npb25JZCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taQogICAgICAg
ICAvLyA4LjYuIExldCBtZXNzYWdlIHR5cGUgYmUgbnVsbC4KICAgICAgICAgLy8gOC43LiBMZXQg
Y2RtIGJlIHRoZSBDRE0gaW5zdGFuY2UgcmVwcmVzZW50ZWQgYnkgdGhpcyBvYmplY3QncyBjZG0g
aW5zdGFuY2UgdmFsdWUuCiAgICAgICAgIC8vIDguOC4gVXNlIHRoZSBjZG0gdG8gZXhlY3V0ZSB0
aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICBtX2luc3RhbmNlLT5sb2FkU2Vzc2lvbihtX3Nl
c3Npb25UeXBlLCAqc2FuaXRpemVkU2Vzc2lvbklkLCBvcmlnaW4sIFt0aGlzLCB3ZWFrVGhpcyA9
IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKSwgc2FuaXRpemVkU2Vzc2lvbklkID0gKnNhbml0aXplZFNlc3Npb25JZF0gKHN0ZDo6b3B0
aW9uYWw8Q0RNSW5zdGFuY2U6OktleVN0YXR1c1ZlY3Rvcj4mJiBrbm93bktleXMsIHN0ZDo6b3B0
aW9uYWw8ZG91YmxlPiYmIGV4cGlyYXRpb24sIHN0ZDo6b3B0aW9uYWw8Q0RNSW5zdGFuY2U6Ok1l
c3NhZ2U+JiYgbWVzc2FnZSwgQ0RNSW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQsIENE
TUluc3RhbmNlOjpTZXNzaW9uTG9hZEZhaWx1cmUgZmFpbHVyZSkgbXV0YWJsZSB7CisgICAgICAg
IG1faW5zdGFuY2UtPmxvYWRTZXNzaW9uKG1fc2Vzc2lvblR5cGUsICpzYW5pdGl6ZWRTZXNzaW9u
SWQsIG9yaWdpbiwgW3RoaXMsIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFr
UHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHNhbml0aXplZFNlc3Npb25J
ZCA9ICpzYW5pdGl6ZWRTZXNzaW9uSWRdIChzdGQ6Om9wdGlvbmFsPENETUluc3RhbmNlOjpLZXlT
dGF0dXNWZWN0b3I+JiYga25vd25LZXlzLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4mJiBleHBpcmF0
aW9uLCBzdGQ6Om9wdGlvbmFsPENETUluc3RhbmNlOjpNZXNzYWdlPiYmIG1lc3NhZ2UsIENETUlu
c3RhbmNlOjpTdWNjZXNzVmFsdWUgc3VjY2VlZGVkLCBDRE1JbnN0YW5jZTo6U2Vzc2lvbkxvYWRG
YWlsdXJlIGZhaWx1cmUpIG11dGFibGUgewogICAgICAgICAgICAgLy8gOC44LjEuIElmIHRoZXJl
IGlzIG5vIGRhdGEgc3RvcmVkIGZvciB0aGUgc2FuaXRpemVkIHNlc3Npb24gSUQgaW4gdGhlIG9y
aWdpbiwgcmVzb2x2ZSBwcm9taXNlIHdpdGggZmFsc2UgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgog
ICAgICAgICAgICAgLy8gOC44LjIuIElmIHRoZSBzdG9yZWQgc2Vzc2lvbidzIHNlc3Npb24gdHlw
ZSBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIGN1cnJlbnQgTWVkaWFLZXlTZXNzaW9uIHNlc3Npb24g
dHlwZSwgcmVqZWN0IHByb21pc2Ugd2l0aCBhIG5ld2x5IGNyZWF0ZWQgVHlwZUVycm9yLgogICAg
ICAgICAgICAgLy8gOC44LjMuIExldCBzZXNzaW9uIGRhdGEgYmUgdGhlIGRhdGEgc3RvcmVkIGZv
ciB0aGUgc2FuaXRpemVkIHNlc3Npb24gSUQgaW4gdGhlIG9yaWdpbi4gVGhpcyBtdXN0IG5vdCBp
bmNsdWRlIGRhdGEgZnJvbSBvdGhlciBvcmlnaW4ocykgb3IgdGhhdCBpcyBub3QgYXNzb2NpYXRl
ZCB3aXRoIGFuIG9yaWdpbi4KQEAgLTM4Myw3ICszODIsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lv
bjo6dXBkYXRlKGNvbnN0IEJ1ZmZlclNvdXJjZSYgcmVzcG9uc2UsIFJlZjxEZWZlcnJlZFByb21p
c2U+JgogICAgICAgICAvLyA2LjUuIExldCBzZXNzaW9uIGNsb3NlZCBiZSBmYWxzZS4KICAgICAg
ICAgLy8gNi42LiBMZXQgY2RtIGJlIHRoZSBDRE0gaW5zdGFuY2UgcmVwcmVzZW50ZWQgYnkgdGhp
cyBvYmplY3QncyBjZG0gaW5zdGFuY2UgdmFsdWUuCiAgICAgICAgIC8vIDYuNy4gVXNlIHRoZSBj
ZG0gdG8gZXhlY3V0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICBtX2luc3RhbmNlLT51
cGRhdGVMaWNlbnNlKG1fc2Vzc2lvbklkLCBtX3Nlc3Npb25UeXBlLCAqc2FuaXRpemVkUmVzcG9u
c2UsIFt0aGlzLCB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCBw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKGJvb2wgc2Vzc2lvbldhc0Nsb3NlZCwgc3RkOjpv
cHRpb25hbDxDRE1JbnN0YW5jZTo6S2V5U3RhdHVzVmVjdG9yPiYmIGNoYW5nZWRLZXlzLCBzdGQ6
Om9wdGlvbmFsPGRvdWJsZT4mJiBjaGFuZ2VkRXhwaXJhdGlvbiwgc3RkOjpvcHRpb25hbDxDRE1J
bnN0YW5jZTo6TWVzc2FnZT4mJiBtZXNzYWdlLCBDRE1JbnN0YW5jZTo6U3VjY2Vzc1ZhbHVlIHN1
Y2NlZWRlZCkgbXV0YWJsZSB7CisgICAgICAgIG1faW5zdGFuY2UtPnVwZGF0ZUxpY2Vuc2UobV9z
ZXNzaW9uSWQsIG1fc2Vzc2lvblR5cGUsICpzYW5pdGl6ZWRSZXNwb25zZSwgW3RoaXMsIHdlYWtU
aGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldIChib29sIHNlc3Npb25XYXNDbG9zZWQsIHN0ZDo6b3B0aW9uYWw8Q0RN
SW5zdGFuY2U6OktleVN0YXR1c1ZlY3Rvcj4mJiBjaGFuZ2VkS2V5cywgc3RkOjpvcHRpb25hbDxk
b3VibGU+JiYgY2hhbmdlZEV4cGlyYXRpb24sIHN0ZDo6b3B0aW9uYWw8Q0RNSW5zdGFuY2U6Ok1l
c3NhZ2U+JiYgbWVzc2FnZSwgQ0RNSW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQpIG11
dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1
cm47CiAKQEAgLTQ5NSw3ICs0OTQsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6Y2xvc2UoUmVm
PERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNr
KFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAg
IC8vIDUuMS4gTGV0IGNkbSBiZSB0aGUgQ0RNIGluc3RhbmNlIHJlcHJlc2VudGVkIGJ5IHNlc3Np
b24ncyBjZG0gaW5zdGFuY2UgdmFsdWUuCiAgICAgICAgIC8vIDUuMi4gVXNlIGNkbSB0byBjbG9z
ZSB0aGUga2V5IHNlc3Npb24gYXNzb2NpYXRlZCB3aXRoIHNlc3Npb24uCi0gICAgICAgIG1faW5z
dGFuY2UtPmNsb3NlU2Vzc2lvbihtX3Nlc3Npb25JZCwgW3RoaXMsIHdlYWtUaGlzID0gbV93ZWFr
UHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAo
KSBtdXRhYmxlIHsKKyAgICAgICAgbV9pbnN0YW5jZS0+Y2xvc2VTZXNzaW9uKG1fc2Vzc2lvbklk
LCBbdGhpcywgd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMp
LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBp
ZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNTMzLDcgKzUzMiw3
IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjpyZW1vdmUoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlKQogICAgICAgICAvLyA0LjMuIExldCBtZXNzYWdlIHR5cGUgYmUgbnVsbC4KIAogICAg
ICAgICAvLyA0LjQuIFVzZSB0aGUgY2RtIHRvIGV4ZWN1dGUgdGhlIGZvbGxvd2luZyBzdGVwczoK
LSAgICAgICAgbV9pbnN0YW5jZS0+cmVtb3ZlU2Vzc2lvbkRhdGEobV9zZXNzaW9uSWQsIG1fc2Vz
c2lvblR5cGUsIFt0aGlzLCB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0
cigpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKENETUluc3RhbmNlOjpLZXlTdGF0dXNW
ZWN0b3ImJiBrZXlzLCBzdGQ6Om9wdGlvbmFsPFJlZjxTaGFyZWRCdWZmZXI+PiYmIG1lc3NhZ2Us
IENETUluc3RhbmNlOjpTdWNjZXNzVmFsdWUgc3VjY2VlZGVkKSBtdXRhYmxlIHsKKyAgICAgICAg
bV9pbnN0YW5jZS0+cmVtb3ZlU2Vzc2lvbkRhdGEobV9zZXNzaW9uSWQsIG1fc2Vzc2lvblR5cGUs
IFt0aGlzLCB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyks
IHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoQ0RNSW5zdGFuY2U6OktleVN0YXR1c1ZlY3Rv
ciYmIGtleXMsIHN0ZDo6b3B0aW9uYWw8UmVmPFNoYXJlZEJ1ZmZlcj4+JiYgbWVzc2FnZSwgQ0RN
SW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQpIG11dGFibGUgewogICAgICAgICAgICAg
aWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcAppbmRleCBjMGVm
NTU0Y2IwZTg5OGZjNjczMGVhZGMyNjYyOTAyY2U1Y2I2YzAyLi5iZWYzNmEzMmRlMWZlYjVjYWE0
MDE4N2I2ZTE1NjE4MTViNzFmM2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwCkBAIC00NSw3ICs0NSw2IEBAIE1lZGlhS2V5
czo6TWVkaWFLZXlzKGJvb2wgdXNlRGlzdGluY3RpdmVJZGVudGlmaWVyLCBib29sIHBlcnNpc3Rl
bnRTdGF0ZUFsbG93ZWQsCiAgICAgLCBtX3N1cHBvcnRlZFNlc3Npb25UeXBlcyhzdXBwb3J0ZWRT
ZXNzaW9uVHlwZXMpCiAgICAgLCBtX2ltcGxlbWVudGF0aW9uKFdURk1vdmUoaW1wbGVtZW50YXRp
b24pKQogICAgICwgbV9pbnN0YW5jZShXVEZNb3ZlKGluc3RhbmNlKSkKLSAgICAsIG1fd2Vha1B0
ckZhY3RvcnkodGhpcykKIHsKIH0KIApAQCAtNjgsNyArNjcsNyBAQCBFeGNlcHRpb25PcjxSZWY8
TWVkaWFLZXlTZXNzaW9uPj4gTWVkaWFLZXlzOjpjcmVhdGVTZXNzaW9uKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleAogICAgIC8vIDMuIExldCBzZXNzaW9uIGJlIGEgbmV3IE1lZGlhS2V5U2Vzc2lvbiBv
YmplY3QsIGFuZCBpbml0aWFsaXplIGl0IGFzIGZvbGxvd3M6CiAgICAgLy8gTk9URTogQ29udGlu
dWVkIGluIE1lZGlhS2V5U2Vzc2lvbi4KICAgICAvLyA0LiBSZXR1cm4gc2Vzc2lvbi4KLSAgICBh
dXRvIHNlc3Npb24gPSBNZWRpYUtleVNlc3Npb246OmNyZWF0ZShjb250ZXh0LCBtX3dlYWtQdHJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKSwgc2Vzc2lvblR5cGUsIG1fdXNlRGlzdGluY3RpdmVJZGVu
dGlmaWVyLCBtX2ltcGxlbWVudGF0aW9uLmNvcHlSZWYoKSwgbV9pbnN0YW5jZS5jb3B5UmVmKCkp
OworICAgIGF1dG8gc2Vzc2lvbiA9IE1lZGlhS2V5U2Vzc2lvbjo6Y3JlYXRlKGNvbnRleHQsIG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIHNlc3Npb25UeXBlLCBtX3VzZURp
c3RpbmN0aXZlSWRlbnRpZmllciwgbV9pbXBsZW1lbnRhdGlvbi5jb3B5UmVmKCksIG1faW5zdGFu
Y2UuY29weVJlZigpKTsKICAgICBtX3Nlc3Npb25zLmFwcGVuZChzZXNzaW9uLmNvcHlSZWYoKSk7
CiAgICAgcmV0dXJuIFdURk1vdmUoc2Vzc2lvbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKaW5kZXggNmU0MGM3ZjYyMThi
NDExY2U4Njc0MGMyMGU3MjRjMzJlMmViODBmNS4uNDQwNTk5NjVjYzFlYmZkN2ZhZjA0ZTZiNWFi
NTQwOTU5OWM4NTRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYURldmljZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFEZXZpY2VzLmNwcApAQCAtNDcsNyArNDcsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBpbmxpbmUgTWVkaWFEZXZpY2VzOjpNZWRpYURldmljZXMoRG9jdW1lbnQmIGRvY3VtZW50
KQogICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmRvY3VtZW50KQogICAgICwgbV9z
Y2hlZHVsZWRFdmVudFRpbWVyKCp0aGlzLCAmTWVkaWFEZXZpY2VzOjpzY2hlZHVsZWRFdmVudFRp
bWVyRmlyZWQpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiAgICAgbV9kZXZpY2VD
aGFuZ2VkVG9rZW4gPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hZGRE
ZXZpY2VzQ2hhbmdlZE9ic2VydmVyKFt3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKSwgdGhpc10o
KSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFEZXZpY2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2
aWNlcy5oCmluZGV4IDlmMzBjM2VhZDk1Mjg2Y2YwYjE0MWI4NTk4Nzg1ZDQwMzA0OTAzY2IuLjYx
MTI4NTMwNTI5NzRkN2VlYTI3MDllNGNhNzhjM2M5ZTRiZTAzNzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaApAQCAtODIsNyArODIs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigp
OyB9CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJlZigpOyB9CiAK
LSAgICBXZWFrUHRyPE1lZGlhRGV2aWNlcz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vh
a1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxNZWRpYURldmljZXM+
IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIo
KnRoaXMpOyB9CiAKICAgICBUaW1lciBtX3NjaGVkdWxlZEV2ZW50VGltZXI7CiAgICAgc3RkOjpv
cHRpb25hbDxSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpEZXZpY2VzQ2hhbmdlZE9ic2VydmVy
VG9rZW4+IG1fZGV2aWNlQ2hhbmdlZFRva2VuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKaW5kZXggMTY4ODRlMzgy
NjY4NGNlNzc4N2Q1ODZhODRmODhmZGM3OTFjMjc4OS4uOWUxNzhkZjRiZDJhNWM5ZDc5YWYwYTc2
OTZmNzljMzIyZmUxOGU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCkBAIC01Myw3ICs1Myw2IEBAIFJlZjxN
ZWRpYVN0cmVhbVRyYWNrPiBNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwKIE1lZGlhU3RyZWFtVHJhY2s6Ok1lZGlhU3RyZWFtVHJhY2soU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
PiYmIHByaXZhdGVUcmFjaykKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKICAgICAs
IG1fcHJpdmF0ZShXVEZNb3ZlKHByaXZhdGVUcmFjaykpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5
KHRoaXMpCiAgICAgLCBtX3Rhc2tRdWV1ZShjb250ZXh0KQogewogICAgIHN1c3BlbmRJZk5lZWRl
ZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2suaAppbmRleCA0YTQ5OTRhNjlkZjBiZGIxZmZmOGIzNjAyZTQ2YjMwNTkwMzkx
YWEzLi5hNTNhY2Q2MjNjNDUwYjhmYWFmN2Y4NTIzNGE1YWNiMGYxZmE3MTFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
aApAQCAtMTY1LDcgKzE2NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB0cmFja1NldHRpbmdzQ2hh
bmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwogICAgIHZvaWQgdHJhY2tFbmFi
bGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwogCi0gICAgV2Vha1B0
cjxNZWRpYVN0cmVhbVRyYWNrPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPE1lZGlhU3RyZWFtVHJhY2s+IGNy
ZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRo
aXMpOyB9CiAKICAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKICAgICBSZWY8TWVk
aWFTdHJlYW1UcmFja1ByaXZhdGU+IG1fcHJpdmF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3lzdGVtL21hYy9TeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1N5c3RlbVNsZWVwTGlzdGVuZXJNYWMubW0KaW5k
ZXggMGI1YTBmNTgwNjZiM2E2ZWQwOWJmMDJiMzg3OTIxZmVhMTIyZjgzMi4uNmQ1M2E3YmZkMGQ4
ZjdhY2VkMTJlN2NkZWYyMTZlMjhjZDI5ZmRmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zeXN0ZW0vbWFjL1N5c3RlbVNsZWVwTGlzdGVuZXJNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1N5c3RlbVNsZWVwTGlzdGVuZXJNYWMubW0KQEAg
LTQwLDE0ICs0MCwxMyBAQCBzdGQ6OnVuaXF1ZV9wdHI8U3lzdGVtU2xlZXBMaXN0ZW5lcj4gU3lz
dGVtU2xlZXBMaXN0ZW5lcjo6Y3JlYXRlKENsaWVudCYgY2xpZW50KQogCiBTeXN0ZW1TbGVlcExp
c3RlbmVyTWFjOjpTeXN0ZW1TbGVlcExpc3RlbmVyTWFjKENsaWVudCYgY2xpZW50KQogICAgIDog
U3lzdGVtU2xlZXBMaXN0ZW5lcihjbGllbnQpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMp
CiAgICAgLCBtX3NsZWVwT2JzZXJ2ZXIobmlsKQogICAgICwgbV93YWtlT2JzZXJ2ZXIobmlsKQog
ewogICAgIE5TTm90aWZpY2F0aW9uQ2VudGVyICpjZW50ZXIgPSBbW05TV29ya3NwYWNlIHNoYXJl
ZFdvcmtzcGFjZV0gbm90aWZpY2F0aW9uQ2VudGVyXTsKICAgICBOU09wZXJhdGlvblF1ZXVlICpx
dWV1ZSA9IFtOU09wZXJhdGlvblF1ZXVlIG1haW5RdWV1ZV07CiAKLSAgICBhdXRvIHdlYWtUaGlz
ID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgYXV0byB3ZWFrVGhpcyA9
IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiAKICAgICBtX3NsZWVwT2Jz
ZXJ2ZXIgPSBbY2VudGVyIGFkZE9ic2VydmVyRm9yTmFtZTpOU1dvcmtzcGFjZVdpbGxTbGVlcE5v
dGlmaWNhdGlvbiBvYmplY3Q6bmlsIHF1ZXVlOnF1ZXVlIHVzaW5nQmxvY2s6XihOU05vdGlmaWNh
dGlvbiAqKSB7CiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzXSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcAppbmRleCBkMmRlMWYzNjI5MzA5ZTVkNjhhOWI3NTFkZWJhMjhkNzU1NWFlZGU4
Li5lNDE1NWQxOGQ1MWRkMDBkZTdmOGE0MGNlYmVlZjMyMzYwOWRlNmI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHAKQEAgLTEwOSw3ICsxMDksNiBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwog
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIDogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QocmVuZGVy
ZXItPm5vZGUoKSkKICAgICAsIG1fcmVuZGVyZXIocmVuZGVyZXIpCi0gICAgLCBtX3dlYWtQdHJG
YWN0b3J5KHRoaXMpCiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIG1fcmVuZGVyZXItPnNldEhhc0FY
T2JqZWN0KHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAppbmRleCA4OTUzZWNkNGZiODkyNTQyODVlZWIx
MzNlMzNhZTQ0NzJhNjViZjk2Li5hNTA3MTU3MDRhZGYyMjRkZTY3YTM2MWUwZWMwNDJiYzEyNjQ5
MWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuaApAQCAtMjAwLDcgKzIwMCw3IEBAIHB1YmxpYzoKIAogICAg
IFN0cmluZyBwYXNzd29yZEZpZWxkVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICBX
ZWFrUHRyPEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVy
biBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZh
Y3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoUmVuZGVyT2JqZWN0Kik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCmluZGV4IDAwNjYxY2U5MmIwNmZjODEzZGQyNWFj
N2Q0NjEzNDM1Y2I5NmI4MzYuLmRiYzU1NjZlMzVlNGVmMzgxMTRjMmRjMDZjNGFkZThmM2U0M2Uz
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCkBAIC02MCw3
ICs2MCw2IEBAIFJlZlB0cjxXZWJBbmltYXRpb24+IFdlYkFuaW1hdGlvbjo6Y3JlYXRlKEFuaW1h
dGlvbkVmZmVjdCogZWZmZWN0LCBBbmltYXRpb25UaW1lCiBXZWJBbmltYXRpb246OldlYkFuaW1h
dGlvbihBbmltYXRpb25FZmZlY3QqIGVmZmVjdCwgQW5pbWF0aW9uVGltZWxpbmUqIHRpbWVsaW5l
KQogICAgIDogbV9lZmZlY3QoZWZmZWN0KQogICAgICwgbV90aW1lbGluZSh0aW1lbGluZSkKLSAg
ICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKICAgICBpZiAobV9lZmZlY3QpCiAgICAgICAg
IG1fZWZmZWN0LT5zZXRBbmltYXRpb24odGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2Vi
QW5pbWF0aW9uLmgKaW5kZXggYjAxNzNiNmUzNWRjMGRhYmJhNjFmNjA5OThlZWViZTM3YzUwZTZm
NS4uZDZmYjBhMDBkYTE5MmM2ZDFlZGJkNGRiYWU2ZDQxM2ZlYTYyOTk2NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAg
ICAgQW5pbWF0aW9uRWZmZWN0KiBlZmZlY3QoKSBjb25zdCB7IHJldHVybiBtX2VmZmVjdC5nZXQo
KTsgfQogICAgIEFuaW1hdGlvblRpbWVsaW5lKiB0aW1lbGluZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dGltZWxpbmUuZ2V0KCk7IH0KIAotICAgIFdlYWtQdHI8V2ViQW5pbWF0aW9uPiBjcmVhdGVXZWFr
UHRyKCkgY29uc3QgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0K
KyAgICBXZWFrUHRyPFdlYkFuaW1hdGlvbj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vh
a1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogcHJpdmF0ZToKICAgICBXZWJB
bmltYXRpb24oQW5pbWF0aW9uRWZmZWN0KiwgQW5pbWF0aW9uVGltZWxpbmUqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Rm9udEZhY2UuY3BwCmluZGV4IDgyNTMxZmY4NTMyNzgyOGI5ZjlkNzc2MWIyOWI3OWE2Njg0N2M4
ODEuLjk2NmI3ZmFkZjQ5YjBmM2ViMDhiNzQ2ODI2YTg5ZGViNWQwMWJiNjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0ZvbnRGYWNlLmNwcApAQCAtMTIwLDE2ICsxMjAsMTQgQEAgUmVmPEZvbnRGYWNlPiBGb250RmFj
ZTo6Y3JlYXRlKENTU0ZvbnRGYWNlJiBmYWNlKQogfQogCiBGb250RmFjZTo6Rm9udEZhY2UoQ1NT
Rm9udFNlbGVjdG9yJiBmb250U2VsZWN0b3IpCi0gICAgOiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMp
Ci0gICAgLCBtX2JhY2tpbmcoQ1NTRm9udEZhY2U6OmNyZWF0ZSgmZm9udFNlbGVjdG9yLCBudWxs
cHRyLCB0aGlzKSkKKyAgICA6IG1fYmFja2luZyhDU1NGb250RmFjZTo6Y3JlYXRlKCZmb250U2Vs
ZWN0b3IsIG51bGxwdHIsIHRoaXMpKQogICAgICwgbV9sb2FkZWRQcm9taXNlKCp0aGlzLCAmRm9u
dEZhY2U6OmxvYWRlZFByb21pc2VSZXNvbHZlKQogewogICAgIG1fYmFja2luZy0+YWRkQ2xpZW50
KCp0aGlzKTsKIH0KIAogRm9udEZhY2U6OkZvbnRGYWNlKENTU0ZvbnRGYWNlJiBmYWNlKQotICAg
IDogbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQotICAgICwgbV9iYWNraW5nKGZhY2UpCisgICAgOiBt
X2JhY2tpbmcoZmFjZSkKICAgICAsIG1fbG9hZGVkUHJvbWlzZSgqdGhpcywgJkZvbnRGYWNlOjps
b2FkZWRQcm9taXNlUmVzb2x2ZSkKIHsKICAgICBtX2JhY2tpbmctPmFkZENsaWVudCgqdGhpcyk7
CkBAIC0xNDAsOSArMTM4LDkgQEAgRm9udEZhY2U6On5Gb250RmFjZSgpCiAgICAgbV9iYWNraW5n
LT5yZW1vdmVDbGllbnQoKnRoaXMpOwogfQogCi1XZWFrUHRyPEZvbnRGYWNlPiBGb250RmFjZTo6
Y3JlYXRlV2Vha1B0cigpIGNvbnN0CitXZWFrUHRyPEZvbnRGYWNlPiBGb250RmFjZTo6Y3JlYXRl
V2Vha1B0cigpCiB7Ci0gICAgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigp
OworICAgIHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOwogfQog
CiBSZWZQdHI8Q1NTVmFsdWU+IEZvbnRGYWNlOjpwYXJzZVN0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZywgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0ZvbnRGYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuaAppbmRleCBj
NzFjZTAzYzBmMGE1ZDdiODdlOTM0ZmNlMzY4YTJmZmYzN2QzNmE4Li4yZjRjODg5NDNjYmRlNzY2
MTcyMmMwNGNlNmRjNmJlMjY1Yzk4NTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Rm9udEZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuaApAQCAtODUsNyAr
ODUsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZvbnRTdGF0ZUNoYW5nZWQoQ1NTRm9udEZhY2Um
LCBDU1NGb250RmFjZTo6U3RhdHVzIG9sZFN0YXRlLCBDU1NGb250RmFjZTo6U3RhdHVzIG5ld1N0
YXRlKSBmaW5hbDsKIAotICAgIFdlYWtQdHI8Rm9udEZhY2U+IGNyZWF0ZVdlYWtQdHIoKSBjb25z
dDsKKyAgICBXZWFrUHRyPEZvbnRGYWNlPiBjcmVhdGVXZWFrUHRyKCk7CiAKICAgICB2b2lkIHJl
ZigpIGZpbmFsIHsgUmVmQ291bnRlZDo6cmVmKCk7IH0KICAgICB2b2lkIGRlcmVmKCkgZmluYWwg
eyBSZWZDb3VudGVkOjpkZXJlZigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVTaGVldENvbnRlbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRl
bnRzLmgKaW5kZXggMTkwNzU1ODhmY2Q0YzhiZDMwMmQ4ZjQwMTZkZmExZjU0NGJkNTRmMS4uOGMw
YjRkYTMxMzVkYzgwZTYwYjJjN2ZjMGExODZmZGMzZGIxZWEyMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVNoZWV0Q29udGVudHMuaApAQCAtMTQzLDcgKzE0Myw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgc2hyaW5rVG9GaXQoKTsKIAotICAgIFdlYWtQdHI8U3R5bGVTaGVldENvbnRlbnRzPiBj
cmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7
IH0KKyAgICBXZWFrUHRyPFN0eWxlU2hlZXRDb250ZW50cz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0
dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogcHJpdmF0ZToK
ICAgICBXRUJDT1JFX0VYUE9SVCBTdHlsZVNoZWV0Q29udGVudHMoU3R5bGVSdWxlSW1wb3J0KiBv
d25lclJ1bGUsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxVUkwsIGNvbnN0IENTU1BhcnNlckNvbnRl
eHQmKTsKQEAgLTE3NSw3ICsxNzUsNyBAQCBwcml2YXRlOgogCiAgICAgVmVjdG9yPENTU1N0eWxl
U2hlZXQqPiBtX2NsaWVudHM7CiAgICAgCi0gICAgV2Vha1B0ckZhY3Rvcnk8U3R5bGVTaGVldENv
bnRlbnRzPiBtX3dlYWtQdHJGYWN0b3J5IHsgdGhpcyB9OworICAgIFdlYWtQdHJGYWN0b3J5PFN0
eWxlU2hlZXRDb250ZW50cz4gbV93ZWFrUHRyRmFjdG9yeTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVt
TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwCmlu
ZGV4IDZmNmMwZmE4ZDlmNWNkNmIwYmMyNDk3NzcwMDk1ODU5YTU2MGY2OWQuLjc1YzY3ZTBjMTBi
ODQ4ZDRmMTlmYmYyOTBmMTY3ZTdlMjEzZmFlMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rh
dGFUcmFuc2Zlckl0ZW1MaXN0LmNwcApAQCAtNDEsOCArNDEsNyBAQCBzdGF0aWMgYm9vbCBpc1N1
cHBvcnRlZFR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQogfQogCiBEYXRhVHJhbnNmZXJJdGVtTGlz
dDo6RGF0YVRyYW5zZmVySXRlbUxpc3QoRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIpCi0gICAg
OiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0gICAgLCBtX2RhdGFUcmFuc2ZlcihkYXRhVHJhbnNm
ZXIpCisgICAgOiBtX2RhdGFUcmFuc2ZlcihkYXRhVHJhbnNmZXIpCiB7CiB9CiAKQEAgLTgxLDcg
KzgwLDcgQEAgRXhjZXB0aW9uT3I8UmVmUHRyPERhdGFUcmFuc2Zlckl0ZW0+PiBEYXRhVHJhbnNm
ZXJJdGVtTGlzdDo6YWRkKGNvbnN0IFN0cmluZyYgZGEKIAogICAgIG1fZGF0YVRyYW5zZmVyLnBh
c3RlYm9hcmQoKS53cml0ZVN0cmluZyhsb3dlcmNhc2VkVHlwZSwgZGF0YSk7CiAgICAgQVNTRVJU
KG1faXRlbXMpOwotICAgIG1faXRlbXMtPmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUo
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIGxvd2VyY2FzZWRUeXBlKSk7CisgICAg
bV9pdGVtcy0+YXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShtX3dlYWtQdHJGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIoKnRoaXMpLCBsb3dlcmNhc2VkVHlwZSkpOwogICAgIHJldHVybiBSZWZQ
dHI8RGF0YVRyYW5zZmVySXRlbT4geyBtX2l0ZW1zLT5sYXN0KCkuY29weVJlZigpIH07CiB9CiAK
QEAgLTEyOSwxMyArMTI4LDEzIEBAIFZlY3RvcjxSZWY8RGF0YVRyYW5zZmVySXRlbT4+JiBEYXRh
VHJhbnNmZXJJdGVtTGlzdDo6ZW5zdXJlSXRlbXMoKSBjb25zdAogICAgIGZvciAoYXV0byYgdHlw
ZSA6IG1fZGF0YVRyYW5zZmVyLnR5cGVzKCkpIHsKICAgICAgICAgYXV0byBsb3dlcmNhc2VkVHlw
ZSA9IHR5cGUuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKICAgICAgICAgaWYgKGlzU3VwcG9y
dGVkVHlwZShsb3dlcmNhc2VkVHlwZSkpCi0gICAgICAgICAgICBpdGVtcy5hcHBlbmQoRGF0YVRy
YW5zZmVySXRlbTo6Y3JlYXRlKG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCBsb3dl
cmNhc2VkVHlwZSkpOworICAgICAgICAgICAgaXRlbXMuYXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06
OmNyZWF0ZShtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKmNvbnN0X2Nhc3Q8RGF0YVRy
YW5zZmVySXRlbUxpc3QqPih0aGlzKSksIGxvd2VyY2FzZWRUeXBlKSk7CiAgICAgfQogCiAgICAg
Zm9yIChhdXRvJiBmaWxlIDogbV9kYXRhVHJhbnNmZXIuZmlsZXMoKS5maWxlcygpKSB7CiAgICAg
ICAgIGF1dG8gdHlwZSA9IEZpbGU6OmNvbnRlbnRUeXBlRm9yRmlsZShmaWxlLT5wYXRoKCkpLmNv
bnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCk7CiAgICAgICAgIGlmIChpc1N1cHBvcnRlZFR5cGUodHlw
ZSkgfHwgZmlsZS0+aXNEaXJlY3RvcnkoKSkKLSAgICAgICAgICAgIGl0ZW1zLmFwcGVuZChEYXRh
VHJhbnNmZXJJdGVtOjpjcmVhdGUobV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIHR5
cGUsIGZpbGUuY29weVJlZigpKSk7CisgICAgICAgICAgICBpdGVtcy5hcHBlbmQoRGF0YVRyYW5z
ZmVySXRlbTo6Y3JlYXRlKG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqY29uc3RfY2Fz
dDxEYXRhVHJhbnNmZXJJdGVtTGlzdCo+KHRoaXMpKSwgdHlwZSwgZmlsZS5jb3B5UmVmKCkpKTsK
ICAgICB9CiAKICAgICBtX2l0ZW1zID0gV1RGTW92ZShpdGVtcyk7CkBAIC0xODEsNyArMTgwLDcg
QEAgdm9pZCBEYXRhVHJhbnNmZXJJdGVtTGlzdDo6ZGlkU2V0U3RyaW5nRGF0YShjb25zdCBTdHJp
bmcmIHR5cGUpCiAgICAgU3RyaW5nIGxvd2VyY2FzZWRUeXBlID0gdHlwZS5jb252ZXJ0VG9BU0NJ
SUxvd2VyY2FzZSgpOwogICAgIHJlbW92ZVN0cmluZ0l0ZW1PZkxvd2VyY2FzZWRUeXBlKCptX2l0
ZW1zLCB0eXBlLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCkpOwogCi0gICAgbV9pdGVtcy0+YXBw
ZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKSwgbG93ZXJjYXNlZFR5cGUpKTsKKyAgICBtX2l0ZW1zLT5hcHBlbmQoRGF0YVRyYW5zZmVy
SXRlbTo6Y3JlYXRlKG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIGxvd2Vy
Y2FzZWRUeXBlKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGNlZTNhMmNi
ZTU2YTAxMmY0ZDYyMDcxMTI2MGQ0MDA2YzRlMzQ3YzUuLjI4NDUxNDk2YTU3ODQ2MDZjMzU3Y2Fm
ZDE4ZWQwNjI1MmZhNTc3NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDY5LDcgKzQ2
OSw2IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsLCB1
bnNpZ25lZCBkb2N1bWVudENsYXNzZXMsIHVuc2lnCiAgICAgLCBtX2NvbnN0YW50UHJvcGVydHlN
YXAoc3RkOjptYWtlX3VuaXF1ZTxDb25zdGFudFByb3BlcnR5TWFwPigqdGhpcykpCiAgICAgLCBt
X2RvY3VtZW50Q2xhc3Nlcyhkb2N1bWVudENsYXNzZXMpCiAgICAgLCBtX2V2ZW50UXVldWUoKnRo
aXMpCi0gICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQogICAgICwgbV9mdWxsU2NyZWVuQ2hhbmdlRGVsYXlUaW1lcigqdGhpcywgJkRvY3VtZW50Ojpm
dWxsU2NyZWVuQ2hhbmdlRGVsYXlUaW1lckZpcmVkKQogI2VuZGlmCkBAIC01NjI3LDcgKzU2MjYs
NyBAQCB2b2lkIERvY3VtZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNz
YWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZwogCiB2b2lkIERvY3VtZW50Ojpwb3N0VGFzayhU
YXNrJiYgdGFzaykKIHsKLSAgICBjYWxsT25NYWluVGhyZWFkKFtkb2N1bWVudFJlZmVyZW5jZSA9
IG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCB0YXNrID0gV1RGTW92ZSh0YXNrKV0oKSBt
dXRhYmxlIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtkb2N1bWVudFJlZmVyZW5jZSA9IG1fd2Vh
a0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIHRhc2sgPSBXVEZNb3ZlKHRhc2spXSgpIG11
dGFibGUgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAgICAgICAgIERvY3Vt
ZW50KiBkb2N1bWVudCA9IGRvY3VtZW50UmVmZXJlbmNlLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAppbmRleCBlMDA5NWZlYTAyMWNiNDQ1Yzg3ZmY2NmRmYjE0MDlmMzlkZWY0NGE1Li43YTVkMWFl
ZTBlYzkyNWFlMDZlNjhiN2NlZjdhYjEyMzQzOWJhNDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApA
QCAtMTI3Miw3ICsxMjcyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNDYXB0dXJpbmcoKSBjb25z
dCB7IHJldHVybiBNZWRpYVByb2R1Y2VyOjppc0NhcHR1cmluZyhtX21lZGlhU3RhdGUpOyB9CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVJc1BsYXlpbmdNZWRpYSh1aW50NjRfdCA9IEhU
TUxNZWRpYUVsZW1lbnRJbnZhbGlkSUQpOwogICAgIHZvaWQgcGFnZU11dGVkU3RhdGVEaWRDaGFu
Z2UoKTsKLSAgICBXZWFrUHRyPERvY3VtZW50PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93
ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPERvY3VtZW50PiBjcmVh
dGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsg
fQogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICB2b2lkIGFkZFBs
YXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGYxMjJjMDc4Y2EyNzA0
MzA0ZjllN2I2MjBhN2E1NDE4ZmMwMzQyYzQuLjE3MDBiZDYyNTVlZjE3NGM2YWZiOTg1NGNmZmUy
NTg4ZWNmODNkZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApA
QCAtNDExLDcgKzQxMSw2IEBAIHN0YXRpYyB1aW50NjRfdCBuZXh0TG9nSWRlbnRpZmllcigpCiBI
VE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCiAgICAgOiBI
VE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIEFjdGl2ZURPTU9iamVjdCgmZG9j
dW1lbnQpCi0gICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCiAgICAgLCBtX3BlbmRpbmdBY3Rpb25U
aW1lcigqdGhpcywgJkhUTUxNZWRpYUVsZW1lbnQ6OnBlbmRpbmdBY3Rpb25UaW1lckZpcmVkKQog
ICAgICwgbV9wcm9ncmVzc0V2ZW50VGltZXIoKnRoaXMsICZIVE1MTWVkaWFFbGVtZW50Ojpwcm9n
cmVzc0V2ZW50VGltZXJGaXJlZCkKICAgICAsIG1fcGxheWJhY2tQcm9ncmVzc1RpbWVyKCp0aGlz
LCAmSFRNTE1lZGlhRWxlbWVudDo6cGxheWJhY2tQcm9ncmVzc1RpbWVyRmlyZWQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IGMzM2FiOWI4ODBmOWVhNDgyOTI2MmYz
ZGU3M2ZkNjAzMTIwNzhhZTQuLmM4NDE4ZjE1NWFkYmM4ZmRlNTY5ZWNmNjI2MjRiYmVhZTQzMGJj
M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0xNDUsNyArMTQ1
LDcgQEAgY2xhc3MgSFRNTE1lZGlhRWxlbWVudAogI2VuZGlmCiB7CiBwdWJsaWM6Ci0gICAgV2Vh
a1B0cjxIVE1MTWVkaWFFbGVtZW50PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPEhUTUxNZWRpYUVsZW1lbnQ+IGNy
ZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMp
OyB9CiAgICAgTWVkaWFQbGF5ZXIqIHBsYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWVyLmdl
dCgpOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNWaWRlbygpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuaAppbmRleCA4NGJkNjZl
NTNkYjY2NDZlZTBmMTk5Yjg2NWQ1YTY2YmY1M2U0OGFhLi4wY2I0NzgxZGE1ZjNlYWIxODAyMDVm
MWJiMTk4ZWNhMmI3MWE2YWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
aWN0dXJlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVt
ZW50LmgKQEAgLTQzLDE0ICs0MywxNCBAQCBwdWJsaWM6CiAKICAgICBib29sIHZpZXdwb3J0Q2hh
bmdlQWZmZWN0ZWRQaWN0dXJlKCkgY29uc3Q7CiAKLSAgICBXZWFrUHRyPEhUTUxQaWN0dXJlRWxl
bWVudD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0
cigpOyB9CisgICAgV2Vha1B0cjxIVE1MUGljdHVyZUVsZW1lbnQ+IGNyZWF0ZVdlYWtQdHIoKSB7
IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKIHByaXZhdGU6
CiAgICAgSFRNTFBpY3R1cmVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OwogCiAgICAgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCYgb2xkRG9jdW1lbnQs
IERvY3VtZW50JiBuZXdEb2N1bWVudCkgZmluYWw7CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxIVE1M
UGljdHVyZUVsZW1lbnQ+IG1fd2Vha0ZhY3RvcnkgeyB0aGlzIH07CisgICAgV2Vha1B0ckZhY3Rv
cnk8SFRNTFBpY3R1cmVFbGVtZW50PiBtX3dlYWtGYWN0b3J5OwogICAgIFZlY3RvcjxNZWRpYVF1
ZXJ5UmVzdWx0PiBtX3ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyeVJlc3VsdHM7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUmVzb3VyY2VQcmVsb2Fk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRlci5o
CmluZGV4IGNkMTBmODVkZTkxMDRhNTBhOTRkNWRiZThjMzEzOTczODBlOTRkOGMuLmFhMmM3ODJk
ZTA1ODM3ZjUyMjg2MzlmOTZiMDgzMmUzM2I1Y2NhYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRlci5oCkBAIC03NywxNCArNzcsMTMg
QEAgY2xhc3MgSFRNTFJlc291cmNlUHJlbG9hZGVyIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBI
VE1MUmVzb3VyY2VQcmVsb2FkZXIoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgICAgICA6IG1fZG9j
dW1lbnQoZG9jdW1lbnQpCi0gICAgICAgICwgbV93ZWFrRmFjdG9yeSh0aGlzKQogICAgIHsKICAg
ICB9CiAKICAgICB2b2lkIHByZWxvYWQoUHJlbG9hZFJlcXVlc3RTdHJlYW0pOwogICAgIHZvaWQg
cHJlbG9hZChzdGQ6OnVuaXF1ZV9wdHI8UHJlbG9hZFJlcXVlc3Q+KTsKIAotICAgIFdlYWtQdHI8
SFRNTFJlc291cmNlUHJlbG9hZGVyPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPEhUTUxSZXNvdXJjZVByZWxvYWRl
cj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigq
dGhpcyk7IH0KIAogcHJpdmF0ZToKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9MaW5rTG9hZGVyLmNwcAppbmRleCA3Mjc5NWIwZTAzZTI3MWQ0ZWRhYmM2MDI0NjUy
NDU1ZDFmY2M4MDZlLi4yYjE2MTMyNjQzMGMxMGQ1OTI0MjhkMTViNDg3NzJiZWY2YTY5MDNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCkBAIC01Nyw3ICs1Nyw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogTGlua0xvYWRlcjo6TGlua0xvYWRlcihMaW5rTG9hZGVyQ2xpZW50
JiBjbGllbnQpCiAgICAgOiBtX2NsaWVudChjbGllbnQpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5
KHRoaXMpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9h
ZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5oCmluZGV4IGRlM2FlYTc1
ZDI0ZWY2NzU1YWQyYWQ1Mzg4YmQ2YWZkMjM4ODRiMTQuLjE3NTVmNjExNjE3ZGVjZDMwZWNmZDYw
YmM0OGIzYjIwMjE2ZGQyODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5r
TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuaApAQCAtNTgs
NyArNTgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgbG9hZExpbmtzRnJvbUhlYWRlcihj
b25zdCBTdHJpbmcmIGhlYWRlclZhbHVlLCBjb25zdCBVUkwmIGJhc2VVUkwsIERvY3VtZW50Jiwg
TWVkaWFBdHRyaWJ1dGVDaGVjayk7CiAgICAgc3RhdGljIGJvb2wgaXNTdXBwb3J0ZWRUeXBlKENh
Y2hlZFJlc291cmNlOjpUeXBlLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKIAotICAgIFdlYWtQ
dHI8TGlua0xvYWRlcj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxMaW5rTG9hZGVyPiBjcmVhdGVXZWFrUHRy
KCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogICAg
IHZvaWQgdHJpZ2dlckV2ZW50cyhjb25zdCBDYWNoZWRSZXNvdXJjZSYpOwogICAgIHZvaWQgY2Fu
Y2VsTG9hZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNv
dXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRl
ci5jcHAKaW5kZXggYzQwN2E3Y2Y1OTAwOGQ3NDMwM2NiMjg1NTEyN2U0NWNkNmFkOTRmYi4uYjJl
MTYwNTZmYzcwOGZiM2E4MTVmYzgwNDY0ZTEyOTc2ZGE0NzkwNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcApAQCAtNDUsNyArNDUsNiBAQCBNZWRp
YVJlc291cmNlTG9hZGVyOjpNZWRpYVJlc291cmNlTG9hZGVyKERvY3VtZW50JiBkb2N1bWVudCwg
SFRNTE1lZGlhRWxlbWVudCYgbQogICAgICwgbV9kb2N1bWVudCgmZG9jdW1lbnQpCiAgICAgLCBt
X21lZGlhRWxlbWVudChtZWRpYUVsZW1lbnQuY3JlYXRlV2Vha1B0cigpKQogICAgICwgbV9jcm9z
c09yaWdpbk1vZGUoY3Jvc3NPcmlnaW5Nb2RlKQotICAgICwgbV93ZWFrRmFjdG9yeSh0aGlzKQog
ewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxv
YWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuaAppbmRl
eCA1YTEwYmYzYzY5ODRhNGFjMzEzOTZhZDkwNWNmNDkxMjkyZjEzYWZjLi5iMDA0YjdhZDFkMThh
ZTc3MWQ3MmFkODgyMzc0OWQzMjUzNzEyNjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9N
ZWRpYVJlc291cmNlTG9hZGVyLmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIFZlY3Rv
cjxSZXNvdXJjZVJlc3BvbnNlPiByZXNwb25zZXNGb3JUZXN0aW5nKCkgY29uc3QgeyByZXR1cm4g
bV9yZXNwb25zZXNGb3JUZXN0aW5nOyB9CiAgICAgdm9pZCBhZGRSZXNwb25zZUZvclRlc3Rpbmco
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogCi0gICAgV2Vha1B0cjxjb25zdCBNZWRpYVJlc291
cmNlTG9hZGVyPiBjcmVhdGVXZWFrUHRyKCkgY29uc3QgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPGNvbnN0IE1lZGlhUmVzb3VyY2VMb2FkZXI+
IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRo
aXMpOyB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggOTJmNWI5MDVjZTEwYTk0ZTA4MmZkNjY1
MmNlNjE5NzBiZTFhOGIyYS4uODdiYTlkOGQ3YTRlNzA0OGMyNjUwNWI1YjU5YWEyYTllYzUwNTRm
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMzk0LDcgKzM5NCw2IEBAIHZvaWQg
RE9NV2luZG93OjpzZXRDYW5TaG93TW9kYWxEaWFsb2dPdmVycmlkZShib29sIGFsbG93KQogRE9N
V2luZG93OjpET01XaW5kb3coRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogQ29udGV4dERlc3Ry
dWN0aW9uT2JzZXJ2ZXIoJmRvY3VtZW50KQogICAgICwgRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVy
KGRvY3VtZW50LmZyYW1lKCkpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiAgICAg
QVNTRVJUKGZyYW1lKCkpOwogICAgIGFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodGhpcywgJmxh
bmd1YWdlc0NoYW5nZWRDYWxsYmFjayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCBhYjMy
N2JkZDMyMTliMzE0MjZjYWE4OWZmMTBlOTdhZGRmNzRjZGNkLi5kNmQ0ZDE4NDk0ODZjMWYxYzI5
YjU5OWQwMTBjNzhlMjUxMzgzNmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTMyNSw3
ICszMjUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmFibGVTdWRkZW5UZXJtaW5hdGlvbigpOwog
ICAgIHZvaWQgZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCk7CiAKLSAgICBXZWFrUHRyPERPTVdp
bmRvdz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vh
a1B0cigpOyB9CisgICAgV2Vha1B0cjxET01XaW5kb3c+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVy
biBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgRE9NV2luZG93KERvY3VtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0dlbmVyaWNUYXNrUXVldWUuY3BwCmluZGV4IDBhNjU1MjA2YjUwODBkNjhkOThhMjQzMjRl
ZGUwNzE0NDM4ZWQ5MzEuLmFiMDg4NjJkM2RlNjlkYTI5MTM1MWQ5MmY2M2E2NGEyMzc4Y2Y5ZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuY3BwCkBAIC0z
MiwxNCArMzIsMTMgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogVGFza0Rpc3BhdGNoZXI8VGlt
ZXI+OjpUYXNrRGlzcGF0Y2hlcigpCi0gICAgOiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiB9
CiAKIHZvaWQgVGFza0Rpc3BhdGNoZXI8VGltZXI+Ojpwb3N0VGFzayhGdW5jdGlvbjx2b2lkKCk+
JiYgZnVuY3Rpb24pCiB7CiAgICAgbV9wZW5kaW5nVGFza3MuYXBwZW5kKFdURk1vdmUoZnVuY3Rp
b24pKTsKLSAgICBwZW5kaW5nRGlzcGF0Y2hlcnMoKS5hcHBlbmQobV93ZWFrUHRyRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCkpOworICAgIHBlbmRpbmdEaXNwYXRjaGVycygpLmFwcGVuZChtX3dlYWtQ
dHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpKTsKICAgICBpZiAoIXNoYXJlZFRpbWVyKCku
aXNBY3RpdmUoKSkKICAgICAgICAgc2hhcmVkVGltZXIoKS5zdGFydE9uZVNob3QoMF9zKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuaAppbmRleCA1ZDY0OThj
MmU5Y2NmZmFjNzVkMDcwM2IwYWUyYWY2YWI4YzUxZTI3Li4wMmMwYWI5YzJjN2Y4OWY3Yzg2YTY3
MTBkNjc5YmQwMWJiOTllOGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9H
ZW5lcmljVGFza1F1ZXVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VuZXJpY1Rh
c2tRdWV1ZS5oCkBAIC03MCwxNCArNzAsMTIgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFz
cyBHZW5lcmljVGFza1F1ZXVlIHsKIHB1YmxpYzoKICAgICBHZW5lcmljVGFza1F1ZXVlKCkKLSAg
ICAgICAgOiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0gICAgICAgICwgbV9kaXNwYXRjaGVyKCkK
KyAgICAgICAgOiBtX2Rpc3BhdGNoZXIoKQogICAgIHsKICAgICB9CiAKICAgICBHZW5lcmljVGFz
a1F1ZXVlKFQmIHQpCi0gICAgICAgIDogbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQotICAgICAgICAs
IG1fZGlzcGF0Y2hlcih0KQorICAgICAgICA6IG1fZGlzcGF0Y2hlcih0KQogICAgIHsKICAgICB9
CiAKQEAgLTg5LDcgKzg3LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAg
ICAgICsrbV9wZW5kaW5nVGFza3M7Ci0gICAgICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICAgICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0
ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiAgICAgICAgIG1fZGlzcGF0Y2hlci5wb3N0
VGFzayhbd2Vha1RoaXMsIHRhc2sgPSBXVEZNb3ZlKHRhc2spXSB7CiAgICAgICAgICAgICBpZiAo
IXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxhYmxlQXJlYS5oCmluZGV4IDRiODIwZmUyZWRkMTE4ZmUwMmI1ODE4MDllNjFiMDJk
YjFlNzhlYWUuLjE0YjY1NjFjNWZmMTMzZTAxMWVhY2YyM2ExNzdjY2ZiNzdkNmUxYjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtNjQsNyArNjQsNyBAQCBw
dWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhbmRsZVdoZWVsRXZlbnQoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50Jik7CiAKLSAgICBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiBjcmVh
dGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0K
KyAgICBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93
ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiAjaWYgRU5BQkxFKENTU19T
Q1JPTExfU05BUCkKICAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBWZWN0b3I8TGF5b3V0VW5pdD4q
IGhvcml6b250YWxTbmFwT2Zmc2V0cygpIGNvbnN0OwpAQCAtMzU0LDcgKzM1NCw3IEBAIHByaXZh
dGU6CiAKICAgICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxBbmltYXRvcj4gbV9zY3Jv
bGxBbmltYXRvcjsKIAotICAgIFdlYWtQdHJGYWN0b3J5PFNjcm9sbGFibGVBcmVhPiBtX3dlYWtQ
dHJGYWN0b3J5IHsgdGhpcyB9OworICAgIFdlYWtQdHJGYWN0b3J5PFNjcm9sbGFibGVBcmVhPiBt
X3dlYWtQdHJGYWN0b3J5OwogCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8U2Nyb2xsU25hcE9mZnNldHNJbmZvPExheW91dFVuaXQ+PiBtX3NuYXBPZmZz
ZXRzSW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCmluZGV4IDA1MGQ0ZDk5
YmUwNjY1MTFhYzEzNTZiN2M4NWFkYThkMTdmNGQ4ZjUuLjllZTkzODEyNmFkNDU1MDhmMDQ1ZjRi
NTk5YjE1MmRmYjFiZDhhMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGJhci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcApA
QCAtNzcsNyArNzcsNiBAQCBTY3JvbGxiYXI6OlNjcm9sbGJhcihTY3JvbGxhYmxlQXJlYSYgc2Ny
b2xsYWJsZUFyZWEsIFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudAogICAgICwgbV9zdXBwcmVz
c0ludmFsaWRhdGlvbihmYWxzZSkKICAgICAsIG1faXNBbHBoYUxvY2tlZChmYWxzZSkKICAgICAs
IG1faXNDdXN0b21TY3JvbGxiYXIoaXNDdXN0b21TY3JvbGxiYXIpCi0gICAgLCBtX3dlYWtQdHJG
YWN0b3J5KHRoaXMpCiB7CiAgICAgdGhlbWUoKS5yZWdpc3RlclNjcm9sbGJhcigqdGhpcyk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmgKaW5kZXggZTI1NjA4MWI3NTdmMTA5YWY0MmY5
Y2M4OGU1Zjc4NDY0OTFjMDMxMy4uMWE4NmJmMzMyNWJjYjczMTc4MTdlNjdkYWQxMTEyYjRkY2Ew
MmVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmgKQEAgLTEzMyw3ICsxMzMsNyBA
QCBwdWJsaWM6CiAKICAgICBib29sIHN1cHBvcnRzVXBkYXRlT25TZWNvbmRhcnlUaHJlYWQoKSBj
b25zdDsKIAotICAgIFdlYWtQdHI8U2Nyb2xsYmFyPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4g
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPFNjcm9sbGJh
cj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0
cigqdGhpcyk7IH0KIAogcHJvdGVjdGVkOgogICAgIFNjcm9sbGJhcihTY3JvbGxhYmxlQXJlYSYs
IFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxiYXJDb250cm9sU2l6ZSwgU2Nyb2xsYmFyVGhl
bWUqID0gMCwgYm9vbCBpc0N1c3RvbVNjcm9sbGJhciA9IGZhbHNlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
V2lkZ2V0LmgKaW5kZXggNzEwZWY3YjY0ZDMxMGYyYjZjNDM3ZGE4YThiZDcyYTRmZWZkOTZmYS4u
YjVjNjc0YWYxYjllNTJhOTUzZTllMWE5OTg3OWU4NTc4OGI3OTc5NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vV2lkZ2V0LmgKQEAgLTE5Myw3ICsxOTMsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCBJbnRQb2ludCBjb252ZXJ0VG9Db250YWluaW5nVmlldyhjb25zdCBJbnRQb2lu
dCYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgSW50UG9pbnQgY29udmVydEZy
b21Db250YWluaW5nVmlldyhjb25zdCBJbnRQb2ludCYpIGNvbnN0OwogCi0gICAgV2Vha1B0cjxX
aWRnZXQ+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKTsgfQorICAgIFdlYWtQdHI8V2lkZ2V0PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4g
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiBwcml2YXRlOgogICAg
IHZvaWQgaW5pdChQbGF0Zm9ybVdpZGdldCk7IC8vIE11c3QgYmUgY2FsbGVkIGJ5IGFsbCBXaWRn
ZXQgY29uc3RydWN0b3JzIHRvIGluaXRpYWxpemUgY3Jvc3MtcGxhdGZvcm0gZGF0YS4KQEAgLTIx
Niw3ICsyMTYsNyBAQCBwcml2YXRlOgogI2Vsc2UKICAgICBSZXRhaW5QdHI8TlNWaWV3PiBtX3dp
ZGdldDsKICNlbmRpZgotICAgIFdlYWtQdHJGYWN0b3J5PFdpZGdldD4gbV93ZWFrUHRyRmFjdG9y
eSB7IHRoaXMgfTsKKyAgICBXZWFrUHRyRmFjdG9yeTxXaWRnZXQ+IG1fd2Vha1B0ckZhY3Rvcnk7
CiAgICAgYm9vbCBtX3NlbGZWaXNpYmxlOwogICAgIGJvb2wgbV9wYXJlbnRWaXNpYmxlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9IYXJkd2Fy
ZUxpc3RlbmVyTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRp
b0hhcmR3YXJlTGlzdGVuZXJNYWMuY3BwCmluZGV4IDBiNDRmNTkyMTM1N2E0NjJlMzUxOWRjYTJi
ZjRlNTRmZWJlMjU2MzguLmRiYmRjOWYwYTk3ZjViYTQ5MGNmNTAxZGIzM2MyMjQ1M2Q3OTg3ODQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0hhcmR3
YXJlTGlzdGVuZXJNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21h
Yy9BdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuY3BwCkBAIC0xMjEsMTIgKzEyMSwxMSBAQCBSZWY8
QXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjPiBBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWM6OmNyZWF0
ZShDbGllbnQmIGNsaWVudCkKIAogQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjOjpBdWRpb0hhcmR3
YXJlTGlzdGVuZXJNYWMoQ2xpZW50JiBjbGllbnQpCiAgICAgOiBBdWRpb0hhcmR3YXJlTGlzdGVu
ZXIoY2xpZW50KQotICAgICwgbV93ZWFrRmFjdG9yeSh0aGlzKQogewogICAgIHNldEhhcmR3YXJl
QWN0aXZpdHkoaXNBdWRpb0hhcmR3YXJlUHJvY2Vzc1J1bm5pbmcoKSk7CiAgICAgc2V0T3V0cHV0
RGV2aWNlU3VwcG9ydHNMb3dQb3dlck1vZGUoY3VycmVudERldmljZVN1cHBvcnRzTG93UG93ZXJC
dWZmZXJTaXplKCkpOwogCi0gICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha0ZhY3RvcnkuY3JlYXRl
V2Vha1B0cigpOworICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKnRoaXMpOwogICAgIG1fYmxvY2sgPSBCbG9ja19jb3B5KF4oVUludDMyIGNvdW50LCBjb25z
dCBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyBwcm9wZXJ0aWVzW10pIHsKICAgICAgICAgaWYg
KHdlYWtUaGlzKQogICAgICAgICAgICAgd2Vha1RoaXMtPnByb3BlcnR5Q2hhbmdlZChjb3VudCwg
cHJvcGVydGllcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250Q2FzY2FkZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
Q2FzY2FkZS5jcHAKaW5kZXggOTFkMjQzZTFjODgzMTgxY2I3MjNlYzJmNTYyNTdjMDVmZjc0MmJh
OC4uMDVmMzkxNzAwYjlhNjIwMGE4MTkyNTNhZDRhMjFjYjNmMWEwZDc0YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcApAQCAtNzgsMTMg
Kzc4LDExIEBAIEZvbnRDYXNjYWRlOjpDb2RlUGF0aCBGb250Q2FzY2FkZTo6c19jb2RlUGF0aCA9
IEF1dG87CiAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiBGb250Q2Fz
Y2FkZTo6Rm9udENhc2NhZGUoKQotICAgIDogbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogfQog
CiBGb250Q2FzY2FkZTo6Rm9udENhc2NhZGUoY29uc3QgRm9udENhc2NhZGVEZXNjcmlwdGlvbiYg
ZmQsIGZsb2F0IGxldHRlclNwYWNpbmcsIGZsb2F0IHdvcmRTcGFjaW5nKQogICAgIDogbV9mb250
RGVzY3JpcHRpb24oZmQpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiAgICAgLCBtX2xl
dHRlclNwYWNpbmcobGV0dGVyU3BhY2luZykKICAgICAsIG1fd29yZFNwYWNpbmcod29yZFNwYWNp
bmcpCiAgICAgLCBtX3VzZUJhY2tzbGFzaEFzWWVuU3ltYm9sKHVzZUJhY2tzbGFzaEFzWWVuU2ln
bkZvckZhbWlseShmZC5maXJzdEZhbWlseSgpKSkKQEAgLTk2LDcgKzk0LDYgQEAgRm9udENhc2Nh
ZGU6OkZvbnRDYXNjYWRlKGNvbnN0IEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mIGZkLCBmbG9hdCBs
ZXR0ZXJTcGFjaW5nLAogLy8gRklYTUU6IFdlIHNob3VsZCBtYWtlIHRoaXMgY29uc3RydWN0b3Ig
cGxhdGZvcm0taW5kZXBlbmRlbnQuCiBGb250Q2FzY2FkZTo6Rm9udENhc2NhZGUoY29uc3QgRm9u
dFBsYXRmb3JtRGF0YSYgZm9udERhdGEsIEZvbnRTbW9vdGhpbmdNb2RlIGZvbnRTbW9vdGhpbmdN
b2RlKQogICAgIDogbV9mb250cyhGb250Q2FzY2FkZUZvbnRzOjpjcmVhdGVGb3JQbGF0Zm9ybUZv
bnQoZm9udERhdGEpKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogICAgICwgbV9lbmFi
bGVLZXJuaW5nKGNvbXB1dGVFbmFibGVLZXJuaW5nKCkpCiAgICAgLCBtX3JlcXVpcmVzU2hhcGlu
Zyhjb21wdXRlUmVxdWlyZXNTaGFwaW5nKCkpCiB7CkBAIC0xMTIsNyArMTA5LDYgQEAgRm9udENh
c2NhZGU6OkZvbnRDYXNjYWRlKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIGZvbnREYXRhLCBGb250
U21vb3RoaW5nTW9kZSBmb24KIEZvbnRDYXNjYWRlOjpGb250Q2FzY2FkZShjb25zdCBGb250Q2Fz
Y2FkZSYgb3RoZXIpCiAgICAgOiBtX2ZvbnREZXNjcmlwdGlvbihvdGhlci5tX2ZvbnREZXNjcmlw
dGlvbikKICAgICAsIG1fZm9udHMob3RoZXIubV9mb250cykKLSAgICAsIG1fd2Vha1B0ckZhY3Rv
cnkodGhpcykKICAgICAsIG1fbGV0dGVyU3BhY2luZyhvdGhlci5tX2xldHRlclNwYWNpbmcpCiAg
ICAgLCBtX3dvcmRTcGFjaW5nKG90aGVyLm1fd29yZFNwYWNpbmcpCiAgICAgLCBtX3VzZUJhY2tz
bGFzaEFzWWVuU3ltYm9sKG90aGVyLm1fdXNlQmFja3NsYXNoQXNZZW5TeW1ib2wpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaAppbmRleCBhM2IxZmZl
YjViYWIzNDc0OTBhMWI1MDNhZGFhMWZmMTU1MjUzM2VkLi5hNDQ2OTk5MmFhNThlMDM0NTdkZjU5
YmE4MmEzMGYxMzY1YzJlMzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FzY2FkZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYXNjYWRlLmgKQEAgLTE5NSw3ICsxOTUsNyBAQCBwdWJsaWM6CiAKICAgICBib29s
IHByaW1hcnlGb250SXNTeXN0ZW1Gb250KCkgY29uc3Q7CiAKLSAgICBXZWFrUHRyPEZvbnRDYXNj
YWRlPiBjcmVhdGVXZWFrUHRyKCkgY29uc3QgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVh
dGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPEZvbnRDYXNjYWRlPiBjcmVhdGVXZWFrUHRyKCkg
Y29uc3QgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCpjb25zdF9jYXN0
PEZvbnRDYXNjYWRlKj4odGhpcykpOyB9CiAKIHByaXZhdGU6CiAgICAgZW51bSBGb3JUZXh0RW1w
aGFzaXNPck5vdCB7IE5vdEZvclRleHRFbXBoYXNpcywgRm9yVGV4dEVtcGhhc2lzIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3Bw
CmluZGV4IDE2MzVlOTliYzI1NDA3MjNjMDViOGZmZjcwMWFjMTRiZGMxMmY1OTguLmQ0MjlkYjU1
NjA1Y2M1NzUwYmI5YjQzNWQ0Njc1NGRhMzU5ZTA4OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCkBAIC01NSw3ICs1NSw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
OjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqIHBsYXllcikKICAg
ICA6IG1fcGxheWVyKHBsYXllcikKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKICAgICAs
IG1fcXVldWVkTm90aWZpY2F0aW9ucygpCiAgICAgLCBtX3F1ZXVlTXV0ZXgoKQogICAgICwgbV9u
ZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6OkVtcHR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCmluZGV4IDM3ZTNiZTljY2UzZDFmNzc3
ZGY1ODVkMmQ4MGVlMmEzNDQ4MDg1YjQuLjVlNDg1MjViNzdkZWY1ZDc1YjcxZTI5NjRlY2Y5MjAw
NmM3NmY5YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uLmgKQEAgLTE2Myw3ICsxNjMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgZXhwbGlj
aXQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uKE1lZGlhUGxheWVyKik7CiAgICAgdmly
dHVhbCB+TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uKCk7CiAKLSAgICBXZWFrUHRyPE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb24+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKICAgICAvLyBNZWRpYVBsYXllclByaXZh
dGVQcml2YXRlSW50ZXJmYWNlIG92ZXJyaWRlcy4KICAgICB2b2lkIGxvYWQoY29uc3QgU3RyaW5n
JiB1cmwpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Np
b25BVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggYmJjMDVkNTA3ZjQyNTY2NzlmYjdkN2JjZjcyMGQ4
NTI2YzFhYzM3MS4uMjVkMGE2ZWUxOWMzYmM0ZmQ5YWI3NDRmMzIzNTE0MGRjZmQ2ZmNlNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2Jq
Qy5oCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcGxheWVyRGlkUmVjZWl2
ZUVycm9yKE5TRXJyb3IgKik7CiAKLSAgICBXZWFrUHRyPENETVNlc3Npb25BVkZvdW5kYXRpb25P
YmpDPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFr
UHRyKCk7IH0KKyAgICBXZWFrUHRyPENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDPiBjcmVhdGVX
ZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsg
fQogCiBwcm90ZWN0ZWQ6CiAgICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDPiBtX3BhcmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vz
c2lvbkFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggNzRjMzEzMzczNDYyMmM3NzBmNDgxZDc1NzRl
NTViYWE2NDdmMGQ1MS4uYmJjZDVkMzA1MGNmMzQ3NzZhODkyZjE1OWU5MTliYmEzMjI1NjFhYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlv
bk9iakMubW0KQEAgLTUzLDcgKzUzLDYgQEAgQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM6OkNE
TVNlc3Npb25BVkZvdW5kYXRpb25PYmpDKE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmQKICAgICA6
IG1fcGFyZW50KHBhcmVudC0+Y3JlYXRlV2Vha1B0cigpKQogICAgICwgbV9jbGllbnQoY2xpZW50
KQogICAgICwgbV9zZXNzaW9uSWQoY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKQotICAgICwg
bV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1T
ZXNzaW9uLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5tbQppbmRleCBjZDgyOGIzNTM1NzE5NTJm
MmIyYzQ4NWNlYWYyMTY2YWVlOWZiNGNhLi45ZmE3NjFlYjljNWZmMzUxZDY2OWE3NjFhYTA0ZmYy
ODhlZWFiZWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25B
VlN0cmVhbVNlc3Npb24ubW0KQEAgLTg5LDcgKzg5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBDRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uOjpDRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uKGNv
bnN0IFZlY3RvcjxpbnQ+JiBwcm90b2NvbFZlcnNpb25zLCBDRE1Qcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDJiBjZG0sIENETVNlc3Npb25DbGllbnQqIGNsaWVudCkKICAgICA6IENETVNlc3Npb25N
ZWRpYVNvdXJjZUFWRk9iakMoY2RtLCBjbGllbnQpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRo
aXMpCiAgICAgLCBtX2RhdGFQYXJzZXJPYnNlcnZlcihhZG9wdE5TKFtbV2ViQ0RNU2Vzc2lvbkFW
U3RyZWFtU2Vzc2lvbk9ic2VydmVyIGFsbG9jXSBpbml0V2l0aFBhcmVudDp0aGlzXSkpCiAgICAg
LCBtX3Byb3RvY29sVmVyc2lvbnMocHJvdG9jb2xWZXJzaW9ucykKICAgICAsIG1fbW9kZShOb3Jt
YWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggNjI1NWY0OTNmMmNkMmYxNTYwYmI2ZjE1OTk0
MmZmY2UzZjc3MDFlNy4uNDlhNzFhYWIyZjAzMzQ4MDdiZWJiMjUzNDY1ZTg5NmZhMDliZWRiZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtMTU4LDcgKzE1OCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlbW92ZVNlc3Npb24oQ0RNU2Vzc2lvbiYpOwogI2VuZGlmCiAKLSAgICBXZWFrUHRyPE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVy
biBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8TWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogcHJpdmF0ZToKICAgICAv
LyBlbmdpbmUgc3VwcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggNmEzZWRhMWE1MDFm
NTk5NWYxZTQ0ZWQyMTRkNWI1NjU0ZmJjMWQ0ZS4uODE0Y2ZiNjNiNzhhZDJkMzgzOTViY2QyNmUw
ZWRjMjg3NmQ1NTkxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC01NDEsNyArNTQxLDYg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjbGVhck1lZGlhQ2Fj
aGVGb3JPcmlnaW5zKGNvbnN0IFN0cmluZyYKIAogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyhNZWRpYVBsYXllciog
cGxheWVyKQogICAgIDogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uKHBsYXllcikKLSAg
ICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKICNpZiBQTEFURk9STShJT1MpIHx8IChQTEFURk9S
TShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiAgICAgLCBtX3ZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlcihWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXI6OmNyZWF0
ZSgpKQogICAgICwgbV92aWRlb0Z1bGxzY3JlZW5HcmF2aXR5KE1lZGlhUGxheWVyOjpWaWRlb0dy
YXZpdHlSZXNpemVBc3BlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCmluZGV4IDhkMzhlZDFk
YTY3ZTNiMDllMjgyMGY1ZDIzOWQyMzg3NGJiZDg1NTYuLjFiMWI5NzEzZjQwOWQ5OGI1MmI4ODMz
MWE0MmM1MTlkZjdhZTNkZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC0xMzAsNyAr
MTMwLDcgQEAgcHVibGljOgogICAgIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIG1lZGlhQ29u
dGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkgY29uc3Q7CiAgICAgYm9vbCBzaG91
bGRDaGVja0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0OwogCi0gICAgV2Vha1B0cjxNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dl
YWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFr
UHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiBwcml2YXRlOgogICAgIC8vIE1l
ZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4
IDVjNjcxMTk3ZTJiNzlkOTdlYWUyOWVhYmIyNzAwZTU3Y2Q1OWQyY2UuLmMzYjNjN2ZjOTQ5ZmE5
MjFhMmVlYzQ1OGQzZmQ0YTZiYTk1Mjg0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0K
QEAgLTEyNSw4ICsxMjUsNiBAQCBzdGF0aWMgdm9pZCBDTVRpbWViYXNlRWZmZWN0aXZlUmF0ZUNo
YW5nZWRDYWxsYmFjayhDTU5vdGlmaWNhdGlvbkNlbnRlclJlZiwgY29ucwogCiBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQyhNZWRpYVBsYXllciogcGxheWVyKQogICAgIDogbV9wbGF5ZXIocGxheWVyKQotICAg
ICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQotICAgICwgbV9zaXplQ2hhbmdlT2JzZXJ2ZXJXZWFr
UHRyRmFjdG9yeSh0aGlzKQogICAgICwgbV9zeW5jaHJvbml6ZXIoYWRvcHROUyhbYWxsb2NBVlNh
bXBsZUJ1ZmZlclJlbmRlclN5bmNocm9uaXplckluc3RhbmNlKCkgaW5pdF0pKQogICAgICwgbV9z
ZWVrVGltZXIoKnRoaXMsICZNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNl
ZWtJbnRlcm5hbCkKICAgICAsIG1fc2Vzc2lvbihudWxscHRyKQpAQCAtODkwLDcgKzg4OCw3IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjplZmZlY3RpdmVSYXRl
Q2hhbmdlZCgpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpz
aXplV2lsbENoYW5nZUF0VGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IEZsb2F0U2l6
ZSYgc2l6ZSkKIHsKLSAgICBhdXRvIHdlYWtUaGlzID0gbV9zaXplQ2hhbmdlT2JzZXJ2ZXJXZWFr
UHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1fc2l6ZUNo
YW5nZU9ic2VydmVyV2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiAgICAgTlNB
cnJheSogdGltZXMgPSBAW1tOU1ZhbHVlIHZhbHVlV2l0aENNVGltZTpQQUw6OnRvQ01UaW1lKHRp
bWUpXV07CiAgICAgUmV0YWluUHRyPGlkPiBvYnNlcnZlciA9IFttX3N5bmNocm9uaXplciBhZGRC
b3VuZGFyeVRpbWVPYnNlcnZlckZvclRpbWVzOnRpbWVzIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWlu
X3F1ZXVlKCkgdXNpbmdCbG9jazpbdGhpcywgd2Vha1RoaXMsIHNpemVdIHsKICAgICAgICAgaWYg
KCF3ZWFrVGhpcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKaW5kZXggZTE3MGZmOGQwYjdmNmYx
NjIxYjA4YTc5YTlmMThlMDlhMjAwOGJlYS4uYzE1MWM3MjUxZjI2ZTkwMWViYmQ1NTI5NWI4N2Qw
MWU1NWY1ZTViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKQEAgLTc0LDcgKzc0LDcgQEAg
cHVibGljOgogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUp
OwogCi0gICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM+IGNy
ZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsg
fQorICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDPiBjcmVh
dGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlz
KTsgfQogCiAgICAgdm9pZCBlbnN1cmVMYXllcnMoKTsKICAgICB2b2lkIGRlc3Ryb3lMYXllcnMo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQppbmRleCA5MDU1ZGJmOWJkOGMwMTE1YjY0NmQ5
YTNlOGVjOWE4YzZhNzg1YTI2Li4xY2Q0NzA5MTcwZWIxNjgwNWZlN2Q0MzczZWJlZTMzZjJlYjgx
MGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCkBAIC0xODgsNyArMTg4LDYgQEAgc3Rh
dGljIGNvbnN0IGRvdWJsZSByZW5kZXJlckxhdGVuY3kgPSAwLjAyOwogCiBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQyhNZWRpYVBsYXllciogcGxheWVyKQogICAgIDogbV9wbGF5ZXIocGxheWVyKQotICAgICwg
bV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogICAgICwgbV9zdGF0dXNDaGFuZ2VMaXN0ZW5lcihhZG9w
dE5TKFtbV2ViQVZTYW1wbGVCdWZmZXJTdGF0dXNDaGFuZ2VMaXN0ZW5lciBhbGxvY10gaW5pdFdp
dGhQYXJlbnQ6dGhpc10pKQogICAgICwgbV9jbG9jayhDbG9jazo6Y3JlYXRlKCkpCiAjaWYgUExB
VEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9O
X01PREUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDLmgKaW5kZXggZjFkMTZlZmJhYmVjNjU1Y2M5ZTNiYzMxZWMwY2VmMGNhNGNkZTM0
ZS4uYWM5ZGFmYjMxOTQ5MmY2OTkwMTg5N2Q5ZmM1NzYxNjI3NDYwNzY4NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCkBAIC0x
NTMsNyArMTUzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGZsdXNoKEFWU2FtcGxlQnVmZmVyQXVk
aW9SZW5kZXJlciAqKTsKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAotICAgIFdlYWtQ
dHI8U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBt
X3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8U291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKICAgICBWZWN0b3I8UmVmUHRyPFZpZGVvVHJhY2tQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDPj4gbV92aWRlb1RyYWNrczsKICAgICBWZWN0b3I8UmVmUHRy
PEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDPj4gbV9hdWRpb1RyYWNrczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
bW0KaW5kZXggY2I2YjM1MmE2ZDNhNTVjZDFmYTcyNWNhODBmMzIzODQ5YzZjYjk5Zi4uYWViOTQz
YTU3MDlhZTkxZjg0NzVmMjEwOGU5OTFjMWEwNTMwM2ExYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KQEAgLTQ3OSw5ICs0
NzksNyBAQCBSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+IFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpjcmVhdGUoTWVkaWFTb3VyYwogfQogCiBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoTWVkaWFTb3VyY2VQcml2YXRlQVZG
T2JqQyogcGFyZW50KQotICAgIDogbV93ZWFrRmFjdG9yeSh0aGlzKQotICAgICwgbV9hcHBlbmRX
ZWFrRmFjdG9yeSh0aGlzKQotICAgICwgbV9wYXJzZXIoYWRvcHROUyhbYWxsb2NBVlN0cmVhbURh
dGFQYXJzZXJJbnN0YW5jZSgpIGluaXRdKSkKKyAgICA6IG1fcGFyc2VyKGFkb3B0TlMoW2FsbG9j
QVZTdHJlYW1EYXRhUGFyc2VySW5zdGFuY2UoKSBpbml0XSkpCiAgICAgLCBtX2RlbGVnYXRlKGFk
b3B0TlMoW1tXZWJBVlN0cmVhbURhdGFQYXJzZXJMaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhQYXJz
ZXI6bV9wYXJzZXIuZ2V0KCkgcGFyZW50OmNyZWF0ZVdlYWtQdHIoKV0pKQogICAgICwgbV9lcnJv
ckxpc3RlbmVyKGFkb3B0TlMoW1tXZWJBVlNhbXBsZUJ1ZmZlckVycm9yTGlzdGVuZXIgYWxsb2Nd
IGluaXRXaXRoUGFyZW50OnRoaXNdKSkKICAgICAsIG1faXNBcHBlbmRpbmdHcm91cChhZG9wdE9T
T2JqZWN0KGRpc3BhdGNoX2dyb3VwX2NyZWF0ZSgpKSkKQEAgLTY3NSw3ICs2NzMsNyBAQCB2b2lk
IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjphcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciog
ZGF0YSwgdW5zaWduZWQgbGVuZwogICAgIExPRyhNZWRpYVNvdXJjZSwgIlNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjphcHBlbmQoJXApIC0gZGF0YTolcCwgbGVuZ3RoOiVkIiwgdGhpcywgZGF0
YSwgbGVuZ3RoKTsKIAogICAgIFJldGFpblB0cjxOU0RhdGE+IG5zRGF0YSA9IGFkb3B0TlMoW1tO
U0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6ZGF0YSBsZW5ndGg6bGVuZ3RoXSk7Ci0gICAgV2Vh
a1B0cjxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQz4gd2Vha1RoaXMgPSBtX2FwcGVuZFdlYWtG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBXZWFrUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDPiB3ZWFrVGhpcyA9IG1fYXBwZW5kV2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhp
cyk7CiAgICAgUmV0YWluUHRyPEFWU3RyZWFtRGF0YVBhcnNlcj4gcGFyc2VyID0gbV9wYXJzZXI7
CiAgICAgUmV0YWluUHRyPFdlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyPiBkZWxlZ2F0ZSA9
IG1fZGVsZWdhdGU7CiAKQEAgLTcxNSw3ICs3MTMsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDOjphYm9ydCgpCiAgICAgICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWduYWwobV9o
YXNTZXNzaW9uU2VtYXBob3JlLmdldCgpKTsKICAgICBkaXNwYXRjaF9ncm91cF93YWl0KG1faXNB
cHBlbmRpbmdHcm91cC5nZXQoKSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKICAgICBtX2FwcGVu
ZFdlYWtGYWN0b3J5LnJldm9rZUFsbCgpOwotICAgIG1fZGVsZWdhdGUuZ2V0KCkucGFyZW50ID0g
bV9hcHBlbmRXZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgbV9kZWxlZ2F0ZS5nZXQo
KS5wYXJlbnQgPSBtX2FwcGVuZFdlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOwogfQog
CiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpyZXNldFBhcnNlclN0YXRlKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNo
ZUNWLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hl
Q1YubW0KaW5kZXggZmU3OTE5Y2UyZDhlY2YwMjI1Mjg3MjBiMTYxMDViYzJlMmRkY2QyOC4uM2Rh
MDE2NGMxZTVjOTM1ZThlNGNjNDRhM2JkY2RkZWQ1ZmI1ZTVjZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YubW0KQEAgLTUw
LDcgKzUwLDYgQEAgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVDYWNoZUNWPiBUZXh0dXJlQ2FjaGVD
Vjo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXgKIFRleHR1cmVDYWNoZUNWOjpUZXh0
dXJlQ2FjaGVDVihHcmFwaGljc0NvbnRleHQzRCYgY29udGV4dCwgUmV0YWluUHRyPFRleHR1cmVD
YWNoZVR5cGU+JiYgY2FjaGUpCiAgICAgOiBtX2NvbnRleHQoY29udGV4dCkKICAgICAsIG1fY2Fj
aGUoY2FjaGUpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiB9CiAKQEAgLTczLDcg
KzcyLDcgQEAgUmV0YWluUHRyPFRleHR1cmVDYWNoZUNWOjpUZXh0dXJlVHlwZT4gVGV4dHVyZUNh
Y2hlQ1Y6OnRleHR1cmVGcm9tSW1hZ2UoQ1ZJbWFnZUIKICNlbmRpZgogICAgIFJldGFpblB0cjxU
ZXh0dXJlVHlwZT4gdmlkZW9UZXh0dXJlID0gYWRvcHRDRihiYXJlVmlkZW9UZXh0dXJlKTsKIAot
ICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAg
ICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsK
ICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbd2Vha1RoaXNd
IHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1v
bml0b3JNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYy5jcHAKaW5kZXggZTMxYTFhOWQ5MGQ1MjY3ODhlMzU3NmVkNWJk
ODY2OGUxODczNGRiMi4uNWEwMDJjOWE2N2U2NDlkZThkOWJkNWU5OGZjOTBhYjgxNTIwYjZhNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3BsYXlS
ZWZyZXNoTW9uaXRvck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAKQEAgLTM2LDcgKzM2LDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OkRpc3BsYXlSZWZy
ZXNoTW9uaXRvck1hYyhQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCiAgICAgOiBEaXNwbGF5
UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKQotICAgICwgbV93ZWFrRmFjdG9yeSh0aGlzKQogICAg
ICwgbV9kaXNwbGF5TGluayhudWxscHRyKQogewogfQpAQCAtOTIsOCArOTEsNyBAQCB2b2lkIERp
c3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6ZGlzcGxheUxpbmtGaXJlZCgpCiAKICAgICBzZXRJc1By
ZXZpb3VzRnJhbWVEb25lKGZhbHNlKTsKIAotICAgIC8vIEZJWE1FOiBJcyBpdCByZWFsbHkgb2th
eSB0byBjcmVhdGUgYSB3ZWFrUHRyIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQgYW5kIHRoZW4gdXNl
IGl0IG9uIHRoZSBtYWluIHRocmVhZD8KLSAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dl
YWtQdHIgPSBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKV0geworICAgIFJ1bkxvb3A6Om1h
aW4oKS5kaXNwYXRjaChbd2Vha1B0ciA9IG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhp
cyldIHsKICAgICAgICAgaWYgKGF1dG8qIG1vbml0b3IgPSB3ZWFrUHRyLmdldCgpKQogICAgICAg
ICAgICAgaGFuZGxlRGlzcGxheVJlZnJlc2hlZE5vdGlmaWNhdGlvbk9uTWFpblRocmVhZChtb25p
dG9yKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9S
ZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9S
ZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MuaAppbmRleCBmYzAyZWU1OWQ5YWNhNjk2MjU3YzVmNGYz
M2ZmOGNlMTcxNDZjZmExLi5iZTE1OTRlYmRiNGI3MGM3YzgzNWNjNTA4YjkxMGViODMxZmRhNDQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExp
c3RlbmVySU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1h
bmRMaXN0ZW5lcklPUy5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5S
ZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MoKTsKIAogcHJvdGVjdGVkOgotICAgIFdlYWtQdHI8UmVt
b3RlQ29tbWFuZExpc3RlbmVySU9TPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPFJlbW90ZUNvbW1hbmRMaXN0
ZW5lcklPUz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRl
V2Vha1B0cigqdGhpcyk7IH0KICAgICB2b2lkIHVwZGF0ZVN1cHBvcnRlZENvbW1hbmRzKCkgb3Zl
cnJpZGU7CiAKICAgICBXZWFrUHRyRmFjdG9yeTxSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1M+IG1f
d2Vha1B0ckZhY3Rvcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
UmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbQppbmRleCA0MWY5ZGI2ODFiM2ZmMWUzNzI2OGEy
ZDNmOTk1NWJkNWU3YWUzNmQ1Li5lNGE2OWM0YWNiZGE4NGI5ODM5MzYwZGU2ODU4NGNjNDU3OWM4
ODg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFu
ZExpc3RlbmVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9SZW1vdGVD
b21tYW5kTGlzdGVuZXJJT1MubW0KQEAgLTQ3LDcgKzQ3LDYgQEAgc3RkOjp1bmlxdWVfcHRyPFJl
bW90ZUNvbW1hbmRMaXN0ZW5lcj4gUmVtb3RlQ29tbWFuZExpc3RlbmVyOjpjcmVhdGUoUmVtb3Rl
Q29tbWEKIAogUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJJ
T1MoUmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50JiBjbGllbnQpCiAgICAgOiBSZW1vdGVDb21t
YW5kTGlzdGVuZXIoY2xpZW50KQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogICAg
IE1QUmVtb3RlQ29tbWFuZENlbnRlciAqY2VudGVyID0gW2dldE1QUmVtb3RlQ29tbWFuZENlbnRl
ckNsYXNzKCkgc2hhcmVkQ29tbWFuZENlbnRlcl07CiAgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0
ZVdlYWtQdHIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SZW1v
dGVDb21tYW5kTGlzdGVuZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SZW1v
dGVDb21tYW5kTGlzdGVuZXJNYWMuaAppbmRleCBkYjY5ZDc2NjJlZjc0YWViZDAzZTc4YWI4OWE4
MzM1ZjI1ZTgzMzFiLi5iNzgxZTZhZDRhMWMyZjg0ZTk0MTZjNWU0YjE2MzFkZGYzYWMyNTZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUmVtb3RlQ29tbWFuZExpc3Rl
bmVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRM
aXN0ZW5lck1hYy5oCkBAIC0zOSwxMSArMzksMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflJl
bW90ZUNvbW1hbmRMaXN0ZW5lck1hYygpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgV2Vha1B0cjxSZW1v
dGVDb21tYW5kTGlzdGVuZXJNYWM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8UmVtb3RlQ29tbWFuZExpc3Rl
bmVyTWFjPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVX
ZWFrUHRyKCp0aGlzKTsgfQogCiAgICAgdm9pZCB1cGRhdGVTdXBwb3J0ZWRDb21tYW5kcygpIG92
ZXJyaWRlOwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjPiBt
X3dlYWtQdHJGYWN0b3J5IHsgdGhpcyB9OworICAgIFdlYWtQdHJGYWN0b3J5PFJlbW90ZUNvbW1h
bmRMaXN0ZW5lck1hYz4gbV93ZWFrUHRyRmFjdG9yeTsKICAgICB2b2lkKiBtX2NvbW1hbmRIYW5k
bGVyIHsgbnVsbHB0ciB9OwogfTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCmluZGV4IGIyNGU2
NGUxMTVmNzc1N2UwMDFiN2RlODlhOWUzM2M2ODg3ZTJlYWYuLjcxMTlkYmM4NDMyOTExOTE0ZDRh
ODJiZWI0MTU1MzBkMGY0OGFlN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcApAQCAtNTksOCArNTks
NyBAQCBSZWY8TWVkaWFTdHJlYW1Qcml2YXRlPiBNZWRpYVN0cmVhbVByaXZhdGU6OmNyZWF0ZShj
b25zdCBWZWN0b3I8UmVmPFJlYWx0aW1lTWVkaQogfQogCiBNZWRpYVN0cmVhbVByaXZhdGU6Ok1l
ZGlhU3RyZWFtUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciYgdHJh
Y2tzLCBTdHJpbmcmJiBpZCkKLSAgICA6IG1fd2Vha1B0ckZhY3RvcnkodGhpcykKLSAgICAsIG1f
aWQoV1RGTW92ZShpZCkpCisgICAgOiBtX2lkKFdURk1vdmUoaWQpKQogewogICAgIEFTU0VSVCgh
bV9pZC5pc0VtcHR5KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCmluZGV4IDIxMmRmOTAzMTA4MzBhNTBl
YzAwMjA4MGIyN2RkMjEyNDQyNjFmMGEuLjlmMWFiNTJiNWM2ZGIyODk5ZGJmNmFjNzk5Nzg3ODkx
MDYyNDljMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCkBAIC0xMDcsNyArMTA3LDcgQEAgcHVibGljOgog
CiAgICAgRmxvYXRTaXplIGludHJpbnNpY1NpemUoKSBjb25zdDsKIAotICAgIFdlYWtQdHI8TWVk
aWFTdHJlYW1Qcml2YXRlPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9y
eS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3Jl
YXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhp
cyk7IH0KIAogICAgIHZvaWQgbW9uaXRvck9yaWVudGF0aW9uKE9yaWVudGF0aW9uTm90aWZpZXIm
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRleCAxYjc1MDI1MTc5YjEwOTFkMGFjODQ5N2Qx
MGYwMGZhOTdiOTIxNWQ0Li42YzAzNzYyYWVhY2RhZTEzY2YwYTFlOTE3MTIzYWZjZGUyNjExN2Iz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlLmNwcApAQCAtNDcsOCArNDcsNyBAQAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBSZWFsdGltZU1lZGlhU291cmNlOjpSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0
IFN0cmluZyYgaWQsIFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lKQotICAgIDogbV93ZWFr
UHRyRmFjdG9yeSh0aGlzKQotICAgICwgbV9pZChpZCkKKyAgICA6IG1faWQoaWQpCiAgICAgLCBt
X3R5cGUodHlwZSkKICAgICAsIG1fbmFtZShuYW1lKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4
IDFmMDg3ZjY4YjRlYzgzMzU5ZDAwNTg0MGFhZGJhYzQzNDA3OWY0YWIuLjg0NmZiNzI0ODdlMjdm
YTMzYTg2OTNlYjNjY2RlZGY1ZTJiYzM0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTI0MCw3
ICsyNDAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRp
YVNhbXBsZSYpOwogICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGlt
ZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biYsIHNpemVfdCk7CiAKLSAgICBXZWFrUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZVdl
YWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAg
IFdlYWtQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9pbnQuY3BwCmluZGV4IDM3NWNlN2RmZGJj
ZjYxYmUwODIzOTU0MjgwNjNmNjA3ZDg0MzEwOGUuLjBlOWI0MWU1YzExOTVjNmUzZWMxMzcwNzVl
YTRmZmE2Njg2YzdhYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja01lZGlhRW5kcG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja01lZGlhRW5kcG9pbnQuY3BwCkBAIC01Nyw3ICs1Nyw2IEBAIE1vY2tNZWRpYUVuZHBvaW50
OjpNb2NrTWVkaWFFbmRwb2ludChNZWRpYUVuZHBvaW50Q2xpZW50JiBjbGllbnQpCiAgICAgLCBt
X2ljZUNhbmRpZGF0ZVRpbWVyKCp0aGlzLCAmTW9ja01lZGlhRW5kcG9pbnQ6OmljZUNhbmRpZGF0
ZVRpbWVyRmlyZWQpCiAgICAgLCBtX2ljZVRyYW5zcG9ydFRpbWVyKCp0aGlzLCAmTW9ja01lZGlh
RW5kcG9pbnQ6OmljZVRyYW5zcG9ydFRpbWVyRmlyZWQpCiAgICAgLCBtX3VubXV0ZVRpbWVyKCp0
aGlzLCAmTW9ja01lZGlhRW5kcG9pbnQ6OnVubXV0ZVRpbWVyRmlyZWQpCi0gICAgLCBtX3dlYWtQ
dHJGYWN0b3J5KHRoaXMpCiB7CiB9CiAKQEAgLTczLDcgKzcyLDcgQEAgc3RkOjp1bmlxdWVfcHRy
PFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gTW9ja01lZGlhRW5kcG9pbnQ6OmNyZWF0ZURhdGFDaGFu
bmVsSGFuZGwKIAogdm9pZCBNb2NrTWVkaWFFbmRwb2ludDo6Z2VuZXJhdGVEdGxzSW5mbygpCiB7
Ci0gICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOwor
ICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMp
OwogCiAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXNdIHsKICAgICAgICAgaWYgKHdlYWtU
aGlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29s
dW1uU3Bhbm5lclBsYWNlaG9sZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlci5jcHAKaW5kZXggZWY3M2Q1N2FiNTVhMzZh
NzUxMDQwZTE0ZDA3MjZlNjMyZjUyYTcwZS4uOGZiMGQ0MDk4NGVmMDliMjk2MjRhYWE3MjlhMzBj
YzFkMTQ4MjQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11
bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIuY3BwCkBAIC00Nyw3ICs0
Nyw2IEBAIFJlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyOjpSZW5kZXJNdWx0aUNv
bHVtblNwYW5uZXJQbGFjZWhvbGRlcihSZW5kZXJNCiAgICAgOiBSZW5kZXJCb3goZmxvd1RocmVh
ZC0+ZG9jdW1lbnQoKSwgV1RGTW92ZShzdHlsZSksIFJlbmRlckJveE1vZGVsT2JqZWN0RmxhZykK
ICAgICAsIG1fc3Bhbm5lcigmc3Bhbm5lcikKICAgICAsIG1fZmxvd1RocmVhZChmbG93VGhyZWFk
KQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFj
ZWhvbGRlci5oCmluZGV4IDAzNDExZDk0NzEyY2NiMmJlOGQ4ZjQ3MTA4YzEwYTBhNGQzNjVhYjcu
LmIxNTAzOTAxMmMwNDQ3OGUwYzFhOGU4NTNiZTMwMjUyNWM1NDI0MTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5u
ZXJQbGFjZWhvbGRlci5oCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKIAogICAgIFJlbmRlckJv
eCogc3Bhbm5lcigpIGNvbnN0IHsgcmV0dXJuIG1fc3Bhbm5lcjsgfQogICAgIFJlbmRlck11bHRp
Q29sdW1uRmxvd1RocmVhZCogZmxvd1RocmVhZCgpIGNvbnN0IHsgcmV0dXJuIG1fZmxvd1RocmVh
ZDsgfQotICAgIFdlYWtQdHI8UmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXI+IGNy
ZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsg
fQorICAgIFdlYWtQdHI8UmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXI+IGNyZWF0
ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMp
OyB9CiAKIHByaXZhdGU6CiAgICAgUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIo
UmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkKiwgUmVuZGVyQm94JiBzcGFubmVyLCBSZW5kZXJT
dHlsZSYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCAyYWIx
ODg5NTdhOGVmMGQ5NzFkODM0Mzg1YTc2YWVlYTJmZmM1ZTY1Li40NzUwNjA4ZWZhZWFjNjI2ZDNm
NWRiZDI0MDFiY2E4NDRhZGVkOTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuY3BwCkBAIC0xMjEsNyArMTIxLDYgQEAgcHJpdmF0ZToKIFJlbmRlclZpZXc6OlJlbmRlclZp
ZXcoRG9jdW1lbnQmIGRvY3VtZW50LCBSZW5kZXJTdHlsZSYmIHN0eWxlKQogICAgIDogUmVuZGVy
QmxvY2tGbG93KGRvY3VtZW50LCBXVEZNb3ZlKHN0eWxlKSkKICAgICAsIG1fZnJhbWVWaWV3KCpk
b2N1bWVudC52aWV3KCkpCi0gICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCiAgICAgLCBtX2xhenlS
ZXBhaW50VGltZXIoKnRoaXMsICZSZW5kZXJWaWV3OjpsYXp5UmVwYWludFRpbWVyRmlyZWQpCiAj
aWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgLCBtX3NlbGVjdGlvblJlY3RHYXRoZXJl
cigqdGhpcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCmluZGV4IGFhNGY2MmI5
MTFiOWE0M2Q0ZTBjODJkNjljOTMwY2Q2NzNhMzRhYzIuLjMwMjIzMDc0NmIxZDdmM2RiMzc4OWZk
OGJkNzIwY2RmMjZkNWIzZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaApA
QCAtMjMzLDcgKzIzMyw3IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBtX3dhc0FjY3VtdWxhdGlu
Z1JlcGFpbnRSZWdpb247CiAgICAgfTsKIAotICAgIFdlYWtQdHI8UmVuZGVyVmlldz4gY3JlYXRl
V2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAg
V2Vha1B0cjxSZW5kZXJWaWV3PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9y
eS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiAgICAgdm9pZCBzY2hlZHVsZUxhenlSZXBhaW50
KFJlbmRlckJveCYpOwogICAgIHZvaWQgdW5zY2hlZHVsZUxhenlSZXBhaW50KFJlbmRlckJveCYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAppbmRleCA0Y2U3MmNl
NmRhYTkxMjc3NjRkOWY4OWQ0MGQ0NDQwNmJhYmY4NTY2Li40YjRkNDQ0NDMyYWFmMWYwNWE0MGE5
ZjA2N2Q5ZTQyOTBhZjg2NDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyV2lkZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lk
Z2V0LmNwcApAQCAtODEsNyArODEsNiBAQCBzdGF0aWMgdm9pZCBtb3ZlV2lkZ2V0VG9QYXJlbnRT
b29uKFdpZGdldCYgY2hpbGQsIEZyYW1lVmlldyogcGFyZW50KQogCiBSZW5kZXJXaWRnZXQ6OlJl
bmRlcldpZGdldChIVE1MRnJhbWVPd25lckVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlclN0eWxlJiYg
c3R5bGUpCiAgICAgOiBSZW5kZXJSZXBsYWNlZChlbGVtZW50LCBXVEZNb3ZlKHN0eWxlKSkKLSAg
ICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKICAgICBzZXRJbmxpbmUoZmFsc2UpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oCmluZGV4IGI3YjdjN2IxMmUxODBk
ZTE4N2Q1YWU3YjMyNzU0YmRhMmIxYTgwMTMuLmMxMmY1Nzk2NzQ3MjQ5OTU3MjMxZGFiZjA2ZGJi
ZjRlMjc0OGJjMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJX
aWRnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKQEAg
LTcxLDcgKzcxLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCByZXF1aXJlc0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmcoKSBjb25zdDsKIAotICAgIFdlYWtQdHI8UmVuZGVyV2lkZ2V0PiBjcmVhdGVXZWFr
UHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBX
ZWFrUHRyPFJlbmRlcldpZGdldD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZh
Y3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogICAgIHZvaWQgcmVmKCkgeyArK21fcmVm
Q291bnQ7IH0KICAgICB2b2lkIGRlcmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9v
dElubGluZUJveC5jcHAKaW5kZXggMzgxODlhNzQxNGE5NTJjNTAxNDcwZGZjMjljMjVmNTdmZmIz
MDNjNC4uNjMwNjE5MmQzOGIzZDE1NWNmMDMxNjEwZWM0YzAzNTcxNTZlOGRmMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcApAQCAtNjEsOCArNjEsNiBAQCBS
b290SW5saW5lQm94OjpSb290SW5saW5lQm94KFJlbmRlckJsb2NrRmxvdyYgYmxvY2spCiAgICAg
OiBJbmxpbmVGbG93Qm94KGJsb2NrKQogICAgICwgbV9saW5lQnJlYWtQb3MoMCkKICAgICAsIG1f
bGluZUJyZWFrT2JqKG51bGxwdHIpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0KIHsK
ICAgICBzZXRJc0hvcml6b250YWwoYmxvY2suaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guaAppbmRleCBjMTk1OGYzODc5
ZmUxMjIwOWNjMjA2MjZiOWE3YjFmNzIwY2YzNTc5Li4xMTIyN2M2NTU1YzAyYTJjMzA0YWI0YWMz
MmZlZmU3NzRmOTc3ZGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9v
dElubGluZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94
LmgKQEAgLTM5LDcgKzM5LDcgQEAgY2xhc3MgUm9vdElubGluZUJveCA6IHB1YmxpYyBJbmxpbmVG
bG93Qm94IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSb290SW5saW5lQm94KFJlbmRlckJsb2Nr
RmxvdyYpOwogICAgIHZpcnR1YWwgflJvb3RJbmxpbmVCb3goKTsKLSAgICBXZWFrUHRyPFJvb3RJ
bmxpbmVCb3g+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0
ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8Um9vdElubGluZUJveD4gY3JlYXRlV2Vha1B0cigp
IHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogICAg
IFJlbmRlckJsb2NrRmxvdyYgYmxvY2tGbG93KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0aEVsZW1lbnQuY3BwCmluZGV4IGUyMjMwZjQxMmRkODEzNWJmMjU3NjE1YmViOGVlNDg0Nzdm
ZGUwNGUuLjQwNDIzMTdjYzYxZmRhNzk1NGMwZjE0NGNhM2Q2MzgxZWYzYzk5NmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcApAQCAtODEsNyArODEsNiBAQCBFTkRfUkVHSVNU
RVJfQU5JTUFURURfUFJPUEVSVElFUwogaW5saW5lIFNWR1BhdGhFbGVtZW50OjpTVkdQYXRoRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAg
ICAgOiBTVkdHcmFwaGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX3BhdGhT
ZWdMaXN0KFBhdGhTZWdVbmFsdGVyZWRSb2xlKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlz
KQogICAgICwgbV9pc0FuaW1WYWxPYnNlcnZlZChmYWxzZSkKIHsKICAgICBBU1NFUlQoaGFzVGFn
TmFtZShTVkdOYW1lczo6cGF0aFRhZykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaApp
bmRleCAzZjQ3MTA1YjRkMGNiMzNlY2QwZWIwYWVmY2IxMmYzYzM3Zjk1ZDM5Li40ODI0NzgyZmMz
ZTg3Y2NkOWM2Yjg0ZjVkZjdiMmU1YWY0M2FhNzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVs
ZW1lbnQuaApAQCAtOTcsNyArOTcsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzQW5pbVZhbE9i
c2VydmVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0FuaW1WYWxPYnNlcnZlZDsgfQogCi0gICAgV2Vh
a1B0cjxTVkdQYXRoRWxlbWVudD4gY3JlYXRlV2Vha1B0cigpIGNvbnN0IHsgcmV0dXJuIG1fd2Vh
a1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxTVkdQYXRoRWxlbWVu
dD4gY3JlYXRlV2Vha1B0cigpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRl
V2Vha1B0cigqY29uc3RfY2FzdDxTVkdQYXRoRWxlbWVudCo+KHRoaXMpKTsgfQogCiAgICAgdm9p
ZCBhbmltYXRlZFByb3BlcnR5V2lsbEJlRGVsZXRlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmgKaW5kZXggMDE4ODAzMWNlMzhhYzFl
ZjQyZDdmODYxNWQ3NGZjOGZmZjg4YjExZi4uZTBiZjBkMDgyN2U3M2Y3ZmM4ZmZkMjA5MzA5ZGYw
MWUzYzI5OWExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
TWF0cml4VGVhck9mZi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01h
dHJpeFRlYXJPZmYuaApAQCAtMzAsNyArMzAsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBB
U1NFUlRfVU5VU0VEKHZhbHVlLCAmcGFyZW50LnByb3BlcnR5UmVmZXJlbmNlKCkuc3ZnTWF0cml4
KCkgPT0gJnZhbHVlKTsKICAgICAgICAgUmVmPFNWR01hdHJpeFRlYXJPZmY+IHJlc3VsdCA9IGFk
b3B0UmVmKCpuZXcgU1ZHTWF0cml4VGVhck9mZihwYXJlbnQpKTsKLSAgICAgICAgcGFyZW50LmFk
ZENoaWxkKHJlc3VsdC0+bV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCkpOworICAgICAgICBw
YXJlbnQuYWRkQ2hpbGQocmVzdWx0LT5tX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIocmVzdWx0
KSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCkBAIC00OCw3ICs0OCw2IEBAIHBy
aXZhdGU6CiAgICAgU1ZHTWF0cml4VGVhck9mZihTVkdUcmFuc2Zvcm0mIHBhcmVudCkKICAgICAg
ICAgOiBTVkdNYXRyaXgobnVsbHB0cikKICAgICAgICAgLCBtX3BhcmVudCgmcGFyZW50KQotICAg
ICAgICAsIG1fd2Vha0ZhY3RvcnkodGhpcykKICAgICB7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3BwCmluZGV4IGExYTc5OGQxNzkzMTI0MmI1ZjZlMDdl
Nzk1Nzg5MDk0OThiODNhYzQuLmIyZmM2YzE3OThjYmRhMmE2MmY0MTk2N2U1MjRlYTY3ZWE4NThl
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3BwCkBAIC0zOCw3
ICszOCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTW9ja0NETUZhY3Rvcnk6Ok1vY2tDRE1G
YWN0b3J5KCkKICAgICA6IG1fc3VwcG9ydGVkU2Vzc2lvblR5cGVzKHsgTWVkaWFLZXlTZXNzaW9u
VHlwZTo6VGVtcG9yYXJ5LCBNZWRpYUtleVNlc3Npb25UeXBlOjpQZXJzaXN0ZW50VXNhZ2VSZWNv
cmQsIE1lZGlhS2V5U2Vzc2lvblR5cGU6OlBlcnNpc3RlbnRMaWNlbnNlIH0pCi0gICAgLCBtX3dl
YWtQdHJGYWN0b3J5KHRoaXMpCiB7CiAgICAgQ0RNRmFjdG9yeTo6cmVnaXN0ZXJGYWN0b3J5KCp0
aGlzKTsKIH0KQEAgLTk4LDEyICs5NywxMSBAQCB2b2lkIE1vY2tDRE1GYWN0b3J5OjpzZXRTdXBw
b3J0ZWREYXRhVHlwZXMoVmVjdG9yPFN0cmluZz4mJiB0eXBlcykKIAogc3RkOjp1bmlxdWVfcHRy
PENETVByaXZhdGU+IE1vY2tDRE1GYWN0b3J5OjpjcmVhdGVDRE0oY29uc3QgU3RyaW5nJikKIHsK
LSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNb2NrQ0RNPihtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TW9ja0NETT4obV93
ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSk7CiB9CiAKIE1vY2tDRE06Ok1vY2tD
RE0oV2Vha1B0cjxNb2NrQ0RNRmFjdG9yeT4gZmFjdG9yeSkKICAgICA6IG1fZmFjdG9yeShXVEZN
b3ZlKGZhY3RvcnkpKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogfQogCkBAIC0x
NjcsNyArMTY1LDcgQEAgUmVmUHRyPENETUluc3RhbmNlPiBNb2NrQ0RNOjpjcmVhdGVJbnN0YW5j
ZSgpCiB7CiAgICAgaWYgKG1fZmFjdG9yeSAmJiAhbV9mYWN0b3J5LT5jYW5DcmVhdGVJbnN0YW5j
ZXMoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBN
b2NrQ0RNSW5zdGFuY2UobV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCkpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IE1vY2tDRE1JbnN0YW5jZShtX3dlYWtQdHJGYWN0b3J5LmNyZWF0
ZVdlYWtQdHIoKnRoaXMpKSk7CiB9CiAKIHZvaWQgTW9ja0NETTo6bG9hZEFuZEluaXRpYWxpemUo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVu
dENvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkv
V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDEwZTE0ZjcwZWQ2N2YxZGNiYWI5
MTc3Y2NhM2RjMWM1NzcyNDliMzcuLjk2MWJiZDM3YzM3ZmI2MDJlNTg1ZDYzMWIyNDRmZWE4Y2Iw
ZDliYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxlUGF5L1dlYlBh
eW1lbnRDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
cHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTQwLDcgKzQwLDYgQEAg
c3RhdGljIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5KiBhY3RpdmVQYXltZW50Q29vcmRpbmF0
b3JQcm94eTsKIAogV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OldlYlBheW1lbnRDb29yZGlu
YXRvclByb3h5KFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5KQogICAgIDogbV93ZWJQYWdlUHJv
eHkod2ViUGFnZVByb3h5KQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogICAgICwgbV9z
dGF0ZShTdGF0ZTo6SWRsZSkKICAgICAsIG1fbWVyY2hhbnRWYWxpZGF0aW9uU3RhdGUoTWVyY2hh
bnRWYWxpZGF0aW9uU3RhdGU6OklkbGUpCiB7CkBAIC02NSw3ICs2NCw3IEBAIHZvaWQgV2ViUGF5
bWVudENvb3JkaW5hdG9yUHJveHk6OmNhbk1ha2VQYXltZW50cyhib29sJiByZXBseSkKIAogdm9p
ZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNh
cmQoY29uc3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG9tYWlu
TmFtZSwgdWludDY0X3QgcmVxdWVzdElEKQogewotICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQ
dHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsKICAgICBwbGF0Zm9ybUNhbk1ha2VQYXltZW50
c1dpdGhBY3RpdmVDYXJkKG1lcmNoYW50SWRlbnRpZmllciwgZG9tYWluTmFtZSwgW3dlYWtUaGlz
LCByZXF1ZXN0SURdKGJvb2wgY2FuTWFrZVBheW1lbnRzKSB7CiAgICAgICAgIGF1dG8gcGF5bWVu
dENvb3JkaW5hdG9yUHJveHkgPSB3ZWFrVGhpcy5nZXQoKTsKICAgICAgICAgaWYgKCFwYXltZW50
Q29vcmRpbmF0b3JQcm94eSkKQEAgLTc3LDcgKzc2LDcgQEAgdm9pZCBXZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eTo6Y2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQoY29uc3QgU3RyaW5nJiBt
ZXIKIAogdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6b3BlblBheW1lbnRTZXR1cChj
b25zdCBTdHJpbmcmIG1lcmNoYW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1l
LCB1aW50NjRfdCByZXF1ZXN0SUQpCiB7Ci0gICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZh
Y3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0
b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOwogICAgIHBsYXRmb3JtT3BlblBheW1lbnRTZXR1cCht
ZXJjaGFudElkZW50aWZpZXIsIGRvbWFpbk5hbWUsIFt3ZWFrVGhpcywgcmVxdWVzdElEXShib29s
IHJlc3VsdCkgewogICAgICAgICBhdXRvIHBheW1lbnRDb29yZGluYXRvclByb3h5ID0gd2Vha1Ro
aXMuZ2V0KCk7CiAgICAgICAgIGlmICghcGF5bWVudENvb3JkaW5hdG9yUHJveHkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9tYWMvV2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9tYWMv
V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlNYWMubW0KaW5kZXggM2U1MDY5YTFkNTQ1MGM5MWRl
MTk3OWI1YzdkYzE0OTBlM2UxNjliYS4uYTEyZWM0NjczNDljYzFhMDZjOGFhMmM2ZGNlZjFlNWJl
MjZlNmNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkvbWFj
L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FwcGxlUGF5L21hYy9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eU1hYy5tbQpAQCAt
NDYsNyArNDYsNyBAQCB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybVNo
b3dQYXltZW50VUkoY29uc3QgV2ViQ29yZTo6VVJMJiBvcmlnaQogICAgIGF1dG8gcGF5bWVudFJl
cXVlc3QgPSB0b1BLUGF5bWVudFJlcXVlc3QobV93ZWJQYWdlUHJveHksIG9yaWdpbmF0aW5nVVJM
LCBsaW5rSWNvblVSTFN0cmluZ3MsIHJlcXVlc3QpOwogCiAgICAgYXV0byBzaG93UGF5bWVudFVJ
UmVxdWVzdFNlZWQgPSBtX3Nob3dQYXltZW50VUlSZXF1ZXN0U2VlZDsKLSAgICBhdXRvIHdlYWtU
aGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgYXV0byB3ZWFrVGhp
cyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiAgICAgW2dldFBLUGF5
bWVudEF1dGhvcml6YXRpb25WaWV3Q29udHJvbGxlckNsYXNzKCkgcmVxdWVzdFZpZXdDb250cm9s
bGVyV2l0aFBheW1lbnRSZXF1ZXN0OnBheW1lbnRSZXF1ZXN0LmdldCgpIGNvbXBsZXRpb246Qmxv
Y2tQdHI8dm9pZCAoUEtQYXltZW50QXV0aG9yaXphdGlvblZpZXdDb250cm9sbGVyICosIE5TRXJy
b3IgKik+Ojpmcm9tQ2FsbGFibGUoW3BheW1lbnRSZXF1ZXN0LCBzaG93UGF5bWVudFVJUmVxdWVz
dFNlZWQsIHdlYWtUaGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXShQS1BheW1lbnRBdXRob3JpemF0aW9uVmlld0NvbnRyb2xsZXIgKnZpZXdDb250cm9s
bGVyLCBOU0Vycm9yICplcnJvcikgewogICAgICAgICBhdXRvIHBheW1lbnRDb29yZGluYXRvclBy
b3h5ID0gd2Vha1RoaXMuZ2V0KCk7CiAgICAgICAgIGlmICghcGF5bWVudENvb3JkaW5hdG9yUHJv
eHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsaWNhdGlvblN0YXRl
VHJhY2tlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxpY2F0aW9uU3RhdGVUcmFj
a2VyLm1tCmluZGV4IDZiMjkzOWFkM2MwZTA2YjVkZDUyMWNlN2E4ODYyZDJiZGI3ZTg1ODcuLmM2
NTIzYTM4YWQ4NjNmOGZiYzUyZTRkMTgyZTBlODdhMGM3Nzk4MzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxpY2F0aW9uU3RhdGVUcmFja2VyLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxpY2F0aW9uU3RhdGVUcmFja2VyLm1tCkBAIC03OSw3ICs3
OSw2IEBAIEFwcGxpY2F0aW9uU3RhdGVUcmFja2VyOjpBcHBsaWNhdGlvblN0YXRlVHJhY2tlcihV
SVZpZXcgKnZpZXcsIFNFTCBkaWRFbnRlckJhY2tnCiAgICAgLCBtX2RpZEZpbmlzaFNuYXBzaG90
dGluZ0FmdGVyRW50ZXJpbmdCYWNrZ3JvdW5kU2VsZWN0b3IoZGlkRmluaXNoU25hcHNob3R0aW5n
QWZ0ZXJFbnRlcmluZ0JhY2tncm91bmRTZWxlY3RvcikKICAgICAsIG1fd2lsbEVudGVyRm9yZWdy
b3VuZFNlbGVjdG9yKHdpbGxFbnRlckZvcmVncm91bmRTZWxlY3RvcikKICAgICAsIG1faXNJbkJh
Y2tncm91bmQodHJ1ZSkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKICAgICAsIG1fZGlk
RW50ZXJCYWNrZ3JvdW5kT2JzZXJ2ZXIobnVsbHB0cikKICAgICAsIG1fZGlkQ3JlYXRlV2luZG93
Q29udGV4dE9ic2VydmVyKG51bGxwdHIpCiAgICAgLCBtX2RpZEZpbmlzaFNuYXBzaG90dGluZ0Fm
dGVyRW50ZXJpbmdCYWNrZ3JvdW5kT2JzZXJ2ZXIobnVsbHB0cikKQEAgLTk0LDcgKzkzLDcgQEAg
QXBwbGljYXRpb25TdGF0ZVRyYWNrZXI6OkFwcGxpY2F0aW9uU3RhdGVUcmFja2VyKFVJVmlldyAq
dmlldywgU0VMIGRpZEVudGVyQmFja2cKICAgICBBU1NFUlQod2luZG93KTsKIAogICAgIE5TTm90
aWZpY2F0aW9uQ2VudGVyICpub3RpZmljYXRpb25DZW50ZXIgPSBbTlNOb3RpZmljYXRpb25DZW50
ZXIgZGVmYXVsdENlbnRlcl07Ci0gICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigpOworICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKnRoaXMpOwogICAgIG1fZGlkQ3JlYXRlV2luZG93Q29udGV4dE9ic2VydmVy
ID0gW25vdGlmaWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlckZvck5hbWU6QCJfVUlXaW5kb3dEaWRD
cmVhdGVXaW5kb3dDb250ZXh0Tm90aWZpY2F0aW9uIiBvYmplY3Q6d2luZG93IHF1ZXVlOm5pbCB1
c2luZ0Jsb2NrOlt3ZWFrVGhpc10oTlNOb3RpZmljYXRpb24gKikgewogICAgICAgICBhdXRvIGFw
cGxpY2F0aW9uU3RhdGVUcmFja2VyID0gd2Vha1RoaXMuZ2V0KCk7CiAgICAgICAgIGlmICghYXBw
bGljYXRpb25TdGF0ZVRyYWNrZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwuaAppbmRleCBiNDM5N2M2NmIzYWYwYjhjMzhiOTkxNzQ2OGQ5ODgyYzI5NjlhM2Vm
Li40MTZkY2MwZTZlOTQ3ODczYWFhZGVlOWJhMTA4MzJhYmMxZjA5MTk0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTU3NCw3ICs1NzQsNyBAQCBw
cml2YXRlOgogI2VuZGlmIC8vIEVOQUJMRShXRUJfUExBWUJBQ0tfQ09OVFJPTFNfTUFOQUdFUikK
ICNlbmRpZiAvLyBIQVZFKFRPVUNIX0JBUikKIAotICAgIFdlYWtQdHI8V2ViVmlld0ltcGw+IGNy
ZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsg
fQorICAgIFdlYWtQdHI8V2ViVmlld0ltcGw+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dl
YWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKICAgICBib29sIHN1cHBvcnRz
QXJiaXRyYXJ5TGF5b3V0TW9kZXMoKSBjb25zdDsKICAgICBmbG9hdCBpbnRyaW5zaWNEZXZpY2VT
Y2FsZUZhY3RvcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbQppbmRleCAwMTU1Y2IxOGIxNTE0MzlhMGYxM2IyM2FhZGFhZDYxNzcxYzZlNTkw
Li45Mzg0NmE4ZDU4Y2JmZGNiM2QzMmI2MWZlYzRlYjdkMWI5NWVkNWRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtMTI3MSw3ICsxMjcxLDYg
QEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0ZT4g
KnZpZXcsIFdLV2ViVmlldyAqb3V0ZXJXZWIKICAgICA6IG1fdmlldyh2aWV3KQogICAgICwgbV9w
YWdlQ2xpZW50KHN0ZDo6bWFrZV91bmlxdWU8UGFnZUNsaWVudEltcGw+KHZpZXcsIG91dGVyV2Vi
VmlldykpCiAgICAgLCBtX3BhZ2UocHJvY2Vzc1Bvb2wuY3JlYXRlV2ViUGFnZSgqbV9wYWdlQ2xp
ZW50LCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKSkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhp
cykKICAgICAsIG1fbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKG1fcGFnZS0+cHJl
ZmVyZW5jZXMoKS5wbHVnaW5zRW5hYmxlZCgpKQogICAgICwgbV9pbnRyaW5zaWNDb250ZW50U2l6
ZShDR1NpemVNYWtlKE5TVmlld05vSW5zdHJpbnNpY01ldHJpYywgTlNWaWV3Tm9JbnN0cmluc2lj
TWV0cmljKSkKICAgICAsIG1fbGF5b3V0U3RyYXRlZ3koW1dLVmlld0xheW91dFN0cmF0ZWd5IGxh
eW91dFN0cmF0ZWd5V2l0aFBhZ2U6bV9wYWdlIHZpZXc6dmlldyB2aWV3SW1wbDoqdGhpcyBtb2Rl
OmtXS0xheW91dE1vZGVWaWV3U2l6ZV0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmNwcAppbmRleCBmMmY3MmFjYzNmMjRiMjk5ZmIw
Y2U4YjdmODkyY2FkZGJhMTcwYTkwLi4wZmZhOTJkYzhkZDlmMDNiMzI2YWM1ZTEyYmY4ZDgxYmRk
ZGUxMTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9j
ZXNzTGF1bmNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1By
b2Nlc3NMYXVuY2hlci5jcHAKQEAgLTMzLDcgKzMzLDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAK
IFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc0xhdW5jaGVyKENsaWVudCogY2xpZW50LCBjb25zdCBM
YXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25zKQogICAgIDogbV9jbGllbnQoY2xpZW50KQotICAg
ICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogICAgICwgbV9sYXVuY2hPcHRpb25zKGxhdW5jaE9w
dGlvbnMpCiAgICAgLCBtX3Byb2Nlc3NJZGVudGlmaWVyKDApCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5t
bQppbmRleCBhMTY2MGI0ZWM5NGFlZjhhYTNmODQ3YjMzMTA4MWFiNDgxM2YwNGIyLi42NDg5ZjVi
MzBjODg2MzJiZDJiNGE4YjRhMWI2NGM4MmY5NGMxOGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0K
QEAgLTE4Niw3ICsxODYsNyBAQCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcygp
CiAKICAgICB4cGNfZGljdGlvbmFyeV9zZXRfdmFsdWUoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwg
ImV4dHJhLWluaXRpYWxpemF0aW9uLWRhdGEiLCBleHRyYUluaXRpYWxpemF0aW9uRGF0YS5nZXQo
KSk7CiAKLSAgICBhdXRvIHdlYWtQcm9jZXNzTGF1bmNoZXIgPSBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKTsKKyAgICBhdXRvIHdlYWtQcm9jZXNzTGF1bmNoZXIgPSBtX3dlYWtQdHJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOwogICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVu
dF9oYW5kbGVyKG1feHBjQ29ubmVjdGlvbi5nZXQoKSwgW3dlYWtQcm9jZXNzTGF1bmNoZXIsIGxp
c3RlbmluZ1BvcnRdKHhwY19vYmplY3RfdCBldmVudCkgewogICAgICAgICBBU1NFUlQoeHBjX2dl
dF90eXBlKGV2ZW50KSA9PSBYUENfVFlQRV9FUlJPUik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1Byb2Nlc3NBc3NlcnRpb24uaAppbmRleCAyMDMyMDAwNjU1NzZmNTgwN2YyY2UxNjE3YWVj
OWJkNDllOWYxNzg1Li40ZDRkYzY2ZjI1NWVhNmZjYzQwY2UzYTNjYmIzNWU0ZDgxMjJmOGNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oCkBAIC02OSw3ICs2
OSw3IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1MpICYmICFQTEFU
Rk9STShJT1NfU0lNVUxBVE9SKQotICAgIFdlYWtQdHI8UHJvY2Vzc0Fzc2VydGlvbj4gY3JlYXRl
V2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAg
V2Vha1B0cjxQcm9jZXNzQXNzZXJ0aW9uPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFr
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogICAgIHZvaWQgbWFya0FzSW52YWxpZGF0
ZWQoKTsKIAogICAgIFJldGFpblB0cjxCS1NQcm9jZXNzQXNzZXJ0aW9uPiBtX2Fzc2VydGlvbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDEyNjU3ODFkOTM1
MDcxNzdjMzkwOTJmMzkxYzRkNzBlMjU3OWVhZTMuLmYzYjUyZmU1ZGU1ZTBjNTMyZWNiNjYzYWYy
ZjcxYzliNzFmYzU0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cApAQCAtMzY1LDcgKzM2NSw2IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGll
bnQmIHBhZ2VDbGllbnQsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgdWluCiAjZW5kaWYKICAg
ICAsIG1fcGFnZUxvYWRTdGF0ZSgqdGhpcykKICAgICAsIG1fY29uZmlndXJhdGlvblByZWZlcmVu
Y2VWYWx1ZXMobV9jb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlVmFsdWVzKCkpCi0gICAgLCBtX3dl
YWtQdHJGYWN0b3J5KHRoaXMpCiB7CiAgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmFk
ZE9ic2VydmVyKG1fdmlzaXRlZExpbmtTdG9yZSk7CiAgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVU
cmFja2VyLmFkZE9ic2VydmVyKG1fd2Vic2l0ZURhdGFTdG9yZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGI1NjRjZGMzNTgzM2ZlNzc1NmMxZWVmM2I3MGRlZDdl
ODAxZTA2MmYuLjcxNTI4MjI0MDhmYzk0Nzg0ZGQzZjYzNjZiNjU0MWEwNGFiOWZlMzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMTkwLDcgKzExOTAsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBnYW1lcGFkQWN0aXZpdHkoY29uc3QgVmVjdG9yPEdhbWVwYWREYXRh
PiYsIGJvb2wgc2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJsZSk7CiAjZW5kaWYKICAgICAgICAgCi0g
ICAgV2Vha1B0cjxXZWJQYWdlUHJveHk+IGNyZWF0ZVdlYWtQdHIoKSBjb25zdCB7IHJldHVybiBt
X3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8V2ViUGFnZVBy
b3h5PiBjcmVhdGVXZWFrUHRyKCkgY29uc3QgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVh
dGVXZWFrUHRyKCpjb25zdF9jYXN0PFdlYlBhZ2VQcm94eSo+KHRoaXMpKTsgfQogCiAgICAgdm9p
ZCBpc0xvYWRpbmdDaGFuZ2VkKCkgeyBhY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OkFj
dGl2aXR5U3RhdGU6OklzTG9hZGluZyk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQppbmRleCBiNTI5NjA3NmY0M2U3NDg5NDIy
MGE0NDYzZjZkYTg5ZDczNDhiYjk2Li44MTBjNmYzYTgzODMxNzMxYWQ5OWM0YWE1YTIzOWQzOWZk
OGQ5YjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fz
c2VydGlvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fz
c2VydGlvbklPUy5tbQpAQCAtMTYxLDggKzE2MSw3IEBAIHN0YXRpYyBCS1NQcm9jZXNzQXNzZXJ0
aW9uRmxhZ3MgZmxhZ3NGb3JTdGF0ZShBc3NlcnRpb25TdGF0ZSBhc3NlcnRpb25TdGF0ZSkKIH0K
IAogUHJvY2Vzc0Fzc2VydGlvbjo6UHJvY2Vzc0Fzc2VydGlvbihwaWRfdCBwaWQsIEFzc2VydGlv
blN0YXRlIGFzc2VydGlvblN0YXRlLCBGdW5jdGlvbjx2b2lkKCk+JiYgaW52YWxpZGF0aW9uQ2Fs
bGJhY2spCi0gICAgOiBtX3dlYWtGYWN0b3J5KHRoaXMpCi0gICAgLCBtX2ludmFsaWRhdGlvbkNh
bGxiYWNrKFdURk1vdmUoaW52YWxpZGF0aW9uQ2FsbGJhY2spKQorICAgIDogbV9pbnZhbGlkYXRp
b25DYWxsYmFjayhXVEZNb3ZlKGludmFsaWRhdGlvbkNhbGxiYWNrKSkKICAgICAsIG1fYXNzZXJ0
aW9uU3RhdGUoYXNzZXJ0aW9uU3RhdGUpCiB7CiAgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdl
YWtQdHIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhLmgKaW5kZXggNDI3NWFlMzExNWE2ZDI1MTg0YmMyYmRkZDgyZDA0YTU1YTk5OTdiZi4u
ZTU4ZGQ2MTMwOGRjNzdkYzI2OThkYjY5Yjc3NGM3MTM1NDI1Mzc5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKQEAgLTU0LDcgKzU0
LDcgQEAgcHVibGljOgogICAgIHVpbnQ2NF90IG5leHRUcmFuc2FjdGlvbklEKCkgY29uc3QgeyBy
ZXR1cm4gbV9jdXJyZW50VHJhbnNhY3Rpb25JRCArIDE7IH0KICAgICB1aW50NjRfdCBsYXN0Q29t
bWl0dGVkVHJhbnNhY3Rpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFRyYW5zYWN0aW9u
SUQ7IH0KIAotICAgIFdlYWtQdHI8UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE+IGNyZWF0ZVdl
YWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAg
IFdlYWtQdHI8UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE+IGNyZWF0ZVdlYWtQdHIoKSB7IHJl
dHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKIHByaXZhdGU6
CiAgICAgLy8gRHJhd2luZ0FyZWEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYS5tbQppbmRleCBlMGZlNGMxM2FmYzdmNDFiNDQ3NTdiNWJmODAy
ZGFhMTdhYzIyMWIyLi45ZWJhOWE5ZDc4ZDVkM2FkNmNmNGEyY2Y4NmQ4YTlkYThjNDEwZjhlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
Lm1tCkBAIC02MCw3ICs2MCw2IEBAIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYShXZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBXCiAgICAgLCBtX3Jl
bW90ZUxheWVyVHJlZUNvbnRleHQoc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVMYXllclRyZWVDb250
ZXh0Pih3ZWJQYWdlKSkKICAgICAsIG1fcm9vdExheWVyKEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShn
cmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcykpCiAgICAgLCBtX2xheWVyRmx1c2hUaW1lcigq
dGhpcywgJlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmbHVzaExheWVycykKLSAgICAsIG1f
d2Vha1B0ckZhY3RvcnkodGhpcykKIHsKICAgICB3ZWJQYWdlLmNvcmVQYWdlKCktPnNldHRpbmdz
KCkuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7CiAjaWYgUExBVEZPUk0oSU9TKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50Lm1tCmluZGV4IDNkZGViYjVjYmU4MTk3MTRiN2VhZjNiNTljN2M5MzhmNGUzYzUz
MmIuLjM0M2MyYzdmYjc5NTljNGE5YWE1MTUyMTE4ZGMwNmY4NmI4NzAxNjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQubW0KQEAgLTE5NSw3ICsxOTUsNiBAQCBAZW5kCiBXZWJFZGl0b3JDbGllbnQ6OldlYkVk
aXRvckNsaWVudChXZWJWaWV3ICp3ZWJWaWV3KQogICAgIDogbV93ZWJWaWV3KHdlYlZpZXcpCiAg
ICAgLCBtX3VuZG9UYXJnZXQoYWRvcHROUyhbW1dlYkVkaXRvclVuZG9UYXJnZXQgYWxsb2NdIGlu
aXRdKSkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKIH0KIApAQCAtMTI0Nyw3ICsx
MjQ2LDcgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDYW5kaWRhdGVzRm9yU2VsZWN0
aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGUKICAgICBtX3BhcmFncmFwaENvbnRleHRG
b3JDYW5kaWRhdGVSZXF1ZXN0ID0gcGxhaW5UZXh0KGZyYW1lLT5lZGl0b3IoKS5jb250ZXh0UmFu
Z2VGb3JDYW5kaWRhdGVSZXF1ZXN0KCkuZ2V0KCkpOwogCiAgICAgTlNUZXh0Q2hlY2tpbmdUeXBl
cyBjaGVja2luZ1R5cGVzID0gTlNUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBOU1RleHRDaGVj
a2luZ1R5cGVSZXBsYWNlbWVudCB8IE5TVGV4dENoZWNraW5nVHlwZUNvcnJlY3Rpb247Ci0gICAg
YXV0byB3ZWFrRWRpdG9yID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAg
YXV0byB3ZWFrRWRpdG9yID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsK
ICAgICBtX2xhc3RDYW5kaWRhdGVSZXF1ZXN0U2VxdWVuY2VOdW1iZXIgPSBbW05TU3BlbGxDaGVj
a2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVxdWVzdENhbmRpZGF0ZXNGb3JTZWxlY3RlZFJhbmdl
Om1fcmFuZ2VGb3JDYW5kaWRhdGVzIGluU3RyaW5nOm1fcGFyYWdyYXBoQ29udGV4dEZvckNhbmRp
ZGF0ZVJlcXVlc3QuZ2V0KCkgdHlwZXM6Y2hlY2tpbmdUeXBlcyBvcHRpb25zOm5pbCBpblNwZWxs
RG9jdW1lbnRXaXRoVGFnOnNwZWxsQ2hlY2tlckRvY3VtZW50VGFnKCkgY29tcGxldGlvbkhhbmRs
ZXI6W3dlYWtFZGl0b3JdKE5TSW50ZWdlciBzZXF1ZW5jZU51bWJlciwgTlNBcnJheTxOU1RleHRD
aGVja2luZ1Jlc3VsdCAqPiAqY2FuZGlkYXRlcykgewogICAgICAgICBkaXNwYXRjaF9hc3luYyhk
aXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeewogICAgICAgICAgICAgaWYgKCF3ZWFrRWRpdG9y
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGFl
YjAyYTM4MGY1MWZlZTU5MWFmYjJhMjJhMDJlMjNhNzEzMDNhNDMuLjJjMDg3OTczZTZiYTMwN2Zl
NTA5YzExMmIwNDI2OTljYWNiYjEyMGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wOS0yMiAgWmFsYW4gQnVq
dGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYWtQdHJGYWN0b3J5IHNob3VsZCBw
b3B1bGF0ZSBtX3JlZiBsYXppbHkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzczNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dlYWtQdHIuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTctMDktMjIgIFRpbSBIb3J0b24gPHRp
bW90aHlfaG9ydG9uQGFwcGxlLmNvbT4gYW5kIE1pY2hhZWwgQ2F0YW56YXJvIDxtY2F0YW56YXJv
QGlnYWxpYS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGJ1aWxkLXdlYmtpdCdzIG5vdGlvbiBvZiBm
ZWF0dXJlIGZsYWdzIGhhdmluZyBhIGRlZmF1bHQgdmFsdWUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dlYWtQdHIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvV2Vha1B0ci5jcHAKaW5kZXggNzQ1YWFkZDJiZDUyYjcwYTk2Mzg4ZjUwNzRlMTNh
M2JiNmVlYWFiNC4uOWM1YWM1OWE3Yzk3ZDAxMjkxN2RkYjczMGY1NWQ3MDIxYzc1NDRmMyAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV2Vha1B0ci5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV2Vha1B0ci5jcHAKQEAgLTMzLDEwICszMywx
MCBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiBURVNUKFdURl9XZWFrUHRyLCBCYXNpYykK
IHsKICAgICBpbnQgZHVtbXkgPSA1OwotICAgIFdlYWtQdHJGYWN0b3J5PGludD4qIGZhY3Rvcnkg
PSBuZXcgV2Vha1B0ckZhY3Rvcnk8aW50PigmZHVtbXkpOwotICAgIFdlYWtQdHI8aW50PiB3ZWFr
UHRyMSA9IGZhY3RvcnktPmNyZWF0ZVdlYWtQdHIoKTsKLSAgICBXZWFrUHRyPGludD4gd2Vha1B0
cjIgPSBmYWN0b3J5LT5jcmVhdGVXZWFrUHRyKCk7Ci0gICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIz
ID0gZmFjdG9yeS0+Y3JlYXRlV2Vha1B0cigpOworICAgIFdlYWtQdHJGYWN0b3J5PGludD4qIGZh
Y3RvcnkgPSBuZXcgV2Vha1B0ckZhY3Rvcnk8aW50PigpOworICAgIFdlYWtQdHI8aW50PiB3ZWFr
UHRyMSA9IGZhY3RvcnktPmNyZWF0ZVdlYWtQdHIoZHVtbXkpOworICAgIFdlYWtQdHI8aW50PiB3
ZWFrUHRyMiA9IGZhY3RvcnktPmNyZWF0ZVdlYWtQdHIoZHVtbXkpOworICAgIFdlYWtQdHI8aW50
PiB3ZWFrUHRyMyA9IGZhY3RvcnktPmNyZWF0ZVdlYWtQdHIoZHVtbXkpOwogICAgIEVYUEVDVF9F
USh3ZWFrUHRyMS5nZXQoKSwgJmR1bW15KTsKICAgICBFWFBFQ1RfRVEod2Vha1B0cjIuZ2V0KCks
ICZkdW1teSk7CiAgICAgRVhQRUNUX0VRKHdlYWtQdHIzLmdldCgpLCAmZHVtbXkpOwpAQCAtNjAs
OSArNjAsOSBAQCBURVNUKFdURl9XZWFrUHRyLCBBc3NpZ25tZW50KQogICAgIGludCBkdW1teSA9
IDU7CiAgICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHI7CiAgICAgewotICAgICAgICBXZWFrUHRyRmFj
dG9yeTxpbnQ+IGZhY3RvcnkoJmR1bW15KTsKKyAgICAgICAgV2Vha1B0ckZhY3Rvcnk8aW50PiBm
YWN0b3J5OwogICAgICAgICBFWFBFQ1RfTlVMTCh3ZWFrUHRyLmdldCgpKTsKLSAgICAgICAgd2Vh
a1B0ciA9IGZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAgICAgICB3ZWFrUHRyID0gZmFjdG9y
eS5jcmVhdGVXZWFrUHRyKGR1bW15KTsKICAgICAgICAgRVhQRUNUX0VRKHdlYWtQdHIuZ2V0KCks
ICZkdW1teSk7CiAgICAgfQogICAgIEVYUEVDVF9OVUxMKHdlYWtQdHIuZ2V0KCkpOwpAQCAtNzIs
MTAgKzcyLDEwIEBAIFRFU1QoV1RGX1dlYWtQdHIsIE11bHRpcGxlRmFjdG9yaWVzKQogewogICAg
IGludCBkdW1teTEgPSA1OwogICAgIGludCBkdW1teTIgPSA3OwotICAgIFdlYWtQdHJGYWN0b3J5
PGludD4qIGZhY3RvcnkxID0gbmV3IFdlYWtQdHJGYWN0b3J5PGludD4oJmR1bW15MSk7Ci0gICAg
V2Vha1B0ckZhY3Rvcnk8aW50PiogZmFjdG9yeTIgPSBuZXcgV2Vha1B0ckZhY3Rvcnk8aW50Pigm
ZHVtbXkyKTsKLSAgICBXZWFrUHRyPGludD4gd2Vha1B0cjEgPSBmYWN0b3J5MS0+Y3JlYXRlV2Vh
a1B0cigpOwotICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMiA9IGZhY3RvcnkyLT5jcmVhdGVXZWFr
UHRyKCk7CisgICAgV2Vha1B0ckZhY3Rvcnk8aW50PiogZmFjdG9yeTEgPSBuZXcgV2Vha1B0ckZh
Y3Rvcnk8aW50PigpOworICAgIFdlYWtQdHJGYWN0b3J5PGludD4qIGZhY3RvcnkyID0gbmV3IFdl
YWtQdHJGYWN0b3J5PGludD4oKTsKKyAgICBXZWFrUHRyPGludD4gd2Vha1B0cjEgPSBmYWN0b3J5
MS0+Y3JlYXRlV2Vha1B0cihkdW1teTEpOworICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMiA9IGZh
Y3RvcnkyLT5jcmVhdGVXZWFrUHRyKGR1bW15Mik7CiAgICAgRVhQRUNUX0VRKHdlYWtQdHIxLmdl
dCgpLCAmZHVtbXkxKTsKICAgICBFWFBFQ1RfRVEod2Vha1B0cjIuZ2V0KCksICZkdW1teTIpOwog
ICAgIEVYUEVDVF9UUlVFKHdlYWtQdHIxICE9IHdlYWtQdHIyKTsKQEAgLTkxLDEwICs5MSwxMCBA
QCBURVNUKFdURl9XZWFrUHRyLCBNdWx0aXBsZUZhY3RvcmllcykKIFRFU1QoV1RGX1dlYWtQdHIs
IFJldm9rZUFsbCkKIHsKICAgICBpbnQgZHVtbXkgPSA1OwotICAgIFdlYWtQdHJGYWN0b3J5PGlu
dD4gZmFjdG9yeSgmZHVtbXkpOwotICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMSA9IGZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigpOwotICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMiA9IGZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigpOwotICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMyA9IGZhY3RvcnkuY3JlYXRl
V2Vha1B0cigpOworICAgIFdlYWtQdHJGYWN0b3J5PGludD4gZmFjdG9yeTsKKyAgICBXZWFrUHRy
PGludD4gd2Vha1B0cjEgPSBmYWN0b3J5LmNyZWF0ZVdlYWtQdHIoZHVtbXkpOworICAgIFdlYWtQ
dHI8aW50PiB3ZWFrUHRyMiA9IGZhY3RvcnkuY3JlYXRlV2Vha1B0cihkdW1teSk7CisgICAgV2Vh
a1B0cjxpbnQ+IHdlYWtQdHIzID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRyKGR1bW15KTsKICAgICBF
WFBFQ1RfRVEod2Vha1B0cjEuZ2V0KCksICZkdW1teSk7CiAgICAgRVhQRUNUX0VRKHdlYWtQdHIy
LmdldCgpLCAmZHVtbXkpOwogICAgIEVYUEVDVF9FUSh3ZWFrUHRyMy5nZXQoKSwgJmR1bW15KTsK
QEAgLTEwNCwxNSArMTA0LDYgQEAgVEVTVChXVEZfV2Vha1B0ciwgUmV2b2tlQWxsKQogICAgIEVY
UEVDVF9OVUxMKHdlYWtQdHIzLmdldCgpKTsKIH0KIAotVEVTVChXVEZfV2Vha1B0ciwgTnVsbEZh
Y3RvcnkpCi17Ci0gICAgV2Vha1B0ckZhY3Rvcnk8aW50PiBmYWN0b3J5KG51bGxwdHIpOwotICAg
IFdlYWtQdHI8aW50PiB3ZWFrUHRyID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7Ci0gICAgRVhQ
RUNUX05VTEwod2Vha1B0ci5nZXQoKSk7Ci0gICAgZmFjdG9yeS5yZXZva2VBbGwoKTsKLSAgICBF
WFBFQ1RfTlVMTCh3ZWFrUHRyLmdldCgpKTsKLX0KLQogc3RydWN0IEZvbyB7CiAgICAgdm9pZCBi
YXIoKSB7IH07CiB9OwpAQCAtMTIwLDggKzExMSw4IEBAIHN0cnVjdCBGb28gewogVEVTVChXVEZf
V2Vha1B0ciwgRGVyZWZlcmVuY2UpCiB7CiAgICAgRm9vIGY7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8
Rm9vPiBmYWN0b3J5KCZmKTsKLSAgICBXZWFrUHRyPEZvbz4gd2Vha1B0ciA9IGZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigpOworICAgIFdlYWtQdHJGYWN0b3J5PEZvbz4gZmFjdG9yeTsKKyAgICBXZWFr
UHRyPEZvbz4gd2Vha1B0ciA9IGZhY3RvcnkuY3JlYXRlV2Vha1B0cihmKTsKICAgICB3ZWFrUHRy
LT5iYXIoKTsKIH0KIApAQCAtMTMwLDEzICsxMjEsMTMgQEAgVEVTVChXVEZfV2Vha1B0ciwgRm9y
Z2V0KQogICAgIGludCBkdW1teSA9IDU7CiAgICAgaW50IGR1bW15MiA9IDc7CiAKLSAgICBXZWFr
UHRyRmFjdG9yeTxpbnQ+IG91dGVyRmFjdG9yeSgmZHVtbXkyKTsKKyAgICBXZWFrUHRyRmFjdG9y
eTxpbnQ+IG91dGVyRmFjdG9yeTsKICAgICBXZWFrUHRyPGludD4gd2Vha1B0cjEsIHdlYWtQdHIy
LCB3ZWFrUHRyMywgd2Vha1B0cjQ7CiAgICAgewotICAgICAgICBXZWFrUHRyRmFjdG9yeTxpbnQ+
IGlubmVyRmFjdG9yeSgmZHVtbXkpOwotICAgICAgICB3ZWFrUHRyMSA9IGlubmVyRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCk7Ci0gICAgICAgIHdlYWtQdHIyID0gaW5uZXJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKTsKLSAgICAgICAgd2Vha1B0cjMgPSBpbm5lckZhY3RvcnkuY3JlYXRlV2Vha1B0cigp
OworICAgICAgICBXZWFrUHRyRmFjdG9yeTxpbnQ+IGlubmVyRmFjdG9yeTsKKyAgICAgICAgd2Vh
a1B0cjEgPSBpbm5lckZhY3RvcnkuY3JlYXRlV2Vha1B0cihkdW1teSk7CisgICAgICAgIHdlYWtQ
dHIyID0gaW5uZXJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoZHVtbXkpOworICAgICAgICB3ZWFrUHRy
MyA9IGlubmVyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKGR1bW15KTsKICAgICAgICAgRVhQRUNUX0VR
KHdlYWtQdHIxLmdldCgpLCAmZHVtbXkpOwogICAgICAgICBFWFBFQ1RfRVEod2Vha1B0cjIuZ2V0
KCksICZkdW1teSk7CiAgICAgICAgIEVYUEVDVF9FUSh3ZWFrUHRyMy5nZXQoKSwgJmR1bW15KTsK
QEAgLTE2Niw3ICsxNTcsNyBAQCBURVNUKFdURl9XZWFrUHRyLCBGb3JnZXQpCiAgICAgICAgIEVY
UEVDVF9OVUxMKHdlYWtQdHI1LmdldCgpKTsKICAgICAgICAgRVhQRUNUX0VRKHdlYWtQdHIyLmdl
dCgpLCAmZHVtbXkpOwogCi0gICAgICAgIHdlYWtQdHI0ID0gb3V0ZXJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKTsKKyAgICAgICAgd2Vha1B0cjQgPSBvdXRlckZhY3RvcnkuY3JlYXRlV2Vha1B0cihk
dW1teTIpOwogICAgICAgICBFWFBFQ1RfRVEod2Vha1B0cjIuZ2V0KCksICZkdW1teSk7CiAgICAg
ICAgIEVYUEVDVF9FUSh3ZWFrUHRyNC5nZXQoKSwgJmR1bW15Mik7CiAgICAgfQpAQCAtMTg0LDcg
KzE3NSw3IEBAIFRFU1QoV1RGX1dlYWtQdHIsIEZvcmdldCkKICAgICBFWFBFQ1RfTlVMTCh3ZWFr
UHRyNi5nZXQoKSk7CiAgICAgRVhQRUNUX0VRKHdlYWtQdHI1LmdldCgpLCB3ZWFrUHRyNi5nZXQo
KSk7CiAKLSAgICBXZWFrUHRyPGludD4gd2Vha1B0cjcgPSBvdXRlckZhY3RvcnkuY3JlYXRlV2Vh
a1B0cigpOworICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyNyA9IG91dGVyRmFjdG9yeS5jcmVhdGVX
ZWFrUHRyKGR1bW15Mik7CiAgICAgRVhQRUNUX0VRKHdlYWtQdHI3LmdldCgpLCAmZHVtbXkyKTsK
ICAgICB3ZWFrUHRyNyA9IG51bGxwdHI7CiAgICAgRVhQRUNUX05VTEwod2Vha1B0cjcuZ2V0KCkp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321612</attachid>
            <date>2017-09-22 19:42:22 -0700</date>
            <delta_ts>2017-09-22 20:58:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177375-20170922194221.patch</filename>
            <type>text/plain</type>
            <size>115303</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMzk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNhY2Q4MjNjMzdjZDIwMTRlODAzNzUw
YjczOTRkNTgxYzJkMjMyZjIuLjZjOTBhY2Q2MzQ1NWY5YTZkZWVlYTNlN2FmZDc5YTIzMTUwZmQx
MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTctMDktMjIgIFphbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBXZWFrUHRyRmFjdG9yeSBzaG91bGQgcG9wdWxhdGUgbV9y
ZWYgbGF6aWx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc3Mzc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBoZWxwcyB1cyB3aXRoIHRoZSBvdmVyaGVhZCBvZiBpbml0aWFsaXppbmcgV2Vha1B0
ckZhY3RvcnkgZm9yCisgICAgICAgIG9iamVjdHMgdGhhdCByYXJlbHkgZW5kIHVwIGNyZWF0aW5n
IHRoZSB3ZWFrIHJlZmVyZW5jZS4KKyAgICAgICAgLVRoaXMgaXMgaW4gcHJlcGFyYXRpb24gZm9y
IGludHJvZHVjaW5nIFdlYWtQdHIgdG8gUmVuZGVyT2JqZWN0LgorCisgICAgICAgIEFsbCBjcmVk
aXQgdG8gR2VvZmZyZXkgR2FyZW4uCisKKyAgICAgICAgKiB3dGYvV2Vha1B0ci5oOgorICAgICAg
ICAoV1RGOjpXZWFrUmVmZXJlbmNlOjpnZXQgY29uc3QpOgorICAgICAgICAoV1RGOjpXZWFrUmVm
ZXJlbmNlOjpjbGVhcik6CisgICAgICAgIChXVEY6OldlYWtSZWZlcmVuY2U6OldlYWtSZWZlcmVu
Y2UpOgorICAgICAgICAoV1RGOjpXZWFrUHRyRmFjdG9yeTo6fldlYWtQdHJGYWN0b3J5KToKKyAg
ICAgICAgKFdURjo6V2Vha1B0ckZhY3Rvcnk6OmNyZWF0ZVdlYWtQdHIgY29uc3QpOgorICAgICAg
ICAoV1RGOjpXZWFrUHRyRmFjdG9yeTo6cmV2b2tlQWxsKToKKyAgICAgICAgKFdURjo6V2Vha1B0
ckZhY3Rvcnk6OldlYWtQdHJGYWN0b3J5KTogRGVsZXRlZC4KKwogMjAxNy0wOS0yMSAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgU3Ry
aW5nQnVpbGRlciBtb3ZhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjUzZTE2Njc1YTY5ZjMyMWNhZjRjZjkx
MDU4OGM2N2ZkM2VmYjkzNS4uNmRlNjllMmI5NDJjZWUxMzNlZjAyY2YxY2I1YjYyMTBiNzVlMWFm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2NiBAQAorMjAxNy0wOS0yMiAgWmFsYW4gQnVqdGFz
ICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYWtQdHJGYWN0b3J5IHNob3VsZCBwb3B1
bGF0ZSBtX3JlZiBsYXppbHkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzczNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNETTo6Q0RNKToKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5o
OgorICAgICAgICAoV2ViQ29yZTo6Q0RNOjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBNb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUtleVNlc3Npb246Ok1lZGlhS2V5U2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUtleVNlc3Npb246OmdlbmVyYXRlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUtleVNlc3Npb246OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTZXNzaW9uOjp1
cGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTZXNzaW9uOjpjbG9zZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246OnJlbW92ZSk6CisgICAgICAgICogTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFL
ZXlzOjpNZWRpYUtleXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlzOjpjcmVhdGVTZXNz
aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6Ok1lZGlhRGV2aWNlcyk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhRGV2aWNlczo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJh
Y2s6Ok1lZGlhU3RyZWFtVHJhY2spOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6Y3Jl
YXRlV2Vha1B0cik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICogYW5pbWF0aW9uL1dlYkFu
aW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OldlYkFuaW1hdGlv
bik6CisgICAgICAgICogYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oOgorICAgICAgICAqIGNzcy9G
b250RmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250RmFjZTo6Rm9udEZhY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udEZhY2U6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udEZhY2U6OmNyZWF0ZVdlYWtQdHIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNz
cy9Gb250RmFjZS5oOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0Q29udGVudHMuaDoKKyAgICAg
ICAgKiBkb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YVRyYW5zZmVySXRlbUxpc3Q6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0OjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRy
YW5zZmVySXRlbUxpc3Q6OmVuc3VyZUl0ZW1zIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGFUcmFuc2Zlckl0ZW1MaXN0OjpkaWRTZXRTdHJpbmdEYXRhKToKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnBvc3RUYXNrKToKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGVX
ZWFrUHRyKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudCk6CisgICAgICAgICog
aHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBodG1sL0hUTUxQaWN0dXJlRWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRlci5oOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFJlc291cmNlUHJlbG9hZGVyOjpIVE1MUmVzb3VyY2VQcmVsb2FkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFJlc291cmNlUHJlbG9hZGVyOjpjcmVhdGVXZWFrUHRy
KToKKyAgICAgICAgKiBsb2FkZXIvTGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
aW5rTG9hZGVyOjpMaW5rTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvTGlua0xvYWRlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6TGlua0xvYWRlcjo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICog
bG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFS
ZXNvdXJjZUxvYWRlcjo6TWVkaWFSZXNvdXJjZUxvYWRlcik6CisgICAgICAgICogbG9hZGVyL01l
ZGlhUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OkRPTVdpbmRvdyk6CisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRhc2tEaXNwYXRjaGVyPFRpbWVyPjo6VGFza0Rpc3BhdGNoZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6VGFza0Rpc3BhdGNoZXI8VGltZXI+Ojpwb3N0VGFzayk6CisgICAgICAg
ICogcGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJp
Y1Rhc2tRdWV1ZTo6R2VuZXJpY1Rhc2tRdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmlj
VGFza1F1ZXVlOjplbnF1ZXVlVGFzayk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpjcmVhdGVXZWFrUHRyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxiYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYmFyOjpTY3JvbGxiYXIpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGJhci5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyOjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9XaWRnZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6Y3JlYXRlV2Vha1B0cik6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWM6OkF1ZGlvSGFy
ZHdhcmVMaXN0ZW5lck1hYyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2Nh
ZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhc2NhZGU6OkZvbnRDYXNjYWRlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udENhc2NhZGU6OmNyZWF0ZVdlYWtQdHIgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6Y3JlYXRlV2Vha1B0cik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lv
bkFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25BVkZvdW5k
YXRpb25PYmpDOjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkNETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDOjpDRE1TZXNzaW9uQVZGb3VuZGF0
aW9uT2JqQyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Np
b25BVlN0cmVhbVNlc3Npb246OkNETVNlc3Npb25BVlN0cmVhbVNlc3Npb24pOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1t
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
OjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzaXplV2lsbENoYW5nZUF0
VGltZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMpOgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFwcGVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YWJvcnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dHVyZUNhY2hlQ1Y6OlRleHR1cmVDYWNoZUNWKToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHR1cmVDYWNoZUNWOjp0ZXh0dXJlRnJvbUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6ZGlzcGxheUxpbmtG
aXJlZCk6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVySU9TOjpjcmVhdGVXZWFr
UHRyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1t
OgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVySU9TOjpSZW1vdGVDb21t
YW5kTGlzdGVuZXJJT1MpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9SZW1vdGVDb21tYW5kTGlz
dGVuZXJNYWMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYzo6
Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1Qcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6TWVk
aWFTdHJlYW1Qcml2YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3Jl
YXRlV2Vha1B0cik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpSZWFs
dGltZU1lZGlhU291cmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2lu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFFbmRwb2ludDo6TW9ja01lZGlhRW5k
cG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhRW5kcG9pbnQ6OmdlbmVyYXRlRHRs
c0luZm8pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFj
ZWhvbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQ
bGFjZWhvbGRlcjo6UmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlci5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clZpZXc6OlJlbmRlclZpZXcpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3Lmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJXaWRnZXQ6OlJlbmRlcldpZGdldCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcldp
ZGdldC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyV2lkZ2V0OjpjcmVhdGVXZWFrUHRyKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSb290SW5saW5lQm94OjpSb290SW5saW5lQm94KToKKyAgICAgICAgKiByZW5kZXJpbmcvUm9v
dElubGluZUJveC5oOgorICAgICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6Y3JlYXRlV2Vh
a1B0cik6CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1BhdGhFbGVtZW50OjpTVkdQYXRoRWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR1Bh
dGhFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVhck9mZi5o
OgorICAgICAgICAqIHRlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TW9ja0NETUZhY3Rvcnk6Ok1vY2tDRE1GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tDRE1GYWN0b3J5OjpjcmVhdGVDRE0pOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NETTo6TW9j
a0NETSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ0RNOjpjcmVhdGVJbnN0YW5jZSk6CisgICAg
ICAgIChXZWJDb3JlOjptX3dlYWtQdHJGYWN0b3J5KTogRGVsZXRlZC4KKwogMjAxNy0wOS0yMiAg
QmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29ueS5jb20+CiAKICAgICAgICAgW0N1cmxd
IFVzZSBkaWRSZWNlaXZlQnVmZmVyIGluc3RlYWQgb2YgZGlkUmVjZWl2ZURhdGEKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hh
bmdlTG9nCmluZGV4IDY5ODgwYzE4YWUxMWZjZTg3ZDk4MzE0ZDQzNDYwZjMxMWQ0NTg0YzguLmUy
NWU2ODM1Nzg0ODFhNjYwZDYwMDRiYTdhYTUyZWJhMmUzOWE0MTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA5LTIyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgV2Vha1B0ckZhY3Rvcnkgc2hvdWxkIHBvcHVsYXRlIG1fcmVmIGxh
emlseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NzM3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGFsL3N5c3RlbS9tYWMvU3lzdGVtU2xlZXBMaXN0ZW5lck1hYy5tbToKKyAgICAgICAgKFBBTDo6
U3lzdGVtU2xlZXBMaXN0ZW5lck1hYzo6U3lzdGVtU2xlZXBMaXN0ZW5lck1hYyk6CisKIDIwMTct
MDktMjEgIFlvc2hpYWtpIEppdHN1a2F3YSAgPFlvc2hpYWtpLkppdHN1a2F3YUBzb255LmNvbT4K
IAogICAgICAgICBbUEFMXSBNb3ZlIE1lZGlhVGltZUFWRm91bmRhdGlvbiBpbnRvIFBBTApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCBkN2M1NzEyNDBiMWQyYmE0OWMwZjg5ZjE5MTZiMDAxZmVjZjlkNWUyLi4zOTU5OTA3
OWQ4OGIxMjdhYThmNDYwNjdjNmQ5MDA4NTIyZjJjNTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4
IEBACisyMDE3LTA5LTIyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgV2Vha1B0ckZhY3Rvcnkgc2hvdWxkIHBvcHVsYXRlIG1fcmVmIGxhemlseS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzM3NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FwcGxl
UGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGF5bWVudENvb3JkaW5hdG9yUHJveHk6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OmNhbk1ha2VQYXltZW50
c1dpdGhBY3RpdmVDYXJkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHk6Om9wZW5QYXltZW50U2V0dXApOgorICAgICAgICAqIFVJUHJvY2Vzcy9BcHBsZVBheS9t
YWMvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybVNob3dQYXltZW50VUkpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BcHBsaWNhdGlvblN0YXRlVHJhY2tlci5tbToKKyAgICAgICAgKFdlYktp
dDo6QXBwbGljYXRpb25TdGF0ZVRyYWNrZXI6OkFwcGxpY2F0aW9uU3RhdGVUcmFja2VyKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OldlYlZpZXdJbXBs
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzTGF1bmNoZXIpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAg
ICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3Nl
cnRpb246OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjptX2NvbmZpZ3VyYXRpb25QcmVmZXJlbmNlVmFsdWVzKToK
KyAgICAgICAgKFdlYktpdDo6bV93ZWFrUHRyRmFjdG9yeSk6IERlbGV0ZWQuCisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmNyZWF0ZVdlYWtQdHIgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1v
dGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWEubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSk6CisKIDIwMTctMDktMjIgIEpvaG4gV2lsYW5kZXIg
IDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgTm9uLXByZXZhbGVudCByZXNvdXJjZXMg
c2hvdWxkIGJlIGFsbG93ZWQgYWNjZXNzIHRvIGV4aXN0aW5nIGNvb2tpZXMgaW4gYSB0aGlyZC1w
YXJ0eSBjb250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMTBmYzE2NjgzZjcz
ZWYzMTFlYjE1Yjk4ZDlhZGNkYWFiMjc5MzFmNS4uNDMwMzRhMDg5NzUyNDY2Y2FjNzIyMTFjOGFj
NTIzODAyMDRmNzZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDE3LTA5LTIyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgV2Vha1B0ckZhY3Rvcnkgc2hvdWxkIHBvcHVsYXRlIG1fcmVmIGxhemlseS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzM3NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpXZWJFZGl0b3JD
bGllbnQpOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2FuZGlkYXRlc0ZvclNl
bGVjdGlvbik6CisKIDIwMTctMDktMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBVc2UgaGlnaCByZXNvbHV0aW9uIHRpbWVzdGFtcCBmb3IgZXZlbnQgdGltZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV2Vha1B0ci5oIGIvU291cmNlL1dURi93dGYvV2Vh
a1B0ci5oCmluZGV4IDI5Y2MwNTZkMTM5YWEwOTMzODdiMjFhNzVmNjNlYjY4NjdmMWM3MmEuLmJk
MmY1NDQzZGU5MWEwODJmN2FlZjM0MjM1NTJmMTlkMTkyMGVkYTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1dlYWtQdHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9XZWFrUHRyLmgKQEAgLTMy
LDEwICszMiw2IEBACiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL1RocmVhZGluZy5oPgogCi0jaWYgVVNFKFdFQl9USFJFQUQpCi0jaW5jbHVkZSA8
d3RmL01haW5UaHJlYWQuaD4KLSNlbmRpZgotCiBuYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgVD4gY2xhc3MgV2Vha1B0cjsKQEAgLTQ3LDI1ICs0Myw5IEBAIGNsYXNzIFdlYWtS
ZWZlcmVuY2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2Vha1JlZmVyZW5jZTxUPj4g
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYWtSZWZlcmVuY2U8VD4pOwogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFQqIGdldCgpIGNvbnN0Ci0gICAgewot
I2lmIFVTRShXRUJfVEhSRUFEKQotICAgICAgICBBU1NFUlQoY2FuQWNjZXNzVGhyZWFkTG9jYWxE
YXRhRm9yVGhyZWFkKG1fYm91bmRUaHJlYWQpKTsKLSNlbHNlCi0gICAgICAgIEFTU0VSVChtX2Jv
dW5kVGhyZWFkID09IGN1cnJlbnRUaHJlYWQoKSk7Ci0jZW5kaWYKLSAgICAgICAgcmV0dXJuIG1f
cHRyOwotICAgIH0KKyAgICBUKiBnZXQoKSBjb25zdCB7IHJldHVybiBtX3B0cjsgfQogCi0gICAg
dm9pZCBjbGVhcigpCi0gICAgewotI2lmIFVTRShXRUJfVEhSRUFEKQotICAgICAgICBBU1NFUlQo
Y2FuQWNjZXNzVGhyZWFkTG9jYWxEYXRhRm9yVGhyZWFkKG1fYm91bmRUaHJlYWQpKTsKLSNlbHNl
Ci0gICAgICAgIEFTU0VSVChtX2JvdW5kVGhyZWFkID09IGN1cnJlbnRUaHJlYWQoKSk7Ci0jZW5k
aWYKLSAgICAgICAgbV9wdHIgPSBudWxscHRyOwotICAgIH0KKyAgICB2b2lkIGNsZWFyKCkgeyBt
X3B0ciA9IG51bGxwdHI7IH0KIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgV2Vha1B0cjxU
PjsKQEAgLTc1LDE2ICs1NSwxMCBAQCBwcml2YXRlOgogCiAgICAgZXhwbGljaXQgV2Vha1JlZmVy
ZW5jZShUKiBwdHIpCiAgICAgICAgIDogbV9wdHIocHRyKQotI2lmbmRlZiBOREVCVUcKLSAgICAg
ICAgLCBtX2JvdW5kVGhyZWFkKGN1cnJlbnRUaHJlYWQoKSkKLSNlbmRpZgogICAgIHsKICAgICB9
CiAKICAgICBUKiBtX3B0cjsKLSNpZm5kZWYgTkRFQlVHCi0gICAgVGhyZWFkSWRlbnRpZmllciBt
X2JvdW5kVGhyZWFkOwotI2VuZGlmCiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpAQCAtMTE4
LDIzICs5MiwzMyBAQCBjbGFzcyBXZWFrUHRyRmFjdG9yeSB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoV2Vha1B0ckZhY3Rvcnk8VD4pOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgotICAgIGV4cGxpY2l0IFdlYWtQdHJGYWN0b3J5KFQqIHB0cikgOiBtX3JlZihXZWFr
UmVmZXJlbmNlPFQ+OjpjcmVhdGUocHRyKSkgeyB9Ci0KLSAgICB+V2Vha1B0ckZhY3RvcnkoKSB7
IG1fcmVmLT5jbGVhcigpOyB9CisgICAgV2Vha1B0ckZhY3RvcnkoKSA9IGRlZmF1bHQ7CisgICAg
fldlYWtQdHJGYWN0b3J5KCkKKyAgICB7CisgICAgICAgIGlmICghbV9yZWYpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIG1fcmVmLT5jbGVhcigpOworICAgIH0KIAotICAgIC8vIFdlIHNo
b3VsZCBjb25zaWRlciBoYXZpbmcgY3JlYXRlV2Vha1B0ciBwb3B1bGF0ZSBtX3JlZiB0aGUgZmly
c3QgdGltZSBjcmVhdGVXZWFrUHRyIGlzIGNhbGxlZC4KLSAgICBXZWFrUHRyPFQ+IGNyZWF0ZVdl
YWtQdHIoKSBjb25zdCB7IHJldHVybiBXZWFrUHRyPFQ+KG1fcmVmLmNvcHlSZWYoKSk7IH0KKyAg
ICBXZWFrUHRyPFQ+IGNyZWF0ZVdlYWtQdHIoVCYgcHRyKSBjb25zdAorICAgIHsKKyAgICAgICAg
aWYgKCFtX3JlZikKKyAgICAgICAgICAgIG1fcmVmID0gV2Vha1JlZmVyZW5jZTxUPjo6Y3JlYXRl
KCZwdHIpOworICAgICAgICBBU1NFUlQoJnB0ciA9PSBtX3JlZi0+Z2V0KCkpOworICAgICAgICBy
ZXR1cm4gV2Vha1B0cjxUPihSZWY8V2Vha1JlZmVyZW5jZTxUPj4oKm1fcmVmKSk7CisgICAgfQog
CiAgICAgdm9pZCByZXZva2VBbGwoKQogICAgIHsKLSAgICAgICAgVCogcHRyID0gbV9yZWYtPmdl
dCgpOworICAgICAgICBpZiAoIW1fcmVmKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAg
IG1fcmVmLT5jbGVhcigpOwotICAgICAgICAvLyBXZSBjcmVhdGUgYSBuZXcgV2Vha1JlZmVyZW5j
ZSBzbyB0aGF0IGZ1dHVyZSBjYWxscyB0byBjcmVhdGVXZWFrUHRyKCkgY3JlYXRlIG5vbnplcm8g
V2Vha1B0cnMuCi0gICAgICAgIG1fcmVmID0gV2Vha1JlZmVyZW5jZTxUPjo6Y3JlYXRlKHB0cik7
CisgICAgICAgIG1fcmVmID0gbnVsbHB0cjsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgUmVmPFdl
YWtSZWZlcmVuY2U8VD4+IG1fcmVmOworICAgIG11dGFibGUgUmVmUHRyPFdlYWtSZWZlcmVuY2U8
VD4+IG1fcmVmOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5l
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBXZWFrUHRyPFQ+JiBhLCBjb25zdCBXZWFrUHRyPFU+JiBi
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0u
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwCmluZGV4
IDYwZThhYWRiYzI2NzI5YmQ5Y2MwOWQ0ZTkxYjAxMTNkMzM4NmI4Y2IuLmI3NDBiYjA4OTcyOTlh
NjM2YmYxMTgzZGUwMjc1NTI5ZWQ0YTY3MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL0NETS5jcHAKQEAgLTU5LDcgKzU5LDYgQEAgUmVmPENETT4gQ0RNOjpj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKIENETTo6
Q0RNKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCiAgICAgOiBD
b250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmZG9jdW1lbnQpCiAgICAgLCBtX2tleVN5c3RlbShr
ZXlTeXN0ZW0pCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiAgICAgQVNTRVJUKHN1
cHBvcnRzS2V5U3lzdGVtKGtleVN5c3RlbSkpOwogICAgIGZvciAoYXV0byogZmFjdG9yeSA6IENE
TUZhY3Rvcnk6OnJlZ2lzdGVyZWRGYWN0b3JpZXMoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmgKaW5kZXggNDZkNTNhZDA1MjMyMzVhNGM1ODkyYjJkMWI0
ZDgyNzMyMzdjMDMyMS4uOTdhNGM1NThkMDdlZGVmZjEwNGQyNDlkZjFmY2FmY2QwZDlmNzJmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5oCkBAIC05OSw3
ICs5OSw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxNZWRpYUtleVN5c3RlbUNvbmZp
Z3VyYXRpb24+ICBnZXRTdXBwb3J0ZWRDb25maWd1cmF0aW9uKGNvbnN0IE1lZGlhS2V5U3lzdGVt
Q29uZmlndXJhdGlvbiYgY2FuZGlkYXRlQ29uZmlndXJhdGlvbiwgTWVkaWFLZXlzUmVzdHJpY3Rp
b25zJik7CiAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8TWVkaWFLZXlTeXN0ZW1NZWRpYUNhcGFi
aWxpdHk+PiBnZXRTdXBwb3J0ZWRDYXBhYmlsaXRpZXNGb3JBdWRpb1ZpZGVvVHlwZShBdWRpb1Zp
ZGVvVHlwZSwgY29uc3QgVmVjdG9yPE1lZGlhS2V5U3lzdGVtTWVkaWFDYXBhYmlsaXR5PiYgcmVx
dWVzdGVkQ2FwYWJpbGl0aWVzLCBjb25zdCBNZWRpYUtleVN5c3RlbUNvbmZpZ3VyYXRpb24mIHBh
cnRpYWxDb25maWd1cmF0aW9uLCBNZWRpYUtleXNSZXN0cmljdGlvbnMmKTsKIAotICAgIFdlYWtQ
dHI8Q0RNPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVX
ZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPENETT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogICAgIHVzaW5nIENvbnNl
bnRTdGF0dXNDYWxsYmFjayA9IFdURjo6RnVuY3Rpb248dm9pZChDb25zZW50U3RhdHVzLCBNZWRp
YUtleVN5c3RlbUNvbmZpZ3VyYXRpb24mJiwgTWVkaWFLZXlzUmVzdHJpY3Rpb25zJiYpPjsKICAg
ICB2b2lkIGdldENvbnNlbnRTdGF0dXMoTWVkaWFLZXlTeXN0ZW1Db25maWd1cmF0aW9uJiYgYWNj
dW11bGF0ZWRDb25maWd1cmF0aW9uLCBNZWRpYUtleXNSZXN0cmljdGlvbnMmJiwgQ29uc2VudFN0
YXR1c0NhbGxiYWNrJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwCmluZGV4IGNiZDk0YzA2ZmYxNjYzN2Y2
NWNmNTRlNjM5YjQ3OGMyNDQzMjYwNzYuLjRkODI0NWNmNzY5N2Q4OGIzNGI4ZDQzNzA5NmVhNDBl
ODRhMjJlMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVk
aWEvTWVkaWFLZXlTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKQEAgLTYyLDcgKzYyLDYgQEAgTWVkaWFLZXlT
ZXNzaW9uOjpNZWRpYUtleVNlc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
V2Vha1B0cjxNZWRpYUsKICAgICAsIG1faW1wbGVtZW50YXRpb24oV1RGTW92ZShpbXBsZW1lbnRh
dGlvbikpCiAgICAgLCBtX2luc3RhbmNlKFdURk1vdmUoaW5zdGFuY2UpKQogICAgICwgbV9ldmVu
dFF1ZXVlKCp0aGlzKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogICAgIC8vIGh0
dHBzOi8vdzNjLmdpdGh1Yi5pby9lbmNyeXB0ZWQtbWVkaWEvI2RvbS1tZWRpYWtleXMtc2V0c2Vy
dmVyY2VydGlmaWNhdGUKICAgICAvLyBXM0MgRWRpdG9yJ3MgRHJhZnQgMDkgTm92ZW1iZXIgMjAx
NgpAQCAtMTg5LDcgKzE4OCw3IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjpnZW5lcmF0ZVJlcXVl
c3QoY29uc3QgQXRvbWljU3RyaW5nJiBpbml0RGF0YVR5cGUsIGNvbnN0IEJ1CiAgICAgICAgICAg
ICBtX2xhdGVzdERlY3J5cHRUaW1lID0gMDsKICAgICAgICAgfQogCi0gICAgICAgIG1faW5zdGFu
Y2UtPnJlcXVlc3RMaWNlbnNlKG1fc2Vzc2lvblR5cGUsIGluaXREYXRhVHlwZSwgV1RGTW92ZShp
bml0RGF0YSksIFt0aGlzLCB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0
cigpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKFJlZjxTaGFyZWRCdWZmZXI+JiYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIGJvb2wgbmVlZHNJbmRpdmlkdWFsaXphdGlv
biwgQ0RNSW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQpIG11dGFibGUgeworICAgICAg
ICBtX2luc3RhbmNlLT5yZXF1ZXN0TGljZW5zZShtX3Nlc3Npb25UeXBlLCBpbml0RGF0YVR5cGUs
IFdURk1vdmUoaW5pdERhdGEpLCBbdGhpcywgd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKFJlZjxTaGFy
ZWRCdWZmZXI+JiYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIGJvb2wgbmVlZHNJ
bmRpdmlkdWFsaXphdGlvbiwgQ0RNSW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQpIG11
dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1
cm47CiAKQEAgLTI4Miw3ICsyODEsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6bG9hZChjb25z
dCBTdHJpbmcmIHNlc3Npb25JZCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taQogICAgICAg
ICAvLyA4LjYuIExldCBtZXNzYWdlIHR5cGUgYmUgbnVsbC4KICAgICAgICAgLy8gOC43LiBMZXQg
Y2RtIGJlIHRoZSBDRE0gaW5zdGFuY2UgcmVwcmVzZW50ZWQgYnkgdGhpcyBvYmplY3QncyBjZG0g
aW5zdGFuY2UgdmFsdWUuCiAgICAgICAgIC8vIDguOC4gVXNlIHRoZSBjZG0gdG8gZXhlY3V0ZSB0
aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICBtX2luc3RhbmNlLT5sb2FkU2Vzc2lvbihtX3Nl
c3Npb25UeXBlLCAqc2FuaXRpemVkU2Vzc2lvbklkLCBvcmlnaW4sIFt0aGlzLCB3ZWFrVGhpcyA9
IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKSwgc2FuaXRpemVkU2Vzc2lvbklkID0gKnNhbml0aXplZFNlc3Npb25JZF0gKHN0ZDo6b3B0
aW9uYWw8Q0RNSW5zdGFuY2U6OktleVN0YXR1c1ZlY3Rvcj4mJiBrbm93bktleXMsIHN0ZDo6b3B0
aW9uYWw8ZG91YmxlPiYmIGV4cGlyYXRpb24sIHN0ZDo6b3B0aW9uYWw8Q0RNSW5zdGFuY2U6Ok1l
c3NhZ2U+JiYgbWVzc2FnZSwgQ0RNSW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQsIENE
TUluc3RhbmNlOjpTZXNzaW9uTG9hZEZhaWx1cmUgZmFpbHVyZSkgbXV0YWJsZSB7CisgICAgICAg
IG1faW5zdGFuY2UtPmxvYWRTZXNzaW9uKG1fc2Vzc2lvblR5cGUsICpzYW5pdGl6ZWRTZXNzaW9u
SWQsIG9yaWdpbiwgW3RoaXMsIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFr
UHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHNhbml0aXplZFNlc3Npb25J
ZCA9ICpzYW5pdGl6ZWRTZXNzaW9uSWRdIChzdGQ6Om9wdGlvbmFsPENETUluc3RhbmNlOjpLZXlT
dGF0dXNWZWN0b3I+JiYga25vd25LZXlzLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4mJiBleHBpcmF0
aW9uLCBzdGQ6Om9wdGlvbmFsPENETUluc3RhbmNlOjpNZXNzYWdlPiYmIG1lc3NhZ2UsIENETUlu
c3RhbmNlOjpTdWNjZXNzVmFsdWUgc3VjY2VlZGVkLCBDRE1JbnN0YW5jZTo6U2Vzc2lvbkxvYWRG
YWlsdXJlIGZhaWx1cmUpIG11dGFibGUgewogICAgICAgICAgICAgLy8gOC44LjEuIElmIHRoZXJl
IGlzIG5vIGRhdGEgc3RvcmVkIGZvciB0aGUgc2FuaXRpemVkIHNlc3Npb24gSUQgaW4gdGhlIG9y
aWdpbiwgcmVzb2x2ZSBwcm9taXNlIHdpdGggZmFsc2UgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgog
ICAgICAgICAgICAgLy8gOC44LjIuIElmIHRoZSBzdG9yZWQgc2Vzc2lvbidzIHNlc3Npb24gdHlw
ZSBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIGN1cnJlbnQgTWVkaWFLZXlTZXNzaW9uIHNlc3Npb24g
dHlwZSwgcmVqZWN0IHByb21pc2Ugd2l0aCBhIG5ld2x5IGNyZWF0ZWQgVHlwZUVycm9yLgogICAg
ICAgICAgICAgLy8gOC44LjMuIExldCBzZXNzaW9uIGRhdGEgYmUgdGhlIGRhdGEgc3RvcmVkIGZv
ciB0aGUgc2FuaXRpemVkIHNlc3Npb24gSUQgaW4gdGhlIG9yaWdpbi4gVGhpcyBtdXN0IG5vdCBp
bmNsdWRlIGRhdGEgZnJvbSBvdGhlciBvcmlnaW4ocykgb3IgdGhhdCBpcyBub3QgYXNzb2NpYXRl
ZCB3aXRoIGFuIG9yaWdpbi4KQEAgLTM4Myw3ICszODIsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lv
bjo6dXBkYXRlKGNvbnN0IEJ1ZmZlclNvdXJjZSYgcmVzcG9uc2UsIFJlZjxEZWZlcnJlZFByb21p
c2U+JgogICAgICAgICAvLyA2LjUuIExldCBzZXNzaW9uIGNsb3NlZCBiZSBmYWxzZS4KICAgICAg
ICAgLy8gNi42LiBMZXQgY2RtIGJlIHRoZSBDRE0gaW5zdGFuY2UgcmVwcmVzZW50ZWQgYnkgdGhp
cyBvYmplY3QncyBjZG0gaW5zdGFuY2UgdmFsdWUuCiAgICAgICAgIC8vIDYuNy4gVXNlIHRoZSBj
ZG0gdG8gZXhlY3V0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICBtX2luc3RhbmNlLT51
cGRhdGVMaWNlbnNlKG1fc2Vzc2lvbklkLCBtX3Nlc3Npb25UeXBlLCAqc2FuaXRpemVkUmVzcG9u
c2UsIFt0aGlzLCB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCBw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKGJvb2wgc2Vzc2lvbldhc0Nsb3NlZCwgc3RkOjpv
cHRpb25hbDxDRE1JbnN0YW5jZTo6S2V5U3RhdHVzVmVjdG9yPiYmIGNoYW5nZWRLZXlzLCBzdGQ6
Om9wdGlvbmFsPGRvdWJsZT4mJiBjaGFuZ2VkRXhwaXJhdGlvbiwgc3RkOjpvcHRpb25hbDxDRE1J
bnN0YW5jZTo6TWVzc2FnZT4mJiBtZXNzYWdlLCBDRE1JbnN0YW5jZTo6U3VjY2Vzc1ZhbHVlIHN1
Y2NlZWRlZCkgbXV0YWJsZSB7CisgICAgICAgIG1faW5zdGFuY2UtPnVwZGF0ZUxpY2Vuc2UobV9z
ZXNzaW9uSWQsIG1fc2Vzc2lvblR5cGUsICpzYW5pdGl6ZWRSZXNwb25zZSwgW3RoaXMsIHdlYWtU
aGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldIChib29sIHNlc3Npb25XYXNDbG9zZWQsIHN0ZDo6b3B0aW9uYWw8Q0RN
SW5zdGFuY2U6OktleVN0YXR1c1ZlY3Rvcj4mJiBjaGFuZ2VkS2V5cywgc3RkOjpvcHRpb25hbDxk
b3VibGU+JiYgY2hhbmdlZEV4cGlyYXRpb24sIHN0ZDo6b3B0aW9uYWw8Q0RNSW5zdGFuY2U6Ok1l
c3NhZ2U+JiYgbWVzc2FnZSwgQ0RNSW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQpIG11
dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1
cm47CiAKQEAgLTQ5NSw3ICs0OTQsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6Y2xvc2UoUmVm
PERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNr
KFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAg
IC8vIDUuMS4gTGV0IGNkbSBiZSB0aGUgQ0RNIGluc3RhbmNlIHJlcHJlc2VudGVkIGJ5IHNlc3Np
b24ncyBjZG0gaW5zdGFuY2UgdmFsdWUuCiAgICAgICAgIC8vIDUuMi4gVXNlIGNkbSB0byBjbG9z
ZSB0aGUga2V5IHNlc3Npb24gYXNzb2NpYXRlZCB3aXRoIHNlc3Npb24uCi0gICAgICAgIG1faW5z
dGFuY2UtPmNsb3NlU2Vzc2lvbihtX3Nlc3Npb25JZCwgW3RoaXMsIHdlYWtUaGlzID0gbV93ZWFr
UHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAo
KSBtdXRhYmxlIHsKKyAgICAgICAgbV9pbnN0YW5jZS0+Y2xvc2VTZXNzaW9uKG1fc2Vzc2lvbklk
LCBbdGhpcywgd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMp
LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBp
ZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNTMzLDcgKzUzMiw3
IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjpyZW1vdmUoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlKQogICAgICAgICAvLyA0LjMuIExldCBtZXNzYWdlIHR5cGUgYmUgbnVsbC4KIAogICAg
ICAgICAvLyA0LjQuIFVzZSB0aGUgY2RtIHRvIGV4ZWN1dGUgdGhlIGZvbGxvd2luZyBzdGVwczoK
LSAgICAgICAgbV9pbnN0YW5jZS0+cmVtb3ZlU2Vzc2lvbkRhdGEobV9zZXNzaW9uSWQsIG1fc2Vz
c2lvblR5cGUsIFt0aGlzLCB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0
cigpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKENETUluc3RhbmNlOjpLZXlTdGF0dXNW
ZWN0b3ImJiBrZXlzLCBzdGQ6Om9wdGlvbmFsPFJlZjxTaGFyZWRCdWZmZXI+PiYmIG1lc3NhZ2Us
IENETUluc3RhbmNlOjpTdWNjZXNzVmFsdWUgc3VjY2VlZGVkKSBtdXRhYmxlIHsKKyAgICAgICAg
bV9pbnN0YW5jZS0+cmVtb3ZlU2Vzc2lvbkRhdGEobV9zZXNzaW9uSWQsIG1fc2Vzc2lvblR5cGUs
IFt0aGlzLCB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyks
IHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoQ0RNSW5zdGFuY2U6OktleVN0YXR1c1ZlY3Rv
ciYmIGtleXMsIHN0ZDo6b3B0aW9uYWw8UmVmPFNoYXJlZEJ1ZmZlcj4+JiYgbWVzc2FnZSwgQ0RN
SW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQpIG11dGFibGUgewogICAgICAgICAgICAg
aWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcAppbmRleCBjMGVm
NTU0Y2IwZTg5OGZjNjczMGVhZGMyNjYyOTAyY2U1Y2I2YzAyLi5iZWYzNmEzMmRlMWZlYjVjYWE0
MDE4N2I2ZTE1NjE4MTViNzFmM2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwCkBAIC00NSw3ICs0NSw2IEBAIE1lZGlhS2V5
czo6TWVkaWFLZXlzKGJvb2wgdXNlRGlzdGluY3RpdmVJZGVudGlmaWVyLCBib29sIHBlcnNpc3Rl
bnRTdGF0ZUFsbG93ZWQsCiAgICAgLCBtX3N1cHBvcnRlZFNlc3Npb25UeXBlcyhzdXBwb3J0ZWRT
ZXNzaW9uVHlwZXMpCiAgICAgLCBtX2ltcGxlbWVudGF0aW9uKFdURk1vdmUoaW1wbGVtZW50YXRp
b24pKQogICAgICwgbV9pbnN0YW5jZShXVEZNb3ZlKGluc3RhbmNlKSkKLSAgICAsIG1fd2Vha1B0
ckZhY3RvcnkodGhpcykKIHsKIH0KIApAQCAtNjgsNyArNjcsNyBAQCBFeGNlcHRpb25PcjxSZWY8
TWVkaWFLZXlTZXNzaW9uPj4gTWVkaWFLZXlzOjpjcmVhdGVTZXNzaW9uKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleAogICAgIC8vIDMuIExldCBzZXNzaW9uIGJlIGEgbmV3IE1lZGlhS2V5U2Vzc2lvbiBv
YmplY3QsIGFuZCBpbml0aWFsaXplIGl0IGFzIGZvbGxvd3M6CiAgICAgLy8gTk9URTogQ29udGlu
dWVkIGluIE1lZGlhS2V5U2Vzc2lvbi4KICAgICAvLyA0LiBSZXR1cm4gc2Vzc2lvbi4KLSAgICBh
dXRvIHNlc3Npb24gPSBNZWRpYUtleVNlc3Npb246OmNyZWF0ZShjb250ZXh0LCBtX3dlYWtQdHJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKSwgc2Vzc2lvblR5cGUsIG1fdXNlRGlzdGluY3RpdmVJZGVu
dGlmaWVyLCBtX2ltcGxlbWVudGF0aW9uLmNvcHlSZWYoKSwgbV9pbnN0YW5jZS5jb3B5UmVmKCkp
OworICAgIGF1dG8gc2Vzc2lvbiA9IE1lZGlhS2V5U2Vzc2lvbjo6Y3JlYXRlKGNvbnRleHQsIG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIHNlc3Npb25UeXBlLCBtX3VzZURp
c3RpbmN0aXZlSWRlbnRpZmllciwgbV9pbXBsZW1lbnRhdGlvbi5jb3B5UmVmKCksIG1faW5zdGFu
Y2UuY29weVJlZigpKTsKICAgICBtX3Nlc3Npb25zLmFwcGVuZChzZXNzaW9uLmNvcHlSZWYoKSk7
CiAgICAgcmV0dXJuIFdURk1vdmUoc2Vzc2lvbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKaW5kZXggNmU0MGM3ZjYyMThi
NDExY2U4Njc0MGMyMGU3MjRjMzJlMmViODBmNS4uNDQwNTk5NjVjYzFlYmZkN2ZhZjA0ZTZiNWFi
NTQwOTU5OWM4NTRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYURldmljZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFEZXZpY2VzLmNwcApAQCAtNDcsNyArNDcsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBpbmxpbmUgTWVkaWFEZXZpY2VzOjpNZWRpYURldmljZXMoRG9jdW1lbnQmIGRvY3VtZW50
KQogICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmRvY3VtZW50KQogICAgICwgbV9z
Y2hlZHVsZWRFdmVudFRpbWVyKCp0aGlzLCAmTWVkaWFEZXZpY2VzOjpzY2hlZHVsZWRFdmVudFRp
bWVyRmlyZWQpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiAgICAgbV9kZXZpY2VD
aGFuZ2VkVG9rZW4gPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hZGRE
ZXZpY2VzQ2hhbmdlZE9ic2VydmVyKFt3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKSwgdGhpc10o
KSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFEZXZpY2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2
aWNlcy5oCmluZGV4IDlmMzBjM2VhZDk1Mjg2Y2YwYjE0MWI4NTk4Nzg1ZDQwMzA0OTAzY2IuLjYx
MTI4NTMwNTI5NzRkN2VlYTI3MDllNGNhNzhjM2M5ZTRiZTAzNzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaApAQCAtODIsNyArODIs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigp
OyB9CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJlZigpOyB9CiAK
LSAgICBXZWFrUHRyPE1lZGlhRGV2aWNlcz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vh
a1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxNZWRpYURldmljZXM+
IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIo
KnRoaXMpOyB9CiAKICAgICBUaW1lciBtX3NjaGVkdWxlZEV2ZW50VGltZXI7CiAgICAgc3RkOjpv
cHRpb25hbDxSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpEZXZpY2VzQ2hhbmdlZE9ic2VydmVy
VG9rZW4+IG1fZGV2aWNlQ2hhbmdlZFRva2VuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKaW5kZXggMTY4ODRlMzgy
NjY4NGNlNzc4N2Q1ODZhODRmODhmZGM3OTFjMjc4OS4uOWUxNzhkZjRiZDJhNWM5ZDc5YWYwYTc2
OTZmNzljMzIyZmUxOGU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCkBAIC01Myw3ICs1Myw2IEBAIFJlZjxN
ZWRpYVN0cmVhbVRyYWNrPiBNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwKIE1lZGlhU3RyZWFtVHJhY2s6Ok1lZGlhU3RyZWFtVHJhY2soU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
PiYmIHByaXZhdGVUcmFjaykKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKICAgICAs
IG1fcHJpdmF0ZShXVEZNb3ZlKHByaXZhdGVUcmFjaykpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5
KHRoaXMpCiAgICAgLCBtX3Rhc2tRdWV1ZShjb250ZXh0KQogewogICAgIHN1c3BlbmRJZk5lZWRl
ZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2suaAppbmRleCA0YTQ5OTRhNjlkZjBiZGIxZmZmOGIzNjAyZTQ2YjMwNTkwMzkx
YWEzLi5hNTNhY2Q2MjNjNDUwYjhmYWFmN2Y4NTIzNGE1YWNiMGYxZmE3MTFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
aApAQCAtMTY1LDcgKzE2NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB0cmFja1NldHRpbmdzQ2hh
bmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwogICAgIHZvaWQgdHJhY2tFbmFi
bGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwogCi0gICAgV2Vha1B0
cjxNZWRpYVN0cmVhbVRyYWNrPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPE1lZGlhU3RyZWFtVHJhY2s+IGNy
ZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRo
aXMpOyB9CiAKICAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKICAgICBSZWY8TWVk
aWFTdHJlYW1UcmFja1ByaXZhdGU+IG1fcHJpdmF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3lzdGVtL21hYy9TeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1N5c3RlbVNsZWVwTGlzdGVuZXJNYWMubW0KaW5k
ZXggMGI1YTBmNTgwNjZiM2E2ZWQwOWJmMDJiMzg3OTIxZmVhMTIyZjgzMi4uNmQ1M2E3YmZkMGQ4
ZjdhY2VkMTJlN2NkZWYyMTZlMjhjZDI5ZmRmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zeXN0ZW0vbWFjL1N5c3RlbVNsZWVwTGlzdGVuZXJNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1N5c3RlbVNsZWVwTGlzdGVuZXJNYWMubW0KQEAg
LTQwLDE0ICs0MCwxMyBAQCBzdGQ6OnVuaXF1ZV9wdHI8U3lzdGVtU2xlZXBMaXN0ZW5lcj4gU3lz
dGVtU2xlZXBMaXN0ZW5lcjo6Y3JlYXRlKENsaWVudCYgY2xpZW50KQogCiBTeXN0ZW1TbGVlcExp
c3RlbmVyTWFjOjpTeXN0ZW1TbGVlcExpc3RlbmVyTWFjKENsaWVudCYgY2xpZW50KQogICAgIDog
U3lzdGVtU2xlZXBMaXN0ZW5lcihjbGllbnQpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMp
CiAgICAgLCBtX3NsZWVwT2JzZXJ2ZXIobmlsKQogICAgICwgbV93YWtlT2JzZXJ2ZXIobmlsKQog
ewogICAgIE5TTm90aWZpY2F0aW9uQ2VudGVyICpjZW50ZXIgPSBbW05TV29ya3NwYWNlIHNoYXJl
ZFdvcmtzcGFjZV0gbm90aWZpY2F0aW9uQ2VudGVyXTsKICAgICBOU09wZXJhdGlvblF1ZXVlICpx
dWV1ZSA9IFtOU09wZXJhdGlvblF1ZXVlIG1haW5RdWV1ZV07CiAKLSAgICBhdXRvIHdlYWtUaGlz
ID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgYXV0byB3ZWFrVGhpcyA9
IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiAKICAgICBtX3NsZWVwT2Jz
ZXJ2ZXIgPSBbY2VudGVyIGFkZE9ic2VydmVyRm9yTmFtZTpOU1dvcmtzcGFjZVdpbGxTbGVlcE5v
dGlmaWNhdGlvbiBvYmplY3Q6bmlsIHF1ZXVlOnF1ZXVlIHVzaW5nQmxvY2s6XihOU05vdGlmaWNh
dGlvbiAqKSB7CiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzXSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcAppbmRleCBkMmRlMWYzNjI5MzA5ZTVkNjhhOWI3NTFkZWJhMjhkNzU1NWFlZGU4
Li5lNDE1NWQxOGQ1MWRkMDBkZTdmOGE0MGNlYmVlZjMyMzYwOWRlNmI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHAKQEAgLTEwOSw3ICsxMDksNiBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwog
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIDogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QocmVuZGVy
ZXItPm5vZGUoKSkKICAgICAsIG1fcmVuZGVyZXIocmVuZGVyZXIpCi0gICAgLCBtX3dlYWtQdHJG
YWN0b3J5KHRoaXMpCiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIG1fcmVuZGVyZXItPnNldEhhc0FY
T2JqZWN0KHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAppbmRleCA4OTUzZWNkNGZiODkyNTQyODVlZWIx
MzNlMzNhZTQ0NzJhNjViZjk2Li5hNTA3MTU3MDRhZGYyMjRkZTY3YTM2MWUwZWMwNDJiYzEyNjQ5
MWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuaApAQCAtMjAwLDcgKzIwMCw3IEBAIHB1YmxpYzoKIAogICAg
IFN0cmluZyBwYXNzd29yZEZpZWxkVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICBX
ZWFrUHRyPEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVy
biBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZh
Y3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoUmVuZGVyT2JqZWN0Kik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCmluZGV4IDAwNjYxY2U5MmIwNmZjODEzZGQyNWFj
N2Q0NjEzNDM1Y2I5NmI4MzYuLmRiYzU1NjZlMzVlNGVmMzgxMTRjMmRjMDZjNGFkZThmM2U0M2Uz
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCkBAIC02MCw3
ICs2MCw2IEBAIFJlZlB0cjxXZWJBbmltYXRpb24+IFdlYkFuaW1hdGlvbjo6Y3JlYXRlKEFuaW1h
dGlvbkVmZmVjdCogZWZmZWN0LCBBbmltYXRpb25UaW1lCiBXZWJBbmltYXRpb246OldlYkFuaW1h
dGlvbihBbmltYXRpb25FZmZlY3QqIGVmZmVjdCwgQW5pbWF0aW9uVGltZWxpbmUqIHRpbWVsaW5l
KQogICAgIDogbV9lZmZlY3QoZWZmZWN0KQogICAgICwgbV90aW1lbGluZSh0aW1lbGluZSkKLSAg
ICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKICAgICBpZiAobV9lZmZlY3QpCiAgICAgICAg
IG1fZWZmZWN0LT5zZXRBbmltYXRpb24odGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2Vi
QW5pbWF0aW9uLmgKaW5kZXggYjAxNzNiNmUzNWRjMGRhYmJhNjFmNjA5OThlZWViZTM3YzUwZTZm
NS4uZDZmYjBhMDBkYTE5MmM2ZDFlZGJkNGRiYWU2ZDQxM2ZlYTYyOTk2NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAg
ICAgQW5pbWF0aW9uRWZmZWN0KiBlZmZlY3QoKSBjb25zdCB7IHJldHVybiBtX2VmZmVjdC5nZXQo
KTsgfQogICAgIEFuaW1hdGlvblRpbWVsaW5lKiB0aW1lbGluZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dGltZWxpbmUuZ2V0KCk7IH0KIAotICAgIFdlYWtQdHI8V2ViQW5pbWF0aW9uPiBjcmVhdGVXZWFr
UHRyKCkgY29uc3QgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0K
KyAgICBXZWFrUHRyPFdlYkFuaW1hdGlvbj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vh
a1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogcHJpdmF0ZToKICAgICBXZWJB
bmltYXRpb24oQW5pbWF0aW9uRWZmZWN0KiwgQW5pbWF0aW9uVGltZWxpbmUqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Rm9udEZhY2UuY3BwCmluZGV4IDgyNTMxZmY4NTMyNzgyOGI5ZjlkNzc2MWIyOWI3OWE2Njg0N2M4
ODEuLjk2NmI3ZmFkZjQ5YjBmM2ViMDhiNzQ2ODI2YTg5ZGViNWQwMWJiNjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0ZvbnRGYWNlLmNwcApAQCAtMTIwLDE2ICsxMjAsMTQgQEAgUmVmPEZvbnRGYWNlPiBGb250RmFj
ZTo6Y3JlYXRlKENTU0ZvbnRGYWNlJiBmYWNlKQogfQogCiBGb250RmFjZTo6Rm9udEZhY2UoQ1NT
Rm9udFNlbGVjdG9yJiBmb250U2VsZWN0b3IpCi0gICAgOiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMp
Ci0gICAgLCBtX2JhY2tpbmcoQ1NTRm9udEZhY2U6OmNyZWF0ZSgmZm9udFNlbGVjdG9yLCBudWxs
cHRyLCB0aGlzKSkKKyAgICA6IG1fYmFja2luZyhDU1NGb250RmFjZTo6Y3JlYXRlKCZmb250U2Vs
ZWN0b3IsIG51bGxwdHIsIHRoaXMpKQogICAgICwgbV9sb2FkZWRQcm9taXNlKCp0aGlzLCAmRm9u
dEZhY2U6OmxvYWRlZFByb21pc2VSZXNvbHZlKQogewogICAgIG1fYmFja2luZy0+YWRkQ2xpZW50
KCp0aGlzKTsKIH0KIAogRm9udEZhY2U6OkZvbnRGYWNlKENTU0ZvbnRGYWNlJiBmYWNlKQotICAg
IDogbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQotICAgICwgbV9iYWNraW5nKGZhY2UpCisgICAgOiBt
X2JhY2tpbmcoZmFjZSkKICAgICAsIG1fbG9hZGVkUHJvbWlzZSgqdGhpcywgJkZvbnRGYWNlOjps
b2FkZWRQcm9taXNlUmVzb2x2ZSkKIHsKICAgICBtX2JhY2tpbmctPmFkZENsaWVudCgqdGhpcyk7
CkBAIC0xNDAsOSArMTM4LDkgQEAgRm9udEZhY2U6On5Gb250RmFjZSgpCiAgICAgbV9iYWNraW5n
LT5yZW1vdmVDbGllbnQoKnRoaXMpOwogfQogCi1XZWFrUHRyPEZvbnRGYWNlPiBGb250RmFjZTo6
Y3JlYXRlV2Vha1B0cigpIGNvbnN0CitXZWFrUHRyPEZvbnRGYWNlPiBGb250RmFjZTo6Y3JlYXRl
V2Vha1B0cigpCiB7Ci0gICAgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigp
OworICAgIHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOwogfQog
CiBSZWZQdHI8Q1NTVmFsdWU+IEZvbnRGYWNlOjpwYXJzZVN0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZywgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0ZvbnRGYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuaAppbmRleCBj
NzFjZTAzYzBmMGE1ZDdiODdlOTM0ZmNlMzY4YTJmZmYzN2QzNmE4Li4yZjRjODg5NDNjYmRlNzY2
MTcyMmMwNGNlNmRjNmJlMjY1Yzk4NTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Rm9udEZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuaApAQCAtODUsNyAr
ODUsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZvbnRTdGF0ZUNoYW5nZWQoQ1NTRm9udEZhY2Um
LCBDU1NGb250RmFjZTo6U3RhdHVzIG9sZFN0YXRlLCBDU1NGb250RmFjZTo6U3RhdHVzIG5ld1N0
YXRlKSBmaW5hbDsKIAotICAgIFdlYWtQdHI8Rm9udEZhY2U+IGNyZWF0ZVdlYWtQdHIoKSBjb25z
dDsKKyAgICBXZWFrUHRyPEZvbnRGYWNlPiBjcmVhdGVXZWFrUHRyKCk7CiAKICAgICB2b2lkIHJl
ZigpIGZpbmFsIHsgUmVmQ291bnRlZDo6cmVmKCk7IH0KICAgICB2b2lkIGRlcmVmKCkgZmluYWwg
eyBSZWZDb3VudGVkOjpkZXJlZigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVTaGVldENvbnRlbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRl
bnRzLmgKaW5kZXggMTkwNzU1ODhmY2Q0YzhiZDMwMmQ4ZjQwMTZkZmExZjU0NGJkNTRmMS4uOGMw
YjRkYTMxMzVkYzgwZTYwYjJjN2ZjMGExODZmZGMzZGIxZWEyMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVNoZWV0Q29udGVudHMuaApAQCAtMTQzLDcgKzE0Myw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgc2hyaW5rVG9GaXQoKTsKIAotICAgIFdlYWtQdHI8U3R5bGVTaGVldENvbnRlbnRzPiBj
cmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7
IH0KKyAgICBXZWFrUHRyPFN0eWxlU2hlZXRDb250ZW50cz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0
dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogcHJpdmF0ZToK
ICAgICBXRUJDT1JFX0VYUE9SVCBTdHlsZVNoZWV0Q29udGVudHMoU3R5bGVSdWxlSW1wb3J0KiBv
d25lclJ1bGUsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxVUkwsIGNvbnN0IENTU1BhcnNlckNvbnRl
eHQmKTsKQEAgLTE3NSw3ICsxNzUsNyBAQCBwcml2YXRlOgogCiAgICAgVmVjdG9yPENTU1N0eWxl
U2hlZXQqPiBtX2NsaWVudHM7CiAgICAgCi0gICAgV2Vha1B0ckZhY3Rvcnk8U3R5bGVTaGVldENv
bnRlbnRzPiBtX3dlYWtQdHJGYWN0b3J5IHsgdGhpcyB9OworICAgIFdlYWtQdHJGYWN0b3J5PFN0
eWxlU2hlZXRDb250ZW50cz4gbV93ZWFrUHRyRmFjdG9yeTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVt
TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwCmlu
ZGV4IDZmNmMwZmE4ZDlmNWNkNmIwYmMyNDk3NzcwMDk1ODU5YTU2MGY2OWQuLjc1YzY3ZTBjMTBi
ODQ4ZDRmMTlmYmYyOTBmMTY3ZTdlMjEzZmFlMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rh
dGFUcmFuc2Zlckl0ZW1MaXN0LmNwcApAQCAtNDEsOCArNDEsNyBAQCBzdGF0aWMgYm9vbCBpc1N1
cHBvcnRlZFR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQogfQogCiBEYXRhVHJhbnNmZXJJdGVtTGlz
dDo6RGF0YVRyYW5zZmVySXRlbUxpc3QoRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIpCi0gICAg
OiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0gICAgLCBtX2RhdGFUcmFuc2ZlcihkYXRhVHJhbnNm
ZXIpCisgICAgOiBtX2RhdGFUcmFuc2ZlcihkYXRhVHJhbnNmZXIpCiB7CiB9CiAKQEAgLTgxLDcg
KzgwLDcgQEAgRXhjZXB0aW9uT3I8UmVmUHRyPERhdGFUcmFuc2Zlckl0ZW0+PiBEYXRhVHJhbnNm
ZXJJdGVtTGlzdDo6YWRkKGNvbnN0IFN0cmluZyYgZGEKIAogICAgIG1fZGF0YVRyYW5zZmVyLnBh
c3RlYm9hcmQoKS53cml0ZVN0cmluZyhsb3dlcmNhc2VkVHlwZSwgZGF0YSk7CiAgICAgQVNTRVJU
KG1faXRlbXMpOwotICAgIG1faXRlbXMtPmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUo
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIGxvd2VyY2FzZWRUeXBlKSk7CisgICAg
bV9pdGVtcy0+YXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShtX3dlYWtQdHJGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIoKnRoaXMpLCBsb3dlcmNhc2VkVHlwZSkpOwogICAgIHJldHVybiBSZWZQ
dHI8RGF0YVRyYW5zZmVySXRlbT4geyBtX2l0ZW1zLT5sYXN0KCkuY29weVJlZigpIH07CiB9CiAK
QEAgLTEyOSwxMyArMTI4LDEzIEBAIFZlY3RvcjxSZWY8RGF0YVRyYW5zZmVySXRlbT4+JiBEYXRh
VHJhbnNmZXJJdGVtTGlzdDo6ZW5zdXJlSXRlbXMoKSBjb25zdAogICAgIGZvciAoYXV0byYgdHlw
ZSA6IG1fZGF0YVRyYW5zZmVyLnR5cGVzKCkpIHsKICAgICAgICAgYXV0byBsb3dlcmNhc2VkVHlw
ZSA9IHR5cGUuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKICAgICAgICAgaWYgKGlzU3VwcG9y
dGVkVHlwZShsb3dlcmNhc2VkVHlwZSkpCi0gICAgICAgICAgICBpdGVtcy5hcHBlbmQoRGF0YVRy
YW5zZmVySXRlbTo6Y3JlYXRlKG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCBsb3dl
cmNhc2VkVHlwZSkpOworICAgICAgICAgICAgaXRlbXMuYXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06
OmNyZWF0ZShtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKmNvbnN0X2Nhc3Q8RGF0YVRy
YW5zZmVySXRlbUxpc3QqPih0aGlzKSksIGxvd2VyY2FzZWRUeXBlKSk7CiAgICAgfQogCiAgICAg
Zm9yIChhdXRvJiBmaWxlIDogbV9kYXRhVHJhbnNmZXIuZmlsZXMoKS5maWxlcygpKSB7CiAgICAg
ICAgIGF1dG8gdHlwZSA9IEZpbGU6OmNvbnRlbnRUeXBlRm9yRmlsZShmaWxlLT5wYXRoKCkpLmNv
bnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCk7CiAgICAgICAgIGlmIChpc1N1cHBvcnRlZFR5cGUodHlw
ZSkgfHwgZmlsZS0+aXNEaXJlY3RvcnkoKSkKLSAgICAgICAgICAgIGl0ZW1zLmFwcGVuZChEYXRh
VHJhbnNmZXJJdGVtOjpjcmVhdGUobV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIHR5
cGUsIGZpbGUuY29weVJlZigpKSk7CisgICAgICAgICAgICBpdGVtcy5hcHBlbmQoRGF0YVRyYW5z
ZmVySXRlbTo6Y3JlYXRlKG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqY29uc3RfY2Fz
dDxEYXRhVHJhbnNmZXJJdGVtTGlzdCo+KHRoaXMpKSwgdHlwZSwgZmlsZS5jb3B5UmVmKCkpKTsK
ICAgICB9CiAKICAgICBtX2l0ZW1zID0gV1RGTW92ZShpdGVtcyk7CkBAIC0xODEsNyArMTgwLDcg
QEAgdm9pZCBEYXRhVHJhbnNmZXJJdGVtTGlzdDo6ZGlkU2V0U3RyaW5nRGF0YShjb25zdCBTdHJp
bmcmIHR5cGUpCiAgICAgU3RyaW5nIGxvd2VyY2FzZWRUeXBlID0gdHlwZS5jb252ZXJ0VG9BU0NJ
SUxvd2VyY2FzZSgpOwogICAgIHJlbW92ZVN0cmluZ0l0ZW1PZkxvd2VyY2FzZWRUeXBlKCptX2l0
ZW1zLCB0eXBlLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCkpOwogCi0gICAgbV9pdGVtcy0+YXBw
ZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKSwgbG93ZXJjYXNlZFR5cGUpKTsKKyAgICBtX2l0ZW1zLT5hcHBlbmQoRGF0YVRyYW5zZmVy
SXRlbTo6Y3JlYXRlKG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIGxvd2Vy
Y2FzZWRUeXBlKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGNlZTNhMmNi
ZTU2YTAxMmY0ZDYyMDcxMTI2MGQ0MDA2YzRlMzQ3YzUuLjI4NDUxNDk2YTU3ODQ2MDZjMzU3Y2Fm
ZDE4ZWQwNjI1MmZhNTc3NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDY5LDcgKzQ2
OSw2IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsLCB1
bnNpZ25lZCBkb2N1bWVudENsYXNzZXMsIHVuc2lnCiAgICAgLCBtX2NvbnN0YW50UHJvcGVydHlN
YXAoc3RkOjptYWtlX3VuaXF1ZTxDb25zdGFudFByb3BlcnR5TWFwPigqdGhpcykpCiAgICAgLCBt
X2RvY3VtZW50Q2xhc3Nlcyhkb2N1bWVudENsYXNzZXMpCiAgICAgLCBtX2V2ZW50UXVldWUoKnRo
aXMpCi0gICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQogICAgICwgbV9mdWxsU2NyZWVuQ2hhbmdlRGVsYXlUaW1lcigqdGhpcywgJkRvY3VtZW50Ojpm
dWxsU2NyZWVuQ2hhbmdlRGVsYXlUaW1lckZpcmVkKQogI2VuZGlmCkBAIC01NjI3LDcgKzU2MjYs
NyBAQCB2b2lkIERvY3VtZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNz
YWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZwogCiB2b2lkIERvY3VtZW50Ojpwb3N0VGFzayhU
YXNrJiYgdGFzaykKIHsKLSAgICBjYWxsT25NYWluVGhyZWFkKFtkb2N1bWVudFJlZmVyZW5jZSA9
IG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCB0YXNrID0gV1RGTW92ZSh0YXNrKV0oKSBt
dXRhYmxlIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtkb2N1bWVudFJlZmVyZW5jZSA9IG1fd2Vh
a0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIHRhc2sgPSBXVEZNb3ZlKHRhc2spXSgpIG11
dGFibGUgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAgICAgICAgIERvY3Vt
ZW50KiBkb2N1bWVudCA9IGRvY3VtZW50UmVmZXJlbmNlLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAppbmRleCBlMDA5NWZlYTAyMWNiNDQ1Yzg3ZmY2NmRmYjE0MDlmMzlkZWY0NGE1Li43YTVkMWFl
ZTBlYzkyNWFlMDZlNjhiN2NlZjdhYjEyMzQzOWJhNDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApA
QCAtMTI3Miw3ICsxMjcyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNDYXB0dXJpbmcoKSBjb25z
dCB7IHJldHVybiBNZWRpYVByb2R1Y2VyOjppc0NhcHR1cmluZyhtX21lZGlhU3RhdGUpOyB9CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVJc1BsYXlpbmdNZWRpYSh1aW50NjRfdCA9IEhU
TUxNZWRpYUVsZW1lbnRJbnZhbGlkSUQpOwogICAgIHZvaWQgcGFnZU11dGVkU3RhdGVEaWRDaGFu
Z2UoKTsKLSAgICBXZWFrUHRyPERvY3VtZW50PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93
ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPERvY3VtZW50PiBjcmVh
dGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsg
fQogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICB2b2lkIGFkZFBs
YXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGYxMjJjMDc4Y2EyNzA0
MzA0ZjllN2I2MjBhN2E1NDE4ZmMwMzQyYzQuLjE3MDBiZDYyNTVlZjE3NGM2YWZiOTg1NGNmZmUy
NTg4ZWNmODNkZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApA
QCAtNDExLDcgKzQxMSw2IEBAIHN0YXRpYyB1aW50NjRfdCBuZXh0TG9nSWRlbnRpZmllcigpCiBI
VE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCiAgICAgOiBI
VE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIEFjdGl2ZURPTU9iamVjdCgmZG9j
dW1lbnQpCi0gICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCiAgICAgLCBtX3BlbmRpbmdBY3Rpb25U
aW1lcigqdGhpcywgJkhUTUxNZWRpYUVsZW1lbnQ6OnBlbmRpbmdBY3Rpb25UaW1lckZpcmVkKQog
ICAgICwgbV9wcm9ncmVzc0V2ZW50VGltZXIoKnRoaXMsICZIVE1MTWVkaWFFbGVtZW50Ojpwcm9n
cmVzc0V2ZW50VGltZXJGaXJlZCkKICAgICAsIG1fcGxheWJhY2tQcm9ncmVzc1RpbWVyKCp0aGlz
LCAmSFRNTE1lZGlhRWxlbWVudDo6cGxheWJhY2tQcm9ncmVzc1RpbWVyRmlyZWQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IGMzM2FiOWI4ODBmOWVhNDgyOTI2MmYz
ZGU3M2ZkNjAzMTIwNzhhZTQuLmM4NDE4ZjE1NWFkYmM4ZmRlNTY5ZWNmNjI2MjRiYmVhZTQzMGJj
M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0xNDUsNyArMTQ1
LDcgQEAgY2xhc3MgSFRNTE1lZGlhRWxlbWVudAogI2VuZGlmCiB7CiBwdWJsaWM6Ci0gICAgV2Vh
a1B0cjxIVE1MTWVkaWFFbGVtZW50PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPEhUTUxNZWRpYUVsZW1lbnQ+IGNy
ZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMp
OyB9CiAgICAgTWVkaWFQbGF5ZXIqIHBsYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWVyLmdl
dCgpOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNWaWRlbygpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuaAppbmRleCA4NGJkNjZl
NTNkYjY2NDZlZTBmMTk5Yjg2NWQ1YTY2YmY1M2U0OGFhLi4wY2I0NzgxZGE1ZjNlYWIxODAyMDVm
MWJiMTk4ZWNhMmI3MWE2YWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
aWN0dXJlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVt
ZW50LmgKQEAgLTQzLDE0ICs0MywxNCBAQCBwdWJsaWM6CiAKICAgICBib29sIHZpZXdwb3J0Q2hh
bmdlQWZmZWN0ZWRQaWN0dXJlKCkgY29uc3Q7CiAKLSAgICBXZWFrUHRyPEhUTUxQaWN0dXJlRWxl
bWVudD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0
cigpOyB9CisgICAgV2Vha1B0cjxIVE1MUGljdHVyZUVsZW1lbnQ+IGNyZWF0ZVdlYWtQdHIoKSB7
IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKIHByaXZhdGU6
CiAgICAgSFRNTFBpY3R1cmVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OwogCiAgICAgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCYgb2xkRG9jdW1lbnQs
IERvY3VtZW50JiBuZXdEb2N1bWVudCkgZmluYWw7CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxIVE1M
UGljdHVyZUVsZW1lbnQ+IG1fd2Vha0ZhY3RvcnkgeyB0aGlzIH07CisgICAgV2Vha1B0ckZhY3Rv
cnk8SFRNTFBpY3R1cmVFbGVtZW50PiBtX3dlYWtGYWN0b3J5OwogICAgIFZlY3RvcjxNZWRpYVF1
ZXJ5UmVzdWx0PiBtX3ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyeVJlc3VsdHM7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUmVzb3VyY2VQcmVsb2Fk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRlci5o
CmluZGV4IGNkMTBmODVkZTkxMDRhNTBhOTRkNWRiZThjMzEzOTczODBlOTRkOGMuLmFhMmM3ODJk
ZTA1ODM3ZjUyMjg2MzlmOTZiMDgzMmUzM2I1Y2NhYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRlci5oCkBAIC03NywxNCArNzcsMTMg
QEAgY2xhc3MgSFRNTFJlc291cmNlUHJlbG9hZGVyIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBI
VE1MUmVzb3VyY2VQcmVsb2FkZXIoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgICAgICA6IG1fZG9j
dW1lbnQoZG9jdW1lbnQpCi0gICAgICAgICwgbV93ZWFrRmFjdG9yeSh0aGlzKQogICAgIHsKICAg
ICB9CiAKICAgICB2b2lkIHByZWxvYWQoUHJlbG9hZFJlcXVlc3RTdHJlYW0pOwogICAgIHZvaWQg
cHJlbG9hZChzdGQ6OnVuaXF1ZV9wdHI8UHJlbG9hZFJlcXVlc3Q+KTsKIAotICAgIFdlYWtQdHI8
SFRNTFJlc291cmNlUHJlbG9hZGVyPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPEhUTUxSZXNvdXJjZVByZWxvYWRl
cj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigq
dGhpcyk7IH0KIAogcHJpdmF0ZToKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9MaW5rTG9hZGVyLmNwcAppbmRleCA3Mjc5NWIwZTAzZTI3MWQ0ZWRhYmM2MDI0NjUy
NDU1ZDFmY2M4MDZlLi4yYjE2MTMyNjQzMGMxMGQ1OTI0MjhkMTViNDg3NzJiZWY2YTY5MDNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCkBAIC01Nyw3ICs1Nyw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogTGlua0xvYWRlcjo6TGlua0xvYWRlcihMaW5rTG9hZGVyQ2xpZW50
JiBjbGllbnQpCiAgICAgOiBtX2NsaWVudChjbGllbnQpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5
KHRoaXMpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9h
ZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5oCmluZGV4IGRlM2FlYTc1
ZDI0ZWY2NzU1YWQyYWQ1Mzg4YmQ2YWZkMjM4ODRiMTQuLjE3NTVmNjExNjE3ZGVjZDMwZWNmZDYw
YmM0OGIzYjIwMjE2ZGQyODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5r
TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuaApAQCAtNTgs
NyArNTgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgbG9hZExpbmtzRnJvbUhlYWRlcihj
b25zdCBTdHJpbmcmIGhlYWRlclZhbHVlLCBjb25zdCBVUkwmIGJhc2VVUkwsIERvY3VtZW50Jiwg
TWVkaWFBdHRyaWJ1dGVDaGVjayk7CiAgICAgc3RhdGljIGJvb2wgaXNTdXBwb3J0ZWRUeXBlKENh
Y2hlZFJlc291cmNlOjpUeXBlLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKIAotICAgIFdlYWtQ
dHI8TGlua0xvYWRlcj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxMaW5rTG9hZGVyPiBjcmVhdGVXZWFrUHRy
KCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogICAg
IHZvaWQgdHJpZ2dlckV2ZW50cyhjb25zdCBDYWNoZWRSZXNvdXJjZSYpOwogICAgIHZvaWQgY2Fu
Y2VsTG9hZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNv
dXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRl
ci5jcHAKaW5kZXggYzQwN2E3Y2Y1OTAwOGQ3NDMwM2NiMjg1NTEyN2U0NWNkNmFkOTRmYi4uYjJl
MTYwNTZmYzcwOGZiM2E4MTVmYzgwNDY0ZTEyOTc2ZGE0NzkwNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcApAQCAtNDUsNyArNDUsNiBAQCBNZWRp
YVJlc291cmNlTG9hZGVyOjpNZWRpYVJlc291cmNlTG9hZGVyKERvY3VtZW50JiBkb2N1bWVudCwg
SFRNTE1lZGlhRWxlbWVudCYgbQogICAgICwgbV9kb2N1bWVudCgmZG9jdW1lbnQpCiAgICAgLCBt
X21lZGlhRWxlbWVudChtZWRpYUVsZW1lbnQuY3JlYXRlV2Vha1B0cigpKQogICAgICwgbV9jcm9z
c09yaWdpbk1vZGUoY3Jvc3NPcmlnaW5Nb2RlKQotICAgICwgbV93ZWFrRmFjdG9yeSh0aGlzKQog
ewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxv
YWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuaAppbmRl
eCA1YTEwYmYzYzY5ODRhNGFjMzEzOTZhZDkwNWNmNDkxMjkyZjEzYWZjLi5iMDA0YjdhZDFkMThh
ZTc3MWQ3MmFkODgyMzc0OWQzMjUzNzEyNjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9N
ZWRpYVJlc291cmNlTG9hZGVyLmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIFZlY3Rv
cjxSZXNvdXJjZVJlc3BvbnNlPiByZXNwb25zZXNGb3JUZXN0aW5nKCkgY29uc3QgeyByZXR1cm4g
bV9yZXNwb25zZXNGb3JUZXN0aW5nOyB9CiAgICAgdm9pZCBhZGRSZXNwb25zZUZvclRlc3Rpbmco
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogCi0gICAgV2Vha1B0cjxjb25zdCBNZWRpYVJlc291
cmNlTG9hZGVyPiBjcmVhdGVXZWFrUHRyKCkgY29uc3QgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPGNvbnN0IE1lZGlhUmVzb3VyY2VMb2FkZXI+
IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRo
aXMpOyB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggOTJmNWI5MDVjZTEwYTk0ZTA4MmZkNjY1
MmNlNjE5NzBiZTFhOGIyYS4uODdiYTlkOGQ3YTRlNzA0OGMyNjUwNWI1YjU5YWEyYTllYzUwNTRm
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMzk0LDcgKzM5NCw2IEBAIHZvaWQg
RE9NV2luZG93OjpzZXRDYW5TaG93TW9kYWxEaWFsb2dPdmVycmlkZShib29sIGFsbG93KQogRE9N
V2luZG93OjpET01XaW5kb3coRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogQ29udGV4dERlc3Ry
dWN0aW9uT2JzZXJ2ZXIoJmRvY3VtZW50KQogICAgICwgRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVy
KGRvY3VtZW50LmZyYW1lKCkpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiAgICAg
QVNTRVJUKGZyYW1lKCkpOwogICAgIGFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodGhpcywgJmxh
bmd1YWdlc0NoYW5nZWRDYWxsYmFjayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCBhYjMy
N2JkZDMyMTliMzE0MjZjYWE4OWZmMTBlOTdhZGRmNzRjZGNkLi5kNmQ0ZDE4NDk0ODZjMWYxYzI5
YjU5OWQwMTBjNzhlMjUxMzgzNmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTMyNSw3
ICszMjUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmFibGVTdWRkZW5UZXJtaW5hdGlvbigpOwog
ICAgIHZvaWQgZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCk7CiAKLSAgICBXZWFrUHRyPERPTVdp
bmRvdz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vh
a1B0cigpOyB9CisgICAgV2Vha1B0cjxET01XaW5kb3c+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVy
biBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgRE9NV2luZG93KERvY3VtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0dlbmVyaWNUYXNrUXVldWUuY3BwCmluZGV4IDBhNjU1MjA2YjUwODBkNjhkOThhMjQzMjRl
ZGUwNzE0NDM4ZWQ5MzEuLmFiMDg4NjJkM2RlNjlkYTI5MTM1MWQ5MmY2M2E2NGEyMzc4Y2Y5ZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuY3BwCkBAIC0z
MiwxNCArMzIsMTMgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogVGFza0Rpc3BhdGNoZXI8VGlt
ZXI+OjpUYXNrRGlzcGF0Y2hlcigpCi0gICAgOiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiB9
CiAKIHZvaWQgVGFza0Rpc3BhdGNoZXI8VGltZXI+Ojpwb3N0VGFzayhGdW5jdGlvbjx2b2lkKCk+
JiYgZnVuY3Rpb24pCiB7CiAgICAgbV9wZW5kaW5nVGFza3MuYXBwZW5kKFdURk1vdmUoZnVuY3Rp
b24pKTsKLSAgICBwZW5kaW5nRGlzcGF0Y2hlcnMoKS5hcHBlbmQobV93ZWFrUHRyRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCkpOworICAgIHBlbmRpbmdEaXNwYXRjaGVycygpLmFwcGVuZChtX3dlYWtQ
dHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpKTsKICAgICBpZiAoIXNoYXJlZFRpbWVyKCku
aXNBY3RpdmUoKSkKICAgICAgICAgc2hhcmVkVGltZXIoKS5zdGFydE9uZVNob3QoMF9zKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuaAppbmRleCA1ZDY0OThj
MmU5Y2NmZmFjNzVkMDcwM2IwYWUyYWY2YWI4YzUxZTI3Li4wMmMwYWI5YzJjN2Y4OWY3Yzg2YTY3
MTBkNjc5YmQwMWJiOTllOGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9H
ZW5lcmljVGFza1F1ZXVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VuZXJpY1Rh
c2tRdWV1ZS5oCkBAIC03MCwxNCArNzAsMTIgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFz
cyBHZW5lcmljVGFza1F1ZXVlIHsKIHB1YmxpYzoKICAgICBHZW5lcmljVGFza1F1ZXVlKCkKLSAg
ICAgICAgOiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0gICAgICAgICwgbV9kaXNwYXRjaGVyKCkK
KyAgICAgICAgOiBtX2Rpc3BhdGNoZXIoKQogICAgIHsKICAgICB9CiAKICAgICBHZW5lcmljVGFz
a1F1ZXVlKFQmIHQpCi0gICAgICAgIDogbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQotICAgICAgICAs
IG1fZGlzcGF0Y2hlcih0KQorICAgICAgICA6IG1fZGlzcGF0Y2hlcih0KQogICAgIHsKICAgICB9
CiAKQEAgLTg5LDcgKzg3LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAg
ICAgICsrbV9wZW5kaW5nVGFza3M7Ci0gICAgICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICAgICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0
ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiAgICAgICAgIG1fZGlzcGF0Y2hlci5wb3N0
VGFzayhbd2Vha1RoaXMsIHRhc2sgPSBXVEZNb3ZlKHRhc2spXSB7CiAgICAgICAgICAgICBpZiAo
IXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxhYmxlQXJlYS5oCmluZGV4IDRiODIwZmUyZWRkMTE4ZmUwMmI1ODE4MDllNjFiMDJk
YjFlNzhlYWUuLjE0YjY1NjFjNWZmMTMzZTAxMWVhY2YyM2ExNzdjY2ZiNzdkNmUxYjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtNjQsNyArNjQsNyBAQCBw
dWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhbmRsZVdoZWVsRXZlbnQoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50Jik7CiAKLSAgICBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiBjcmVh
dGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0K
KyAgICBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93
ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiAjaWYgRU5BQkxFKENTU19T
Q1JPTExfU05BUCkKICAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBWZWN0b3I8TGF5b3V0VW5pdD4q
IGhvcml6b250YWxTbmFwT2Zmc2V0cygpIGNvbnN0OwpAQCAtMzU0LDcgKzM1NCw3IEBAIHByaXZh
dGU6CiAKICAgICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxBbmltYXRvcj4gbV9zY3Jv
bGxBbmltYXRvcjsKIAotICAgIFdlYWtQdHJGYWN0b3J5PFNjcm9sbGFibGVBcmVhPiBtX3dlYWtQ
dHJGYWN0b3J5IHsgdGhpcyB9OworICAgIFdlYWtQdHJGYWN0b3J5PFNjcm9sbGFibGVBcmVhPiBt
X3dlYWtQdHJGYWN0b3J5OwogCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8U2Nyb2xsU25hcE9mZnNldHNJbmZvPExheW91dFVuaXQ+PiBtX3NuYXBPZmZz
ZXRzSW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCmluZGV4IDA1MGQ0ZDk5
YmUwNjY1MTFhYzEzNTZiN2M4NWFkYThkMTdmNGQ4ZjUuLjllZTkzODEyNmFkNDU1MDhmMDQ1ZjRi
NTk5YjE1MmRmYjFiZDhhMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGJhci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcApA
QCAtNzcsNyArNzcsNiBAQCBTY3JvbGxiYXI6OlNjcm9sbGJhcihTY3JvbGxhYmxlQXJlYSYgc2Ny
b2xsYWJsZUFyZWEsIFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudAogICAgICwgbV9zdXBwcmVz
c0ludmFsaWRhdGlvbihmYWxzZSkKICAgICAsIG1faXNBbHBoYUxvY2tlZChmYWxzZSkKICAgICAs
IG1faXNDdXN0b21TY3JvbGxiYXIoaXNDdXN0b21TY3JvbGxiYXIpCi0gICAgLCBtX3dlYWtQdHJG
YWN0b3J5KHRoaXMpCiB7CiAgICAgdGhlbWUoKS5yZWdpc3RlclNjcm9sbGJhcigqdGhpcyk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmgKaW5kZXggZTI1NjA4MWI3NTdmMTA5YWY0MmY5
Y2M4OGU1Zjc4NDY0OTFjMDMxMy4uMWE4NmJmMzMyNWJjYjczMTc4MTdlNjdkYWQxMTEyYjRkY2Ew
MmVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmgKQEAgLTEzMyw3ICsxMzMsNyBA
QCBwdWJsaWM6CiAKICAgICBib29sIHN1cHBvcnRzVXBkYXRlT25TZWNvbmRhcnlUaHJlYWQoKSBj
b25zdDsKIAotICAgIFdlYWtQdHI8U2Nyb2xsYmFyPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4g
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPFNjcm9sbGJh
cj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0
cigqdGhpcyk7IH0KIAogcHJvdGVjdGVkOgogICAgIFNjcm9sbGJhcihTY3JvbGxhYmxlQXJlYSYs
IFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxiYXJDb250cm9sU2l6ZSwgU2Nyb2xsYmFyVGhl
bWUqID0gMCwgYm9vbCBpc0N1c3RvbVNjcm9sbGJhciA9IGZhbHNlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
V2lkZ2V0LmgKaW5kZXggNzEwZWY3YjY0ZDMxMGYyYjZjNDM3ZGE4YThiZDcyYTRmZWZkOTZmYS4u
YjVjNjc0YWYxYjllNTJhOTUzZTllMWE5OTg3OWU4NTc4OGI3OTc5NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vV2lkZ2V0LmgKQEAgLTE5Myw3ICsxOTMsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCBJbnRQb2ludCBjb252ZXJ0VG9Db250YWluaW5nVmlldyhjb25zdCBJbnRQb2lu
dCYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgSW50UG9pbnQgY29udmVydEZy
b21Db250YWluaW5nVmlldyhjb25zdCBJbnRQb2ludCYpIGNvbnN0OwogCi0gICAgV2Vha1B0cjxX
aWRnZXQ+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKTsgfQorICAgIFdlYWtQdHI8V2lkZ2V0PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4g
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiBwcml2YXRlOgogICAg
IHZvaWQgaW5pdChQbGF0Zm9ybVdpZGdldCk7IC8vIE11c3QgYmUgY2FsbGVkIGJ5IGFsbCBXaWRn
ZXQgY29uc3RydWN0b3JzIHRvIGluaXRpYWxpemUgY3Jvc3MtcGxhdGZvcm0gZGF0YS4KQEAgLTIx
Niw3ICsyMTYsNyBAQCBwcml2YXRlOgogI2Vsc2UKICAgICBSZXRhaW5QdHI8TlNWaWV3PiBtX3dp
ZGdldDsKICNlbmRpZgotICAgIFdlYWtQdHJGYWN0b3J5PFdpZGdldD4gbV93ZWFrUHRyRmFjdG9y
eSB7IHRoaXMgfTsKKyAgICBXZWFrUHRyRmFjdG9yeTxXaWRnZXQ+IG1fd2Vha1B0ckZhY3Rvcnk7
CiAgICAgYm9vbCBtX3NlbGZWaXNpYmxlOwogICAgIGJvb2wgbV9wYXJlbnRWaXNpYmxlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9G
aWxlUmVhZGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCmluZGV4IDBlNDFjYzgwNWJkMDhi
NGI5NjcxNmQ1ZjE3YTllZmUyOWJmOGVkYzUuLjc4OTg2OTMzMmVjOTE1MTVlZGFkZTZhMGVkMzgz
MmNkMWM0NDZjY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCkBA
IC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8QXVkaW9CdXM+IGNyZWF0ZUJ1cyhm
bG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubyk7CiAKIHByaXZhdGU6Ci0gICAgV2Vha1B0
cjxBdWRpb0ZpbGVSZWFkZXI+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0
b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8QXVkaW9GaWxlUmVhZGVyPiBjcmVh
dGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlz
KTsgfQogCiAgICAgc3RhdGljIHZvaWQgZGVpbnRlcmxlYXZlUGFkQWRkZWRDYWxsYmFjayhBdWRp
b0ZpbGVSZWFkZXIqLCBHc3RQYWQqKTsKICAgICBzdGF0aWMgdm9pZCBkZWludGVybGVhdmVSZWFk
eUNhbGxiYWNrKEF1ZGlvRmlsZVJlYWRlciopOwpAQCAtMTA4LDE1ICsxMDgsMTMgQEAgdm9pZCBB
dWRpb0ZpbGVSZWFkZXI6OmRlY29kZWJpblBhZEFkZGVkQ2FsbGJhY2soQXVkaW9GaWxlUmVhZGVy
KiByZWFkZXIsIEdzdFBhZCoKIH0KIAogQXVkaW9GaWxlUmVhZGVyOjpBdWRpb0ZpbGVSZWFkZXIo
Y29uc3QgY2hhciogZmlsZVBhdGgpCi0gICAgOiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0gICAg
LCBtX3J1bkxvb3AoUnVuTG9vcDo6Y3VycmVudCgpKQorICAgIDogbV9ydW5Mb29wKFJ1bkxvb3A6
OmN1cnJlbnQoKSkKICAgICAsIG1fZmlsZVBhdGgoZmlsZVBhdGgpCiB7CiB9CiAKIEF1ZGlvRmls
ZVJlYWRlcjo6QXVkaW9GaWxlUmVhZGVyKGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBkYXRhU2l6
ZSkKLSAgICA6IG1fd2Vha1B0ckZhY3RvcnkodGhpcykKLSAgICAsIG1fcnVuTG9vcChSdW5Mb29w
OjpjdXJyZW50KCkpCisgICAgOiBtX3J1bkxvb3AoUnVuTG9vcDo6Y3VycmVudCgpKQogICAgICwg
bV9kYXRhKGRhdGEpCiAgICAgLCBtX2RhdGFTaXplKGRhdGFTaXplKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1h
Yy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9IYXJkd2FyZUxp
c3RlbmVyTWFjLmNwcAppbmRleCAwYjQ0ZjU5MjEzNTdhNDYyZTM1MTlkY2EyYmY0ZTU0ZmViZTI1
NjM4Li5kYmJkYzlmMGE5N2Y1YmE0OTBjZjUwMWRiMzNjMjI0NTNkNzk4Nzg0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9IYXJkd2FyZUxpc3RlbmVy
TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9IYXJk
d2FyZUxpc3RlbmVyTWFjLmNwcApAQCAtMTIxLDEyICsxMjEsMTEgQEAgUmVmPEF1ZGlvSGFyZHdh
cmVMaXN0ZW5lck1hYz4gQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjOjpjcmVhdGUoQ2xpZW50JiBj
bGllbnQpCiAKIEF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYzo6QXVkaW9IYXJkd2FyZUxpc3RlbmVy
TWFjKENsaWVudCYgY2xpZW50KQogICAgIDogQXVkaW9IYXJkd2FyZUxpc3RlbmVyKGNsaWVudCkK
LSAgICAsIG1fd2Vha0ZhY3RvcnkodGhpcykKIHsKICAgICBzZXRIYXJkd2FyZUFjdGl2aXR5KGlz
QXVkaW9IYXJkd2FyZVByb2Nlc3NSdW5uaW5nKCkpOwogICAgIHNldE91dHB1dERldmljZVN1cHBv
cnRzTG93UG93ZXJNb2RlKGN1cnJlbnREZXZpY2VTdXBwb3J0c0xvd1Bvd2VyQnVmZmVyU2l6ZSgp
KTsKIAotICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsK
KyAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsK
ICAgICBtX2Jsb2NrID0gQmxvY2tfY29weSheKFVJbnQzMiBjb3VudCwgY29uc3QgQXVkaW9PYmpl
Y3RQcm9wZXJ0eUFkZHJlc3MgcHJvcGVydGllc1tdKSB7CiAgICAgICAgIGlmICh3ZWFrVGhpcykK
ICAgICAgICAgICAgIHdlYWtUaGlzLT5wcm9wZXJ0eUNoYW5nZWQoY291bnQsIHByb3BlcnRpZXMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xl
YXJrZXkvQ0RNQ2xlYXJLZXkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVk
bWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuY3BwCmluZGV4IGJlYTMxNGRmMTY0MjQwZjczYTM4
YmFiNzViMzRlZjFhZTE0NWFiYTQuLjQwOTIxNzczMjRhNWYwZmEzMWMwZWI5NzkyZDEzNDVhYTZi
NWJjNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlh
L2NsZWFya2V5L0NETUNsZWFyS2V5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
bmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHAKQEAgLTMwNCw3ICszMDQsNiBA
QCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gQ0RNUHJpdmF0ZUNsZWFyS2V5OjpzYW5pdGl6ZVNlc3Np
b25JZChjb25zdCBTdHJpbmcmIHNlc3NpbwogfQogCiBDRE1JbnN0YW5jZUNsZWFyS2V5OjpDRE1J
bnN0YW5jZUNsZWFyS2V5KCkKLSAgICA6IG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKIH0KIApA
QCAtMzQwLDcgKzMzOSw3IEBAIHZvaWQgQ0RNSW5zdGFuY2VDbGVhcktleTo6cmVxdWVzdExpY2Vu
c2UoTGljZW5zZVR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYsIFJlZjxTCiAgICAgKytzX3Nlc3Np
b25JZFZhbHVlOwogCiAgICAgY2FsbE9uTWFpblRocmVhZCgKLSAgICAgICAgW3dlYWtUaGlzID0g
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayksIGluaXREYXRhID0gV1RGTW92ZShpbml0RGF0YSksIHNlc3Npb25JZFZhbHVlID0gc19z
ZXNzaW9uSWRWYWx1ZV0oKSBtdXRhYmxlIHsKKyAgICAgICAgW3dlYWtUaGlzID0gbV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KSwgaW5pdERhdGEgPSBXVEZNb3ZlKGluaXREYXRhKSwgc2Vzc2lvbklkVmFsdWUgPSBzX3Nlc3Np
b25JZFZhbHVlXSgpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAKQEAgLTM1NSw3ICszNTQsNyBAQCB2b2lkIENETUluc3RhbmNl
Q2xlYXJLZXk6OnVwZGF0ZUxpY2Vuc2UoY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIExpY2Vuc2VU
eXBlLCBjbwogICAgIGF1dG8gZGlzcGF0Y2hDYWxsYmFjayA9CiAgICAgICAgIFt0aGlzLCAmY2Fs
bGJhY2tdKGJvb2wgc2Vzc2lvbldhc0Nsb3NlZCwgc3RkOjpvcHRpb25hbDxLZXlTdGF0dXNWZWN0
b3I+JiYgY2hhbmdlZEtleXMsIFN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQpIHsKICAgICAgICAgICAg
IGNhbGxPbk1haW5UaHJlYWQoCi0gICAgICAgICAgICAgICAgW3dlYWtUaGlzID0gbV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHNl
c3Npb25XYXNDbG9zZWQsIGNoYW5nZWRLZXlzID0gV1RGTW92ZShjaGFuZ2VkS2V5cyksIHN1Y2Nl
ZWRlZF0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgW3dlYWtUaGlzID0gbV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KSwgc2Vzc2lvbldhc0Nsb3NlZCwgY2hhbmdlZEtleXMgPSBXVEZNb3ZlKGNoYW5nZWRLZXlzKSwg
c3VjY2VlZGVkXSAoKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNDU2LDcgKzQ1NSw3IEBA
IHZvaWQgQ0RNSW5zdGFuY2VDbGVhcktleTo6dXBkYXRlTGljZW5zZShjb25zdCBTdHJpbmcmIHNl
c3Npb25JZCwgTGljZW5zZVR5cGUsIGNvCiB2b2lkIENETUluc3RhbmNlQ2xlYXJLZXk6OmxvYWRT
ZXNzaW9uKExpY2Vuc2VUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBMb2FkU2Vz
c2lvbkNhbGxiYWNrIGNhbGxiYWNrKQogewogICAgIGNhbGxPbk1haW5UaHJlYWQoCi0gICAgICAg
IFt3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCBjYWxsYmFjayA9
IFdURk1vdmUoY2FsbGJhY2spXSB7CisgICAgICAgIFt3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3Rv
cnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIHsK
ICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBA
IC00NjcsNyArNDY2LDcgQEAgdm9pZCBDRE1JbnN0YW5jZUNsZWFyS2V5Ojpsb2FkU2Vzc2lvbihM
aWNlbnNlVHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwKIHZvaWQgQ0RNSW5zdGFu
Y2VDbGVhcktleTo6Y2xvc2VTZXNzaW9uKGNvbnN0IFN0cmluZyYsIENsb3NlU2Vzc2lvbkNhbGxi
YWNrIGNhbGxiYWNrKQogewogICAgIGNhbGxPbk1haW5UaHJlYWQoCi0gICAgICAgIFt3ZWFrVGhp
cyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCBjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spXSB7CisgICAgICAgIFt3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRl
V2Vha1B0cigqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIHsKICAgICAgICAg
ICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBAIC00NzgsNyAr
NDc3LDcgQEAgdm9pZCBDRE1JbnN0YW5jZUNsZWFyS2V5OjpjbG9zZVNlc3Npb24oY29uc3QgU3Ry
aW5nJiwgQ2xvc2VTZXNzaW9uQ2FsbGJhY2sgY2FsbGIKIHZvaWQgQ0RNSW5zdGFuY2VDbGVhcktl
eTo6cmVtb3ZlU2Vzc2lvbkRhdGEoY29uc3QgU3RyaW5nJiwgTGljZW5zZVR5cGUsIFJlbW92ZVNl
c3Npb25EYXRhQ2FsbGJhY2sgY2FsbGJhY2spCiB7CiAgICAgY2FsbE9uTWFpblRocmVhZCgKLSAg
ICAgICAgW3dlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldIHsKKyAgICAgICAgW3dlYWtUaGlzID0gbV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KV0gewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNj
YWRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNw
cAppbmRleCA5MWQyNDNlMWM4ODMxODFjYjcyM2VjMmY1NjI1N2MwNWZmNzQyYmE4Li4wNWYzOTE3
MDBiOWE2MjAwYTgxOTI1M2FkNGEyMWNiM2YxYTBkNzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwCkBAIC03OCwxMyArNzgsMTEgQEAg
Rm9udENhc2NhZGU6OkNvZGVQYXRoIEZvbnRDYXNjYWRlOjpzX2NvZGVQYXRoID0gQXV0bzsKIC8v
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIEZvbnRDYXNjYWRlOjpGb250
Q2FzY2FkZSgpCi0gICAgOiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiB9CiAKIEZvbnRDYXNj
YWRlOjpGb250Q2FzY2FkZShjb25zdCBGb250Q2FzY2FkZURlc2NyaXB0aW9uJiBmZCwgZmxvYXQg
bGV0dGVyU3BhY2luZywgZmxvYXQgd29yZFNwYWNpbmcpCiAgICAgOiBtX2ZvbnREZXNjcmlwdGlv
bihmZCkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKICAgICAsIG1fbGV0dGVyU3BhY2lu
ZyhsZXR0ZXJTcGFjaW5nKQogICAgICwgbV93b3JkU3BhY2luZyh3b3JkU3BhY2luZykKICAgICAs
IG1fdXNlQmFja3NsYXNoQXNZZW5TeW1ib2wodXNlQmFja3NsYXNoQXNZZW5TaWduRm9yRmFtaWx5
KGZkLmZpcnN0RmFtaWx5KCkpKQpAQCAtOTYsNyArOTQsNiBAQCBGb250Q2FzY2FkZTo6Rm9udENh
c2NhZGUoY29uc3QgRm9udENhc2NhZGVEZXNjcmlwdGlvbiYgZmQsIGZsb2F0IGxldHRlclNwYWNp
bmcsCiAvLyBGSVhNRTogV2Ugc2hvdWxkIG1ha2UgdGhpcyBjb25zdHJ1Y3RvciBwbGF0Zm9ybS1p
bmRlcGVuZGVudC4KIEZvbnRDYXNjYWRlOjpGb250Q2FzY2FkZShjb25zdCBGb250UGxhdGZvcm1E
YXRhJiBmb250RGF0YSwgRm9udFNtb290aGluZ01vZGUgZm9udFNtb290aGluZ01vZGUpCiAgICAg
OiBtX2ZvbnRzKEZvbnRDYXNjYWRlRm9udHM6OmNyZWF0ZUZvclBsYXRmb3JtRm9udChmb250RGF0
YSkpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiAgICAgLCBtX2VuYWJsZUtlcm5pbmco
Y29tcHV0ZUVuYWJsZUtlcm5pbmcoKSkKICAgICAsIG1fcmVxdWlyZXNTaGFwaW5nKGNvbXB1dGVS
ZXF1aXJlc1NoYXBpbmcoKSkKIHsKQEAgLTExMiw3ICsxMDksNiBAQCBGb250Q2FzY2FkZTo6Rm9u
dENhc2NhZGUoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgZm9udERhdGEsIEZvbnRTbW9vdGhpbmdN
b2RlIGZvbgogRm9udENhc2NhZGU6OkZvbnRDYXNjYWRlKGNvbnN0IEZvbnRDYXNjYWRlJiBvdGhl
cikKICAgICA6IG1fZm9udERlc2NyaXB0aW9uKG90aGVyLm1fZm9udERlc2NyaXB0aW9uKQogICAg
ICwgbV9mb250cyhvdGhlci5tX2ZvbnRzKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQog
ICAgICwgbV9sZXR0ZXJTcGFjaW5nKG90aGVyLm1fbGV0dGVyU3BhY2luZykKICAgICAsIG1fd29y
ZFNwYWNpbmcob3RoZXIubV93b3JkU3BhY2luZykKICAgICAsIG1fdXNlQmFja3NsYXNoQXNZZW5T
eW1ib2wob3RoZXIubV91c2VCYWNrc2xhc2hBc1llblN5bWJvbCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oCmluZGV4IGEzYjFmZmViNWJhYjM0NzQ5
MGExYjUwM2FkYWExZmYxNTUyNTMzZWQuLmE0NDY5OTkyYWE1OGUwMzQ1N2RmNTliYTgyYTMwZjEz
NjVjMmUzNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYXNjYWRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENh
c2NhZGUuaApAQCAtMTk1LDcgKzE5NSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgcHJpbWFyeUZv
bnRJc1N5c3RlbUZvbnQoKSBjb25zdDsKIAotICAgIFdlYWtQdHI8Rm9udENhc2NhZGU+IGNyZWF0
ZVdlYWtQdHIoKSBjb25zdCB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIo
KTsgfQorICAgIFdlYWtQdHI8Rm9udENhc2NhZGU+IGNyZWF0ZVdlYWtQdHIoKSBjb25zdCB7IHJl
dHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKmNvbnN0X2Nhc3Q8Rm9udENhc2Nh
ZGUqPih0aGlzKSk7IH0KIAogcHJpdmF0ZToKICAgICBlbnVtIEZvclRleHRFbXBoYXNpc09yTm90
IHsgTm90Rm9yVGV4dEVtcGhhc2lzLCBGb3JUZXh0RW1waGFzaXMgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKaW5kZXggMTYz
NWU5OWJjMjU0MDcyM2MwNWI4ZmZmNzAxYWMxNGJkYzEyZjU5OC4uZDQyOWRiNTU2MDVjYzU3NTBi
YjliNDM1ZDQ2NzU0ZGEzNTllMDg5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKQEAgLTU1LDcgKzU1LDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbihNZWRpYVBsYXllciogcGxheWVyKQogICAgIDogbV9wbGF5
ZXIocGxheWVyKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogICAgICwgbV9xdWV1ZWRO
b3RpZmljYXRpb25zKCkKICAgICAsIG1fcXVldWVNdXRleCgpCiAgICAgLCBtX25ldHdvcmtTdGF0
ZShNZWRpYVBsYXllcjo6RW1wdHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggMzdlM2JlOWNjZTNkMWY3NzdkZjU4NWQyZDgw
ZWUyYTM0NDgwODViNC4uNWU0ODUyNWI3N2RlZjVkNzViNzFlMjk2NGVjZjkyMDA2Yzc2ZjlhOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24uaApAQCAtMTYzLDcgKzE2Myw3IEBAIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIH5NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oKTsKIAotICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigqdGhpcyk7IH0KIAogICAgIC8vIE1lZGlhUGxheWVyUHJpdmF0ZVByaXZhdGVJ
bnRlcmZhY2Ugb3ZlcnJpZGVzLgogICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCkgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRh
dGlvbk9iakMuaAppbmRleCBiYmMwNWQ1MDdmNDI1NjY3OWZiN2Q3YmNmNzIwZDg1MjZjMWFjMzcx
Li4yNWQwYTZlZTE5YzNiYzRmZDlhYjc0NGYzMjM1MTQwZGNmZDZmY2U2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNz
aW9uQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmgKQEAgLTUz
LDcgKzUzLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBwbGF5ZXJEaWRSZWNlaXZlRXJyb3IoTlNF
cnJvciAqKTsKIAotICAgIFdlYWtQdHI8Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM+IGNyZWF0
ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQor
ICAgIFdlYWtQdHI8Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7
IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKIHByb3Rl
Y3RlZDoKICAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM+IG1f
cGFyZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3Vu
ZGF0aW9uT2JqQy5tbQppbmRleCA3NGMzMTMzNzM0NjIyYzc3MGY0ODFkNzU3NGU1NWJhYTY0N2Yw
ZDUxLi5iYmNkNWQzMDUwY2YzNDc3NmE4OTJmMTU5ZTkxOWJiYTMyMjU2MWFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1T
ZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbQpA
QCAtNTMsNyArNTMsNiBAQCBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQzo6Q0RNU2Vzc2lvbkFW
Rm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZAogICAgIDogbV9wYXJlbnQo
cGFyZW50LT5jcmVhdGVXZWFrUHRyKCkpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBt
X3Nlc3Npb25JZChjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkpCi0gICAgLCBtX3dlYWtQdHJG
YWN0b3J5KHRoaXMpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1T
ZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tCmluZGV4IGNkODI4YjM1MzU3MTk1MmYyYjJjNDg1Y2Vh
ZjIxNjZhZWU5ZmI0Y2EuLjlmYTc2MWViOWM1ZmYzNTFkNjY5YTc2MWFhMDRmZjI4OGVlYWJlYjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vz
c2lvbi5tbQpAQCAtODksNyArODksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENETVNlc3Np
b25BVlN0cmVhbVNlc3Npb246OkNETVNlc3Npb25BVlN0cmVhbVNlc3Npb24oY29uc3QgVmVjdG9y
PGludD4mIHByb3RvY29sVmVyc2lvbnMsIENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMmIGNk
bSwgQ0RNU2Vzc2lvbkNsaWVudCogY2xpZW50KQogICAgIDogQ0RNU2Vzc2lvbk1lZGlhU291cmNl
QVZGT2JqQyhjZG0sIGNsaWVudCkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKICAgICAs
IG1fZGF0YVBhcnNlck9ic2VydmVyKGFkb3B0TlMoW1tXZWJDRE1TZXNzaW9uQVZTdHJlYW1TZXNz
aW9uT2JzZXJ2ZXIgYWxsb2NdIGluaXRXaXRoUGFyZW50OnRoaXNdKSkKICAgICAsIG1fcHJvdG9j
b2xWZXJzaW9ucyhwcm90b2NvbFZlcnNpb25zKQogICAgICwgbV9tb2RlKE5vcm1hbCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMuaAppbmRleCA2MjU1ZjQ5M2YyY2QyZjE1NjBiYjZmMTU5OTQyZmZjZTNmNzcw
MWU3Li40OWE3MWFhYjJmMDMzNDgwN2JlYmIyNTM0NjVlODk2ZmEwOWJlZGJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5oCkBAIC0xNTgsNyArMTU4LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3Zl
U2Vzc2lvbihDRE1TZXNzaW9uJik7CiAjZW5kaWYKIAotICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0
ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiBwcml2YXRlOgogICAgIC8vIGVuZ2luZSBz
dXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA2YTNlZGExYTUwMWY1OTk1ZjFlNDRl
ZDIxNGQ1YjU2NTRmYmMxZDRlLi44MTRjZmI2M2I3OGFkMmQzODM5NWJjZDI2ZTBlZGMyODc2ZDU1
OTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTU0MSw3ICs1NDEsNiBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNsZWFyTWVkaWFDYWNoZUZvck9yaWdp
bnMoY29uc3QgU3RyaW5nJgogCiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAg
ICAgOiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24ocGxheWVyKQotICAgICwgbV93ZWFr
UHRyRmFjdG9yeSh0aGlzKQogI2lmIFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYg
RU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKICAgICAsIG1fdmlkZW9GdWxsc2NyZWVu
TGF5ZXJNYW5hZ2VyKFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlcjo6Y3JlYXRlKCkpCiAgICAg
LCBtX3ZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoTWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0eVJlc2l6
ZUFzcGVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggOGQzOGVkMWRhNjdlM2IwOWUy
ODIwZjVkMjM5ZDIzODc0YmJkODU1Ni4uMWIxYjk3MTNmNDA5ZDk4YjUyYjg4MzMxYTQyYzUxOWRm
N2FlM2RlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTEzMCw3ICsxMzAsNyBAQCBw
dWJsaWM6CiAgICAgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgbWVkaWFDb250ZW50VHlwZXNS
ZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdDsKICAgICBib29sIHNob3VsZENoZWNrSGFy
ZHdhcmVTdXBwb3J0KCkgY29uc3Q7CiAKLSAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rv
cnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKIHByaXZhdGU6CiAgICAgLy8gTWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggNWM2NzExOTdl
MmI3OWQ5N2VhZTI5ZWFiYjI3MDBlNTdjZDU5ZDJjZS4uYzNiM2M3ZmM5NDlmYTkyMWEyZWVjNDU4
ZDNmZDRhNmJhOTUyODRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMTI1LDgg
KzEyNSw2IEBAIHN0YXRpYyB2b2lkIENNVGltZWJhc2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENhbGxi
YWNrKENNTm90aWZpY2F0aW9uQ2VudGVyUmVmLCBjb25zCiAKIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKE1l
ZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgOiBtX3BsYXllcihwbGF5ZXIpCi0gICAgLCBtX3dlYWtQ
dHJGYWN0b3J5KHRoaXMpCi0gICAgLCBtX3NpemVDaGFuZ2VPYnNlcnZlcldlYWtQdHJGYWN0b3J5
KHRoaXMpCiAgICAgLCBtX3N5bmNocm9uaXplcihhZG9wdE5TKFthbGxvY0FWU2FtcGxlQnVmZmVy
UmVuZGVyU3luY2hyb25pemVySW5zdGFuY2UoKSBpbml0XSkpCiAgICAgLCBtX3NlZWtUaW1lcigq
dGhpcywgJk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2Vla0ludGVybmFs
KQogICAgICwgbV9zZXNzaW9uKG51bGxwdHIpCkBAIC04OTAsNyArODg4LDcgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmVmZmVjdGl2ZVJhdGVDaGFuZ2VkKCkK
IAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNpemVXaWxsQ2hh
bmdlQXRUaW1lKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgRmxvYXRTaXplJiBzaXplKQog
ewotICAgIGF1dG8gd2Vha1RoaXMgPSBtX3NpemVDaGFuZ2VPYnNlcnZlcldlYWtQdHJGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBhdXRvIHdlYWtUaGlzID0gbV9zaXplQ2hhbmdlT2JzZXJ2
ZXJXZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsKICAgICBOU0FycmF5KiB0aW1l
cyA9IEBbW05TVmFsdWUgdmFsdWVXaXRoQ01UaW1lOlBBTDo6dG9DTVRpbWUodGltZSldXTsKICAg
ICBSZXRhaW5QdHI8aWQ+IG9ic2VydmVyID0gW21fc3luY2hyb25pemVyIGFkZEJvdW5kYXJ5VGlt
ZU9ic2VydmVyRm9yVGltZXM6dGltZXMgcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1
c2luZ0Jsb2NrOlt0aGlzLCB3ZWFrVGhpcywgc2l6ZV0gewogICAgICAgICBpZiAoIXdlYWtUaGlz
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAppbmRleCBlMTcwZmY4ZDBiN2Y2ZjE2MjFiMDhhNzlh
OWYxOGUwOWEyMDA4YmVhLi5jMTUxYzcyNTFmMjZlOTAxZWJiZDU1Mjk1Yjg3ZDAxZTU1ZjVlNWJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAg
ICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSk7CiAKLSAgICBX
ZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQz4gY3JlYXRlV2Vha1B0
cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vh
a1B0cjxNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIo
KSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKICAg
ICB2b2lkIGVuc3VyZUxheWVycygpOwogICAgIHZvaWQgZGVzdHJveUxheWVycygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IDkwNTVkYmY5YmQ4YzAxMTViNjQ2ZDlhM2U4ZWM5YThj
NmE3ODVhMjYuLjFjZDQ3MDkxNzBlYjE2ODA1ZmU3ZDQzNzNlYmVlMzNmMmViODEwY2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTE4OCw3ICsxODgsNiBAQCBzdGF0aWMgY29uc3Qg
ZG91YmxlIHJlbmRlcmVyTGF0ZW5jeSA9IDAuMDI7CiAKIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1lZGlh
UGxheWVyKiBwbGF5ZXIpCiAgICAgOiBtX3BsYXllcihwbGF5ZXIpCi0gICAgLCBtX3dlYWtQdHJG
YWN0b3J5KHRoaXMpCiAgICAgLCBtX3N0YXR1c0NoYW5nZUxpc3RlbmVyKGFkb3B0TlMoW1tXZWJB
VlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aFBhcmVudDp0
aGlzXSkpCiAgICAgLCBtX2Nsb2NrKENsb2NrOjpjcmVhdGUoKSkKICNpZiBQTEFURk9STShJT1Mp
IHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
aAppbmRleCBmMWQxNmVmYmFiZWM2NTVjYzllM2JjMzFlYzBjZWYwY2E0Y2RlMzRlLi5hYzlkYWZi
MzE5NDkyZjY5OTAxODk3ZDlmYzU3NjE2Mjc0NjA3Njg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgKQEAgLTE1Myw3ICsxNTMs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgZmx1c2goQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVy
ICopOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCi0gICAgV2Vha1B0cjxTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3Rv
cnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0
cigqdGhpcyk7IH0KIAogICAgIFZlY3RvcjxSZWZQdHI8VmlkZW9UcmFja1ByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM+PiBtX3ZpZGVvVHJhY2tzOwogICAgIFZlY3RvcjxSZWZQdHI8QXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM+PiBtX2F1ZGlvVHJhY2tzOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQppbmRleCBj
YjZiMzUyYTZkM2E1NWNkMWZhNzI1Y2E4MGYzMjM4NDljNmNiOTlmLi5hZWI5NDNhNTcwOWFlOTFm
ODQ3NWYyMTA4ZTk5MWMxYTA1MzAzYTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQpAQCAtNDc5LDkgKzQ3OSw3IEBAIFJl
ZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQz4gU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akM6OmNyZWF0ZShNZWRpYVNvdXJjCiB9CiAKIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyhNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDKiBwYXJl
bnQpCi0gICAgOiBtX3dlYWtGYWN0b3J5KHRoaXMpCi0gICAgLCBtX2FwcGVuZFdlYWtGYWN0b3J5
KHRoaXMpCi0gICAgLCBtX3BhcnNlcihhZG9wdE5TKFthbGxvY0FWU3RyZWFtRGF0YVBhcnNlcklu
c3RhbmNlKCkgaW5pdF0pKQorICAgIDogbV9wYXJzZXIoYWRvcHROUyhbYWxsb2NBVlN0cmVhbURh
dGFQYXJzZXJJbnN0YW5jZSgpIGluaXRdKSkKICAgICAsIG1fZGVsZWdhdGUoYWRvcHROUyhbW1dl
YkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aFBhcnNlcjptX3BhcnNl
ci5nZXQoKSBwYXJlbnQ6Y3JlYXRlV2Vha1B0cigpXSkpCiAgICAgLCBtX2Vycm9yTGlzdGVuZXIo
YWRvcHROUyhbW1dlYkFWU2FtcGxlQnVmZmVyRXJyb3JMaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhQ
YXJlbnQ6dGhpc10pKQogICAgICwgbV9pc0FwcGVuZGluZ0dyb3VwKGFkb3B0T1NPYmplY3QoZGlz
cGF0Y2hfZ3JvdXBfY3JlYXRlKCkpKQpAQCAtNjc1LDcgKzY3Myw3IEBAIHZvaWQgU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakM6OmFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNp
Z25lZCBsZW5nCiAgICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akM6OmFwcGVuZCglcCkgLSBkYXRhOiVwLCBsZW5ndGg6JWQiLCB0aGlzLCBkYXRhLCBsZW5ndGgp
OwogCiAgICAgUmV0YWluUHRyPE5TRGF0YT4gbnNEYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxv
Y10gaW5pdFdpdGhCeXRlczpkYXRhIGxlbmd0aDpsZW5ndGhdKTsKLSAgICBXZWFrUHRyPFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDPiB3ZWFrVGhpcyA9IG1fYXBwZW5kV2Vha0ZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigpOworICAgIFdlYWtQdHI8U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+IHdl
YWtUaGlzID0gbV9hcHBlbmRXZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsKICAgICBS
ZXRhaW5QdHI8QVZTdHJlYW1EYXRhUGFyc2VyPiBwYXJzZXIgPSBtX3BhcnNlcjsKICAgICBSZXRh
aW5QdHI8V2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXI+IGRlbGVnYXRlID0gbV9kZWxlZ2F0
ZTsKIApAQCAtNzE1LDcgKzcxMyw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
OmFib3J0KCkKICAgICAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX2hhc1Nlc3Npb25T
ZW1hcGhvcmUuZ2V0KCkpOwogICAgIGRpc3BhdGNoX2dyb3VwX3dhaXQobV9pc0FwcGVuZGluZ0dy
b3VwLmdldCgpLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOwogICAgIG1fYXBwZW5kV2Vha0ZhY3Rv
cnkucmV2b2tlQWxsKCk7Ci0gICAgbV9kZWxlZ2F0ZS5nZXQoKS5wYXJlbnQgPSBtX2FwcGVuZFdl
YWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBtX2RlbGVnYXRlLmdldCgpLnBhcmVudCA9
IG1fYXBwZW5kV2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiB9CiAKIHZvaWQgU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnJlc2V0UGFyc2VyU3RhdGUoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5tbQppbmRl
eCBmZTc5MTljZTJkOGVjZjAyMjUyODcyMGIxNjEwNWJjMmUyZGRjZDI4Li4zZGEwMTY0YzFlNWM5
MzVlOGU0Y2M0NGEzYmRjZGRlZDVmYjVlNWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5tbQpAQCAtNTAsNyArNTAsNiBA
QCBzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZUNhY2hlQ1Y+IFRleHR1cmVDYWNoZUNWOjpjcmVhdGUo
R3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleAogVGV4dHVyZUNhY2hlQ1Y6OlRleHR1cmVDYWNoZUNW
KEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0LCBSZXRhaW5QdHI8VGV4dHVyZUNhY2hlVHlwZT4m
JiBjYWNoZSkKICAgICA6IG1fY29udGV4dChjb250ZXh0KQogICAgICwgbV9jYWNoZShjYWNoZSkK
LSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKIH0KIApAQCAtNzMsNyArNzIsNyBAQCBS
ZXRhaW5QdHI8VGV4dHVyZUNhY2hlQ1Y6OlRleHR1cmVUeXBlPiBUZXh0dXJlQ2FjaGVDVjo6dGV4
dHVyZUZyb21JbWFnZShDVkltYWdlQgogI2VuZGlmCiAgICAgUmV0YWluUHRyPFRleHR1cmVUeXBl
PiB2aWRlb1RleHR1cmUgPSBhZG9wdENGKGJhcmVWaWRlb1RleHR1cmUpOwogCi0gICAgYXV0byB3
ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAgIGF1dG8gd2Vh
a1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOwogICAgIGRpc3Bh
dGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFt3ZWFrVGhpc10gewogICAgICAg
ICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCAwZjJiODQ3ZmQ3OWVhNzI3OTAy
ZTI2ZmQ1OWQ2OGVjM2MyMWY4MGEwLi41NGI5NWUzYjEzOWY4NmYzY2M4ZTkyYzM0Zjk0ODMxOGVl
ZGM5ZjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcApAQCAtMTQwLDcgKzE0MCw2IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6TWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgLCBtX3Nl
ZWtUaW1lKDApCiAgICAgLCBtX3NvdXJjZShudWxscHRyKQogICAgICwgbV92b2x1bWVBbmRNdXRl
SW5pdGlhbGl6ZWQoZmFsc2UpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiAgICAgLCBt
X21lZGlhTG9jYXRpb25zKG51bGxwdHIpCiAgICAgLCBtX21lZGlhTG9jYXRpb25DdXJyZW50SW5k
ZXgoMCkKICAgICAsIG1fcGxheWJhY2tSYXRlUGF1c2UoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggM2EzMGEyMzc3YzBmZDBkNWYyYzNh
M2ZiM2I1NWQ0NGQwYTY3ZDliNS4uNzQ3OTQ4NzRkZDhjOTZhYzE3OTI4NDQ2N2QwZGU1ZTMzY2Y5
MjEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApA
QCAtMTM5LDcgKzEzOSw3IEBAIHByaXZhdGU6CiAKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJs
ZSgpOwogCi0gICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI+IGNyZWF0ZVdl
YWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAg
IFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyPiBjcmVhdGVXZWFrUHRyKCkgeyBy
ZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiAgICAgR3N0
RWxlbWVudCogY3JlYXRlQXVkaW9TaW5rKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAppbmRleCA3MmFhYjY3MDA5
ZmE0OGNjNzQ1OGYyZmFhMjM2OGM3NmI4ZDllYmNhLi40NmM4OTMwODg1MzdhNzgyOThkZWYxZjhh
MTExZDQwNjMzM2QxMjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC0yMjYsOCArMjI2LDcgQEAgcHJpdmF0ZToKICNlbmRp
ZiAvLyBVU0UoR1NUUkVBTUVSX0dMKQogCiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCi0g
ICAgOiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0gICAgLCBtX25vdGlmaWVyKE1haW5UaHJlYWRO
b3RpZmllcjxNYWluVGhyZWFkTm90aWZpY2F0aW9uPjo6Y3JlYXRlKCkpCisgICAgOiBtX25vdGlm
aWVyKE1haW5UaHJlYWROb3RpZmllcjxNYWluVGhyZWFkTm90aWZpY2F0aW9uPjo6Y3JlYXRlKCkp
CiAgICAgLCBtX3BsYXllcihwbGF5ZXIpCiAgICAgLCBtX2Zwc1NpbmsobnVsbHB0cikKICAgICAs
IG1fcmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6SGF2ZU5vdGhpbmcpCkBAIC0zNjQsNyArMzYzLDcg
QEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpoYW5kbGVTeW5jTWVzc2Fn
ZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBpZiAoY29uY2F0ZW5hdGVkSW5pdERhdGFD
aHVua3NOdW1iZXIgPiAxKQogICAgICAgICAgICAgZXZlbnRLZXlTeXN0ZW1JZFN0cmluZyA9IGVt
cHR5U3RyaW5nKCk7CiAKLSAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhp
cyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCBldmVudEtleVN5c3RlbUlkU3Ry
aW5nLCBpbml0RGF0YSA9IFdURk1vdmUoY29uY2F0ZW5hdGVkSW5pdERhdGFDaHVua3MpXSB7Cisg
ICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0
b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpLCBldmVudEtleVN5c3RlbUlkU3RyaW5nLCBpbml0RGF0
YSA9IFdURk1vdmUoY29uY2F0ZW5hdGVkSW5pdERhdGFDaHVua3MpXSB7CiAgICAgICAgICAgICBp
ZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1h
Yy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJl
c2hNb25pdG9yTWFjLmNwcAppbmRleCBlMzFhMWE5ZDkwZDUyNjc4OGUzNTc2ZWQ1YmQ4NjY4ZTE4
NzM0ZGIyLi41YTAwMmM5YTY3ZTY0OWRlOGQ5YmQ1ZTk4ZmM5MGFiODE1MjBiNmE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hN
b25pdG9yTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcApAQCAtMzYsNyArMzYsNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6RGlzcGxheVJlZnJlc2hNb25p
dG9yTWFjKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKICAgICA6IERpc3BsYXlSZWZyZXNo
TW9uaXRvcihkaXNwbGF5SUQpCi0gICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCiAgICAgLCBtX2Rp
c3BsYXlMaW5rKG51bGxwdHIpCiB7CiB9CkBAIC05Miw4ICs5MSw3IEBAIHZvaWQgRGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5TGlua0ZpcmVkKCkKIAogICAgIHNldElzUHJldmlvdXNG
cmFtZURvbmUoZmFsc2UpOwogCi0gICAgLy8gRklYTUU6IElzIGl0IHJlYWxseSBva2F5IHRvIGNy
ZWF0ZSBhIHdlYWtQdHIgb24gYSBiYWNrZ3JvdW5kIHRocmVhZCBhbmQgdGhlbiB1c2UgaXQgb24g
dGhlIG1haW4gdGhyZWFkPwotICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1B0ciA9
IG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpXSB7CisgICAgUnVuTG9vcDo6bWFpbigpLmRp
c3BhdGNoKFt3ZWFrUHRyID0gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKV0gewog
ICAgICAgICBpZiAoYXV0byogbW9uaXRvciA9IHdlYWtQdHIuZ2V0KCkpCiAgICAgICAgICAgICBo
YW5kbGVEaXNwbGF5UmVmcmVzaGVkTm90aWZpY2F0aW9uT25NYWluVGhyZWFkKG1vbml0b3IpOwog
ICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNw
cAppbmRleCAyMzMwNzYwZjQyZTJiYzUxNjEyYWRhMzhhN2EzZTM3NGM1M2U3Nzg0Li44MWZmNTRj
OTM3NGI5NWZkZmZkMjg5NTYwZGQyM2UyOTQ2YWI0NjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcApAQCAtOTcsNyArOTcsNiBAQCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRh
dGlvbihNZWRpYVBsYXllcgogICAgICwgbV92b2x1bWUoMS4wKQogICAgICwgbV9uZXR3b3JrU3Rh
dGUoTWVkaWFQbGF5ZXI6OkVtcHR5KQogICAgICwgbV9yZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpI
YXZlTm90aGluZykKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKICAgICBjcmVhdGVT
ZXNzaW9uKCk7CiAgICAgY3JlYXRlVmlkZW9XaW5kb3coKTsKQEAgLTQ5OCw3ICs0OTcsNyBAQCBi
b29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6ZW5kQ3JlYXRlZE1lZGlhU291
cmNlKElNRkFzeW5jUmVzdWx0KiBhcwogICAgIGhyID0gYXN5bmNSZXN1bHQtPkdldFN0YXR1cygp
OwogICAgIG1fbG9hZGluZ1Byb2dyZXNzID0gU1VDQ0VFREVEKGhyKTsKIAotICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3dlYWtQdHIgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKV0gewor
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtQdHIgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKnRoaXMpXSB7CiAgICAgICAgIGlmICghd2Vha1B0cikKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgd2Vha1B0ci0+b25DcmVhdGVkTWVkaWFTb3VyY2UoKTsKQEAgLTUyNyw3ICs1
MjYsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6ZW5kR2V0RXZl
bnQoSU1GQXN5bmNSZXN1bHQqIGFzeW5jUmVzdWx0KQogCiAgICAgc3dpdGNoIChtZWRpYUV2ZW50
VHlwZSkgewogICAgIGNhc2UgTUVTZXNzaW9uVG9wb2xvZ3lTZXQ6IHsKLSAgICAgICAgY2FsbE9u
TWFpblRocmVhZChbd2Vha1B0ciA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpXSB7
CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtQdHIgPSBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKnRoaXMpXSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtQdHIpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgd2Vha1B0ci0+b25Ub3BvbG9neVNldCgpOwpA
QCAtNTM2LDcgKzUzNSw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9u
OjplbmRHZXRFdmVudChJTUZBc3luY1Jlc3VsdCogYXN5bmNSZXN1bHQpCiAgICAgfQogCiAgICAg
Y2FzZSBNRUJ1ZmZlcmluZ1N0YXJ0ZWQ6IHsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vh
a1B0ciA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpXSB7CisgICAgICAgIGNhbGxP
bk1haW5UaHJlYWQoW3dlYWtQdHIgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRo
aXMpXSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtQdHIpCiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgd2Vha1B0ci0+b25CdWZmZXJpbmdTdGFydGVkKCk7CkBAIC01NDUsNyAr
NTQ0LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OmVuZEdldEV2
ZW50KElNRkFzeW5jUmVzdWx0KiBhc3luY1Jlc3VsdCkKICAgICB9CiAKICAgICBjYXNlIE1FQnVm
ZmVyaW5nU3RvcHBlZDogewotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrUHRyID0gbV93
ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCldIHsKKyAgICAgICAgY2FsbE9uTWFpblRocmVh
ZChbd2Vha1B0ciA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyldIHsKICAg
ICAgICAgICAgIGlmICghd2Vha1B0cikKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICB3ZWFrUHRyLT5vbkJ1ZmZlcmluZ1N0b3BwZWQoKTsKQEAgLTU1NCw3ICs1NTMsNyBAQCBi
b29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6ZW5kR2V0RXZlbnQoSU1GQXN5
bmNSZXN1bHQqIGFzeW5jUmVzdWx0KQogICAgIH0KIAogICAgIGNhc2UgTUVTZXNzaW9uRW5kZWQ6
IHsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1B0ciA9IG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigpXSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtQdHIgPSBt
X3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpXSB7CiAgICAgICAgICAgICBpZiAo
IXdlYWtQdHIpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgd2Vha1B0ci0+
b25TZXNzaW9uRW5kZWQoKTsKQEAgLTE3MDgsNyArMTcwNyw3IEBAIEhSRVNVTFQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjpDdXN0b21WaWRlb1ByZXNlbnRlcjo6cHJvY2Vzc0lu
cHV0Tm90CiAgICAgCiAgICAgLy8gSW52YWxpZGF0ZSB0aGUgdmlkZW8gYXJlYQogICAgIGlmICht
X21lZGlhUGxheWVyKSB7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtQdHIgPSBtX21l
ZGlhUGxheWVyLT5tX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKV0geworICAgICAgICBj
YWxsT25NYWluVGhyZWFkKFt3ZWFrUHRyID0gbV9tZWRpYVBsYXllci0+bV93ZWFrUHRyRmFjdG9y
eS5jcmVhdGVXZWFrUHRyKCptX21lZGlhUGxheWVyKV0gewogICAgICAgICAgICAgaWYgKHdlYWtQ
dHIpCiAgICAgICAgICAgICAgICAgd2Vha1B0ci0+aW52YWxpZGF0ZUZyYW1lVmlldygpOwogICAg
ICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9SZW1vdGVD
b21tYW5kTGlzdGVuZXJJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9SZW1vdGVD
b21tYW5kTGlzdGVuZXJJT1MuaAppbmRleCBmYzAyZWU1OWQ5YWNhNjk2MjU3YzVmNGYzM2ZmOGNl
MTcxNDZjZmExLi5iZTE1OTRlYmRiNGI3MGM3YzgzNWNjNTA4YjkxMGViODMxZmRhNDQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVy
SU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0
ZW5lcklPUy5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SZW1vdGVD
b21tYW5kTGlzdGVuZXJJT1MoKTsKIAogcHJvdGVjdGVkOgotICAgIFdlYWtQdHI8UmVtb3RlQ29t
bWFuZExpc3RlbmVySU9TPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9y
eS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklP
Uz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0
cigqdGhpcyk7IH0KICAgICB2b2lkIHVwZGF0ZVN1cHBvcnRlZENvbW1hbmRzKCkgb3ZlcnJpZGU7
CiAKICAgICBXZWFrUHRyRmFjdG9yeTxSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1M+IG1fd2Vha1B0
ckZhY3Rvcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUmVtb3Rl
Q29tbWFuZExpc3RlbmVySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1JlbW90
ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbQppbmRleCA0MWY5ZGI2ODFiM2ZmMWUzNzI2OGEyZDNmOTk1
NWJkNWU3YWUzNmQ1Li5lNGE2OWM0YWNiZGE4NGI5ODM5MzYwZGU2ODU4NGNjNDU3OWM4ODg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3Rl
bmVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9SZW1vdGVDb21tYW5k
TGlzdGVuZXJJT1MubW0KQEAgLTQ3LDcgKzQ3LDYgQEAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUNv
bW1hbmRMaXN0ZW5lcj4gUmVtb3RlQ29tbWFuZExpc3RlbmVyOjpjcmVhdGUoUmVtb3RlQ29tbWEK
IAogUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MoUmVt
b3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50JiBjbGllbnQpCiAgICAgOiBSZW1vdGVDb21tYW5kTGlz
dGVuZXIoY2xpZW50KQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogICAgIE1QUmVt
b3RlQ29tbWFuZENlbnRlciAqY2VudGVyID0gW2dldE1QUmVtb3RlQ29tbWFuZENlbnRlckNsYXNz
KCkgc2hhcmVkQ29tbWFuZENlbnRlcl07CiAgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQ
dHIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SZW1vdGVDb21t
YW5kTGlzdGVuZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SZW1vdGVDb21t
YW5kTGlzdGVuZXJNYWMuaAppbmRleCBkYjY5ZDc2NjJlZjc0YWViZDAzZTc4YWI4OWE4MzM1ZjI1
ZTgzMzFiLi5iNzgxZTZhZDRhMWMyZjg0ZTk0MTZjNWU0YjE2MzFkZGYzYWMyNTZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFj
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5l
ck1hYy5oCkBAIC0zOSwxMSArMzksMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflJlbW90ZUNv
bW1hbmRMaXN0ZW5lck1hYygpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgV2Vha1B0cjxSZW1vdGVDb21t
YW5kTGlzdGVuZXJNYWM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFj
PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCp0aGlzKTsgfQogCiAgICAgdm9pZCB1cGRhdGVTdXBwb3J0ZWRDb21tYW5kcygpIG92ZXJyaWRl
OwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjPiBtX3dlYWtQ
dHJGYWN0b3J5IHsgdGhpcyB9OworICAgIFdlYWtQdHJGYWN0b3J5PFJlbW90ZUNvbW1hbmRMaXN0
ZW5lck1hYz4gbV93ZWFrUHRyRmFjdG9yeTsKICAgICB2b2lkKiBtX2NvbW1hbmRIYW5kbGVyIHsg
bnVsbHB0ciB9OwogfTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCmluZGV4IGIyNGU2NGUxMTVm
Nzc1N2UwMDFiN2RlODlhOWUzM2M2ODg3ZTJlYWYuLjcxMTlkYmM4NDMyOTExOTE0ZDRhODJiZWI0
MTU1MzBkMGY0OGFlN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcApAQCAtNTksOCArNTksNyBAQCBS
ZWY8TWVkaWFTdHJlYW1Qcml2YXRlPiBNZWRpYVN0cmVhbVByaXZhdGU6OmNyZWF0ZShjb25zdCBW
ZWN0b3I8UmVmPFJlYWx0aW1lTWVkaQogfQogCiBNZWRpYVN0cmVhbVByaXZhdGU6Ok1lZGlhU3Ry
ZWFtUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciYgdHJhY2tzLCBT
dHJpbmcmJiBpZCkKLSAgICA6IG1fd2Vha1B0ckZhY3RvcnkodGhpcykKLSAgICAsIG1faWQoV1RG
TW92ZShpZCkpCisgICAgOiBtX2lkKFdURk1vdmUoaWQpKQogewogICAgIEFTU0VSVCghbV9pZC5p
c0VtcHR5KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCmluZGV4IDIxMmRmOTAzMTA4MzBhNTBlYzAwMjA4
MGIyN2RkMjEyNDQyNjFmMGEuLjlmMWFiNTJiNWM2ZGIyODk5ZGJmNmFjNzk5Nzg3ODkxMDYyNDlj
MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtUHJpdmF0ZS5oCkBAIC0xMDcsNyArMTA3LDcgQEAgcHVibGljOgogCiAgICAg
RmxvYXRTaXplIGludHJpbnNpY1NpemUoKSBjb25zdDsKIAotICAgIFdlYWtQdHI8TWVkaWFTdHJl
YW1Qcml2YXRlPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVh
dGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3JlYXRlV2Vh
a1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0K
IAogICAgIHZvaWQgbW9uaXRvck9yaWVudGF0aW9uKE9yaWVudGF0aW9uTm90aWZpZXImKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlLmNwcAppbmRleCAxYjc1MDI1MTc5YjEwOTFkMGFjODQ5N2QxMGYwMGZh
OTdiOTIxNWQ0Li42YzAzNzYyYWVhY2RhZTEzY2YwYTFlOTE3MTIzYWZjZGUyNjExN2IzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlLmNwcApAQCAtNDcsOCArNDcsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBSZWFsdGltZU1lZGlhU291cmNlOjpSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IFN0cmlu
ZyYgaWQsIFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lKQotICAgIDogbV93ZWFrUHRyRmFj
dG9yeSh0aGlzKQotICAgICwgbV9pZChpZCkKKyAgICA6IG1faWQoaWQpCiAgICAgLCBtX3R5cGUo
dHlwZSkKICAgICAsIG1fbmFtZShuYW1lKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDFmMDg3
ZjY4YjRlYzgzMzU5ZDAwNTg0MGFhZGJhYzQzNDA3OWY0YWIuLjg0NmZiNzI0ODdlMjdmYTMzYTg2
OTNlYjNjY2RlZGY1ZTJiYzM0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTI0MCw3ICsyNDAs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBs
ZSYpOwogICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNv
bnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNp
emVfdCk7CiAKLSAgICBXZWFrUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZVdlYWtQdHIo
KSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0
ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogcHJpdmF0ZToKICAgICB2aXJ0dWFs
IHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9pbnQuY3BwCmluZGV4IDM3NWNlN2RmZGJjZjYxYmUw
ODIzOTU0MjgwNjNmNjA3ZDg0MzEwOGUuLjBlOWI0MWU1YzExOTVjNmUzZWMxMzcwNzVlYTRmZmE2
Njg2YzdhYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01l
ZGlhRW5kcG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01l
ZGlhRW5kcG9pbnQuY3BwCkBAIC01Nyw3ICs1Nyw2IEBAIE1vY2tNZWRpYUVuZHBvaW50OjpNb2Nr
TWVkaWFFbmRwb2ludChNZWRpYUVuZHBvaW50Q2xpZW50JiBjbGllbnQpCiAgICAgLCBtX2ljZUNh
bmRpZGF0ZVRpbWVyKCp0aGlzLCAmTW9ja01lZGlhRW5kcG9pbnQ6OmljZUNhbmRpZGF0ZVRpbWVy
RmlyZWQpCiAgICAgLCBtX2ljZVRyYW5zcG9ydFRpbWVyKCp0aGlzLCAmTW9ja01lZGlhRW5kcG9p
bnQ6OmljZVRyYW5zcG9ydFRpbWVyRmlyZWQpCiAgICAgLCBtX3VubXV0ZVRpbWVyKCp0aGlzLCAm
TW9ja01lZGlhRW5kcG9pbnQ6OnVubXV0ZVRpbWVyRmlyZWQpCi0gICAgLCBtX3dlYWtQdHJGYWN0
b3J5KHRoaXMpCiB7CiB9CiAKQEAgLTczLDcgKzcyLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFJUQ0Rh
dGFDaGFubmVsSGFuZGxlcj4gTW9ja01lZGlhRW5kcG9pbnQ6OmNyZWF0ZURhdGFDaGFubmVsSGFu
ZGwKIAogdm9pZCBNb2NrTWVkaWFFbmRwb2ludDo6Z2VuZXJhdGVEdGxzSW5mbygpCiB7Ci0gICAg
YXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAgIGF1
dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOwogCiAg
ICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXNdIHsKICAgICAgICAgaWYgKHdlYWtUaGlzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU3Bh
bm5lclBsYWNlaG9sZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0
aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlci5jcHAKaW5kZXggZWY3M2Q1N2FiNTVhMzZhNzUxMDQw
ZTE0ZDA3MjZlNjMyZjUyYTcwZS4uOGZiMGQ0MDk4NGVmMDliMjk2MjRhYWE3MjlhMzBjYzFkMTQ4
MjQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29s
dW1uU3Bhbm5lclBsYWNlaG9sZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIuY3BwCkBAIC00Nyw3ICs0Nyw2IEBA
IFJlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyOjpSZW5kZXJNdWx0aUNvbHVtblNw
YW5uZXJQbGFjZWhvbGRlcihSZW5kZXJNCiAgICAgOiBSZW5kZXJCb3goZmxvd1RocmVhZC0+ZG9j
dW1lbnQoKSwgV1RGTW92ZShzdHlsZSksIFJlbmRlckJveE1vZGVsT2JqZWN0RmxhZykKICAgICAs
IG1fc3Bhbm5lcigmc3Bhbm5lcikKICAgICAsIG1fZmxvd1RocmVhZChmbG93VGhyZWFkKQotICAg
ICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRl
ci5oCmluZGV4IDAzNDExZDk0NzEyY2NiMmJlOGQ4ZjQ3MTA4YzEwYTBhNGQzNjVhYjcuLmIxNTAz
OTAxMmMwNDQ3OGUwYzFhOGU4NTNiZTMwMjUyNWM1NDI0MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFj
ZWhvbGRlci5oCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKIAogICAgIFJlbmRlckJveCogc3Bh
bm5lcigpIGNvbnN0IHsgcmV0dXJuIG1fc3Bhbm5lcjsgfQogICAgIFJlbmRlck11bHRpQ29sdW1u
Rmxvd1RocmVhZCogZmxvd1RocmVhZCgpIGNvbnN0IHsgcmV0dXJuIG1fZmxvd1RocmVhZDsgfQot
ICAgIFdlYWtQdHI8UmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXI+IGNyZWF0ZVdl
YWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAg
IFdlYWtQdHI8UmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXI+IGNyZWF0ZVdlYWtQ
dHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAK
IHByaXZhdGU6CiAgICAgUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIoUmVuZGVy
TXVsdGlDb2x1bW5GbG93VGhyZWFkKiwgUmVuZGVyQm94JiBzcGFubmVyLCBSZW5kZXJTdHlsZSYm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCAyYWIxODg5NTdh
OGVmMGQ5NzFkODM0Mzg1YTc2YWVlYTJmZmM1ZTY1Li40NzUwNjA4ZWZhZWFjNjI2ZDNmNWRiZDI0
MDFiY2E4NDRhZGVkOTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
CkBAIC0xMjEsNyArMTIxLDYgQEAgcHJpdmF0ZToKIFJlbmRlclZpZXc6OlJlbmRlclZpZXcoRG9j
dW1lbnQmIGRvY3VtZW50LCBSZW5kZXJTdHlsZSYmIHN0eWxlKQogICAgIDogUmVuZGVyQmxvY2tG
bG93KGRvY3VtZW50LCBXVEZNb3ZlKHN0eWxlKSkKICAgICAsIG1fZnJhbWVWaWV3KCpkb2N1bWVu
dC52aWV3KCkpCi0gICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCiAgICAgLCBtX2xhenlSZXBhaW50
VGltZXIoKnRoaXMsICZSZW5kZXJWaWV3OjpsYXp5UmVwYWludFRpbWVyRmlyZWQpCiAjaWYgRU5B
QkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgLCBtX3NlbGVjdGlvblJlY3RHYXRoZXJlcigqdGhp
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCmluZGV4IGFhNGY2MmI5MTFiOWE0
M2Q0ZTBjODJkNjljOTMwY2Q2NzNhMzRhYzIuLjMwMjIzMDc0NmIxZDdmM2RiMzc4OWZkOGJkNzIw
Y2RmMjZkNWIzZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJW
aWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaApAQCAtMjMz
LDcgKzIzMyw3IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBtX3dhc0FjY3VtdWxhdGluZ1JlcGFp
bnRSZWdpb247CiAgICAgfTsKIAotICAgIFdlYWtQdHI8UmVuZGVyVmlldz4gY3JlYXRlV2Vha1B0
cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0
cjxSZW5kZXJWaWV3PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVh
dGVXZWFrUHRyKCp0aGlzKTsgfQogCiAgICAgdm9pZCBzY2hlZHVsZUxhenlSZXBhaW50KFJlbmRl
ckJveCYpOwogICAgIHZvaWQgdW5zY2hlZHVsZUxhenlSZXBhaW50KFJlbmRlckJveCYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAppbmRleCA0Y2U3MmNlNmRhYTkx
Mjc3NjRkOWY4OWQ0MGQ0NDQwNmJhYmY4NTY2Li40YjRkNDQ0NDMyYWFmMWYwNWE0MGE5ZjA2N2Q5
ZTQyOTBhZjg2NDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
V2lkZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNw
cApAQCAtODEsNyArODEsNiBAQCBzdGF0aWMgdm9pZCBtb3ZlV2lkZ2V0VG9QYXJlbnRTb29uKFdp
ZGdldCYgY2hpbGQsIEZyYW1lVmlldyogcGFyZW50KQogCiBSZW5kZXJXaWRnZXQ6OlJlbmRlcldp
ZGdldChIVE1MRnJhbWVPd25lckVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUp
CiAgICAgOiBSZW5kZXJSZXBsYWNlZChlbGVtZW50LCBXVEZNb3ZlKHN0eWxlKSkKLSAgICAsIG1f
d2Vha1B0ckZhY3RvcnkodGhpcykKIHsKICAgICBzZXRJbmxpbmUoZmFsc2UpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oCmluZGV4IGI3YjdjN2IxMmUxODBkZTE4N2Q1
YWU3YjMyNzU0YmRhMmIxYTgwMTMuLmMxMmY1Nzk2NzQ3MjQ5OTU3MjMxZGFiZjA2ZGJiZjRlMjc0
OGJjMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKQEAgLTcxLDcg
KzcxLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCByZXF1aXJlc0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmcoKSBjb25zdDsKIAotICAgIFdlYWtQdHI8UmVuZGVyV2lkZ2V0PiBjcmVhdGVXZWFrUHRyKCkg
eyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRy
PFJlbmRlcldpZGdldD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogICAgIHZvaWQgcmVmKCkgeyArK21fcmVmQ291bnQ7
IH0KICAgICB2b2lkIGRlcmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUm9vdElubGluZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGlu
ZUJveC5jcHAKaW5kZXggMzgxODlhNzQxNGE5NTJjNTAxNDcwZGZjMjljMjVmNTdmZmIzMDNjNC4u
NjMwNjE5MmQzOGIzZDE1NWNmMDMxNjEwZWM0YzAzNTcxNTZlOGRmMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcApAQCAtNjEsOCArNjEsNiBAQCBSb290SW5s
aW5lQm94OjpSb290SW5saW5lQm94KFJlbmRlckJsb2NrRmxvdyYgYmxvY2spCiAgICAgOiBJbmxp
bmVGbG93Qm94KGJsb2NrKQogICAgICwgbV9saW5lQnJlYWtQb3MoMCkKICAgICAsIG1fbGluZUJy
ZWFrT2JqKG51bGxwdHIpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0KIHsKICAgICBz
ZXRJc0hvcml6b250YWwoYmxvY2suaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guaAppbmRleCBjMTk1OGYzODc5ZmUxMjIw
OWNjMjA2MjZiOWE3YjFmNzIwY2YzNTc5Li4xMTIyN2M2NTU1YzAyYTJjMzA0YWI0YWMzMmZlZmU3
NzRmOTc3ZGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGlu
ZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmgKQEAg
LTM5LDcgKzM5LDcgQEAgY2xhc3MgUm9vdElubGluZUJveCA6IHB1YmxpYyBJbmxpbmVGbG93Qm94
IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSb290SW5saW5lQm94KFJlbmRlckJsb2NrRmxvdyYp
OwogICAgIHZpcnR1YWwgflJvb3RJbmxpbmVCb3goKTsKLSAgICBXZWFrUHRyPFJvb3RJbmxpbmVC
b3g+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKTsgfQorICAgIFdlYWtQdHI8Um9vdElubGluZUJveD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0
dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogICAgIFJlbmRl
ckJsb2NrRmxvdyYgYmxvY2tGbG93KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVs
ZW1lbnQuY3BwCmluZGV4IGUyMjMwZjQxMmRkODEzNWJmMjU3NjE1YmViOGVlNDg0NzdmZGUwNGUu
LjQwNDIzMTdjYzYxZmRhNzk1NGMwZjE0NGNhM2Q2MzgxZWYzYzk5NmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhFbGVtZW50LmNwcApAQCAtODEsNyArODEsNiBAQCBFTkRfUkVHSVNURVJfQU5J
TUFURURfUFJPUEVSVElFUwogaW5saW5lIFNWR1BhdGhFbGVtZW50OjpTVkdQYXRoRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBT
VkdHcmFwaGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX3BhdGhTZWdMaXN0
KFBhdGhTZWdVbmFsdGVyZWRSb2xlKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogICAg
ICwgbV9pc0FuaW1WYWxPYnNlcnZlZChmYWxzZSkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShT
VkdOYW1lczo6cGF0aFRhZykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAppbmRleCAz
ZjQ3MTA1YjRkMGNiMzNlY2QwZWIwYWVmY2IxMmYzYzM3Zjk1ZDM5Li40ODI0NzgyZmMzZTg3Y2Nk
OWM2Yjg0ZjVkZjdiMmU1YWY0M2FhNzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQu
aApAQCAtOTcsNyArOTcsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzQW5pbVZhbE9ic2VydmVk
KCkgY29uc3QgeyByZXR1cm4gbV9pc0FuaW1WYWxPYnNlcnZlZDsgfQogCi0gICAgV2Vha1B0cjxT
VkdQYXRoRWxlbWVudD4gY3JlYXRlV2Vha1B0cigpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha1B0ckZh
Y3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxTVkdQYXRoRWxlbWVudD4gY3Jl
YXRlV2Vha1B0cigpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0
cigqY29uc3RfY2FzdDxTVkdQYXRoRWxlbWVudCo+KHRoaXMpKTsgfQogCiAgICAgdm9pZCBhbmlt
YXRlZFByb3BlcnR5V2lsbEJlRGVsZXRlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmgKaW5kZXggMDE4ODAzMWNlMzhhYzFlZjQyZDdm
ODYxNWQ3NGZjOGZmZjg4YjExZi4uZTBiZjBkMDgyN2U3M2Y3ZmM4ZmZkMjA5MzA5ZGYwMWUzYzI5
OWExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTWF0cml4
VGVhck9mZi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRl
YXJPZmYuaApAQCAtMzAsNyArMzAsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlRf
VU5VU0VEKHZhbHVlLCAmcGFyZW50LnByb3BlcnR5UmVmZXJlbmNlKCkuc3ZnTWF0cml4KCkgPT0g
JnZhbHVlKTsKICAgICAgICAgUmVmPFNWR01hdHJpeFRlYXJPZmY+IHJlc3VsdCA9IGFkb3B0UmVm
KCpuZXcgU1ZHTWF0cml4VGVhck9mZihwYXJlbnQpKTsKLSAgICAgICAgcGFyZW50LmFkZENoaWxk
KHJlc3VsdC0+bV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCkpOworICAgICAgICBwYXJlbnQu
YWRkQ2hpbGQocmVzdWx0LT5tX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIocmVzdWx0KSk7CiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCkBAIC00OCw3ICs0OCw2IEBAIHByaXZhdGU6
CiAgICAgU1ZHTWF0cml4VGVhck9mZihTVkdUcmFuc2Zvcm0mIHBhcmVudCkKICAgICAgICAgOiBT
VkdNYXRyaXgobnVsbHB0cikKICAgICAgICAgLCBtX3BhcmVudCgmcGFyZW50KQotICAgICAgICAs
IG1fd2Vha0ZhY3RvcnkodGhpcykKICAgICB7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvTW9ja0NETUZhY3RvcnkuY3BwCmluZGV4IGExYTc5OGQxNzkzMTI0MmI1ZjZlMDdlNzk1Nzg5
MDk0OThiODNhYzQuLmIyZmM2YzE3OThjYmRhMmE2MmY0MTk2N2U1MjRlYTY3ZWE4NThlYjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3BwCkBAIC0zOCw3ICszOCw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTW9ja0NETUZhY3Rvcnk6Ok1vY2tDRE1GYWN0b3J5
KCkKICAgICA6IG1fc3VwcG9ydGVkU2Vzc2lvblR5cGVzKHsgTWVkaWFLZXlTZXNzaW9uVHlwZTo6
VGVtcG9yYXJ5LCBNZWRpYUtleVNlc3Npb25UeXBlOjpQZXJzaXN0ZW50VXNhZ2VSZWNvcmQsIE1l
ZGlhS2V5U2Vzc2lvblR5cGU6OlBlcnNpc3RlbnRMaWNlbnNlIH0pCi0gICAgLCBtX3dlYWtQdHJG
YWN0b3J5KHRoaXMpCiB7CiAgICAgQ0RNRmFjdG9yeTo6cmVnaXN0ZXJGYWN0b3J5KCp0aGlzKTsK
IH0KQEAgLTk4LDEyICs5NywxMSBAQCB2b2lkIE1vY2tDRE1GYWN0b3J5OjpzZXRTdXBwb3J0ZWRE
YXRhVHlwZXMoVmVjdG9yPFN0cmluZz4mJiB0eXBlcykKIAogc3RkOjp1bmlxdWVfcHRyPENETVBy
aXZhdGU+IE1vY2tDRE1GYWN0b3J5OjpjcmVhdGVDRE0oY29uc3QgU3RyaW5nJikKIHsKLSAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNb2NrQ0RNPihtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TW9ja0NETT4obV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSk7CiB9CiAKIE1vY2tDRE06Ok1vY2tDRE0oV2Vh
a1B0cjxNb2NrQ0RNRmFjdG9yeT4gZmFjdG9yeSkKICAgICA6IG1fZmFjdG9yeShXVEZNb3ZlKGZh
Y3RvcnkpKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogfQogCkBAIC0xNjcsNyAr
MTY1LDcgQEAgUmVmUHRyPENETUluc3RhbmNlPiBNb2NrQ0RNOjpjcmVhdGVJbnN0YW5jZSgpCiB7
CiAgICAgaWYgKG1fZmFjdG9yeSAmJiAhbV9mYWN0b3J5LT5jYW5DcmVhdGVJbnN0YW5jZXMoKSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNb2NrQ0RN
SW5zdGFuY2UobV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCkpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IE1vY2tDRE1JbnN0YW5jZShtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKnRoaXMpKSk7CiB9CiAKIHZvaWQgTW9ja0NETTo6bG9hZEFuZEluaXRpYWxpemUoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5
bWVudENvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDEwZTE0ZjcwZWQ2N2YxZGNiYWI5MTc3Y2Nh
M2RjMWM1NzcyNDliMzcuLjk2MWJiZDM3YzM3ZmI2MDJlNTg1ZDYzMWIyNDRmZWE4Y2IwZDliYjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRD
b29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBh
eS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTQwLDcgKzQwLDYgQEAgc3RhdGlj
IFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5KiBhY3RpdmVQYXltZW50Q29vcmRpbmF0b3JQcm94
eTsKIAogV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OldlYlBheW1lbnRDb29yZGluYXRvclBy
b3h5KFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5KQogICAgIDogbV93ZWJQYWdlUHJveHkod2Vi
UGFnZVByb3h5KQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogICAgICwgbV9zdGF0ZShT
dGF0ZTo6SWRsZSkKICAgICAsIG1fbWVyY2hhbnRWYWxpZGF0aW9uU3RhdGUoTWVyY2hhbnRWYWxp
ZGF0aW9uU3RhdGU6OklkbGUpCiB7CkBAIC02NSw3ICs2NCw3IEBAIHZvaWQgV2ViUGF5bWVudENv
b3JkaW5hdG9yUHJveHk6OmNhbk1ha2VQYXltZW50cyhib29sJiByZXBseSkKIAogdm9pZCBXZWJQ
YXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQoY29u
c3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG9tYWluTmFtZSwg
dWludDY0X3QgcmVxdWVzdElEKQogewotICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0
b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9y
eS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsKICAgICBwbGF0Zm9ybUNhbk1ha2VQYXltZW50c1dpdGhB
Y3RpdmVDYXJkKG1lcmNoYW50SWRlbnRpZmllciwgZG9tYWluTmFtZSwgW3dlYWtUaGlzLCByZXF1
ZXN0SURdKGJvb2wgY2FuTWFrZVBheW1lbnRzKSB7CiAgICAgICAgIGF1dG8gcGF5bWVudENvb3Jk
aW5hdG9yUHJveHkgPSB3ZWFrVGhpcy5nZXQoKTsKICAgICAgICAgaWYgKCFwYXltZW50Q29vcmRp
bmF0b3JQcm94eSkKQEAgLTc3LDcgKzc2LDcgQEAgdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQ
cm94eTo6Y2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQoY29uc3QgU3RyaW5nJiBtZXIKIAog
dm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6b3BlblBheW1lbnRTZXR1cChjb25zdCBT
dHJpbmcmIG1lcmNoYW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCB1aW50
NjRfdCByZXF1ZXN0SUQpCiB7Ci0gICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigpOworICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKnRoaXMpOwogICAgIHBsYXRmb3JtT3BlblBheW1lbnRTZXR1cChtZXJjaGFu
dElkZW50aWZpZXIsIGRvbWFpbk5hbWUsIFt3ZWFrVGhpcywgcmVxdWVzdElEXShib29sIHJlc3Vs
dCkgewogICAgICAgICBhdXRvIHBheW1lbnRDb29yZGluYXRvclByb3h5ID0gd2Vha1RoaXMuZ2V0
KCk7CiAgICAgICAgIGlmICghcGF5bWVudENvb3JkaW5hdG9yUHJveHkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9tYWMvV2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9tYWMvV2ViUGF5
bWVudENvb3JkaW5hdG9yUHJveHlNYWMubW0KaW5kZXggM2U1MDY5YTFkNTQ1MGM5MWRlMTk3OWI1
YzdkYzE0OTBlM2UxNjliYS4uYTEyZWM0NjczNDljYzFhMDZjOGFhMmM2ZGNlZjFlNWJlMjZlNmNh
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkvbWFjL1dlYlBh
eW1lbnRDb29yZGluYXRvclByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FwcGxlUGF5L21hYy9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eU1hYy5tbQpAQCAtNDYsNyAr
NDYsNyBAQCB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybVNob3dQYXlt
ZW50VUkoY29uc3QgV2ViQ29yZTo6VVJMJiBvcmlnaQogICAgIGF1dG8gcGF5bWVudFJlcXVlc3Qg
PSB0b1BLUGF5bWVudFJlcXVlc3QobV93ZWJQYWdlUHJveHksIG9yaWdpbmF0aW5nVVJMLCBsaW5r
SWNvblVSTFN0cmluZ3MsIHJlcXVlc3QpOwogCiAgICAgYXV0byBzaG93UGF5bWVudFVJUmVxdWVz
dFNlZWQgPSBtX3Nob3dQYXltZW50VUlSZXF1ZXN0U2VlZDsKLSAgICBhdXRvIHdlYWtUaGlzID0g
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiAgICAgW2dldFBLUGF5bWVudEF1
dGhvcml6YXRpb25WaWV3Q29udHJvbGxlckNsYXNzKCkgcmVxdWVzdFZpZXdDb250cm9sbGVyV2l0
aFBheW1lbnRSZXF1ZXN0OnBheW1lbnRSZXF1ZXN0LmdldCgpIGNvbXBsZXRpb246QmxvY2tQdHI8
dm9pZCAoUEtQYXltZW50QXV0aG9yaXphdGlvblZpZXdDb250cm9sbGVyICosIE5TRXJyb3IgKik+
Ojpmcm9tQ2FsbGFibGUoW3BheW1lbnRSZXF1ZXN0LCBzaG93UGF5bWVudFVJUmVxdWVzdFNlZWQs
IHdlYWtUaGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XShQS1BheW1lbnRBdXRob3JpemF0aW9uVmlld0NvbnRyb2xsZXIgKnZpZXdDb250cm9sbGVyLCBO
U0Vycm9yICplcnJvcikgewogICAgICAgICBhdXRvIHBheW1lbnRDb29yZGluYXRvclByb3h5ID0g
d2Vha1RoaXMuZ2V0KCk7CiAgICAgICAgIGlmICghcGF5bWVudENvb3JkaW5hdG9yUHJveHkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsaWNhdGlvblN0YXRlVHJhY2tl
ci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxpY2F0aW9uU3RhdGVUcmFja2VyLm1t
CmluZGV4IDZiMjkzOWFkM2MwZTA2YjVkZDUyMWNlN2E4ODYyZDJiZGI3ZTg1ODcuLmM2NTIzYTM4
YWQ4NjNmOGZiYzUyZTRkMTgyZTBlODdhMGM3Nzk4MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FwcGxpY2F0aW9uU3RhdGVUcmFja2VyLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FwcGxpY2F0aW9uU3RhdGVUcmFja2VyLm1tCkBAIC03OSw3ICs3OSw2IEBA
IEFwcGxpY2F0aW9uU3RhdGVUcmFja2VyOjpBcHBsaWNhdGlvblN0YXRlVHJhY2tlcihVSVZpZXcg
KnZpZXcsIFNFTCBkaWRFbnRlckJhY2tnCiAgICAgLCBtX2RpZEZpbmlzaFNuYXBzaG90dGluZ0Fm
dGVyRW50ZXJpbmdCYWNrZ3JvdW5kU2VsZWN0b3IoZGlkRmluaXNoU25hcHNob3R0aW5nQWZ0ZXJF
bnRlcmluZ0JhY2tncm91bmRTZWxlY3RvcikKICAgICAsIG1fd2lsbEVudGVyRm9yZWdyb3VuZFNl
bGVjdG9yKHdpbGxFbnRlckZvcmVncm91bmRTZWxlY3RvcikKICAgICAsIG1faXNJbkJhY2tncm91
bmQodHJ1ZSkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKICAgICAsIG1fZGlkRW50ZXJC
YWNrZ3JvdW5kT2JzZXJ2ZXIobnVsbHB0cikKICAgICAsIG1fZGlkQ3JlYXRlV2luZG93Q29udGV4
dE9ic2VydmVyKG51bGxwdHIpCiAgICAgLCBtX2RpZEZpbmlzaFNuYXBzaG90dGluZ0FmdGVyRW50
ZXJpbmdCYWNrZ3JvdW5kT2JzZXJ2ZXIobnVsbHB0cikKQEAgLTk0LDcgKzkzLDcgQEAgQXBwbGlj
YXRpb25TdGF0ZVRyYWNrZXI6OkFwcGxpY2F0aW9uU3RhdGVUcmFja2VyKFVJVmlldyAqdmlldywg
U0VMIGRpZEVudGVyQmFja2cKICAgICBBU1NFUlQod2luZG93KTsKIAogICAgIE5TTm90aWZpY2F0
aW9uQ2VudGVyICpub3RpZmljYXRpb25DZW50ZXIgPSBbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVm
YXVsdENlbnRlcl07Ci0gICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRl
V2Vha1B0cigpOworICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKnRoaXMpOwogICAgIG1fZGlkQ3JlYXRlV2luZG93Q29udGV4dE9ic2VydmVyID0gW25v
dGlmaWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlckZvck5hbWU6QCJfVUlXaW5kb3dEaWRDcmVhdGVX
aW5kb3dDb250ZXh0Tm90aWZpY2F0aW9uIiBvYmplY3Q6d2luZG93IHF1ZXVlOm5pbCB1c2luZ0Js
b2NrOlt3ZWFrVGhpc10oTlNOb3RpZmljYXRpb24gKikgewogICAgICAgICBhdXRvIGFwcGxpY2F0
aW9uU3RhdGVUcmFja2VyID0gd2Vha1RoaXMuZ2V0KCk7CiAgICAgICAgIGlmICghYXBwbGljYXRp
b25TdGF0ZVRyYWNrZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwuaAppbmRleCBiNDM5N2M2NmIzYWYwYjhjMzhiOTkxNzQ2OGQ5ODgyYzI5NjlhM2VmLi40MTZk
Y2MwZTZlOTQ3ODczYWFhZGVlOWJhMTA4MzJhYmMxZjA5MTk0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTU3NCw3ICs1NzQsNyBAQCBwcml2YXRl
OgogI2VuZGlmIC8vIEVOQUJMRShXRUJfUExBWUJBQ0tfQ09OVFJPTFNfTUFOQUdFUikKICNlbmRp
ZiAvLyBIQVZFKFRPVUNIX0JBUikKIAotICAgIFdlYWtQdHI8V2ViVmlld0ltcGw+IGNyZWF0ZVdl
YWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAg
IFdlYWtQdHI8V2ViVmlld0ltcGw+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKICAgICBib29sIHN1cHBvcnRzQXJiaXRy
YXJ5TGF5b3V0TW9kZXMoKSBjb25zdDsKICAgICBmbG9hdCBpbnRyaW5zaWNEZXZpY2VTY2FsZUZh
Y3RvcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbQppbmRleCAwMTU1Y2IxOGIxNTE0MzlhMGYxM2IyM2FhZGFhZDYxNzcxYzZlNTkwLi45Mzg0
NmE4ZDU4Y2JmZGNiM2QzMmI2MWZlYzRlYjdkMWI5NWVkNWRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtMTI3MSw3ICsxMjcxLDYgQEAgV2Vi
Vmlld0ltcGw6OldlYlZpZXdJbXBsKE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0ZT4gKnZpZXcs
IFdLV2ViVmlldyAqb3V0ZXJXZWIKICAgICA6IG1fdmlldyh2aWV3KQogICAgICwgbV9wYWdlQ2xp
ZW50KHN0ZDo6bWFrZV91bmlxdWU8UGFnZUNsaWVudEltcGw+KHZpZXcsIG91dGVyV2ViVmlldykp
CiAgICAgLCBtX3BhZ2UocHJvY2Vzc1Bvb2wuY3JlYXRlV2ViUGFnZSgqbV9wYWdlQ2xpZW50LCBX
VEZNb3ZlKGNvbmZpZ3VyYXRpb24pKSkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKICAg
ICAsIG1fbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKG1fcGFnZS0+cHJlZmVyZW5j
ZXMoKS5wbHVnaW5zRW5hYmxlZCgpKQogICAgICwgbV9pbnRyaW5zaWNDb250ZW50U2l6ZShDR1Np
emVNYWtlKE5TVmlld05vSW5zdHJpbnNpY01ldHJpYywgTlNWaWV3Tm9JbnN0cmluc2ljTWV0cmlj
KSkKICAgICAsIG1fbGF5b3V0U3RyYXRlZ3koW1dLVmlld0xheW91dFN0cmF0ZWd5IGxheW91dFN0
cmF0ZWd5V2l0aFBhZ2U6bV9wYWdlIHZpZXc6dmlldyB2aWV3SW1wbDoqdGhpcyBtb2RlOmtXS0xh
eW91dE1vZGVWaWV3U2l6ZV0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9M
YXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1
bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmNwcAppbmRleCBmMmY3MmFjYzNmMjRiMjk5ZmIwY2U4Yjdm
ODkyY2FkZGJhMTcwYTkwLi4wZmZhOTJkYzhkZDlmMDNiMzI2YWM1ZTEyYmY4ZDgxYmRkZGUxMTA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1
bmNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NM
YXVuY2hlci5jcHAKQEAgLTMzLDcgKzMzLDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIFByb2Nl
c3NMYXVuY2hlcjo6UHJvY2Vzc0xhdW5jaGVyKENsaWVudCogY2xpZW50LCBjb25zdCBMYXVuY2hP
cHRpb25zJiBsYXVuY2hPcHRpb25zKQogICAgIDogbV9jbGllbnQoY2xpZW50KQotICAgICwgbV93
ZWFrUHRyRmFjdG9yeSh0aGlzKQogICAgICwgbV9sYXVuY2hPcHRpb25zKGxhdW5jaE9wdGlvbnMp
CiAgICAgLCBtX3Byb2Nlc3NJZGVudGlmaWVyKDApCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQppbmRl
eCBhMTY2MGI0ZWM5NGFlZjhhYTNmODQ3YjMzMTA4MWFiNDgxM2YwNGIyLi42NDg5ZjViMzBjODg2
MzJiZDJiNGE4YjRhMWI2NGM4MmY5NGMxOGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KQEAgLTE4
Niw3ICsxODYsNyBAQCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAKICAg
ICB4cGNfZGljdGlvbmFyeV9zZXRfdmFsdWUoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgImV4dHJh
LWluaXRpYWxpemF0aW9uLWRhdGEiLCBleHRyYUluaXRpYWxpemF0aW9uRGF0YS5nZXQoKSk7CiAK
LSAgICBhdXRvIHdlYWtQcm9jZXNzTGF1bmNoZXIgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKTsKKyAgICBhdXRvIHdlYWtQcm9jZXNzTGF1bmNoZXIgPSBtX3dlYWtQdHJGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOwogICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5k
bGVyKG1feHBjQ29ubmVjdGlvbi5nZXQoKSwgW3dlYWtQcm9jZXNzTGF1bmNoZXIsIGxpc3Rlbmlu
Z1BvcnRdKHhwY19vYmplY3RfdCBldmVudCkgewogICAgICAgICBBU1NFUlQoeHBjX2dldF90eXBl
KGV2ZW50KSA9PSBYUENfVFlQRV9FUlJPUik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1By
b2Nlc3NBc3NlcnRpb24uaAppbmRleCAyMDMyMDAwNjU1NzZmNTgwN2YyY2UxNjE3YWVjOWJkNDll
OWYxNzg1Li40ZDRkYzY2ZjI1NWVhNmZjYzQwY2UzYTNjYmIzNWU0ZDgxMjJmOGNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oCkBAIC02OSw3ICs2OSw3IEBA
IHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1MpICYmICFQTEFURk9STShJ
T1NfU0lNVUxBVE9SKQotICAgIFdlYWtQdHI8UHJvY2Vzc0Fzc2VydGlvbj4gY3JlYXRlV2Vha1B0
cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0
cjxQcm9jZXNzQXNzZXJ0aW9uPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9y
eS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogICAgIHZvaWQgbWFya0FzSW52YWxpZGF0ZWQoKTsK
IAogICAgIFJldGFpblB0cjxCS1NQcm9jZXNzQXNzZXJ0aW9uPiBtX2Fzc2VydGlvbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDEyNjU3ODFkOTM1MDcxNzdj
MzkwOTJmMzkxYzRkNzBlMjU3OWVhZTMuLmYzYjUyZmU1ZGU1ZTBjNTMyZWNiNjYzYWYyZjcxYzli
NzFmYzU0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
MzY1LDcgKzM2NSw2IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHBh
Z2VDbGllbnQsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgdWluCiAjZW5kaWYKICAgICAsIG1f
cGFnZUxvYWRTdGF0ZSgqdGhpcykKICAgICAsIG1fY29uZmlndXJhdGlvblByZWZlcmVuY2VWYWx1
ZXMobV9jb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlVmFsdWVzKCkpCi0gICAgLCBtX3dlYWtQdHJG
YWN0b3J5KHRoaXMpCiB7CiAgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmFkZE9ic2Vy
dmVyKG1fdmlzaXRlZExpbmtTdG9yZSk7CiAgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2Vy
LmFkZE9ic2VydmVyKG1fd2Vic2l0ZURhdGFTdG9yZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCmluZGV4IGI1NjRjZGMzNTgzM2ZlNzc1NmMxZWVmM2I3MGRlZDdlODAxZTA2
MmYuLjcxNTI4MjI0MDhmYzk0Nzg0ZGQzZjYzNjZiNjU0MWEwNGFiOWZlMzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMTkwLDcgKzExOTAsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBnYW1lcGFkQWN0aXZpdHkoY29uc3QgVmVjdG9yPEdhbWVwYWREYXRhPiYsIGJv
b2wgc2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJsZSk7CiAjZW5kaWYKICAgICAgICAgCi0gICAgV2Vh
a1B0cjxXZWJQYWdlUHJveHk+IGNyZWF0ZVdlYWtQdHIoKSBjb25zdCB7IHJldHVybiBtX3dlYWtQ
dHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8V2ViUGFnZVByb3h5PiBj
cmVhdGVXZWFrUHRyKCkgY29uc3QgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFr
UHRyKCpjb25zdF9jYXN0PFdlYlBhZ2VQcm94eSo+KHRoaXMpKTsgfQogCiAgICAgdm9pZCBpc0xv
YWRpbmdDaGFuZ2VkKCkgeyBhY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OkFjdGl2aXR5
U3RhdGU6OklzTG9hZGluZyk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0
ay9XYXlsYW5kQ29tcG9zaXRvci5jcHAKaW5kZXggNGMzNGU5MDU3YWFhMDRiNDBlZGQ0NDFlNGNm
ZTkyZmM2MTljZmZiZi4uYjZhYjg2NDdmMjVjM2VhNTZjMmRlOTgxZThjY2JlMWJlZWY2MGI4YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3Iu
Y3BwCkBAIC05Nyw3ICs5Nyw2IEBAIFdheWxhbmRDb21wb3NpdG9yOjpCdWZmZXIqIFdheWxhbmRD
b21wb3NpdG9yOjpCdWZmZXI6OmdldE9yQ3JlYXRlKHN0cnVjdCB3bF9yZXNvCiAKIFdheWxhbmRD
b21wb3NpdG9yOjpCdWZmZXI6OkJ1ZmZlcihzdHJ1Y3Qgd2xfcmVzb3VyY2UqIHJlc291cmNlKQog
ICAgIDogbV9yZXNvdXJjZShyZXNvdXJjZSkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykK
IHsKICAgICB3bF9saXN0X2luaXQoJm1fZGVzdHJveUxpc3RlbmVyLmxpbmspOwogICAgIG1fZGVz
dHJveUxpc3RlbmVyLm5vdGlmeSA9IGRlc3Ryb3lMaXN0ZW5lckNhbGxiYWNrOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3IuaAppbmRleCA5YmJlYjdh
N2NkYmI3ZmIyNGI2NGJiMDRkZmYyY2I3YjUzYzY4NWE2Li5lNWFiYTAzZTE0YzZhYzMyZThiZmRh
OTQxZDU4NTM2OTY0YjkyMTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9n
dGsvV2F5bGFuZENvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsv
V2F5bGFuZENvbXBvc2l0b3IuaApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAgICAgIEVH
TEltYWdlS0hSIGNyZWF0ZUltYWdlKCkgY29uc3Q7CiAgICAgICAgIFdlYkNvcmU6OkludFNpemUg
c2l6ZSgpIGNvbnN0OwogCi0gICAgICAgIFdlYWtQdHI8QnVmZmVyPiBjcmVhdGVXZWFrUHRyKCkg
eyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICAgICAgV2Vh
a1B0cjxCdWZmZXI+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBCdWZmZXIoc3Ry
dWN0IHdsX3Jlc291cmNlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
cm9jZXNzQXNzZXJ0aW9uSU9TLm1tCmluZGV4IGI1Mjk2MDc2ZjQzZTc0ODk0MjIwYTQ0NjNmNmRh
ODlkNzM0OGJiOTYuLjgxMGM2ZjNhODM4MzE3MzFhZDk5YzRhYTVhMjM5ZDM5ZmQ4ZDliN2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9T
Lm1tCkBAIC0xNjEsOCArMTYxLDcgQEAgc3RhdGljIEJLU1Byb2Nlc3NBc3NlcnRpb25GbGFncyBm
bGFnc0ZvclN0YXRlKEFzc2VydGlvblN0YXRlIGFzc2VydGlvblN0YXRlKQogfQogCiBQcm9jZXNz
QXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKHBpZF90IHBpZCwgQXNzZXJ0aW9uU3RhdGUgYXNz
ZXJ0aW9uU3RhdGUsIEZ1bmN0aW9uPHZvaWQoKT4mJiBpbnZhbGlkYXRpb25DYWxsYmFjaykKLSAg
ICA6IG1fd2Vha0ZhY3RvcnkodGhpcykKLSAgICAsIG1faW52YWxpZGF0aW9uQ2FsbGJhY2soV1RG
TW92ZShpbnZhbGlkYXRpb25DYWxsYmFjaykpCisgICAgOiBtX2ludmFsaWRhdGlvbkNhbGxiYWNr
KFdURk1vdmUoaW52YWxpZGF0aW9uQ2FsbGJhY2spKQogICAgICwgbV9hc3NlcnRpb25TdGF0ZShh
c3NlcnRpb25TdGF0ZSkKIHsKICAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaApp
bmRleCA0Mjc1YWUzMTE1YTZkMjUxODRiYzJiZGRkODJkMDRhNTVhOTk5N2JmLi5lNThkZDYxMzA4
ZGM3N2RjMjY5OGRiNjliNzc0YzcxMzU0MjUzNzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJs
aWM6CiAgICAgdWludDY0X3QgbmV4dFRyYW5zYWN0aW9uSUQoKSBjb25zdCB7IHJldHVybiBtX2N1
cnJlbnRUcmFuc2FjdGlvbklEICsgMTsgfQogICAgIHVpbnQ2NF90IGxhc3RDb21taXR0ZWRUcmFu
c2FjdGlvbklEKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50VHJhbnNhY3Rpb25JRDsgfQogCi0g
ICAgV2Vha1B0cjxSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYT4gY3JlYXRlV2Vha1B0cigpIHsg
cmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vh
a1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogcHJpdmF0ZToKICAgICAvLyBE
cmF3aW5nQXJlYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhLm1tCmluZGV4IGUwZmU0YzEzYWZjN2Y0MWI0NDc1N2I1YmY4MDJkYWExN2FjMjIx
YjIuLjllYmE5YTlkNzhkNWQzYWQ2Y2Y0YTJjZjg2ZDhhOWRhOGM0MTBmOGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KQEAgLTYw
LDcgKzYwLDYgQEAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OlJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhKFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IFcKICAgICAsIG1fcmVtb3RlTGF5ZXJU
cmVlQ29udGV4dChzdGQ6Om1ha2VfdW5pcXVlPFJlbW90ZUxheWVyVHJlZUNvbnRleHQ+KHdlYlBh
Z2UpKQogICAgICwgbV9yb290TGF5ZXIoR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5
ZXJGYWN0b3J5KCksICp0aGlzKSkKICAgICAsIG1fbGF5ZXJGbHVzaFRpbWVyKCp0aGlzLCAmUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKQotICAgICwgbV93ZWFrUHRyRmFj
dG9yeSh0aGlzKQogewogICAgIHdlYlBhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5zZXRGb3Jj
ZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsKICNpZiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
bW0KaW5kZXggM2RkZWJiNWNiZTgxOTcxNGI3ZWFmM2I1OWM3YzkzOGY0ZTNjNTMyYi4uMzQzYzJj
N2ZiNzk1OWM0YTlhYTUxNTIxMThkYzA2Zjg2Yjg3MDE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpA
QCAtMTk1LDcgKzE5NSw2IEBAIEBlbmQKIFdlYkVkaXRvckNsaWVudDo6V2ViRWRpdG9yQ2xpZW50
KFdlYlZpZXcgKndlYlZpZXcpCiAgICAgOiBtX3dlYlZpZXcod2ViVmlldykKICAgICAsIG1fdW5k
b1RhcmdldChhZG9wdE5TKFtbV2ViRWRpdG9yVW5kb1RhcmdldCBhbGxvY10gaW5pdF0pKQotICAg
ICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogfQogCkBAIC0xMjQ3LDcgKzEyNDYsNyBAQCB2
b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENhbmRpZGF0ZXNGb3JTZWxlY3Rpb24oY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgc2VsZQogICAgIG1fcGFyYWdyYXBoQ29udGV4dEZvckNhbmRpZGF0
ZVJlcXVlc3QgPSBwbGFpblRleHQoZnJhbWUtPmVkaXRvcigpLmNvbnRleHRSYW5nZUZvckNhbmRp
ZGF0ZVJlcXVlc3QoKS5nZXQoKSk7CiAKICAgICBOU1RleHRDaGVja2luZ1R5cGVzIGNoZWNraW5n
VHlwZXMgPSBOU1RleHRDaGVja2luZ1R5cGVTcGVsbGluZyB8IE5TVGV4dENoZWNraW5nVHlwZVJl
cGxhY2VtZW50IHwgTlNUZXh0Q2hlY2tpbmdUeXBlQ29ycmVjdGlvbjsKLSAgICBhdXRvIHdlYWtF
ZGl0b3IgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBhdXRvIHdlYWtF
ZGl0b3IgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOwogICAgIG1fbGFz
dENhbmRpZGF0ZVJlcXVlc3RTZXF1ZW5jZU51bWJlciA9IFtbTlNTcGVsbENoZWNrZXIgc2hhcmVk
U3BlbGxDaGVja2VyXSByZXF1ZXN0Q2FuZGlkYXRlc0ZvclNlbGVjdGVkUmFuZ2U6bV9yYW5nZUZv
ckNhbmRpZGF0ZXMgaW5TdHJpbmc6bV9wYXJhZ3JhcGhDb250ZXh0Rm9yQ2FuZGlkYXRlUmVxdWVz
dC5nZXQoKSB0eXBlczpjaGVja2luZ1R5cGVzIG9wdGlvbnM6bmlsIGluU3BlbGxEb2N1bWVudFdp
dGhUYWc6c3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoKSBjb21wbGV0aW9uSGFuZGxlcjpbd2Vha0Vk
aXRvcl0oTlNJbnRlZ2VyIHNlcXVlbmNlTnVtYmVyLCBOU0FycmF5PE5TVGV4dENoZWNraW5nUmVz
dWx0ICo+ICpjYW5kaWRhdGVzKSB7CiAgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIF57CiAgICAgICAgICAgICBpZiAoIXdlYWtFZGl0b3IpCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWViMDJhMzgwZjUx
ZmVlNTkxYWZiMmEyMmEwMmUyM2E3MTMwM2E0My4uMmMwODc5NzNlNmJhMzA3ZmU1MDljMTEyYjA0
MjY5OWNhY2JiMTIwZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA5LTIyICBaYWxhbiBCdWp0YXMgIDx6YWxh
bkBhcHBsZS5jb20+CisKKyAgICAgICAgV2Vha1B0ckZhY3Rvcnkgc2hvdWxkIHBvcHVsYXRlIG1f
cmVmIGxhemlseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3NzM3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV2Vha1B0ci5jcHA6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNy0wOS0yMiAgVGltIEhvcnRvbiA8dGltb3RoeV9ob3J0
b25AYXBwbGUuY29tPiBhbmQgTWljaGFlbCBDYXRhbnphcm8gPG1jYXRhbnphcm9AaWdhbGlhLmNv
bT4KIAogICAgICAgICBSZW1vdmUgYnVpbGQtd2Via2l0J3Mgbm90aW9uIG9mIGZlYXR1cmUgZmxh
Z3MgaGF2aW5nIGEgZGVmYXVsdCB2YWx1ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvV2Vha1B0ci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9X
ZWFrUHRyLmNwcAppbmRleCA3NDVhYWRkMmJkNTJiNzBhOTYzODhmNTA3NGUxM2EzYmI2ZWVhYWI0
Li45YzVhYzU5YTdjOTdkMDEyOTE3ZGRiNzMwZjU1ZDcwMjFjNzU0NGYzIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XZWFrUHRyLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9XZWFrUHRyLmNwcApAQCAtMzMsMTAgKzMzLDEwIEBAIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJIHsKIFRFU1QoV1RGX1dlYWtQdHIsIEJhc2ljKQogewogICAgIGlu
dCBkdW1teSA9IDU7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8aW50PiogZmFjdG9yeSA9IG5ldyBXZWFr
UHRyRmFjdG9yeTxpbnQ+KCZkdW1teSk7Ci0gICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIxID0gZmFj
dG9yeS0+Y3JlYXRlV2Vha1B0cigpOwotICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMiA9IGZhY3Rv
cnktPmNyZWF0ZVdlYWtQdHIoKTsKLSAgICBXZWFrUHRyPGludD4gd2Vha1B0cjMgPSBmYWN0b3J5
LT5jcmVhdGVXZWFrUHRyKCk7CisgICAgV2Vha1B0ckZhY3Rvcnk8aW50PiogZmFjdG9yeSA9IG5l
dyBXZWFrUHRyRmFjdG9yeTxpbnQ+KCk7CisgICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIxID0gZmFj
dG9yeS0+Y3JlYXRlV2Vha1B0cihkdW1teSk7CisgICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIyID0g
ZmFjdG9yeS0+Y3JlYXRlV2Vha1B0cihkdW1teSk7CisgICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIz
ID0gZmFjdG9yeS0+Y3JlYXRlV2Vha1B0cihkdW1teSk7CiAgICAgRVhQRUNUX0VRKHdlYWtQdHIx
LmdldCgpLCAmZHVtbXkpOwogICAgIEVYUEVDVF9FUSh3ZWFrUHRyMi5nZXQoKSwgJmR1bW15KTsK
ICAgICBFWFBFQ1RfRVEod2Vha1B0cjMuZ2V0KCksICZkdW1teSk7CkBAIC02MCw5ICs2MCw5IEBA
IFRFU1QoV1RGX1dlYWtQdHIsIEFzc2lnbm1lbnQpCiAgICAgaW50IGR1bW15ID0gNTsKICAgICBX
ZWFrUHRyPGludD4gd2Vha1B0cjsKICAgICB7Ci0gICAgICAgIFdlYWtQdHJGYWN0b3J5PGludD4g
ZmFjdG9yeSgmZHVtbXkpOworICAgICAgICBXZWFrUHRyRmFjdG9yeTxpbnQ+IGZhY3Rvcnk7CiAg
ICAgICAgIEVYUEVDVF9OVUxMKHdlYWtQdHIuZ2V0KCkpOwotICAgICAgICB3ZWFrUHRyID0gZmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgICAgIHdlYWtQdHIgPSBmYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoZHVtbXkpOwogICAgICAgICBFWFBFQ1RfRVEod2Vha1B0ci5nZXQoKSwgJmR1bW15KTsK
ICAgICB9CiAgICAgRVhQRUNUX05VTEwod2Vha1B0ci5nZXQoKSk7CkBAIC03MiwxMCArNzIsMTAg
QEAgVEVTVChXVEZfV2Vha1B0ciwgTXVsdGlwbGVGYWN0b3JpZXMpCiB7CiAgICAgaW50IGR1bW15
MSA9IDU7CiAgICAgaW50IGR1bW15MiA9IDc7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8aW50PiogZmFj
dG9yeTEgPSBuZXcgV2Vha1B0ckZhY3Rvcnk8aW50PigmZHVtbXkxKTsKLSAgICBXZWFrUHRyRmFj
dG9yeTxpbnQ+KiBmYWN0b3J5MiA9IG5ldyBXZWFrUHRyRmFjdG9yeTxpbnQ+KCZkdW1teTIpOwot
ICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMSA9IGZhY3RvcnkxLT5jcmVhdGVXZWFrUHRyKCk7Ci0g
ICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIyID0gZmFjdG9yeTItPmNyZWF0ZVdlYWtQdHIoKTsKKyAg
ICBXZWFrUHRyRmFjdG9yeTxpbnQ+KiBmYWN0b3J5MSA9IG5ldyBXZWFrUHRyRmFjdG9yeTxpbnQ+
KCk7CisgICAgV2Vha1B0ckZhY3Rvcnk8aW50PiogZmFjdG9yeTIgPSBuZXcgV2Vha1B0ckZhY3Rv
cnk8aW50PigpOworICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMSA9IGZhY3RvcnkxLT5jcmVhdGVX
ZWFrUHRyKGR1bW15MSk7CisgICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIyID0gZmFjdG9yeTItPmNy
ZWF0ZVdlYWtQdHIoZHVtbXkyKTsKICAgICBFWFBFQ1RfRVEod2Vha1B0cjEuZ2V0KCksICZkdW1t
eTEpOwogICAgIEVYUEVDVF9FUSh3ZWFrUHRyMi5nZXQoKSwgJmR1bW15Mik7CiAgICAgRVhQRUNU
X1RSVUUod2Vha1B0cjEgIT0gd2Vha1B0cjIpOwpAQCAtOTEsMTAgKzkxLDEwIEBAIFRFU1QoV1RG
X1dlYWtQdHIsIE11bHRpcGxlRmFjdG9yaWVzKQogVEVTVChXVEZfV2Vha1B0ciwgUmV2b2tlQWxs
KQogewogICAgIGludCBkdW1teSA9IDU7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8aW50PiBmYWN0b3J5
KCZkdW1teSk7Ci0gICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIxID0gZmFjdG9yeS5jcmVhdGVXZWFr
UHRyKCk7Ci0gICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIyID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCk7Ci0gICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIzID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7
CisgICAgV2Vha1B0ckZhY3Rvcnk8aW50PiBmYWN0b3J5OworICAgIFdlYWtQdHI8aW50PiB3ZWFr
UHRyMSA9IGZhY3RvcnkuY3JlYXRlV2Vha1B0cihkdW1teSk7CisgICAgV2Vha1B0cjxpbnQ+IHdl
YWtQdHIyID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRyKGR1bW15KTsKKyAgICBXZWFrUHRyPGludD4g
d2Vha1B0cjMgPSBmYWN0b3J5LmNyZWF0ZVdlYWtQdHIoZHVtbXkpOwogICAgIEVYUEVDVF9FUSh3
ZWFrUHRyMS5nZXQoKSwgJmR1bW15KTsKICAgICBFWFBFQ1RfRVEod2Vha1B0cjIuZ2V0KCksICZk
dW1teSk7CiAgICAgRVhQRUNUX0VRKHdlYWtQdHIzLmdldCgpLCAmZHVtbXkpOwpAQCAtMTA0LDE1
ICsxMDQsNiBAQCBURVNUKFdURl9XZWFrUHRyLCBSZXZva2VBbGwpCiAgICAgRVhQRUNUX05VTEwo
d2Vha1B0cjMuZ2V0KCkpOwogfQogCi1URVNUKFdURl9XZWFrUHRyLCBOdWxsRmFjdG9yeSkKLXsK
LSAgICBXZWFrUHRyRmFjdG9yeTxpbnQ+IGZhY3RvcnkobnVsbHB0cik7Ci0gICAgV2Vha1B0cjxp
bnQ+IHdlYWtQdHIgPSBmYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKLSAgICBFWFBFQ1RfTlVMTCh3
ZWFrUHRyLmdldCgpKTsKLSAgICBmYWN0b3J5LnJldm9rZUFsbCgpOwotICAgIEVYUEVDVF9OVUxM
KHdlYWtQdHIuZ2V0KCkpOwotfQotCiBzdHJ1Y3QgRm9vIHsKICAgICB2b2lkIGJhcigpIHsgfTsK
IH07CkBAIC0xMjAsOCArMTExLDggQEAgc3RydWN0IEZvbyB7CiBURVNUKFdURl9XZWFrUHRyLCBE
ZXJlZmVyZW5jZSkKIHsKICAgICBGb28gZjsKLSAgICBXZWFrUHRyRmFjdG9yeTxGb28+IGZhY3Rv
cnkoJmYpOwotICAgIFdlYWtQdHI8Rm9vPiB3ZWFrUHRyID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCk7CisgICAgV2Vha1B0ckZhY3Rvcnk8Rm9vPiBmYWN0b3J5OworICAgIFdlYWtQdHI8Rm9vPiB3
ZWFrUHRyID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRyKGYpOwogICAgIHdlYWtQdHItPmJhcigpOwog
fQogCkBAIC0xMzAsMTMgKzEyMSwxMyBAQCBURVNUKFdURl9XZWFrUHRyLCBGb3JnZXQpCiAgICAg
aW50IGR1bW15ID0gNTsKICAgICBpbnQgZHVtbXkyID0gNzsKIAotICAgIFdlYWtQdHJGYWN0b3J5
PGludD4gb3V0ZXJGYWN0b3J5KCZkdW1teTIpOworICAgIFdlYWtQdHJGYWN0b3J5PGludD4gb3V0
ZXJGYWN0b3J5OwogICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMSwgd2Vha1B0cjIsIHdlYWtQdHIz
LCB3ZWFrUHRyNDsKICAgICB7Ci0gICAgICAgIFdlYWtQdHJGYWN0b3J5PGludD4gaW5uZXJGYWN0
b3J5KCZkdW1teSk7Ci0gICAgICAgIHdlYWtQdHIxID0gaW5uZXJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKTsKLSAgICAgICAgd2Vha1B0cjIgPSBpbm5lckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOwot
ICAgICAgICB3ZWFrUHRyMyA9IGlubmVyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgICAg
IFdlYWtQdHJGYWN0b3J5PGludD4gaW5uZXJGYWN0b3J5OworICAgICAgICB3ZWFrUHRyMSA9IGlu
bmVyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKGR1bW15KTsKKyAgICAgICAgd2Vha1B0cjIgPSBpbm5l
ckZhY3RvcnkuY3JlYXRlV2Vha1B0cihkdW1teSk7CisgICAgICAgIHdlYWtQdHIzID0gaW5uZXJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoZHVtbXkpOwogICAgICAgICBFWFBFQ1RfRVEod2Vha1B0cjEu
Z2V0KCksICZkdW1teSk7CiAgICAgICAgIEVYUEVDVF9FUSh3ZWFrUHRyMi5nZXQoKSwgJmR1bW15
KTsKICAgICAgICAgRVhQRUNUX0VRKHdlYWtQdHIzLmdldCgpLCAmZHVtbXkpOwpAQCAtMTY2LDcg
KzE1Nyw3IEBAIFRFU1QoV1RGX1dlYWtQdHIsIEZvcmdldCkKICAgICAgICAgRVhQRUNUX05VTEwo
d2Vha1B0cjUuZ2V0KCkpOwogICAgICAgICBFWFBFQ1RfRVEod2Vha1B0cjIuZ2V0KCksICZkdW1t
eSk7CiAKLSAgICAgICAgd2Vha1B0cjQgPSBvdXRlckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOwor
ICAgICAgICB3ZWFrUHRyNCA9IG91dGVyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKGR1bW15Mik7CiAg
ICAgICAgIEVYUEVDVF9FUSh3ZWFrUHRyMi5nZXQoKSwgJmR1bW15KTsKICAgICAgICAgRVhQRUNU
X0VRKHdlYWtQdHI0LmdldCgpLCAmZHVtbXkyKTsKICAgICB9CkBAIC0xODQsNyArMTc1LDcgQEAg
VEVTVChXVEZfV2Vha1B0ciwgRm9yZ2V0KQogICAgIEVYUEVDVF9OVUxMKHdlYWtQdHI2LmdldCgp
KTsKICAgICBFWFBFQ1RfRVEod2Vha1B0cjUuZ2V0KCksIHdlYWtQdHI2LmdldCgpKTsKIAotICAg
IFdlYWtQdHI8aW50PiB3ZWFrUHRyNyA9IG91dGVyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7Cisg
ICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHI3ID0gb3V0ZXJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoZHVt
bXkyKTsKICAgICBFWFBFQ1RfRVEod2Vha1B0cjcuZ2V0KCksICZkdW1teTIpOwogICAgIHdlYWtQ
dHI3ID0gbnVsbHB0cjsKICAgICBFWFBFQ1RfTlVMTCh3ZWFrUHRyNy5nZXQoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321614</attachid>
            <date>2017-09-22 20:58:47 -0700</date>
            <delta_ts>2017-09-22 21:38:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177375-20170922205846.patch</filename>
            <type>text/plain</type>
            <size>115303</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMzk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNhY2Q4MjNjMzdjZDIwMTRlODAzNzUw
YjczOTRkNTgxYzJkMjMyZjIuLjdmNGQwYmZlY2IyODRkMzA2NDVhYzRiYWVmNTk3YmI1NzA2Y2Jj
NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTctMDktMjIgIFphbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBXZWFrUHRyRmFjdG9yeSBzaG91bGQgcG9wdWxhdGUgbV9y
ZWYgbGF6aWx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc3Mzc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAg
ICAgVGhpcyBoZWxwcyB1cyB3aXRoIHRoZSBvdmVyaGVhZCBvZiBpbml0aWFsaXppbmcgV2Vha1B0
ckZhY3RvcnkgZm9yCisgICAgICAgIG9iamVjdHMgdGhhdCByYXJlbHkgZW5kIHVwIGNyZWF0aW5n
IHRoZSB3ZWFrIHJlZmVyZW5jZS4KKyAgICAgICAgLVRoaXMgaXMgaW4gcHJlcGFyYXRpb24gZm9y
IGludHJvZHVjaW5nIFdlYWtQdHIgdG8gUmVuZGVyT2JqZWN0LgorCisgICAgICAgIEFsbCBjcmVk
aXQgdG8gR2VvZmZyZXkgR2FyZW4uCisKKyAgICAgICAgKiB3dGYvV2Vha1B0ci5oOgorICAgICAg
ICAoV1RGOjpXZWFrUmVmZXJlbmNlOjpnZXQgY29uc3QpOgorICAgICAgICAoV1RGOjpXZWFrUmVm
ZXJlbmNlOjpjbGVhcik6CisgICAgICAgIChXVEY6OldlYWtSZWZlcmVuY2U6OldlYWtSZWZlcmVu
Y2UpOgorICAgICAgICAoV1RGOjpXZWFrUHRyRmFjdG9yeTo6fldlYWtQdHJGYWN0b3J5KToKKyAg
ICAgICAgKFdURjo6V2Vha1B0ckZhY3Rvcnk6OmNyZWF0ZVdlYWtQdHIgY29uc3QpOgorICAgICAg
ICAoV1RGOjpXZWFrUHRyRmFjdG9yeTo6cmV2b2tlQWxsKToKKyAgICAgICAgKFdURjo6V2Vha1B0
ckZhY3Rvcnk6OldlYWtQdHJGYWN0b3J5KTogRGVsZXRlZC4KKwogMjAxNy0wOS0yMSAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgU3Ry
aW5nQnVpbGRlciBtb3ZhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjUzZTE2Njc1YTY5ZjMyMWNhZjRjZjkx
MDU4OGM2N2ZkM2VmYjkzNS4uODdlNjc0NWQzNDhlMjEyYWY5ZDMzM2IzYjM2NDIyNDg1ZDRkM2Qw
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2NiBAQAorMjAxNy0wOS0yMiAgWmFsYW4gQnVqdGFz
ICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYWtQdHJGYWN0b3J5IHNob3VsZCBwb3B1
bGF0ZSBtX3JlZiBsYXppbHkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzczNzUKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4K
KworICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNETTo6Q0RNKToKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5o
OgorICAgICAgICAoV2ViQ29yZTo6Q0RNOjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBNb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUtleVNlc3Npb246Ok1lZGlhS2V5U2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUtleVNlc3Npb246OmdlbmVyYXRlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUtleVNlc3Npb246OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTZXNzaW9uOjp1
cGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTZXNzaW9uOjpjbG9zZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246OnJlbW92ZSk6CisgICAgICAgICogTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFL
ZXlzOjpNZWRpYUtleXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlzOjpjcmVhdGVTZXNz
aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6Ok1lZGlhRGV2aWNlcyk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhRGV2aWNlczo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJh
Y2s6Ok1lZGlhU3RyZWFtVHJhY2spOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6Y3Jl
YXRlV2Vha1B0cik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICogYW5pbWF0aW9uL1dlYkFu
aW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OldlYkFuaW1hdGlv
bik6CisgICAgICAgICogYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oOgorICAgICAgICAqIGNzcy9G
b250RmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250RmFjZTo6Rm9udEZhY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udEZhY2U6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udEZhY2U6OmNyZWF0ZVdlYWtQdHIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNz
cy9Gb250RmFjZS5oOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0Q29udGVudHMuaDoKKyAgICAg
ICAgKiBkb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YVRyYW5zZmVySXRlbUxpc3Q6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0OjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRy
YW5zZmVySXRlbUxpc3Q6OmVuc3VyZUl0ZW1zIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGFUcmFuc2Zlckl0ZW1MaXN0OjpkaWRTZXRTdHJpbmdEYXRhKToKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnBvc3RUYXNrKToKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGVX
ZWFrUHRyKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudCk6CisgICAgICAgICog
aHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBodG1sL0hUTUxQaWN0dXJlRWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRlci5oOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFJlc291cmNlUHJlbG9hZGVyOjpIVE1MUmVzb3VyY2VQcmVsb2FkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFJlc291cmNlUHJlbG9hZGVyOjpjcmVhdGVXZWFrUHRy
KToKKyAgICAgICAgKiBsb2FkZXIvTGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
aW5rTG9hZGVyOjpMaW5rTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvTGlua0xvYWRlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6TGlua0xvYWRlcjo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICog
bG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFS
ZXNvdXJjZUxvYWRlcjo6TWVkaWFSZXNvdXJjZUxvYWRlcik6CisgICAgICAgICogbG9hZGVyL01l
ZGlhUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OkRPTVdpbmRvdyk6CisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRhc2tEaXNwYXRjaGVyPFRpbWVyPjo6VGFza0Rpc3BhdGNoZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6VGFza0Rpc3BhdGNoZXI8VGltZXI+Ojpwb3N0VGFzayk6CisgICAgICAg
ICogcGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJp
Y1Rhc2tRdWV1ZTo6R2VuZXJpY1Rhc2tRdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmlj
VGFza1F1ZXVlOjplbnF1ZXVlVGFzayk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpjcmVhdGVXZWFrUHRyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxiYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYmFyOjpTY3JvbGxiYXIpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGJhci5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyOjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9XaWRnZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6Y3JlYXRlV2Vha1B0cik6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWM6OkF1ZGlvSGFy
ZHdhcmVMaXN0ZW5lck1hYyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2Nh
ZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhc2NhZGU6OkZvbnRDYXNjYWRlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udENhc2NhZGU6OmNyZWF0ZVdlYWtQdHIgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6Y3JlYXRlV2Vha1B0cik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lv
bkFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25BVkZvdW5k
YXRpb25PYmpDOjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkNETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDOjpDRE1TZXNzaW9uQVZGb3VuZGF0
aW9uT2JqQyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Np
b25BVlN0cmVhbVNlc3Npb246OkNETVNlc3Npb25BVlN0cmVhbVNlc3Npb24pOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1t
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
OjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzaXplV2lsbENoYW5nZUF0
VGltZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMpOgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFwcGVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YWJvcnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dHVyZUNhY2hlQ1Y6OlRleHR1cmVDYWNoZUNWKToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHR1cmVDYWNoZUNWOjp0ZXh0dXJlRnJvbUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6ZGlzcGxheUxpbmtG
aXJlZCk6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVySU9TOjpjcmVhdGVXZWFr
UHRyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1t
OgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVySU9TOjpSZW1vdGVDb21t
YW5kTGlzdGVuZXJJT1MpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9SZW1vdGVDb21tYW5kTGlz
dGVuZXJNYWMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lck1hYzo6
Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1Qcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6TWVk
aWFTdHJlYW1Qcml2YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3Jl
YXRlV2Vha1B0cik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpSZWFs
dGltZU1lZGlhU291cmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2lu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFFbmRwb2ludDo6TW9ja01lZGlhRW5k
cG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhRW5kcG9pbnQ6OmdlbmVyYXRlRHRs
c0luZm8pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFj
ZWhvbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQ
bGFjZWhvbGRlcjo6UmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlci5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clZpZXc6OlJlbmRlclZpZXcpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3Lmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJXaWRnZXQ6OlJlbmRlcldpZGdldCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcldp
ZGdldC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyV2lkZ2V0OjpjcmVhdGVXZWFrUHRyKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSb290SW5saW5lQm94OjpSb290SW5saW5lQm94KToKKyAgICAgICAgKiByZW5kZXJpbmcvUm9v
dElubGluZUJveC5oOgorICAgICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6Y3JlYXRlV2Vh
a1B0cik6CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1BhdGhFbGVtZW50OjpTVkdQYXRoRWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR1Bh
dGhFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVhck9mZi5o
OgorICAgICAgICAqIHRlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TW9ja0NETUZhY3Rvcnk6Ok1vY2tDRE1GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tDRE1GYWN0b3J5OjpjcmVhdGVDRE0pOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NETTo6TW9j
a0NETSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ0RNOjpjcmVhdGVJbnN0YW5jZSk6CisgICAg
ICAgIChXZWJDb3JlOjptX3dlYWtQdHJGYWN0b3J5KTogRGVsZXRlZC4KKwogMjAxNy0wOS0yMiAg
QmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29ueS5jb20+CiAKICAgICAgICAgW0N1cmxd
IFVzZSBkaWRSZWNlaXZlQnVmZmVyIGluc3RlYWQgb2YgZGlkUmVjZWl2ZURhdGEKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hh
bmdlTG9nCmluZGV4IDY5ODgwYzE4YWUxMWZjZTg3ZDk4MzE0ZDQzNDYwZjMxMWQ0NTg0YzguLmEy
NWNlZThhOTAxOWQwNTVkNmI0YTcyNDMzNGY5OTg4MmUxOGQ5NjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA5LTIyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgV2Vha1B0ckZhY3Rvcnkgc2hvdWxkIHBvcHVsYXRlIG1fcmVmIGxh
emlseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NzM3NQorCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAgICog
cGFsL3N5c3RlbS9tYWMvU3lzdGVtU2xlZXBMaXN0ZW5lck1hYy5tbToKKyAgICAgICAgKFBBTDo6
U3lzdGVtU2xlZXBMaXN0ZW5lck1hYzo6U3lzdGVtU2xlZXBMaXN0ZW5lck1hYyk6CisKIDIwMTct
MDktMjEgIFlvc2hpYWtpIEppdHN1a2F3YSAgPFlvc2hpYWtpLkppdHN1a2F3YUBzb255LmNvbT4K
IAogICAgICAgICBbUEFMXSBNb3ZlIE1lZGlhVGltZUFWRm91bmRhdGlvbiBpbnRvIFBBTApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCBkN2M1NzEyNDBiMWQyYmE0OWMwZjg5ZjE5MTZiMDAxZmVjZjlkNWUyLi40YTRiMDg0
NDE2NmU5ZWUxMmU2ZWI4ZDg4YmY5MGUyZjZlNzNkZGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4
IEBACisyMDE3LTA5LTIyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgV2Vha1B0ckZhY3Rvcnkgc2hvdWxkIHBvcHVsYXRlIG1fcmVmIGxhemlseS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzM3NQorCisgICAgICAg
IFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAgICogVUlQcm9jZXNzL0FwcGxl
UGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGF5bWVudENvb3JkaW5hdG9yUHJveHk6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OmNhbk1ha2VQYXltZW50
c1dpdGhBY3RpdmVDYXJkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHk6Om9wZW5QYXltZW50U2V0dXApOgorICAgICAgICAqIFVJUHJvY2Vzcy9BcHBsZVBheS9t
YWMvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybVNob3dQYXltZW50VUkpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BcHBsaWNhdGlvblN0YXRlVHJhY2tlci5tbToKKyAgICAgICAgKFdlYktp
dDo6QXBwbGljYXRpb25TdGF0ZVRyYWNrZXI6OkFwcGxpY2F0aW9uU3RhdGVUcmFja2VyKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OldlYlZpZXdJbXBs
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzTGF1bmNoZXIpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAg
ICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3Nl
cnRpb246OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjptX2NvbmZpZ3VyYXRpb25QcmVmZXJlbmNlVmFsdWVzKToK
KyAgICAgICAgKFdlYktpdDo6bV93ZWFrUHRyRmFjdG9yeSk6IERlbGV0ZWQuCisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmNyZWF0ZVdlYWtQdHIgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1v
dGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWEubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSk6CisKIDIwMTctMDktMjIgIEpvaG4gV2lsYW5kZXIg
IDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgTm9uLXByZXZhbGVudCByZXNvdXJjZXMg
c2hvdWxkIGJlIGFsbG93ZWQgYWNjZXNzIHRvIGV4aXN0aW5nIGNvb2tpZXMgaW4gYSB0aGlyZC1w
YXJ0eSBjb250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMTBmYzE2NjgzZjcz
ZWYzMTFlYjE1Yjk4ZDlhZGNkYWFiMjc5MzFmNS4uN2YyN2NlMDc3NzlmMWNiMGQ5MzY4Y2E2NDlm
ZmVmZGMwMjA2Mzg4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDE3LTA5LTIyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgV2Vha1B0ckZhY3Rvcnkgc2hvdWxkIHBvcHVsYXRlIG1fcmVmIGxhemlseS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzM3NQorCisgICAgICAg
IFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpXZWJFZGl0b3JD
bGllbnQpOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2FuZGlkYXRlc0ZvclNl
bGVjdGlvbik6CisKIDIwMTctMDktMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBVc2UgaGlnaCByZXNvbHV0aW9uIHRpbWVzdGFtcCBmb3IgZXZlbnQgdGltZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV2Vha1B0ci5oIGIvU291cmNlL1dURi93dGYvV2Vh
a1B0ci5oCmluZGV4IDI5Y2MwNTZkMTM5YWEwOTMzODdiMjFhNzVmNjNlYjY4NjdmMWM3MmEuLmJk
MmY1NDQzZGU5MWEwODJmN2FlZjM0MjM1NTJmMTlkMTkyMGVkYTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1dlYWtQdHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9XZWFrUHRyLmgKQEAgLTMy
LDEwICszMiw2IEBACiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL1RocmVhZGluZy5oPgogCi0jaWYgVVNFKFdFQl9USFJFQUQpCi0jaW5jbHVkZSA8
d3RmL01haW5UaHJlYWQuaD4KLSNlbmRpZgotCiBuYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgVD4gY2xhc3MgV2Vha1B0cjsKQEAgLTQ3LDI1ICs0Myw5IEBAIGNsYXNzIFdlYWtS
ZWZlcmVuY2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2Vha1JlZmVyZW5jZTxUPj4g
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYWtSZWZlcmVuY2U8VD4pOwogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFQqIGdldCgpIGNvbnN0Ci0gICAgewot
I2lmIFVTRShXRUJfVEhSRUFEKQotICAgICAgICBBU1NFUlQoY2FuQWNjZXNzVGhyZWFkTG9jYWxE
YXRhRm9yVGhyZWFkKG1fYm91bmRUaHJlYWQpKTsKLSNlbHNlCi0gICAgICAgIEFTU0VSVChtX2Jv
dW5kVGhyZWFkID09IGN1cnJlbnRUaHJlYWQoKSk7Ci0jZW5kaWYKLSAgICAgICAgcmV0dXJuIG1f
cHRyOwotICAgIH0KKyAgICBUKiBnZXQoKSBjb25zdCB7IHJldHVybiBtX3B0cjsgfQogCi0gICAg
dm9pZCBjbGVhcigpCi0gICAgewotI2lmIFVTRShXRUJfVEhSRUFEKQotICAgICAgICBBU1NFUlQo
Y2FuQWNjZXNzVGhyZWFkTG9jYWxEYXRhRm9yVGhyZWFkKG1fYm91bmRUaHJlYWQpKTsKLSNlbHNl
Ci0gICAgICAgIEFTU0VSVChtX2JvdW5kVGhyZWFkID09IGN1cnJlbnRUaHJlYWQoKSk7Ci0jZW5k
aWYKLSAgICAgICAgbV9wdHIgPSBudWxscHRyOwotICAgIH0KKyAgICB2b2lkIGNsZWFyKCkgeyBt
X3B0ciA9IG51bGxwdHI7IH0KIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgV2Vha1B0cjxU
PjsKQEAgLTc1LDE2ICs1NSwxMCBAQCBwcml2YXRlOgogCiAgICAgZXhwbGljaXQgV2Vha1JlZmVy
ZW5jZShUKiBwdHIpCiAgICAgICAgIDogbV9wdHIocHRyKQotI2lmbmRlZiBOREVCVUcKLSAgICAg
ICAgLCBtX2JvdW5kVGhyZWFkKGN1cnJlbnRUaHJlYWQoKSkKLSNlbmRpZgogICAgIHsKICAgICB9
CiAKICAgICBUKiBtX3B0cjsKLSNpZm5kZWYgTkRFQlVHCi0gICAgVGhyZWFkSWRlbnRpZmllciBt
X2JvdW5kVGhyZWFkOwotI2VuZGlmCiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpAQCAtMTE4
LDIzICs5MiwzMyBAQCBjbGFzcyBXZWFrUHRyRmFjdG9yeSB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoV2Vha1B0ckZhY3Rvcnk8VD4pOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgotICAgIGV4cGxpY2l0IFdlYWtQdHJGYWN0b3J5KFQqIHB0cikgOiBtX3JlZihXZWFr
UmVmZXJlbmNlPFQ+OjpjcmVhdGUocHRyKSkgeyB9Ci0KLSAgICB+V2Vha1B0ckZhY3RvcnkoKSB7
IG1fcmVmLT5jbGVhcigpOyB9CisgICAgV2Vha1B0ckZhY3RvcnkoKSA9IGRlZmF1bHQ7CisgICAg
fldlYWtQdHJGYWN0b3J5KCkKKyAgICB7CisgICAgICAgIGlmICghbV9yZWYpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIG1fcmVmLT5jbGVhcigpOworICAgIH0KIAotICAgIC8vIFdlIHNo
b3VsZCBjb25zaWRlciBoYXZpbmcgY3JlYXRlV2Vha1B0ciBwb3B1bGF0ZSBtX3JlZiB0aGUgZmly
c3QgdGltZSBjcmVhdGVXZWFrUHRyIGlzIGNhbGxlZC4KLSAgICBXZWFrUHRyPFQ+IGNyZWF0ZVdl
YWtQdHIoKSBjb25zdCB7IHJldHVybiBXZWFrUHRyPFQ+KG1fcmVmLmNvcHlSZWYoKSk7IH0KKyAg
ICBXZWFrUHRyPFQ+IGNyZWF0ZVdlYWtQdHIoVCYgcHRyKSBjb25zdAorICAgIHsKKyAgICAgICAg
aWYgKCFtX3JlZikKKyAgICAgICAgICAgIG1fcmVmID0gV2Vha1JlZmVyZW5jZTxUPjo6Y3JlYXRl
KCZwdHIpOworICAgICAgICBBU1NFUlQoJnB0ciA9PSBtX3JlZi0+Z2V0KCkpOworICAgICAgICBy
ZXR1cm4gV2Vha1B0cjxUPihSZWY8V2Vha1JlZmVyZW5jZTxUPj4oKm1fcmVmKSk7CisgICAgfQog
CiAgICAgdm9pZCByZXZva2VBbGwoKQogICAgIHsKLSAgICAgICAgVCogcHRyID0gbV9yZWYtPmdl
dCgpOworICAgICAgICBpZiAoIW1fcmVmKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAg
IG1fcmVmLT5jbGVhcigpOwotICAgICAgICAvLyBXZSBjcmVhdGUgYSBuZXcgV2Vha1JlZmVyZW5j
ZSBzbyB0aGF0IGZ1dHVyZSBjYWxscyB0byBjcmVhdGVXZWFrUHRyKCkgY3JlYXRlIG5vbnplcm8g
V2Vha1B0cnMuCi0gICAgICAgIG1fcmVmID0gV2Vha1JlZmVyZW5jZTxUPjo6Y3JlYXRlKHB0cik7
CisgICAgICAgIG1fcmVmID0gbnVsbHB0cjsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgUmVmPFdl
YWtSZWZlcmVuY2U8VD4+IG1fcmVmOworICAgIG11dGFibGUgUmVmUHRyPFdlYWtSZWZlcmVuY2U8
VD4+IG1fcmVmOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5l
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBXZWFrUHRyPFQ+JiBhLCBjb25zdCBXZWFrUHRyPFU+JiBi
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0u
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwCmluZGV4
IDYwZThhYWRiYzI2NzI5YmQ5Y2MwOWQ0ZTkxYjAxMTNkMzM4NmI4Y2IuLmI3NDBiYjA4OTcyOTlh
NjM2YmYxMTgzZGUwMjc1NTI5ZWQ0YTY3MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL0NETS5jcHAKQEAgLTU5LDcgKzU5LDYgQEAgUmVmPENETT4gQ0RNOjpj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKIENETTo6
Q0RNKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCiAgICAgOiBD
b250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmZG9jdW1lbnQpCiAgICAgLCBtX2tleVN5c3RlbShr
ZXlTeXN0ZW0pCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiAgICAgQVNTRVJUKHN1
cHBvcnRzS2V5U3lzdGVtKGtleVN5c3RlbSkpOwogICAgIGZvciAoYXV0byogZmFjdG9yeSA6IENE
TUZhY3Rvcnk6OnJlZ2lzdGVyZWRGYWN0b3JpZXMoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmgKaW5kZXggNDZkNTNhZDA1MjMyMzVhNGM1ODkyYjJkMWI0
ZDgyNzMyMzdjMDMyMS4uOTdhNGM1NThkMDdlZGVmZjEwNGQyNDlkZjFmY2FmY2QwZDlmNzJmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5oCkBAIC05OSw3
ICs5OSw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxNZWRpYUtleVN5c3RlbUNvbmZp
Z3VyYXRpb24+ICBnZXRTdXBwb3J0ZWRDb25maWd1cmF0aW9uKGNvbnN0IE1lZGlhS2V5U3lzdGVt
Q29uZmlndXJhdGlvbiYgY2FuZGlkYXRlQ29uZmlndXJhdGlvbiwgTWVkaWFLZXlzUmVzdHJpY3Rp
b25zJik7CiAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8TWVkaWFLZXlTeXN0ZW1NZWRpYUNhcGFi
aWxpdHk+PiBnZXRTdXBwb3J0ZWRDYXBhYmlsaXRpZXNGb3JBdWRpb1ZpZGVvVHlwZShBdWRpb1Zp
ZGVvVHlwZSwgY29uc3QgVmVjdG9yPE1lZGlhS2V5U3lzdGVtTWVkaWFDYXBhYmlsaXR5PiYgcmVx
dWVzdGVkQ2FwYWJpbGl0aWVzLCBjb25zdCBNZWRpYUtleVN5c3RlbUNvbmZpZ3VyYXRpb24mIHBh
cnRpYWxDb25maWd1cmF0aW9uLCBNZWRpYUtleXNSZXN0cmljdGlvbnMmKTsKIAotICAgIFdlYWtQ
dHI8Q0RNPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVX
ZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPENETT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogICAgIHVzaW5nIENvbnNl
bnRTdGF0dXNDYWxsYmFjayA9IFdURjo6RnVuY3Rpb248dm9pZChDb25zZW50U3RhdHVzLCBNZWRp
YUtleVN5c3RlbUNvbmZpZ3VyYXRpb24mJiwgTWVkaWFLZXlzUmVzdHJpY3Rpb25zJiYpPjsKICAg
ICB2b2lkIGdldENvbnNlbnRTdGF0dXMoTWVkaWFLZXlTeXN0ZW1Db25maWd1cmF0aW9uJiYgYWNj
dW11bGF0ZWRDb25maWd1cmF0aW9uLCBNZWRpYUtleXNSZXN0cmljdGlvbnMmJiwgQ29uc2VudFN0
YXR1c0NhbGxiYWNrJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwCmluZGV4IGNiZDk0YzA2ZmYxNjYzN2Y2
NWNmNTRlNjM5YjQ3OGMyNDQzMjYwNzYuLjRkODI0NWNmNzY5N2Q4OGIzNGI4ZDQzNzA5NmVhNDBl
ODRhMjJlMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVk
aWEvTWVkaWFLZXlTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKQEAgLTYyLDcgKzYyLDYgQEAgTWVkaWFLZXlT
ZXNzaW9uOjpNZWRpYUtleVNlc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
V2Vha1B0cjxNZWRpYUsKICAgICAsIG1faW1wbGVtZW50YXRpb24oV1RGTW92ZShpbXBsZW1lbnRh
dGlvbikpCiAgICAgLCBtX2luc3RhbmNlKFdURk1vdmUoaW5zdGFuY2UpKQogICAgICwgbV9ldmVu
dFF1ZXVlKCp0aGlzKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogICAgIC8vIGh0
dHBzOi8vdzNjLmdpdGh1Yi5pby9lbmNyeXB0ZWQtbWVkaWEvI2RvbS1tZWRpYWtleXMtc2V0c2Vy
dmVyY2VydGlmaWNhdGUKICAgICAvLyBXM0MgRWRpdG9yJ3MgRHJhZnQgMDkgTm92ZW1iZXIgMjAx
NgpAQCAtMTg5LDcgKzE4OCw3IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjpnZW5lcmF0ZVJlcXVl
c3QoY29uc3QgQXRvbWljU3RyaW5nJiBpbml0RGF0YVR5cGUsIGNvbnN0IEJ1CiAgICAgICAgICAg
ICBtX2xhdGVzdERlY3J5cHRUaW1lID0gMDsKICAgICAgICAgfQogCi0gICAgICAgIG1faW5zdGFu
Y2UtPnJlcXVlc3RMaWNlbnNlKG1fc2Vzc2lvblR5cGUsIGluaXREYXRhVHlwZSwgV1RGTW92ZShp
bml0RGF0YSksIFt0aGlzLCB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0
cigpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKFJlZjxTaGFyZWRCdWZmZXI+JiYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIGJvb2wgbmVlZHNJbmRpdmlkdWFsaXphdGlv
biwgQ0RNSW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQpIG11dGFibGUgeworICAgICAg
ICBtX2luc3RhbmNlLT5yZXF1ZXN0TGljZW5zZShtX3Nlc3Npb25UeXBlLCBpbml0RGF0YVR5cGUs
IFdURk1vdmUoaW5pdERhdGEpLCBbdGhpcywgd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKFJlZjxTaGFy
ZWRCdWZmZXI+JiYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIGJvb2wgbmVlZHNJ
bmRpdmlkdWFsaXphdGlvbiwgQ0RNSW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQpIG11
dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1
cm47CiAKQEAgLTI4Miw3ICsyODEsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6bG9hZChjb25z
dCBTdHJpbmcmIHNlc3Npb25JZCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taQogICAgICAg
ICAvLyA4LjYuIExldCBtZXNzYWdlIHR5cGUgYmUgbnVsbC4KICAgICAgICAgLy8gOC43LiBMZXQg
Y2RtIGJlIHRoZSBDRE0gaW5zdGFuY2UgcmVwcmVzZW50ZWQgYnkgdGhpcyBvYmplY3QncyBjZG0g
aW5zdGFuY2UgdmFsdWUuCiAgICAgICAgIC8vIDguOC4gVXNlIHRoZSBjZG0gdG8gZXhlY3V0ZSB0
aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICBtX2luc3RhbmNlLT5sb2FkU2Vzc2lvbihtX3Nl
c3Npb25UeXBlLCAqc2FuaXRpemVkU2Vzc2lvbklkLCBvcmlnaW4sIFt0aGlzLCB3ZWFrVGhpcyA9
IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKSwgc2FuaXRpemVkU2Vzc2lvbklkID0gKnNhbml0aXplZFNlc3Npb25JZF0gKHN0ZDo6b3B0
aW9uYWw8Q0RNSW5zdGFuY2U6OktleVN0YXR1c1ZlY3Rvcj4mJiBrbm93bktleXMsIHN0ZDo6b3B0
aW9uYWw8ZG91YmxlPiYmIGV4cGlyYXRpb24sIHN0ZDo6b3B0aW9uYWw8Q0RNSW5zdGFuY2U6Ok1l
c3NhZ2U+JiYgbWVzc2FnZSwgQ0RNSW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQsIENE
TUluc3RhbmNlOjpTZXNzaW9uTG9hZEZhaWx1cmUgZmFpbHVyZSkgbXV0YWJsZSB7CisgICAgICAg
IG1faW5zdGFuY2UtPmxvYWRTZXNzaW9uKG1fc2Vzc2lvblR5cGUsICpzYW5pdGl6ZWRTZXNzaW9u
SWQsIG9yaWdpbiwgW3RoaXMsIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFr
UHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHNhbml0aXplZFNlc3Npb25J
ZCA9ICpzYW5pdGl6ZWRTZXNzaW9uSWRdIChzdGQ6Om9wdGlvbmFsPENETUluc3RhbmNlOjpLZXlT
dGF0dXNWZWN0b3I+JiYga25vd25LZXlzLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4mJiBleHBpcmF0
aW9uLCBzdGQ6Om9wdGlvbmFsPENETUluc3RhbmNlOjpNZXNzYWdlPiYmIG1lc3NhZ2UsIENETUlu
c3RhbmNlOjpTdWNjZXNzVmFsdWUgc3VjY2VlZGVkLCBDRE1JbnN0YW5jZTo6U2Vzc2lvbkxvYWRG
YWlsdXJlIGZhaWx1cmUpIG11dGFibGUgewogICAgICAgICAgICAgLy8gOC44LjEuIElmIHRoZXJl
IGlzIG5vIGRhdGEgc3RvcmVkIGZvciB0aGUgc2FuaXRpemVkIHNlc3Npb24gSUQgaW4gdGhlIG9y
aWdpbiwgcmVzb2x2ZSBwcm9taXNlIHdpdGggZmFsc2UgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgog
ICAgICAgICAgICAgLy8gOC44LjIuIElmIHRoZSBzdG9yZWQgc2Vzc2lvbidzIHNlc3Npb24gdHlw
ZSBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIGN1cnJlbnQgTWVkaWFLZXlTZXNzaW9uIHNlc3Npb24g
dHlwZSwgcmVqZWN0IHByb21pc2Ugd2l0aCBhIG5ld2x5IGNyZWF0ZWQgVHlwZUVycm9yLgogICAg
ICAgICAgICAgLy8gOC44LjMuIExldCBzZXNzaW9uIGRhdGEgYmUgdGhlIGRhdGEgc3RvcmVkIGZv
ciB0aGUgc2FuaXRpemVkIHNlc3Npb24gSUQgaW4gdGhlIG9yaWdpbi4gVGhpcyBtdXN0IG5vdCBp
bmNsdWRlIGRhdGEgZnJvbSBvdGhlciBvcmlnaW4ocykgb3IgdGhhdCBpcyBub3QgYXNzb2NpYXRl
ZCB3aXRoIGFuIG9yaWdpbi4KQEAgLTM4Myw3ICszODIsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lv
bjo6dXBkYXRlKGNvbnN0IEJ1ZmZlclNvdXJjZSYgcmVzcG9uc2UsIFJlZjxEZWZlcnJlZFByb21p
c2U+JgogICAgICAgICAvLyA2LjUuIExldCBzZXNzaW9uIGNsb3NlZCBiZSBmYWxzZS4KICAgICAg
ICAgLy8gNi42LiBMZXQgY2RtIGJlIHRoZSBDRE0gaW5zdGFuY2UgcmVwcmVzZW50ZWQgYnkgdGhp
cyBvYmplY3QncyBjZG0gaW5zdGFuY2UgdmFsdWUuCiAgICAgICAgIC8vIDYuNy4gVXNlIHRoZSBj
ZG0gdG8gZXhlY3V0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICBtX2luc3RhbmNlLT51
cGRhdGVMaWNlbnNlKG1fc2Vzc2lvbklkLCBtX3Nlc3Npb25UeXBlLCAqc2FuaXRpemVkUmVzcG9u
c2UsIFt0aGlzLCB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCBw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKGJvb2wgc2Vzc2lvbldhc0Nsb3NlZCwgc3RkOjpv
cHRpb25hbDxDRE1JbnN0YW5jZTo6S2V5U3RhdHVzVmVjdG9yPiYmIGNoYW5nZWRLZXlzLCBzdGQ6
Om9wdGlvbmFsPGRvdWJsZT4mJiBjaGFuZ2VkRXhwaXJhdGlvbiwgc3RkOjpvcHRpb25hbDxDRE1J
bnN0YW5jZTo6TWVzc2FnZT4mJiBtZXNzYWdlLCBDRE1JbnN0YW5jZTo6U3VjY2Vzc1ZhbHVlIHN1
Y2NlZWRlZCkgbXV0YWJsZSB7CisgICAgICAgIG1faW5zdGFuY2UtPnVwZGF0ZUxpY2Vuc2UobV9z
ZXNzaW9uSWQsIG1fc2Vzc2lvblR5cGUsICpzYW5pdGl6ZWRSZXNwb25zZSwgW3RoaXMsIHdlYWtU
aGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldIChib29sIHNlc3Npb25XYXNDbG9zZWQsIHN0ZDo6b3B0aW9uYWw8Q0RN
SW5zdGFuY2U6OktleVN0YXR1c1ZlY3Rvcj4mJiBjaGFuZ2VkS2V5cywgc3RkOjpvcHRpb25hbDxk
b3VibGU+JiYgY2hhbmdlZEV4cGlyYXRpb24sIHN0ZDo6b3B0aW9uYWw8Q0RNSW5zdGFuY2U6Ok1l
c3NhZ2U+JiYgbWVzc2FnZSwgQ0RNSW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQpIG11
dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1
cm47CiAKQEAgLTQ5NSw3ICs0OTQsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6Y2xvc2UoUmVm
PERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNr
KFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAg
IC8vIDUuMS4gTGV0IGNkbSBiZSB0aGUgQ0RNIGluc3RhbmNlIHJlcHJlc2VudGVkIGJ5IHNlc3Np
b24ncyBjZG0gaW5zdGFuY2UgdmFsdWUuCiAgICAgICAgIC8vIDUuMi4gVXNlIGNkbSB0byBjbG9z
ZSB0aGUga2V5IHNlc3Npb24gYXNzb2NpYXRlZCB3aXRoIHNlc3Npb24uCi0gICAgICAgIG1faW5z
dGFuY2UtPmNsb3NlU2Vzc2lvbihtX3Nlc3Npb25JZCwgW3RoaXMsIHdlYWtUaGlzID0gbV93ZWFr
UHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAo
KSBtdXRhYmxlIHsKKyAgICAgICAgbV9pbnN0YW5jZS0+Y2xvc2VTZXNzaW9uKG1fc2Vzc2lvbklk
LCBbdGhpcywgd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMp
LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBp
ZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNTMzLDcgKzUzMiw3
IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjpyZW1vdmUoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlKQogICAgICAgICAvLyA0LjMuIExldCBtZXNzYWdlIHR5cGUgYmUgbnVsbC4KIAogICAg
ICAgICAvLyA0LjQuIFVzZSB0aGUgY2RtIHRvIGV4ZWN1dGUgdGhlIGZvbGxvd2luZyBzdGVwczoK
LSAgICAgICAgbV9pbnN0YW5jZS0+cmVtb3ZlU2Vzc2lvbkRhdGEobV9zZXNzaW9uSWQsIG1fc2Vz
c2lvblR5cGUsIFt0aGlzLCB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0
cigpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKENETUluc3RhbmNlOjpLZXlTdGF0dXNW
ZWN0b3ImJiBrZXlzLCBzdGQ6Om9wdGlvbmFsPFJlZjxTaGFyZWRCdWZmZXI+PiYmIG1lc3NhZ2Us
IENETUluc3RhbmNlOjpTdWNjZXNzVmFsdWUgc3VjY2VlZGVkKSBtdXRhYmxlIHsKKyAgICAgICAg
bV9pbnN0YW5jZS0+cmVtb3ZlU2Vzc2lvbkRhdGEobV9zZXNzaW9uSWQsIG1fc2Vzc2lvblR5cGUs
IFt0aGlzLCB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyks
IHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoQ0RNSW5zdGFuY2U6OktleVN0YXR1c1ZlY3Rv
ciYmIGtleXMsIHN0ZDo6b3B0aW9uYWw8UmVmPFNoYXJlZEJ1ZmZlcj4+JiYgbWVzc2FnZSwgQ0RN
SW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQpIG11dGFibGUgewogICAgICAgICAgICAg
aWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcAppbmRleCBjMGVm
NTU0Y2IwZTg5OGZjNjczMGVhZGMyNjYyOTAyY2U1Y2I2YzAyLi5iZWYzNmEzMmRlMWZlYjVjYWE0
MDE4N2I2ZTE1NjE4MTViNzFmM2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwCkBAIC00NSw3ICs0NSw2IEBAIE1lZGlhS2V5
czo6TWVkaWFLZXlzKGJvb2wgdXNlRGlzdGluY3RpdmVJZGVudGlmaWVyLCBib29sIHBlcnNpc3Rl
bnRTdGF0ZUFsbG93ZWQsCiAgICAgLCBtX3N1cHBvcnRlZFNlc3Npb25UeXBlcyhzdXBwb3J0ZWRT
ZXNzaW9uVHlwZXMpCiAgICAgLCBtX2ltcGxlbWVudGF0aW9uKFdURk1vdmUoaW1wbGVtZW50YXRp
b24pKQogICAgICwgbV9pbnN0YW5jZShXVEZNb3ZlKGluc3RhbmNlKSkKLSAgICAsIG1fd2Vha1B0
ckZhY3RvcnkodGhpcykKIHsKIH0KIApAQCAtNjgsNyArNjcsNyBAQCBFeGNlcHRpb25PcjxSZWY8
TWVkaWFLZXlTZXNzaW9uPj4gTWVkaWFLZXlzOjpjcmVhdGVTZXNzaW9uKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleAogICAgIC8vIDMuIExldCBzZXNzaW9uIGJlIGEgbmV3IE1lZGlhS2V5U2Vzc2lvbiBv
YmplY3QsIGFuZCBpbml0aWFsaXplIGl0IGFzIGZvbGxvd3M6CiAgICAgLy8gTk9URTogQ29udGlu
dWVkIGluIE1lZGlhS2V5U2Vzc2lvbi4KICAgICAvLyA0LiBSZXR1cm4gc2Vzc2lvbi4KLSAgICBh
dXRvIHNlc3Npb24gPSBNZWRpYUtleVNlc3Npb246OmNyZWF0ZShjb250ZXh0LCBtX3dlYWtQdHJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKSwgc2Vzc2lvblR5cGUsIG1fdXNlRGlzdGluY3RpdmVJZGVu
dGlmaWVyLCBtX2ltcGxlbWVudGF0aW9uLmNvcHlSZWYoKSwgbV9pbnN0YW5jZS5jb3B5UmVmKCkp
OworICAgIGF1dG8gc2Vzc2lvbiA9IE1lZGlhS2V5U2Vzc2lvbjo6Y3JlYXRlKGNvbnRleHQsIG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIHNlc3Npb25UeXBlLCBtX3VzZURp
c3RpbmN0aXZlSWRlbnRpZmllciwgbV9pbXBsZW1lbnRhdGlvbi5jb3B5UmVmKCksIG1faW5zdGFu
Y2UuY29weVJlZigpKTsKICAgICBtX3Nlc3Npb25zLmFwcGVuZChzZXNzaW9uLmNvcHlSZWYoKSk7
CiAgICAgcmV0dXJuIFdURk1vdmUoc2Vzc2lvbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKaW5kZXggNmU0MGM3ZjYyMThi
NDExY2U4Njc0MGMyMGU3MjRjMzJlMmViODBmNS4uNDQwNTk5NjVjYzFlYmZkN2ZhZjA0ZTZiNWFi
NTQwOTU5OWM4NTRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYURldmljZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFEZXZpY2VzLmNwcApAQCAtNDcsNyArNDcsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBpbmxpbmUgTWVkaWFEZXZpY2VzOjpNZWRpYURldmljZXMoRG9jdW1lbnQmIGRvY3VtZW50
KQogICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmRvY3VtZW50KQogICAgICwgbV9z
Y2hlZHVsZWRFdmVudFRpbWVyKCp0aGlzLCAmTWVkaWFEZXZpY2VzOjpzY2hlZHVsZWRFdmVudFRp
bWVyRmlyZWQpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiAgICAgbV9kZXZpY2VD
aGFuZ2VkVG9rZW4gPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hZGRE
ZXZpY2VzQ2hhbmdlZE9ic2VydmVyKFt3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKSwgdGhpc10o
KSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFEZXZpY2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2
aWNlcy5oCmluZGV4IDlmMzBjM2VhZDk1Mjg2Y2YwYjE0MWI4NTk4Nzg1ZDQwMzA0OTAzY2IuLjYx
MTI4NTMwNTI5NzRkN2VlYTI3MDllNGNhNzhjM2M5ZTRiZTAzNzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaApAQCAtODIsNyArODIs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigp
OyB9CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJlZigpOyB9CiAK
LSAgICBXZWFrUHRyPE1lZGlhRGV2aWNlcz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vh
a1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxNZWRpYURldmljZXM+
IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIo
KnRoaXMpOyB9CiAKICAgICBUaW1lciBtX3NjaGVkdWxlZEV2ZW50VGltZXI7CiAgICAgc3RkOjpv
cHRpb25hbDxSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpEZXZpY2VzQ2hhbmdlZE9ic2VydmVy
VG9rZW4+IG1fZGV2aWNlQ2hhbmdlZFRva2VuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKaW5kZXggMTY4ODRlMzgy
NjY4NGNlNzc4N2Q1ODZhODRmODhmZGM3OTFjMjc4OS4uOWUxNzhkZjRiZDJhNWM5ZDc5YWYwYTc2
OTZmNzljMzIyZmUxOGU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCkBAIC01Myw3ICs1Myw2IEBAIFJlZjxN
ZWRpYVN0cmVhbVRyYWNrPiBNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwKIE1lZGlhU3RyZWFtVHJhY2s6Ok1lZGlhU3RyZWFtVHJhY2soU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
PiYmIHByaXZhdGVUcmFjaykKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKICAgICAs
IG1fcHJpdmF0ZShXVEZNb3ZlKHByaXZhdGVUcmFjaykpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5
KHRoaXMpCiAgICAgLCBtX3Rhc2tRdWV1ZShjb250ZXh0KQogewogICAgIHN1c3BlbmRJZk5lZWRl
ZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2suaAppbmRleCA0YTQ5OTRhNjlkZjBiZGIxZmZmOGIzNjAyZTQ2YjMwNTkwMzkx
YWEzLi5hNTNhY2Q2MjNjNDUwYjhmYWFmN2Y4NTIzNGE1YWNiMGYxZmE3MTFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
aApAQCAtMTY1LDcgKzE2NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB0cmFja1NldHRpbmdzQ2hh
bmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwogICAgIHZvaWQgdHJhY2tFbmFi
bGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwogCi0gICAgV2Vha1B0
cjxNZWRpYVN0cmVhbVRyYWNrPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPE1lZGlhU3RyZWFtVHJhY2s+IGNy
ZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRo
aXMpOyB9CiAKICAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKICAgICBSZWY8TWVk
aWFTdHJlYW1UcmFja1ByaXZhdGU+IG1fcHJpdmF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3lzdGVtL21hYy9TeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1N5c3RlbVNsZWVwTGlzdGVuZXJNYWMubW0KaW5k
ZXggMGI1YTBmNTgwNjZiM2E2ZWQwOWJmMDJiMzg3OTIxZmVhMTIyZjgzMi4uNmQ1M2E3YmZkMGQ4
ZjdhY2VkMTJlN2NkZWYyMTZlMjhjZDI5ZmRmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zeXN0ZW0vbWFjL1N5c3RlbVNsZWVwTGlzdGVuZXJNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1N5c3RlbVNsZWVwTGlzdGVuZXJNYWMubW0KQEAg
LTQwLDE0ICs0MCwxMyBAQCBzdGQ6OnVuaXF1ZV9wdHI8U3lzdGVtU2xlZXBMaXN0ZW5lcj4gU3lz
dGVtU2xlZXBMaXN0ZW5lcjo6Y3JlYXRlKENsaWVudCYgY2xpZW50KQogCiBTeXN0ZW1TbGVlcExp
c3RlbmVyTWFjOjpTeXN0ZW1TbGVlcExpc3RlbmVyTWFjKENsaWVudCYgY2xpZW50KQogICAgIDog
U3lzdGVtU2xlZXBMaXN0ZW5lcihjbGllbnQpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMp
CiAgICAgLCBtX3NsZWVwT2JzZXJ2ZXIobmlsKQogICAgICwgbV93YWtlT2JzZXJ2ZXIobmlsKQog
ewogICAgIE5TTm90aWZpY2F0aW9uQ2VudGVyICpjZW50ZXIgPSBbW05TV29ya3NwYWNlIHNoYXJl
ZFdvcmtzcGFjZV0gbm90aWZpY2F0aW9uQ2VudGVyXTsKICAgICBOU09wZXJhdGlvblF1ZXVlICpx
dWV1ZSA9IFtOU09wZXJhdGlvblF1ZXVlIG1haW5RdWV1ZV07CiAKLSAgICBhdXRvIHdlYWtUaGlz
ID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgYXV0byB3ZWFrVGhpcyA9
IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiAKICAgICBtX3NsZWVwT2Jz
ZXJ2ZXIgPSBbY2VudGVyIGFkZE9ic2VydmVyRm9yTmFtZTpOU1dvcmtzcGFjZVdpbGxTbGVlcE5v
dGlmaWNhdGlvbiBvYmplY3Q6bmlsIHF1ZXVlOnF1ZXVlIHVzaW5nQmxvY2s6XihOU05vdGlmaWNh
dGlvbiAqKSB7CiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzXSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcAppbmRleCBkMmRlMWYzNjI5MzA5ZTVkNjhhOWI3NTFkZWJhMjhkNzU1NWFlZGU4
Li5lNDE1NWQxOGQ1MWRkMDBkZTdmOGE0MGNlYmVlZjMyMzYwOWRlNmI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHAKQEAgLTEwOSw3ICsxMDksNiBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwog
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIDogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QocmVuZGVy
ZXItPm5vZGUoKSkKICAgICAsIG1fcmVuZGVyZXIocmVuZGVyZXIpCi0gICAgLCBtX3dlYWtQdHJG
YWN0b3J5KHRoaXMpCiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIG1fcmVuZGVyZXItPnNldEhhc0FY
T2JqZWN0KHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAppbmRleCA4OTUzZWNkNGZiODkyNTQyODVlZWIx
MzNlMzNhZTQ0NzJhNjViZjk2Li5hNTA3MTU3MDRhZGYyMjRkZTY3YTM2MWUwZWMwNDJiYzEyNjQ5
MWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuaApAQCAtMjAwLDcgKzIwMCw3IEBAIHB1YmxpYzoKIAogICAg
IFN0cmluZyBwYXNzd29yZEZpZWxkVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICBX
ZWFrUHRyPEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVy
biBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZh
Y3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoUmVuZGVyT2JqZWN0Kik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCmluZGV4IDAwNjYxY2U5MmIwNmZjODEzZGQyNWFj
N2Q0NjEzNDM1Y2I5NmI4MzYuLmRiYzU1NjZlMzVlNGVmMzgxMTRjMmRjMDZjNGFkZThmM2U0M2Uz
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCkBAIC02MCw3
ICs2MCw2IEBAIFJlZlB0cjxXZWJBbmltYXRpb24+IFdlYkFuaW1hdGlvbjo6Y3JlYXRlKEFuaW1h
dGlvbkVmZmVjdCogZWZmZWN0LCBBbmltYXRpb25UaW1lCiBXZWJBbmltYXRpb246OldlYkFuaW1h
dGlvbihBbmltYXRpb25FZmZlY3QqIGVmZmVjdCwgQW5pbWF0aW9uVGltZWxpbmUqIHRpbWVsaW5l
KQogICAgIDogbV9lZmZlY3QoZWZmZWN0KQogICAgICwgbV90aW1lbGluZSh0aW1lbGluZSkKLSAg
ICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKICAgICBpZiAobV9lZmZlY3QpCiAgICAgICAg
IG1fZWZmZWN0LT5zZXRBbmltYXRpb24odGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2Vi
QW5pbWF0aW9uLmgKaW5kZXggYjAxNzNiNmUzNWRjMGRhYmJhNjFmNjA5OThlZWViZTM3YzUwZTZm
NS4uZDZmYjBhMDBkYTE5MmM2ZDFlZGJkNGRiYWU2ZDQxM2ZlYTYyOTk2NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAg
ICAgQW5pbWF0aW9uRWZmZWN0KiBlZmZlY3QoKSBjb25zdCB7IHJldHVybiBtX2VmZmVjdC5nZXQo
KTsgfQogICAgIEFuaW1hdGlvblRpbWVsaW5lKiB0aW1lbGluZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dGltZWxpbmUuZ2V0KCk7IH0KIAotICAgIFdlYWtQdHI8V2ViQW5pbWF0aW9uPiBjcmVhdGVXZWFr
UHRyKCkgY29uc3QgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0K
KyAgICBXZWFrUHRyPFdlYkFuaW1hdGlvbj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vh
a1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogcHJpdmF0ZToKICAgICBXZWJB
bmltYXRpb24oQW5pbWF0aW9uRWZmZWN0KiwgQW5pbWF0aW9uVGltZWxpbmUqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Rm9udEZhY2UuY3BwCmluZGV4IDgyNTMxZmY4NTMyNzgyOGI5ZjlkNzc2MWIyOWI3OWE2Njg0N2M4
ODEuLjk2NmI3ZmFkZjQ5YjBmM2ViMDhiNzQ2ODI2YTg5ZGViNWQwMWJiNjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0ZvbnRGYWNlLmNwcApAQCAtMTIwLDE2ICsxMjAsMTQgQEAgUmVmPEZvbnRGYWNlPiBGb250RmFj
ZTo6Y3JlYXRlKENTU0ZvbnRGYWNlJiBmYWNlKQogfQogCiBGb250RmFjZTo6Rm9udEZhY2UoQ1NT
Rm9udFNlbGVjdG9yJiBmb250U2VsZWN0b3IpCi0gICAgOiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMp
Ci0gICAgLCBtX2JhY2tpbmcoQ1NTRm9udEZhY2U6OmNyZWF0ZSgmZm9udFNlbGVjdG9yLCBudWxs
cHRyLCB0aGlzKSkKKyAgICA6IG1fYmFja2luZyhDU1NGb250RmFjZTo6Y3JlYXRlKCZmb250U2Vs
ZWN0b3IsIG51bGxwdHIsIHRoaXMpKQogICAgICwgbV9sb2FkZWRQcm9taXNlKCp0aGlzLCAmRm9u
dEZhY2U6OmxvYWRlZFByb21pc2VSZXNvbHZlKQogewogICAgIG1fYmFja2luZy0+YWRkQ2xpZW50
KCp0aGlzKTsKIH0KIAogRm9udEZhY2U6OkZvbnRGYWNlKENTU0ZvbnRGYWNlJiBmYWNlKQotICAg
IDogbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQotICAgICwgbV9iYWNraW5nKGZhY2UpCisgICAgOiBt
X2JhY2tpbmcoZmFjZSkKICAgICAsIG1fbG9hZGVkUHJvbWlzZSgqdGhpcywgJkZvbnRGYWNlOjps
b2FkZWRQcm9taXNlUmVzb2x2ZSkKIHsKICAgICBtX2JhY2tpbmctPmFkZENsaWVudCgqdGhpcyk7
CkBAIC0xNDAsOSArMTM4LDkgQEAgRm9udEZhY2U6On5Gb250RmFjZSgpCiAgICAgbV9iYWNraW5n
LT5yZW1vdmVDbGllbnQoKnRoaXMpOwogfQogCi1XZWFrUHRyPEZvbnRGYWNlPiBGb250RmFjZTo6
Y3JlYXRlV2Vha1B0cigpIGNvbnN0CitXZWFrUHRyPEZvbnRGYWNlPiBGb250RmFjZTo6Y3JlYXRl
V2Vha1B0cigpCiB7Ci0gICAgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigp
OworICAgIHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOwogfQog
CiBSZWZQdHI8Q1NTVmFsdWU+IEZvbnRGYWNlOjpwYXJzZVN0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZywgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0ZvbnRGYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuaAppbmRleCBj
NzFjZTAzYzBmMGE1ZDdiODdlOTM0ZmNlMzY4YTJmZmYzN2QzNmE4Li4yZjRjODg5NDNjYmRlNzY2
MTcyMmMwNGNlNmRjNmJlMjY1Yzk4NTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Rm9udEZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuaApAQCAtODUsNyAr
ODUsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZvbnRTdGF0ZUNoYW5nZWQoQ1NTRm9udEZhY2Um
LCBDU1NGb250RmFjZTo6U3RhdHVzIG9sZFN0YXRlLCBDU1NGb250RmFjZTo6U3RhdHVzIG5ld1N0
YXRlKSBmaW5hbDsKIAotICAgIFdlYWtQdHI8Rm9udEZhY2U+IGNyZWF0ZVdlYWtQdHIoKSBjb25z
dDsKKyAgICBXZWFrUHRyPEZvbnRGYWNlPiBjcmVhdGVXZWFrUHRyKCk7CiAKICAgICB2b2lkIHJl
ZigpIGZpbmFsIHsgUmVmQ291bnRlZDo6cmVmKCk7IH0KICAgICB2b2lkIGRlcmVmKCkgZmluYWwg
eyBSZWZDb3VudGVkOjpkZXJlZigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVTaGVldENvbnRlbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRl
bnRzLmgKaW5kZXggMTkwNzU1ODhmY2Q0YzhiZDMwMmQ4ZjQwMTZkZmExZjU0NGJkNTRmMS4uOGMw
YjRkYTMxMzVkYzgwZTYwYjJjN2ZjMGExODZmZGMzZGIxZWEyMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVNoZWV0Q29udGVudHMuaApAQCAtMTQzLDcgKzE0Myw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgc2hyaW5rVG9GaXQoKTsKIAotICAgIFdlYWtQdHI8U3R5bGVTaGVldENvbnRlbnRzPiBj
cmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7
IH0KKyAgICBXZWFrUHRyPFN0eWxlU2hlZXRDb250ZW50cz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0
dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogcHJpdmF0ZToK
ICAgICBXRUJDT1JFX0VYUE9SVCBTdHlsZVNoZWV0Q29udGVudHMoU3R5bGVSdWxlSW1wb3J0KiBv
d25lclJ1bGUsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxVUkwsIGNvbnN0IENTU1BhcnNlckNvbnRl
eHQmKTsKQEAgLTE3NSw3ICsxNzUsNyBAQCBwcml2YXRlOgogCiAgICAgVmVjdG9yPENTU1N0eWxl
U2hlZXQqPiBtX2NsaWVudHM7CiAgICAgCi0gICAgV2Vha1B0ckZhY3Rvcnk8U3R5bGVTaGVldENv
bnRlbnRzPiBtX3dlYWtQdHJGYWN0b3J5IHsgdGhpcyB9OworICAgIFdlYWtQdHJGYWN0b3J5PFN0
eWxlU2hlZXRDb250ZW50cz4gbV93ZWFrUHRyRmFjdG9yeTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVt
TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwCmlu
ZGV4IDZmNmMwZmE4ZDlmNWNkNmIwYmMyNDk3NzcwMDk1ODU5YTU2MGY2OWQuLjc1YzY3ZTBjMTBi
ODQ4ZDRmMTlmYmYyOTBmMTY3ZTdlMjEzZmFlMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rh
dGFUcmFuc2Zlckl0ZW1MaXN0LmNwcApAQCAtNDEsOCArNDEsNyBAQCBzdGF0aWMgYm9vbCBpc1N1
cHBvcnRlZFR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQogfQogCiBEYXRhVHJhbnNmZXJJdGVtTGlz
dDo6RGF0YVRyYW5zZmVySXRlbUxpc3QoRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIpCi0gICAg
OiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0gICAgLCBtX2RhdGFUcmFuc2ZlcihkYXRhVHJhbnNm
ZXIpCisgICAgOiBtX2RhdGFUcmFuc2ZlcihkYXRhVHJhbnNmZXIpCiB7CiB9CiAKQEAgLTgxLDcg
KzgwLDcgQEAgRXhjZXB0aW9uT3I8UmVmUHRyPERhdGFUcmFuc2Zlckl0ZW0+PiBEYXRhVHJhbnNm
ZXJJdGVtTGlzdDo6YWRkKGNvbnN0IFN0cmluZyYgZGEKIAogICAgIG1fZGF0YVRyYW5zZmVyLnBh
c3RlYm9hcmQoKS53cml0ZVN0cmluZyhsb3dlcmNhc2VkVHlwZSwgZGF0YSk7CiAgICAgQVNTRVJU
KG1faXRlbXMpOwotICAgIG1faXRlbXMtPmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUo
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIGxvd2VyY2FzZWRUeXBlKSk7CisgICAg
bV9pdGVtcy0+YXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShtX3dlYWtQdHJGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIoKnRoaXMpLCBsb3dlcmNhc2VkVHlwZSkpOwogICAgIHJldHVybiBSZWZQ
dHI8RGF0YVRyYW5zZmVySXRlbT4geyBtX2l0ZW1zLT5sYXN0KCkuY29weVJlZigpIH07CiB9CiAK
QEAgLTEyOSwxMyArMTI4LDEzIEBAIFZlY3RvcjxSZWY8RGF0YVRyYW5zZmVySXRlbT4+JiBEYXRh
VHJhbnNmZXJJdGVtTGlzdDo6ZW5zdXJlSXRlbXMoKSBjb25zdAogICAgIGZvciAoYXV0byYgdHlw
ZSA6IG1fZGF0YVRyYW5zZmVyLnR5cGVzKCkpIHsKICAgICAgICAgYXV0byBsb3dlcmNhc2VkVHlw
ZSA9IHR5cGUuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKICAgICAgICAgaWYgKGlzU3VwcG9y
dGVkVHlwZShsb3dlcmNhc2VkVHlwZSkpCi0gICAgICAgICAgICBpdGVtcy5hcHBlbmQoRGF0YVRy
YW5zZmVySXRlbTo6Y3JlYXRlKG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCBsb3dl
cmNhc2VkVHlwZSkpOworICAgICAgICAgICAgaXRlbXMuYXBwZW5kKERhdGFUcmFuc2Zlckl0ZW06
OmNyZWF0ZShtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKmNvbnN0X2Nhc3Q8RGF0YVRy
YW5zZmVySXRlbUxpc3QqPih0aGlzKSksIGxvd2VyY2FzZWRUeXBlKSk7CiAgICAgfQogCiAgICAg
Zm9yIChhdXRvJiBmaWxlIDogbV9kYXRhVHJhbnNmZXIuZmlsZXMoKS5maWxlcygpKSB7CiAgICAg
ICAgIGF1dG8gdHlwZSA9IEZpbGU6OmNvbnRlbnRUeXBlRm9yRmlsZShmaWxlLT5wYXRoKCkpLmNv
bnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCk7CiAgICAgICAgIGlmIChpc1N1cHBvcnRlZFR5cGUodHlw
ZSkgfHwgZmlsZS0+aXNEaXJlY3RvcnkoKSkKLSAgICAgICAgICAgIGl0ZW1zLmFwcGVuZChEYXRh
VHJhbnNmZXJJdGVtOjpjcmVhdGUobV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIHR5
cGUsIGZpbGUuY29weVJlZigpKSk7CisgICAgICAgICAgICBpdGVtcy5hcHBlbmQoRGF0YVRyYW5z
ZmVySXRlbTo6Y3JlYXRlKG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqY29uc3RfY2Fz
dDxEYXRhVHJhbnNmZXJJdGVtTGlzdCo+KHRoaXMpKSwgdHlwZSwgZmlsZS5jb3B5UmVmKCkpKTsK
ICAgICB9CiAKICAgICBtX2l0ZW1zID0gV1RGTW92ZShpdGVtcyk7CkBAIC0xODEsNyArMTgwLDcg
QEAgdm9pZCBEYXRhVHJhbnNmZXJJdGVtTGlzdDo6ZGlkU2V0U3RyaW5nRGF0YShjb25zdCBTdHJp
bmcmIHR5cGUpCiAgICAgU3RyaW5nIGxvd2VyY2FzZWRUeXBlID0gdHlwZS5jb252ZXJ0VG9BU0NJ
SUxvd2VyY2FzZSgpOwogICAgIHJlbW92ZVN0cmluZ0l0ZW1PZkxvd2VyY2FzZWRUeXBlKCptX2l0
ZW1zLCB0eXBlLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCkpOwogCi0gICAgbV9pdGVtcy0+YXBw
ZW5kKERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKSwgbG93ZXJjYXNlZFR5cGUpKTsKKyAgICBtX2l0ZW1zLT5hcHBlbmQoRGF0YVRyYW5zZmVy
SXRlbTo6Y3JlYXRlKG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIGxvd2Vy
Y2FzZWRUeXBlKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGNlZTNhMmNi
ZTU2YTAxMmY0ZDYyMDcxMTI2MGQ0MDA2YzRlMzQ3YzUuLjI4NDUxNDk2YTU3ODQ2MDZjMzU3Y2Fm
ZDE4ZWQwNjI1MmZhNTc3NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDY5LDcgKzQ2
OSw2IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsLCB1
bnNpZ25lZCBkb2N1bWVudENsYXNzZXMsIHVuc2lnCiAgICAgLCBtX2NvbnN0YW50UHJvcGVydHlN
YXAoc3RkOjptYWtlX3VuaXF1ZTxDb25zdGFudFByb3BlcnR5TWFwPigqdGhpcykpCiAgICAgLCBt
X2RvY3VtZW50Q2xhc3Nlcyhkb2N1bWVudENsYXNzZXMpCiAgICAgLCBtX2V2ZW50UXVldWUoKnRo
aXMpCi0gICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQogICAgICwgbV9mdWxsU2NyZWVuQ2hhbmdlRGVsYXlUaW1lcigqdGhpcywgJkRvY3VtZW50Ojpm
dWxsU2NyZWVuQ2hhbmdlRGVsYXlUaW1lckZpcmVkKQogI2VuZGlmCkBAIC01NjI3LDcgKzU2MjYs
NyBAQCB2b2lkIERvY3VtZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNz
YWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZwogCiB2b2lkIERvY3VtZW50Ojpwb3N0VGFzayhU
YXNrJiYgdGFzaykKIHsKLSAgICBjYWxsT25NYWluVGhyZWFkKFtkb2N1bWVudFJlZmVyZW5jZSA9
IG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCB0YXNrID0gV1RGTW92ZSh0YXNrKV0oKSBt
dXRhYmxlIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtkb2N1bWVudFJlZmVyZW5jZSA9IG1fd2Vh
a0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIHRhc2sgPSBXVEZNb3ZlKHRhc2spXSgpIG11
dGFibGUgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAgICAgICAgIERvY3Vt
ZW50KiBkb2N1bWVudCA9IGRvY3VtZW50UmVmZXJlbmNlLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAppbmRleCBlMDA5NWZlYTAyMWNiNDQ1Yzg3ZmY2NmRmYjE0MDlmMzlkZWY0NGE1Li43YTVkMWFl
ZTBlYzkyNWFlMDZlNjhiN2NlZjdhYjEyMzQzOWJhNDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApA
QCAtMTI3Miw3ICsxMjcyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNDYXB0dXJpbmcoKSBjb25z
dCB7IHJldHVybiBNZWRpYVByb2R1Y2VyOjppc0NhcHR1cmluZyhtX21lZGlhU3RhdGUpOyB9CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVJc1BsYXlpbmdNZWRpYSh1aW50NjRfdCA9IEhU
TUxNZWRpYUVsZW1lbnRJbnZhbGlkSUQpOwogICAgIHZvaWQgcGFnZU11dGVkU3RhdGVEaWRDaGFu
Z2UoKTsKLSAgICBXZWFrUHRyPERvY3VtZW50PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93
ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPERvY3VtZW50PiBjcmVh
dGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsg
fQogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICB2b2lkIGFkZFBs
YXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGYxMjJjMDc4Y2EyNzA0
MzA0ZjllN2I2MjBhN2E1NDE4ZmMwMzQyYzQuLjE3MDBiZDYyNTVlZjE3NGM2YWZiOTg1NGNmZmUy
NTg4ZWNmODNkZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApA
QCAtNDExLDcgKzQxMSw2IEBAIHN0YXRpYyB1aW50NjRfdCBuZXh0TG9nSWRlbnRpZmllcigpCiBI
VE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCiAgICAgOiBI
VE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIEFjdGl2ZURPTU9iamVjdCgmZG9j
dW1lbnQpCi0gICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCiAgICAgLCBtX3BlbmRpbmdBY3Rpb25U
aW1lcigqdGhpcywgJkhUTUxNZWRpYUVsZW1lbnQ6OnBlbmRpbmdBY3Rpb25UaW1lckZpcmVkKQog
ICAgICwgbV9wcm9ncmVzc0V2ZW50VGltZXIoKnRoaXMsICZIVE1MTWVkaWFFbGVtZW50Ojpwcm9n
cmVzc0V2ZW50VGltZXJGaXJlZCkKICAgICAsIG1fcGxheWJhY2tQcm9ncmVzc1RpbWVyKCp0aGlz
LCAmSFRNTE1lZGlhRWxlbWVudDo6cGxheWJhY2tQcm9ncmVzc1RpbWVyRmlyZWQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IGMzM2FiOWI4ODBmOWVhNDgyOTI2MmYz
ZGU3M2ZkNjAzMTIwNzhhZTQuLmM4NDE4ZjE1NWFkYmM4ZmRlNTY5ZWNmNjI2MjRiYmVhZTQzMGJj
M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0xNDUsNyArMTQ1
LDcgQEAgY2xhc3MgSFRNTE1lZGlhRWxlbWVudAogI2VuZGlmCiB7CiBwdWJsaWM6Ci0gICAgV2Vh
a1B0cjxIVE1MTWVkaWFFbGVtZW50PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPEhUTUxNZWRpYUVsZW1lbnQ+IGNy
ZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMp
OyB9CiAgICAgTWVkaWFQbGF5ZXIqIHBsYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWVyLmdl
dCgpOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNWaWRlbygpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuaAppbmRleCA4NGJkNjZl
NTNkYjY2NDZlZTBmMTk5Yjg2NWQ1YTY2YmY1M2U0OGFhLi4wY2I0NzgxZGE1ZjNlYWIxODAyMDVm
MWJiMTk4ZWNhMmI3MWE2YWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
aWN0dXJlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVt
ZW50LmgKQEAgLTQzLDE0ICs0MywxNCBAQCBwdWJsaWM6CiAKICAgICBib29sIHZpZXdwb3J0Q2hh
bmdlQWZmZWN0ZWRQaWN0dXJlKCkgY29uc3Q7CiAKLSAgICBXZWFrUHRyPEhUTUxQaWN0dXJlRWxl
bWVudD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0
cigpOyB9CisgICAgV2Vha1B0cjxIVE1MUGljdHVyZUVsZW1lbnQ+IGNyZWF0ZVdlYWtQdHIoKSB7
IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKIHByaXZhdGU6
CiAgICAgSFRNTFBpY3R1cmVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OwogCiAgICAgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCYgb2xkRG9jdW1lbnQs
IERvY3VtZW50JiBuZXdEb2N1bWVudCkgZmluYWw7CiAKLSAgICBXZWFrUHRyRmFjdG9yeTxIVE1M
UGljdHVyZUVsZW1lbnQ+IG1fd2Vha0ZhY3RvcnkgeyB0aGlzIH07CisgICAgV2Vha1B0ckZhY3Rv
cnk8SFRNTFBpY3R1cmVFbGVtZW50PiBtX3dlYWtGYWN0b3J5OwogICAgIFZlY3RvcjxNZWRpYVF1
ZXJ5UmVzdWx0PiBtX3ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyeVJlc3VsdHM7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUmVzb3VyY2VQcmVsb2Fk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRlci5o
CmluZGV4IGNkMTBmODVkZTkxMDRhNTBhOTRkNWRiZThjMzEzOTczODBlOTRkOGMuLmFhMmM3ODJk
ZTA1ODM3ZjUyMjg2MzlmOTZiMDgzMmUzM2I1Y2NhYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRlci5oCkBAIC03NywxNCArNzcsMTMg
QEAgY2xhc3MgSFRNTFJlc291cmNlUHJlbG9hZGVyIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBI
VE1MUmVzb3VyY2VQcmVsb2FkZXIoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgICAgICA6IG1fZG9j
dW1lbnQoZG9jdW1lbnQpCi0gICAgICAgICwgbV93ZWFrRmFjdG9yeSh0aGlzKQogICAgIHsKICAg
ICB9CiAKICAgICB2b2lkIHByZWxvYWQoUHJlbG9hZFJlcXVlc3RTdHJlYW0pOwogICAgIHZvaWQg
cHJlbG9hZChzdGQ6OnVuaXF1ZV9wdHI8UHJlbG9hZFJlcXVlc3Q+KTsKIAotICAgIFdlYWtQdHI8
SFRNTFJlc291cmNlUHJlbG9hZGVyPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPEhUTUxSZXNvdXJjZVByZWxvYWRl
cj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigq
dGhpcyk7IH0KIAogcHJpdmF0ZToKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9MaW5rTG9hZGVyLmNwcAppbmRleCA3Mjc5NWIwZTAzZTI3MWQ0ZWRhYmM2MDI0NjUy
NDU1ZDFmY2M4MDZlLi4yYjE2MTMyNjQzMGMxMGQ1OTI0MjhkMTViNDg3NzJiZWY2YTY5MDNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCkBAIC01Nyw3ICs1Nyw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogTGlua0xvYWRlcjo6TGlua0xvYWRlcihMaW5rTG9hZGVyQ2xpZW50
JiBjbGllbnQpCiAgICAgOiBtX2NsaWVudChjbGllbnQpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5
KHRoaXMpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9h
ZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5oCmluZGV4IGRlM2FlYTc1
ZDI0ZWY2NzU1YWQyYWQ1Mzg4YmQ2YWZkMjM4ODRiMTQuLjE3NTVmNjExNjE3ZGVjZDMwZWNmZDYw
YmM0OGIzYjIwMjE2ZGQyODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5r
TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuaApAQCAtNTgs
NyArNTgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgbG9hZExpbmtzRnJvbUhlYWRlcihj
b25zdCBTdHJpbmcmIGhlYWRlclZhbHVlLCBjb25zdCBVUkwmIGJhc2VVUkwsIERvY3VtZW50Jiwg
TWVkaWFBdHRyaWJ1dGVDaGVjayk7CiAgICAgc3RhdGljIGJvb2wgaXNTdXBwb3J0ZWRUeXBlKENh
Y2hlZFJlc291cmNlOjpUeXBlLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKIAotICAgIFdlYWtQ
dHI8TGlua0xvYWRlcj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxMaW5rTG9hZGVyPiBjcmVhdGVXZWFrUHRy
KCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogICAg
IHZvaWQgdHJpZ2dlckV2ZW50cyhjb25zdCBDYWNoZWRSZXNvdXJjZSYpOwogICAgIHZvaWQgY2Fu
Y2VsTG9hZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNv
dXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRl
ci5jcHAKaW5kZXggYzQwN2E3Y2Y1OTAwOGQ3NDMwM2NiMjg1NTEyN2U0NWNkNmFkOTRmYi4uYjJl
MTYwNTZmYzcwOGZiM2E4MTVmYzgwNDY0ZTEyOTc2ZGE0NzkwNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcApAQCAtNDUsNyArNDUsNiBAQCBNZWRp
YVJlc291cmNlTG9hZGVyOjpNZWRpYVJlc291cmNlTG9hZGVyKERvY3VtZW50JiBkb2N1bWVudCwg
SFRNTE1lZGlhRWxlbWVudCYgbQogICAgICwgbV9kb2N1bWVudCgmZG9jdW1lbnQpCiAgICAgLCBt
X21lZGlhRWxlbWVudChtZWRpYUVsZW1lbnQuY3JlYXRlV2Vha1B0cigpKQogICAgICwgbV9jcm9z
c09yaWdpbk1vZGUoY3Jvc3NPcmlnaW5Nb2RlKQotICAgICwgbV93ZWFrRmFjdG9yeSh0aGlzKQog
ewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxv
YWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuaAppbmRl
eCA1YTEwYmYzYzY5ODRhNGFjMzEzOTZhZDkwNWNmNDkxMjkyZjEzYWZjLi5iMDA0YjdhZDFkMThh
ZTc3MWQ3MmFkODgyMzc0OWQzMjUzNzEyNjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9N
ZWRpYVJlc291cmNlTG9hZGVyLmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIFZlY3Rv
cjxSZXNvdXJjZVJlc3BvbnNlPiByZXNwb25zZXNGb3JUZXN0aW5nKCkgY29uc3QgeyByZXR1cm4g
bV9yZXNwb25zZXNGb3JUZXN0aW5nOyB9CiAgICAgdm9pZCBhZGRSZXNwb25zZUZvclRlc3Rpbmco
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogCi0gICAgV2Vha1B0cjxjb25zdCBNZWRpYVJlc291
cmNlTG9hZGVyPiBjcmVhdGVXZWFrUHRyKCkgY29uc3QgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPGNvbnN0IE1lZGlhUmVzb3VyY2VMb2FkZXI+
IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRo
aXMpOyB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggOTJmNWI5MDVjZTEwYTk0ZTA4MmZkNjY1
MmNlNjE5NzBiZTFhOGIyYS4uODdiYTlkOGQ3YTRlNzA0OGMyNjUwNWI1YjU5YWEyYTllYzUwNTRm
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMzk0LDcgKzM5NCw2IEBAIHZvaWQg
RE9NV2luZG93OjpzZXRDYW5TaG93TW9kYWxEaWFsb2dPdmVycmlkZShib29sIGFsbG93KQogRE9N
V2luZG93OjpET01XaW5kb3coRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogQ29udGV4dERlc3Ry
dWN0aW9uT2JzZXJ2ZXIoJmRvY3VtZW50KQogICAgICwgRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVy
KGRvY3VtZW50LmZyYW1lKCkpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiAgICAg
QVNTRVJUKGZyYW1lKCkpOwogICAgIGFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodGhpcywgJmxh
bmd1YWdlc0NoYW5nZWRDYWxsYmFjayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCBhYjMy
N2JkZDMyMTliMzE0MjZjYWE4OWZmMTBlOTdhZGRmNzRjZGNkLi5kNmQ0ZDE4NDk0ODZjMWYxYzI5
YjU5OWQwMTBjNzhlMjUxMzgzNmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTMyNSw3
ICszMjUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmFibGVTdWRkZW5UZXJtaW5hdGlvbigpOwog
ICAgIHZvaWQgZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCk7CiAKLSAgICBXZWFrUHRyPERPTVdp
bmRvdz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vh
a1B0cigpOyB9CisgICAgV2Vha1B0cjxET01XaW5kb3c+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVy
biBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgRE9NV2luZG93KERvY3VtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0dlbmVyaWNUYXNrUXVldWUuY3BwCmluZGV4IDBhNjU1MjA2YjUwODBkNjhkOThhMjQzMjRl
ZGUwNzE0NDM4ZWQ5MzEuLmFiMDg4NjJkM2RlNjlkYTI5MTM1MWQ5MmY2M2E2NGEyMzc4Y2Y5ZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuY3BwCkBAIC0z
MiwxNCArMzIsMTMgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogVGFza0Rpc3BhdGNoZXI8VGlt
ZXI+OjpUYXNrRGlzcGF0Y2hlcigpCi0gICAgOiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiB9
CiAKIHZvaWQgVGFza0Rpc3BhdGNoZXI8VGltZXI+Ojpwb3N0VGFzayhGdW5jdGlvbjx2b2lkKCk+
JiYgZnVuY3Rpb24pCiB7CiAgICAgbV9wZW5kaW5nVGFza3MuYXBwZW5kKFdURk1vdmUoZnVuY3Rp
b24pKTsKLSAgICBwZW5kaW5nRGlzcGF0Y2hlcnMoKS5hcHBlbmQobV93ZWFrUHRyRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCkpOworICAgIHBlbmRpbmdEaXNwYXRjaGVycygpLmFwcGVuZChtX3dlYWtQ
dHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpKTsKICAgICBpZiAoIXNoYXJlZFRpbWVyKCku
aXNBY3RpdmUoKSkKICAgICAgICAgc2hhcmVkVGltZXIoKS5zdGFydE9uZVNob3QoMF9zKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuaAppbmRleCA1ZDY0OThj
MmU5Y2NmZmFjNzVkMDcwM2IwYWUyYWY2YWI4YzUxZTI3Li4wMmMwYWI5YzJjN2Y4OWY3Yzg2YTY3
MTBkNjc5YmQwMWJiOTllOGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9H
ZW5lcmljVGFza1F1ZXVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VuZXJpY1Rh
c2tRdWV1ZS5oCkBAIC03MCwxNCArNzAsMTIgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjbGFz
cyBHZW5lcmljVGFza1F1ZXVlIHsKIHB1YmxpYzoKICAgICBHZW5lcmljVGFza1F1ZXVlKCkKLSAg
ICAgICAgOiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0gICAgICAgICwgbV9kaXNwYXRjaGVyKCkK
KyAgICAgICAgOiBtX2Rpc3BhdGNoZXIoKQogICAgIHsKICAgICB9CiAKICAgICBHZW5lcmljVGFz
a1F1ZXVlKFQmIHQpCi0gICAgICAgIDogbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQotICAgICAgICAs
IG1fZGlzcGF0Y2hlcih0KQorICAgICAgICA6IG1fZGlzcGF0Y2hlcih0KQogICAgIHsKICAgICB9
CiAKQEAgLTg5LDcgKzg3LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAg
ICAgICsrbV9wZW5kaW5nVGFza3M7Ci0gICAgICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICAgICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0
ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiAgICAgICAgIG1fZGlzcGF0Y2hlci5wb3N0
VGFzayhbd2Vha1RoaXMsIHRhc2sgPSBXVEZNb3ZlKHRhc2spXSB7CiAgICAgICAgICAgICBpZiAo
IXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxhYmxlQXJlYS5oCmluZGV4IDRiODIwZmUyZWRkMTE4ZmUwMmI1ODE4MDllNjFiMDJk
YjFlNzhlYWUuLjE0YjY1NjFjNWZmMTMzZTAxMWVhY2YyM2ExNzdjY2ZiNzdkNmUxYjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtNjQsNyArNjQsNyBAQCBw
dWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhbmRsZVdoZWVsRXZlbnQoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50Jik7CiAKLSAgICBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiBjcmVh
dGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0K
KyAgICBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93
ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiAjaWYgRU5BQkxFKENTU19T
Q1JPTExfU05BUCkKICAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBWZWN0b3I8TGF5b3V0VW5pdD4q
IGhvcml6b250YWxTbmFwT2Zmc2V0cygpIGNvbnN0OwpAQCAtMzU0LDcgKzM1NCw3IEBAIHByaXZh
dGU6CiAKICAgICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxBbmltYXRvcj4gbV9zY3Jv
bGxBbmltYXRvcjsKIAotICAgIFdlYWtQdHJGYWN0b3J5PFNjcm9sbGFibGVBcmVhPiBtX3dlYWtQ
dHJGYWN0b3J5IHsgdGhpcyB9OworICAgIFdlYWtQdHJGYWN0b3J5PFNjcm9sbGFibGVBcmVhPiBt
X3dlYWtQdHJGYWN0b3J5OwogCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8U2Nyb2xsU25hcE9mZnNldHNJbmZvPExheW91dFVuaXQ+PiBtX3NuYXBPZmZz
ZXRzSW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCmluZGV4IDA1MGQ0ZDk5
YmUwNjY1MTFhYzEzNTZiN2M4NWFkYThkMTdmNGQ4ZjUuLjllZTkzODEyNmFkNDU1MDhmMDQ1ZjRi
NTk5YjE1MmRmYjFiZDhhMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGJhci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcApA
QCAtNzcsNyArNzcsNiBAQCBTY3JvbGxiYXI6OlNjcm9sbGJhcihTY3JvbGxhYmxlQXJlYSYgc2Ny
b2xsYWJsZUFyZWEsIFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudAogICAgICwgbV9zdXBwcmVz
c0ludmFsaWRhdGlvbihmYWxzZSkKICAgICAsIG1faXNBbHBoYUxvY2tlZChmYWxzZSkKICAgICAs
IG1faXNDdXN0b21TY3JvbGxiYXIoaXNDdXN0b21TY3JvbGxiYXIpCi0gICAgLCBtX3dlYWtQdHJG
YWN0b3J5KHRoaXMpCiB7CiAgICAgdGhlbWUoKS5yZWdpc3RlclNjcm9sbGJhcigqdGhpcyk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmgKaW5kZXggZTI1NjA4MWI3NTdmMTA5YWY0MmY5
Y2M4OGU1Zjc4NDY0OTFjMDMxMy4uMWE4NmJmMzMyNWJjYjczMTc4MTdlNjdkYWQxMTEyYjRkY2Ew
MmVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmgKQEAgLTEzMyw3ICsxMzMsNyBA
QCBwdWJsaWM6CiAKICAgICBib29sIHN1cHBvcnRzVXBkYXRlT25TZWNvbmRhcnlUaHJlYWQoKSBj
b25zdDsKIAotICAgIFdlYWtQdHI8U2Nyb2xsYmFyPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4g
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPFNjcm9sbGJh
cj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0
cigqdGhpcyk7IH0KIAogcHJvdGVjdGVkOgogICAgIFNjcm9sbGJhcihTY3JvbGxhYmxlQXJlYSYs
IFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxiYXJDb250cm9sU2l6ZSwgU2Nyb2xsYmFyVGhl
bWUqID0gMCwgYm9vbCBpc0N1c3RvbVNjcm9sbGJhciA9IGZhbHNlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
V2lkZ2V0LmgKaW5kZXggNzEwZWY3YjY0ZDMxMGYyYjZjNDM3ZGE4YThiZDcyYTRmZWZkOTZmYS4u
YjVjNjc0YWYxYjllNTJhOTUzZTllMWE5OTg3OWU4NTc4OGI3OTc5NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vV2lkZ2V0LmgKQEAgLTE5Myw3ICsxOTMsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCBJbnRQb2ludCBjb252ZXJ0VG9Db250YWluaW5nVmlldyhjb25zdCBJbnRQb2lu
dCYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgSW50UG9pbnQgY29udmVydEZy
b21Db250YWluaW5nVmlldyhjb25zdCBJbnRQb2ludCYpIGNvbnN0OwogCi0gICAgV2Vha1B0cjxX
aWRnZXQ+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKTsgfQorICAgIFdlYWtQdHI8V2lkZ2V0PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4g
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiBwcml2YXRlOgogICAg
IHZvaWQgaW5pdChQbGF0Zm9ybVdpZGdldCk7IC8vIE11c3QgYmUgY2FsbGVkIGJ5IGFsbCBXaWRn
ZXQgY29uc3RydWN0b3JzIHRvIGluaXRpYWxpemUgY3Jvc3MtcGxhdGZvcm0gZGF0YS4KQEAgLTIx
Niw3ICsyMTYsNyBAQCBwcml2YXRlOgogI2Vsc2UKICAgICBSZXRhaW5QdHI8TlNWaWV3PiBtX3dp
ZGdldDsKICNlbmRpZgotICAgIFdlYWtQdHJGYWN0b3J5PFdpZGdldD4gbV93ZWFrUHRyRmFjdG9y
eSB7IHRoaXMgfTsKKyAgICBXZWFrUHRyRmFjdG9yeTxXaWRnZXQ+IG1fd2Vha1B0ckZhY3Rvcnk7
CiAgICAgYm9vbCBtX3NlbGZWaXNpYmxlOwogICAgIGJvb2wgbV9wYXJlbnRWaXNpYmxlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9G
aWxlUmVhZGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCmluZGV4IDBlNDFjYzgwNWJkMDhi
NGI5NjcxNmQ1ZjE3YTllZmUyOWJmOGVkYzUuLjc4OTg2OTMzMmVjOTE1MTVlZGFkZTZhMGVkMzgz
MmNkMWM0NDZjY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCkBA
IC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8QXVkaW9CdXM+IGNyZWF0ZUJ1cyhm
bG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubyk7CiAKIHByaXZhdGU6Ci0gICAgV2Vha1B0
cjxBdWRpb0ZpbGVSZWFkZXI+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0
b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8QXVkaW9GaWxlUmVhZGVyPiBjcmVh
dGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlz
KTsgfQogCiAgICAgc3RhdGljIHZvaWQgZGVpbnRlcmxlYXZlUGFkQWRkZWRDYWxsYmFjayhBdWRp
b0ZpbGVSZWFkZXIqLCBHc3RQYWQqKTsKICAgICBzdGF0aWMgdm9pZCBkZWludGVybGVhdmVSZWFk
eUNhbGxiYWNrKEF1ZGlvRmlsZVJlYWRlciopOwpAQCAtMTA4LDE1ICsxMDgsMTMgQEAgdm9pZCBB
dWRpb0ZpbGVSZWFkZXI6OmRlY29kZWJpblBhZEFkZGVkQ2FsbGJhY2soQXVkaW9GaWxlUmVhZGVy
KiByZWFkZXIsIEdzdFBhZCoKIH0KIAogQXVkaW9GaWxlUmVhZGVyOjpBdWRpb0ZpbGVSZWFkZXIo
Y29uc3QgY2hhciogZmlsZVBhdGgpCi0gICAgOiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0gICAg
LCBtX3J1bkxvb3AoUnVuTG9vcDo6Y3VycmVudCgpKQorICAgIDogbV9ydW5Mb29wKFJ1bkxvb3A6
OmN1cnJlbnQoKSkKICAgICAsIG1fZmlsZVBhdGgoZmlsZVBhdGgpCiB7CiB9CiAKIEF1ZGlvRmls
ZVJlYWRlcjo6QXVkaW9GaWxlUmVhZGVyKGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBkYXRhU2l6
ZSkKLSAgICA6IG1fd2Vha1B0ckZhY3RvcnkodGhpcykKLSAgICAsIG1fcnVuTG9vcChSdW5Mb29w
OjpjdXJyZW50KCkpCisgICAgOiBtX3J1bkxvb3AoUnVuTG9vcDo6Y3VycmVudCgpKQogICAgICwg
bV9kYXRhKGRhdGEpCiAgICAgLCBtX2RhdGFTaXplKGRhdGFTaXplKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1h
Yy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9IYXJkd2FyZUxp
c3RlbmVyTWFjLmNwcAppbmRleCAwYjQ0ZjU5MjEzNTdhNDYyZTM1MTlkY2EyYmY0ZTU0ZmViZTI1
NjM4Li5kYmJkYzlmMGE5N2Y1YmE0OTBjZjUwMWRiMzNjMjI0NTNkNzk4Nzg0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9IYXJkd2FyZUxpc3RlbmVy
TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9IYXJk
d2FyZUxpc3RlbmVyTWFjLmNwcApAQCAtMTIxLDEyICsxMjEsMTEgQEAgUmVmPEF1ZGlvSGFyZHdh
cmVMaXN0ZW5lck1hYz4gQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjOjpjcmVhdGUoQ2xpZW50JiBj
bGllbnQpCiAKIEF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYzo6QXVkaW9IYXJkd2FyZUxpc3RlbmVy
TWFjKENsaWVudCYgY2xpZW50KQogICAgIDogQXVkaW9IYXJkd2FyZUxpc3RlbmVyKGNsaWVudCkK
LSAgICAsIG1fd2Vha0ZhY3RvcnkodGhpcykKIHsKICAgICBzZXRIYXJkd2FyZUFjdGl2aXR5KGlz
QXVkaW9IYXJkd2FyZVByb2Nlc3NSdW5uaW5nKCkpOwogICAgIHNldE91dHB1dERldmljZVN1cHBv
cnRzTG93UG93ZXJNb2RlKGN1cnJlbnREZXZpY2VTdXBwb3J0c0xvd1Bvd2VyQnVmZmVyU2l6ZSgp
KTsKIAotICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsK
KyAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsK
ICAgICBtX2Jsb2NrID0gQmxvY2tfY29weSheKFVJbnQzMiBjb3VudCwgY29uc3QgQXVkaW9PYmpl
Y3RQcm9wZXJ0eUFkZHJlc3MgcHJvcGVydGllc1tdKSB7CiAgICAgICAgIGlmICh3ZWFrVGhpcykK
ICAgICAgICAgICAgIHdlYWtUaGlzLT5wcm9wZXJ0eUNoYW5nZWQoY291bnQsIHByb3BlcnRpZXMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xl
YXJrZXkvQ0RNQ2xlYXJLZXkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVk
bWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuY3BwCmluZGV4IGJlYTMxNGRmMTY0MjQwZjczYTM4
YmFiNzViMzRlZjFhZTE0NWFiYTQuLjQwOTIxNzczMjRhNWYwZmEzMWMwZWI5NzkyZDEzNDVhYTZi
NWJjNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlh
L2NsZWFya2V5L0NETUNsZWFyS2V5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
bmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHAKQEAgLTMwNCw3ICszMDQsNiBA
QCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gQ0RNUHJpdmF0ZUNsZWFyS2V5OjpzYW5pdGl6ZVNlc3Np
b25JZChjb25zdCBTdHJpbmcmIHNlc3NpbwogfQogCiBDRE1JbnN0YW5jZUNsZWFyS2V5OjpDRE1J
bnN0YW5jZUNsZWFyS2V5KCkKLSAgICA6IG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKIH0KIApA
QCAtMzQwLDcgKzMzOSw3IEBAIHZvaWQgQ0RNSW5zdGFuY2VDbGVhcktleTo6cmVxdWVzdExpY2Vu
c2UoTGljZW5zZVR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYsIFJlZjxTCiAgICAgKytzX3Nlc3Np
b25JZFZhbHVlOwogCiAgICAgY2FsbE9uTWFpblRocmVhZCgKLSAgICAgICAgW3dlYWtUaGlzID0g
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayksIGluaXREYXRhID0gV1RGTW92ZShpbml0RGF0YSksIHNlc3Npb25JZFZhbHVlID0gc19z
ZXNzaW9uSWRWYWx1ZV0oKSBtdXRhYmxlIHsKKyAgICAgICAgW3dlYWtUaGlzID0gbV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KSwgaW5pdERhdGEgPSBXVEZNb3ZlKGluaXREYXRhKSwgc2Vzc2lvbklkVmFsdWUgPSBzX3Nlc3Np
b25JZFZhbHVlXSgpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAKQEAgLTM1NSw3ICszNTQsNyBAQCB2b2lkIENETUluc3RhbmNl
Q2xlYXJLZXk6OnVwZGF0ZUxpY2Vuc2UoY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIExpY2Vuc2VU
eXBlLCBjbwogICAgIGF1dG8gZGlzcGF0Y2hDYWxsYmFjayA9CiAgICAgICAgIFt0aGlzLCAmY2Fs
bGJhY2tdKGJvb2wgc2Vzc2lvbldhc0Nsb3NlZCwgc3RkOjpvcHRpb25hbDxLZXlTdGF0dXNWZWN0
b3I+JiYgY2hhbmdlZEtleXMsIFN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQpIHsKICAgICAgICAgICAg
IGNhbGxPbk1haW5UaHJlYWQoCi0gICAgICAgICAgICAgICAgW3dlYWtUaGlzID0gbV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHNl
c3Npb25XYXNDbG9zZWQsIGNoYW5nZWRLZXlzID0gV1RGTW92ZShjaGFuZ2VkS2V5cyksIHN1Y2Nl
ZWRlZF0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgW3dlYWtUaGlzID0gbV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KSwgc2Vzc2lvbldhc0Nsb3NlZCwgY2hhbmdlZEtleXMgPSBXVEZNb3ZlKGNoYW5nZWRLZXlzKSwg
c3VjY2VlZGVkXSAoKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNDU2LDcgKzQ1NSw3IEBA
IHZvaWQgQ0RNSW5zdGFuY2VDbGVhcktleTo6dXBkYXRlTGljZW5zZShjb25zdCBTdHJpbmcmIHNl
c3Npb25JZCwgTGljZW5zZVR5cGUsIGNvCiB2b2lkIENETUluc3RhbmNlQ2xlYXJLZXk6OmxvYWRT
ZXNzaW9uKExpY2Vuc2VUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBMb2FkU2Vz
c2lvbkNhbGxiYWNrIGNhbGxiYWNrKQogewogICAgIGNhbGxPbk1haW5UaHJlYWQoCi0gICAgICAg
IFt3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCBjYWxsYmFjayA9
IFdURk1vdmUoY2FsbGJhY2spXSB7CisgICAgICAgIFt3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3Rv
cnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIHsK
ICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBA
IC00NjcsNyArNDY2LDcgQEAgdm9pZCBDRE1JbnN0YW5jZUNsZWFyS2V5Ojpsb2FkU2Vzc2lvbihM
aWNlbnNlVHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwKIHZvaWQgQ0RNSW5zdGFu
Y2VDbGVhcktleTo6Y2xvc2VTZXNzaW9uKGNvbnN0IFN0cmluZyYsIENsb3NlU2Vzc2lvbkNhbGxi
YWNrIGNhbGxiYWNrKQogewogICAgIGNhbGxPbk1haW5UaHJlYWQoCi0gICAgICAgIFt3ZWFrVGhp
cyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCBjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spXSB7CisgICAgICAgIFt3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRl
V2Vha1B0cigqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIHsKICAgICAgICAg
ICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBAIC00NzgsNyAr
NDc3LDcgQEAgdm9pZCBDRE1JbnN0YW5jZUNsZWFyS2V5OjpjbG9zZVNlc3Npb24oY29uc3QgU3Ry
aW5nJiwgQ2xvc2VTZXNzaW9uQ2FsbGJhY2sgY2FsbGIKIHZvaWQgQ0RNSW5zdGFuY2VDbGVhcktl
eTo6cmVtb3ZlU2Vzc2lvbkRhdGEoY29uc3QgU3RyaW5nJiwgTGljZW5zZVR5cGUsIFJlbW92ZVNl
c3Npb25EYXRhQ2FsbGJhY2sgY2FsbGJhY2spCiB7CiAgICAgY2FsbE9uTWFpblRocmVhZCgKLSAg
ICAgICAgW3dlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldIHsKKyAgICAgICAgW3dlYWtUaGlzID0gbV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KV0gewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNj
YWRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNw
cAppbmRleCA5MWQyNDNlMWM4ODMxODFjYjcyM2VjMmY1NjI1N2MwNWZmNzQyYmE4Li4wNWYzOTE3
MDBiOWE2MjAwYTgxOTI1M2FkNGEyMWNiM2YxYTBkNzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwCkBAIC03OCwxMyArNzgsMTEgQEAg
Rm9udENhc2NhZGU6OkNvZGVQYXRoIEZvbnRDYXNjYWRlOjpzX2NvZGVQYXRoID0gQXV0bzsKIC8v
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIEZvbnRDYXNjYWRlOjpGb250
Q2FzY2FkZSgpCi0gICAgOiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiB9CiAKIEZvbnRDYXNj
YWRlOjpGb250Q2FzY2FkZShjb25zdCBGb250Q2FzY2FkZURlc2NyaXB0aW9uJiBmZCwgZmxvYXQg
bGV0dGVyU3BhY2luZywgZmxvYXQgd29yZFNwYWNpbmcpCiAgICAgOiBtX2ZvbnREZXNjcmlwdGlv
bihmZCkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKICAgICAsIG1fbGV0dGVyU3BhY2lu
ZyhsZXR0ZXJTcGFjaW5nKQogICAgICwgbV93b3JkU3BhY2luZyh3b3JkU3BhY2luZykKICAgICAs
IG1fdXNlQmFja3NsYXNoQXNZZW5TeW1ib2wodXNlQmFja3NsYXNoQXNZZW5TaWduRm9yRmFtaWx5
KGZkLmZpcnN0RmFtaWx5KCkpKQpAQCAtOTYsNyArOTQsNiBAQCBGb250Q2FzY2FkZTo6Rm9udENh
c2NhZGUoY29uc3QgRm9udENhc2NhZGVEZXNjcmlwdGlvbiYgZmQsIGZsb2F0IGxldHRlclNwYWNp
bmcsCiAvLyBGSVhNRTogV2Ugc2hvdWxkIG1ha2UgdGhpcyBjb25zdHJ1Y3RvciBwbGF0Zm9ybS1p
bmRlcGVuZGVudC4KIEZvbnRDYXNjYWRlOjpGb250Q2FzY2FkZShjb25zdCBGb250UGxhdGZvcm1E
YXRhJiBmb250RGF0YSwgRm9udFNtb290aGluZ01vZGUgZm9udFNtb290aGluZ01vZGUpCiAgICAg
OiBtX2ZvbnRzKEZvbnRDYXNjYWRlRm9udHM6OmNyZWF0ZUZvclBsYXRmb3JtRm9udChmb250RGF0
YSkpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiAgICAgLCBtX2VuYWJsZUtlcm5pbmco
Y29tcHV0ZUVuYWJsZUtlcm5pbmcoKSkKICAgICAsIG1fcmVxdWlyZXNTaGFwaW5nKGNvbXB1dGVS
ZXF1aXJlc1NoYXBpbmcoKSkKIHsKQEAgLTExMiw3ICsxMDksNiBAQCBGb250Q2FzY2FkZTo6Rm9u
dENhc2NhZGUoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgZm9udERhdGEsIEZvbnRTbW9vdGhpbmdN
b2RlIGZvbgogRm9udENhc2NhZGU6OkZvbnRDYXNjYWRlKGNvbnN0IEZvbnRDYXNjYWRlJiBvdGhl
cikKICAgICA6IG1fZm9udERlc2NyaXB0aW9uKG90aGVyLm1fZm9udERlc2NyaXB0aW9uKQogICAg
ICwgbV9mb250cyhvdGhlci5tX2ZvbnRzKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQog
ICAgICwgbV9sZXR0ZXJTcGFjaW5nKG90aGVyLm1fbGV0dGVyU3BhY2luZykKICAgICAsIG1fd29y
ZFNwYWNpbmcob3RoZXIubV93b3JkU3BhY2luZykKICAgICAsIG1fdXNlQmFja3NsYXNoQXNZZW5T
eW1ib2wob3RoZXIubV91c2VCYWNrc2xhc2hBc1llblN5bWJvbCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oCmluZGV4IGEzYjFmZmViNWJhYjM0NzQ5
MGExYjUwM2FkYWExZmYxNTUyNTMzZWQuLmE0NDY5OTkyYWE1OGUwMzQ1N2RmNTliYTgyYTMwZjEz
NjVjMmUzNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYXNjYWRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENh
c2NhZGUuaApAQCAtMTk1LDcgKzE5NSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgcHJpbWFyeUZv
bnRJc1N5c3RlbUZvbnQoKSBjb25zdDsKIAotICAgIFdlYWtQdHI8Rm9udENhc2NhZGU+IGNyZWF0
ZVdlYWtQdHIoKSBjb25zdCB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIo
KTsgfQorICAgIFdlYWtQdHI8Rm9udENhc2NhZGU+IGNyZWF0ZVdlYWtQdHIoKSBjb25zdCB7IHJl
dHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKmNvbnN0X2Nhc3Q8Rm9udENhc2Nh
ZGUqPih0aGlzKSk7IH0KIAogcHJpdmF0ZToKICAgICBlbnVtIEZvclRleHRFbXBoYXNpc09yTm90
IHsgTm90Rm9yVGV4dEVtcGhhc2lzLCBGb3JUZXh0RW1waGFzaXMgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKaW5kZXggMTYz
NWU5OWJjMjU0MDcyM2MwNWI4ZmZmNzAxYWMxNGJkYzEyZjU5OC4uZDQyOWRiNTU2MDVjYzU3NTBi
YjliNDM1ZDQ2NzU0ZGEzNTllMDg5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKQEAgLTU1LDcgKzU1LDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbihNZWRpYVBsYXllciogcGxheWVyKQogICAgIDogbV9wbGF5
ZXIocGxheWVyKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogICAgICwgbV9xdWV1ZWRO
b3RpZmljYXRpb25zKCkKICAgICAsIG1fcXVldWVNdXRleCgpCiAgICAgLCBtX25ldHdvcmtTdGF0
ZShNZWRpYVBsYXllcjo6RW1wdHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggMzdlM2JlOWNjZTNkMWY3NzdkZjU4NWQyZDgw
ZWUyYTM0NDgwODViNC4uNWU0ODUyNWI3N2RlZjVkNzViNzFlMjk2NGVjZjkyMDA2Yzc2ZjlhOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24uaApAQCAtMTYzLDcgKzE2Myw3IEBAIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIH5NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oKTsKIAotICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigqdGhpcyk7IH0KIAogICAgIC8vIE1lZGlhUGxheWVyUHJpdmF0ZVByaXZhdGVJ
bnRlcmZhY2Ugb3ZlcnJpZGVzLgogICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCkgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRh
dGlvbk9iakMuaAppbmRleCBiYmMwNWQ1MDdmNDI1NjY3OWZiN2Q3YmNmNzIwZDg1MjZjMWFjMzcx
Li4yNWQwYTZlZTE5YzNiYzRmZDlhYjc0NGYzMjM1MTQwZGNmZDZmY2U2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNz
aW9uQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmgKQEAgLTUz
LDcgKzUzLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBwbGF5ZXJEaWRSZWNlaXZlRXJyb3IoTlNF
cnJvciAqKTsKIAotICAgIFdlYWtQdHI8Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM+IGNyZWF0
ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQor
ICAgIFdlYWtQdHI8Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7
IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKIHByb3Rl
Y3RlZDoKICAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM+IG1f
cGFyZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3Vu
ZGF0aW9uT2JqQy5tbQppbmRleCA3NGMzMTMzNzM0NjIyYzc3MGY0ODFkNzU3NGU1NWJhYTY0N2Yw
ZDUxLi5iYmNkNWQzMDUwY2YzNDc3NmE4OTJmMTU5ZTkxOWJiYTMyMjU2MWFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1T
ZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbQpA
QCAtNTMsNyArNTMsNiBAQCBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQzo6Q0RNU2Vzc2lvbkFW
Rm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZAogICAgIDogbV9wYXJlbnQo
cGFyZW50LT5jcmVhdGVXZWFrUHRyKCkpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBt
X3Nlc3Npb25JZChjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkpCi0gICAgLCBtX3dlYWtQdHJG
YWN0b3J5KHRoaXMpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1T
ZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tCmluZGV4IGNkODI4YjM1MzU3MTk1MmYyYjJjNDg1Y2Vh
ZjIxNjZhZWU5ZmI0Y2EuLjlmYTc2MWViOWM1ZmYzNTFkNjY5YTc2MWFhMDRmZjI4OGVlYWJlYjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vz
c2lvbi5tbQpAQCAtODksNyArODksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENETVNlc3Np
b25BVlN0cmVhbVNlc3Npb246OkNETVNlc3Npb25BVlN0cmVhbVNlc3Npb24oY29uc3QgVmVjdG9y
PGludD4mIHByb3RvY29sVmVyc2lvbnMsIENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMmIGNk
bSwgQ0RNU2Vzc2lvbkNsaWVudCogY2xpZW50KQogICAgIDogQ0RNU2Vzc2lvbk1lZGlhU291cmNl
QVZGT2JqQyhjZG0sIGNsaWVudCkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKICAgICAs
IG1fZGF0YVBhcnNlck9ic2VydmVyKGFkb3B0TlMoW1tXZWJDRE1TZXNzaW9uQVZTdHJlYW1TZXNz
aW9uT2JzZXJ2ZXIgYWxsb2NdIGluaXRXaXRoUGFyZW50OnRoaXNdKSkKICAgICAsIG1fcHJvdG9j
b2xWZXJzaW9ucyhwcm90b2NvbFZlcnNpb25zKQogICAgICwgbV9tb2RlKE5vcm1hbCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMuaAppbmRleCA2MjU1ZjQ5M2YyY2QyZjE1NjBiYjZmMTU5OTQyZmZjZTNmNzcw
MWU3Li40OWE3MWFhYjJmMDMzNDgwN2JlYmIyNTM0NjVlODk2ZmEwOWJlZGJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5oCkBAIC0xNTgsNyArMTU4LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3Zl
U2Vzc2lvbihDRE1TZXNzaW9uJik7CiAjZW5kaWYKIAotICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0
ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiBwcml2YXRlOgogICAgIC8vIGVuZ2luZSBz
dXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA2YTNlZGExYTUwMWY1OTk1ZjFlNDRl
ZDIxNGQ1YjU2NTRmYmMxZDRlLi44MTRjZmI2M2I3OGFkMmQzODM5NWJjZDI2ZTBlZGMyODc2ZDU1
OTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTU0MSw3ICs1NDEsNiBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNsZWFyTWVkaWFDYWNoZUZvck9yaWdp
bnMoY29uc3QgU3RyaW5nJgogCiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAg
ICAgOiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24ocGxheWVyKQotICAgICwgbV93ZWFr
UHRyRmFjdG9yeSh0aGlzKQogI2lmIFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYg
RU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKICAgICAsIG1fdmlkZW9GdWxsc2NyZWVu
TGF5ZXJNYW5hZ2VyKFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlcjo6Y3JlYXRlKCkpCiAgICAg
LCBtX3ZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoTWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0eVJlc2l6
ZUFzcGVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggOGQzOGVkMWRhNjdlM2IwOWUy
ODIwZjVkMjM5ZDIzODc0YmJkODU1Ni4uMWIxYjk3MTNmNDA5ZDk4YjUyYjg4MzMxYTQyYzUxOWRm
N2FlM2RlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTEzMCw3ICsxMzAsNyBAQCBw
dWJsaWM6CiAgICAgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgbWVkaWFDb250ZW50VHlwZXNS
ZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdDsKICAgICBib29sIHNob3VsZENoZWNrSGFy
ZHdhcmVTdXBwb3J0KCkgY29uc3Q7CiAKLSAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rv
cnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKIHByaXZhdGU6CiAgICAgLy8gTWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggNWM2NzExOTdl
MmI3OWQ5N2VhZTI5ZWFiYjI3MDBlNTdjZDU5ZDJjZS4uYzNiM2M3ZmM5NDlmYTkyMWEyZWVjNDU4
ZDNmZDRhNmJhOTUyODRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMTI1LDgg
KzEyNSw2IEBAIHN0YXRpYyB2b2lkIENNVGltZWJhc2VFZmZlY3RpdmVSYXRlQ2hhbmdlZENhbGxi
YWNrKENNTm90aWZpY2F0aW9uQ2VudGVyUmVmLCBjb25zCiAKIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKE1l
ZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgOiBtX3BsYXllcihwbGF5ZXIpCi0gICAgLCBtX3dlYWtQ
dHJGYWN0b3J5KHRoaXMpCi0gICAgLCBtX3NpemVDaGFuZ2VPYnNlcnZlcldlYWtQdHJGYWN0b3J5
KHRoaXMpCiAgICAgLCBtX3N5bmNocm9uaXplcihhZG9wdE5TKFthbGxvY0FWU2FtcGxlQnVmZmVy
UmVuZGVyU3luY2hyb25pemVySW5zdGFuY2UoKSBpbml0XSkpCiAgICAgLCBtX3NlZWtUaW1lcigq
dGhpcywgJk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2Vla0ludGVybmFs
KQogICAgICwgbV9zZXNzaW9uKG51bGxwdHIpCkBAIC04OTAsNyArODg4LDcgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmVmZmVjdGl2ZVJhdGVDaGFuZ2VkKCkK
IAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNpemVXaWxsQ2hh
bmdlQXRUaW1lKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgRmxvYXRTaXplJiBzaXplKQog
ewotICAgIGF1dG8gd2Vha1RoaXMgPSBtX3NpemVDaGFuZ2VPYnNlcnZlcldlYWtQdHJGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBhdXRvIHdlYWtUaGlzID0gbV9zaXplQ2hhbmdlT2JzZXJ2
ZXJXZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsKICAgICBOU0FycmF5KiB0aW1l
cyA9IEBbW05TVmFsdWUgdmFsdWVXaXRoQ01UaW1lOlBBTDo6dG9DTVRpbWUodGltZSldXTsKICAg
ICBSZXRhaW5QdHI8aWQ+IG9ic2VydmVyID0gW21fc3luY2hyb25pemVyIGFkZEJvdW5kYXJ5VGlt
ZU9ic2VydmVyRm9yVGltZXM6dGltZXMgcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1
c2luZ0Jsb2NrOlt0aGlzLCB3ZWFrVGhpcywgc2l6ZV0gewogICAgICAgICBpZiAoIXdlYWtUaGlz
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAppbmRleCBlMTcwZmY4ZDBiN2Y2ZjE2MjFiMDhhNzlh
OWYxOGUwOWEyMDA4YmVhLi5jMTUxYzcyNTFmMjZlOTAxZWJiZDU1Mjk1Yjg3ZDAxZTU1ZjVlNWJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAg
ICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSk7CiAKLSAgICBX
ZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQz4gY3JlYXRlV2Vha1B0
cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vh
a1B0cjxNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIo
KSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKICAg
ICB2b2lkIGVuc3VyZUxheWVycygpOwogICAgIHZvaWQgZGVzdHJveUxheWVycygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IDkwNTVkYmY5YmQ4YzAxMTViNjQ2ZDlhM2U4ZWM5YThj
NmE3ODVhMjYuLjFjZDQ3MDkxNzBlYjE2ODA1ZmU3ZDQzNzNlYmVlMzNmMmViODEwY2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTE4OCw3ICsxODgsNiBAQCBzdGF0aWMgY29uc3Qg
ZG91YmxlIHJlbmRlcmVyTGF0ZW5jeSA9IDAuMDI7CiAKIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1lZGlh
UGxheWVyKiBwbGF5ZXIpCiAgICAgOiBtX3BsYXllcihwbGF5ZXIpCi0gICAgLCBtX3dlYWtQdHJG
YWN0b3J5KHRoaXMpCiAgICAgLCBtX3N0YXR1c0NoYW5nZUxpc3RlbmVyKGFkb3B0TlMoW1tXZWJB
VlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aFBhcmVudDp0
aGlzXSkpCiAgICAgLCBtX2Nsb2NrKENsb2NrOjpjcmVhdGUoKSkKICNpZiBQTEFURk9STShJT1Mp
IHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
aAppbmRleCBmMWQxNmVmYmFiZWM2NTVjYzllM2JjMzFlYzBjZWYwY2E0Y2RlMzRlLi5hYzlkYWZi
MzE5NDkyZjY5OTAxODk3ZDlmYzU3NjE2Mjc0NjA3Njg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgKQEAgLTE1Myw3ICsxNTMs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgZmx1c2goQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVy
ICopOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCi0gICAgV2Vha1B0cjxTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3Rv
cnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0
cigqdGhpcyk7IH0KIAogICAgIFZlY3RvcjxSZWZQdHI8VmlkZW9UcmFja1ByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM+PiBtX3ZpZGVvVHJhY2tzOwogICAgIFZlY3RvcjxSZWZQdHI8QXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM+PiBtX2F1ZGlvVHJhY2tzOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQppbmRleCBj
YjZiMzUyYTZkM2E1NWNkMWZhNzI1Y2E4MGYzMjM4NDljNmNiOTlmLi5hZWI5NDNhNTcwOWFlOTFm
ODQ3NWYyMTA4ZTk5MWMxYTA1MzAzYTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQpAQCAtNDc5LDkgKzQ3OSw3IEBAIFJl
ZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQz4gU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akM6OmNyZWF0ZShNZWRpYVNvdXJjCiB9CiAKIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyhNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDKiBwYXJl
bnQpCi0gICAgOiBtX3dlYWtGYWN0b3J5KHRoaXMpCi0gICAgLCBtX2FwcGVuZFdlYWtGYWN0b3J5
KHRoaXMpCi0gICAgLCBtX3BhcnNlcihhZG9wdE5TKFthbGxvY0FWU3RyZWFtRGF0YVBhcnNlcklu
c3RhbmNlKCkgaW5pdF0pKQorICAgIDogbV9wYXJzZXIoYWRvcHROUyhbYWxsb2NBVlN0cmVhbURh
dGFQYXJzZXJJbnN0YW5jZSgpIGluaXRdKSkKICAgICAsIG1fZGVsZWdhdGUoYWRvcHROUyhbW1dl
YkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aFBhcnNlcjptX3BhcnNl
ci5nZXQoKSBwYXJlbnQ6Y3JlYXRlV2Vha1B0cigpXSkpCiAgICAgLCBtX2Vycm9yTGlzdGVuZXIo
YWRvcHROUyhbW1dlYkFWU2FtcGxlQnVmZmVyRXJyb3JMaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhQ
YXJlbnQ6dGhpc10pKQogICAgICwgbV9pc0FwcGVuZGluZ0dyb3VwKGFkb3B0T1NPYmplY3QoZGlz
cGF0Y2hfZ3JvdXBfY3JlYXRlKCkpKQpAQCAtNjc1LDcgKzY3Myw3IEBAIHZvaWQgU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakM6OmFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNp
Z25lZCBsZW5nCiAgICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akM6OmFwcGVuZCglcCkgLSBkYXRhOiVwLCBsZW5ndGg6JWQiLCB0aGlzLCBkYXRhLCBsZW5ndGgp
OwogCiAgICAgUmV0YWluUHRyPE5TRGF0YT4gbnNEYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxv
Y10gaW5pdFdpdGhCeXRlczpkYXRhIGxlbmd0aDpsZW5ndGhdKTsKLSAgICBXZWFrUHRyPFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDPiB3ZWFrVGhpcyA9IG1fYXBwZW5kV2Vha0ZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigpOworICAgIFdlYWtQdHI8U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+IHdl
YWtUaGlzID0gbV9hcHBlbmRXZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsKICAgICBS
ZXRhaW5QdHI8QVZTdHJlYW1EYXRhUGFyc2VyPiBwYXJzZXIgPSBtX3BhcnNlcjsKICAgICBSZXRh
aW5QdHI8V2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXI+IGRlbGVnYXRlID0gbV9kZWxlZ2F0
ZTsKIApAQCAtNzE1LDcgKzcxMyw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
OmFib3J0KCkKICAgICAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX2hhc1Nlc3Npb25T
ZW1hcGhvcmUuZ2V0KCkpOwogICAgIGRpc3BhdGNoX2dyb3VwX3dhaXQobV9pc0FwcGVuZGluZ0dy
b3VwLmdldCgpLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOwogICAgIG1fYXBwZW5kV2Vha0ZhY3Rv
cnkucmV2b2tlQWxsKCk7Ci0gICAgbV9kZWxlZ2F0ZS5nZXQoKS5wYXJlbnQgPSBtX2FwcGVuZFdl
YWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBtX2RlbGVnYXRlLmdldCgpLnBhcmVudCA9
IG1fYXBwZW5kV2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiB9CiAKIHZvaWQgU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnJlc2V0UGFyc2VyU3RhdGUoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5tbQppbmRl
eCBmZTc5MTljZTJkOGVjZjAyMjUyODcyMGIxNjEwNWJjMmUyZGRjZDI4Li4zZGEwMTY0YzFlNWM5
MzVlOGU0Y2M0NGEzYmRjZGRlZDVmYjVlNWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5tbQpAQCAtNTAsNyArNTAsNiBA
QCBzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZUNhY2hlQ1Y+IFRleHR1cmVDYWNoZUNWOjpjcmVhdGUo
R3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleAogVGV4dHVyZUNhY2hlQ1Y6OlRleHR1cmVDYWNoZUNW
KEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0LCBSZXRhaW5QdHI8VGV4dHVyZUNhY2hlVHlwZT4m
JiBjYWNoZSkKICAgICA6IG1fY29udGV4dChjb250ZXh0KQogICAgICwgbV9jYWNoZShjYWNoZSkK
LSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKIH0KIApAQCAtNzMsNyArNzIsNyBAQCBS
ZXRhaW5QdHI8VGV4dHVyZUNhY2hlQ1Y6OlRleHR1cmVUeXBlPiBUZXh0dXJlQ2FjaGVDVjo6dGV4
dHVyZUZyb21JbWFnZShDVkltYWdlQgogI2VuZGlmCiAgICAgUmV0YWluUHRyPFRleHR1cmVUeXBl
PiB2aWRlb1RleHR1cmUgPSBhZG9wdENGKGJhcmVWaWRlb1RleHR1cmUpOwogCi0gICAgYXV0byB3
ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAgIGF1dG8gd2Vh
a1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOwogICAgIGRpc3Bh
dGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFt3ZWFrVGhpc10gewogICAgICAg
ICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCAwZjJiODQ3ZmQ3OWVhNzI3OTAy
ZTI2ZmQ1OWQ2OGVjM2MyMWY4MGEwLi41NGI5NWUzYjEzOWY4NmYzY2M4ZTkyYzM0Zjk0ODMxOGVl
ZGM5ZjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcApAQCAtMTQwLDcgKzE0MCw2IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6TWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgLCBtX3Nl
ZWtUaW1lKDApCiAgICAgLCBtX3NvdXJjZShudWxscHRyKQogICAgICwgbV92b2x1bWVBbmRNdXRl
SW5pdGlhbGl6ZWQoZmFsc2UpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiAgICAgLCBt
X21lZGlhTG9jYXRpb25zKG51bGxwdHIpCiAgICAgLCBtX21lZGlhTG9jYXRpb25DdXJyZW50SW5k
ZXgoMCkKICAgICAsIG1fcGxheWJhY2tSYXRlUGF1c2UoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggM2EzMGEyMzc3YzBmZDBkNWYyYzNh
M2ZiM2I1NWQ0NGQwYTY3ZDliNS4uNzQ3OTQ4NzRkZDhjOTZhYzE3OTI4NDQ2N2QwZGU1ZTMzY2Y5
MjEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApA
QCAtMTM5LDcgKzEzOSw3IEBAIHByaXZhdGU6CiAKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJs
ZSgpOwogCi0gICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI+IGNyZWF0ZVdl
YWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAg
IFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyPiBjcmVhdGVXZWFrUHRyKCkgeyBy
ZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCiAgICAgR3N0
RWxlbWVudCogY3JlYXRlQXVkaW9TaW5rKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAppbmRleCA3MmFhYjY3MDA5
ZmE0OGNjNzQ1OGYyZmFhMjM2OGM3NmI4ZDllYmNhLi40NmM4OTMwODg1MzdhNzgyOThkZWYxZjhh
MTExZDQwNjMzM2QxMjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC0yMjYsOCArMjI2LDcgQEAgcHJpdmF0ZToKICNlbmRp
ZiAvLyBVU0UoR1NUUkVBTUVSX0dMKQogCiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCi0g
ICAgOiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0gICAgLCBtX25vdGlmaWVyKE1haW5UaHJlYWRO
b3RpZmllcjxNYWluVGhyZWFkTm90aWZpY2F0aW9uPjo6Y3JlYXRlKCkpCisgICAgOiBtX25vdGlm
aWVyKE1haW5UaHJlYWROb3RpZmllcjxNYWluVGhyZWFkTm90aWZpY2F0aW9uPjo6Y3JlYXRlKCkp
CiAgICAgLCBtX3BsYXllcihwbGF5ZXIpCiAgICAgLCBtX2Zwc1NpbmsobnVsbHB0cikKICAgICAs
IG1fcmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6SGF2ZU5vdGhpbmcpCkBAIC0zNjQsNyArMzYzLDcg
QEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpoYW5kbGVTeW5jTWVzc2Fn
ZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBpZiAoY29uY2F0ZW5hdGVkSW5pdERhdGFD
aHVua3NOdW1iZXIgPiAxKQogICAgICAgICAgICAgZXZlbnRLZXlTeXN0ZW1JZFN0cmluZyA9IGVt
cHR5U3RyaW5nKCk7CiAKLSAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhp
cyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpLCBldmVudEtleVN5c3RlbUlkU3Ry
aW5nLCBpbml0RGF0YSA9IFdURk1vdmUoY29uY2F0ZW5hdGVkSW5pdERhdGFDaHVua3MpXSB7Cisg
ICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0
b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpLCBldmVudEtleVN5c3RlbUlkU3RyaW5nLCBpbml0RGF0
YSA9IFdURk1vdmUoY29uY2F0ZW5hdGVkSW5pdERhdGFDaHVua3MpXSB7CiAgICAgICAgICAgICBp
ZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1h
Yy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJl
c2hNb25pdG9yTWFjLmNwcAppbmRleCBlMzFhMWE5ZDkwZDUyNjc4OGUzNTc2ZWQ1YmQ4NjY4ZTE4
NzM0ZGIyLi41YTAwMmM5YTY3ZTY0OWRlOGQ5YmQ1ZTk4ZmM5MGFiODE1MjBiNmE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hN
b25pdG9yTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcApAQCAtMzYsNyArMzYsNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6RGlzcGxheVJlZnJlc2hNb25p
dG9yTWFjKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKICAgICA6IERpc3BsYXlSZWZyZXNo
TW9uaXRvcihkaXNwbGF5SUQpCi0gICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCiAgICAgLCBtX2Rp
c3BsYXlMaW5rKG51bGxwdHIpCiB7CiB9CkBAIC05Miw4ICs5MSw3IEBAIHZvaWQgRGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5TGlua0ZpcmVkKCkKIAogICAgIHNldElzUHJldmlvdXNG
cmFtZURvbmUoZmFsc2UpOwogCi0gICAgLy8gRklYTUU6IElzIGl0IHJlYWxseSBva2F5IHRvIGNy
ZWF0ZSBhIHdlYWtQdHIgb24gYSBiYWNrZ3JvdW5kIHRocmVhZCBhbmQgdGhlbiB1c2UgaXQgb24g
dGhlIG1haW4gdGhyZWFkPwotICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1B0ciA9
IG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpXSB7CisgICAgUnVuTG9vcDo6bWFpbigpLmRp
c3BhdGNoKFt3ZWFrUHRyID0gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKV0gewog
ICAgICAgICBpZiAoYXV0byogbW9uaXRvciA9IHdlYWtQdHIuZ2V0KCkpCiAgICAgICAgICAgICBo
YW5kbGVEaXNwbGF5UmVmcmVzaGVkTm90aWZpY2F0aW9uT25NYWluVGhyZWFkKG1vbml0b3IpOwog
ICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNw
cAppbmRleCAyMzMwNzYwZjQyZTJiYzUxNjEyYWRhMzhhN2EzZTM3NGM1M2U3Nzg0Li44MWZmNTRj
OTM3NGI5NWZkZmZkMjg5NTYwZGQyM2UyOTQ2YWI0NjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcApAQCAtOTcsNyArOTcsNiBAQCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRh
dGlvbihNZWRpYVBsYXllcgogICAgICwgbV92b2x1bWUoMS4wKQogICAgICwgbV9uZXR3b3JrU3Rh
dGUoTWVkaWFQbGF5ZXI6OkVtcHR5KQogICAgICwgbV9yZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpI
YXZlTm90aGluZykKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKICAgICBjcmVhdGVT
ZXNzaW9uKCk7CiAgICAgY3JlYXRlVmlkZW9XaW5kb3coKTsKQEAgLTQ5OCw3ICs0OTcsNyBAQCBi
b29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6ZW5kQ3JlYXRlZE1lZGlhU291
cmNlKElNRkFzeW5jUmVzdWx0KiBhcwogICAgIGhyID0gYXN5bmNSZXN1bHQtPkdldFN0YXR1cygp
OwogICAgIG1fbG9hZGluZ1Byb2dyZXNzID0gU1VDQ0VFREVEKGhyKTsKIAotICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3dlYWtQdHIgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKV0gewor
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtQdHIgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKnRoaXMpXSB7CiAgICAgICAgIGlmICghd2Vha1B0cikKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgd2Vha1B0ci0+b25DcmVhdGVkTWVkaWFTb3VyY2UoKTsKQEAgLTUyNyw3ICs1
MjYsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6ZW5kR2V0RXZl
bnQoSU1GQXN5bmNSZXN1bHQqIGFzeW5jUmVzdWx0KQogCiAgICAgc3dpdGNoIChtZWRpYUV2ZW50
VHlwZSkgewogICAgIGNhc2UgTUVTZXNzaW9uVG9wb2xvZ3lTZXQ6IHsKLSAgICAgICAgY2FsbE9u
TWFpblRocmVhZChbd2Vha1B0ciA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpXSB7
CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtQdHIgPSBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKnRoaXMpXSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtQdHIpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgd2Vha1B0ci0+b25Ub3BvbG9neVNldCgpOwpA
QCAtNTM2LDcgKzUzNSw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9u
OjplbmRHZXRFdmVudChJTUZBc3luY1Jlc3VsdCogYXN5bmNSZXN1bHQpCiAgICAgfQogCiAgICAg
Y2FzZSBNRUJ1ZmZlcmluZ1N0YXJ0ZWQ6IHsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vh
a1B0ciA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpXSB7CisgICAgICAgIGNhbGxP
bk1haW5UaHJlYWQoW3dlYWtQdHIgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRo
aXMpXSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtQdHIpCiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgd2Vha1B0ci0+b25CdWZmZXJpbmdTdGFydGVkKCk7CkBAIC01NDUsNyAr
NTQ0LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OmVuZEdldEV2
ZW50KElNRkFzeW5jUmVzdWx0KiBhc3luY1Jlc3VsdCkKICAgICB9CiAKICAgICBjYXNlIE1FQnVm
ZmVyaW5nU3RvcHBlZDogewotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrUHRyID0gbV93
ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCldIHsKKyAgICAgICAgY2FsbE9uTWFpblRocmVh
ZChbd2Vha1B0ciA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyldIHsKICAg
ICAgICAgICAgIGlmICghd2Vha1B0cikKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICB3ZWFrUHRyLT5vbkJ1ZmZlcmluZ1N0b3BwZWQoKTsKQEAgLTU1NCw3ICs1NTMsNyBAQCBi
b29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6ZW5kR2V0RXZlbnQoSU1GQXN5
bmNSZXN1bHQqIGFzeW5jUmVzdWx0KQogICAgIH0KIAogICAgIGNhc2UgTUVTZXNzaW9uRW5kZWQ6
IHsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1B0ciA9IG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigpXSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtQdHIgPSBt
X3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpXSB7CiAgICAgICAgICAgICBpZiAo
IXdlYWtQdHIpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgd2Vha1B0ci0+
b25TZXNzaW9uRW5kZWQoKTsKQEAgLTE3MDgsNyArMTcwNyw3IEBAIEhSRVNVTFQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjpDdXN0b21WaWRlb1ByZXNlbnRlcjo6cHJvY2Vzc0lu
cHV0Tm90CiAgICAgCiAgICAgLy8gSW52YWxpZGF0ZSB0aGUgdmlkZW8gYXJlYQogICAgIGlmICht
X21lZGlhUGxheWVyKSB7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtQdHIgPSBtX21l
ZGlhUGxheWVyLT5tX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKV0geworICAgICAgICBj
YWxsT25NYWluVGhyZWFkKFt3ZWFrUHRyID0gbV9tZWRpYVBsYXllci0+bV93ZWFrUHRyRmFjdG9y
eS5jcmVhdGVXZWFrUHRyKCptX21lZGlhUGxheWVyKV0gewogICAgICAgICAgICAgaWYgKHdlYWtQ
dHIpCiAgICAgICAgICAgICAgICAgd2Vha1B0ci0+aW52YWxpZGF0ZUZyYW1lVmlldygpOwogICAg
ICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9SZW1vdGVD
b21tYW5kTGlzdGVuZXJJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9SZW1vdGVD
b21tYW5kTGlzdGVuZXJJT1MuaAppbmRleCBmYzAyZWU1OWQ5YWNhNjk2MjU3YzVmNGYzM2ZmOGNl
MTcxNDZjZmExLi5iZTE1OTRlYmRiNGI3MGM3YzgzNWNjNTA4YjkxMGViODMxZmRhNDQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVy
SU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0
ZW5lcklPUy5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SZW1vdGVD
b21tYW5kTGlzdGVuZXJJT1MoKTsKIAogcHJvdGVjdGVkOgotICAgIFdlYWtQdHI8UmVtb3RlQ29t
bWFuZExpc3RlbmVySU9TPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9y
eS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklP
Uz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0
cigqdGhpcyk7IH0KICAgICB2b2lkIHVwZGF0ZVN1cHBvcnRlZENvbW1hbmRzKCkgb3ZlcnJpZGU7
CiAKICAgICBXZWFrUHRyRmFjdG9yeTxSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1M+IG1fd2Vha1B0
ckZhY3Rvcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUmVtb3Rl
Q29tbWFuZExpc3RlbmVySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1JlbW90
ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbQppbmRleCA0MWY5ZGI2ODFiM2ZmMWUzNzI2OGEyZDNmOTk1
NWJkNWU3YWUzNmQ1Li5lNGE2OWM0YWNiZGE4NGI5ODM5MzYwZGU2ODU4NGNjNDU3OWM4ODg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3Rl
bmVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9SZW1vdGVDb21tYW5k
TGlzdGVuZXJJT1MubW0KQEAgLTQ3LDcgKzQ3LDYgQEAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUNv
bW1hbmRMaXN0ZW5lcj4gUmVtb3RlQ29tbWFuZExpc3RlbmVyOjpjcmVhdGUoUmVtb3RlQ29tbWEK
IAogUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MoUmVt
b3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50JiBjbGllbnQpCiAgICAgOiBSZW1vdGVDb21tYW5kTGlz
dGVuZXIoY2xpZW50KQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogICAgIE1QUmVt
b3RlQ29tbWFuZENlbnRlciAqY2VudGVyID0gW2dldE1QUmVtb3RlQ29tbWFuZENlbnRlckNsYXNz
KCkgc2hhcmVkQ29tbWFuZENlbnRlcl07CiAgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQ
dHIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SZW1vdGVDb21t
YW5kTGlzdGVuZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SZW1vdGVDb21t
YW5kTGlzdGVuZXJNYWMuaAppbmRleCBkYjY5ZDc2NjJlZjc0YWViZDAzZTc4YWI4OWE4MzM1ZjI1
ZTgzMzFiLi5iNzgxZTZhZDRhMWMyZjg0ZTk0MTZjNWU0YjE2MzFkZGYzYWMyNTZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUmVtb3RlQ29tbWFuZExpc3RlbmVyTWFj
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1JlbW90ZUNvbW1hbmRMaXN0ZW5l
ck1hYy5oCkBAIC0zOSwxMSArMzksMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflJlbW90ZUNv
bW1hbmRMaXN0ZW5lck1hYygpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgV2Vha1B0cjxSZW1vdGVDb21t
YW5kTGlzdGVuZXJNYWM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFj
PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCp0aGlzKTsgfQogCiAgICAgdm9pZCB1cGRhdGVTdXBwb3J0ZWRDb21tYW5kcygpIG92ZXJyaWRl
OwogCi0gICAgV2Vha1B0ckZhY3Rvcnk8UmVtb3RlQ29tbWFuZExpc3RlbmVyTWFjPiBtX3dlYWtQ
dHJGYWN0b3J5IHsgdGhpcyB9OworICAgIFdlYWtQdHJGYWN0b3J5PFJlbW90ZUNvbW1hbmRMaXN0
ZW5lck1hYz4gbV93ZWFrUHRyRmFjdG9yeTsKICAgICB2b2lkKiBtX2NvbW1hbmRIYW5kbGVyIHsg
bnVsbHB0ciB9OwogfTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCmluZGV4IGIyNGU2NGUxMTVm
Nzc1N2UwMDFiN2RlODlhOWUzM2M2ODg3ZTJlYWYuLjcxMTlkYmM4NDMyOTExOTE0ZDRhODJiZWI0
MTU1MzBkMGY0OGFlN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcApAQCAtNTksOCArNTksNyBAQCBS
ZWY8TWVkaWFTdHJlYW1Qcml2YXRlPiBNZWRpYVN0cmVhbVByaXZhdGU6OmNyZWF0ZShjb25zdCBW
ZWN0b3I8UmVmPFJlYWx0aW1lTWVkaQogfQogCiBNZWRpYVN0cmVhbVByaXZhdGU6Ok1lZGlhU3Ry
ZWFtUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciYgdHJhY2tzLCBT
dHJpbmcmJiBpZCkKLSAgICA6IG1fd2Vha1B0ckZhY3RvcnkodGhpcykKLSAgICAsIG1faWQoV1RG
TW92ZShpZCkpCisgICAgOiBtX2lkKFdURk1vdmUoaWQpKQogewogICAgIEFTU0VSVCghbV9pZC5p
c0VtcHR5KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCmluZGV4IDIxMmRmOTAzMTA4MzBhNTBlYzAwMjA4
MGIyN2RkMjEyNDQyNjFmMGEuLjlmMWFiNTJiNWM2ZGIyODk5ZGJmNmFjNzk5Nzg3ODkxMDYyNDlj
MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtUHJpdmF0ZS5oCkBAIC0xMDcsNyArMTA3LDcgQEAgcHVibGljOgogCiAgICAg
RmxvYXRTaXplIGludHJpbnNpY1NpemUoKSBjb25zdDsKIAotICAgIFdlYWtQdHI8TWVkaWFTdHJl
YW1Qcml2YXRlPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVh
dGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3JlYXRlV2Vh
a1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0K
IAogICAgIHZvaWQgbW9uaXRvck9yaWVudGF0aW9uKE9yaWVudGF0aW9uTm90aWZpZXImKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlLmNwcAppbmRleCAxYjc1MDI1MTc5YjEwOTFkMGFjODQ5N2QxMGYwMGZh
OTdiOTIxNWQ0Li42YzAzNzYyYWVhY2RhZTEzY2YwYTFlOTE3MTIzYWZjZGUyNjExN2IzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlLmNwcApAQCAtNDcsOCArNDcsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBSZWFsdGltZU1lZGlhU291cmNlOjpSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IFN0cmlu
ZyYgaWQsIFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lKQotICAgIDogbV93ZWFrUHRyRmFj
dG9yeSh0aGlzKQotICAgICwgbV9pZChpZCkKKyAgICA6IG1faWQoaWQpCiAgICAgLCBtX3R5cGUo
dHlwZSkKICAgICAsIG1fbmFtZShuYW1lKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDFmMDg3
ZjY4YjRlYzgzMzU5ZDAwNTg0MGFhZGJhYzQzNDA3OWY0YWIuLjg0NmZiNzI0ODdlMjdmYTMzYTg2
OTNlYjNjY2RlZGY1ZTJiYzM0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTI0MCw3ICsyNDAs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBs
ZSYpOwogICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNv
bnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNp
emVfdCk7CiAKLSAgICBXZWFrUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZVdlYWtQdHIo
KSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0
ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogcHJpdmF0ZToKICAgICB2aXJ0dWFs
IHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9pbnQuY3BwCmluZGV4IDM3NWNlN2RmZGJjZjYxYmUw
ODIzOTU0MjgwNjNmNjA3ZDg0MzEwOGUuLjBlOWI0MWU1YzExOTVjNmUzZWMxMzcwNzVlYTRmZmE2
Njg2YzdhYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01l
ZGlhRW5kcG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01l
ZGlhRW5kcG9pbnQuY3BwCkBAIC01Nyw3ICs1Nyw2IEBAIE1vY2tNZWRpYUVuZHBvaW50OjpNb2Nr
TWVkaWFFbmRwb2ludChNZWRpYUVuZHBvaW50Q2xpZW50JiBjbGllbnQpCiAgICAgLCBtX2ljZUNh
bmRpZGF0ZVRpbWVyKCp0aGlzLCAmTW9ja01lZGlhRW5kcG9pbnQ6OmljZUNhbmRpZGF0ZVRpbWVy
RmlyZWQpCiAgICAgLCBtX2ljZVRyYW5zcG9ydFRpbWVyKCp0aGlzLCAmTW9ja01lZGlhRW5kcG9p
bnQ6OmljZVRyYW5zcG9ydFRpbWVyRmlyZWQpCiAgICAgLCBtX3VubXV0ZVRpbWVyKCp0aGlzLCAm
TW9ja01lZGlhRW5kcG9pbnQ6OnVubXV0ZVRpbWVyRmlyZWQpCi0gICAgLCBtX3dlYWtQdHJGYWN0
b3J5KHRoaXMpCiB7CiB9CiAKQEAgLTczLDcgKzcyLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFJUQ0Rh
dGFDaGFubmVsSGFuZGxlcj4gTW9ja01lZGlhRW5kcG9pbnQ6OmNyZWF0ZURhdGFDaGFubmVsSGFu
ZGwKIAogdm9pZCBNb2NrTWVkaWFFbmRwb2ludDo6Z2VuZXJhdGVEdGxzSW5mbygpCiB7Ci0gICAg
YXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOworICAgIGF1
dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOwogCiAg
ICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXNdIHsKICAgICAgICAgaWYgKHdlYWtUaGlzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU3Bh
bm5lclBsYWNlaG9sZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0
aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlci5jcHAKaW5kZXggZWY3M2Q1N2FiNTVhMzZhNzUxMDQw
ZTE0ZDA3MjZlNjMyZjUyYTcwZS4uOGZiMGQ0MDk4NGVmMDliMjk2MjRhYWE3MjlhMzBjYzFkMTQ4
MjQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29s
dW1uU3Bhbm5lclBsYWNlaG9sZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIuY3BwCkBAIC00Nyw3ICs0Nyw2IEBA
IFJlbmRlck11bHRpQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyOjpSZW5kZXJNdWx0aUNvbHVtblNw
YW5uZXJQbGFjZWhvbGRlcihSZW5kZXJNCiAgICAgOiBSZW5kZXJCb3goZmxvd1RocmVhZC0+ZG9j
dW1lbnQoKSwgV1RGTW92ZShzdHlsZSksIFJlbmRlckJveE1vZGVsT2JqZWN0RmxhZykKICAgICAs
IG1fc3Bhbm5lcigmc3Bhbm5lcikKICAgICAsIG1fZmxvd1RocmVhZChmbG93VGhyZWFkKQotICAg
ICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRl
ci5oCmluZGV4IDAzNDExZDk0NzEyY2NiMmJlOGQ4ZjQ3MTA4YzEwYTBhNGQzNjVhYjcuLmIxNTAz
OTAxMmMwNDQ3OGUwYzFhOGU4NTNiZTMwMjUyNWM1NDI0MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFjZWhvbGRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNwYW5uZXJQbGFj
ZWhvbGRlci5oCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKIAogICAgIFJlbmRlckJveCogc3Bh
bm5lcigpIGNvbnN0IHsgcmV0dXJuIG1fc3Bhbm5lcjsgfQogICAgIFJlbmRlck11bHRpQ29sdW1u
Rmxvd1RocmVhZCogZmxvd1RocmVhZCgpIGNvbnN0IHsgcmV0dXJuIG1fZmxvd1RocmVhZDsgfQot
ICAgIFdlYWtQdHI8UmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXI+IGNyZWF0ZVdl
YWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAg
IFdlYWtQdHI8UmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXI+IGNyZWF0ZVdlYWtQ
dHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAK
IHByaXZhdGU6CiAgICAgUmVuZGVyTXVsdGlDb2x1bW5TcGFubmVyUGxhY2Vob2xkZXIoUmVuZGVy
TXVsdGlDb2x1bW5GbG93VGhyZWFkKiwgUmVuZGVyQm94JiBzcGFubmVyLCBSZW5kZXJTdHlsZSYm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCAyYWIxODg5NTdh
OGVmMGQ5NzFkODM0Mzg1YTc2YWVlYTJmZmM1ZTY1Li40NzUwNjA4ZWZhZWFjNjI2ZDNmNWRiZDI0
MDFiY2E4NDRhZGVkOTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
CkBAIC0xMjEsNyArMTIxLDYgQEAgcHJpdmF0ZToKIFJlbmRlclZpZXc6OlJlbmRlclZpZXcoRG9j
dW1lbnQmIGRvY3VtZW50LCBSZW5kZXJTdHlsZSYmIHN0eWxlKQogICAgIDogUmVuZGVyQmxvY2tG
bG93KGRvY3VtZW50LCBXVEZNb3ZlKHN0eWxlKSkKICAgICAsIG1fZnJhbWVWaWV3KCpkb2N1bWVu
dC52aWV3KCkpCi0gICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCiAgICAgLCBtX2xhenlSZXBhaW50
VGltZXIoKnRoaXMsICZSZW5kZXJWaWV3OjpsYXp5UmVwYWludFRpbWVyRmlyZWQpCiAjaWYgRU5B
QkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgLCBtX3NlbGVjdGlvblJlY3RHYXRoZXJlcigqdGhp
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCmluZGV4IGFhNGY2MmI5MTFiOWE0
M2Q0ZTBjODJkNjljOTMwY2Q2NzNhMzRhYzIuLjMwMjIzMDc0NmIxZDdmM2RiMzc4OWZkOGJkNzIw
Y2RmMjZkNWIzZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJW
aWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaApAQCAtMjMz
LDcgKzIzMyw3IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBtX3dhc0FjY3VtdWxhdGluZ1JlcGFp
bnRSZWdpb247CiAgICAgfTsKIAotICAgIFdlYWtQdHI8UmVuZGVyVmlldz4gY3JlYXRlV2Vha1B0
cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0
cjxSZW5kZXJWaWV3PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVh
dGVXZWFrUHRyKCp0aGlzKTsgfQogCiAgICAgdm9pZCBzY2hlZHVsZUxhenlSZXBhaW50KFJlbmRl
ckJveCYpOwogICAgIHZvaWQgdW5zY2hlZHVsZUxhenlSZXBhaW50KFJlbmRlckJveCYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAppbmRleCA0Y2U3MmNlNmRhYTkx
Mjc3NjRkOWY4OWQ0MGQ0NDQwNmJhYmY4NTY2Li40YjRkNDQ0NDMyYWFmMWYwNWE0MGE5ZjA2N2Q5
ZTQyOTBhZjg2NDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
V2lkZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNw
cApAQCAtODEsNyArODEsNiBAQCBzdGF0aWMgdm9pZCBtb3ZlV2lkZ2V0VG9QYXJlbnRTb29uKFdp
ZGdldCYgY2hpbGQsIEZyYW1lVmlldyogcGFyZW50KQogCiBSZW5kZXJXaWRnZXQ6OlJlbmRlcldp
ZGdldChIVE1MRnJhbWVPd25lckVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUp
CiAgICAgOiBSZW5kZXJSZXBsYWNlZChlbGVtZW50LCBXVEZNb3ZlKHN0eWxlKSkKLSAgICAsIG1f
d2Vha1B0ckZhY3RvcnkodGhpcykKIHsKICAgICBzZXRJbmxpbmUoZmFsc2UpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oCmluZGV4IGI3YjdjN2IxMmUxODBkZTE4N2Q1
YWU3YjMyNzU0YmRhMmIxYTgwMTMuLmMxMmY1Nzk2NzQ3MjQ5OTU3MjMxZGFiZjA2ZGJiZjRlMjc0
OGJjMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKQEAgLTcxLDcg
KzcxLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCByZXF1aXJlc0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmcoKSBjb25zdDsKIAotICAgIFdlYWtQdHI8UmVuZGVyV2lkZ2V0PiBjcmVhdGVXZWFrUHRyKCkg
eyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBXZWFrUHRy
PFJlbmRlcldpZGdldD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogICAgIHZvaWQgcmVmKCkgeyArK21fcmVmQ291bnQ7
IH0KICAgICB2b2lkIGRlcmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUm9vdElubGluZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGlu
ZUJveC5jcHAKaW5kZXggMzgxODlhNzQxNGE5NTJjNTAxNDcwZGZjMjljMjVmNTdmZmIzMDNjNC4u
NjMwNjE5MmQzOGIzZDE1NWNmMDMxNjEwZWM0YzAzNTcxNTZlOGRmMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcApAQCAtNjEsOCArNjEsNiBAQCBSb290SW5s
aW5lQm94OjpSb290SW5saW5lQm94KFJlbmRlckJsb2NrRmxvdyYgYmxvY2spCiAgICAgOiBJbmxp
bmVGbG93Qm94KGJsb2NrKQogICAgICwgbV9saW5lQnJlYWtQb3MoMCkKICAgICAsIG1fbGluZUJy
ZWFrT2JqKG51bGxwdHIpCi0gICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0KIHsKICAgICBz
ZXRJc0hvcml6b250YWwoYmxvY2suaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guaAppbmRleCBjMTk1OGYzODc5ZmUxMjIw
OWNjMjA2MjZiOWE3YjFmNzIwY2YzNTc5Li4xMTIyN2M2NTU1YzAyYTJjMzA0YWI0YWMzMmZlZmU3
NzRmOTc3ZGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGlu
ZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmgKQEAg
LTM5LDcgKzM5LDcgQEAgY2xhc3MgUm9vdElubGluZUJveCA6IHB1YmxpYyBJbmxpbmVGbG93Qm94
IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSb290SW5saW5lQm94KFJlbmRlckJsb2NrRmxvdyYp
OwogICAgIHZpcnR1YWwgflJvb3RJbmxpbmVCb3goKTsKLSAgICBXZWFrUHRyPFJvb3RJbmxpbmVC
b3g+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKTsgfQorICAgIFdlYWtQdHI8Um9vdElubGluZUJveD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0
dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogICAgIFJlbmRl
ckJsb2NrRmxvdyYgYmxvY2tGbG93KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVs
ZW1lbnQuY3BwCmluZGV4IGUyMjMwZjQxMmRkODEzNWJmMjU3NjE1YmViOGVlNDg0NzdmZGUwNGUu
LjQwNDIzMTdjYzYxZmRhNzk1NGMwZjE0NGNhM2Q2MzgxZWYzYzk5NmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhFbGVtZW50LmNwcApAQCAtODEsNyArODEsNiBAQCBFTkRfUkVHSVNURVJfQU5J
TUFURURfUFJPUEVSVElFUwogaW5saW5lIFNWR1BhdGhFbGVtZW50OjpTVkdQYXRoRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBT
VkdHcmFwaGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX3BhdGhTZWdMaXN0
KFBhdGhTZWdVbmFsdGVyZWRSb2xlKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogICAg
ICwgbV9pc0FuaW1WYWxPYnNlcnZlZChmYWxzZSkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShT
VkdOYW1lczo6cGF0aFRhZykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAppbmRleCAz
ZjQ3MTA1YjRkMGNiMzNlY2QwZWIwYWVmY2IxMmYzYzM3Zjk1ZDM5Li40ODI0NzgyZmMzZTg3Y2Nk
OWM2Yjg0ZjVkZjdiMmU1YWY0M2FhNzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQu
aApAQCAtOTcsNyArOTcsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzQW5pbVZhbE9ic2VydmVk
KCkgY29uc3QgeyByZXR1cm4gbV9pc0FuaW1WYWxPYnNlcnZlZDsgfQogCi0gICAgV2Vha1B0cjxT
VkdQYXRoRWxlbWVudD4gY3JlYXRlV2Vha1B0cigpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha1B0ckZh
Y3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxTVkdQYXRoRWxlbWVudD4gY3Jl
YXRlV2Vha1B0cigpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0
cigqY29uc3RfY2FzdDxTVkdQYXRoRWxlbWVudCo+KHRoaXMpKTsgfQogCiAgICAgdm9pZCBhbmlt
YXRlZFByb3BlcnR5V2lsbEJlRGVsZXRlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmgKaW5kZXggMDE4ODAzMWNlMzhhYzFlZjQyZDdm
ODYxNWQ3NGZjOGZmZjg4YjExZi4uZTBiZjBkMDgyN2U3M2Y3ZmM4ZmZkMjA5MzA5ZGYwMWUzYzI5
OWExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTWF0cml4
VGVhck9mZi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRl
YXJPZmYuaApAQCAtMzAsNyArMzAsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlRf
VU5VU0VEKHZhbHVlLCAmcGFyZW50LnByb3BlcnR5UmVmZXJlbmNlKCkuc3ZnTWF0cml4KCkgPT0g
JnZhbHVlKTsKICAgICAgICAgUmVmPFNWR01hdHJpeFRlYXJPZmY+IHJlc3VsdCA9IGFkb3B0UmVm
KCpuZXcgU1ZHTWF0cml4VGVhck9mZihwYXJlbnQpKTsKLSAgICAgICAgcGFyZW50LmFkZENoaWxk
KHJlc3VsdC0+bV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCkpOworICAgICAgICBwYXJlbnQu
YWRkQ2hpbGQocmVzdWx0LT5tX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIocmVzdWx0KSk7CiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCkBAIC00OCw3ICs0OCw2IEBAIHByaXZhdGU6
CiAgICAgU1ZHTWF0cml4VGVhck9mZihTVkdUcmFuc2Zvcm0mIHBhcmVudCkKICAgICAgICAgOiBT
VkdNYXRyaXgobnVsbHB0cikKICAgICAgICAgLCBtX3BhcmVudCgmcGFyZW50KQotICAgICAgICAs
IG1fd2Vha0ZhY3RvcnkodGhpcykKICAgICB7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvTW9ja0NETUZhY3RvcnkuY3BwCmluZGV4IGExYTc5OGQxNzkzMTI0MmI1ZjZlMDdlNzk1Nzg5
MDk0OThiODNhYzQuLmIyZmM2YzE3OThjYmRhMmE2MmY0MTk2N2U1MjRlYTY3ZWE4NThlYjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuY3BwCkBAIC0zOCw3ICszOCw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTW9ja0NETUZhY3Rvcnk6Ok1vY2tDRE1GYWN0b3J5
KCkKICAgICA6IG1fc3VwcG9ydGVkU2Vzc2lvblR5cGVzKHsgTWVkaWFLZXlTZXNzaW9uVHlwZTo6
VGVtcG9yYXJ5LCBNZWRpYUtleVNlc3Npb25UeXBlOjpQZXJzaXN0ZW50VXNhZ2VSZWNvcmQsIE1l
ZGlhS2V5U2Vzc2lvblR5cGU6OlBlcnNpc3RlbnRMaWNlbnNlIH0pCi0gICAgLCBtX3dlYWtQdHJG
YWN0b3J5KHRoaXMpCiB7CiAgICAgQ0RNRmFjdG9yeTo6cmVnaXN0ZXJGYWN0b3J5KCp0aGlzKTsK
IH0KQEAgLTk4LDEyICs5NywxMSBAQCB2b2lkIE1vY2tDRE1GYWN0b3J5OjpzZXRTdXBwb3J0ZWRE
YXRhVHlwZXMoVmVjdG9yPFN0cmluZz4mJiB0eXBlcykKIAogc3RkOjp1bmlxdWVfcHRyPENETVBy
aXZhdGU+IE1vY2tDRE1GYWN0b3J5OjpjcmVhdGVDRE0oY29uc3QgU3RyaW5nJikKIHsKLSAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNb2NrQ0RNPihtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TW9ja0NETT4obV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKSk7CiB9CiAKIE1vY2tDRE06Ok1vY2tDRE0oV2Vh
a1B0cjxNb2NrQ0RNRmFjdG9yeT4gZmFjdG9yeSkKICAgICA6IG1fZmFjdG9yeShXVEZNb3ZlKGZh
Y3RvcnkpKQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogfQogCkBAIC0xNjcsNyAr
MTY1LDcgQEAgUmVmUHRyPENETUluc3RhbmNlPiBNb2NrQ0RNOjpjcmVhdGVJbnN0YW5jZSgpCiB7
CiAgICAgaWYgKG1fZmFjdG9yeSAmJiAhbV9mYWN0b3J5LT5jYW5DcmVhdGVJbnN0YW5jZXMoKSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNb2NrQ0RN
SW5zdGFuY2UobV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCkpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IE1vY2tDRE1JbnN0YW5jZShtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKnRoaXMpKSk7CiB9CiAKIHZvaWQgTW9ja0NETTo6bG9hZEFuZEluaXRpYWxpemUoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5
bWVudENvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDEwZTE0ZjcwZWQ2N2YxZGNiYWI5MTc3Y2Nh
M2RjMWM1NzcyNDliMzcuLjk2MWJiZDM3YzM3ZmI2MDJlNTg1ZDYzMWIyNDRmZWE4Y2IwZDliYjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRD
b29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBh
eS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTQwLDcgKzQwLDYgQEAgc3RhdGlj
IFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5KiBhY3RpdmVQYXltZW50Q29vcmRpbmF0b3JQcm94
eTsKIAogV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OldlYlBheW1lbnRDb29yZGluYXRvclBy
b3h5KFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5KQogICAgIDogbV93ZWJQYWdlUHJveHkod2Vi
UGFnZVByb3h5KQotICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogICAgICwgbV9zdGF0ZShT
dGF0ZTo6SWRsZSkKICAgICAsIG1fbWVyY2hhbnRWYWxpZGF0aW9uU3RhdGUoTWVyY2hhbnRWYWxp
ZGF0aW9uU3RhdGU6OklkbGUpCiB7CkBAIC02NSw3ICs2NCw3IEBAIHZvaWQgV2ViUGF5bWVudENv
b3JkaW5hdG9yUHJveHk6OmNhbk1ha2VQYXltZW50cyhib29sJiByZXBseSkKIAogdm9pZCBXZWJQ
YXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQoY29u
c3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG9tYWluTmFtZSwg
dWludDY0X3QgcmVxdWVzdElEKQogewotICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0
b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9y
eS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsKICAgICBwbGF0Zm9ybUNhbk1ha2VQYXltZW50c1dpdGhB
Y3RpdmVDYXJkKG1lcmNoYW50SWRlbnRpZmllciwgZG9tYWluTmFtZSwgW3dlYWtUaGlzLCByZXF1
ZXN0SURdKGJvb2wgY2FuTWFrZVBheW1lbnRzKSB7CiAgICAgICAgIGF1dG8gcGF5bWVudENvb3Jk
aW5hdG9yUHJveHkgPSB3ZWFrVGhpcy5nZXQoKTsKICAgICAgICAgaWYgKCFwYXltZW50Q29vcmRp
bmF0b3JQcm94eSkKQEAgLTc3LDcgKzc2LDcgQEAgdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQ
cm94eTo6Y2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQoY29uc3QgU3RyaW5nJiBtZXIKIAog
dm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6b3BlblBheW1lbnRTZXR1cChjb25zdCBT
dHJpbmcmIG1lcmNoYW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCB1aW50
NjRfdCByZXF1ZXN0SUQpCiB7Ci0gICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigpOworICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKnRoaXMpOwogICAgIHBsYXRmb3JtT3BlblBheW1lbnRTZXR1cChtZXJjaGFu
dElkZW50aWZpZXIsIGRvbWFpbk5hbWUsIFt3ZWFrVGhpcywgcmVxdWVzdElEXShib29sIHJlc3Vs
dCkgewogICAgICAgICBhdXRvIHBheW1lbnRDb29yZGluYXRvclByb3h5ID0gd2Vha1RoaXMuZ2V0
KCk7CiAgICAgICAgIGlmICghcGF5bWVudENvb3JkaW5hdG9yUHJveHkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9tYWMvV2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsZVBheS9tYWMvV2ViUGF5
bWVudENvb3JkaW5hdG9yUHJveHlNYWMubW0KaW5kZXggM2U1MDY5YTFkNTQ1MGM5MWRlMTk3OWI1
YzdkYzE0OTBlM2UxNjliYS4uYTEyZWM0NjczNDljYzFhMDZjOGFhMmM2ZGNlZjFlNWJlMjZlNmNh
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXBwbGVQYXkvbWFjL1dlYlBh
eW1lbnRDb29yZGluYXRvclByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FwcGxlUGF5L21hYy9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eU1hYy5tbQpAQCAtNDYsNyAr
NDYsNyBAQCB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybVNob3dQYXlt
ZW50VUkoY29uc3QgV2ViQ29yZTo6VVJMJiBvcmlnaQogICAgIGF1dG8gcGF5bWVudFJlcXVlc3Qg
PSB0b1BLUGF5bWVudFJlcXVlc3QobV93ZWJQYWdlUHJveHksIG9yaWdpbmF0aW5nVVJMLCBsaW5r
SWNvblVSTFN0cmluZ3MsIHJlcXVlc3QpOwogCiAgICAgYXV0byBzaG93UGF5bWVudFVJUmVxdWVz
dFNlZWQgPSBtX3Nob3dQYXltZW50VUlSZXF1ZXN0U2VlZDsKLSAgICBhdXRvIHdlYWtUaGlzID0g
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgYXV0byB3ZWFrVGhpcyA9IG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7CiAgICAgW2dldFBLUGF5bWVudEF1
dGhvcml6YXRpb25WaWV3Q29udHJvbGxlckNsYXNzKCkgcmVxdWVzdFZpZXdDb250cm9sbGVyV2l0
aFBheW1lbnRSZXF1ZXN0OnBheW1lbnRSZXF1ZXN0LmdldCgpIGNvbXBsZXRpb246QmxvY2tQdHI8
dm9pZCAoUEtQYXltZW50QXV0aG9yaXphdGlvblZpZXdDb250cm9sbGVyICosIE5TRXJyb3IgKik+
Ojpmcm9tQ2FsbGFibGUoW3BheW1lbnRSZXF1ZXN0LCBzaG93UGF5bWVudFVJUmVxdWVzdFNlZWQs
IHdlYWtUaGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XShQS1BheW1lbnRBdXRob3JpemF0aW9uVmlld0NvbnRyb2xsZXIgKnZpZXdDb250cm9sbGVyLCBO
U0Vycm9yICplcnJvcikgewogICAgICAgICBhdXRvIHBheW1lbnRDb29yZGluYXRvclByb3h5ID0g
d2Vha1RoaXMuZ2V0KCk7CiAgICAgICAgIGlmICghcGF5bWVudENvb3JkaW5hdG9yUHJveHkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsaWNhdGlvblN0YXRlVHJhY2tl
ci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FwcGxpY2F0aW9uU3RhdGVUcmFja2VyLm1t
CmluZGV4IDZiMjkzOWFkM2MwZTA2YjVkZDUyMWNlN2E4ODYyZDJiZGI3ZTg1ODcuLmM2NTIzYTM4
YWQ4NjNmOGZiYzUyZTRkMTgyZTBlODdhMGM3Nzk4MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FwcGxpY2F0aW9uU3RhdGVUcmFja2VyLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FwcGxpY2F0aW9uU3RhdGVUcmFja2VyLm1tCkBAIC03OSw3ICs3OSw2IEBA
IEFwcGxpY2F0aW9uU3RhdGVUcmFja2VyOjpBcHBsaWNhdGlvblN0YXRlVHJhY2tlcihVSVZpZXcg
KnZpZXcsIFNFTCBkaWRFbnRlckJhY2tnCiAgICAgLCBtX2RpZEZpbmlzaFNuYXBzaG90dGluZ0Fm
dGVyRW50ZXJpbmdCYWNrZ3JvdW5kU2VsZWN0b3IoZGlkRmluaXNoU25hcHNob3R0aW5nQWZ0ZXJF
bnRlcmluZ0JhY2tncm91bmRTZWxlY3RvcikKICAgICAsIG1fd2lsbEVudGVyRm9yZWdyb3VuZFNl
bGVjdG9yKHdpbGxFbnRlckZvcmVncm91bmRTZWxlY3RvcikKICAgICAsIG1faXNJbkJhY2tncm91
bmQodHJ1ZSkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKICAgICAsIG1fZGlkRW50ZXJC
YWNrZ3JvdW5kT2JzZXJ2ZXIobnVsbHB0cikKICAgICAsIG1fZGlkQ3JlYXRlV2luZG93Q29udGV4
dE9ic2VydmVyKG51bGxwdHIpCiAgICAgLCBtX2RpZEZpbmlzaFNuYXBzaG90dGluZ0FmdGVyRW50
ZXJpbmdCYWNrZ3JvdW5kT2JzZXJ2ZXIobnVsbHB0cikKQEAgLTk0LDcgKzkzLDcgQEAgQXBwbGlj
YXRpb25TdGF0ZVRyYWNrZXI6OkFwcGxpY2F0aW9uU3RhdGVUcmFja2VyKFVJVmlldyAqdmlldywg
U0VMIGRpZEVudGVyQmFja2cKICAgICBBU1NFUlQod2luZG93KTsKIAogICAgIE5TTm90aWZpY2F0
aW9uQ2VudGVyICpub3RpZmljYXRpb25DZW50ZXIgPSBbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVm
YXVsdENlbnRlcl07Ci0gICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRl
V2Vha1B0cigpOworICAgIGF1dG8gd2Vha1RoaXMgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKnRoaXMpOwogICAgIG1fZGlkQ3JlYXRlV2luZG93Q29udGV4dE9ic2VydmVyID0gW25v
dGlmaWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlckZvck5hbWU6QCJfVUlXaW5kb3dEaWRDcmVhdGVX
aW5kb3dDb250ZXh0Tm90aWZpY2F0aW9uIiBvYmplY3Q6d2luZG93IHF1ZXVlOm5pbCB1c2luZ0Js
b2NrOlt3ZWFrVGhpc10oTlNOb3RpZmljYXRpb24gKikgewogICAgICAgICBhdXRvIGFwcGxpY2F0
aW9uU3RhdGVUcmFja2VyID0gd2Vha1RoaXMuZ2V0KCk7CiAgICAgICAgIGlmICghYXBwbGljYXRp
b25TdGF0ZVRyYWNrZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwuaAppbmRleCBiNDM5N2M2NmIzYWYwYjhjMzhiOTkxNzQ2OGQ5ODgyYzI5NjlhM2VmLi40MTZk
Y2MwZTZlOTQ3ODczYWFhZGVlOWJhMTA4MzJhYmMxZjA5MTk0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTU3NCw3ICs1NzQsNyBAQCBwcml2YXRl
OgogI2VuZGlmIC8vIEVOQUJMRShXRUJfUExBWUJBQ0tfQ09OVFJPTFNfTUFOQUdFUikKICNlbmRp
ZiAvLyBIQVZFKFRPVUNIX0JBUikKIAotICAgIFdlYWtQdHI8V2ViVmlld0ltcGw+IGNyZWF0ZVdl
YWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAg
IFdlYWtQdHI8V2ViVmlld0ltcGw+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKICAgICBib29sIHN1cHBvcnRzQXJiaXRy
YXJ5TGF5b3V0TW9kZXMoKSBjb25zdDsKICAgICBmbG9hdCBpbnRyaW5zaWNEZXZpY2VTY2FsZUZh
Y3RvcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbQppbmRleCAwMTU1Y2IxOGIxNTE0MzlhMGYxM2IyM2FhZGFhZDYxNzcxYzZlNTkwLi45Mzg0
NmE4ZDU4Y2JmZGNiM2QzMmI2MWZlYzRlYjdkMWI5NWVkNWRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtMTI3MSw3ICsxMjcxLDYgQEAgV2Vi
Vmlld0ltcGw6OldlYlZpZXdJbXBsKE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0ZT4gKnZpZXcs
IFdLV2ViVmlldyAqb3V0ZXJXZWIKICAgICA6IG1fdmlldyh2aWV3KQogICAgICwgbV9wYWdlQ2xp
ZW50KHN0ZDo6bWFrZV91bmlxdWU8UGFnZUNsaWVudEltcGw+KHZpZXcsIG91dGVyV2ViVmlldykp
CiAgICAgLCBtX3BhZ2UocHJvY2Vzc1Bvb2wuY3JlYXRlV2ViUGFnZSgqbV9wYWdlQ2xpZW50LCBX
VEZNb3ZlKGNvbmZpZ3VyYXRpb24pKSkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKICAg
ICAsIG1fbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKG1fcGFnZS0+cHJlZmVyZW5j
ZXMoKS5wbHVnaW5zRW5hYmxlZCgpKQogICAgICwgbV9pbnRyaW5zaWNDb250ZW50U2l6ZShDR1Np
emVNYWtlKE5TVmlld05vSW5zdHJpbnNpY01ldHJpYywgTlNWaWV3Tm9JbnN0cmluc2ljTWV0cmlj
KSkKICAgICAsIG1fbGF5b3V0U3RyYXRlZ3koW1dLVmlld0xheW91dFN0cmF0ZWd5IGxheW91dFN0
cmF0ZWd5V2l0aFBhZ2U6bV9wYWdlIHZpZXc6dmlldyB2aWV3SW1wbDoqdGhpcyBtb2RlOmtXS0xh
eW91dE1vZGVWaWV3U2l6ZV0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9M
YXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1
bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmNwcAppbmRleCBmMmY3MmFjYzNmMjRiMjk5ZmIwY2U4Yjdm
ODkyY2FkZGJhMTcwYTkwLi4wZmZhOTJkYzhkZDlmMDNiMzI2YWM1ZTEyYmY4ZDgxYmRkZGUxMTA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1
bmNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NM
YXVuY2hlci5jcHAKQEAgLTMzLDcgKzMzLDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIFByb2Nl
c3NMYXVuY2hlcjo6UHJvY2Vzc0xhdW5jaGVyKENsaWVudCogY2xpZW50LCBjb25zdCBMYXVuY2hP
cHRpb25zJiBsYXVuY2hPcHRpb25zKQogICAgIDogbV9jbGllbnQoY2xpZW50KQotICAgICwgbV93
ZWFrUHRyRmFjdG9yeSh0aGlzKQogICAgICwgbV9sYXVuY2hPcHRpb25zKGxhdW5jaE9wdGlvbnMp
CiAgICAgLCBtX3Byb2Nlc3NJZGVudGlmaWVyKDApCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQppbmRl
eCBhMTY2MGI0ZWM5NGFlZjhhYTNmODQ3YjMzMTA4MWFiNDgxM2YwNGIyLi42NDg5ZjViMzBjODg2
MzJiZDJiNGE4YjRhMWI2NGM4MmY5NGMxOGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KQEAgLTE4
Niw3ICsxODYsNyBAQCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAKICAg
ICB4cGNfZGljdGlvbmFyeV9zZXRfdmFsdWUoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgImV4dHJh
LWluaXRpYWxpemF0aW9uLWRhdGEiLCBleHRyYUluaXRpYWxpemF0aW9uRGF0YS5nZXQoKSk7CiAK
LSAgICBhdXRvIHdlYWtQcm9jZXNzTGF1bmNoZXIgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKTsKKyAgICBhdXRvIHdlYWtQcm9jZXNzTGF1bmNoZXIgPSBtX3dlYWtQdHJGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOwogICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5k
bGVyKG1feHBjQ29ubmVjdGlvbi5nZXQoKSwgW3dlYWtQcm9jZXNzTGF1bmNoZXIsIGxpc3Rlbmlu
Z1BvcnRdKHhwY19vYmplY3RfdCBldmVudCkgewogICAgICAgICBBU1NFUlQoeHBjX2dldF90eXBl
KGV2ZW50KSA9PSBYUENfVFlQRV9FUlJPUik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1By
b2Nlc3NBc3NlcnRpb24uaAppbmRleCAyMDMyMDAwNjU1NzZmNTgwN2YyY2UxNjE3YWVjOWJkNDll
OWYxNzg1Li40ZDRkYzY2ZjI1NWVhNmZjYzQwY2UzYTNjYmIzNWU0ZDgxMjJmOGNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oCkBAIC02OSw3ICs2OSw3IEBA
IHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1MpICYmICFQTEFURk9STShJ
T1NfU0lNVUxBVE9SKQotICAgIFdlYWtQdHI8UHJvY2Vzc0Fzc2VydGlvbj4gY3JlYXRlV2Vha1B0
cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0
cjxQcm9jZXNzQXNzZXJ0aW9uPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9y
eS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogICAgIHZvaWQgbWFya0FzSW52YWxpZGF0ZWQoKTsK
IAogICAgIFJldGFpblB0cjxCS1NQcm9jZXNzQXNzZXJ0aW9uPiBtX2Fzc2VydGlvbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDEyNjU3ODFkOTM1MDcxNzdj
MzkwOTJmMzkxYzRkNzBlMjU3OWVhZTMuLmYzYjUyZmU1ZGU1ZTBjNTMyZWNiNjYzYWYyZjcxYzli
NzFmYzU0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
MzY1LDcgKzM2NSw2IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHBh
Z2VDbGllbnQsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgdWluCiAjZW5kaWYKICAgICAsIG1f
cGFnZUxvYWRTdGF0ZSgqdGhpcykKICAgICAsIG1fY29uZmlndXJhdGlvblByZWZlcmVuY2VWYWx1
ZXMobV9jb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlVmFsdWVzKCkpCi0gICAgLCBtX3dlYWtQdHJG
YWN0b3J5KHRoaXMpCiB7CiAgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmFkZE9ic2Vy
dmVyKG1fdmlzaXRlZExpbmtTdG9yZSk7CiAgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2Vy
LmFkZE9ic2VydmVyKG1fd2Vic2l0ZURhdGFTdG9yZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCmluZGV4IGI1NjRjZGMzNTgzM2ZlNzc1NmMxZWVmM2I3MGRlZDdlODAxZTA2
MmYuLjcxNTI4MjI0MDhmYzk0Nzg0ZGQzZjYzNjZiNjU0MWEwNGFiOWZlMzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMTkwLDcgKzExOTAsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBnYW1lcGFkQWN0aXZpdHkoY29uc3QgVmVjdG9yPEdhbWVwYWREYXRhPiYsIGJv
b2wgc2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJsZSk7CiAjZW5kaWYKICAgICAgICAgCi0gICAgV2Vh
a1B0cjxXZWJQYWdlUHJveHk+IGNyZWF0ZVdlYWtQdHIoKSBjb25zdCB7IHJldHVybiBtX3dlYWtQ
dHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIFdlYWtQdHI8V2ViUGFnZVByb3h5PiBj
cmVhdGVXZWFrUHRyKCkgY29uc3QgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFr
UHRyKCpjb25zdF9jYXN0PFdlYlBhZ2VQcm94eSo+KHRoaXMpKTsgfQogCiAgICAgdm9pZCBpc0xv
YWRpbmdDaGFuZ2VkKCkgeyBhY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OkFjdGl2aXR5
U3RhdGU6OklzTG9hZGluZyk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0
ay9XYXlsYW5kQ29tcG9zaXRvci5jcHAKaW5kZXggNGMzNGU5MDU3YWFhMDRiNDBlZGQ0NDFlNGNm
ZTkyZmM2MTljZmZiZi4uYjZhYjg2NDdmMjVjM2VhNTZjMmRlOTgxZThjY2JlMWJlZWY2MGI4YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3Iu
Y3BwCkBAIC05Nyw3ICs5Nyw2IEBAIFdheWxhbmRDb21wb3NpdG9yOjpCdWZmZXIqIFdheWxhbmRD
b21wb3NpdG9yOjpCdWZmZXI6OmdldE9yQ3JlYXRlKHN0cnVjdCB3bF9yZXNvCiAKIFdheWxhbmRD
b21wb3NpdG9yOjpCdWZmZXI6OkJ1ZmZlcihzdHJ1Y3Qgd2xfcmVzb3VyY2UqIHJlc291cmNlKQog
ICAgIDogbV9yZXNvdXJjZShyZXNvdXJjZSkKLSAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykK
IHsKICAgICB3bF9saXN0X2luaXQoJm1fZGVzdHJveUxpc3RlbmVyLmxpbmspOwogICAgIG1fZGVz
dHJveUxpc3RlbmVyLm5vdGlmeSA9IGRlc3Ryb3lMaXN0ZW5lckNhbGxiYWNrOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3IuaAppbmRleCA5YmJlYjdh
N2NkYmI3ZmIyNGI2NGJiMDRkZmYyY2I3YjUzYzY4NWE2Li5lNWFiYTAzZTE0YzZhYzMyZThiZmRh
OTQxZDU4NTM2OTY0YjkyMTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9n
dGsvV2F5bGFuZENvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsv
V2F5bGFuZENvbXBvc2l0b3IuaApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAgICAgIEVH
TEltYWdlS0hSIGNyZWF0ZUltYWdlKCkgY29uc3Q7CiAgICAgICAgIFdlYkNvcmU6OkludFNpemUg
c2l6ZSgpIGNvbnN0OwogCi0gICAgICAgIFdlYWtQdHI8QnVmZmVyPiBjcmVhdGVXZWFrUHRyKCkg
eyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICAgICAgV2Vh
a1B0cjxCdWZmZXI+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBCdWZmZXIoc3Ry
dWN0IHdsX3Jlc291cmNlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
cm9jZXNzQXNzZXJ0aW9uSU9TLm1tCmluZGV4IGI1Mjk2MDc2ZjQzZTc0ODk0MjIwYTQ0NjNmNmRh
ODlkNzM0OGJiOTYuLjgxMGM2ZjNhODM4MzE3MzFhZDk5YzRhYTVhMjM5ZDM5ZmQ4ZDliN2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9T
Lm1tCkBAIC0xNjEsOCArMTYxLDcgQEAgc3RhdGljIEJLU1Byb2Nlc3NBc3NlcnRpb25GbGFncyBm
bGFnc0ZvclN0YXRlKEFzc2VydGlvblN0YXRlIGFzc2VydGlvblN0YXRlKQogfQogCiBQcm9jZXNz
QXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKHBpZF90IHBpZCwgQXNzZXJ0aW9uU3RhdGUgYXNz
ZXJ0aW9uU3RhdGUsIEZ1bmN0aW9uPHZvaWQoKT4mJiBpbnZhbGlkYXRpb25DYWxsYmFjaykKLSAg
ICA6IG1fd2Vha0ZhY3RvcnkodGhpcykKLSAgICAsIG1faW52YWxpZGF0aW9uQ2FsbGJhY2soV1RG
TW92ZShpbnZhbGlkYXRpb25DYWxsYmFjaykpCisgICAgOiBtX2ludmFsaWRhdGlvbkNhbGxiYWNr
KFdURk1vdmUoaW52YWxpZGF0aW9uQ2FsbGJhY2spKQogICAgICwgbV9hc3NlcnRpb25TdGF0ZShh
c3NlcnRpb25TdGF0ZSkKIHsKICAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaApp
bmRleCA0Mjc1YWUzMTE1YTZkMjUxODRiYzJiZGRkODJkMDRhNTVhOTk5N2JmLi5lNThkZDYxMzA4
ZGM3N2RjMjY5OGRiNjliNzc0YzcxMzU0MjUzNzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJs
aWM6CiAgICAgdWludDY0X3QgbmV4dFRyYW5zYWN0aW9uSUQoKSBjb25zdCB7IHJldHVybiBtX2N1
cnJlbnRUcmFuc2FjdGlvbklEICsgMTsgfQogICAgIHVpbnQ2NF90IGxhc3RDb21taXR0ZWRUcmFu
c2FjdGlvbklEKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50VHJhbnNhY3Rpb25JRDsgfQogCi0g
ICAgV2Vha1B0cjxSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYT4gY3JlYXRlV2Vha1B0cigpIHsg
cmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgV2Vha1B0cjxS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vh
a1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIAogcHJpdmF0ZToKICAgICAvLyBE
cmF3aW5nQXJlYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhLm1tCmluZGV4IGUwZmU0YzEzYWZjN2Y0MWI0NDc1N2I1YmY4MDJkYWExN2FjMjIx
YjIuLjllYmE5YTlkNzhkNWQzYWQ2Y2Y0YTJjZjg2ZDhhOWRhOGM0MTBmOGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KQEAgLTYw
LDcgKzYwLDYgQEAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OlJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhKFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IFcKICAgICAsIG1fcmVtb3RlTGF5ZXJU
cmVlQ29udGV4dChzdGQ6Om1ha2VfdW5pcXVlPFJlbW90ZUxheWVyVHJlZUNvbnRleHQ+KHdlYlBh
Z2UpKQogICAgICwgbV9yb290TGF5ZXIoR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5
ZXJGYWN0b3J5KCksICp0aGlzKSkKICAgICAsIG1fbGF5ZXJGbHVzaFRpbWVyKCp0aGlzLCAmUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKQotICAgICwgbV93ZWFrUHRyRmFj
dG9yeSh0aGlzKQogewogICAgIHdlYlBhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5zZXRGb3Jj
ZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsKICNpZiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
bW0KaW5kZXggM2RkZWJiNWNiZTgxOTcxNGI3ZWFmM2I1OWM3YzkzOGY0ZTNjNTMyYi4uMzQzYzJj
N2ZiNzk1OWM0YTlhYTUxNTIxMThkYzA2Zjg2Yjg3MDE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpA
QCAtMTk1LDcgKzE5NSw2IEBAIEBlbmQKIFdlYkVkaXRvckNsaWVudDo6V2ViRWRpdG9yQ2xpZW50
KFdlYlZpZXcgKndlYlZpZXcpCiAgICAgOiBtX3dlYlZpZXcod2ViVmlldykKICAgICAsIG1fdW5k
b1RhcmdldChhZG9wdE5TKFtbV2ViRWRpdG9yVW5kb1RhcmdldCBhbGxvY10gaW5pdF0pKQotICAg
ICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogfQogCkBAIC0xMjQ3LDcgKzEyNDYsNyBAQCB2
b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENhbmRpZGF0ZXNGb3JTZWxlY3Rpb24oY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgc2VsZQogICAgIG1fcGFyYWdyYXBoQ29udGV4dEZvckNhbmRpZGF0
ZVJlcXVlc3QgPSBwbGFpblRleHQoZnJhbWUtPmVkaXRvcigpLmNvbnRleHRSYW5nZUZvckNhbmRp
ZGF0ZVJlcXVlc3QoKS5nZXQoKSk7CiAKICAgICBOU1RleHRDaGVja2luZ1R5cGVzIGNoZWNraW5n
VHlwZXMgPSBOU1RleHRDaGVja2luZ1R5cGVTcGVsbGluZyB8IE5TVGV4dENoZWNraW5nVHlwZVJl
cGxhY2VtZW50IHwgTlNUZXh0Q2hlY2tpbmdUeXBlQ29ycmVjdGlvbjsKLSAgICBhdXRvIHdlYWtF
ZGl0b3IgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKKyAgICBhdXRvIHdlYWtF
ZGl0b3IgPSBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOwogICAgIG1fbGFz
dENhbmRpZGF0ZVJlcXVlc3RTZXF1ZW5jZU51bWJlciA9IFtbTlNTcGVsbENoZWNrZXIgc2hhcmVk
U3BlbGxDaGVja2VyXSByZXF1ZXN0Q2FuZGlkYXRlc0ZvclNlbGVjdGVkUmFuZ2U6bV9yYW5nZUZv
ckNhbmRpZGF0ZXMgaW5TdHJpbmc6bV9wYXJhZ3JhcGhDb250ZXh0Rm9yQ2FuZGlkYXRlUmVxdWVz
dC5nZXQoKSB0eXBlczpjaGVja2luZ1R5cGVzIG9wdGlvbnM6bmlsIGluU3BlbGxEb2N1bWVudFdp
dGhUYWc6c3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoKSBjb21wbGV0aW9uSGFuZGxlcjpbd2Vha0Vk
aXRvcl0oTlNJbnRlZ2VyIHNlcXVlbmNlTnVtYmVyLCBOU0FycmF5PE5TVGV4dENoZWNraW5nUmVz
dWx0ICo+ICpjYW5kaWRhdGVzKSB7CiAgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIF57CiAgICAgICAgICAgICBpZiAoIXdlYWtFZGl0b3IpCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWViMDJhMzgwZjUx
ZmVlNTkxYWZiMmEyMmEwMmUyM2E3MTMwM2E0My4uNjdmODQxYjJjZDhlOTljMGViN2QyNjk2ZjQx
NTFlNTM2ODM2MjQzMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA5LTIyICBaYWxhbiBCdWp0YXMgIDx6YWxh
bkBhcHBsZS5jb20+CisKKyAgICAgICAgV2Vha1B0ckZhY3Rvcnkgc2hvdWxkIHBvcHVsYXRlIG1f
cmVmIGxhemlseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3NzM3NQorCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV2Vha1B0ci5jcHA6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNy0wOS0yMiAgVGltIEhvcnRvbiA8dGltb3RoeV9ob3J0
b25AYXBwbGUuY29tPiBhbmQgTWljaGFlbCBDYXRhbnphcm8gPG1jYXRhbnphcm9AaWdhbGlhLmNv
bT4KIAogICAgICAgICBSZW1vdmUgYnVpbGQtd2Via2l0J3Mgbm90aW9uIG9mIGZlYXR1cmUgZmxh
Z3MgaGF2aW5nIGEgZGVmYXVsdCB2YWx1ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvV2Vha1B0ci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9X
ZWFrUHRyLmNwcAppbmRleCA3NDVhYWRkMmJkNTJiNzBhOTYzODhmNTA3NGUxM2EzYmI2ZWVhYWI0
Li45YzVhYzU5YTdjOTdkMDEyOTE3ZGRiNzMwZjU1ZDcwMjFjNzU0NGYzIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XZWFrUHRyLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9XZWFrUHRyLmNwcApAQCAtMzMsMTAgKzMzLDEwIEBAIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJIHsKIFRFU1QoV1RGX1dlYWtQdHIsIEJhc2ljKQogewogICAgIGlu
dCBkdW1teSA9IDU7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8aW50PiogZmFjdG9yeSA9IG5ldyBXZWFr
UHRyRmFjdG9yeTxpbnQ+KCZkdW1teSk7Ci0gICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIxID0gZmFj
dG9yeS0+Y3JlYXRlV2Vha1B0cigpOwotICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMiA9IGZhY3Rv
cnktPmNyZWF0ZVdlYWtQdHIoKTsKLSAgICBXZWFrUHRyPGludD4gd2Vha1B0cjMgPSBmYWN0b3J5
LT5jcmVhdGVXZWFrUHRyKCk7CisgICAgV2Vha1B0ckZhY3Rvcnk8aW50PiogZmFjdG9yeSA9IG5l
dyBXZWFrUHRyRmFjdG9yeTxpbnQ+KCk7CisgICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIxID0gZmFj
dG9yeS0+Y3JlYXRlV2Vha1B0cihkdW1teSk7CisgICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIyID0g
ZmFjdG9yeS0+Y3JlYXRlV2Vha1B0cihkdW1teSk7CisgICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIz
ID0gZmFjdG9yeS0+Y3JlYXRlV2Vha1B0cihkdW1teSk7CiAgICAgRVhQRUNUX0VRKHdlYWtQdHIx
LmdldCgpLCAmZHVtbXkpOwogICAgIEVYUEVDVF9FUSh3ZWFrUHRyMi5nZXQoKSwgJmR1bW15KTsK
ICAgICBFWFBFQ1RfRVEod2Vha1B0cjMuZ2V0KCksICZkdW1teSk7CkBAIC02MCw5ICs2MCw5IEBA
IFRFU1QoV1RGX1dlYWtQdHIsIEFzc2lnbm1lbnQpCiAgICAgaW50IGR1bW15ID0gNTsKICAgICBX
ZWFrUHRyPGludD4gd2Vha1B0cjsKICAgICB7Ci0gICAgICAgIFdlYWtQdHJGYWN0b3J5PGludD4g
ZmFjdG9yeSgmZHVtbXkpOworICAgICAgICBXZWFrUHRyRmFjdG9yeTxpbnQ+IGZhY3Rvcnk7CiAg
ICAgICAgIEVYUEVDVF9OVUxMKHdlYWtQdHIuZ2V0KCkpOwotICAgICAgICB3ZWFrUHRyID0gZmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgICAgIHdlYWtQdHIgPSBmYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoZHVtbXkpOwogICAgICAgICBFWFBFQ1RfRVEod2Vha1B0ci5nZXQoKSwgJmR1bW15KTsK
ICAgICB9CiAgICAgRVhQRUNUX05VTEwod2Vha1B0ci5nZXQoKSk7CkBAIC03MiwxMCArNzIsMTAg
QEAgVEVTVChXVEZfV2Vha1B0ciwgTXVsdGlwbGVGYWN0b3JpZXMpCiB7CiAgICAgaW50IGR1bW15
MSA9IDU7CiAgICAgaW50IGR1bW15MiA9IDc7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8aW50PiogZmFj
dG9yeTEgPSBuZXcgV2Vha1B0ckZhY3Rvcnk8aW50PigmZHVtbXkxKTsKLSAgICBXZWFrUHRyRmFj
dG9yeTxpbnQ+KiBmYWN0b3J5MiA9IG5ldyBXZWFrUHRyRmFjdG9yeTxpbnQ+KCZkdW1teTIpOwot
ICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMSA9IGZhY3RvcnkxLT5jcmVhdGVXZWFrUHRyKCk7Ci0g
ICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIyID0gZmFjdG9yeTItPmNyZWF0ZVdlYWtQdHIoKTsKKyAg
ICBXZWFrUHRyRmFjdG9yeTxpbnQ+KiBmYWN0b3J5MSA9IG5ldyBXZWFrUHRyRmFjdG9yeTxpbnQ+
KCk7CisgICAgV2Vha1B0ckZhY3Rvcnk8aW50PiogZmFjdG9yeTIgPSBuZXcgV2Vha1B0ckZhY3Rv
cnk8aW50PigpOworICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMSA9IGZhY3RvcnkxLT5jcmVhdGVX
ZWFrUHRyKGR1bW15MSk7CisgICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIyID0gZmFjdG9yeTItPmNy
ZWF0ZVdlYWtQdHIoZHVtbXkyKTsKICAgICBFWFBFQ1RfRVEod2Vha1B0cjEuZ2V0KCksICZkdW1t
eTEpOwogICAgIEVYUEVDVF9FUSh3ZWFrUHRyMi5nZXQoKSwgJmR1bW15Mik7CiAgICAgRVhQRUNU
X1RSVUUod2Vha1B0cjEgIT0gd2Vha1B0cjIpOwpAQCAtOTEsMTAgKzkxLDEwIEBAIFRFU1QoV1RG
X1dlYWtQdHIsIE11bHRpcGxlRmFjdG9yaWVzKQogVEVTVChXVEZfV2Vha1B0ciwgUmV2b2tlQWxs
KQogewogICAgIGludCBkdW1teSA9IDU7Ci0gICAgV2Vha1B0ckZhY3Rvcnk8aW50PiBmYWN0b3J5
KCZkdW1teSk7Ci0gICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIxID0gZmFjdG9yeS5jcmVhdGVXZWFr
UHRyKCk7Ci0gICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIyID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCk7Ci0gICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHIzID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7
CisgICAgV2Vha1B0ckZhY3Rvcnk8aW50PiBmYWN0b3J5OworICAgIFdlYWtQdHI8aW50PiB3ZWFr
UHRyMSA9IGZhY3RvcnkuY3JlYXRlV2Vha1B0cihkdW1teSk7CisgICAgV2Vha1B0cjxpbnQ+IHdl
YWtQdHIyID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRyKGR1bW15KTsKKyAgICBXZWFrUHRyPGludD4g
d2Vha1B0cjMgPSBmYWN0b3J5LmNyZWF0ZVdlYWtQdHIoZHVtbXkpOwogICAgIEVYUEVDVF9FUSh3
ZWFrUHRyMS5nZXQoKSwgJmR1bW15KTsKICAgICBFWFBFQ1RfRVEod2Vha1B0cjIuZ2V0KCksICZk
dW1teSk7CiAgICAgRVhQRUNUX0VRKHdlYWtQdHIzLmdldCgpLCAmZHVtbXkpOwpAQCAtMTA0LDE1
ICsxMDQsNiBAQCBURVNUKFdURl9XZWFrUHRyLCBSZXZva2VBbGwpCiAgICAgRVhQRUNUX05VTEwo
d2Vha1B0cjMuZ2V0KCkpOwogfQogCi1URVNUKFdURl9XZWFrUHRyLCBOdWxsRmFjdG9yeSkKLXsK
LSAgICBXZWFrUHRyRmFjdG9yeTxpbnQ+IGZhY3RvcnkobnVsbHB0cik7Ci0gICAgV2Vha1B0cjxp
bnQ+IHdlYWtQdHIgPSBmYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKLSAgICBFWFBFQ1RfTlVMTCh3
ZWFrUHRyLmdldCgpKTsKLSAgICBmYWN0b3J5LnJldm9rZUFsbCgpOwotICAgIEVYUEVDVF9OVUxM
KHdlYWtQdHIuZ2V0KCkpOwotfQotCiBzdHJ1Y3QgRm9vIHsKICAgICB2b2lkIGJhcigpIHsgfTsK
IH07CkBAIC0xMjAsOCArMTExLDggQEAgc3RydWN0IEZvbyB7CiBURVNUKFdURl9XZWFrUHRyLCBE
ZXJlZmVyZW5jZSkKIHsKICAgICBGb28gZjsKLSAgICBXZWFrUHRyRmFjdG9yeTxGb28+IGZhY3Rv
cnkoJmYpOwotICAgIFdlYWtQdHI8Rm9vPiB3ZWFrUHRyID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCk7CisgICAgV2Vha1B0ckZhY3Rvcnk8Rm9vPiBmYWN0b3J5OworICAgIFdlYWtQdHI8Rm9vPiB3
ZWFrUHRyID0gZmFjdG9yeS5jcmVhdGVXZWFrUHRyKGYpOwogICAgIHdlYWtQdHItPmJhcigpOwog
fQogCkBAIC0xMzAsMTMgKzEyMSwxMyBAQCBURVNUKFdURl9XZWFrUHRyLCBGb3JnZXQpCiAgICAg
aW50IGR1bW15ID0gNTsKICAgICBpbnQgZHVtbXkyID0gNzsKIAotICAgIFdlYWtQdHJGYWN0b3J5
PGludD4gb3V0ZXJGYWN0b3J5KCZkdW1teTIpOworICAgIFdlYWtQdHJGYWN0b3J5PGludD4gb3V0
ZXJGYWN0b3J5OwogICAgIFdlYWtQdHI8aW50PiB3ZWFrUHRyMSwgd2Vha1B0cjIsIHdlYWtQdHIz
LCB3ZWFrUHRyNDsKICAgICB7Ci0gICAgICAgIFdlYWtQdHJGYWN0b3J5PGludD4gaW5uZXJGYWN0
b3J5KCZkdW1teSk7Ci0gICAgICAgIHdlYWtQdHIxID0gaW5uZXJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKTsKLSAgICAgICAgd2Vha1B0cjIgPSBpbm5lckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOwot
ICAgICAgICB3ZWFrUHRyMyA9IGlubmVyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CisgICAgICAg
IFdlYWtQdHJGYWN0b3J5PGludD4gaW5uZXJGYWN0b3J5OworICAgICAgICB3ZWFrUHRyMSA9IGlu
bmVyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKGR1bW15KTsKKyAgICAgICAgd2Vha1B0cjIgPSBpbm5l
ckZhY3RvcnkuY3JlYXRlV2Vha1B0cihkdW1teSk7CisgICAgICAgIHdlYWtQdHIzID0gaW5uZXJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoZHVtbXkpOwogICAgICAgICBFWFBFQ1RfRVEod2Vha1B0cjEu
Z2V0KCksICZkdW1teSk7CiAgICAgICAgIEVYUEVDVF9FUSh3ZWFrUHRyMi5nZXQoKSwgJmR1bW15
KTsKICAgICAgICAgRVhQRUNUX0VRKHdlYWtQdHIzLmdldCgpLCAmZHVtbXkpOwpAQCAtMTY2LDcg
KzE1Nyw3IEBAIFRFU1QoV1RGX1dlYWtQdHIsIEZvcmdldCkKICAgICAgICAgRVhQRUNUX05VTEwo
d2Vha1B0cjUuZ2V0KCkpOwogICAgICAgICBFWFBFQ1RfRVEod2Vha1B0cjIuZ2V0KCksICZkdW1t
eSk7CiAKLSAgICAgICAgd2Vha1B0cjQgPSBvdXRlckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOwor
ICAgICAgICB3ZWFrUHRyNCA9IG91dGVyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKGR1bW15Mik7CiAg
ICAgICAgIEVYUEVDVF9FUSh3ZWFrUHRyMi5nZXQoKSwgJmR1bW15KTsKICAgICAgICAgRVhQRUNU
X0VRKHdlYWtQdHI0LmdldCgpLCAmZHVtbXkyKTsKICAgICB9CkBAIC0xODQsNyArMTc1LDcgQEAg
VEVTVChXVEZfV2Vha1B0ciwgRm9yZ2V0KQogICAgIEVYUEVDVF9OVUxMKHdlYWtQdHI2LmdldCgp
KTsKICAgICBFWFBFQ1RfRVEod2Vha1B0cjUuZ2V0KCksIHdlYWtQdHI2LmdldCgpKTsKIAotICAg
IFdlYWtQdHI8aW50PiB3ZWFrUHRyNyA9IG91dGVyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7Cisg
ICAgV2Vha1B0cjxpbnQ+IHdlYWtQdHI3ID0gb3V0ZXJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoZHVt
bXkyKTsKICAgICBFWFBFQ1RfRVEod2Vha1B0cjcuZ2V0KCksICZkdW1teTIpOwogICAgIHdlYWtQ
dHI3ID0gbnVsbHB0cjsKICAgICBFWFBFQ1RfTlVMTCh3ZWFrUHRyNy5nZXQoKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>