<?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>161019</bug_id>
          
          <creation_ts>2016-08-19 16:31:06 -0700</creation_ts>
          <short_desc>Merge MessageDecoder and ArgumentDecoder into Decoder</short_desc>
          <delta_ts>2016-08-20 22:30:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>gyuyoung.kim</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1221537</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-19 16:31:06 -0700</bug_when>
    <thetext>Merge MessageDecoder and ArgumentDecoder into Decoder</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221538</commentid>
    <comment_count>1</comment_count>
      <attachid>286496</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-19 16:43:30 -0700</bug_when>
    <thetext>Created attachment 286496
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221550</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-19 17:13:12 -0700</bug_when>
    <thetext>Committed r204668: &lt;http://trac.webkit.org/changeset/204668&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221709</commentid>
    <comment_count>3</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2016-08-20 22:30:51 -0700</bug_when>
    <thetext>I fix a build break caused by this change on EFL port - https://trac.webkit.org/changeset/204690.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286496</attachid>
            <date>2016-08-19 16:43:30 -0700</date>
            <delta_ts>2016-08-19 16:53:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161019-20160819164138.patch</filename>
            <type>text/plain</type>
            <size>389613</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjAwYTdjMTA0MzU3YTY1
ZWM4YzQwYzIzZjdhM2M3YmU4YjM3ODYwZC4uYTY1YmY1NzI3ZTA0ZTczZGMzOTlkY2NhNjkwNzhm
YWZhMWQ3MzY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI4NCBAQAogMjAxNi0wOC0xOSAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCisgICAgICAgIE1lcmdlIE1lc3Nh
Z2VEZWNvZGVyIGFuZCBBcmd1bWVudERlY29kZXIgaW50byBEZWNvZGVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEwMTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9EYXRh
YmFzZVByb2Nlc3MuY3BwOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nl
c3MuaDoKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcDoKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nl
c3NDb25uZWN0aW9uLmg6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DdXN0b21Q
cm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvRG93bmxvYWRzL0Rvd25sb2FkSUQuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycy5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2Rl
ci5oOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHA6CisgICAgICAg
ICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogUGxhdGZvcm0vSVBD
L0FyZ3VtZW50RGVjb2Rlci5jcHA6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50RGVj
b2Rlci5oOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudHMuaDoKKyAgICAgICAgKiBQ
bGF0Zm9ybS9JUEMvQXR0YWNobWVudC5jcHA6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0F0dGFj
aG1lbnQuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHA6CisgICAgICAg
ICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvRGF0
YVJlZmVyZW5jZS5jcHA6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0RhdGFSZWZlcmVuY2UuaDoK
KyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvRGVjb2Rlci5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnREZWNvZGVyLmNwcC4KKyAgICAgICAgKiBQbGF0
Zm9ybS9JUEMvRGVjb2Rlci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL0FyZ3VtZW50RGVjb2Rlci5oLgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9IYW5kbGVNZXNz
YWdlLmg6CisgICAgICAgICogUGxhdGZvcm0vSVBDL01lc3NhZ2VEZWNvZGVyLmNwcDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvTWVzc2FnZURlY29kZXIuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBQbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY2VpdmVyLmg6CisgICAgICAgICogUGxhdGZv
cm0vSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHA6CisgICAgICAgICogUGxhdGZvcm0vSVBDL01l
c3NhZ2VSZWNlaXZlck1hcC5oOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3Jk
ZXIuY3BwOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXIuaDoKKyAgICAg
ICAgKiBQbGF0Zm9ybS9JUEMvU3RyaW5nUmVmZXJlbmNlLmNwcDoKKyAgICAgICAgKiBQbGF0Zm9y
bS9JUEMvU3RyaW5nUmVmZXJlbmNlLmg6CisgICAgICAgICogUGxhdGZvcm0vSVBDL21hYy9Db25u
ZWN0aW9uTWFjLm1tOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9tYWMvTWFjaFBvcnQuaDoKKyAg
ICAgICAgKiBQbGF0Zm9ybS9TaGFyZWRNZW1vcnkuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9tYWMv
U2hhcmVkTWVtb3J5TWFjLmNwcDoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRy
b2xsZXJQcm94eS5oOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcDoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFyYW1l
dGVycy5oOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHA6CisgICAg
ICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmg6CisgICAgICAgICogUGx1Z2luUHJv
Y2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5OgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJRGF0YS5jcHA6CisgICAgICAgICogU2hhcmVk
L0FQSS9BUElEYXRhLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElFcnJvci5jcHA6CisgICAg
ICAgICogU2hhcmVkL0FQSS9BUElFcnJvci5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJRnJh
bWVIYW5kbGUuY3BwOgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuaDoKKyAg
ICAgICAgKiBTaGFyZWQvQVBJL0FQSUdlb21ldHJ5LmNwcDoKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L0FQSUdlb21ldHJ5Lmg6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElOdW1iZXIuaDoKKyAgICAg
ICAgKiBTaGFyZWQvQVBJL0FQSVBhZ2VHcm91cEhhbmRsZS5jcHA6CisgICAgICAgICogU2hhcmVk
L0FQSS9BUElQYWdlR3JvdXBIYW5kbGUuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL0FQSVBhZ2VI
YW5kbGUuY3BwOgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJUGFnZUhhbmRsZS5oOgorICAgICAg
ICAqIFNoYXJlZC9BUEkvQVBJVVJMLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElVUkxSZXF1
ZXN0LmNwcDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL0FQSVVSTFJlcXVlc3QuaDoKKyAgICAgICAg
KiBTaGFyZWQvQVBJL0FQSVVSTFJlc3BvbnNlLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL0FQ
SVVSTFJlc3BvbnNlLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9Db2NvYS9SZW1vdGVPYmplY3RJ
bnZvY2F0aW9uLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9Db2NvYS9SZW1vdGVPYmplY3RJbnZv
Y2F0aW9uLm1tOgorICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvUmVtb3RlT2JqZWN0UmVnaXN0
cnkuaDoKKyAgICAgICAgKiBTaGFyZWQvQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24uY3BwOgorICAg
ICAgICAqIFNoYXJlZC9Bc3Npc3RlZE5vZGVJbmZvcm1hdGlvbi5oOgorICAgICAgICAqIFNoYXJl
ZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaDoKKyAgICAgICAgKiBTaGFy
ZWQvQ2hpbGRQcm9jZXNzLmg6CisgICAgICAgICogU2hhcmVkL0NvY29hL0RhdGFEZXRlY3Rpb25S
ZXN1bHQuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvRGF0YURldGVjdGlvblJlc3VsdC5tbToK
KyAgICAgICAgKiBTaGFyZWQvQ29jb2EvTG9hZFBhcmFtZXRlcnNDb2NvYS5tbToKKyAgICAgICAg
KiBTaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW06CisgICAgICAgICog
U2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwOgorICAgICAgICAqIFNoYXJlZC9Db250
ZXh0TWVudUNvbnRleHREYXRhLmg6CisgICAgICAgICogU2hhcmVkL0RhdGFiYXNlcy9EYXRhYmFz
ZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAqIFNoYXJlZC9EYXRhYmFz
ZXMvRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hhcmVk
L0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCUmVzdWx0LmNwcDoKKyAgICAgICAgKiBTaGFyZWQv
RGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJSZXN1bHQuaDoKKyAgICAgICAgKiBTaGFyZWQvRWRp
dG9yU3RhdGUuY3BwOgorICAgICAgICAqIFNoYXJlZC9FZGl0b3JTdGF0ZS5oOgorICAgICAgICAq
IFNoYXJlZC9Gb250SW5mby5jcHA6CisgICAgICAgICogU2hhcmVkL0ZvbnRJbmZvLmg6CisgICAg
ICAgICogU2hhcmVkL0dhbWVwYWQvR2FtZXBhZERhdGEuY3BwOgorICAgICAgICAqIFNoYXJlZC9H
YW1lcGFkL0dhbWVwYWREYXRhLmg6CisgICAgICAgICogU2hhcmVkL0xheWVyVHJlZUNvbnRleHQu
Y3BwOgorICAgICAgICAqIFNoYXJlZC9MYXllclRyZWVDb250ZXh0Lmg6CisgICAgICAgICogU2hh
cmVkL0xvYWRQYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvTG9hZFBhcmFtZXRlcnMu
aDoKKyAgICAgICAgKiBTaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuY3BwOgorICAgICAgICAq
IFNoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oOgorICAgICAgICAqIFNoYXJlZC9QbGF0Zm9y
bVBvcHVwTWVudURhdGEuY3BwOgorICAgICAgICAqIFNoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURh
dGEuaDoKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNwcDoKKyAg
ICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmg6CisgICAgICAgICogU2hh
cmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuaDoKKyAgICAgICAgKiBTaGFyZWQv
UGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5jcHA6CisgICAgICAgICogU2hhcmVkL1BsdWdpbnMv
TlBSZW1vdGVPYmplY3RNYXAuaDoKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnRE
YXRhLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmg6CisgICAg
ICAgICogU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6
CisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oOgorICAgICAgICAqIFNoYXJlZC9QcmludEluZm8uY3BwOgorICAgICAgICAqIFNoYXJlZC9Q
cmludEluZm8uaDoKKyAgICAgICAgKiBTaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oOgorICAgICAg
ICAqIFNoYXJlZC9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlv
bi5jcHA6CisgICAgICAgICogU2hhcmVkL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclRyYW5zYWN0aW9uLmg6CisgICAgICAgICogU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHA6Cisg
ICAgICAgICogU2hhcmVkL1Nlc3Npb25TdGF0ZS5oOgorICAgICAgICAqIFNoYXJlZC9TaGFyZWFi
bGVCaXRtYXAuY3BwOgorICAgICAgICAqIFNoYXJlZC9TaGFyZWFibGVCaXRtYXAuaDoKKyAgICAg
ICAgKiBTaGFyZWQvU2hhcmVhYmxlUmVzb3VyY2UuY3BwOgorICAgICAgICAqIFNoYXJlZC9TaGFy
ZWFibGVSZXNvdXJjZS5oOgorICAgICAgICAqIFNoYXJlZC9TdGF0aXN0aWNzRGF0YS5jcHA6Cisg
ICAgICAgICogU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmg6CisgICAgICAgICogU2hhcmVkL1VwZGF0
ZUluZm8uY3BwOgorICAgICAgICAqIFNoYXJlZC9VcGRhdGVJbmZvLmg6CisgICAgICAgICogU2hh
cmVkL1VzZXJEYXRhLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvVXNlckRhdGEuaDoKKyAgICAgICAg
KiBTaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHA6CisgICAgICAgICogU2hh
cmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaDoKKyAgICAgICAgKiBTaGFyZWQvV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJDb21waWxlZENvbnRl
bnRFeHRlbnNpb25EYXRhLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50
RXh0ZW5zaW9uRGF0YS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJDb25uZWN0aW9uLmg6CisgICAg
ICAgICogU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuY3BwOgorICAgICAgICAqIFNoYXJl
ZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmg6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
OgorICAgICAgICAqIFNoYXJlZC9XZWJFdmVudC5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYkV2
ZW50Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwOgorICAg
ICAgICAqIFNoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmg6CisgICAgICAgICogU2hhcmVk
L1dlYkhpdFRlc3RSZXN1bHREYXRhLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvV2ViSGl0VGVzdFJl
c3VsdERhdGEuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHA6CisgICAg
ICAgICogU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwOgorICAgICAgICAqIFNoYXJlZC9XZWJOYXZp
Z2F0aW9uRGF0YVN0b3JlLmg6CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6
CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VHcm91cERhdGEuY3BwOgorICAgICAgICAqIFNoYXJl
ZC9XZWJQYWdlR3JvdXBEYXRhLmg6CisgICAgICAgICogU2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQ
b2ludC5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYlBvcHVwSXRlbS5jcHA6CisgICAgICAgICog
U2hhcmVkL1dlYlBvcHVwSXRlbS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc1N0
b3JlLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oOgorICAgICAg
ICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKiBT
aGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNoYXJlZC9X
ZWJUb3VjaEV2ZW50LmNwcDoKKyAgICAgICAgKiBTaGFyZWQvV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyRGF0YVR5cGVzLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyRGF0YVR5cGVzLmg6CisgICAgICAgICogU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwOgorICAg
ICAgICAqIFNoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5jcHA6CisgICAgICAgICogU2hh
cmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmg6CisgICAgICAgICogU2hhcmVkL2NmL0FyZ3Vt
ZW50Q29kZXJzQ0YuY3BwOgorICAgICAgICAqIFNoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmg6
CisgICAgICAgICogU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5o
OgorICAgICAgICAqIFNoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24u
bW06CisgICAgICAgICogU2hhcmVkL2lvcy9RdWlja0xvb2tEb2N1bWVudERhdGEuY3BwOgorICAg
ICAgICAqIFNoYXJlZC9pb3MvUXVpY2tMb29rRG9jdW1lbnREYXRhLmg6CisgICAgICAgICogU2hh
cmVkL2lvcy9XZWJQbGF0Zm9ybVRvdWNoUG9pbnRJT1MuY3BwOgorICAgICAgICAqIFNoYXJlZC9p
b3MvV2ViVG91Y2hFdmVudElPUy5jcHA6CisgICAgICAgICogU2hhcmVkL21hYy9Bcmd1bWVudENv
ZGVyc01hYy5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNNYWMubW06Cisg
ICAgICAgICogU2hhcmVkL21hYy9BdHRyaWJ1dGVkU3RyaW5nLmg6CisgICAgICAgICogU2hhcmVk
L21hYy9BdHRyaWJ1dGVkU3RyaW5nLm1tOgorICAgICAgICAqIFNoYXJlZC9tYWMvQ29sb3JTcGFj
ZURhdGEuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL0NvbG9yU3BhY2VEYXRhLm1tOgorICAgICAg
ICAqIFNoYXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoLmg6CisgICAgICAgICogU2hhcmVkL21hYy9P
YmpDT2JqZWN0R3JhcGgubW06CisgICAgICAgICogU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tp
bmdTdG9yZS5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUu
bW06CisgICAgICAgICogU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oOgor
ICAgICAgICAqIFNoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW06CisgICAg
ICAgICogU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tOgorICAgICAgICAqIFNoYXJl
ZC9tYWMvU2VjSXRlbVJlcXVlc3REYXRhLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1NlY0l0
ZW1SZXF1ZXN0RGF0YS5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0
YS5jcHA6CisgICAgICAgICogU2hhcmVkL21hYy9TZWNJdGVtUmVzcG9uc2VEYXRhLmg6CisgICAg
ICAgICogU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViR2VzdHVy
ZUV2ZW50LmNwcDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5oOgorICAg
ICAgICAqIFNoYXJlZC9tYWMvV2ViSGl0VGVzdFJlc3VsdERhdGEubW06CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9BUElIaXRUZXN0UmVzdWx0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FwcGxl
UGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0F1
dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ2hp
bGRQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nl
c3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6
CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6
CisgICAgICAgICogVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJh
bWVQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJJbnNwZWN0b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvVmlld0dl
c3R1cmVDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5h
dG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNz
aW9uUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdl
ci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0Rh
dGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJh
c2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHA6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3ND
b25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1Njcm9sbGluZy9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3Jh
Z2UvU3RvcmFnZUFyZWFNYXAuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dl
YlVzZXJDb250ZW50Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNo
ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvVmlld0dlc3R1cmVHZW9tZXRyeUNv
bGxlY3Rvci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0
Y2hlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29u
dHJvbGxlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRm
b3JtQ0FBbmltYXRpb25SZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL2NvY29hL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDoKKworMjAxNi0w
OC0xOSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCiAgICAgICAgIFVw
ZGF0ZSBYY29kZSBwcm9qZWN0LgogCiAgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0Rh
dGFiYXNlUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJh
c2VQcm9jZXNzLmNwcAppbmRleCA0ZDVlYjJhZmJkMGEwYWMxN2I1MzQxNGJiZWFhMzFhYmYyOWFj
ZTQzLi40NTFkODUwMzdlNmY4NWY2ODQ4MjdhYjVlMGYwNTJmN2ZjOWRjNDU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcApAQCAt
NzksNyArNzksNyBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0
aW9uJikKICAgICBzdG9wUnVuTG9vcCgpOwogfQogCi12b2lkIERhdGFiYXNlUHJvY2Vzczo6ZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyKQordm9pZCBEYXRhYmFzZVByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewog
ICAgIGlmIChtZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwg
ZGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNl
UHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuaAppbmRleCBiOGMyOGE0ZjQ4NjRjMWFkN2Y2NmJjNDky
NGIxZmQ1YzZjODZlZWQ0Li5lMTUxNTBmYTM4NWMzOWE3NzIwNmI4ZDY3NWM5MjcyMjkwNDg5MDNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9j
ZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vz
cy5oCkBAIC05MSwxMiArOTEsMTIgQEAgcHJpdmF0ZToKICAgICBib29sIHNob3VsZFRlcm1pbmF0
ZSgpIG92ZXJyaWRlOwogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXIm
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0
aW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBD
OjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOwogICAgIElQQzo6UHJvY2Vz
c1R5cGUgbG9jYWxQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5
cGU6OkRhdGFiYXNlOyB9CiAgICAgSVBDOjpQcm9jZXNzVHlwZSByZW1vdGVQcm9jZXNzVHlwZSgp
IG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6OlVJOyB9Ci0gICAgdm9pZCBkaWRS
ZWNlaXZlRGF0YWJhc2VQcm9jZXNzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlRGF0YWJhc2VQcm9jZXNzTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIAogICAgIC8vIE1lc3NhZ2UgSGFuZGxl
cnMKICAgICB2b2lkIGluaXRpYWxpemVEYXRhYmFzZVByb2Nlc3MoY29uc3QgRGF0YWJhc2VQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
CmluZGV4IDk0YmEyNTdiYTAwMWI0MmNjNzEyNTY5NzkyMDI2NjI3OTkzOTU3M2EuLmJhNDI2ZGVl
MzFkMjU1ODUzMWU5Yjc1NjA1MDM5NDJmOGFkMWQzNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCkBAIC01Myw3ICs1Myw3IEBAIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVj
dGlvbjo6fkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpCiAKIH0KIAotdm9pZCBEYXRh
YmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKK3ZvaWQgRGF0
YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAoZGVj
b2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OkRhdGFiYXNlVG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIGRpZFJlY2Vp
dmVEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOwpAQCAtNzIsNyArNzIsNyBAQCB2b2lkIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aQogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogfQogCi12b2lkIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBD
OjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4m
IHJlcGx5RW5jb2RlcikKK3ZvaWQgRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29k
ZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIp
CiB7CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpE
YXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewog
ICAgICAgICBkaWRSZWNlaXZlU3luY0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3Nh
Z2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uaAppbmRleCAyYjBlZDE2ODUwZTE3NzY2MmE4MjE0Y2ExNzhhZDBkMmZjYWJiYmYz
Li5iODE4YWI1M2U3MmFiZWNlNGJlOTY5YTJhOGU0MTJiZWI3MGJiZmQxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5oCkBAIC00OCwxNCArNDgsMTQgQEAgcHJpdmF0ZToKICAgICBEYXRh
YmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsK
IAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNz
YWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJy
aWRlOwogICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJp
bmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVz
c2FnZU5hbWUpIG92ZXJyaWRlOwogICAgIElQQzo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlw
ZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6OkRhdGFiYXNlOyB9CiAgICAg
SVBDOjpQcm9jZXNzVHlwZSByZW1vdGVQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQ
Qzo6UHJvY2Vzc1R5cGU6OldlYjsgfQotICAgIHZvaWQgZGlkUmVjZWl2ZURhdGFiYXNlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVj
b2RlciYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb25NZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6
OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZURhdGFiYXNl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNv
ZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVf
cHRyPElQQzo6RW5jb2Rlcj4mKTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgogICAgIElQ
Qzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJldHVy
biBtX2Nvbm5lY3Rpb24ucHRyKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dC5oCmluZGV4IGU5Mzc2MzBkYjlmYTdiOWRkZmRjYmNmNTFhYTliODVmNDkwZDEyZjQuLjgxMjVl
ZDk2OGUzYTkzZTBjMzZlMDQ1ZjNhYzBlNTVkNGMzOTI4ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9DbGllbnQuaApAQCAtMTEzLDcgKzExMyw3IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgZGlzY29ubmVjdGVkRnJvbVdlYlByb2Nlc3MoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAKIHBy
aXZhdGU6CiAgICAgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50KERhdGFiYXNlVG9XZWJQcm9jZXNz
Q29ubmVjdGlvbiYsIHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29scy9DdXN0
b21Qcm90b2NvbE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0N1c3Rv
bVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIuaAppbmRleCA5YWY4YmE5ZDRiNDU5NDAz
OTU0NmRhNGIzZDRkNTEzNDBlNjRhMjViLi40MzlkOGIwNmI4OWRjYzJhY2E4NTExZTg3ODY5ZDU3
NzBlZmE0MjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9DdXN0
b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5oCkBA
IC04OCw3ICs4OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IE5ldHdv
cmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJikgb3ZlcnJpZGU7CiAKICAgICAvLyBJUEM6Ok1l
c3NhZ2VSZWNlaXZlcgotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKICAgICB2
b2lkIGRpZEZhaWxXaXRoRXJyb3IodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYpOwogICAgIHZvaWQgZGlkTG9hZERhdGEodWludDY0X3QgY3Vz
dG9tUHJvdG9jb2xJRCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRJRC5oIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkSUQuaAppbmRleCAz
ZDI5NmQ2NDUwZWJlNjUyNGE0Y2QyM2FmNzA5NzJjOWYyMzVkZGNiLi4wNGRmNzA3Zjg3ZTM0YjYx
YTcyYTRkN2ExNjhjN2UwNDBiMmJjNWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRJRC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZElELmgKQEAgLTI3LDcgKzI3LDcgQEAKICNk
ZWZpbmUgRG93bmxvYWRJRF9oCiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVyLmgiCi0jaW5jbHVk
ZSAiQXJndW1lbnREZWNvZGVyLmgiCisjaW5jbHVkZSAiRGVjb2Rlci5oIgogI2luY2x1ZGUgIkVu
Y29kZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5oPgogCkBAIC02MSw3ICs2MSw3IEBA
IHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViS2l0OjpEb3dubG9hZElEPiB7CiAg
ICAgewogICAgICAgICBlbmNvZGVyIDw8IGRvd25sb2FkSUQuZG93bmxvYWRJRCgpOwogICAgIH0K
LSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJLaXQ6
OkRvd25sb2FkSUQmIGRvd25sb2FkSUQpCisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFdlYktpdDo6RG93bmxvYWRJRCYgZG93bmxvYWRJRCkKICAgICB7CiAgICAgICAg
IHVpbnQ2NF90IGlkOwogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGlkKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCAxMzhkOTk4NWVlNDNjMzc2N2JmOGQ3OTM4NzQ0ZTFi
OGJlYWQ1ZTZkLi44YjVkMGRiMGRhYjU2YjBlNzk1ZGNmYjcwNmY0Y2NmYzdhNWNmYWIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC03NSw3ICs3NSw3IEBAIHZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZENsZWFudXBSZXNvdXJjZUxvYWRlcihOZXR3b3Jr
UmVzb3VyY2VMb2FkCiAgICAgbV9uZXR3b3JrUmVzb3VyY2VMb2FkZXJzLnJlbW92ZShsb2FkZXIu
aWRlbnRpZmllcigpKTsKIH0KICAgICAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUo
KSA9PSBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSkgewogICAgICAgICBkaWRSZWNlaXZlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwpAQCAtOTIsNyArOTIsNyBAQCB2b2lk
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3RpbwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi12b2lk
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBz
dGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHkpCit2b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVu
Y29kZXI+JiByZXBseSkKIHsKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkg
PT0gTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCkpIHsKICAgICAgICAgZGlkUmVjZWl2ZVN5bmNOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzc01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgKaW5kZXggMGE5ZWQ0MTFhZjVjNDA2NjQwODdiZjMyYzIyZmQ0NTk3YmVlNDc4
ZC4uODZiYzY3ZWNmZjVlYWNmZmMxNzY1MDczYzZmMTFiMWEwOTFiOWZmYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oCkBAIC01OSwxNiArNTksMTYgQEAgcHJpdmF0ZToKICAgICBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwogCiAg
ICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKLSAgICB2
b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92
ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKICAgICB2b2lk
IGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdl
TmFtZSkgb3ZlcnJpZGU7CiAgICAgSVBDOjpQcm9jZXNzVHlwZSBsb2NhbFByb2Nlc3NUeXBlKCkg
b3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6TmV0d29yazsgfQogICAgIElQQzo6
UHJvY2Vzc1R5cGUgcmVtb3RlUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlBy
b2Nlc3NUeXBlOjpXZWI7IH0KIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCi0gICAgdm9pZCBk
aWRSZWNlaXZlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOworICAgIHZv
aWQgZGlkUmVjZWl2ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7CiAgICAgCiAgICAgdm9pZCBz
Y2hlZHVsZVJlc291cmNlTG9hZChjb25zdCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYp
OwogICAgIHZvaWQgcGVyZm9ybVN5bmNocm9ub3VzTG9hZChjb25zdCBOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycyYsIFJlZlB0cjxNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OlBlcmZvcm1TeW5jaHJvbm91c0xvYWQ6OkRlbGF5ZWRSZXBseT4mJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggOTg4
NDZmMGJhODk1OTFmYjE0MTg5NmY5NmVmM2IxZGNiZDNmYTllMi4uMTg0NmRhNWY3OGYyMTM1MDY2
MTRhMGNiNjlhZGMyMzYwZDEyODJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMTMzLDcgKzEzMyw3IEBAIGJvb2wgTmV0d29y
a1Byb2Nlc3M6OnNob3VsZFRlcm1pbmF0ZSgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lk
IE5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIElQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNz
OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVj
b2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAobWVzc2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hN
ZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpKQogICAgICAgICByZXR1cm47CkBAIC0xNDYsNyAr
MTQ2LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2UKICAgICBkaWRSZWNlaXZlTmV0d29ya1By
b2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogfQogCi12b2lkIE5ldHdvcmtQcm9j
ZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVy
PiYgcmVwbHlFbmNvZGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBz
dGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogewogICAgIGlmICht
ZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaFN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIsIHJlcGx5RW5jb2RlcikpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDQ3MTMxMDZlODg4NTU5NTdhMTk4
ODVmMWU4YTQxZjYyNGMzMWQxNTIuLmE3Zjg4ZjkwNTY1NjViMDI5NWJhNGQwZjQ2NTE4NjBiMGUx
MjM2MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaApAQCAtMTQwLDggKzE0MCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzaG91bGRUZXJtaW5h
dGUoKSBvdmVycmlkZTsKIAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Ci0gICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVy
Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpF
bmNvZGVyPiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJp
bmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOwogICAgIElQQzo6UHJvY2Vzc1R5cGUg
bG9jYWxQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6Ok5l
dHdvcms7IH0KQEAgLTE1Nyw4ICsxNTcsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICAvLyBN
ZXNzYWdlIEhhbmRsZXJzCi0gICAgdm9pZCBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKTsKLSAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jTmV0d29ya1Byb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVz
c2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTmV0d29ya1Byb2Nlc3NNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29k
ZXI+Jik7CiAgICAgdm9pZCBpbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2VzcygpOwogICAgIHZvaWQgZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oV2Vi
Q29yZTo6U2Vzc2lvbklEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRl
eCA3NWIzMDZhNzBjYzA3MzZhYTRhNGZhMTk4ZDJhMTE0ZmQwZTY0YTJiLi5iY2RiYTc0Mzc3ZjRi
NjQwYTM1NDBhNjg1ZGRjMmI1NDMzZThjM2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCkBAIC04OCw3ICs4OCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAjZW5kaWYKIH0K
IAotYm9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6QXJn
dW1lbnREZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYg
cmVzdWx0KQorYm9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQ
Qzo6RGVjb2RlciYgZGVjb2RlciwgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHJl
c3VsdCkKIHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5wcml2YXRlQnJvd3NpbmdF
bmFibGVkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmgKaW5kZXggMjQwOWNjMGY2MzAwY2NlN2YzODNkNzRlNDFmZTg5ZWFiZWE2ODcxYS4uZTQ3
MjJiODdhNGVlNGZiOGE5MmFiZWZlMWY5ZmYzZDZkMDI1ZGE2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCkBAIC0zNiw3ICszNiw3IEBACiAjZW5kaWYKIAogbmFtZXNwYWNlIElQ
QyB7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBEZWNvZGVyOwogY2xhc3MgRW5jb2Rl
cjsKIH0KIApAQCAtNDYsNyArNDYsNyBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMgewogICAgIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCk7CiAKICAg
ICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBOZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyYpOwogCiAgICAgYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVk
OwogICAgIENhY2hlTW9kZWwgY2FjaGVNb2RlbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNw
cAppbmRleCA1ZTQ4ZDNlMGY5MjIzM2FkODUyYWM2NTBkODQxNzYyOGQzODMzYTM3Li4wNTNkY2Rm
NjMyY2I5YmI2MWY3MTM1MDE2YjBmN2Y5NjczNjBkMzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFt
ZXRlcnMuY3BwCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFt
ZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8
PCBtYXhpbXVtQnVmZmVyaW5nVGltZTsKIH0KIAotYm9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVyczo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycyYgcmVzdWx0KQorYm9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMmIHJlc3VsdCkKIHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5p
ZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaCBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
LmgKaW5kZXggOTI3OTUzNDYyYjMyY2MxYzcxZTBkOGNiOTY2MTA1YTE5MzMxYzllNy4uNDI1NWFk
ZTQxMTUwZGE5NjlmMjExMTc1MTJkN2RmNmY3ZjdjOWM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVycy5oCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4K
IAogbmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBEZWNvZGVy
OwogY2xhc3MgRW5jb2RlcjsKIH0KIApAQCAtNDUsNyArNDUsNyBAQCB0eXBlZGVmIHVpbnQ2NF90
IFJlc291cmNlTG9hZElkZW50aWZpZXI7CiBjbGFzcyBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVycyA6IHB1YmxpYyBOZXR3b3JrTG9hZFBhcmFtZXRlcnMgewogcHVibGljOgogICAgIHZvaWQg
ZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6
OkFyZ3VtZW50RGVjb2RlciYsIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJik7CisgICAg
c3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzJik7CiAKICAgICBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIgeyAwIH07
CiAgICAgVmVjdG9yPFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPj4gcmVxdWVzdEJvZHlTYW5kYm94
RXh0ZW5zaW9uczsgLy8gQ3JlYXRlZCBhdXRvbWF0aWNhbGx5IGZvciB0aGUgc2VuZGVyLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuaAppbmRleCAzNTY5MjZlZDE2YWQ0MmU3YjU4NDAxZTU5MDhhNmRkMDcwNTliN2NkLi5jZmVi
MWQ1N2M2YjU3NjM5ZWFjZDMwNWVhOGYwZDBmOTdkNDFlMzA1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApAQCAtNjYs
NyArNjYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKGJvb2wpOwogCiAg
ICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KLSAgICB2b2lkIGRpZFJlY2VpdmVOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVOZXR3b3JrUmVzb3VyY2VMb2FkZXJNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogCiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVU
SF9DQUxMQkFDSykKICAgICB2b2lkIGNvbnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3Rl
Y3Rpb25TcGFjZShib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQ
Qy9Bcmd1bWVudENvZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRD
b2Rlci5oCmluZGV4IDdiYWJiODEwYmUwZmQwYzAzODQxMzdmOTc5NGI1OWM3YjNhY2Q4YzkuLjVk
ZjZjMWIwYmM4MDcwMjJiZDJmNzc1ZjU4ZGM5YWZhNjQ1MjViMmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVyLmgKKysrIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXIuaApAQCAtMjgsNyArMjgsNyBAQAogCiBuYW1l
c3BhY2UgSVBDIHsKIAotY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgRGVjb2RlcjsKIGNs
YXNzIEVuY29kZXI7CiAgICAgCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRD
b2RlciB7CkBAIC0zNyw3ICszNyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1
bWVudENvZGVyIHsKICAgICAgICAgdC5lbmNvZGUoZW5jb2Rlcik7CiAgICAgfQogCi0gICAgc3Rh
dGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgVCYgdCkKKyAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVCYgdCkKICAgICB7CiAgICAgICAgIHJl
dHVybiBUOjpkZWNvZGUoZGVjb2RlciwgdCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKaW5kZXggN2Y3ZGViNGY4ZDJkZWRjNjkwZWNi
ZTRkODBhODliZDZhNmI4NDg1MS4uZThiOTc4Y2U3YmQ4MDY3NTI2ZTRkNGNmYzgyNWViOTAyNWQw
NGMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29k
ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMu
Y3BwCkBAIC0zNyw3ICszNyw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxzdGQ6OmNocm9ubzo6c3lz
dGVtX2Nsb2NrOjp0aW1lX3BvaW50Pjo6ZW5jb2RlKElQQzo6RW5jb2RlciYKICAgICBlbmNvZGVy
IDw8IHN0YXRpY19jYXN0PGludDY0X3Q+KHRpbWVQb2ludC50aW1lX3NpbmNlX2Vwb2NoKCkuY291
bnQoKSk7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2Nr
Ojp0aW1lX3BvaW50Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwgc3RkOjpjaHJv
bm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCYgcmVzdWx0KQorYm9vbCBBcmd1bWVudENvZGVy
PHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2Rlciwgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCYgcmVzdWx0KQog
ewogICAgIGludDY0X3QgdGltZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRpbWUpKQpAQCAt
NTIsNyArNTIsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8QXRvbWljU3RyaW5nPjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IEF0b21pY1N0cmluZyYgYQogICAgIGVuY29kZXIgPDwgYXRv
bWljU3RyaW5nLnN0cmluZygpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8QXRvbWljU3RyaW5n
Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgQXRvbWljU3RyaW5nJiBhdG9taWNT
dHJpbmcpCitib29sIEFyZ3VtZW50Q29kZXI8QXRvbWljU3RyaW5nPjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIEF0b21pY1N0cmluZyYgYXRvbWljU3RyaW5nKQogewogICAgIFN0cmluZyBzdHJp
bmc7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdHJpbmcpKQpAQCAtNzUsNyArNzUsNyBAQCB2
b2lkIEFyZ3VtZW50Q29kZXI8Q1N0cmluZz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBDU3RyaW5nJiBzdHJpbmcpCiAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVp
bnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oc3RyaW5nLmRhdGEoKSksIGxlbmd0aCwgMSk7
CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxDU3RyaW5nPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciYgZGVjb2RlciwgQ1N0cmluZyYgcmVzdWx0KQorYm9vbCBBcmd1bWVudENvZGVyPENTdHJpbmc+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQ1N0cmluZyYgcmVzdWx0KQogewogICAgIHVpbnQz
Ml90IGxlbmd0aDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGxlbmd0aCkpCkBAIC0xMjMsNyAr
MTIzLDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFN0cmluZz46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBTdHJpbmcmIHN0cmluZykKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJh
Y3RlclR5cGU+Ci1zdGF0aWMgaW5saW5lIGJvb2wgZGVjb2RlU3RyaW5nVGV4dChBcmd1bWVudERl
Y29kZXImIGRlY29kZXIsIHVpbnQzMl90IGxlbmd0aCwgU3RyaW5nJiByZXN1bHQpCitzdGF0aWMg
aW5saW5lIGJvb2wgZGVjb2RlU3RyaW5nVGV4dChEZWNvZGVyJiBkZWNvZGVyLCB1aW50MzJfdCBs
ZW5ndGgsIFN0cmluZyYgcmVzdWx0KQogewogICAgIC8vIEJlZm9yZSBhbGxvY2F0aW5nIHRoZSBz
dHJpbmcsIG1ha2Ugc3VyZSB0aGF0IHRoZSBkZWNvZGVyIGJ1ZmZlciBpcyBiaWcgZW5vdWdoLgog
ICAgIGlmICghZGVjb2Rlci5idWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluPENoYXJhY3RlclR5
cGU+KGxlbmd0aCkpIHsKQEAgLTE0MCw3ICsxNDAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZGVj
b2RlU3RyaW5nVGV4dChBcmd1bWVudERlY29kZXImIGRlY29kZXIsIHVpbnQzMl90IGxlbmd0aCwg
UwogICAgIHJldHVybiB0cnVlOyAgICAKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPFN0cmluZz46
OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFN0cmluZyYgcmVzdWx0KQorYm9vbCBB
cmd1bWVudENvZGVyPFN0cmluZz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTdHJpbmcmIHJl
c3VsdCkKIHsKICAgICB1aW50MzJfdCBsZW5ndGg7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShs
ZW5ndGgpKQpAQCAtMTY4LDcgKzE2OCw3IEBAIHZvaWQgQXJndW1lbnRDb2Rlcjx1dWlkX3Q+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgdXVpZF90JiB1dWlkKQogICAgIFNpbXBsZUFy
Z3VtZW50Q29kZXI8dXVpZF90Pjo6ZW5jb2RlKGVuY29kZXIsIHV1aWQpOwogfQogCi1ib29sIEFy
Z3VtZW50Q29kZXI8dXVpZF90Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgdXVp
ZF90JiB1dWlkKQorYm9vbCBBcmd1bWVudENvZGVyPHV1aWRfdD46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCB1dWlkX3QmIHV1aWQpCiB7CiAgICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8
dXVpZF90Pjo6ZGVjb2RlKGRlY29kZXIsIHV1aWQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAppbmRleCAxZDQ5ODEzY2I1ZWQ1NTBkYzVlZTcyN2Vj
Y2E5MGQxYWY3N2Y1NTU3Li4yMmZjMGMyMDdkYmZlNjcxZTE3ODZkNTZhYTQ3Yzk5NWRlZTlhMmJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaApAQCAt
MjYsNyArMjYsNyBAQAogI2lmbmRlZiBBcmd1bWVudENvZGVyc19oCiAjZGVmaW5lIEFyZ3VtZW50
Q29kZXJzX2gKIAotI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgorI2luY2x1ZGUgIkRlY29k
ZXIuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgiCiAjaW5jbHVkZSA8dXRpbGl0eT4KICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgpAQCAtNTAsNyArNTAsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgU2ltcGxlQXJndW1lbnRDb2RlciB7CiAgICAgICAgIGVuY29kZXIuZW5jb2RlRml4ZWRM
ZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KCZ0KSwgc2l6ZW9mKFQp
LCBhbGlnbm9mKFQpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBUJiB0KQorICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBUJiB0KQogICAgIHsKICAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlRml4ZWRM
ZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KCZ0KSwgc2l6ZW9mKFQpLCBhbGln
bm9mKFQpKTsKICAgICB9CkBAIC02Miw3ICs2Miw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0
cnVjdCBBcmd1bWVudENvZGVyPE9wdGlvblNldDxUPj4gewogICAgICAgICBlbmNvZGVyIDw8IChz
dGF0aWNfY2FzdDx1aW50NjRfdD4ob3B0aW9uU2V0LnRvUmF3KCkpKTsKICAgICB9CiAKLSAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBPcHRpb25TZXQ8VD4m
IG9wdGlvblNldCkKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgT3B0
aW9uU2V0PFQ+JiBvcHRpb25TZXQpCiAgICAgewogICAgICAgICB1aW50NjRfdCB2YWx1ZTsKICAg
ICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2YWx1ZSkpCkBAIC04NSw3ICs4NSw3IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6T3B0aW9uYWw8VD4+IHsK
ICAgICAgICAgZW5jb2RlciA8PCBvcHRpb25hbC52YWx1ZSgpOwogICAgIH0KIAotICAgIHN0YXRp
YyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdURjo6T3B0aW9uYWw8VD4m
IG9wdGlvbmFsKQorICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXVEY6
Ok9wdGlvbmFsPFQ+JiBvcHRpb25hbCkKICAgICB7CiAgICAgICAgIGJvb2wgaXNFbmdhZ2VkOwog
ICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGlzRW5nYWdlZCkpCkBAIC0xMTEsNyArMTExLDcg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
c3RkOjpwYWlyPFQsIFU+PiB7CiAgICAgICAgIGVuY29kZXIgPDwgcGFpci5maXJzdCA8PCBwYWly
LnNlY29uZDsKICAgICB9CiAKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVy
JiBkZWNvZGVyLCBzdGQ6OnBhaXI8VCwgVT4mIHBhaXIpCisgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIHN0ZDo6cGFpcjxULCBVPiYgcGFpcikKICAgICB7CiAgICAgICAg
IFQgZmlyc3Q7CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZmlyc3QpKQpAQCAtMTM0LDcg
KzEzNCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFJlcCwgdHlwZW5hbWUgUGVyaW9kPiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxzdGQ6OmNocm9ubzo6ZHVyYXRpCiAgICAgICAgIGVuY29kZXIgPDwgc3Rh
dGljX2Nhc3Q8aW50NjRfdD4oZHVyYXRpb24uY291bnQoKSk7CiAgICAgfQogCi0gICAgc3RhdGlj
IGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwgc3RkOjpjaHJvbm86OmR1cmF0
aW9uPFJlcCwgUGVyaW9kPiYgcmVzdWx0KQorICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBzdGQ6OmNocm9ubzo6ZHVyYXRpb248UmVwLCBQZXJpb2Q+JiByZXN1bHQpCiAg
ICAgewogICAgICAgICBpbnQ2NF90IGNvdW50OwogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGNvdW50KSkKQEAgLTE1MCw3ICsxNTAsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlUeXBlLCB0
eXBlbmFtZSBWYWx1ZVR5cGU+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6S2V5VmFsdQogICAg
ICAgICBlbmNvZGVyIDw8IHBhaXIua2V5IDw8IHBhaXIudmFsdWU7CiAgICAgfQogCi0gICAgc3Rh
dGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV1RGOjpLZXlWYWx1ZVBh
aXI8S2V5VHlwZSwgVmFsdWVUeXBlPiYgcGFpcikKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlciwgV1RGOjpLZXlWYWx1ZVBhaXI8S2V5VHlwZSwgVmFsdWVUeXBlPiYgcGFp
cikKICAgICB7CiAgICAgICAgIEtleVR5cGUga2V5OwogICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGtleSkpCkBAIC0xNzYsNyArMTc2LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90
IGlubGluZUNhcGFjaXR5PiBzdHJ1Y3QgVmVjdG9yQXJndW1lbnRDb2RlcjxmYWxzZSwgVCwKICAg
ICAgICAgICAgIGVuY29kZXIgPDwgdmVjdG9yW2ldOwogICAgIH0KIAotICAgIHN0YXRpYyBib29s
IGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0
eT4mIHZlY3RvcikKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVmVj
dG9yPFQsIGlubGluZUNhcGFjaXR5PiYgdmVjdG9yKQogICAgIHsKICAgICAgICAgdWludDY0X3Qg
c2l6ZTsKICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaXplKSkKQEAgLTIwNCw3ICsyMDQs
NyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHk+IHN0cnVjdCBW
ZWN0b3JBcmd1bWVudENvZGVyPHRydWUsIFQsCiAgICAgICAgIGVuY29kZXIuZW5jb2RlRml4ZWRM
ZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHZlY3Rvci5kYXRhKCkp
LCB2ZWN0b3Iuc2l6ZSgpICogc2l6ZW9mKFQpLCBhbGlnbm9mKFQpKTsKICAgICB9CiAgICAgCi0g
ICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgVmVjdG9yPFQs
IGlubGluZUNhcGFjaXR5PiYgdmVjdG9yKQorICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHk+JiB2ZWN0b3IpCiAgICAgewogICAg
ICAgICB1aW50NjRfdCBzaXplOwogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUpKQpA
QCAtMjQwLDcgKzI0MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgTWFw
cGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpCiAgICAgICAgICAgICBl
bmNvZGVyIDw8ICppdDsKICAgICB9CiAKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBIYXNoTWFwVHlwZSYgaGFzaE1hcCkKKyAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSGFzaE1hcFR5cGUmIGhhc2hNYXApCiAgICAgewogICAg
ICAgICB1aW50NjRfdCBoYXNoTWFwU2l6ZTsKICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSho
YXNoTWFwU2l6ZSkpCkBAIC0yNzcsNyArMjc3LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJn
LCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmc+IHN0cnVjdCBBcmd1bWUK
ICAgICAgICAgICAgIGVuY29kZXIgPDwgKml0OwogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEhhc2hTZXRUeXBlJiBoYXNoU2V0KQorICAg
IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBIYXNoU2V0VHlwZSYgaGFzaFNl
dCkKICAgICB7CiAgICAgICAgIHVpbnQ2NF90IGhhc2hTZXRTaXplOwogICAgICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGhhc2hTZXRTaXplKSkKQEAgLTMxNCw3ICszMTQsNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZz4g
c3RydWN0IEFyZ3VtZQogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIHN0YXRpYyBib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEhhc2hDb3VudGVkU2V0VHlwZSYgaGFzaENv
dW50ZWRTZXQpCisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEhhc2hD
b3VudGVkU2V0VHlwZSYgaGFzaENvdW50ZWRTZXQpCiAgICAgewogICAgICAgICB1aW50NjRfdCBo
YXNoQ291bnRlZFNldFNpemU7CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzaENvdW50
ZWRTZXRTaXplKSkKQEAgLTM0NCwyOCArMzQ0LDI4IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFy
ZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnPiBzdHJ1Y3QgQXJndW1l
CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpjaHJvbm86OnN5c3RlbV9j
bG9jazo6dGltZV9wb2ludD4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29u
c3Qgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCYpOwotICAgIHN0YXRpYyBi
b29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0
aW1lX3BvaW50Jik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBzdGQ6OmNocm9u
bzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50Jik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPEF0b21pY1N0cmluZz4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgY29uc3QgQXRvbWljU3RyaW5nJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYsIEF0b21pY1N0cmluZyYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNv
ZGVyJiwgQXRvbWljU3RyaW5nJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPENTdHJpbmc+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IENT
dHJpbmcmKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgQ1N0cmlu
ZyYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgQ1N0cmluZyYpOwogfTsKIAog
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxTdHJpbmc+IHsKICAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFN0cmluZyYpOwotICAgIHN0YXRpYyBib29sIGRlY29k
ZShBcmd1bWVudERlY29kZXImLCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVj
b2RlciYsIFN0cmluZyYpOwogfTsKIAogI2lmIEhBVkUoRFRSQUNFKQogdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2Rlcjx1dWlkX3Q+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IHV1aWRfdCYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29k
ZXImLCB1dWlkX3QmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIHV1aWRfdCYp
OwogfTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
QXJndW1lbnREZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVu
dERlY29kZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5N2RjZTQ2MTNjYTAw
NzUyN2MyYmY2YjEzZTczODcyNzFiNDMwZmNmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudERl
Y29kZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjIwICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCi0K
LSNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCi0jaW5jbHVkZSA8c3RkaW8uaD4KLQotbmFtZXNw
YWNlIElQQyB7Ci0KLUFyZ3VtZW50RGVjb2Rlcjo6QXJndW1lbnREZWNvZGVyKGNvbnN0IHVpbnQ4
X3QqIGJ1ZmZlciwgc2l6ZV90IGJ1ZmZlclNpemUpCi17Ci0gICAgaW5pdGlhbGl6ZShidWZmZXIs
IGJ1ZmZlclNpemUpOwotfQotCi1Bcmd1bWVudERlY29kZXI6OkFyZ3VtZW50RGVjb2Rlcihjb25z
dCB1aW50OF90KiBidWZmZXIsIHNpemVfdCBidWZmZXJTaXplLCBWZWN0b3I8QXR0YWNobWVudD4g
YXR0YWNobWVudHMpCi17Ci0gICAgaW5pdGlhbGl6ZShidWZmZXIsIGJ1ZmZlclNpemUpOwotCi0g
ICAgbV9hdHRhY2htZW50cyA9IFdURk1vdmUoYXR0YWNobWVudHMpOwotfQotCi1Bcmd1bWVudERl
Y29kZXI6On5Bcmd1bWVudERlY29kZXIoKQotewotICAgIEFTU0VSVChtX2J1ZmZlcik7Ci0gICAg
ZmFzdEZyZWUobV9idWZmZXIpOwotICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGRpc3Bvc2Ugb2Yg
dGhlIG1hY2ggcG9ydHMgaW4gY2FzZXMgb2YgZmFpbHVyZS4KLX0KLQotc3RhdGljIGlubGluZSB1
aW50OF90KiByb3VuZFVwVG9BbGlnbm1lbnQodWludDhfdCogcHRyLCB1bnNpZ25lZCBhbGlnbm1l
bnQpCi17Ci0gICAgLy8gQXNzZXJ0IHRoYXQgdGhlIGFsaWdubWVudCBpcyBhIHBvd2VyIG9mIDIu
Ci0gICAgQVNTRVJUKGFsaWdubWVudCAmJiAhKGFsaWdubWVudCAmIChhbGlnbm1lbnQgLSAxKSkp
OwotCi0gICAgdWludHB0cl90IGFsaWdubWVudE1hc2sgPSBhbGlnbm1lbnQgLSAxOwotICAgIHJl
dHVybiByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPigocmVpbnRlcnByZXRfY2FzdDx1aW50cHRy
X3Q+KHB0cikgKyBhbGlnbm1lbnRNYXNrKSAmIH5hbGlnbm1lbnRNYXNrKTsKLX0KLQotdm9pZCBB
cmd1bWVudERlY29kZXI6OmluaXRpYWxpemUoY29uc3QgdWludDhfdCogYnVmZmVyLCBzaXplX3Qg
YnVmZmVyU2l6ZSkKLXsKLSAgICBtX2J1ZmZlciA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihmYXN0
TWFsbG9jKGJ1ZmZlclNpemUpKTsKLQotICAgIEFTU0VSVCghKHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dHB0cl90PihtX2J1ZmZlcikgJSBhbGlnbm9mKHVpbnQ2NF90KSkpOwotCi0gICAgbV9idWZmZXJQ
b3MgPSBtX2J1ZmZlcjsKLSAgICBtX2J1ZmZlckVuZCA9IG1fYnVmZmVyICsgYnVmZmVyU2l6ZTsK
LSAgICBtZW1jcHkobV9idWZmZXIsIGJ1ZmZlciwgYnVmZmVyU2l6ZSk7Ci19Ci0KLXN0YXRpYyBp
bmxpbmUgYm9vbCBhbGlnbmVkQnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbihjb25zdCB1aW50
OF90KiBhbGlnbmVkUG9zaXRpb24sIGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlckVuZCwgc2l6ZV90IHNp
emUpCi17Ci0gICAgcmV0dXJuIGJ1ZmZlckVuZCA+PSBhbGlnbmVkUG9zaXRpb24gJiYgc3RhdGlj
X2Nhc3Q8c2l6ZV90PihidWZmZXJFbmQgLSBhbGlnbmVkUG9zaXRpb24pID49IHNpemU7Ci19Ci0K
LWJvb2wgQXJndW1lbnREZWNvZGVyOjphbGlnbkJ1ZmZlclBvc2l0aW9uKHVuc2lnbmVkIGFsaWdu
bWVudCwgc2l6ZV90IHNpemUpCi17Ci0gICAgdWludDhfdCogYWxpZ25lZFBvc2l0aW9uID0gcm91
bmRVcFRvQWxpZ25tZW50KG1fYnVmZmVyUG9zLCBhbGlnbm1lbnQpOwotICAgIGlmICghYWxpZ25l
ZEJ1ZmZlcklzTGFyZ2VFbm91Z2hUb0NvbnRhaW4oYWxpZ25lZFBvc2l0aW9uLCBtX2J1ZmZlckVu
ZCwgc2l6ZSkpIHsKLSAgICAgICAgLy8gV2UndmUgd2Fsa2VkIG9mZiB0aGUgZW5kIG9mIHRoaXMg
YnVmZmVyLgotICAgICAgICBtYXJrSW52YWxpZCgpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgfQotICAgIAotICAgIG1fYnVmZmVyUG9zID0gYWxpZ25lZFBvc2l0aW9uOwotICAgIHJldHVy
biB0cnVlOwotfQotCi1ib29sIEFyZ3VtZW50RGVjb2Rlcjo6YnVmZmVySXNMYXJnZUVub3VnaFRv
Q29udGFpbih1bnNpZ25lZCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKSBjb25zdAotewotICAgIHJl
dHVybiBhbGlnbmVkQnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbihyb3VuZFVwVG9BbGlnbm1l
bnQobV9idWZmZXJQb3MsIGFsaWdubWVudCksIG1fYnVmZmVyRW5kLCBzaXplKTsKLX0KLQotYm9v
bCBBcmd1bWVudERlY29kZXI6OmRlY29kZUZpeGVkTGVuZ3RoRGF0YSh1aW50OF90KiBkYXRhLCBz
aXplX3Qgc2l6ZSwgdW5zaWduZWQgYWxpZ25tZW50KQotewotICAgIGlmICghYWxpZ25CdWZmZXJQ
b3NpdGlvbihhbGlnbm1lbnQsIHNpemUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBt
ZW1jcHkoZGF0YSwgbV9idWZmZXJQb3MsIHNpemUpOwotICAgIG1fYnVmZmVyUG9zICs9IHNpemU7
Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBBcmd1bWVudERlY29kZXI6OmRlY29kZVZh
cmlhYmxlTGVuZ3RoQnl0ZUFycmF5KERhdGFSZWZlcmVuY2UmIGRhdGFSZWZlcmVuY2UpCi17Ci0g
ICAgdWludDY0X3Qgc2l6ZTsKLSAgICBpZiAoIWRlY29kZShzaXplKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIAotICAgIGlmICghYWxpZ25CdWZmZXJQb3NpdGlvbigxLCBzaXplKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgdWludDhfdCogZGF0YSA9IG1fYnVmZmVyUG9zOwot
ICAgIG1fYnVmZmVyUG9zICs9IHNpemU7Ci0KLSAgICBkYXRhUmVmZXJlbmNlID0gRGF0YVJlZmVy
ZW5jZShkYXRhLCBzaXplKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdGVtcGxhdGU8dHlwZW5h
bWUgVHlwZT4KLXN0YXRpYyB2b2lkIGRlY29kZVZhbHVlRnJvbUJ1ZmZlcihUeXBlJiB2YWx1ZSwg
dWludDhfdComIGJ1ZmZlclBvc2l0aW9uKQotewotICAgIG1lbWNweSgmdmFsdWUsIGJ1ZmZlclBv
c2l0aW9uLCBzaXplb2YodmFsdWUpKTsKLSAgICBidWZmZXJQb3NpdGlvbiArPSBzaXplb2YoVHlw
ZSk7Ci19Ci0KLWJvb2wgQXJndW1lbnREZWNvZGVyOjpkZWNvZGUoYm9vbCYgcmVzdWx0KQotewot
ICAgIGlmICghYWxpZ25CdWZmZXJQb3NpdGlvbihzaXplb2YocmVzdWx0KSwgc2l6ZW9mKHJlc3Vs
dCkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgZGVjb2RlVmFsdWVGcm9tQnVm
ZmVyKHJlc3VsdCwgbV9idWZmZXJQb3MpOwotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIEFy
Z3VtZW50RGVjb2Rlcjo6ZGVjb2RlKHVpbnQ4X3QmIHJlc3VsdCkKLXsKLSAgICBpZiAoIWFsaWdu
QnVmZmVyUG9zaXRpb24oc2l6ZW9mKHJlc3VsdCksIHNpemVvZihyZXN1bHQpKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgZGVjb2RlVmFsdWVGcm9tQnVmZmVyKHJlc3VsdCwgbV9idWZm
ZXJQb3MpOwotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIEFyZ3VtZW50RGVjb2Rlcjo6ZGVj
b2RlKHVpbnQxNl90JiByZXN1bHQpCi17Ci0gICAgaWYgKCFhbGlnbkJ1ZmZlclBvc2l0aW9uKHNp
emVvZihyZXN1bHQpLCBzaXplb2YocmVzdWx0KSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIGRlY29kZVZhbHVlRnJvbUJ1ZmZlcihyZXN1bHQsIG1fYnVmZmVyUG9zKTsKLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLQotYm9vbCBBcmd1bWVudERlY29kZXI6OmRlY29kZSh1aW50MzJfdCYgcmVz
dWx0KQotewotICAgIGlmICghYWxpZ25CdWZmZXJQb3NpdGlvbihzaXplb2YocmVzdWx0KSwgc2l6
ZW9mKHJlc3VsdCkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBkZWNvZGVWYWx1ZUZy
b21CdWZmZXIocmVzdWx0LCBtX2J1ZmZlclBvcyk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJv
b2wgQXJndW1lbnREZWNvZGVyOjpkZWNvZGUodWludDY0X3QmIHJlc3VsdCkKLXsKLSAgICBpZiAo
IWFsaWduQnVmZmVyUG9zaXRpb24oc2l6ZW9mKHJlc3VsdCksIHNpemVvZihyZXN1bHQpKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGRlY29kZVZhbHVlRnJvbUJ1ZmZlcihyZXN1
bHQsIG1fYnVmZmVyUG9zKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBBcmd1bWVudERl
Y29kZXI6OmRlY29kZShpbnQzMl90JiByZXN1bHQpCi17Ci0gICAgaWYgKCFhbGlnbkJ1ZmZlclBv
c2l0aW9uKHNpemVvZihyZXN1bHQpLCBzaXplb2YocmVzdWx0KSkpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAKLSAgICBkZWNvZGVWYWx1ZUZyb21CdWZmZXIocmVzdWx0LCBtX2J1ZmZlclBv
cyk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgQXJndW1lbnREZWNvZGVyOjpkZWNvZGUo
aW50NjRfdCYgcmVzdWx0KQotewotICAgIGlmICghYWxpZ25CdWZmZXJQb3NpdGlvbihzaXplb2Yo
cmVzdWx0KSwgc2l6ZW9mKHJlc3VsdCkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBk
ZWNvZGVWYWx1ZUZyb21CdWZmZXIocmVzdWx0LCBtX2J1ZmZlclBvcyk7Ci0gICAgcmV0dXJuIHRy
dWU7Ci19Ci0KLWJvb2wgQXJndW1lbnREZWNvZGVyOjpkZWNvZGUoZmxvYXQmIHJlc3VsdCkKLXsK
LSAgICBpZiAoIWFsaWduQnVmZmVyUG9zaXRpb24oc2l6ZW9mKHJlc3VsdCksIHNpemVvZihyZXN1
bHQpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgZGVjb2RlVmFsdWVGcm9tQnVmZmVy
KHJlc3VsdCwgbV9idWZmZXJQb3MpOwotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIEFyZ3Vt
ZW50RGVjb2Rlcjo6ZGVjb2RlKGRvdWJsZSYgcmVzdWx0KQotewotICAgIGlmICghYWxpZ25CdWZm
ZXJQb3NpdGlvbihzaXplb2YocmVzdWx0KSwgc2l6ZW9mKHJlc3VsdCkpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgCi0gICAgZGVjb2RlVmFsdWVGcm9tQnVmZmVyKHJlc3VsdCwgbV9idWZm
ZXJQb3MpOwotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIEFyZ3VtZW50RGVjb2Rlcjo6cmVt
b3ZlQXR0YWNobWVudChBdHRhY2htZW50JiBhdHRhY2htZW50KQotewotICAgIGlmIChtX2F0dGFj
aG1lbnRzLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgYXR0YWNobWVu
dCA9IG1fYXR0YWNobWVudHMudGFrZUxhc3QoKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
QXJndW1lbnREZWNvZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRE
ZWNvZGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjYTBjMTlkNmJmMzI3YTdh
MDM5YWFlODliZDk2YzFiZTQ5ZTZmZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0FyZ3VtZW50RGVjb2Rl
ci5oCisrKyAvZGV2L251bGwKQEAgLTEsMTEyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVm
IEFyZ3VtZW50RGVjb2Rlcl9oCi0jZGVmaW5lIEFyZ3VtZW50RGVjb2Rlcl9oCi0KLSNpbmNsdWRl
ICJBcmd1bWVudENvZGVyLmgiCi0jaW5jbHVkZSAiQXR0YWNobWVudC5oIgotI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIElQQyB7Ci0KLWNsYXNzIERhdGFSZWZlcmVuY2U7Ci0g
ICAgCi1jbGFzcyBBcmd1bWVudERlY29kZXIgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwotcHVibGljOgotICAgIEFyZ3VtZW50RGVjb2Rlcihjb25zdCB1aW50OF90KiBidWZmZXIsIHNp
emVfdCBidWZmZXJTaXplKTsKLSAgICB2aXJ0dWFsIH5Bcmd1bWVudERlY29kZXIoKTsKLQotICAg
IHNpemVfdCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2J1ZmZlckVuZCAtIG1fYnVmZmVyOyB9
Ci0KLSAgICBib29sIGlzSW52YWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyUG9zID4gbV9i
dWZmZXJFbmQ7IH0KLSAgICB2b2lkIG1hcmtJbnZhbGlkKCkgeyBtX2J1ZmZlclBvcyA9IG1fYnVm
ZmVyRW5kICsgMTsgfQotCi0gICAgYm9vbCBkZWNvZGVGaXhlZExlbmd0aERhdGEodWludDhfdCos
IHNpemVfdCwgdW5zaWduZWQgYWxpZ25tZW50KTsKLQotICAgIC8vIFRoZSBkYXRhIGluIHRoZSBk
YXRhIHJlZmVyZW5jZSBoZXJlIHdpbGwgb25seSBiZSB2YWxpZCBmb3IgdGhlIGxpZmV0aW1lIG9m
IHRoZSBBcmd1bWVudERlY29kZXIgb2JqZWN0LgotICAgIGJvb2wgZGVjb2RlVmFyaWFibGVMZW5n
dGhCeXRlQXJyYXkoRGF0YVJlZmVyZW5jZSYpOwotCi0gICAgYm9vbCBkZWNvZGUoYm9vbCYpOwot
ICAgIGJvb2wgZGVjb2RlKHVpbnQ4X3QmKTsKLSAgICBib29sIGRlY29kZSh1aW50MTZfdCYpOwot
ICAgIGJvb2wgZGVjb2RlKHVpbnQzMl90Jik7Ci0gICAgYm9vbCBkZWNvZGUodWludDY0X3QmKTsK
LSAgICBib29sIGRlY29kZShpbnQzMl90Jik7Ci0gICAgYm9vbCBkZWNvZGUoaW50NjRfdCYpOwot
ICAgIGJvb2wgZGVjb2RlKGZsb2F0Jik7Ci0gICAgYm9vbCBkZWNvZGUoZG91YmxlJik7Ci0KLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBib29sIGRlY29kZUVudW0oVCYgcmVzdWx0KQotICAgIHsK
LSAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2YoVCkgPD0gOCwgIkVudW0gdHlwZSBUIG11c3Qg
bm90IGJlIGxhcmdlciB0aGFuIDY0IGJpdHMhIik7Ci0KLSAgICAgICAgdWludDY0X3QgdmFsdWU7
Ci0gICAgICAgIGlmICghZGVjb2RlKHZhbHVlKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgCi0gICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PFQ+KHZhbHVlKTsKLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KLSAgICBi
b29sIGJ1ZmZlcklzTGFyZ2VFbm91Z2hUb0NvbnRhaW4oc2l6ZV90IG51bUVsZW1lbnRzKSBjb25z
dAotICAgIHsKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2FyaXRobWV0aWM8VD46OnZh
bHVlLCAiVHlwZSBUIG11c3QgaGF2ZSBhIGZpeGVkLCBrbm93biBlbmNvZGVkIHNpemUhIik7Ci0K
LSAgICAgICAgaWYgKG51bUVsZW1lbnRzID4gc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+Ojpt
YXgoKSAvIHNpemVvZihUKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBy
ZXR1cm4gYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbihhbGlnbm9mKFQpLCBudW1FbGVtZW50
cyAqIHNpemVvZihUKSk7Ci0gICAgfQotCi0gICAgLy8gR2VuZXJpYyB0eXBlIGRlY29kZSBmdW5j
dGlvbi4KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBib29sIGRlY29kZShUJiB0KQotICAgIHsK
LSAgICAgICAgcmV0dXJuIEFyZ3VtZW50Q29kZXI8VD46OmRlY29kZSgqdGhpcywgdCk7Ci0gICAg
fQotCi0gICAgYm9vbCByZW1vdmVBdHRhY2htZW50KEF0dGFjaG1lbnQmKTsKLQotcHJvdGVjdGVk
OgotICAgIEFyZ3VtZW50RGVjb2Rlcihjb25zdCB1aW50OF90KiBidWZmZXIsIHNpemVfdCBidWZm
ZXJTaXplLCBWZWN0b3I8QXR0YWNobWVudD4pOwotCi0gICAgdm9pZCBpbml0aWFsaXplKGNvbnN0
IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90IGJ1ZmZlclNpemUpOwotCi0gICAgYm9vbCBhbGlnbkJ1
ZmZlclBvc2l0aW9uKHVuc2lnbmVkIGFsaWdubWVudCwgc2l6ZV90IHNpemUpOwotICAgIGJvb2wg
YnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbih1bnNpZ25lZCBhbGlnbm1lbnQsIHNpemVfdCBz
aXplKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICB1aW50OF90KiBtX2J1ZmZlcjsKLSAgICB1aW50
OF90KiBtX2J1ZmZlclBvczsKLSAgICB1aW50OF90KiBtX2J1ZmZlckVuZDsKLQotICAgIFZlY3Rv
cjxBdHRhY2htZW50PiBtX2F0dGFjaG1lbnRzOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgSVBDCi0K
LSNlbmRpZiAvLyBBcmd1bWVudERlY29kZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL0FyZ3VtZW50cy5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Fy
Z3VtZW50cy5oCmluZGV4IGUyMGVmY2NkZTY3NjJlOWQ3ZjI4MDhkYzYxZDY0OTZiYmYxZGQ2MWYu
LjBkZDM0YWFlYTE4NWYwYTQyZjkzNzgwOGVmNGMzZjZlOWI0YzEzZjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Bcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9JUEMvQXJndW1lbnRzLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgQXJn
dW1lbnRzX2gKICNkZWZpbmUgQXJndW1lbnRzX2gKIAotI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rl
ci5oIgorI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgiCiAKIG5hbWVz
cGFjZSBJUEMgewpAQCAtMzksNyArMzksNyBAQCBzdHJ1Y3QgVHVwbGVDb2RlciB7CiAgICAgICAg
IFR1cGxlQ29kZXI8aW5kZXggLSAxLCBFbGVtZW50cy4uLj46OmVuY29kZShlbmNvZGVyLCB0dXBs
ZSk7CiAgICAgfQogCi0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVj
b2Rlciwgc3RkOjp0dXBsZTxFbGVtZW50cy4uLj4mIHR1cGxlKQorICAgIHN0YXRpYyBib29sIGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnR1cGxlPEVsZW1lbnRzLi4uPiYgdHVwbGUpCiAg
ICAgewogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0ZDo6Z2V0PHNpemVvZi4uLihFbGVt
ZW50cykgLSBpbmRleD4odHVwbGUpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTUz
LDcgKzUzLDcgQEAgc3RydWN0IFR1cGxlQ29kZXI8MCwgRWxlbWVudHMuLi4+IHsKICAgICB7CiAg
ICAgfQogCi0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIHN0ZDo6dHVw
bGU8RWxlbWVudHMuLi4+JikKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIHN0ZDo6
dHVwbGU8RWxlbWVudHMuLi4+JikKICAgICB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
QEAgLTY1LDcgKzY1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gRWxlbWVudHM+IHN0cnVjdCBB
cmd1bWVudENvZGVyPHN0ZDo6dHVwbGU8RWxlbWVudHMuLi4+PiB7CiAgICAgICAgIFR1cGxlQ29k
ZXI8c2l6ZW9mLi4uKEVsZW1lbnRzKSwgRWxlbWVudHMuLi4+OjplbmNvZGUoZW5jb2RlciwgdHVw
bGUpOwogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRl
Y29kZXIsIHN0ZDo6dHVwbGU8RWxlbWVudHMuLi4+JiB0dXBsZSkKKyAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwgc3RkOjp0dXBsZTxFbGVtZW50cy4uLj4mIHR1cGxlKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIFR1cGxlQ29kZXI8c2l6ZW9mLi4uKEVsZW1lbnRzKSwgRWxl
bWVudHMuLi4+OjpkZWNvZGUoZGVjb2RlciwgdHVwbGUpOwogICAgIH0KQEAgLTg1LDcgKzg1LDcg
QEAgc3RydWN0IEFyZ3VtZW50cyB7CiAgICAgICAgIEFyZ3VtZW50Q29kZXI8c3RkOjp0dXBsZTxU
eXBlcy4uLj4+OjplbmNvZGUoZW5jb2RlciwgYXJndW1lbnRzKTsKICAgICB9CiAKLSAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBBcmd1bWVudHMmIHJlc3Vs
dCkKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQXJndW1lbnRzJiBy
ZXN1bHQpCiAgICAgewogICAgICAgICByZXR1cm4gQXJndW1lbnRDb2RlcjxzdGQ6OnR1cGxlPFR5
cGVzLi4uPj46OmRlY29kZShkZWNvZGVyLCByZXN1bHQuYXJndW1lbnRzKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXR0YWNobWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXR0YWNobWVudC5jcHAKaW5kZXggYzYyZmQ5ZmZjMmE5
ZGVlODY5ZWVkYTFkMDU4YzA2ZDYwNzY4MDA1MC4uMmM1Y2UwZTdiYmQyMGM5YTQ4NTcwZDI5Y2E4
YmM2YmNkZDU2NGJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0F0
dGFjaG1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9BdHRhY2htZW50
LmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkF0
dGFjaG1lbnQuaCIKIAotI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgorI2luY2x1ZGUgIkRl
Y29kZXIuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgiCiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtNTUs
NyArNTUsNyBAQCB2b2lkIEF0dGFjaG1lbnQ6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogICAgIGVuY29kZXIuYWRkQXR0YWNobWVudChXVEZNb3ZlKCpjb25zdF9jYXN0PEF0dGFjaG1l
bnQqPih0aGlzKSkpOwogfQogCi1ib29sIEF0dGFjaG1lbnQ6OmRlY29kZShBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIEF0dGFjaG1lbnQmIGF0dGFjaG1lbnQpCitib29sIEF0dGFjaG1lbnQ6OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBBdHRhY2htZW50JiBhdHRhY2htZW50KQogewogICAgIGlm
ICghZGVjb2Rlci5yZW1vdmVBdHRhY2htZW50KGF0dGFjaG1lbnQpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQXR0YWNobWVu
dC5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0F0dGFjaG1lbnQuaAppbmRleCA2ZDA2
ZGFmODg4MjA1NDY3YjJhNGRhMjgwOWJkMmMwMWQ2MGQ1Y2Y1Li5hNjg0YzBkOTE0MzZhZTkyMmM3
OTIxMjk0MDNjMWIzNWQ3YWNlMThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9JUEMvQXR0YWNobWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9BdHRh
Y2htZW50LmgKQEAgLTMzLDcgKzMzLDcgQEAKIAogbmFtZXNwYWNlIElQQyB7CiAKLWNsYXNzIEFy
Z3VtZW50RGVjb2RlcjsKK2NsYXNzIERlY29kZXI7CiBjbGFzcyBFbmNvZGVyOwogCiBjbGFzcyBB
dHRhY2htZW50IHsKQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lk
IGVuY29kZShFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50
RGVjb2RlciYsIEF0dGFjaG1lbnQmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYs
IEF0dGFjaG1lbnQmKTsKICAgICAKIHByaXZhdGU6CiAgICAgVHlwZSBtX3R5cGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKaW5kZXggYWVmMjYwZTU2NWE3MjIw
NTkxY2U4MGNkNjg2NmUxZTVhZmYzNzllMy4uZDI3YjJiMGQyOGE5NWZkNGI2ZTAyOTI4YzY5ZjBh
Y2JkZmY5NzNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNw
cApAQCAtNTIsNyArNTIsNyBAQCBzdHJ1Y3QgV2FpdEZvck1lc3NhZ2VTdGF0ZSB7CiAgICAgdW5z
aWduZWQgd2FpdEZvck1lc3NhZ2VGbGFnczsKICAgICBib29sIG1lc3NhZ2VXYWl0aW5nSW50ZXJy
dXB0ZWQgPSBmYWxzZTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gZGVj
b2RlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gZGVjb2RlcjsKIH07CiAKIGNsYXNz
IENvbm5lY3Rpb246OlN5bmNNZXNzYWdlU3RhdGUgewpAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6
CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhpcyBtZXNzYWdlIHdpbGwgYmUgaGFuZGxlZCBv
biBhIGNsaWVudCB0aHJlYWQgdGhhdCBpcyBjdXJyZW50bHkKICAgICAvLyB3YWl0aW5nIGZvciBh
IHJlcGx5IHRvIGEgc3luY2hyb25vdXMgbWVzc2FnZS4KLSAgICBib29sIHByb2Nlc3NJbmNvbWlu
Z01lc3NhZ2UoQ29ubmVjdGlvbiYsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4mKTsK
KyAgICBib29sIHByb2Nlc3NJbmNvbWluZ01lc3NhZ2UoQ29ubmVjdGlvbiYsIHN0ZDo6dW5pcXVl
X3B0cjxEZWNvZGVyPiYpOwogCiAgICAgLy8gRGlzcGF0Y2ggcGVuZGluZyBzeW5jIG1lc3NhZ2Vz
LiBpZiBhbGxvd2VkQ29ubmVjdGlvbiBpcyBub3QgbnVsbCwgd2lsbCBvbmx5IGRpc3BhdGNoIG1l
c3NhZ2VzCiAgICAgLy8gZnJvbSB0aGF0IGNvbm5lY3Rpb24gYW5kIHB1dCB0aGUgb3RoZXIgbWVz
c2FnZXMgYmFjayBpbiB0aGUgcXVldWUuCkBAIC05Myw3ICs5Myw3IEBAIHByaXZhdGU6CiAKICAg
ICBzdHJ1Y3QgQ29ubmVjdGlvbkFuZEluY29taW5nTWVzc2FnZSB7CiAgICAgICAgIFJlZjxDb25u
ZWN0aW9uPiBjb25uZWN0aW9uOwotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29k
ZXI+IG1lc3NhZ2U7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBtZXNzYWdlOwog
ICAgIH07CiAgICAgVmVjdG9yPENvbm5lY3Rpb25BbmRJbmNvbWluZ01lc3NhZ2U+IG1fbWVzc2Fn
ZXNUb0Rpc3BhdGNoV2hpbGVXYWl0aW5nRm9yU3luY1JlcGx5OwogfTsKQEAgLTEwMSw3ICsxMDEs
NyBAQCBwcml2YXRlOgogY2xhc3MgQ29ubmVjdGlvbjo6U2Vjb25kYXJ5VGhyZWFkUGVuZGluZ1N5
bmNSZXBseSB7CiBwdWJsaWM6CiAgICAgLy8gVGhlIHJlcGx5IGRlY29kZXIsIHdpbGwgYmUgbnVs
bCBpZiB0aGVyZSB3YXMgYW4gZXJyb3IgcHJvY2Vzc2luZyB0aGUgc3luYyBtZXNzYWdlIG9uIHRo
ZSBvdGhlciBzaWRlLgotICAgIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gcmVwbHlE
ZWNvZGVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiByZXBseURlY29kZXI7CiAKICAg
ICBCaW5hcnlTZW1hcGhvcmUgc2VtYXBob3JlOwogfTsKQEAgLTEyMyw3ICsxMjMsNyBAQCBDb25u
ZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjpTeW5jTWVzc2FnZVN0YXRlKCkKIHsKIH0KIAotYm9v
bCBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdlKENv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4mIG1l
c3NhZ2UpCitib29sIENvbm5lY3Rpb246OlN5bmNNZXNzYWdlU3RhdGU6OnByb2Nlc3NJbmNvbWlu
Z01lc3NhZ2UoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRyPERlY29kZXI+
JiBtZXNzYWdlKQogewogICAgIGlmICghbWVzc2FnZS0+c2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjY4LDcg
KzI2OCw3IEBAIHZvaWQgQ29ubmVjdGlvbjo6cmVtb3ZlV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVy
KFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOCiAgICAgfSk7CiB9CiAKLXZvaWQgQ29u
bmVjdGlvbjo6ZGlzcGF0Y2hXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKFdvcmtRdWV1
ZU1lc3NhZ2VSZWNlaXZlciYgd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyLCBNZXNzYWdlRGVjb2Rl
ciYgZGVjb2RlcikKK3ZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hXb3JrUXVldWVNZXNzYWdlUmVj
ZWl2ZXJNZXNzYWdlKFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciYgd29ya1F1ZXVlTWVzc2FnZVJl
Y2VpdmVyLCBEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmICghZGVjb2Rlci5pc1N5bmNNZXNz
YWdlKCkpIHsKICAgICAgICAgd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyLmRpZFJlY2VpdmVNZXNz
YWdlKCp0aGlzLCBkZWNvZGVyKTsKQEAgLTM4OCw3ICszODgsNyBAQCBzdGQ6OmNocm9ubzo6bWls
bGlzZWNvbmRzIENvbm5lY3Rpb246OnRpbWVvdXRSZXNwZWN0aW5nSWdub3JlVGltZW91dHNGb3JU
ZXN0aW5nKAogICAgIHJldHVybiBtX2lnbm9yZVRpbWVvdXRzRm9yVGVzdGluZyA/IHN0ZDo6Y2hy
b25vOjptaWxsaXNlY29uZHM6Om1heCgpIDogdGltZW91dDsKIH0KIAotc3RkOjp1bmlxdWVfcHRy
PE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aW9uOjp3YWl0Rm9yTWVzc2FnZShTdHJpbmdSZWZlcmVu
Y2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50
NjRfdCBkZXN0aW5hdGlvbklELCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIHVu
c2lnbmVkIHdhaXRGb3JNZXNzYWdlRmxhZ3MpCitzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gQ29u
bmVjdGlvbjo6d2FpdEZvck1lc3NhZ2UoU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5h
bWUsIFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCwg
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0LCB1bnNpZ25lZCB3YWl0Rm9yTWVzc2Fn
ZUZsYWdzKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTQwMSwxMCAr
NDAxLDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGlvbjo6d2Fp
dEZvck1lc3NhZ2UoU3RyaW5nUmVmZXJlbmNlIG1lc3NhCiAgICAgICAgIHN0ZDo6bG9ja19ndWFy
ZDxMb2NrPiBsb2NrKG1faW5jb21pbmdNZXNzYWdlc011dGV4KTsKIAogICAgICAgICBmb3IgKGF1
dG8gaXQgPSBtX2luY29taW5nTWVzc2FnZXMuYmVnaW4oKSwgZW5kID0gbV9pbmNvbWluZ01lc3Nh
Z2VzLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxNZXNzYWdlRGVjb2Rlcj4mIG1lc3NhZ2UgPSAqaXQ7CisgICAgICAgICAgICBzdGQ6OnVuaXF1
ZV9wdHI8RGVjb2Rlcj4mIG1lc3NhZ2UgPSAqaXQ7CiAKICAgICAgICAgICAgIGlmIChtZXNzYWdl
LT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gbWVzc2FnZVJlY2VpdmVyTmFtZSAmJiBtZXNzYWdl
LT5tZXNzYWdlTmFtZSgpID09IG1lc3NhZ2VOYW1lICYmIG1lc3NhZ2UtPmRlc3RpbmF0aW9uSUQo
KSA9PSBkZXN0aW5hdGlvbklEKSB7Ci0gICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPE1l
c3NhZ2VEZWNvZGVyPiByZXR1cm5lZE1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpOworICAgICAg
ICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiByZXR1cm5lZE1lc3NhZ2UgPSBXVEZN
b3ZlKG1lc3NhZ2UpOwogCiAgICAgICAgICAgICAgICAgbV9pbmNvbWluZ01lc3NhZ2VzLnJlbW92
ZShpdCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJldHVybmVkTWVzc2FnZTsKQEAgLTQ1OSw3
ICs0NTksNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5lY3Rpb246Ondh
aXRGb3JNZXNzYWdlKFN0cmluZ1JlZmVyZW5jZSBtZXNzYQogICAgIHJldHVybiBudWxscHRyOwog
fQogCi1zdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5lY3Rpb246OnNlbmRTeW5j
TWVzc2FnZSh1aW50NjRfdCBzeW5jUmVxdWVzdElELCBzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4g
ZW5jb2Rlciwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0LCB1bnNpZ25lZCBzeW5j
U2VuZEZsYWdzKQorc3RkOjp1bmlxdWVfcHRyPERlY29kZXI+IENvbm5lY3Rpb246OnNlbmRTeW5j
TWVzc2FnZSh1aW50NjRfdCBzeW5jUmVxdWVzdElELCBzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4g
ZW5jb2Rlciwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0LCB1bnNpZ25lZCBzeW5j
U2VuZEZsYWdzKQogewogICAgIGlmICghUnVuTG9vcDo6aXNNYWluKCkpIHsKICAgICAgICAgLy8g
Tm8gZmxhZ3MgYXJlIHN1cHBvcnRlZCBmb3Igc3luY2hyb25vdXMgbWVzc2FnZXMgc2VudCBmcm9t
IHNlY29uZGFyeSB0aHJlYWRzLgpAQCAtNDk1LDcgKzQ5NSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxN
ZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGlvbjo6c2VuZFN5bmNNZXNzYWdlKHVpbnQ2NF90IHN5bmNS
ZXF1ZXN0CiAgICAgLy8gVGhlbiB3YWl0IGZvciBhIHJlcGx5LiBXYWl0aW5nIGZvciBhIHJlcGx5
IGNvdWxkIGludm9sdmUgZGlzcGF0Y2hpbmcgaW5jb21pbmcgc3luYyBtZXNzYWdlcywgc28KICAg
ICAvLyBrZWVwIGFuIGV4dHJhIHJlZmVyZW5jZSB0byB0aGUgY29ubmVjdGlvbiBoZXJlIGluIGNh
c2UgaXQncyBpbnZhbGlkYXRlZC4KICAgICBSZWY8Q29ubmVjdGlvbj4gcHJvdGVjdCgqdGhpcyk7
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiByZXBseSA9IHdhaXRGb3JTeW5j
UmVwbHkoc3luY1JlcXVlc3RJRCwgdGltZW91dCwgc3luY1NlbmRGbGFncyk7CisgICAgc3RkOjp1
bmlxdWVfcHRyPERlY29kZXI+IHJlcGx5ID0gd2FpdEZvclN5bmNSZXBseShzeW5jUmVxdWVzdElE
LCB0aW1lb3V0LCBzeW5jU2VuZEZsYWdzKTsKIAogICAgIC0tbV9pblNlbmRTeW5jQ291bnQ7CiAK
QEAgLTUxMiw3ICs1MTIsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5l
Y3Rpb246OnNlbmRTeW5jTWVzc2FnZSh1aW50NjRfdCBzeW5jUmVxdWVzdAogICAgIHJldHVybiBy
ZXBseTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aW9uOjpz
ZW5kU3luY01lc3NhZ2VGcm9tU2Vjb25kYXJ5VGhyZWFkKHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQs
IHN0ZDo6dW5pcXVlX3B0cjxFbmNvZGVyPiBlbmNvZGVyLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzIHRpbWVvdXQpCitzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gQ29ubmVjdGlvbjo6c2VuZFN5
bmNNZXNzYWdlRnJvbVNlY29uZGFyeVRocmVhZCh1aW50NjRfdCBzeW5jUmVxdWVzdElELCBzdGQ6
OnVuaXF1ZV9wdHI8RW5jb2Rlcj4gZW5jb2Rlciwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0
aW1lb3V0KQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC01NTAsNyAr
NTUwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aW9uOjpzZW5k
U3luY01lc3NhZ2VGcm9tU2Vjb25kYXJ5VGhyZWFkKHUKICAgICByZXR1cm4gV1RGTW92ZShwZW5k
aW5nUmVwbHkucmVwbHlEZWNvZGVyKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNv
ZGVyPiBDb25uZWN0aW9uOjp3YWl0Rm9yU3luY1JlcGx5KHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQs
IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgdW5zaWduZWQgc3luY1NlbmRGbGFn
cykKK3N0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBDb25uZWN0aW9uOjp3YWl0Rm9yU3luY1JlcGx5
KHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91
dCwgdW5zaWduZWQgc3luY1NlbmRGbGFncykKIHsKICAgICB0aW1lb3V0ID0gdGltZW91dFJlc3Bl
Y3RpbmdJZ25vcmVUaW1lb3V0c0ZvclRlc3RpbmcodGltZW91dCk7CiAgICAgZG91YmxlIGFic29s
dXRlVGltZSA9IGN1cnJlbnRUaW1lKCkgKyAodGltZW91dC5jb3VudCgpIC8gMTAwMC4wKTsKQEAg
LTYwMCw3ICs2MDAsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IENvbm5lY3Rp
b246OndhaXRGb3JTeW5jUmVwbHkodWludDY0X3Qgc3luY1JlcXVlcwogICAgIHJldHVybiBudWxs
cHRyOwogfQogCi12b2lkIENvbm5lY3Rpb246OnByb2Nlc3NJbmNvbWluZ1N5bmNSZXBseShzdGQ6
OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IGRlY29kZXIpCit2b2lkIENvbm5lY3Rpb246OnBy
b2Nlc3NJbmNvbWluZ1N5bmNSZXBseShzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gZGVjb2RlcikK
IHsKICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0ZXgpOwogCkBAIC02
MzcsNyArNjM3LDcgQEAgdm9pZCBDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdTeW5jUmVwbHko
c3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBkZWNvZGUKICAgICAvLyBUaGlzIGNhbiBo
YXBwZW4gaWYgdGhlIHNlbmQgdGltZWQgb3V0LCBzbyBpdCdzIGZpbmUgdG8gaWdub3JlLgogfQog
Ci12b2lkIENvbm5lY3Rpb246OnByb2Nlc3NJbmNvbWluZ01lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRy
PE1lc3NhZ2VEZWNvZGVyPiBtZXNzYWdlKQordm9pZCBDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21p
bmdNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBtZXNzYWdlKQogewogICAgIEFTU0VS
VCghbWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpLmlzRW1wdHkoKSk7CiAgICAgQVNTRVJU
KCFtZXNzYWdlLT5tZXNzYWdlTmFtZSgpLmlzRW1wdHkoKSk7CkBAIC04MjAsNyArODIwLDcgQEAg
dm9pZCBDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNzYWdlcygpCiAgICAgfQogfQogCi12b2lk
IENvbm5lY3Rpb246OmRpc3BhdGNoU3luY01lc3NhZ2UoTWVzc2FnZURlY29kZXImIGRlY29kZXIp
Cit2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoU3luY01lc3NhZ2UoRGVjb2RlciYgZGVjb2RlcikK
IHsKICAgICBBU1NFUlQoZGVjb2Rlci5pc1N5bmNNZXNzYWdlKCkpOwogCkBAIC04NDIsNyArODQy
LDcgQEAgdm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaFN5bmNNZXNzYWdlKE1lc3NhZ2VEZWNvZGVy
JiBkZWNvZGVyKQogICAgICAgICAgICAgZGVjb2Rlci5tYXJrSW52YWxpZCgpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVj
b2Rlcj4gdW53cmFwcGVkRGVjb2RlciA9IE1lc3NhZ2VEZWNvZGVyOjp1bndyYXBGb3JUZXN0aW5n
KGRlY29kZXIpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gdW53cmFwcGVkRGVj
b2RlciA9IERlY29kZXI6OnVud3JhcEZvclRlc3RpbmcoZGVjb2Rlcik7CiAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKHVud3JhcHBlZERlY29kZXIpOwogICAgICAgICBwcm9jZXNzSW5jb21pbmdNZXNz
YWdlKFdURk1vdmUodW53cmFwcGVkRGVjb2RlcikpOwogCkBAIC04NzcsNyArODc3LDcgQEAgdm9p
ZCBDb25uZWN0aW9uOjpkaWRGYWlsVG9TZW5kU3luY01lc3NhZ2UoKQogICAgIGV4aXQoMCk7CiB9
CiAKLXZvaWQgQ29ubmVjdGlvbjo6ZW5xdWV1ZUluY29taW5nTWVzc2FnZShzdGQ6OnVuaXF1ZV9w
dHI8TWVzc2FnZURlY29kZXI+IGluY29taW5nTWVzc2FnZSkKK3ZvaWQgQ29ubmVjdGlvbjo6ZW5x
dWV1ZUluY29taW5nTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gaW5jb21pbmdNZXNz
YWdlKQogewogICAgIHsKICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sobV9pbmNv
bWluZ01lc3NhZ2VzTXV0ZXgpOwpAQCAtODg5LDEyICs4ODksMTIgQEAgdm9pZCBDb25uZWN0aW9u
OjplbnF1ZXVlSW5jb21pbmdNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4g
aW5jb21pbmcKICAgICB9KTsKIH0KIAotdm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2Uo
TWVzc2FnZURlY29kZXImIGRlY29kZXIpCit2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2Fn
ZShEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZSgq
dGhpcywgZGVjb2Rlcik7CiB9CiAKLXZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlKHN0
ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gbWVzc2FnZSkKK3ZvaWQgQ29ubmVjdGlvbjo6
ZGlzcGF0Y2hNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBtZXNzYWdlKQogewogI2lm
IEhBVkUoRFRSQUNFKQogICAgIE1lc3NhZ2VSZWNvcmRlcjo6cmVjb3JkSW5jb21pbmdNZXNzYWdl
KCp0aGlzLCAqbWVzc2FnZSk7CkBAIC05NDMsNyArOTQzLDcgQEAgdm9pZCBDb25uZWN0aW9uOjpk
aXNwYXRjaE1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBtZXNzYWdlKQog
CiB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoT25lTWVzc2FnZSgpCiB7Ci0gICAgc3RkOjp1bmlx
dWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBtZXNzYWdlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxEZWNv
ZGVyPiBtZXNzYWdlOwogCiAgICAgewogICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9j
ayhtX2luY29taW5nTWVzc2FnZXNNdXRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nv
bm5lY3Rpb24uaAppbmRleCA5MTM1MWJjZTI2Y2FkMTBiMzQyYjE0MjA5NmM3YzNmMGZhZWRlMzBl
Li45NTA5M2M1NDJmMDZjZDg3NzJkNjIyYzRkNzVkZGJiZmYwN2VmOWQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKQEAgLTI4LDggKzI4LDggQEAKICNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCisjaW5jbHVkZSAiRGVjb2Rlci5oIgogI2lu
Y2x1ZGUgIkVuY29kZXIuaCIKLSNpbmNsdWRlICJNZXNzYWdlRGVjb2Rlci5oIgogI2luY2x1ZGUg
Ik1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlByb2Nlc3NUeXBlLmgiCiAjaW5jbHVkZSA8
YXRvbWljPgpAQCAtMTc0LDggKzE3NCw4IEBAIHB1YmxpYzoKIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxFbmNvZGVyPiBjcmVhdGVTeW5jTWVzc2FnZUVuY29kZXIoU3RyaW5nUmVmZXJlbmNlIG1lc3Nh
Z2VSZWNlaXZlck5hbWUsIFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSwgdWludDY0X3QgZGVz
dGluYXRpb25JRCwgdWludDY0X3QmIHN5bmNSZXF1ZXN0SUQpOwogICAgIGJvb2wgc2VuZE1lc3Nh
Z2Uoc3RkOjp1bmlxdWVfcHRyPEVuY29kZXI+LCB1bnNpZ25lZCBtZXNzYWdlU2VuZEZsYWdzID0g
MCwgYm9vbCBhbHJlYWR5UmVjb3JkZWRNZXNzYWdlID0gZmFsc2UpOwotICAgIHN0ZDo6dW5pcXVl
X3B0cjxNZXNzYWdlRGVjb2Rlcj4gc2VuZFN5bmNNZXNzYWdlKHVpbnQ2NF90IHN5bmNSZXF1ZXN0
SUQsIHN0ZDo6dW5pcXVlX3B0cjxFbmNvZGVyPiwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0
aW1lb3V0LCB1bnNpZ25lZCBzeW5jU2VuZEZsYWdzID0gMCk7Ci0gICAgc3RkOjp1bmlxdWVfcHRy
PE1lc3NhZ2VEZWNvZGVyPiBzZW5kU3luY01lc3NhZ2VGcm9tU2Vjb25kYXJ5VGhyZWFkKHVpbnQ2
NF90IHN5bmNSZXF1ZXN0SUQsIHN0ZDo6dW5pcXVlX3B0cjxFbmNvZGVyPiwgc3RkOjpjaHJvbm86
Om1pbGxpc2Vjb25kcyB0aW1lb3V0KTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gc2Vu
ZFN5bmNNZXNzYWdlKHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQsIHN0ZDo6dW5pcXVlX3B0cjxFbmNv
ZGVyPiwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0LCB1bnNpZ25lZCBzeW5jU2Vu
ZEZsYWdzID0gMCk7CisgICAgc3RkOjp1bmlxdWVfcHRyPERlY29kZXI+IHNlbmRTeW5jTWVzc2Fn
ZUZyb21TZWNvbmRhcnlUaHJlYWQodWludDY0X3Qgc3luY1JlcXVlc3RJRCwgc3RkOjp1bmlxdWVf
cHRyPEVuY29kZXI+LCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQpOwogICAgIGJv
b2wgc2VuZFN5bmNSZXBseShzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4pOwogCiAgICAgdm9pZCB3
YWtlVXBSdW5Mb29wKCk7CkBAIC0yMTEsMTUgKzIxMSwxNSBAQCBwcml2YXRlOgogICAgIHZvaWQg
cGxhdGZvcm1Jbml0aWFsaXplKElkZW50aWZpZXIpOwogICAgIHZvaWQgcGxhdGZvcm1JbnZhbGlk
YXRlKCk7CiAgICAgCi0gICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiB3YWl0Rm9y
TWVzc2FnZShTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgU3RyaW5nUmVmZXJl
bmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCBzdGQ6OmNocm9ubzo6bWls
bGlzZWNvbmRzIHRpbWVvdXQsIHVuc2lnbmVkIHdhaXRGb3JNZXNzYWdlRmxhZ3MpOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiB3YWl0Rm9yTWVzc2FnZShTdHJpbmdSZWZlcmVuY2UgbWVz
c2FnZVJlY2VpdmVyTmFtZSwgU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBk
ZXN0aW5hdGlvbklELCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIHVuc2lnbmVk
IHdhaXRGb3JNZXNzYWdlRmxhZ3MpOwogICAgIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdl
RGVjb2Rlcj4gd2FpdEZvclN5bmNSZXBseSh1aW50NjRfdCBzeW5jUmVxdWVzdElELCBzdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIHVuc2lnbmVkIHN5bmNTZW5kRmxhZ3MpOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiB3YWl0Rm9yU3luY1JlcGx5KHVpbnQ2NF90IHN5bmNS
ZXF1ZXN0SUQsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgdW5zaWduZWQgc3lu
Y1NlbmRGbGFncyk7CiAKICAgICAvLyBDYWxsZWQgb24gdGhlIGNvbm5lY3Rpb24gd29yayBxdWV1
ZS4KLSAgICB2b2lkIHByb2Nlc3NJbmNvbWluZ01lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPE1lc3Nh
Z2VEZWNvZGVyPik7Ci0gICAgdm9pZCBwcm9jZXNzSW5jb21pbmdTeW5jUmVwbHkoc3RkOjp1bmlx
dWVfcHRyPE1lc3NhZ2VEZWNvZGVyPik7CisgICAgdm9pZCBwcm9jZXNzSW5jb21pbmdNZXNzYWdl
KHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPik7CisgICAgdm9pZCBwcm9jZXNzSW5jb21pbmdTeW5j
UmVwbHkoc3RkOjp1bmlxdWVfcHRyPERlY29kZXI+KTsKIAotICAgIHZvaWQgZGlzcGF0Y2hXb3Jr
UXVldWVNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciYsIE1l
c3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaXNwYXRjaFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZl
ck1lc3NhZ2UoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyJiwgRGVjb2RlciYpOwogCiAgICAgYm9v
bCBjYW5TZW5kT3V0Z29pbmdNZXNzYWdlcygpIGNvbnN0OwogICAgIGJvb2wgcGxhdGZvcm1DYW5T
ZW5kT3V0Z29pbmdNZXNzYWdlcygpIGNvbnN0OwpAQCAtMjI5LDE0ICsyMjksMTQgQEAgcHJpdmF0
ZToKICAgICAKICAgICAvLyBDYWxsZWQgb24gdGhlIGxpc3RlbmVyIHRocmVhZC4KICAgICB2b2lk
IGRpc3BhdGNoT25lTWVzc2FnZSgpOwotICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlKHN0ZDo6dW5p
cXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4pOwotICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlKE1lc3Nh
Z2VEZWNvZGVyJik7Ci0gICAgdm9pZCBkaXNwYXRjaFN5bmNNZXNzYWdlKE1lc3NhZ2VEZWNvZGVy
Jik7CisgICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPERlY29kZXI+KTsK
KyAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZShEZWNvZGVyJik7CisgICAgdm9pZCBkaXNwYXRjaFN5
bmNNZXNzYWdlKERlY29kZXImKTsKICAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUludmFsaWRN
ZXNzYWdlKGNvbnN0IENTdHJpbmcmIG1lc3NhZ2VSZWNlaXZlck5hbWVTdHJpbmcsIGNvbnN0IENT
dHJpbmcmIG1lc3NhZ2VOYW1lU3RyaW5nKTsKICAgICB2b2lkIGRpZEZhaWxUb1NlbmRTeW5jTWVz
c2FnZSgpOwogCiAgICAgLy8gQ2FuIGJlIGNhbGxlZCBvbiBhbnkgdGhyZWFkLgotICAgIHZvaWQg
ZW5xdWV1ZUluY29taW5nTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+KTsK
KyAgICB2b2lkIGVucXVldWVJbmNvbWluZ01lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPERlY29kZXI+
KTsKIAogICAgIHZvaWQgd2lsbFNlbmRTeW5jTWVzc2FnZSh1bnNpZ25lZCBzeW5jU2VuZEZsYWdz
KTsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUmVwbHkodW5zaWduZWQgc3luY1NlbmRGbGFncyk7
CkBAIC0yNjYsNyArMjY2LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIEluY29taW5nIG1lc3NhZ2Vz
LgogICAgIExvY2sgbV9pbmNvbWluZ01lc3NhZ2VzTXV0ZXg7Ci0gICAgRGVxdWU8c3RkOjp1bmlx
dWVfcHRyPE1lc3NhZ2VEZWNvZGVyPj4gbV9pbmNvbWluZ01lc3NhZ2VzOworICAgIERlcXVlPHN0
ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPj4gbV9pbmNvbWluZ01lc3NhZ2VzOwogCiAgICAgLy8gT3V0
Z29pbmcgbWVzc2FnZXMuCiAgICAgTG9jayBtX291dGdvaW5nTWVzc2FnZXNNdXRleDsKQEAgLTI4
NCw3ICsyODQsNyBAQCBwcml2YXRlOgogCiAgICAgICAgIC8vIFRoZSByZXBseSBkZWNvZGVyLCB3
aWxsIGJlIG51bGwgaWYgdGhlcmUgd2FzIGFuIGVycm9yIHByb2Nlc3NpbmcgdGhlIHN5bmMKICAg
ICAgICAgLy8gbWVzc2FnZSBvbiB0aGUgb3RoZXIgc2lkZS4KLSAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPE1lc3NhZ2VEZWNvZGVyPiByZXBseURlY29kZXI7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxEZWNvZGVyPiByZXBseURlY29kZXI7CiAKICAgICAgICAgLy8gV2lsbCBiZSBzZXQgdG8gdHJ1
ZSBvbmNlIGEgcmVwbHkgaGFzIGJlZW4gcmVjZWl2ZWQuCiAgICAgICAgIGJvb2wgZGlkUmVjZWl2
ZVJlcGx5OwpAQCAtMzg0LDcgKzM4NCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGJvb2wgQ29u
bmVjdGlvbjo6c2VuZFN5bmMoVCYmIG1lc3NhZ2UsIHR5cGVuYW1lIFQ6OlJlcGx5JiYKICAgICBl
bmNvZGVyLT5lbmNvZGUobWVzc2FnZS5hcmd1bWVudHMoKSk7CiAKICAgICAvLyBOb3cgc2VuZCB0
aGUgbWVzc2FnZSBhbmQgd2FpdCBmb3IgYSByZXBseS4KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVz
c2FnZURlY29kZXI+IHJlcGx5RGVjb2RlciA9IHNlbmRTeW5jTWVzc2FnZShzeW5jUmVxdWVzdElE
LCBXVEZNb3ZlKGVuY29kZXIpLCB0aW1lb3V0LCBzeW5jU2VuZEZsYWdzKTsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8RGVjb2Rlcj4gcmVwbHlEZWNvZGVyID0gc2VuZFN5bmNNZXNzYWdlKHN5bmNSZXF1
ZXN0SUQsIFdURk1vdmUoZW5jb2RlciksIHRpbWVvdXQsIHN5bmNTZW5kRmxhZ3MpOwogICAgIGlm
ICghcmVwbHlEZWNvZGVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTM5NCw3ICszOTQs
NyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBib29sIENvbm5lY3Rpb246OnNlbmRTeW5jKFQmJiBt
ZXNzYWdlLCB0eXBlbmFtZSBUOjpSZXBseSYmCiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGJvb2wg
Q29ubmVjdGlvbjo6d2FpdEZvckFuZERpc3BhdGNoSW1tZWRpYXRlbHkodWludDY0X3QgZGVzdGlu
YXRpb25JRCwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0LCB1bnNpZ25lZCB3YWl0
Rm9yTWVzc2FnZUZsYWdzKQogewotICAgIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4g
ZGVjb2RlciA9IHdhaXRGb3JNZXNzYWdlKFQ6OnJlY2VpdmVyTmFtZSgpLCBUOjpuYW1lKCksIGRl
c3RpbmF0aW9uSUQsIHRpbWVvdXQsIHdhaXRGb3JNZXNzYWdlRmxhZ3MpOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxEZWNvZGVyPiBkZWNvZGVyID0gd2FpdEZvck1lc3NhZ2UoVDo6cmVjZWl2ZXJOYW1l
KCksIFQ6Om5hbWUoKSwgZGVzdGluYXRpb25JRCwgdGltZW91dCwgd2FpdEZvck1lc3NhZ2VGbGFn
cyk7CiAgICAgaWYgKCFkZWNvZGVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9EYXRhUmVmZXJlbmNlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9EYXRhUmVmZXJlbmNlLmNwcAppbmRleCBlZjZjMWRkNGI1
NmFmYWQ5MmEwMmY5Mzk3YWZmOTRkNTY1ZjcwZjNlLi45YmRlYzRmZjRmNjY4NThiNzYzM2M4NDQx
ZDI3OWM4ZjcxMmM0M2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
RGF0YVJlZmVyZW5jZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0RhdGFS
ZWZlcmVuY2UuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogCi0jaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCisj
aW5jbHVkZSAiRGVjb2Rlci5oIgogI2luY2x1ZGUgIkVuY29kZXIuaCIKIAogbmFtZXNwYWNlIElQ
QyB7CkBAIC0zNiw3ICszNiw3IEBAIHZvaWQgRGF0YVJlZmVyZW5jZTo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rlci5lbmNvZGVWYXJpYWJsZUxlbmd0aEJ5dGVBcnJh
eSgqdGhpcyk7CiB9CiAKLWJvb2wgRGF0YVJlZmVyZW5jZTo6ZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciYgZGVjb2RlciwgRGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5jZSkKK2Jvb2wgRGF0YVJlZmVy
ZW5jZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIERhdGFSZWZlcmVuY2UmIGRhdGFSZWZlcmVu
Y2UpCiB7CiAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXko
ZGF0YVJlZmVyZW5jZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9J
UEMvRGF0YVJlZmVyZW5jZS5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0RhdGFSZWZl
cmVuY2UuaAppbmRleCBjMjJlNjRmNTZiZGFkMTY2OTAxZGIyZTA4M2MxMmVlZTI5YzU5Y2I3Li5m
YjU3NTkxZGI2NDY0NDdhNjIwNWY5MzFmMjExMTdkMzJjNjIwODA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvRGF0YVJlZmVyZW5jZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0lQQy9EYXRhUmVmZXJlbmNlLmgKQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFt
ZXNwYWNlIElQQyB7CiAKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIERlY29kZXI7CiBj
bGFzcyBFbmNvZGVyOwogICAgIAogY2xhc3MgRGF0YVJlZmVyZW5jZSB7CkBAIC03NCw3ICs3NCw3
IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZW5jb2RlKEVuY29kZXImKSBj
b25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgRGF0YVJlZmVy
ZW5jZSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgRGF0YVJlZmVyZW5jZSYp
OwogCiAgICAgdmlydHVhbCB+RGF0YVJlZmVyZW5jZSgpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9JUEMvRGVjb2Rlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmZhM2Y2ODE0ZWZkNmNkNjQ3ZDdjODBk
ODcxYjRjOWU3YTMzNTI0ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0lQQy9EZWNvZGVyLmNwcApAQCAtMCwwICsxLDI3NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZWNvZGVyLmgiCisKKyNpbmNsdWRlICJE
YXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiTWVzc2FnZUZsYWdzLmgiCisjaW5jbHVkZSA8c3Rk
aW8uaD4KKworI2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlICJJbXBvcnRhbmNlQXNzZXJ0aW9u
LmgiCisjZW5kaWYKKworbmFtZXNwYWNlIElQQyB7CisKK0RlY29kZXI6OkRlY29kZXIoY29uc3Qg
RGF0YVJlZmVyZW5jZSYgYnVmZmVyLCBWZWN0b3I8QXR0YWNobWVudD4gYXR0YWNobWVudHMpCit7
CisgICAgaW5pdGlhbGl6ZShidWZmZXIuZGF0YSgpLCBidWZmZXIuc2l6ZSgpKTsKKworICAgIG1f
YXR0YWNobWVudHMgPSBXVEZNb3ZlKGF0dGFjaG1lbnRzKTsKKworICAgIGlmICghZGVjb2RlKG1f
bWVzc2FnZUZsYWdzKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFkZWNvZGUobV9tZXNz
YWdlUmVjZWl2ZXJOYW1lKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFkZWNvZGUobV9t
ZXNzYWdlTmFtZSkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghZGVjb2RlKG1fZGVzdGlu
YXRpb25JRCkpCisgICAgICAgIHJldHVybjsKK30KKworRGVjb2Rlcjo6fkRlY29kZXIoKQorewor
ICAgIEFTU0VSVChtX2J1ZmZlcik7CisgICAgZmFzdEZyZWUobV9idWZmZXIpOworICAgIC8vIEZJ
WE1FOiBXZSBuZWVkIHRvIGRpc3Bvc2Ugb2YgdGhlIG1hY2ggcG9ydHMgaW4gY2FzZXMgb2YgZmFp
bHVyZS4KKworI2lmIEhBVkUoUU9TX0NMQVNTRVMpCisgICAgaWYgKG1fcW9zQ2xhc3NPdmVycmlk
ZSkKKyAgICAgICAgcHRocmVhZF9vdmVycmlkZV9xb3NfY2xhc3NfZW5kX25wKG1fcW9zQ2xhc3NP
dmVycmlkZSk7CisjZW5kaWYKK30KKworYm9vbCBEZWNvZGVyOjppc1N5bmNNZXNzYWdlKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9tZXNzYWdlRmxhZ3MgJiBTeW5jTWVzc2FnZTsKK30KKworYm9v
bCBEZWNvZGVyOjpzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbWVzc2FnZUZsYWdzICYgRGlzcGF0Y2hNZXNzYWdlV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHk7Cit9CisKK2Jvb2wgRGVjb2Rlcjo6c2hvdWxkVXNlRnVsbHlT
eW5jaHJvbm91c01vZGVGb3JUZXN0aW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9tZXNzYWdl
RmxhZ3MgJiBVc2VGdWxseVN5bmNocm9ub3VzTW9kZUZvclRlc3Rpbmc7Cit9CisKKyNpZiBQTEFU
Rk9STShNQUMpCit2b2lkIERlY29kZXI6OnNldEltcG9ydGFuY2VBc3NlcnRpb24oc3RkOjp1bmlx
dWVfcHRyPEltcG9ydGFuY2VBc3NlcnRpb24+IGFzc2VydGlvbikKK3sKKyAgICBtX2ltcG9ydGFu
Y2VBc3NlcnRpb24gPSBXVEZNb3ZlKGFzc2VydGlvbik7Cit9CisjZW5kaWYKKworc3RkOjp1bmlx
dWVfcHRyPERlY29kZXI+IERlY29kZXI6OnVud3JhcEZvclRlc3RpbmcoRGVjb2RlciYgZGVjb2Rl
cikKK3sKKyAgICBBU1NFUlQoZGVjb2Rlci5pc1N5bmNNZXNzYWdlKCkpOworCisgICAgVmVjdG9y
PEF0dGFjaG1lbnQ+IGF0dGFjaG1lbnRzOworICAgIEF0dGFjaG1lbnQgYXR0YWNobWVudDsKKyAg
ICB3aGlsZSAoZGVjb2Rlci5yZW1vdmVBdHRhY2htZW50KGF0dGFjaG1lbnQpKQorICAgICAgICBh
dHRhY2htZW50cy5hcHBlbmQoV1RGTW92ZShhdHRhY2htZW50KSk7CisgICAgYXR0YWNobWVudHMu
cmV2ZXJzZSgpOworCisgICAgRGF0YVJlZmVyZW5jZSB3cmFwcGVkTWVzc2FnZTsKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHdyYXBwZWRNZXNzYWdlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxEZWNvZGVyPih3cmFwcGVkTWVzc2FnZSwg
V1RGTW92ZShhdHRhY2htZW50cykpOworfQorCitzdGF0aWMgaW5saW5lIHVpbnQ4X3QqIHJvdW5k
VXBUb0FsaWdubWVudCh1aW50OF90KiBwdHIsIHVuc2lnbmVkIGFsaWdubWVudCkKK3sKKyAgICAv
LyBBc3NlcnQgdGhhdCB0aGUgYWxpZ25tZW50IGlzIGEgcG93ZXIgb2YgMi4KKyAgICBBU1NFUlQo
YWxpZ25tZW50ICYmICEoYWxpZ25tZW50ICYgKGFsaWdubWVudCAtIDEpKSk7CisKKyAgICB1aW50
cHRyX3QgYWxpZ25tZW50TWFzayA9IGFsaWdubWVudCAtIDE7CisgICAgcmV0dXJuIHJlaW50ZXJw
cmV0X2Nhc3Q8dWludDhfdCo+KChyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocHRyKSArIGFs
aWdubWVudE1hc2spICYgfmFsaWdubWVudE1hc2spOworfQorCit2b2lkIERlY29kZXI6OmluaXRp
YWxpemUoY29uc3QgdWludDhfdCogYnVmZmVyLCBzaXplX3QgYnVmZmVyU2l6ZSkKK3sKKyAgICBt
X2J1ZmZlciA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihmYXN0TWFsbG9jKGJ1ZmZlclNpemUpKTsK
KworICAgIEFTU0VSVCghKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihtX2J1ZmZlcikgJSBh
bGlnbm9mKHVpbnQ2NF90KSkpOworCisgICAgbV9idWZmZXJQb3MgPSBtX2J1ZmZlcjsKKyAgICBt
X2J1ZmZlckVuZCA9IG1fYnVmZmVyICsgYnVmZmVyU2l6ZTsKKyAgICBtZW1jcHkobV9idWZmZXIs
IGJ1ZmZlciwgYnVmZmVyU2l6ZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBhbGlnbmVkQnVm
ZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbihjb25zdCB1aW50OF90KiBhbGlnbmVkUG9zaXRpb24s
IGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlckVuZCwgc2l6ZV90IHNpemUpCit7CisgICAgcmV0dXJuIGJ1
ZmZlckVuZCA+PSBhbGlnbmVkUG9zaXRpb24gJiYgc3RhdGljX2Nhc3Q8c2l6ZV90PihidWZmZXJF
bmQgLSBhbGlnbmVkUG9zaXRpb24pID49IHNpemU7Cit9CisKK2Jvb2wgRGVjb2Rlcjo6YWxpZ25C
dWZmZXJQb3NpdGlvbih1bnNpZ25lZCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKQoreworICAgIHVp
bnQ4X3QqIGFsaWduZWRQb3NpdGlvbiA9IHJvdW5kVXBUb0FsaWdubWVudChtX2J1ZmZlclBvcywg
YWxpZ25tZW50KTsKKyAgICBpZiAoIWFsaWduZWRCdWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWlu
KGFsaWduZWRQb3NpdGlvbiwgbV9idWZmZXJFbmQsIHNpemUpKSB7CisgICAgICAgIC8vIFdlJ3Zl
IHdhbGtlZCBvZmYgdGhlIGVuZCBvZiB0aGlzIGJ1ZmZlci4KKyAgICAgICAgbWFya0ludmFsaWQo
KTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICBtX2J1ZmZlclBvcyA9
IGFsaWduZWRQb3NpdGlvbjsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBEZWNvZGVyOjpi
dWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluKHVuc2lnbmVkIGFsaWdubWVudCwgc2l6ZV90IHNp
emUpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFsaWduZWRCdWZmZXJJc0xhcmdlRW5vdWdoVG9Db250
YWluKHJvdW5kVXBUb0FsaWdubWVudChtX2J1ZmZlclBvcywgYWxpZ25tZW50KSwgbV9idWZmZXJF
bmQsIHNpemUpOworfQorCitib29sIERlY29kZXI6OmRlY29kZUZpeGVkTGVuZ3RoRGF0YSh1aW50
OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSwgdW5zaWduZWQgYWxpZ25tZW50KQoreworICAgIGlmICgh
YWxpZ25CdWZmZXJQb3NpdGlvbihhbGlnbm1lbnQsIHNpemUpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBtZW1jcHkoZGF0YSwgbV9idWZmZXJQb3MsIHNpemUpOworICAgIG1fYnVmZmVy
UG9zICs9IHNpemU7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBEZWNvZGVyOjpkZWNv
ZGVWYXJpYWJsZUxlbmd0aEJ5dGVBcnJheShEYXRhUmVmZXJlbmNlJiBkYXRhUmVmZXJlbmNlKQor
eworICAgIHVpbnQ2NF90IHNpemU7CisgICAgaWYgKCFkZWNvZGUoc2l6ZSkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAKKyAgICBpZiAoIWFsaWduQnVmZmVyUG9zaXRpb24oMSwgc2l6ZSkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHVpbnQ4X3QqIGRhdGEgPSBtX2J1ZmZlclBv
czsKKyAgICBtX2J1ZmZlclBvcyArPSBzaXplOworCisgICAgZGF0YVJlZmVyZW5jZSA9IERhdGFS
ZWZlcmVuY2UoZGF0YSwgc2l6ZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3RlbXBsYXRlPHR5
cGVuYW1lIFR5cGU+CitzdGF0aWMgdm9pZCBkZWNvZGVWYWx1ZUZyb21CdWZmZXIoVHlwZSYgdmFs
dWUsIHVpbnQ4X3QqJiBidWZmZXJQb3NpdGlvbikKK3sKKyAgICBtZW1jcHkoJnZhbHVlLCBidWZm
ZXJQb3NpdGlvbiwgc2l6ZW9mKHZhbHVlKSk7CisgICAgYnVmZmVyUG9zaXRpb24gKz0gc2l6ZW9m
KFR5cGUpOworfQorCitib29sIERlY29kZXI6OmRlY29kZShib29sJiByZXN1bHQpCit7CisgICAg
aWYgKCFhbGlnbkJ1ZmZlclBvc2l0aW9uKHNpemVvZihyZXN1bHQpLCBzaXplb2YocmVzdWx0KSkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBkZWNvZGVWYWx1ZUZyb21CdWZmZXIo
cmVzdWx0LCBtX2J1ZmZlclBvcyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgRGVjb2Rl
cjo6ZGVjb2RlKHVpbnQ4X3QmIHJlc3VsdCkKK3sKKyAgICBpZiAoIWFsaWduQnVmZmVyUG9zaXRp
b24oc2l6ZW9mKHJlc3VsdCksIHNpemVvZihyZXN1bHQpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgZGVjb2RlVmFsdWVGcm9tQnVmZmVyKHJlc3VsdCwgbV9idWZmZXJQb3MpOworICAg
IHJldHVybiB0cnVlOworfQorCitib29sIERlY29kZXI6OmRlY29kZSh1aW50MTZfdCYgcmVzdWx0
KQoreworICAgIGlmICghYWxpZ25CdWZmZXJQb3NpdGlvbihzaXplb2YocmVzdWx0KSwgc2l6ZW9m
KHJlc3VsdCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBkZWNvZGVWYWx1ZUZyb21C
dWZmZXIocmVzdWx0LCBtX2J1ZmZlclBvcyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wg
RGVjb2Rlcjo6ZGVjb2RlKHVpbnQzMl90JiByZXN1bHQpCit7CisgICAgaWYgKCFhbGlnbkJ1ZmZl
clBvc2l0aW9uKHNpemVvZihyZXN1bHQpLCBzaXplb2YocmVzdWx0KSkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIGRlY29kZVZhbHVlRnJvbUJ1ZmZlcihyZXN1bHQsIG1fYnVmZmVyUG9z
KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBEZWNvZGVyOjpkZWNvZGUodWludDY0X3Qm
IHJlc3VsdCkKK3sKKyAgICBpZiAoIWFsaWduQnVmZmVyUG9zaXRpb24oc2l6ZW9mKHJlc3VsdCks
IHNpemVvZihyZXN1bHQpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGRlY29k
ZVZhbHVlRnJvbUJ1ZmZlcihyZXN1bHQsIG1fYnVmZmVyUG9zKTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworYm9vbCBEZWNvZGVyOjpkZWNvZGUoaW50MzJfdCYgcmVzdWx0KQoreworICAgIGlmICgh
YWxpZ25CdWZmZXJQb3NpdGlvbihzaXplb2YocmVzdWx0KSwgc2l6ZW9mKHJlc3VsdCkpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgZGVjb2RlVmFsdWVGcm9tQnVmZmVyKHJlc3Vs
dCwgbV9idWZmZXJQb3MpOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIERlY29kZXI6OmRl
Y29kZShpbnQ2NF90JiByZXN1bHQpCit7CisgICAgaWYgKCFhbGlnbkJ1ZmZlclBvc2l0aW9uKHNp
emVvZihyZXN1bHQpLCBzaXplb2YocmVzdWx0KSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGRlY29kZVZhbHVlRnJvbUJ1ZmZlcihyZXN1bHQsIG1fYnVmZmVyUG9zKTsKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKworYm9vbCBEZWNvZGVyOjpkZWNvZGUoZmxvYXQmIHJlc3VsdCkKK3sKKyAg
ICBpZiAoIWFsaWduQnVmZmVyUG9zaXRpb24oc2l6ZW9mKHJlc3VsdCksIHNpemVvZihyZXN1bHQp
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZGVjb2RlVmFsdWVGcm9tQnVmZmVyKHJl
c3VsdCwgbV9idWZmZXJQb3MpOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIERlY29kZXI6
OmRlY29kZShkb3VibGUmIHJlc3VsdCkKK3sKKyAgICBpZiAoIWFsaWduQnVmZmVyUG9zaXRpb24o
c2l6ZW9mKHJlc3VsdCksIHNpemVvZihyZXN1bHQpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIAorICAgIGRlY29kZVZhbHVlRnJvbUJ1ZmZlcihyZXN1bHQsIG1fYnVmZmVyUG9zKTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBEZWNvZGVyOjpyZW1vdmVBdHRhY2htZW50KEF0dGFj
aG1lbnQmIGF0dGFjaG1lbnQpCit7CisgICAgaWYgKG1fYXR0YWNobWVudHMuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdHRhY2htZW50ID0gbV9hdHRhY2htZW50cy50
YWtlTGFzdCgpOworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBJUEMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9EZWNvZGVyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9JUEMvRGVjb2Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwNjYxOGU1MjllNzA3
ZDdjNTUyMTZkZThhMTE0OGQ4YjZhMDdjYTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9JUEMvRGVjb2Rlci5oCkBAIC0wLDAgKzEsMTQ2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBcmd1bWVudENvZGVyLmgiCisjaW5jbHVkZSAi
QXR0YWNobWVudC5oIgorI2luY2x1ZGUgIlN0cmluZ1JlZmVyZW5jZS5oIgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKworI2lmIEhBVkUoUU9TX0NMQVNTRVMpCisjaW5jbHVkZSA8cHRocmVhZC9x
b3MuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgSVBDIHsKKworY2xhc3MgRGF0YVJlZmVyZW5jZTsK
K2NsYXNzIEltcG9ydGFuY2VBc3NlcnRpb247CisKK2NsYXNzIERlY29kZXIgeworICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIERlY29kZXIoY29uc3QgRGF0YVJlZmVy
ZW5jZSYgYnVmZmVyLCBWZWN0b3I8QXR0YWNobWVudD4pOworICAgIH5EZWNvZGVyKCk7CisKKyAg
ICBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bWVzc2FnZVJlY2VpdmVyTmFtZTsgfQorICAgIFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbWVzc2FnZU5hbWU7IH0KKyAgICB1aW50NjRfdCBkZXN0aW5hdGlv
bklEKCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvbklEOyB9CisKKyAgICBib29sIGlzU3lu
Y01lc3NhZ2UoKSBjb25zdDsKKyAgICBib29sIHNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0
aW5nRm9yU3luY1JlcGx5KCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGRVc2VGdWxseVN5bmNocm9u
b3VzTW9kZUZvclRlc3RpbmcoKSBjb25zdDsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICB2b2lk
IHNldEltcG9ydGFuY2VBc3NlcnRpb24oc3RkOjp1bmlxdWVfcHRyPEltcG9ydGFuY2VBc3NlcnRp
b24+KTsKKyNlbmRpZgorCisjaWYgSEFWRShRT1NfQ0xBU1NFUykKKyAgICB2b2lkIHNldFFPU0Ns
YXNzT3ZlcnJpZGUocHRocmVhZF9vdmVycmlkZV90IG92ZXJyaWRlKSB7IG1fcW9zQ2xhc3NPdmVy
cmlkZSA9IG92ZXJyaWRlOyB9CisjZW5kaWYKKworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
RGVjb2Rlcj4gdW53cmFwRm9yVGVzdGluZyhEZWNvZGVyJik7CisKKyAgICBzaXplX3QgbGVuZ3Ro
KCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXJFbmQgLSBtX2J1ZmZlcjsgfQorCisgICAgYm9vbCBp
c0ludmFsaWQoKSBjb25zdCB7IHJldHVybiBtX2J1ZmZlclBvcyA+IG1fYnVmZmVyRW5kOyB9Cisg
ICAgdm9pZCBtYXJrSW52YWxpZCgpIHsgbV9idWZmZXJQb3MgPSBtX2J1ZmZlckVuZCArIDE7IH0K
KworICAgIGJvb2wgZGVjb2RlRml4ZWRMZW5ndGhEYXRhKHVpbnQ4X3QqLCBzaXplX3QsIHVuc2ln
bmVkIGFsaWdubWVudCk7CisKKyAgICAvLyBUaGUgZGF0YSBpbiB0aGUgZGF0YSByZWZlcmVuY2Ug
aGVyZSB3aWxsIG9ubHkgYmUgdmFsaWQgZm9yIHRoZSBsaWZldGltZSBvZiB0aGUgQXJndW1lbnRE
ZWNvZGVyIG9iamVjdC4KKyAgICBib29sIGRlY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5KERh
dGFSZWZlcmVuY2UmKTsKKworICAgIGJvb2wgZGVjb2RlKGJvb2wmKTsKKyAgICBib29sIGRlY29k
ZSh1aW50OF90Jik7CisgICAgYm9vbCBkZWNvZGUodWludDE2X3QmKTsKKyAgICBib29sIGRlY29k
ZSh1aW50MzJfdCYpOworICAgIGJvb2wgZGVjb2RlKHVpbnQ2NF90Jik7CisgICAgYm9vbCBkZWNv
ZGUoaW50MzJfdCYpOworICAgIGJvb2wgZGVjb2RlKGludDY0X3QmKTsKKyAgICBib29sIGRlY29k
ZShmbG9hdCYpOworICAgIGJvb2wgZGVjb2RlKGRvdWJsZSYpOworCisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gYm9vbCBkZWNvZGVFbnVtKFQmIHJlc3VsdCkKKyAgICB7CisgICAgICAgIHN0YXRp
Y19hc3NlcnQoc2l6ZW9mKFQpIDw9IDgsICJFbnVtIHR5cGUgVCBtdXN0IG5vdCBiZSBsYXJnZXIg
dGhhbiA2NCBiaXRzISIpOworCisgICAgICAgIHVpbnQ2NF90IHZhbHVlOworICAgICAgICBpZiAo
IWRlY29kZSh2YWx1ZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAg
ICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDxUPih2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgYm9vbCBidWZmZXJJc0xh
cmdlRW5vdWdoVG9Db250YWluKHNpemVfdCBudW1FbGVtZW50cykgY29uc3QKKyAgICB7CisgICAg
ICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19hcml0aG1ldGljPFQ+Ojp2YWx1ZSwgIlR5cGUgVCBt
dXN0IGhhdmUgYSBmaXhlZCwga25vd24gZW5jb2RlZCBzaXplISIpOworCisgICAgICAgIGlmIChu
dW1FbGVtZW50cyA+IHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkgLyBzaXplb2Yo
VCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmV0dXJuIGJ1ZmZlcklz
TGFyZ2VFbm91Z2hUb0NvbnRhaW4oYWxpZ25vZihUKSwgbnVtRWxlbWVudHMgKiBzaXplb2YoVCkp
OworICAgIH0KKworICAgIC8vIEdlbmVyaWMgdHlwZSBkZWNvZGUgZnVuY3Rpb24uCisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4gYm9vbCBkZWNvZGUoVCYgdCkKKyAgICB7CisgICAgICAgIHJldHVy
biBBcmd1bWVudENvZGVyPFQ+OjpkZWNvZGUoKnRoaXMsIHQpOworICAgIH0KKworICAgIGJvb2wg
cmVtb3ZlQXR0YWNobWVudChBdHRhY2htZW50Jik7CisKK3Byb3RlY3RlZDoKKyAgICB2b2lkIGlu
aXRpYWxpemUoY29uc3QgdWludDhfdCogYnVmZmVyLCBzaXplX3QgYnVmZmVyU2l6ZSk7CisKKyAg
ICBib29sIGFsaWduQnVmZmVyUG9zaXRpb24odW5zaWduZWQgYWxpZ25tZW50LCBzaXplX3QpOwor
ICAgIGJvb2wgYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbih1bnNpZ25lZCBhbGlnbm1lbnQs
IHNpemVfdCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgdWludDhfdCogbV9idWZmZXI7CisgICAg
dWludDhfdCogbV9idWZmZXJQb3M7CisgICAgdWludDhfdCogbV9idWZmZXJFbmQ7CisKKyAgICBW
ZWN0b3I8QXR0YWNobWVudD4gbV9hdHRhY2htZW50czsKKworICAgIHVpbnQ4X3QgbV9tZXNzYWdl
RmxhZ3M7CisgICAgU3RyaW5nUmVmZXJlbmNlIG1fbWVzc2FnZVJlY2VpdmVyTmFtZTsKKyAgICBT
dHJpbmdSZWZlcmVuY2UgbV9tZXNzYWdlTmFtZTsKKworICAgIHVpbnQ2NF90IG1fZGVzdGluYXRp
b25JRDsKKworCisjaWYgUExBVEZPUk0oTUFDKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxJbXBvcnRh
bmNlQXNzZXJ0aW9uPiBtX2ltcG9ydGFuY2VBc3NlcnRpb247CisjZW5kaWYKKworI2lmIEhBVkUo
UU9TX0NMQVNTRVMpCisgICAgcHRocmVhZF9vdmVycmlkZV90IG1fcW9zQ2xhc3NPdmVycmlkZSB7
IG51bGxwdHIgfTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvSGFuZGxlTWVzc2FnZS5oIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL0hhbmRsZU1lc3NhZ2UuaAppbmRleCBjYzUyNmRiYTBiNTZiMzE5
OGI3ZmQ5Y2Y1NjIyYjNkMGQyOGQ3Y2Q5Li5lY2U0MWRiNThiNWY4N2UzOWIyY2YwNzQzNTE0MjI2
ZTlmMmZmY2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvSGFuZGxl
TWVzc2FnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9IYW5kbGVNZXNzYWdl
LmgKQEAgLTIsOCArMiw4IEBACiAjZGVmaW5lIEhhbmRsZU1lc3NhZ2VfaAogCiAjaW5jbHVkZSAi
QXJndW1lbnRzLmgiCisjaW5jbHVkZSAiRGVjb2Rlci5oIgogI2luY2x1ZGUgIkVuY29kZXIuaCIK
LSNpbmNsdWRlICJNZXNzYWdlRGVjb2Rlci5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgY2FsbE1lbWJlckZ1
bmN0aW9uKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIEFyZ3NUdXBsZSYmIGFyZ3MsIFJlcGx5QXJn
c1R1cGxlCiAvLyBNYWluIGRpc3BhdGNoIGZ1bmN0aW9ucwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZvaWQgaGFuZGxlTWVzc2FnZShNZXNzYWdlRGVj
b2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgaGFuZGxlTWVzc2Fn
ZShEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewogICAgIHR5cGVu
YW1lIFQ6OkRlY29kZVR5cGUgYXJndW1lbnRzOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJn
dW1lbnRzKSkgewpAQCAtOTMsNyArOTMsNyBAQCB2b2lkIGhhbmRsZU1lc3NhZ2UoTWVzc2FnZURl
Y29kZXImIGRlY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB9CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFQsIHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GPgotdm9pZCBoYW5kbGVNZXNzYWdlKE1l
c3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBFbmNvZGVyJiByZXBseUVuY29kZXIsIEMqIG9iamVjdCwg
TUYgZnVuY3Rpb24pCit2b2lkIGhhbmRsZU1lc3NhZ2UoRGVjb2RlciYgZGVjb2RlciwgRW5jb2Rl
ciYgcmVwbHlFbmNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewogICAgIHR5cGVuYW1l
IFQ6OkRlY29kZVR5cGUgYXJndW1lbnRzOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJndW1l
bnRzKSkgewpAQCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQgaGFuZGxlTWVzc2FnZShNZXNzYWdlRGVj
b2RlciYgZGVjb2RlciwgRW5jb2RlciYgcmVwbHlFbmNvZGVyLCBDKiBvYmplY3QsIE1GCiB9CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GPgotdm9pZCBoYW5k
bGVNZXNzYWdlKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVy
LCBFbmNvZGVyJiByZXBseUVuY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGhh
bmRsZU1lc3NhZ2UoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgRGVjb2RlciYgZGVjb2RlciwgRW5j
b2RlciYgcmVwbHlFbmNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewogICAgIHR5cGVu
YW1lIFQ6OkRlY29kZVR5cGUgYXJndW1lbnRzOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJn
dW1lbnRzKSkgewpAQCAtMTIxLDcgKzEyMSw3IEBAIHZvaWQgaGFuZGxlTWVzc2FnZShDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgRW5jb2RlciYgcmVwCiB9
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GPgotdm9pZCBo
YW5kbGVNZXNzYWdlKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIE1lc3NhZ2VEZWNvZGVyJiBkZWNv
ZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBoYW5kbGVNZXNzYWdlKENvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIERlY29kZXImIGRlY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24p
CiB7CiAgICAgdHlwZW5hbWUgVDo6RGVjb2RlVHlwZSBhcmd1bWVudHM7CiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShhcmd1bWVudHMpKSB7CkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBoYW5kbGVN
ZXNzYWdlKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBD
KiBvYmplY3QsIE0KIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5h
bWUgTUY+Ci12b2lkIGhhbmRsZU1lc3NhZ2VEZWxheWVkKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4mIHJlcGx5
RW5jb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgaGFuZGxlTWVzc2FnZURlbGF5
ZWQoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgRGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVf
cHRyPEVuY29kZXI+JiByZXBseUVuY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7CiAg
ICAgdHlwZW5hbWUgVDo6RGVjb2RlVHlwZSBhcmd1bWVudHM7CiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShhcmd1bWVudHMpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9J
UEMvTWVzc2FnZURlY29kZXIuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3Nh
Z2VEZWNvZGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDc3OWY0NjgzMzUx
NDc1OTlkZTM3MGE1Nzk1ZGJjMmQyNzc0YmVhOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZURl
Y29kZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTA2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiTWVzc2FnZURlY29kZXIuaCIKLQotI2luY2x1
ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgotI2luY2x1
ZGUgIk1lc3NhZ2VGbGFncy5oIgotI2luY2x1ZGUgIlN0cmluZ1JlZmVyZW5jZS5oIgotCi0jaWYg
UExBVEZPUk0oTUFDKQotI2luY2x1ZGUgIkltcG9ydGFuY2VBc3NlcnRpb24uaCIKLSNlbmRpZgot
Ci1uYW1lc3BhY2UgSVBDIHsKLQotTWVzc2FnZURlY29kZXI6On5NZXNzYWdlRGVjb2RlcigpCi17
Ci0jaWYgSEFWRShRT1NfQ0xBU1NFUykKLSAgICBpZiAobV9xb3NDbGFzc092ZXJyaWRlKQotICAg
ICAgICBwdGhyZWFkX292ZXJyaWRlX3Fvc19jbGFzc19lbmRfbnAobV9xb3NDbGFzc092ZXJyaWRl
KTsKLSNlbmRpZgotfQotCi1NZXNzYWdlRGVjb2Rlcjo6TWVzc2FnZURlY29kZXIoY29uc3QgRGF0
YVJlZmVyZW5jZSYgYnVmZmVyLCBWZWN0b3I8QXR0YWNobWVudD4gYXR0YWNobWVudHMpCi0gICAg
OiBBcmd1bWVudERlY29kZXIoYnVmZmVyLmRhdGEoKSwgYnVmZmVyLnNpemUoKSwgV1RGTW92ZShh
dHRhY2htZW50cykpCi17Ci0gICAgaWYgKCFkZWNvZGUobV9tZXNzYWdlRmxhZ3MpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBpZiAoIWRlY29kZShtX21lc3NhZ2VSZWNlaXZlck5hbWUpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBpZiAoIWRlY29kZShtX21lc3NhZ2VOYW1lKSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgaWYgKCFkZWNvZGUobV9kZXN0aW5hdGlvbklEKSkKLSAgICAgICAgcmV0
dXJuOwotI2lmIEhBVkUoRFRSQUNFKQotICAgIGRlY29kZShtX1VVSUQpOwotI2VuZGlmCi19Ci0K
LWJvb2wgTWVzc2FnZURlY29kZXI6OmlzU3luY01lc3NhZ2UoKSBjb25zdAotewotICAgIHJldHVy
biBtX21lc3NhZ2VGbGFncyAmIFN5bmNNZXNzYWdlOwotfQotCi1ib29sIE1lc3NhZ2VEZWNvZGVy
OjpzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1fbWVzc2FnZUZsYWdzICYgRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdG
b3JTeW5jUmVwbHk7Ci19Ci0KLWJvb2wgTWVzc2FnZURlY29kZXI6OnNob3VsZFVzZUZ1bGx5U3lu
Y2hyb25vdXNNb2RlRm9yVGVzdGluZygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbWVzc2FnZUZs
YWdzICYgVXNlRnVsbHlTeW5jaHJvbm91c01vZGVGb3JUZXN0aW5nOwotfQotCi0jaWYgUExBVEZP
Uk0oTUFDKQotdm9pZCBNZXNzYWdlRGVjb2Rlcjo6c2V0SW1wb3J0YW5jZUFzc2VydGlvbihzdGQ6
OnVuaXF1ZV9wdHI8SW1wb3J0YW5jZUFzc2VydGlvbj4gYXNzZXJ0aW9uKQotewotICAgIG1faW1w
b3J0YW5jZUFzc2VydGlvbiA9IFdURk1vdmUoYXNzZXJ0aW9uKTsKLX0KLSNlbmRpZgotCi1zdGQ6
OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IE1lc3NhZ2VEZWNvZGVyOjp1bndyYXBGb3JUZXN0
aW5nKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIEFTU0VSVChkZWNvZGVyLmlzU3lu
Y01lc3NhZ2UoKSk7Ci0KLSAgICBWZWN0b3I8QXR0YWNobWVudD4gYXR0YWNobWVudHM7Ci0gICAg
QXR0YWNobWVudCBhdHRhY2htZW50OwotICAgIHdoaWxlIChkZWNvZGVyLnJlbW92ZUF0dGFjaG1l
bnQoYXR0YWNobWVudCkpCi0gICAgICAgIGF0dGFjaG1lbnRzLmFwcGVuZChXVEZNb3ZlKGF0dGFj
aG1lbnQpKTsKLSAgICBhdHRhY2htZW50cy5yZXZlcnNlKCk7Ci0KLSAgICBEYXRhUmVmZXJlbmNl
IHdyYXBwZWRNZXNzYWdlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUod3JhcHBlZE1lc3NhZ2Up
KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVl
PE1lc3NhZ2VEZWNvZGVyPih3cmFwcGVkTWVzc2FnZSwgV1RGTW92ZShhdHRhY2htZW50cykpOwot
fQotCi19IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0lQQy9NZXNzYWdlRGVjb2Rlci5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01l
c3NhZ2VEZWNvZGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5YzU2MGQ3Yjdj
ZGVhNTU3YzVlZTY2MjdjYzM2N2RhZWY0ZDlmZDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VE
ZWNvZGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lm
bmRlZiBNZXNzYWdlRGVjb2Rlcl9oCi0jZGVmaW5lIE1lc3NhZ2VEZWNvZGVyX2gKLQotI2luY2x1
ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIk1lc3NhZ2VSZWNvcmRlci5oIgotI2lu
Y2x1ZGUgIlN0cmluZ1JlZmVyZW5jZS5oIgotCi0jaWYgSEFWRShEVFJBQ0UpCi0jaW5jbHVkZSA8
dXVpZC91dWlkLmg+Ci0jZW5kaWYKLQotI2lmIEhBVkUoUU9TX0NMQVNTRVMpCi0jaW5jbHVkZSA8
cHRocmVhZC9xb3MuaD4KLSNlbmRpZgotCi1uYW1lc3BhY2UgSVBDIHsKLQotY2xhc3MgRGF0YVJl
ZmVyZW5jZTsKLWNsYXNzIEltcG9ydGFuY2VBc3NlcnRpb247Ci0KLWNsYXNzIE1lc3NhZ2VEZWNv
ZGVyIDogcHVibGljIEFyZ3VtZW50RGVjb2RlciB7Ci1wdWJsaWM6Ci0gICAgTWVzc2FnZURlY29k
ZXIoY29uc3QgRGF0YVJlZmVyZW5jZSYgYnVmZmVyLCBWZWN0b3I8QXR0YWNobWVudD4pOwotICAg
IHZpcnR1YWwgfk1lc3NhZ2VEZWNvZGVyKCk7Ci0KLSAgICBTdHJpbmdSZWZlcmVuY2UgbWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVzc2FnZVJlY2VpdmVyTmFtZTsgfQot
ICAgIFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVzc2Fn
ZU5hbWU7IH0KLSAgICB1aW50NjRfdCBkZXN0aW5hdGlvbklEKCkgY29uc3QgeyByZXR1cm4gbV9k
ZXN0aW5hdGlvbklEOyB9Ci0KLSAgICBib29sIGlzU3luY01lc3NhZ2UoKSBjb25zdDsKLSAgICBi
b29sIHNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkgY29uc3Q7
Ci0gICAgYm9vbCBzaG91bGRVc2VGdWxseVN5bmNocm9ub3VzTW9kZUZvclRlc3RpbmcoKSBjb25z
dDsKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2b2lkIHNldEltcG9ydGFuY2VBc3NlcnRpb24o
c3RkOjp1bmlxdWVfcHRyPEltcG9ydGFuY2VBc3NlcnRpb24+KTsKLSNlbmRpZgotCi0jaWYgSEFW
RShRT1NfQ0xBU1NFUykKLSAgICB2b2lkIHNldFFPU0NsYXNzT3ZlcnJpZGUocHRocmVhZF9vdmVy
cmlkZV90IG92ZXJyaWRlKSB7IG1fcW9zQ2xhc3NPdmVycmlkZSA9IG92ZXJyaWRlOyB9Ci0jZW5k
aWYKLQotI2lmIEhBVkUoRFRSQUNFKQotICAgIHZvaWQgc2V0TWVzc2FnZVByb2Nlc3NpbmdUb2tl
bihzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVJlY29yZGVyOjpNZXNzYWdlUHJvY2Vzc2luZ1Rva2Vu
PiB0b2tlbikgeyBtX3Byb2Nlc3NpbmdUb2tlbiA9IFdURk1vdmUodG9rZW4pOyB9Ci0KLSAgICBj
b25zdCB1dWlkX3QmIFVVSUQoKSBjb25zdCB7IHJldHVybiBtX1VVSUQ7IH0KLSNlbmRpZgotCi0g
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gdW53cmFwRm9yVGVzdGlu
ZyhNZXNzYWdlRGVjb2RlciYpOwotCi1wcml2YXRlOgotICAgIHVpbnQ4X3QgbV9tZXNzYWdlRmxh
Z3M7Ci0gICAgU3RyaW5nUmVmZXJlbmNlIG1fbWVzc2FnZVJlY2VpdmVyTmFtZTsKLSAgICBTdHJp
bmdSZWZlcmVuY2UgbV9tZXNzYWdlTmFtZTsKLQotICAgIHVpbnQ2NF90IG1fZGVzdGluYXRpb25J
RDsKLQotI2lmIEhBVkUoRFRSQUNFKQotICAgIHV1aWRfdCBtX1VVSUQ7Ci0gICAgc3RkOjp1bmlx
dWVfcHRyPE1lc3NhZ2VSZWNvcmRlcjo6TWVzc2FnZVByb2Nlc3NpbmdUb2tlbj4gbV9wcm9jZXNz
aW5nVG9rZW47Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBzdGQ6OnVuaXF1ZV9w
dHI8SW1wb3J0YW5jZUFzc2VydGlvbj4gbV9pbXBvcnRhbmNlQXNzZXJ0aW9uOwotI2VuZGlmCi0K
LSNpZiBIQVZFKFFPU19DTEFTU0VTKQotICAgIHB0aHJlYWRfb3ZlcnJpZGVfdCBtX3Fvc0NsYXNz
T3ZlcnJpZGUgeyBudWxscHRyIH07Ci0jZW5kaWYKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIElQQwot
Ci0jZW5kaWYgLy8gTWVzc2FnZURlY29kZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZlci5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL01lc3NhZ2VSZWNlaXZlci5oCmluZGV4IDU5NzQyMTQ0YTFmZGMwZWE2NzMwNmU5Zjk4YjEz
ODg0YmE4M2Y4MzcuLmVmODkwYzE0NmIxNTcyYzhjMjIxNTA3OTRkNjdmMjk1ODljYzk1ZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY2VpdmVyLmgKQEAgLTIz
LDE2ICsyMywxNSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAK
LSNpZm5kZWYgTWVzc2FnZVJlY2VpdmVyX2gKLSNkZWZpbmUgTWVzc2FnZVJlY2VpdmVyX2gKKyNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNlIElQ
QyB7CiAKIGNsYXNzIENvbm5lY3Rpb247CitjbGFzcyBEZWNvZGVyOwogY2xhc3MgRW5jb2RlcjsK
LWNsYXNzIE1lc3NhZ2VEZWNvZGVyOwogCiBjbGFzcyBNZXNzYWdlUmVjZWl2ZXIgewogcHVibGlj
OgpAQCAtNDEsOCArNDAsOCBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVCghbV9tZXNzYWdlUmVj
ZWl2ZXJNYXBDb3VudCk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvbm5lY3Rpb24mLCBNZXNzYWdlRGVjb2RlciYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvbm5lY3Rpb24mLCBNZXNzYWdlRGVjb2RlciYsIHN0ZDo6
dW5pcXVlX3B0cjxFbmNvZGVyPiYpCisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KENvbm5lY3Rpb24mLCBEZWNvZGVyJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
U3luY01lc3NhZ2UoQ29ubmVjdGlvbiYsIERlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rl
cj4mKQogICAgIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpAQCAtNzEs
NSArNzAsMyBAQCBwcml2YXRlOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgSVBDCi0KLSNlbmRpZiAv
LyBNZXNzYWdlUmVjZWl2ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
TWVzc2FnZVJlY2VpdmVyTWFwLmNwcAppbmRleCAxZDBkMmRlYzdmZjI1YzIxODBjZTc3YzA2Njli
MzFlODUyZmNlZGNlLi5hYTVlYmE4ZGY5NDQ3NTYwNzI1OTFiMDE4OGViYjUxZTI0NWIwYWM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY2VpdmVyTWFw
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY2VpdmVyTWFw
LmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk1l
c3NhZ2VSZWNlaXZlck1hcC5oIgogCi0jaW5jbHVkZSAiTWVzc2FnZURlY29kZXIuaCIKKyNpbmNs
dWRlICJEZWNvZGVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAKIG5hbWVzcGFj
ZSBJUEMgewpAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQgTWVzc2FnZVJlY2VpdmVyTWFwOjppbnZh
bGlkYXRlKCkKICAgICBtX21lc3NhZ2VSZWNlaXZlcnMuY2xlYXIoKTsKIH0KIAotYm9vbCBNZXNz
YWdlUmVjZWl2ZXJNYXA6OmRpc3BhdGNoTWVzc2FnZShDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKK2Jvb2wgTWVzc2FnZVJlY2VpdmVyTWFwOjpkaXNwYXRj
aE1lc3NhZ2UoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgRGVjb2RlciYgZGVjb2RlcikKIHsKICAg
ICBpZiAoTWVzc2FnZVJlY2VpdmVyKiBtZXNzYWdlUmVjZWl2ZXIgPSBtX2dsb2JhbE1lc3NhZ2VS
ZWNlaXZlcnMuZ2V0KGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpKSkgewogICAgICAgICBB
U1NFUlQoIWRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKQEAgLTEyNyw3ICsxMjcsNyBAQCBib29s
IE1lc3NhZ2VSZWNlaXZlck1hcDo6ZGlzcGF0Y2hNZXNzYWdlKENvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIE1lc3NhZ2VEZWNvZGVyJgogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBNZXNzYWdl
UmVjZWl2ZXJNYXA6OmRpc3BhdGNoU3luY01lc3NhZ2UoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
TWVzc2FnZURlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxFbmNvZGVyPiYgcmVwbHlF
bmNvZGVyKQorYm9vbCBNZXNzYWdlUmVjZWl2ZXJNYXA6OmRpc3BhdGNoU3luY01lc3NhZ2UoQ29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgRGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPEVu
Y29kZXI+JiByZXBseUVuY29kZXIpCiB7CiAgICAgaWYgKE1lc3NhZ2VSZWNlaXZlciogbWVzc2Fn
ZVJlY2VpdmVyID0gbV9nbG9iYWxNZXNzYWdlUmVjZWl2ZXJzLmdldChkZWNvZGVyLm1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSkpIHsKICAgICAgICAgQVNTRVJUKCFkZWNvZGVyLmRlc3RpbmF0aW9uSUQo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY2Vp
dmVyTWFwLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY2VpdmVyTWFw
LmgKaW5kZXggOTViYmYzMmE0YjIxZDhiMTg3M2QzZTIyMmQ4YTJjNzU5NjFjNTQ5Yy4uNGZjNzUx
MjgxYjBjZjEzZDY5NWRmMjZkMTViODY2NTNkNThkNjk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuaApAQCAtMzQsNyArMzQsNyBAQCBu
YW1lc3BhY2UgSVBDIHsKIAogY2xhc3MgQ29ubmVjdGlvbjsKIGNsYXNzIEVuY29kZXI7Ci1jbGFz
cyBNZXNzYWdlRGVjb2RlcjsKK2NsYXNzIERlY29kZXI7CiBjbGFzcyBNZXNzYWdlUmVjZWl2ZXI7
CiAKIGNsYXNzIE1lc3NhZ2VSZWNlaXZlck1hcCB7CkBAIC01MSw4ICs1MSw4IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCi0gICAgYm9vbCBkaXNwYXRjaE1lc3NhZ2UoQ29u
bmVjdGlvbiYsIE1lc3NhZ2VEZWNvZGVyJik7Ci0gICAgYm9vbCBkaXNwYXRjaFN5bmNNZXNzYWdl
KENvbm5lY3Rpb24mLCBNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxFbmNvZGVyPiYp
OworICAgIGJvb2wgZGlzcGF0Y2hNZXNzYWdlKENvbm5lY3Rpb24mLCBEZWNvZGVyJik7CisgICAg
Ym9vbCBkaXNwYXRjaFN5bmNNZXNzYWdlKENvbm5lY3Rpb24mLCBEZWNvZGVyJiwgc3RkOjp1bmlx
dWVfcHRyPEVuY29kZXI+Jik7CiAKIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZSByZWNlaXZlcnMg
dGhhdCBkb24ndCByZXF1aXJlIGEgZGVzdGluYXRpb24gSUQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXIuY3BwCmluZGV4IDQ2Mzk2NmEwMTA1YjFiYzkx
ZDI5NDgwMzQwMmVkOTA3N2UyYWJlOWMuLjJkOGYzZGYzMDJiNmZhNzMyZjAzZTAxMjk2ZDRlZDc0
NGFkZWEzOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdl
UmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVj
b3JkZXIuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUmVjb3Jk
ZXI6Ok1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4+IE1lc3NhZ2VSZWNvcmRlcjo6cmVjb3JkCiAgICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVzc2FnZVByb2Nlc3NpbmdUb2tlbj4oV1RGTW92ZShy
ZWNvcmQpKTsKIH0KIAotdm9pZCBNZXNzYWdlUmVjb3JkZXI6OnJlY29yZEluY29taW5nTWVzc2Fn
ZShDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKK3ZvaWQg
TWVzc2FnZVJlY29yZGVyOjpyZWNvcmRJbmNvbWluZ01lc3NhZ2UoQ29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAoIWlzRW5hYmxlZCgpIHx8ICFjb25u
ZWN0aW9uLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNvcmRlci5oIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vSVBDL01lc3NhZ2VSZWNvcmRlci5oCmluZGV4IDE1ZWMwNWQyMmI0YzkyY2NlM2MxYTNj
YmNhMDA2YjA1NGQ1OGNiMDAuLjk2OGZmZjk3MjQwZjlkNjE2MjNkZDkxZDZiNTMyOTQ3MGVkZGZj
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3Jk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY29yZGVyLmgK
QEAgLTU5LDcgKzU5LDcgQEAgc3RydWN0IFdlYktpdE1lc3NhZ2VSZWNvcmQgewogbmFtZXNwYWNl
IElQQyB7CiAKIGNsYXNzIENvbm5lY3Rpb247Ci1jbGFzcyBNZXNzYWdlRGVjb2RlcjsKK2NsYXNz
IERlY29kZXI7CiBjbGFzcyBNZXNzYWdlRW5jb2RlcjsKIAogY2xhc3MgTWVzc2FnZVJlY29yZGVy
IHsKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgIH07CiAKICAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPE1lc3NhZ2VSZWNvcmRlcjo6TWVzc2FnZVByb2Nlc3NpbmdUb2tlbj4gcmVjb3Jk
T3V0Z29pbmdNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RW5jb2RlciYpOwotICAgIHN0
YXRpYyB2b2lkIHJlY29yZEluY29taW5nTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1l
c3NhZ2VEZWNvZGVyJik7CisgICAgc3RhdGljIHZvaWQgcmVjb3JkSW5jb21pbmdNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0
IE1lc3NhZ2VSZWNvcmRlcigpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vSVBDL1N0cmluZ1JlZmVyZW5jZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
U3RyaW5nUmVmZXJlbmNlLmNwcAppbmRleCA4MjE1MTlmOTlmYjU0YmI5M2RkMzcxZDcyZDNlMWM0
MDliMDlmY2Y2Li44NTJlZjQzZTAwODYzMWM5ZmFmYTgyMzBjOTE5YzE3YTlkNGEyOWI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvU3RyaW5nUmVmZXJlbmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvU3RyaW5nUmVmZXJlbmNlLmNwcApAQCAt
MjYsOCArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlN0cmluZ1JlZmVy
ZW5jZS5oIgogCi0jaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCiAjaW5jbHVkZSAiRGF0YVJl
ZmVyZW5jZS5oIgorI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgiCiAj
aW5jbHVkZSA8d3RmL0hhc2hlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAg
LTQ0LDcgKzQ0LDcgQEAgdm9pZCBTdHJpbmdSZWZlcmVuY2U6OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgRGF0YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0
PGNvbnN0IHVpbnQ4X3QqPihtX2RhdGEpLCBtX3NpemUpOwogfQogCi1ib29sIFN0cmluZ1JlZmVy
ZW5jZTo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgU3RyaW5nUmVmZXJlbmNlJiBy
ZXN1bHQpCitib29sIFN0cmluZ1JlZmVyZW5jZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFN0
cmluZ1JlZmVyZW5jZSYgcmVzdWx0KQogewogICAgIERhdGFSZWZlcmVuY2UgZGF0YVJlZmVyZW5j
ZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGFSZWZlcmVuY2UpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL1N0cmluZ1JlZmVyZW5jZS5oIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL1N0cmluZ1JlZmVyZW5jZS5oCmluZGV4IGRhZTA2YmQzNjI5OWU5
MDlkMmQyOTQzNjc2Mjc3Mzc3MDgwYTMzODEuLmU5OGU5MTExOWNlMTA4MTc5ZjhjYjYyMTkxZTA5
ZGVkMGFjYTFjNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9TdHJp
bmdSZWZlcmVuY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvU3RyaW5nUmVm
ZXJlbmNlLmgKQEAgLTMzLDcgKzMzLDcgQEAKIG5hbWVzcGFjZSBJUEMgewogCiBjbGFzcyBFbmNv
ZGVyOwotY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgRGVjb2RlcjsKIAogY2xhc3MgU3Ry
aW5nUmVmZXJlbmNlIHsKIHB1YmxpYzoKQEAgLTY5LDcgKzY5LDcgQEAgcHVibGljOgogICAgIH0K
IAogICAgIHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQXJndW1lbnREZWNvZGVyJiwgU3RyaW5nUmVmZXJlbmNlJik7CisgICAgc3RhdGljIGJvb2wg
ZGVjb2RlKERlY29kZXImLCBTdHJpbmdSZWZlcmVuY2UmKTsKIAogICAgIHN0cnVjdCBIYXNoIHsK
ICAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgU3RyaW5nUmVmZXJlbmNlJiBhKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9tYWMvQ29ubmVjdGlvbk1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9tYWMvQ29ubmVjdGlvbk1hYy5tbQpp
bmRleCAzNWE0ZWM3ZDk1YjM1Yjk0ZGUwNzAxMGRmYzg5NjA4ODc2NWQ2YzE3Li5iNWZkY2I2YTQx
YTg3NTE4ZDBlYmUxNTFmZDIyZDI1YjViNDBmNjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9JUEMvbWFjL0Nvbm5lY3Rpb25NYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL21hYy9Db25uZWN0aW9uTWFjLm1tCkBAIC0zODIsMTQgKzM4MiwxNCBAQCB2
b2lkIENvbm5lY3Rpb246OmluaXRpYWxpemVEZWFkTmFtZVNvdXJjZSgpCiAgICAgfSk7CiB9CiAK
LXN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZURlY29kZXI+IGNyZWF0ZU1lc3NhZ2VEZWNv
ZGVyKG1hY2hfbXNnX2hlYWRlcl90KiBoZWFkZXIpCitzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPERl
Y29kZXI+IGNyZWF0ZU1lc3NhZ2VEZWNvZGVyKG1hY2hfbXNnX2hlYWRlcl90KiBoZWFkZXIpCiB7
CiAgICAgaWYgKCEoaGVhZGVyLT5tc2doX2JpdHMgJiBNQUNIX01TR0hfQklUU19DT01QTEVYKSkg
ewogICAgICAgICAvLyBXZSBoYXZlIGEgc2ltcGxlIG1lc3NhZ2UuCiAgICAgICAgIHVpbnQ4X3Qq
IGJvZHkgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihoZWFkZXIgKyAxKTsKICAgICAgICAg
c2l6ZV90IGJvZHlTaXplID0gaGVhZGVyLT5tc2doX3NpemUgLSBzaXplb2YobWFjaF9tc2dfaGVh
ZGVyX3QpOwogCi0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VEZWNvZGVy
PihEYXRhUmVmZXJlbmNlKGJvZHksIGJvZHlTaXplKSwgVmVjdG9yPEF0dGFjaG1lbnQ+KCkpOwor
ICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxEZWNvZGVyPihEYXRhUmVmZXJlbmNlKGJv
ZHksIGJvZHlTaXplKSwgVmVjdG9yPEF0dGFjaG1lbnQ+KCkpOwogICAgIH0KIAogICAgIGJvb2wg
bWVzc2FnZUJvZHlJc09PTCA9IGhlYWRlci0+bXNnaF9pZCAmIE1lc3NhZ2VCb2R5SXNPdXRPZkxp
bmU7CkBAIC00MjgsNyArNDI4LDcgQEAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVj
b2Rlcj4gY3JlYXRlTWVzc2FnZURlY29kZXIobWFjaF9tc2dfaGVhZGVyX3QqIGgKICAgICAgICAg
dWludDhfdCogbWVzc2FnZUJvZHkgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oZGVzY3JpcHRvci0+
b3V0X29mX2xpbmUuYWRkcmVzcyk7CiAgICAgICAgIHNpemVfdCBtZXNzYWdlQm9keVNpemUgPSBk
ZXNjcmlwdG9yLT5vdXRfb2ZfbGluZS5zaXplOwogCi0gICAgICAgIGF1dG8gZGVjb2RlciA9IHN0
ZDo6bWFrZV91bmlxdWU8TWVzc2FnZURlY29kZXI+KERhdGFSZWZlcmVuY2UobWVzc2FnZUJvZHks
IG1lc3NhZ2VCb2R5U2l6ZSksIFdURk1vdmUoYXR0YWNobWVudHMpKTsKKyAgICAgICAgYXV0byBk
ZWNvZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxEZWNvZGVyPihEYXRhUmVmZXJlbmNlKG1lc3NhZ2VC
b2R5LCBtZXNzYWdlQm9keVNpemUpLCBXVEZNb3ZlKGF0dGFjaG1lbnRzKSk7CiAKICAgICAgICAg
dm1fZGVhbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCByZWludGVycHJldF9jYXN0PHZtX2FkZHJl
c3NfdD4oZGVzY3JpcHRvci0+b3V0X29mX2xpbmUuYWRkcmVzcyksIGRlc2NyaXB0b3ItPm91dF9v
Zl9saW5lLnNpemUpOwogCkBAIC00MzgsNyArNDM4LDcgQEAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxNZXNzYWdlRGVjb2Rlcj4gY3JlYXRlTWVzc2FnZURlY29kZXIobWFjaF9tc2dfaGVhZGVyX3Qq
IGgKICAgICB1aW50OF90KiBtZXNzYWdlQm9keSA9IGRlc2NyaXB0b3JEYXRhOwogICAgIHNpemVf
dCBtZXNzYWdlQm9keVNpemUgPSBoZWFkZXItPm1zZ2hfc2l6ZSAtIChkZXNjcmlwdG9yRGF0YSAt
IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGhlYWRlcikpOwogCi0gICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8TWVzc2FnZURlY29kZXI+KERhdGFSZWZlcmVuY2UobWVzc2FnZUJvZHksIG1l
c3NhZ2VCb2R5U2l6ZSksIGF0dGFjaG1lbnRzKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxEZWNvZGVyPihEYXRhUmVmZXJlbmNlKG1lc3NhZ2VCb2R5LCBtZXNzYWdlQm9keVNpemUpLCBh
dHRhY2htZW50cyk7CiB9CiAKIC8vIFRoZSByZWNlaXZlIGJ1ZmZlciBzaXplIHNob3VsZCBhbHdh
eXMgaW5jbHVkZSB0aGUgbWF4aW11bSB0cmFpbGVyIHNpemUuCkBAIC00OTMsNyArNDkzLDcgQEAg
dm9pZCBDb25uZWN0aW9uOjpyZWNlaXZlU291cmNlRXZlbnRIYW5kbGVyKCkKICAgICAgICAgYnJl
YWs7CiAgICAgfQogCi0gICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VEZWNvZGVyPiBkZWNvZGVy
ID0gY3JlYXRlTWVzc2FnZURlY29kZXIoaGVhZGVyKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RGVj
b2Rlcj4gZGVjb2RlciA9IGNyZWF0ZU1lc3NhZ2VEZWNvZGVyKGhlYWRlcik7CiAgICAgQVNTRVJU
KGRlY29kZXIpOwogCiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vSVBDL21hYy9NYWNoUG9ydC5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL21hYy9NYWNoUG9ydC5oCmluZGV4IDE3MzY4OGExNzI2NzcyOWE5ZTU4ZDk5MzRlMGUxNmQ0
YTI3OTI1NmIuLjkxNDRhMDUyZWEwY2Y0MjllODA3MzY2MTU4ZDRkMTgyMzcyNDFlMmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9tYWMvTWFjaFBvcnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvbWFjL01hY2hQb3J0LmgKQEAgLTI2LDggKzI2LDgg
QEAKICNpZm5kZWYgTWFjaFBvcnRfaAogI2RlZmluZSBNYWNoUG9ydF9oCiAKLSNpbmNsdWRlICJB
cmd1bWVudERlY29kZXIuaCIKICNpbmNsdWRlICJBdHRhY2htZW50LmgiCisjaW5jbHVkZSAiRGVj
b2Rlci5oIgogI2luY2x1ZGUgIkVuY29kZXIuaCIKIAogbmFtZXNwYWNlIElQQyB7CkBAIC01MSw3
ICs1MSw3IEBAIHB1YmxpYzoKICAgICAgICAgZW5jb2RlciA8PCBBdHRhY2htZW50KG1fcG9ydCwg
bV9kaXNwb3NpdGlvbik7CiAgICAgfQogCi0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50
RGVjb2RlciYgZGVjb2RlciwgTWFjaFBvcnQmIHApCisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERl
Y29kZXImIGRlY29kZXIsIE1hY2hQb3J0JiBwKQogICAgIHsKICAgICAgICAgQXR0YWNobWVudCBh
dHRhY2htZW50OwogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGF0dGFjaG1lbnQpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9TaGFyZWRNZW1vcnkuaAppbmRleCA5YTQ1YmUwNDNiOTVlODNkNWI1
MzRlMDczZjgzMGQ5Nzc4NDEwNTcxLi4wY2M2MmRkMWZiNGNkZWE5M2Q1YTAyMTU5NTMyNDU2OWQw
OTM3NGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9TaGFyZWRNZW1vcnku
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9TaGFyZWRNZW1vcnkuaApAQCAtMzYsNyAr
MzYsNyBAQAogI2VuZGlmCiAKIG5hbWVzcGFjZSBJUEMgewotY2xhc3MgQXJndW1lbnREZWNvZGVy
OworY2xhc3MgRGVjb2RlcjsKIGNsYXNzIEVuY29kZXI7CiB9CiAKQEAgLTY2LDcgKzY2LDcgQEAg
cHVibGljOgogICAgICAgICB2b2lkIGNsZWFyKCk7CiAKICAgICAgICAgdm9pZCBlbmNvZGUoSVBD
OjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3Vt
ZW50RGVjb2RlciYsIEhhbmRsZSYpOworICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpE
ZWNvZGVyJiwgSGFuZGxlJik7CiAKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKICAgICAg
ICAgSVBDOjpBdHRhY2htZW50IHJlbGVhc2VBdHRhY2htZW50KCkgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwCmluZGV4IGMwNTJhOTdk
ZmU0M2Y1ZWZhY2QzYTg1ZGY2NWNhNzVkZGJjNGYxNGQuLjU0NGZiOTk1MjMyYTUyMDcwNmI0MGVh
NTM0NTczOTJiNzYzN2YzYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21h
Yy9TaGFyZWRNZW1vcnlNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9T
aGFyZWRNZW1vcnlNYWMuY3BwCkBAIC0yNiw4ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAKLSNpbmNsdWRlICJBcmd1bWVudERlY29kZXIu
aCIKLSNpbmNsdWRlICJBcmd1bWVudHMuaCIKKyNpbmNsdWRlICJEZWNvZGVyLmgiCiAjaW5jbHVk
ZSAiRW5jb2Rlci5oIgogI2luY2x1ZGUgIk1hY2hQb3J0LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9N
YWNoU2VuZFJpZ2h0Lmg+CkBAIC03MSw3ICs3MCw3IEBAIHZvaWQgU2hhcmVkTWVtb3J5OjpIYW5k
bGU6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgbV9wb3J0ID0gTUFD
SF9QT1JUX05VTEw7CiB9CiAKLWJvb2wgU2hhcmVkTWVtb3J5OjpIYW5kbGU6OmRlY29kZShJUEM6
OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgSGFuZGxlJiBoYW5kbGUpCitib29sIFNoYXJlZE1l
bW9yeTo6SGFuZGxlOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBIYW5kbGUmIGhhbmRs
ZSkKIHsKICAgICBBU1NFUlQoIWhhbmRsZS5tX3BvcnQpOwogICAgIEFTU0VSVCghaGFuZGxlLm1f
c2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNv
bnRyb2xsZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250
cm9sbGVyUHJveHkuaAppbmRleCAyZDViMGI2YjdlNGE1NTU1MzNjMTBlMzA0ZTYyZTg0Y2Q3Njlj
ZGE0Li43NjRkMDk3ZGRiNDg0NzExYWIwMWI2OTIwYzk4NzNmYWExM2Q0NDg3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgK
QEAgLTYyLDggKzYyLDggQEAgcHVibGljOgogICAgIGJvb2wgaW5pdGlhbGl6ZShjb25zdCBQbHVn
aW5DcmVhdGlvblBhcmFtZXRlcnMmKTsKICAgICB2b2lkIGRlc3Ryb3koKTsKIAotICAgIHZvaWQg
ZGlkUmVjZWl2ZVBsdWdpbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpNZXNzYWdlRGVjb2RlciYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNQbHVnaW5Db250
cm9sbGVyUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXIm
LCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVBs
dWdpbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1BsdWdpbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5j
b2Rlcj4mKTsKIAogICAgIGJvb2wgd2FudHNXaGVlbEV2ZW50cygpIGNvbnN0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFyYW1ldGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFyYW1l
dGVycy5jcHAKaW5kZXggNWRiYWYxM2RjYjM5NmIyNjc2NjljNWJlNzY5YTc1MzBiMzBjNWQxMS4u
ZWMyN2VlZDc0OTQ5M2Q1YjBiYzkwNWQzNjkzNWQ4MmU3ZmQ2NjRkOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcApAQCAtNTgsNyArNTgsNyBAQCB2b2lkIFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5j
b2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGlzQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ7CiB9CiAKLWJvb2wgUGx1Z2luQ3JlYXRpb25QYXJhbWV0
ZXJzOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFBsdWdpbkNyZWF0aW9u
UGFyYW1ldGVycyYgcmVzdWx0KQorYm9vbCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnM6OmRlY29k
ZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyYgcmVzdWx0
KQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnBsdWdpbkluc3RhbmNlSUQpIHx8
ICFyZXN1bHQucGx1Z2luSW5zdGFuY2VJRCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlvblBhcmFtZXRl
cnMuaCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ3JlYXRpb25QYXJhbWV0
ZXJzLmgKaW5kZXggY2M0NDRmNGUzOWE4NGUzYTZhY2FhZDFjNWU0NWU5YWRiZDQxNDMyMC4uYzM3
NTE2ODJjYzFhNTZiZjY0ZGIxYTFmMGZiZWI3YTIxMDg4OTY3NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFyYW1ldGVycy5oCkBA
IC0zMSw4ICszMSw4IEBACiAjaW5jbHVkZSAiUGx1Z2luLmgiCiAKIG5hbWVzcGFjZSBJUEMgewot
ICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLSAgICBjbGFzcyBFbmNvZGVyOworY2xhc3MgRGVj
b2RlcjsKK2NsYXNzIEVuY29kZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDEsNyAr
NDEsNyBAQCBzdHJ1Y3QgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBQbHVnaW5DcmVh
dGlvblBhcmFtZXRlcnMoKTsKIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0
OwotICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFBsdWdpbkNy
ZWF0aW9uUGFyYW1ldGVycyYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXIm
LCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMmKTsKIAogICAgIC8vIFRoZSB1bmlxdWUgSUQgb2Yg
dGhpcyBwbHVnLWluIGluc3RhbmNlLgogICAgIHVpbnQ2NF90IHBsdWdpbkluc3RhbmNlSUQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAppbmRleCA2
MWU2NmYwNDc1ODNhMWM1M2RhNGEzZTRjNTMyOWZiZGMxMGUxNzdjLi5mMTMwN2IzMjdmZGE5YWIx
NWVmYTZiYzMxN2RmNzI3MGIxODQwZTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKQEAgLTExMCw3ICsxMTAsNyBAQCBib29sIFBsdWdpblBy
b2Nlc3M6OnNob3VsZFRlcm1pbmF0ZSgpCiAgICAgcmV0dXJuIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rp
b25zLmlzRW1wdHkoKTsKIH0KIAotdm9pZCBQbHVnaW5Qcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZURlY29kZXImIGRlY29k
ZXIpCit2b2lkIFBsdWdpblByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGRpZFJlY2VpdmVQ
bHVnaW5Qcm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmgKaW5kZXggOWJlNWI0YTRhMmRmODU4
OWQ3ZmQ0NGRjZmU0MDVlN2ExNmM1NjMwZS4uN2QyZGRkNjc2N2RhOGJhMmNjY2E4MDI5ZjdhZDEw
ZGRiYjcyODEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVn
aW5Qcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9j
ZXNzLmgKQEAgLTg4LDE0ICs4OCwxNCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICAvLyBJUEM6
OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKICAgICB2b2lkIGRp
ZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVy
ZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFt
ZSkgb3ZlcnJpZGU7CiAgICAgSVBDOjpQcm9jZXNzVHlwZSBsb2NhbFByb2Nlc3NUeXBlKCkgb3Zl
cnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6UGx1Z2luOyB9CiAgICAgSVBDOjpQcm9j
ZXNzVHlwZSByZW1vdGVQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vz
c1R5cGU6OlVJOyB9CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgotICAgIHZvaWQgZGlkUmVj
ZWl2ZVBsdWdpblByb2Nlc3NNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURl
Y29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVQbHVnaW5Qcm9jZXNzTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKICAgICB2b2lkIGluaXRpYWxpemVQbHVnaW5Qcm9j
ZXNzKFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBjcmVhdGVX
ZWJQcm9jZXNzQ29ubmVjdGlvbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDhmMTYwMjhjNDU1YzliODFk
OGE5ZmNjODcyYzE4YzNlYjFhNDQ5OWYuLjEwMDc1Y2QzOTFlMGQ0ZjIyOWI4NDRjMjQzNDM4MjVi
NWQzMjIxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0xMTgsNyArMTE4LDcgQEAgdm9pZCBXZWJQcm9jZXNz
Q29ubmVjdGlvbjo6c2V0R2xvYmFsRXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXhjZXB0aW9uU3Ry
aW5nKQogICAgIGN1cnJlbnRDb25uZWN0aW9uLT5zZW5kU3luYyhNZXNzYWdlczo6UGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb246OlNldEV4Y2VwdGlvbihleGNlcHRpb25TdHJpbmcpLCBNZXNzYWdlczo6
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OlNldEV4Y2VwdGlvbjo6UmVwbHkoKSwgMCk7CiB9CiAK
LXZvaWQgV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKK3ZvaWQgV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFRlbXBvcmFyeUNoYW5nZTxJ
UEM6OkNvbm5lY3Rpb24qPiBjdXJyZW50Q29ubmVjdGlvbkNoYW5nZShjdXJyZW50Q29ubmVjdGlv
biwgJmNvbm5lY3Rpb24pOwogCkBAIC0xNDAsNyArMTQwLDcgQEAgdm9pZCBXZWJQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJ
UEM6Ok0KICAgICBwbHVnaW5Db250cm9sbGVyUHJveHktPmRpZFJlY2VpdmVQbHVnaW5Db250cm9s
bGVyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogfQogCi12b2lkIFdlYlByb2Nl
c3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBD
OjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQordm9pZCBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVy
KQogewogICAgIFRlbXBvcmFyeUNoYW5nZTxJUEM6OkNvbm5lY3Rpb24qPiBjdXJyZW50Q29ubmVj
dGlvbkNoYW5nZShjdXJyZW50Q29ubmVjdGlvbiwgJmNvbm5lY3Rpb24pOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXgg
M2MxM2JkZGRkOTcyNDg1MGU3ODY2ZDMxZDc0MGU3N2I1NmUyMjM2OC4uMTk5MjlmMzQ2MGY0MTA4
NDVjNGY0MTA0ZjA1NzkxMzU3MjI0MDUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNjUsMTYgKzY1LDE2IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkZXN0cm95UGx1Z2luQ29udHJvbGxlclByb3h5KFBsdWdpbkNvbnRy
b2xsZXJQcm94eSopOwogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXIm
KSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4m
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVu
Y29kZXI+Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBv
dmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmlu
Z1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CiAgICAgSVBDOjpQcm9jZXNzVHlwZSBs
b2NhbFByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6UGx1
Z2luOyB9CiAgICAgSVBDOjpQcm9jZXNzVHlwZSByZW1vdGVQcm9jZXNzVHlwZSgpIG92ZXJyaWRl
IHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6OldlYjsgfQogCiAgICAgLy8gTWVzc2FnZSBoYW5k
bGVycy4KLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwotICAgIHZvaWQgZGlkUmVjZWl2
ZVN5bmNXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpN
ZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7CisgICAgdm9p
ZCBkaWRSZWNlaXZlV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNXZWJQcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVf
cHRyPElQQzo6RW5jb2Rlcj4mKTsKICAgICB2b2lkIGNyZWF0ZVBsdWdpbihjb25zdCBQbHVnaW5D
cmVhdGlvblBhcmFtZXRlcnMmLCBQYXNzUmVmUHRyPE1lc3NhZ2VzOjpXZWJQcm9jZXNzQ29ubmVj
dGlvbjo6Q3JlYXRlUGx1Z2luOjpEZWxheWVkUmVwbHk+KTsKICAgICB2b2lkIGNyZWF0ZVBsdWdp
bkFzeW5jaHJvbm91c2x5KGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZv
aWQgZGVzdHJveVBsdWdpbih1aW50NjRfdCBwbHVnaW5JbnN0YW5jZUlELCBib29sIGFzeW5jaHJv
bm91c0NyZWF0aW9uSW5jb21wbGV0ZSwgUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUHJvY2Vzc0Nv
bm5lY3Rpb246OkRlc3Ryb3lQbHVnaW46OkRlbGF5ZWRSZXBseT4pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0Mi9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCA0YjA5OTU1NGQzYTVmYmZmNTk2NmEyZjQ1
ODY4Mjc1NGM5ZTZlZmQyLi5jYjE2YTFhMGY1MDEwOGQwMjU3MzIyYmY0NTU1N2Q0ZWMzMmVhYzJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtNDA0LDcg
KzQwNCw3IEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIoZmlsZSk6CiAgICAgaGVhZGVy
X2NvbmRpdGlvbnMgPSB7CiAgICAgICAgICciJXMiJyAlIG1lc3NhZ2VzX2hlYWRlcl9maWxlbmFt
ZShyZWNlaXZlcik6IFtOb25lXSwKICAgICAgICAgJyJIYW5kbGVNZXNzYWdlLmgiJzogW05vbmVd
LAotICAgICAgICAnIk1lc3NhZ2VEZWNvZGVyLmgiJzogW05vbmVdLAorICAgICAgICAnIkRlY29k
ZXIuaCInOiBbTm9uZV0sCiAgICAgfQogCiAgICAgdHlwZV9jb25kaXRpb25zID0ge30KQEAgLTUy
MCw3ICs1MjAsNyBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAg
ICAgICAgYXN5bmNfbWVzc2FnZXMuYXBwZW5kKG1lc3NhZ2UpCiAKICAgICBpZiBhc3luY19tZXNz
YWdlczoKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgndm9pZCAlczo6ZGlkUmVjZWl2ZSVzTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZURlY29kZXImIGRlY29k
ZXIpXG4nICUgKHJlY2VpdmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUgaWYgcmVjZWl2ZXIuaGFzX2F0
dHJpYnV0ZShMRUdBQ1lfUkVDRUlWRVJfQVRUUklCVVRFKSBlbHNlICcnKSkKKyAgICAgICAgcmVz
dWx0LmFwcGVuZCgndm9pZCAlczo6ZGlkUmVjZWl2ZSVzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcilcbicgJSAocmVjZWl2ZXIubmFtZSwg
cmVjZWl2ZXIubmFtZSBpZiByZWNlaXZlci5oYXNfYXR0cmlidXRlKExFR0FDWV9SRUNFSVZFUl9B
VFRSSUJVVEUpIGVsc2UgJycpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQogICAgICAg
ICByZXN1bHQgKz0gW2FzeW5jX21lc3NhZ2Vfc3RhdGVtZW50KHJlY2VpdmVyLCBtZXNzYWdlKSBm
b3IgbWVzc2FnZSBpbiBhc3luY19tZXNzYWdlc10KICAgICAgICAgaWYgKHJlY2VpdmVyLnN1cGVy
Y2xhc3MpOgpAQCAtNTMzLDcgKzUzMyw3IEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIo
ZmlsZSk6CiAKICAgICBpZiBzeW5jX21lc3NhZ2VzOgogICAgICAgICByZXN1bHQuYXBwZW5kKCdc
bicpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoJ3ZvaWQgJXM6OmRpZFJlY2VpdmVTeW5jJXNNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVj
b2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcilcbicgJSAo
cmVjZWl2ZXIubmFtZSwgcmVjZWl2ZXIubmFtZSBpZiByZWNlaXZlci5oYXNfYXR0cmlidXRlKExF
R0FDWV9SRUNFSVZFUl9BVFRSSUJVVEUpIGVsc2UgJycpKQorICAgICAgICByZXN1bHQuYXBwZW5k
KCd2b2lkICVzOjpkaWRSZWNlaXZlU3luYyVzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rl
cj4mIHJlcGx5RW5jb2RlcilcbicgJSAocmVjZWl2ZXIubmFtZSwgcmVjZWl2ZXIubmFtZSBpZiBy
ZWNlaXZlci5oYXNfYXR0cmlidXRlKExFR0FDWV9SRUNFSVZFUl9BVFRSSUJVVEUpIGVsc2UgJycp
KQogICAgICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQogICAgICAgICByZXN1bHQgKz0gW3N5bmNf
bWVzc2FnZV9zdGF0ZW1lbnQocmVjZWl2ZXIsIG1lc3NhZ2UpIGZvciBtZXNzYWdlIGluIHN5bmNf
bWVzc2FnZXNdCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBVTlVTRURfUEFSQU0oY29ubmVj
dGlvbik7XG4nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElEYXRh
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRGF0YS5jcHAKaW5kZXggOTgzNzUw
YTVhOGQyYWQ0OWY3NWRlNzRlZmU2ZTM2YzA2YzUzNTA1MC4uNjEzNDNiZDk0MTA2YjZlNzg5Zjgz
YmMyNWRlNzlmN2E2MDQwOTNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9BUElEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSURhdGEuY3Bw
CkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQVBJRGF0
YS5oIgogCi0jaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCisjaW5jbHVkZSAiRGVjb2Rlci5o
IgogI2luY2x1ZGUgIkVuY29kZXIuaCIKIAogbmFtZXNwYWNlIEFQSSB7CkBAIC0zNiw3ICszNiw3
IEBAIHZvaWQgRGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBl
bmNvZGVyIDw8IGRhdGFSZWZlcmVuY2UoKTsKIH0KIAotYm9vbCBEYXRhOjpkZWNvZGUoSVBDOjpB
cmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxBUEk6Ok9iamVjdD4mIHJlc3VsdCkKK2Jv
b2wgRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPEFQSTo6T2JqZWN0
PiYgcmVzdWx0KQogewogICAgIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoZGF0YVJlZmVyZW5jZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0FQSURhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
QVBJRGF0YS5oCmluZGV4IDE4ZjAxZDA4Mzk3NTllMTA4ODgwZDgwMGZjZWNlZTYwYjgxNTFhMTgu
LjA2NmZhNDQxZjFiNTlkYjFlMWM3NDU0ZmE1MzhlZGQ0MDgyZjYxNGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvQVBJRGF0YS5oCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCiBuYW1lc3BhY2UgSVBDIHsKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIERl
Y29kZXI7CiBjbGFzcyBFbmNvZGVyOwogfQogCkBAIC04MSw3ICs4MSw3IEBAIHB1YmxpYzoKICAg
ICBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YVJlZmVyZW5jZSgpIGNvbnN0IHsgcmV0dXJuIElQQzo6
RGF0YVJlZmVyZW5jZShtX2J5dGVzLCBtX3NpemUpOyB9CiAKICAgICB2b2lkIGVuY29kZShJUEM6
OkVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERl
Y29kZXImLCBSZWZQdHI8QVBJOjpPYmplY3Q+Jik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQ
Qzo6RGVjb2RlciYsIFJlZlB0cjxBUEk6Ok9iamVjdD4mKTsKIAogcHJpdmF0ZToKICAgICBEYXRh
KGNvbnN0IHVuc2lnbmVkIGNoYXIqIGJ5dGVzLCBzaXplX3Qgc2l6ZSwgRnJlZURhdGFGdW5jdGlv
biBmcmVlRGF0YUZ1bmN0aW9uLCBjb25zdCB2b2lkKiBjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElFcnJvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL0FQSUVycm9yLmNwcAppbmRleCBkODVmOTQzYjcwYTMzYzE3ZDYyYzg5MjUwMGRkYmZm
ZmZiMDU5ZjhiLi44MzlmYjBmMTQ4Y2NlY2U0NzIxZjhlMzI0MzQwOThjOTBiZmZlY2M3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUVycm9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUVycm9yLmNwcApAQCAtNDMsNyArNDMsNyBAQCB2b2lk
IEVycm9yOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIg
PDwgcGxhdGZvcm1FcnJvcigpOwogfQogCi1ib29sIEVycm9yOjpkZWNvZGUoSVBDOjpBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxPYmplY3Q+JiByZXN1bHQpCitib29sIEVycm9yOjpk
ZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8T2JqZWN0PiYgcmVzdWx0KQogewog
ICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3I7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShlcnJvcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUVycm9y
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUVycm9yLmgKaW5kZXggM2EwOTU3MTY1
YjliNzdiMGEyMWNmMmI3YzE4Y2JiODc1OGRlMmRkNC4uOGMzNjAyN2RmYzI2ZWM4NWEwZDM5Nzdj
NTJiOGU4ZjBjNmQxNGEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9B
UElFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRXJyb3IuaApAQCAt
MzAsNyArMzAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogCiBuYW1l
c3BhY2UgSVBDIHsKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIERlY29kZXI7CiBjbGFz
cyBFbmNvZGVyOwogfQogCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJiBwbGF0Zm9ybUVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0
Zm9ybUVycm9yOyB9CiAKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBSZWZQdHI8T2JqZWN0
PiYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBSZWZQdHI8T2JqZWN0
PiYpOwogCiBwcml2YXRlOgogICAgIEVycm9yKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9BUElGcmFtZUhhbmRsZS5jcHAKaW5kZXggOGEzMjAwMGM0MjdhODYwZDM2ODRlNmFhNTFlMTEw
YTlhNjU1ZDk0OS4uNzk2NDZhYzZlNTljNDFkNGRmNzA5MDFkYmE3ZTI2NzUzMzZkNTI0YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5jcHAKQEAgLTI2LDcg
KzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBUElGcmFtZUhhbmRsZS5o
IgogCi0jaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCisjaW5jbHVkZSAiRGVjb2Rlci5oIgog
I2luY2x1ZGUgIkVuY29kZXIuaCIKIAogbmFtZXNwYWNlIEFQSSB7CkBAIC01Nyw3ICs1Nyw3IEBA
IHZvaWQgRnJhbWVIYW5kbGU6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAg
ICAgZW5jb2RlciA8PCBtX2lzQXV0b2NvbnZlcnRpbmc7CiB9CiAKLWJvb2wgRnJhbWVIYW5kbGU6
OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPE9iamVjdD4mIHJl
c3VsdCkKK2Jvb2wgRnJhbWVIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFJl
ZlB0cjxPYmplY3Q+JiByZXN1bHQpCiB7CiAgICAgdWludDY0X3QgZnJhbWVJRDsKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGZyYW1lSUQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9BUElGcmFtZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElG
cmFtZUhhbmRsZS5oCmluZGV4IDIyN2Y5ODRhYmRhM2RiNzY3NjIwNjE5NDI2MDRiZTliOGVkODAx
MWYuLmIxMGU4MDhhNGIxOWFkMzEzZDhiNDU1YzIzYjlkODM5OWNjMzg1NTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmgKQEAgLTMwLDcgKzMwLDcgQEAKICNp
bmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBJUEMgewotY2xhc3MgQXJndW1lbnREZWNv
ZGVyOworY2xhc3MgRGVjb2RlcjsKIGNsYXNzIEVuY29kZXI7CiB9CiAKQEAgLTQ4LDcgKzQ4LDcg
QEAgcHVibGljOgogICAgIGJvb2wgaXNBdXRvY29udmVydGluZygpIGNvbnN0IHsgcmV0dXJuIG1f
aXNBdXRvY29udmVydGluZzsgfQogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29u
c3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgUmVmUHRy
PE9iamVjdD4mKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgUmVmUHRy
PE9iamVjdD4mKTsKIAogcHJpdmF0ZToKICAgICBjb25zdCB1aW50NjRfdCBtX2ZyYW1lSUQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSUdlb21ldHJ5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJR2VvbWV0cnkuY3BwCmluZGV4IGVhZmE3MzJkNTIw
Yjg2NjM0NmJiOTg5ZTA1MjlkYWZlYWZjNDk1OGQuLjNkOGNiNjFhMzIwNmQ2MzAwNWUzNzI2Zjll
N2M0NjgwMjIwYjlhMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJ
R2VvbWV0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJR2VvbWV0cnku
Y3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQVBJ
R2VvbWV0cnkuaCIKIAotI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgorI2luY2x1ZGUgIkRl
Y29kZXIuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgiCiAKIG5hbWVzcGFjZSBBUEkgewpAQCAtMzcs
NyArMzcsNyBAQCB2b2lkIFBvaW50OjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogICAgIGVuY29kZXIgPDwgbV9wb2ludC55OwogfQogCi1ib29sIFBvaW50OjpkZWNvZGUoSVBD
OjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxBUEk6Ok9iamVjdD4mIHJlc3VsdCkK
K2Jvb2wgUG9pbnQ6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFJlZlB0cjxBUEk6Ok9i
amVjdD4mIHJlc3VsdCkKIHsKICAgICBXS1BvaW50IHBvaW50OwogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocG9pbnQueCkpCkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgU2l6ZTo6ZW5jb2RlKElQQzo6
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1fc2l6ZS5oZWlnaHQ7CiB9
CiAKLWJvb2wgU2l6ZTo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZWZQ
dHI8QVBJOjpPYmplY3Q+JiByZXN1bHQpCitib29sIFNpemU6OmRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIsIFJlZlB0cjxBUEk6Ok9iamVjdD4mIHJlc3VsdCkKIHsKICAgICBXS1NpemUgc2l6
ZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUud2lkdGgpKQpAQCAtNzcsNyArNzcsNyBA
QCB2b2lkIFJlY3Q6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5j
b2RlciA8PCBtX3JlY3Quc2l6ZS5oZWlnaHQ7CiB9CiAKLWJvb2wgUmVjdDo6ZGVjb2RlKElQQzo6
QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8QVBJOjpPYmplY3Q+JiByZXN1bHQpCiti
b29sIFJlY3Q6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFJlZlB0cjxBUEk6Ok9iamVj
dD4mIHJlc3VsdCkKIHsKICAgICBXS1JlY3QgcmVjdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlY3Qub3JpZ2luLngpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9B
UElHZW9tZXRyeS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElHZW9tZXRyeS5oCmlu
ZGV4IGM5YzFkMThmZWE3ZmE5ZDUwZGQyOTJlNjMwZDliNDkzZjI4ZmRiZjEuLjBmZjk0Y2NhOTQz
NzYwNzFjYjEyOThkMWY0ODFiNTVmYmFlNjBmNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvQVBJR2VvbWV0cnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L0FQSUdlb21ldHJ5LmgKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0
UmVjdC5oPgogCiBuYW1lc3BhY2UgSVBDIHsKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNz
IERlY29kZXI7CiBjbGFzcyBFbmNvZGVyOwogfQogCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoK
ICAgICBjb25zdCBXS1NpemUmIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KIAogICAg
IHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29k
ZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFJlZlB0cjxBUEk6Ok9iamVjdD4mKTsKKyAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgUmVmUHRyPEFQSTo6T2JqZWN0PiYpOwogCiBw
cml2YXRlOgogICAgIGV4cGxpY2l0IFNpemUoY29uc3QgV0tTaXplJiBzaXplKQpAQCAtNjgsNyAr
NjgsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgV0tQb2ludCYgcG9pbnQoKSBjb25zdCB7IHJldHVy
biBtX3BvaW50OyB9CiAKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBSZWZQdHI8QVBJOjpP
YmplY3Q+Jik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFJlZlB0cjxB
UEk6Ok9iamVjdD4mKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBQb2ludChjb25zdCBXS1Bv
aW50JiBwb2ludCkKQEAgLTg4LDcgKzg4LDcgQEAgcHVibGljOgogICAgIGNvbnN0IFdLUmVjdCYg
cmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdDsgfQogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpF
bmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNv
ZGVyJiwgUmVmUHRyPEFQSTo6T2JqZWN0PiYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6
OkRlY29kZXImLCBSZWZQdHI8QVBJOjpPYmplY3Q+Jik7CiAKIHByaXZhdGU6CiAgICAgZXhwbGlj
aXQgUmVjdChjb25zdCBXS1JlY3QmIHJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL0FQSU51bWJlci5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElOdW1i
ZXIuaAppbmRleCA0YTRhOTg3Zjg1YmNhYmY5NWM3MzAzYzA2NzI1YmY1ZWJlMDg0MDg3Li5mZTU3
MzQ5ODFjNTdmZjFmNmI1YmE5YmMzYjUwYzFmNDRjZDg0MzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0FQSU51bWJlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvQVBJTnVtYmVyLmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgQVBJTnVtYmVyX2gK
IAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgor
I2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgiCiAKIG5hbWVzcGFjZSBB
UEkgewpAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGVuY29kZXIgPDwgbV92YWx1
ZTsKICAgICB9CiAKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXIm
IGRlY29kZXIsIFJlZlB0cjxPYmplY3Q+JiByZXN1bHQpCisgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPE9iamVjdD4mIHJlc3VsdCkKICAgICB7CiAg
ICAgICAgIE51bWJlclR5cGUgdmFsdWU7CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodmFs
dWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElQYWdlR3JvdXBI
YW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElQYWdlR3JvdXBIYW5kbGUu
Y3BwCmluZGV4IGQxMTVjNTFlZGM2NmZkZjIxZTZiYjc4MDkwZDUzZTViNzdlZjEwYTguLmM4ZmQy
MjRlZTBiNmRhMzZlZDFjNTRkYjY5ZjU2YjRlZDQ3YTlkMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvQVBJUGFnZUdyb3VwSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL0FQSVBhZ2VHcm91cEhhbmRsZS5jcHAKQEAgLTI2LDcgKzI2LDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBUElQYWdlR3JvdXBIYW5kbGUuaCIKIAot
I2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgorI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNs
dWRlICJFbmNvZGVyLmgiCiAKIG5hbWVzcGFjZSBBUEkgewpAQCAtNTAsNyArNTAsNyBAQCB2b2lk
IFBhZ2VHcm91cEhhbmRsZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAg
ICBlbmNvZGVyIDw8IG1fd2ViUGFnZUdyb3VwRGF0YTsKIH0KIAotYm9vbCBQYWdlR3JvdXBIYW5k
bGU6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPE9iamVjdD4m
IHJlc3VsdCkKK2Jvb2wgUGFnZUdyb3VwSGFuZGxlOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNv
ZGVyLCBSZWZQdHI8T2JqZWN0PiYgcmVzdWx0KQogewogICAgIFdlYktpdDo6V2ViUGFnZUdyb3Vw
RGF0YSB3ZWJQYWdlR3JvdXBEYXRhOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUod2ViUGFnZUdy
b3VwRGF0YSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSVBhZ2VH
cm91cEhhbmRsZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElQYWdlR3JvdXBIYW5k
bGUuaAppbmRleCBiYzAzMmM5ODQ5Mjc5ZjA2MzU1NDhlYjY4ZTRhMjMwNzliYjMzZjM5Li5lYWNh
NWRmYmQ5YmViOThhY2I0NmJkYzc1ZWU3OTJjZGI5MWI0OWJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0FQSVBhZ2VHcm91cEhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvQVBJUGFnZUdyb3VwSGFuZGxlLmgKQEAgLTMxLDcgKzMxLDcgQEAKICNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBJUEMgewotY2xhc3MgQXJndW1lbnRE
ZWNvZGVyOworY2xhc3MgRGVjb2RlcjsKIGNsYXNzIEVuY29kZXI7CiB9CiAKQEAgLTQ1LDcgKzQ1
LDcgQEAgcHVibGljOgogICAgIGNvbnN0IFdlYktpdDo6V2ViUGFnZUdyb3VwRGF0YSYgd2ViUGFn
ZUdyb3VwRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViUGFnZUdyb3VwRGF0YTsgfQogCiAgICAg
dm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2Rl
KElQQzo6QXJndW1lbnREZWNvZGVyJiwgUmVmUHRyPE9iamVjdD4mKTsKKyAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgUmVmUHRyPE9iamVjdD4mKTsKIAogcHJpdmF0ZToKICAg
ICBleHBsaWNpdCBQYWdlR3JvdXBIYW5kbGUoV2ViS2l0OjpXZWJQYWdlR3JvdXBEYXRhJiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElQYWdlSGFuZGxlLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJUGFnZUhhbmRsZS5jcHAKaW5kZXggZGNiMDg0
OWMxOWM4Yzg0MTI2MTljOWIyYmJiYjVkNTU0MjM1ZTVmZi4uYTZhMDA5OTU1MDBlNzYzM2UwZDQ1
YjE4YTQ0N2M3NDJhNjkyMjBhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9BUElQYWdlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSVBh
Z2VIYW5kbGUuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiQVBJUGFnZUhhbmRsZS5oIgogCi0jaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCisj
aW5jbHVkZSAiRGVjb2Rlci5oIgogI2luY2x1ZGUgIkVuY29kZXIuaCIKIAogbmFtZXNwYWNlIEFQ
SSB7CkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgUGFnZUhhbmRsZTo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1faXNBdXRvY29udmVydGluZzsKIH0K
IAotYm9vbCBQYWdlSGFuZGxlOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIs
IFJlZlB0cjxPYmplY3Q+JiByZXN1bHQpCitib29sIFBhZ2VIYW5kbGU6OmRlY29kZShJUEM6OkRl
Y29kZXImIGRlY29kZXIsIFJlZlB0cjxPYmplY3Q+JiByZXN1bHQpCiB7CiAgICAgdWludDY0X3Qg
cGFnZUlEOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFnZUlEKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJUGFnZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9BUElQYWdlSGFuZGxlLmgKaW5kZXggNDJmODNjNzA5NDg4NDhjOTkyNmMzZGY5
MGMzMDM5ZDVhMDMxMTRhMy4uZjMwZmFmYmRjMzFiNzkxYTlmYzBhYTYyNmZjOTBhNzQ4ZWYwODk0
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElQYWdlSGFuZGxlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElQYWdlSGFuZGxlLmgKQEAgLTMwLDcg
KzMwLDcgQEAKICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBJUEMgewotY2xhc3Mg
QXJndW1lbnREZWNvZGVyOworY2xhc3MgRGVjb2RlcjsKIGNsYXNzIEVuY29kZXI7CiB9CiAKQEAg
LTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNBdXRvY29udmVydGluZygpIGNvbnN0
IHsgcmV0dXJuIG1faXNBdXRvY29udmVydGluZzsgfQogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpF
bmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNv
ZGVyJiwgUmVmUHRyPE9iamVjdD4mKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNv
ZGVyJiwgUmVmUHRyPE9iamVjdD4mKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBQYWdlSGFu
ZGxlKHVpbnQ2NF90IHBhZ2VJRCwgYm9vbCBpc0F1dG9jb252ZXJ0aW5nKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJVVJMLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL0FQSVVSTC5oCmluZGV4IGQ0NzYwZjUyYTFlNGQ5ZGRkMTI0OTQwYzY3ODlhYjQ3ZTQw
Y2JiZGMuLjU3MjUxYWEzNmZjYmNkNWZiOWQ2ZDVhNTc2NDgwYTI0MzNkZDU0YzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJVVJMLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9BUElVUkwuaApAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgICAg
IGVuY29kZXIgPDwgbV9zdHJpbmc7CiAgICAgfQogCi0gICAgc3RhdGljIGJvb2wgZGVjb2RlKElQ
Qzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8T2JqZWN0PiYgcmVzdWx0KQorICAg
IHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFJlZlB0cjxPYmplY3Q+
JiByZXN1bHQpCiAgICAgewogICAgICAgICBXVEY6OlN0cmluZyBzdHJpbmc7CiAgICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoc3RyaW5nKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvQVBJVVJMUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQ
SVVSTFJlcXVlc3QuY3BwCmluZGV4IGQwN2RmNTZkNTYxZTRmZTZhMzdjYjY5ZmY3NzZhNDIzNDM5
ZDM2MjMuLmFjOTA0ZDQwOWMyMTUxMGNmNTZjNzM4MDFhOTVmYTVmMWFmNTE5NWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJVVJMUmVxdWVzdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElVUkxSZXF1ZXN0LmNwcApAQCAtNTgsNyArNTgsNyBA
QCB2b2lkIFVSTFJlcXVlc3Q6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAg
ICAgZW5jb2RlciA8PCByZXNvdXJjZVJlcXVlc3QoKTsKIH0KIAotYm9vbCBVUkxSZXF1ZXN0Ojpk
ZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxPYmplY3Q+JiByZXN1
bHQpCitib29sIFVSTFJlcXVlc3Q6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFJlZlB0
cjxPYmplY3Q+JiByZXN1bHQpCiB7CiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7CiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXF1ZXN0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvQVBJVVJMUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9B
UElVUkxSZXF1ZXN0LmgKaW5kZXggZjI3MjU3NTVjMjNkOGQyOTY3NDRjYTFkYWJkYjk1YjM0ZmFh
ODMwZC4uMmEwMTYwMmRlMjYwOTcxMGVjYzkyM2NhMzA2MTViZmZhMGJhZmZjNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElVUkxSZXF1ZXN0LmgKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSS9BUElVUkxSZXF1ZXN0LmgKQEAgLTMxLDcgKzMxLDcgQEAKICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgSVBDIHsKLWNsYXNzIEFyZ3VtZW50
RGVjb2RlcjsKK2NsYXNzIERlY29kZXI7CiBjbGFzcyBFbmNvZGVyOwogfQogCkBAIC01MCw3ICs1
MCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzZXREZWZhdWx0VGltZW91dEludGVydmFs
KGRvdWJsZSk7CiAKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBSZWZQdHI8T2JqZWN0PiYp
OworICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBSZWZQdHI8T2JqZWN0PiYp
OwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFVSTFJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQ
SVVSTFJlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJVVJMUmVzcG9u
c2UuY3BwCmluZGV4IDQxMmNjZjg3N2JmNTc1NmMxOTdiMzA5Zjc0YzJiOGIxM2Q2Y2MwMzYuLjFk
OTNiNjJkMzhmYWMyYjg4MzdiODFhY2JhNTAyMGFhYzE0ZjgyYjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJVVJMUmVzcG9uc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvQVBJVVJMUmVzcG9uc2UuY3BwCkBAIC00Miw3ICs0Miw3IEBAIHZvaWQg
VVJMUmVzcG9uc2U6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5j
b2RlciA8PCByZXNvdXJjZVJlc3BvbnNlKCk7CiB9CiAKLWJvb2wgVVJMUmVzcG9uc2U6OmRlY29k
ZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPE9iamVjdD4mIHJlc3VsdCkK
K2Jvb2wgVVJMUmVzcG9uc2U6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFJlZlB0cjxP
YmplY3Q+JiByZXN1bHQpCiB7CiAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZTsKICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHJlc3BvbnNlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvQVBJVVJMUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
QVBJVVJMUmVzcG9uc2UuaAppbmRleCBjMThhYmVkZjgwNmJkNzhmMGUwNGQyOTdjMWU1MWQ2YTBj
MGYzMjY3Li4xMjVlMDM3MTFiMzE5MjkyYjUxMDY4MDFmNTRlNTFmNzBlMzdhNTI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSVVSTFJlc3BvbnNlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElVUkxSZXNwb25zZS5oCkBAIC0zMSw3ICszMSw3IEBA
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBBcmd1
bWVudERlY29kZXI7CitjbGFzcyBEZWNvZGVyOwogY2xhc3MgRW5jb2RlcjsKIH0KIApAQCAtNDcs
NyArNDcsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYg
cmVzb3VyY2VSZXNwb25zZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2U7IH0KIAogICAgIHZv
aWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShJ
UEM6OkFyZ3VtZW50RGVjb2RlciYsIFJlZlB0cjxPYmplY3Q+Jik7CisgICAgc3RhdGljIGJvb2wg
ZGVjb2RlKElQQzo6RGVjb2RlciYsIFJlZlB0cjxPYmplY3Q+Jik7CiAKIHByaXZhdGU6CiAgICAg
ZXhwbGljaXQgVVJMUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9SZW1vdGVPYmplY3RJ
bnZvY2F0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1JlbW90ZU9iamVj
dEludm9jYXRpb24uaAppbmRleCAxODcwZDM2ZmMyM2Y0ZjgzMTdjNTdjMGRkNzViZWM5MGNiMjc3
ZjVmLi40OGE3MDBmMTI0MDc4NWYxMzZlN2MzZjM4OTg5MGMwMTg5MjZlYWRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1JlbW90ZU9iamVjdEludm9jYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1JlbW90ZU9iamVjdEludm9j
YXRpb24uaApAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgSVBDIHsKIGNsYXNzIEVuY29k
ZXI7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBEZWNvZGVyOwogfQogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIGNvbnN0IFJlcGx5SW5m
byogcmVwbHlJbmZvKCkgY29uc3QgeyByZXR1cm4gbV9yZXBseUluZm8uZ2V0KCk7IH0KIAogICAg
IHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29k
ZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFJlbW90ZU9iamVjdEludm9jYXRpb24mKTsKKyAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgUmVtb3RlT2JqZWN0SW52b2NhdGlvbiYp
OwogCiBwcml2YXRlOgogICAgIFN0cmluZyBtX2ludGVyZmFjZUlkZW50aWZpZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1JlbW90ZU9iamVjdEludm9jYXRp
b24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1JlbW90ZU9iamVjdEludm9j
YXRpb24ubW0KaW5kZXggNTc2NDc0ZWVjYTBkOThiNDZjZjFiMzM3NmI4ZGFjZGNjZDljZTM2OS4u
MjU5Mjg0N2UzNDFhM2I2ZjcyODc1NGJkNzg4YTY2NTNkZDIyMTViMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9SZW1vdGVPYmplY3RJbnZvY2F0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvUmVtb3RlT2JqZWN0SW52b2NhdGlv
bi5tbQpAQCAtNTYsNyArNTYsNyBAQCB2b2lkIFJlbW90ZU9iamVjdEludm9jYXRpb246OmVuY29k
ZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBtX3JlcGx5SW5m
by0+YmxvY2tTaWduYXR1cmU7CiB9CiAKLWJvb2wgUmVtb3RlT2JqZWN0SW52b2NhdGlvbjo6ZGVj
b2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZW1vdGVPYmplY3RJbnZvY2F0aW9u
JiByZXN1bHQpCitib29sIFJlbW90ZU9iamVjdEludm9jYXRpb246OmRlY29kZShJUEM6OkRlY29k
ZXImIGRlY29kZXIsIFJlbW90ZU9iamVjdEludm9jYXRpb24mIHJlc3VsdCkKIHsKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2ludGVyZmFjZUlkZW50aWZpZXIpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29h
L1JlbW90ZU9iamVjdFJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29h
L1JlbW90ZU9iamVjdFJlZ2lzdHJ5LmgKaW5kZXggZTVmMzY1ZGIxYTc4NmRmN2ZkOTUxMjVkYWQz
ODNkMjY4MjE2ZmZhYS4uMTJmOTZmNDcyZTg5ZWZiZmFiNTg3MjgyNzU5MTdmMjM3OWVkNzI0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9SZW1vdGVPYmplY3RS
ZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvUmVtb3RlT2Jq
ZWN0UmVnaXN0cnkuaApAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAg
Ly8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRl
OwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycwogICAgIHZvaWQgaW52b2tlTWV0aG9kKGNvbnN0
IFJlbW90ZU9iamVjdEludm9jYXRpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Bc3Npc3RlZE5vZGVJbmZvcm1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QXNzaXN0ZWROb2RlSW5mb3JtYXRpb24uY3BwCmluZGV4IGNiYzExMGNhZDYxMWJhNmI1NjgwYjhi
OWFmMDRiMWVlOWE4MTdkODcuLjgyOTkxMWFmZDNhYmE0MWM0ZjFkYmVmNzkyZGE4YjUxNzRhOWQy
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Bc3Npc3RlZE5vZGVJbmZvcm1h
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Fzc2lzdGVkTm9kZUluZm9ybWF0
aW9uLmNwcApAQCAtNDEsNyArNDEsNyBAQCB2b2lkIE9wdGlvbkl0ZW06OmVuY29kZShJUEM6OkVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBwYXJlbnRHcm91cElEOwogfQog
Ci1ib29sIE9wdGlvbkl0ZW06OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwg
T3B0aW9uSXRlbSYgcmVzdWx0KQorYm9vbCBPcHRpb25JdGVtOjpkZWNvZGUoSVBDOjpEZWNvZGVy
JiBkZWNvZGVyLCBPcHRpb25JdGVtJiByZXN1bHQpCiB7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShyZXN1bHQudGV4dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTg4LDcgKzg4LDcgQEAg
dm9pZCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbjo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKICAgICBlbmNvZGVyLmVuY29kZUVudW0oYXV0b2ZpbGxGaWVsZE5hbWUpOwogfQog
Ci1ib29sIEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uJiByZXN1bHQpCitib29sIEFzc2lz
dGVkTm9kZUluZm9ybWF0aW9uOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBBc3Npc3Rl
ZE5vZGVJbmZvcm1hdGlvbiYgcmVzdWx0KQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVz
dWx0LmVsZW1lbnRSZWN0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0Fzc2lzdGVkTm9kZUluZm9ybWF0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24uaAppbmRleCAxOTAwZDE5ZmRlYzlh
NWNiYmYxOTZhMmEyNWQyNmQ3OWNlOTI2NGQzLi5kZWU2NjM5ZmFjZjEwYmMyZmQ5ZTk1MjRmMmIz
YjE4MWM0OGIzYWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXNzaXN0ZWRO
b2RlSW5mb3JtYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXNzaXN0ZWROb2Rl
SW5mb3JtYXRpb24uaApAQCAtODMsNyArODMsNyBAQCBzdHJ1Y3QgT3B0aW9uSXRlbSB7CiAgICAg
aW50IHBhcmVudEdyb3VwSUQgeyAwIH07CiAKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXIm
KSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBP
cHRpb25JdGVtJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIE9wdGlv
bkl0ZW0mKTsKIH07CiAKIHN0cnVjdCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiB7CkBAIC0xMTIs
NyArMTEyLDcgQEAgc3RydWN0IEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uIHsKICAgICBXZWJDb3Jl
OjpBdXRvZmlsbEZpZWxkTmFtZSBhdXRvZmlsbEZpZWxkTmFtZSB7IFdlYkNvcmU6OkF1dG9maWxs
RmllbGROYW1lOjpOb25lIH07CiAKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25z
dDsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBBc3Npc3Rl
ZE5vZGVJbmZvcm1hdGlvbiYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXIm
LCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYpOwogfTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25N
YW5hZ2VyLmgKaW5kZXggODg1NWY0NTNmOWJiOTFhZTc3N2U5NjM2N2M0Yjc4M2ZjYjAzNzBiZi4u
Y2IxN2Q3NTdjMGRiNWYzODYzOTBkODFiNWNiZGJlOWY4NmViYjUxZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlv
bk1hbmFnZXIuaApAQCAtOTIsNyArOTIsNyBAQCBwcml2YXRlOgogICAgIH07CiAgICAgCiAgICAg
Ly8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRl
OwogCiAgICAgYm9vbCB0cnlVc2VDZXJ0aWZpY2F0ZUluZm9Gb3JDaGFsbGVuZ2UoY29uc3QgV2Vi
Q29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0
ZUluZm8mLCBjb25zdCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ2hpbGRQcm9jZXNzLmgKaW5kZXggNWY0ZTRiYThhMGFkYjRhMWVkMzE0ZWYxMGM2MjNk
YjRkN2U2NDAyYi4uYTA2ZTM0OWEzOGMyODFmNWFjZThkMzYyMmEwNTQ2MWY5NDA0ZGE1YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuaApAQCAtMTAxLDcgKzEwMSw3IEBAIHByb3Rl
Y3RlZDoKICAgICBzdGF0aWMgdm9pZCBzdG9wTlNBcHBSdW5Mb29wKCk7CiAjZW5kaWYKIAotICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVj
b2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgLy8gSVBDOjpN
ZXNzYWdlU2VuZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvRGF0
YURldGVjdGlvblJlc3VsdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL0RhdGFEZXRl
Y3Rpb25SZXN1bHQuaAppbmRleCAwYTQwZDA2YzdiNDUyZGY3NTE0OWIxMGJlZDg0NTU2MzM3NWIx
ZTA5Li4yNzQ0M2NlM2YzYjI3YmRhNzQwZGRiNjEzNDlhNzg2ZDAwZGRmNmFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvRGF0YURldGVjdGlvblJlc3VsdC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9EYXRhRGV0ZWN0aW9uUmVzdWx0LmgKQEAgLTM4
LDcgKzM4LDcgQEAgc3RydWN0IERhdGFEZXRlY3Rpb25SZXN1bHQgewogICAgIFJldGFpblB0cjxO
U0FycmF5PiByZXN1bHRzOwogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7
Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgRGF0YURldGVj
dGlvblJlc3VsdCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBEYXRh
RGV0ZWN0aW9uUmVzdWx0Jik7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ29jb2EvRGF0YURldGVjdGlvblJlc3VsdC5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db2NvYS9EYXRhRGV0ZWN0aW9uUmVzdWx0Lm1tCmluZGV4IDIxY2E2YmUwMmJmNDE0OTFlMzVm
OWRkMTUwYjNlNDJjY2RjYjBlODEuLjUyMmEzNDg2NjgyZmQ1NzkyMDdjNmIzODAzMGQ5YTY0Yjk3
NDY2YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9EYXRhRGV0ZWN0
aW9uUmVzdWx0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9EYXRhRGV0ZWN0
aW9uUmVzdWx0Lm1tCkBAIC01MCw3ICs1MCw3IEBAIHZvaWQgRGF0YURldGVjdGlvblJlc3VsdDo6
ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBJUEM6OmVuY29kZShlbmNv
ZGVyLCByZWludGVycHJldF9jYXN0PENGRGF0YVJlZj4oZGF0YS5nZXQoKSkpOyAgICAgICAgCiB9
CiAKLWJvb2wgRGF0YURldGVjdGlvblJlc3VsdDo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVy
JiBkZWNvZGVyLCBEYXRhRGV0ZWN0aW9uUmVzdWx0JiByZXN1bHQpCitib29sIERhdGFEZXRlY3Rp
b25SZXN1bHQ6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIERhdGFEZXRlY3Rpb25SZXN1
bHQmIHJlc3VsdCkKIHsKICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBkYXRhOwogICAgIGlmICgh
SVBDOjpkZWNvZGUoZGVjb2RlciwgZGF0YSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ29jb2EvTG9hZFBhcmFtZXRlcnNDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db2NvYS9Mb2FkUGFyYW1ldGVyc0NvY29hLm1tCmluZGV4IGY5NjMwZGVhNzYzM2I0Y2Y4ZGUy
NDViOTk1YTZhZThhMjVlZGIxYTQuLjgxNzBmMjIxZTcyNzZjMGIxNzhlMzRmMGMyY2RjZjg0OTE3
Yjk1ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9Mb2FkUGFyYW1l
dGVyc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9Mb2FkUGFyYW1l
dGVyc0NvY29hLm1tCkBAIC0zOCw3ICszOCw3IEBAIHZvaWQgTG9hZFBhcmFtZXRlcnM6OnBsYXRm
b3JtRW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBJUEM6OmVuY29kZShl
bmNvZGVyLCBkYXRhRGV0ZWN0aW9uQ29udGV4dC5nZXQoKSk7CiB9CiAKLWJvb2wgTG9hZFBhcmFt
ZXRlcnM6OnBsYXRmb3JtRGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBMb2Fk
UGFyYW1ldGVycyYgZGF0YSkKK2Jvb2wgTG9hZFBhcmFtZXRlcnM6OnBsYXRmb3JtRGVjb2RlKElQ
Qzo6RGVjb2RlciYgZGVjb2RlciwgTG9hZFBhcmFtZXRlcnMmIGRhdGEpCiB7CiAgICAgaWYgKCFJ
UEM6OmRlY29kZShkZWNvZGVyLCBkYXRhLmRhdGFEZXRlY3Rpb25Db250ZXh0KSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL1dl
YkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29h
L1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCmluZGV4IDUzMWI4ZmM5ZWI0ZmQ1ODJjMWRj
NTVjNDEzMTJmZTJlZjJhZDFmMjguLjM3YjJkNzEzNGU5ZDI5ZDM2YzM5OWFkNDY0ZWY5YmU1NDgx
MmI0NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJn
dW1lbnRDb2RlcnNDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0KQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OlBheW1lbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
V2ViQ29yZTo6UGEKICAgICBlbmNvZGVyIDw8IERhdGFSZWZlcmVuY2Uoc3RhdGljX2Nhc3Q8Y29u
c3QgdWludDhfdCo+KFtkYXRhIGJ5dGVzXSksIFtkYXRhIGxlbmd0aF0pOwogfQogCi1ib29sIEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRl
Y29kZXIsIFdlYkNvcmU6OlBheW1lbnQmIHBheW1lbnQpCitib29sIEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6UGF5bWVudD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpQYXltZW50
JiBwYXltZW50KQogewogICAgIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoZGF0YVJlZmVyZW5jZSkpCkBAIC05NCw3ICs5NCw3IEBAIHZv
aWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50Q29udGFjdD46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBXZWJDCiAgICAgZW5jb2RlciA8PCBEYXRhUmVmZXJlbmNlKHN0YXRp
Y19jYXN0PGNvbnN0IHVpbnQ4X3QqPihbZGF0YSBieXRlc10pLCBbZGF0YSBsZW5ndGhdKTsKIH0K
IAotYm9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRDb250YWN0Pjo6ZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViQ29yZTo6UGF5bWVudENvbnRhY3QmIHBheW1lbnRD
b250YWN0KQorYm9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRDb250YWN0Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6OlBheW1lbnRDb250YWN0JiBwYXltZW50Q29u
dGFjdCkKIHsKICAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YVJlZmVyZW5jZTsKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGRhdGFSZWZlcmVuY2UpKQpAQCAtMTI4LDcgKzEyOCw3IEBAIHZvaWQg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uPjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvCiAgICAgZW5jb2RlciA8PCBEYXRhUmVmZXJlbmNlKHN0YXRpY19j
YXN0PGNvbnN0IHVpbnQ4X3QqPihbZGF0YSBieXRlc10pLCBbZGF0YSBsZW5ndGhdKTsKIH0KIAot
Ym9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24+OjpkZWNv
ZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNz
aW9uJiBwYXltZW50TWVyY2hhbnRTZXNzaW9uKQorYm9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlBheW1lbnRNZXJjaGFudFNlc3Npb24+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgV2ViQ29y
ZTo6UGF5bWVudE1lcmNoYW50U2Vzc2lvbiYgcGF5bWVudE1lcmNoYW50U2Vzc2lvbikKIHsKICAg
ICBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YVJlZmVyZW5jZTsKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGRhdGFSZWZlcmVuY2UpKQpAQCAtMTYzLDcgKzE2Myw3IEBAIHZvaWQgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpQYXltZW50TWV0aG9kPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IFdlYkNvCiAgICAgZW5jb2RlciA8PCBEYXRhUmVmZXJlbmNlKHN0YXRpY19jYXN0PGNvbnN0IHVp
bnQ4X3QqPihbZGF0YSBieXRlc10pLCBbZGF0YSBsZW5ndGhdKTsKIH0KIAotYm9vbCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OlBheW1lbnRNZXRob2Q+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBk
ZWNvZGVyLCBXZWJDb3JlOjpQYXltZW50TWV0aG9kJiBwYXltZW50TWV0aG9kKQorYm9vbCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRNZXRob2Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgV2ViQ29yZTo6UGF5bWVudE1ldGhvZCYgcGF5bWVudE1ldGhvZCkKIHsKICAgICBJUEM6OkRh
dGFSZWZlcmVuY2UgZGF0YVJlZmVyZW5jZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGFS
ZWZlcmVuY2UpKQpAQCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxQYXltZW50
UmVxdWVzdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBQYXltZW50UmVxdWVzCiAg
ICAgZW5jb2RlciA8PCByZXF1ZXN0LmFwcGxpY2F0aW9uRGF0YSgpOwogfQogCi1ib29sIEFyZ3Vt
ZW50Q29kZXI8UGF5bWVudFJlcXVlc3Q+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBQYXltZW50UmVxdWVzdCYgcmVxdWVzdCkKK2Jvb2wgQXJndW1lbnRDb2RlcjxQYXltZW50UmVx
dWVzdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBQYXltZW50UmVxdWVzdCYgcmVxdWVzdCkK
IHsKICAgICBTdHJpbmcgY291bnRyeUNvZGU7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb3Vu
dHJ5Q29kZSkpCkBAIC0yNzksNyArMjc5LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFBheW1lbnRS
ZXF1ZXN0OjpDb250YWN0RmllbGRzPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnMKICAg
ICBlbmNvZGVyIDw8IGNvbnRhY3RGaWVsZHMubmFtZTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVy
PFBheW1lbnRSZXF1ZXN0OjpDb250YWN0RmllbGRzPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYg
ZGVjb2RlciwgUGF5bWVudFJlcXVlc3Q6OkNvbnRhY3RGaWVsZHMmIGNvbnRhY3RGaWVsZHMpCiti
b29sIEFyZ3VtZW50Q29kZXI8UGF5bWVudFJlcXVlc3Q6OkNvbnRhY3RGaWVsZHM+OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgUGF5bWVudFJlcXVlc3Q6OkNvbnRhY3RGaWVsZHMmIGNvbnRhY3RG
aWVsZHMpCiB7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb250YWN0RmllbGRzLnBvc3RhbEFk
ZHJlc3MpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMDAsNyArMzAwLDcgQEAgdm9pZCBB
cmd1bWVudENvZGVyPFBheW1lbnRSZXF1ZXN0OjpMaW5lSXRlbT46OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBQYXkKICAgICBlbmNvZGVyIDw8IGxpbmVJdGVtLmFtb3VudDsKIH0KIAot
Ym9vbCBBcmd1bWVudENvZGVyPFBheW1lbnRSZXF1ZXN0OjpMaW5lSXRlbT46OmRlY29kZShBcmd1
bWVudERlY29kZXImIGRlY29kZXIsIFBheW1lbnRSZXF1ZXN0OjpMaW5lSXRlbSYgbGluZUl0ZW0p
Citib29sIEFyZ3VtZW50Q29kZXI8UGF5bWVudFJlcXVlc3Q6OkxpbmVJdGVtPjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIsIFBheW1lbnRSZXF1ZXN0OjpMaW5lSXRlbSYgbGluZUl0ZW0pCiB7CiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0obGluZUl0ZW0udHlwZSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKQEAgLTMyMCw3ICszMjAsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8UGF5bWVudFJl
cXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZQogICAg
IGVuY29kZXIgPDwgbWVyY2hhbnRDYXBhYmlsaXRpZXMuc3VwcG9ydHNEZWJpdDsKIH0KIAotYm9v
bCBBcmd1bWVudENvZGVyPFBheW1lbnRSZXF1ZXN0OjpNZXJjaGFudENhcGFiaWxpdGllcz46OmRl
Y29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFBheW1lbnRSZXF1ZXN0OjpNZXJjaGFudENh
cGFiaWxpdGllcyYgbWVyY2hhbnRDYXBhYmlsaXRpZXMpCitib29sIEFyZ3VtZW50Q29kZXI8UGF5
bWVudFJlcXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIFBheW1lbnRSZXF1ZXN0OjpNZXJjaGFudENhcGFiaWxpdGllcyYgbWVyY2hhbnRDYXBhYmls
aXRpZXMpCiB7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXJjaGFudENhcGFiaWxpdGllcy5z
dXBwb3J0czNEUykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM0Miw3ICszNDIsNyBAQCB2
b2lkIEFyZ3VtZW50Q29kZXI8UGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbgogICAgIGVuY29kZXIgPDwgc2hpcHBpbmdNZXRob2QuaWRl
bnRpZmllcjsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPFBheW1lbnRSZXF1ZXN0OjpTaGlwcGlu
Z01ldGhvZD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFBheW1lbnRSZXF1ZXN0
OjpTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCitib29sIEFyZ3VtZW50Q29kZXI8UGF5
bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFBh
eW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCiB7CiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShzaGlwcGluZ01ldGhvZC5sYWJlbCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTM2MSw3ICszNjEsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8UGF5bWVudFJlcXVl
c3Q6OlRvdGFsQW5kTGluZUl0ZW1zPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsCiAgICAgZW5j
b2RlciA8PCB0b3RhbEFuZExpbmVJdGVtcy5saW5lSXRlbXM7CiB9CiAKLWJvb2wgQXJndW1lbnRD
b2RlcjxQYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXM+OjpkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBQYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXMmIHRvdGFs
QW5kTGluZUl0ZW1zKQorYm9vbCBBcmd1bWVudENvZGVyPFBheW1lbnRSZXF1ZXN0OjpUb3RhbEFu
ZExpbmVJdGVtcz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBQYXltZW50UmVxdWVzdDo6VG90
YWxBbmRMaW5lSXRlbXMmIHRvdGFsQW5kTGluZUl0ZW1zKQogewogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUodG90YWxBbmRMaW5lSXRlbXMudG90YWwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5jcHAKaW5k
ZXggMWJiZmQ2NWZlYWZlMDM2ZDJhMjBmYjBiN2RjOGQ0ZTBhMTYyNGUyYi4uMzliZGIzMmUxZDFh
MWQxOTUwN2VmODVmYjI4ZjI2MTFiOWI5NjM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmNwcApAQCAtODksNyArODksNyBAQCB2b2lkIENv
bnRleHRNZW51Q29udGV4dERhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0
CiAjZW5kaWYKIH0KIAotYm9vbCBDb250ZXh0TWVudUNvbnRleHREYXRhOjpkZWNvZGUoSVBDOjpB
cmd1bWVudERlY29kZXImIGRlY29kZXIsIENvbnRleHRNZW51Q29udGV4dERhdGEmIHJlc3VsdCkK
K2Jvb2wgQ29udGV4dE1lbnVDb250ZXh0RGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rl
ciwgQ29udGV4dE1lbnVDb250ZXh0RGF0YSYgcmVzdWx0KQogewogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGVFbnVtKHJlc3VsdC5tX3R5cGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuaAppbmRleCBhMWI2YWZj
ODZjMzAxMDI2NmNiZTRhYWZkNDQzYzU4NjAyOGRmYTc4Li43MzQ5NzNhZTA4ZDQyMGNkNDUxZTBi
NmZiMWQ4ZDIwNWZlNDFhMzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29u
dGV4dE1lbnVDb250ZXh0RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db250ZXh0
TWVudUNvbnRleHREYXRhLmgKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlICJXZWJIaXRUZXN0
UmVzdWx0RGF0YS5oIgogCiBuYW1lc3BhY2UgSVBDIHsKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsK
K2NsYXNzIERlY29kZXI7CiBjbGFzcyBFbmNvZGVyOwogfQogCkBAIC04MCw3ICs4MCw3IEBAIHB1
YmxpYzoKICNlbmRpZgogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0g
ICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgQ29udGV4dE1lbnVD
b250ZXh0RGF0YSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBDb250
ZXh0TWVudUNvbnRleHREYXRhJik7CiAKIHByaXZhdGU6CiAgICAgVHlwZSBtX3R5cGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGF0YWJhc2VzL0Rh
dGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggYzRiZjQyNzlhY2I0N2Yz
MmNiNmVlM2RjZjc1YjFmMjY0ZGZmMWNiOS4uZTQzMzIwMTcxYzRlMGJlMzc5MTM2OTlmZjYxM2U5
MmUyYTQyYzNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0RhdGFiYXNlcy9E
YXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApA
QCAtNDQsNyArNDQsNyBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6
ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICNlbmRpZgogfQogCi1ib29sIERh
dGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNv
ZGVyJiBkZWNvZGVyLCBEYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHJlc3VsdCkK
K2Jvb2wgRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyLCBEYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHJlc3VsdCkK
IHsKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlc3VsdC5pbmRleGVkRGF0YWJhc2VEaXJlY3RvcnkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKaW5kZXggOTg4ZWU1ZDhiN2U5YzMyMTE4NzdjMDVhMWQ2YzJmYTZmOWE3
Yjg3OC4uMGQ0NTBmOGI5NzA4MjI5NjgyZjMxMGI1ZTlhNjdhMzU0OTJjMDNmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGF0YWJhc2VzL0RhdGFi
YXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0zMyw3ICszMyw3IEBACiAjaWYgRU5B
QkxFKERBVEFCQVNFX1BST0NFU1MpCiAKIG5hbWVzcGFjZSBJUEMgewotY2xhc3MgQXJndW1lbnRE
ZWNvZGVyOworY2xhc3MgRGVjb2RlcjsKIGNsYXNzIEVuY29kZXI7CiB9CiAKQEAgLTQzLDcgKzQz
LDcgQEAgc3RydWN0IERhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgRGF0
YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCk7CiAKICAgICB2b2lkIGVuY29kZShJUEM6
OkVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERl
Y29kZXImLCBEYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKKyAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzJik7CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBTdHJpbmcgaW5kZXhl
ZERhdGFiYXNlRGlyZWN0b3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rh
dGFiYXNlcy9JbmRleGVkREIvV2ViSURCUmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlJlc3VsdC5jcHAKaW5kZXggYjJkMmI2NTUwZWI5
ZDgwODc0ZGM3MDE0ZjY2NzJlNTU1MGE2MGMzNS4uYTBlYzgxYTNlZDU4ODkxMGJlMmFhM2IzOWIx
Y2EwMWIzNmQ4YTIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCUmVzdWx0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJSZXN1bHQuY3BwCkBAIC0zOCw3ICszOCw3IEBAIHZv
aWQgV2ViSURCUmVzdWx0OjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAg
IG1faGFuZGxlcy5lbmNvZGUoZW5jb2Rlcik7CiB9CiAKLWJvb2wgV2ViSURCUmVzdWx0OjpkZWNv
ZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYklEQlJlc3VsdCYgcmVzdWx0KQor
Ym9vbCBXZWJJREJSZXN1bHQ6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYklEQlJl
c3VsdCYgcmVzdWx0KQogewogICAgIGlmICghV2ViQ29yZTo6SURCUmVzdWx0RGF0YTo6ZGVjb2Rl
KGRlY29kZXIsIHJlc3VsdC5tX3Jlc3VsdERhdGEpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJ
REJSZXN1bHQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL1dl
YklEQlJlc3VsdC5oCmluZGV4IDdmMmI0NTUzYmZjNTQwNmM1Njc2MWZiNjIzODQwOWQxM2MzNzM5
MWEuLjc3N2I4ZTI2ODAzMTJmMzMyNTdiYTFjODRiMTFmZWZmOTFjMWI0NTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlJlc3VsdC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlJl
c3VsdC5oCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGVBcnJheSYgaGFuZGxlcygpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxlczsgfQog
CiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wg
ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgV2ViSURCUmVzdWx0Jik7CisgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYklEQlJlc3VsdCYpOwogCiBwcml2YXRlOgog
ICAgIFdlYkNvcmU6OklEQlJlc3VsdERhdGEgbV9yZXN1bHREYXRhOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0VkaXRvclN0YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9FZGl0b3JTdGF0ZS5jcHAKaW5kZXggODRhYmU4MDQ5YmI5MjRhOGJmZmMzMzE5ODc5NDFjMzE0
OGU2NzAzYy4uYjQ4NmQxZmQyYjdlMWViZWM1MDcxZGZhZjAxYmFmNjRmYmExMTI1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0VkaXRvclN0YXRlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvRWRpdG9yU3RhdGUuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgRWRp
dG9yU3RhdGU6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAjZW5kaWYKIH0K
IAotYm9vbCBFZGl0b3JTdGF0ZTo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBFZGl0b3JTdGF0ZSYgcmVzdWx0KQorYm9vbCBFZGl0b3JTdGF0ZTo6ZGVjb2RlKElQQzo6RGVj
b2RlciYgZGVjb2RlciwgRWRpdG9yU3RhdGUmIHJlc3VsdCkKIHsKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHJlc3VsdC5zaG91bGRJZ25vcmVDb21wb3NpdGlvblNlbGVjdGlvbkNoYW5nZSkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEzNCw3ICsxMzQsNyBAQCB2b2lkIEVkaXRvclN0YXRl
OjpQb3N0TGF5b3V0RGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICNl
bmRpZgogfQogCi1ib29sIEVkaXRvclN0YXRlOjpQb3N0TGF5b3V0RGF0YTo6ZGVjb2RlKElQQzo6
QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBQb3N0TGF5b3V0RGF0YSYgcmVzdWx0KQorYm9vbCBF
ZGl0b3JTdGF0ZTo6UG9zdExheW91dERhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIs
IFBvc3RMYXlvdXREYXRhJiByZXN1bHQpCiB7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1
bHQudHlwaW5nQXR0cmlidXRlcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FZGl0b3JTdGF0ZS5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0VkaXRvclN0YXRlLmgKaW5kZXggOTkzY2E0YTE0YTFkZTlhODU5ZjZjZGRjMWQwMDE4YTAx
MzQ2YTdiMC4uZGRkMDI0MzQ4ZGUyYWJmNmEwZjA5ZjJkZGNjODU4YjU2ODcwNDllMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0VkaXRvclN0YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0VkaXRvclN0YXRlLmgKQEAgLTEwNyw3ICsxMDcsNyBAQCBzdHJ1Y3QgRWRp
dG9yU3RhdGUgewogI2VuZGlmCiAKICAgICAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikg
Y29uc3Q7Ci0gICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYs
IFBvc3RMYXlvdXREYXRhJik7CisgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29k
ZXImLCBQb3N0TGF5b3V0RGF0YSYpOwogICAgIH07CiAKICAgICBjb25zdCBQb3N0TGF5b3V0RGF0
YSYgcG9zdExheW91dERhdGEoKSBjb25zdDsKQEAgLTExNSw3ICsxMTUsNyBAQCBzdHJ1Y3QgRWRp
dG9yU3RhdGUgewogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oR1RLKSB8fCBQ
TEFURk9STShNQUMpCiAKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBFZGl0b3JTdGF0ZSYp
OworICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBFZGl0b3JTdGF0ZSYpOwog
CiAjaWYgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKE1BQykKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRm9udEluZm8uY3BwIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRJbmZvLmNwcAppbmRleCA0YWRhN2E1YjYzMTc2OGZl
NTRlZDkwMDA5N2Y4MDU0ZDVlZmViZmQxLi4yZWI5YWY0MzdjMzNlYzY1MWYyNjNiZWRmNzE5MzNm
YTE0NmVhNDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRm9udEluZm8uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Gb250SW5mby5jcHAKQEAgLTQ1LDcgKzQ1LDcg
QEAgdm9pZCBGb250SW5mbzo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICNl
bmRpZgogfQogCi1ib29sIEZvbnRJbmZvOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRl
Y29kZXIsIEZvbnRJbmZvJiBmb250SW5mbykKK2Jvb2wgRm9udEluZm86OmRlY29kZShJUEM6OkRl
Y29kZXImIGRlY29kZXIsIEZvbnRJbmZvJiBmb250SW5mbykKIHsgICAgCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgYm9vbCBoYXNGb250QXR0cmlidXRlRGljdGlvbmFyeTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Gb250SW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0ZvbnRJbmZvLmgKaW5kZXggMDgwM2FkZjAyNDZhZWQwNTc1NTYwMWRlYjg2ZTE2MWI1OGMxZmFm
NC4uM2E2OTc2NzFiZGNjNzQ5NzdlNzAwOWJlYjVhMDcyZmQ4MTExM2YxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0ZvbnRJbmZvLmgKQEAgLTMxLDE1ICszMSwxNSBAQAogI2VuZGlmCiAKIG5hbWVzcGFjZSBJ
UEMgewotICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLSAgICBjbGFzcyBFbmNvZGVyOworY2xh
c3MgRGVjb2RlcjsKK2NsYXNzIEVuY29kZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogICAg
IAogc3RydWN0IEZvbnRJbmZvIHsKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25z
dDsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBGb250SW5m
byYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBGb250SW5mbyYpOwog
ICAgIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+
IGZvbnRBdHRyaWJ1dGVEaWN0aW9uYXJ5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0dhbWVwYWQvR2FtZXBhZERhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0dhbWVw
YWQvR2FtZXBhZERhdGEuY3BwCmluZGV4IDZhMWIwMDNmMWUyNzA1ZjMwMzYxZjVlN2FiMmIzMTU4
MDY0MGI5YjAuLjI2MmRjZWMyNWViYmU1NGQ2NTdhNmQwMjlkNzAyMGY2ZWIwYzhmZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAKQEAgLTM4LDcg
KzM4LDcgQEAgdm9pZCBHYW1lcGFkRGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKICAgICBlbmNvZGVyIDw8IGluZGV4IDw8IGF4aXNWYWx1ZXMgPDwgYnV0dG9uVmFsdWVz
OwogfQogCi1ib29sIEdhbWVwYWREYXRhOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRl
Y29kZXIsIEdhbWVwYWREYXRhJiBkYXRhKQorYm9vbCBHYW1lcGFkRGF0YTo6ZGVjb2RlKElQQzo6
RGVjb2RlciYgZGVjb2RlciwgR2FtZXBhZERhdGEmIGRhdGEpCiB7CiAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShkYXRhLmluZGV4KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0dhbWVwYWQvR2FtZXBhZERhdGEuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmgKaW5kZXggZDc0NjQzNTFiNDg1MGU4MGQ0
MjQ1NTM2NGY5MzZjNTgxMmM4MzY0MS4uZDkwMGVmOTc5ZTVmZDZjZTIwZDkxMGMyZWE1ZTNkMDA4
MTI3Y2JhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0dhbWVwYWQvR2FtZXBh
ZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5o
CkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5h
bWVzcGFjZSBJUEMgewotY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgRGVjb2RlcjsKIGNs
YXNzIEVuY29kZXI7CiB9CiAKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAK
IHN0cnVjdCBHYW1lcGFkRGF0YSB7CiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29u
c3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgR2FtZXBh
ZERhdGEmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgR2FtZXBhZERh
dGEmKTsKIAogICAgIGJvb2wgaXNOdWxsKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9MYXllclRyZWVDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9MYXllclRyZWVDb250ZXh0LmNwcAppbmRleCA4NDMxM2RlOGZjZGFmYzY1ODI5MDMyODg3YmE1
MjBhZmQyYmY0MTdlLi5jMzE3NGRjNGNlZGJlMjk4ZDE1YWRkMTFiMzg4ZWZjNmMxZDg4MjZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuY3BwCkBAIC0yNiw3ICsy
Niw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTGF5ZXJUcmVlQ29udGV4dC5o
IgogCi0jaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCisjaW5jbHVkZSAiRGVjb2Rlci5oIgog
I2luY2x1ZGUgIkVuY29kZXIuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00NSw3ICs0NSw3
IEBAIHZvaWQgTGF5ZXJUcmVlQ29udGV4dDo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKICAgICBlbmNvZGVyIDw8IGNvbnRleHRJRDsKIH0KIAotYm9vbCBMYXllclRyZWVDb250
ZXh0OjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIExheWVyVHJlZUNvbnRl
eHQmIHJlc3VsdCkKK2Jvb2wgTGF5ZXJUcmVlQ29udGV4dDo6ZGVjb2RlKElQQzo6RGVjb2RlciYg
ZGVjb2RlciwgTGF5ZXJUcmVlQ29udGV4dCYgcmVzdWx0KQogewogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocmVzdWx0LmNvbnRleHRJRCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9MYXllclRyZWVDb250ZXh0LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5oCmluZGV4IGQ2NTRlNDE5MjkzYTIwZjJjMzU5
MTkzNGE3YzZkNDMwODU3ZTNjNzkuLjQ3ZmI2MTM5MWQwZjQ1OWM5NDcyZTFiZDJkODRkOWNkZTIw
OGQxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9MYXllclRyZWVDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuaApAQCAtMjks
NyArMjksNyBAQAogI2luY2x1ZGUgPHN0ZGludC5oPgogCiBuYW1lc3BhY2UgSVBDIHsKLWNsYXNz
IEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIERlY29kZXI7CiBjbGFzcyBFbmNvZGVyOwogfQogCkBA
IC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICB+TGF5ZXJUcmVlQ29udGV4dCgpOwogCiAgICAg
dm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2Rl
KElQQzo6QXJndW1lbnREZWNvZGVyJiwgTGF5ZXJUcmVlQ29udGV4dCYpOworICAgIHN0YXRpYyBi
b29sIGRlY29kZShJUEM6OkRlY29kZXImLCBMYXllclRyZWVDb250ZXh0Jik7CiAKICAgICBib29s
IGlzRW1wdHkoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0xv
YWRQYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5j
cHAKaW5kZXggOWYwN2E0N2IzNmIzOGE0MDk2ZDYzMjJkZjY2NzY0OTNmNTc1NWFlNi4uOTRhMjE0
NTdiMjU3NWM4OTY5ZTQ0ZTg3MTExODVjMmZiMzdkNjU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvTG9hZFBhcmFtZXRlcnMuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHZvaWQgTG9hZFBhcmFtZXRl
cnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgcGxhdGZvcm1FbmNv
ZGUoZW5jb2Rlcik7CiB9CiAKLWJvb2wgTG9hZFBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkFyZ3Vt
ZW50RGVjb2RlciYgZGVjb2RlciwgTG9hZFBhcmFtZXRlcnMmIGRhdGEpCitib29sIExvYWRQYXJh
bWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBMb2FkUGFyYW1ldGVycyYgZGF0
YSkKIHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGEubmF2aWdhdGlvbklEKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtOTgsNyArOTgsNyBAQCB2b2lkIExvYWRQYXJhbWV0ZXJzOjpw
bGF0Zm9ybUVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdAogewogfQogCi1ib29sIExvYWRQYXJh
bWV0ZXJzOjpwbGF0Zm9ybURlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIExvYWRQYXJhbWV0
ZXJzJikKK2Jvb2wgTG9hZFBhcmFtZXRlcnM6OnBsYXRmb3JtRGVjb2RlKElQQzo6RGVjb2RlciYs
IExvYWRQYXJhbWV0ZXJzJikKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0xvYWRQYXJhbWV0ZXJzLmgKaW5kZXggNDdiZjNjOTY4OTFlMjc1NjVmZGQ0OTUwZDA4ZDBk
ZWFlMTM5NDkyOC4uZDkyNjE3NWZkNGNjMGZjZjkyNjljNjMyZDAyMTZkODdmZTA1OTc1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgKQEAgLTM0LDcgKzM0LDcgQEAKIE9C
SkNfQ0xBU1MgTlNEaWN0aW9uYXJ5OwogCiBuYW1lc3BhY2UgSVBDIHsKLWNsYXNzIEFyZ3VtZW50
RGVjb2RlcjsKK2NsYXNzIERlY29kZXI7CiBjbGFzcyBFbmNvZGVyOwogfQogCkBAIC00MiwxMCAr
NDIsMTAgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBMb2FkUGFyYW1ldGVycyB7CiAg
ICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVj
b2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgTG9hZFBhcmFtZXRlcnMmKTsKKyAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgTG9hZFBhcmFtZXRlcnMmKTsKIAogICAgIHZvaWQg
cGxhdGZvcm1FbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgcGxh
dGZvcm1EZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBMb2FkUGFyYW1ldGVycyYpOworICAg
IHN0YXRpYyBib29sIHBsYXRmb3JtRGVjb2RlKElQQzo6RGVjb2RlciYsIExvYWRQYXJhbWV0ZXJz
Jik7CiAKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuY3BwCmluZGV4IGVkNWM3ZWVlOGRiMDQ3NmNiM2E0
MDQ1MjhiODVlNzdhMWEwNDRlMjguLmUzMTI4NmQ4YTNkNWRjMmJmMmJlYmJlMDVlODlmNWE4M2I1
NWE4YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9u
RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRh
LmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIk5hdmlnYXRpb25BY3Rpb25EYXRhLmgi
CiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rl
ci5oIgorI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgiCiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNDYsNyArNDYsNyBAQCB2b2lkIE5hdmlnYXRpb25BY3Rp
b25EYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIg
PDwgZG93bmxvYWRBdHRyaWJ1dGU7CiB9CiAKLWJvb2wgTmF2aWdhdGlvbkFjdGlvbkRhdGE6OmRl
Y29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgTmF2aWdhdGlvbkFjdGlvbkRhdGEm
IHJlc3VsdCkKK2Jvb2wgTmF2aWdhdGlvbkFjdGlvbkRhdGE6OmRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiByZXN1bHQpCiB7CiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZUVudW0ocmVzdWx0Lm5hdmlnYXRpb25UeXBlKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25E
YXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuaAppbmRl
eCA2NGM5MzkxMmIwMjFjOTNjM2IxOWM1OWQwNzBkZGE1ZDQwZmQyNDQyLi4xMGRiNjNjNGFhY2Yx
NmVhMThiNWI4ZjE1NWJhZWE3MDNmOGQzMTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
TmF2aWdhdGlvbkFjdGlvbkRhdGEuaApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogCiBuYW1lc3BhY2UgSVBDIHsKLWNsYXNzIEFyZ3VtZW50
RGVjb2RlcjsKK2NsYXNzIERlY29kZXI7CiBjbGFzcyBFbmNvZGVyOwogfQogCkBAIC0zOCw3ICsz
OCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgTmF2aWdhdGlvbkFjdGlvbkRhdGEg
ewogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29s
IGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIE5hdmlnYXRpb25BY3Rpb25EYXRhJik7Cisg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIE5hdmlnYXRpb25BY3Rpb25EYXRh
Jik7CiAKICAgICBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSB7IFdlYkNv
cmU6Ok5hdmlnYXRpb25UeXBlOjpPdGhlciB9OwogICAgIFdlYkV2ZW50OjpNb2RpZmllcnMgbW9k
aWZpZXJzIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbGF0Zm9ybVBv
cHVwTWVudURhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51
RGF0YS5jcHAKaW5kZXggNWJlZTFmNzhiMmJjMWJiNGYxMWQ4NDIwOGE1ODMyOWMwYzRjM2U2OC4u
ZWZhNzk3NmIxZjI2ODM2YjQ5OGU2YmM4ZTY5YTM3NTkzZGNiOGIyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5jcHAKQEAgLTQ2LDcgKzQ2LDcg
QEAgdm9pZCBQbGF0Zm9ybVBvcHVwTWVudURhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiAjZW5kaWYKIH0KIAotYm9vbCBQbGF0Zm9ybVBvcHVwTWVudURhdGE6OmRlY29k
ZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhJiBk
YXRhKQorYm9vbCBQbGF0Zm9ybVBvcHVwTWVudURhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRl
Y29kZXIsIFBsYXRmb3JtUG9wdXBNZW51RGF0YSYgZGF0YSkKIHsKICNpZiBQTEFURk9STShDT0NP
QSkKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGEuZm9udEluZm8pKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5oCmluZGV4IDdiOTk2OTg4MzYwNTU2
YmExMDZjYTM5MDI1ZGNlZWM5ZDkzM2YwZjguLmExNTY5NjNlYzk1N2ZlYzkyOThhNGMzMmY0NGM0
ZjZlMjkwZGRhMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbGF0Zm9ybVBv
cHVwTWVudURhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1cE1l
bnVEYXRhLmgKQEAgLTMyLDggKzMyLDggQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAogbmFtZXNwYWNlIElQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwotICAgIGNs
YXNzIEVuY29kZXI7CitjbGFzcyBEZWNvZGVyOworY2xhc3MgRW5jb2RlcjsKIH0KIAogbmFtZXNw
YWNlIFdlYktpdCB7CkBAIC00Miw3ICs0Miw3IEBAIHN0cnVjdCBQbGF0Zm9ybVBvcHVwTWVudURh
dGEgewogICAgIFBsYXRmb3JtUG9wdXBNZW51RGF0YSgpOwogCiAgICAgdm9pZCBlbmNvZGUoSVBD
OjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnRE
ZWNvZGVyJiwgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KElQQzo6RGVjb2RlciYsIFBsYXRmb3JtUG9wdXBNZW51RGF0YSYpOwogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgRm9udEluZm8gZm9udEluZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEuY3BwCmluZGV4IDEwMTZmMjY3ZDcyZjExNGFk
MWI3ZmFhMTA4N2I1ODI0YTY2YjIwZTUuLjkzYzNjZTkyNWE1MmYyNWRmNzJjY2VlNzAyYTQyMDY4
NGIzYzE2ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QSWRl
bnRpZmllckRhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QSWRl
bnRpZmllckRhdGEuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoTkVUU0NBUEVf
UExVR0lOX0FQSSkKIAotI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgorI2luY2x1ZGUgIkRl
Y29kZXIuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JZGVudGlmaWVyUmVwLmg+CkBAIC03Niw3ICs3
Niw3IEBAIHZvaWQgTlBJZGVudGlmaWVyRGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKICAgICAgICAgZW5jb2RlciA8PCBtX251bWJlcjsKIH0KIAotYm9vbCBOUElkZW50
aWZpZXJEYXRhOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIE5QSWRlbnRp
ZmllckRhdGEmIHJlc3VsdCkKK2Jvb2wgTlBJZGVudGlmaWVyRGF0YTo6ZGVjb2RlKElQQzo6RGVj
b2RlciYgZGVjb2RlciwgTlBJZGVudGlmaWVyRGF0YSYgcmVzdWx0KQogewogICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocmVzdWx0Lm1faXNTdHJpbmcpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRh
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmgKaW5k
ZXggMjRhYWY2ZmVjN2JkZjgwYzUzMmY4OGFhNTM3NWZhODExMjNjYWI3Zi4uNGY2NzhhNDQ1MzFj
NWE5YmFkZjM1ZjIxMGYyYTliNjZlZjAzYWNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEuaApAQCAtMzIsOCArMzIsOCBAQAogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIElQQyB7Ci0gICAgY2xhc3MgQXJn
dW1lbnREZWNvZGVyOwotICAgIGNsYXNzIEVuY29kZXI7CitjbGFzcyBEZWNvZGVyOworY2xhc3Mg
RW5jb2RlcjsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00Niw3ICs0Niw3IEBAIHB1Ymxp
YzoKICAgICBOUElkZW50aWZpZXIgY3JlYXRlTlBJZGVudGlmaWVyKCkgY29uc3Q7CiAKICAgICB2
b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
SVBDOjpBcmd1bWVudERlY29kZXImLCBOUElkZW50aWZpZXJEYXRhJik7CisgICAgc3RhdGljIGJv
b2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIE5QSWRlbnRpZmllckRhdGEmKTsKIAogcHJpdmF0ZToK
ICAgICBib29sIG1faXNTdHJpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
UGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuaAppbmRleCA1MThlNmEzODEyYjQ1YWYw
ZTI3ODEyZjJkZmFiOGM4ZWUyMzZjZjM1Li4yNzU5ODkzZmFmOTU4NGVmZWM0OGVlYTBjYzQ4ZmMw
ZmNhZTU5ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9i
amVjdE1lc3NhZ2VSZWNlaXZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5z
L05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAg
IE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyKE5QUmVtb3RlT2JqZWN0TWFwKiwgUGx1Z2luKiwgdWlu
dDY0X3QgbnBPYmplY3RJRCwgTlBPYmplY3QqKTsKICAgICB+TlBPYmplY3RNZXNzYWdlUmVjZWl2
ZXIoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVl
X3B0cjxJUEM6OkVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY05QT2JqZWN0TWVz
c2FnZVJlY2VpdmVyTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6
OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOwogCiAgICAgUGx1Z2luKiBwbHVnaW4oKSBjb25z
dCB7IHJldHVybiBtX3BsdWdpbjsgfQogICAgIE5QT2JqZWN0KiBucE9iamVjdCgpIGNvbnN0IHsg
cmV0dXJuIG1fbnBPYmplY3Q7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Q
bHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVn
aW5zL05QUmVtb3RlT2JqZWN0TWFwLmNwcAppbmRleCA5MGQ5OTA4N2M1ZmU4YjRmNGE3MzEwZDk0
Mzc1NmRmZjU5ZGM1MWM2Li42MWUxZjk0MDI1MjM4NWRiODA1ZWMxMjJkZmYxYzllNGYxYjcyNTYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVj
dE1hcC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmpl
Y3RNYXAuY3BwCkBAIC0yMTcsNyArMjE3LDcgQEAgdm9pZCBOUFJlbW90ZU9iamVjdE1hcDo6cGx1
Z2luRGVzdHJveWVkKFBsdWdpbiogcGx1Z2luKQogICAgIH0KIH0KIAotdm9pZCBOUFJlbW90ZU9i
amVjdE1hcDo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5j
b2Rlcj4mIHJlcGx5RW5jb2RlcikKK3ZvaWQgTlBSZW1vdGVPYmplY3RNYXA6OmRpZFJlY2VpdmVT
eW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVj
b2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKICAg
ICBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlciogbWVzc2FnZVJlY2VpdmVyID0gbV9yZWdpc3RlcmVk
TlBPYmplY3RzLmdldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiAgICAgaWYgKCFtZXNzYWdl
UmVjZWl2ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJl
bW90ZU9iamVjdE1hcC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVP
YmplY3RNYXAuaAppbmRleCAxMjdlNGI2MDViNTFlM2IwZWE5NzI4ZGQ5ODM4MjFhOWFiODBkOWMz
Li5lZDEwNWE3M2NkM2VlNGYzMjJkNDlkY2M3ODA0NDI4MjNhNTVkZmJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmgKQEAgLTYxLDcg
KzYxLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBwbHVnaW5EZXN0cm95ZWQoUGx1Z2luKik7CiAK
LSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1l
c3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBz
dGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0
IE5QUmVtb3RlT2JqZWN0TWFwKElQQzo6Q29ubmVjdGlvbiopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBWYXJpYW50RGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmNwcAppbmRleCBlMzczZGFhYzVkZjRkNjFi
OTg4OTUwYTM5NmJhYWU5OTcwNmMxZmJiLi5kMmU2NzFiY2JkOTM2ZDQ0YzVlZDgzOTFlZjZhMTk5
MDdkNmRjNmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFZh
cmlhbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFZhcmlh
bnREYXRhLmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJ
Tl9BUEkpCiAKLSNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKKyNpbmNsdWRlICJEZWNvZGVy
LmgiCiAjaW5jbHVkZSAiRW5jb2Rlci5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVy
cy5oIgogCkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBOUFZhcmlhbnREYXRhOjplbmNvZGUoSVBD
OjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIH0KIH0KIAotYm9vbCBOUFZhcmlhbnREYXRh
OjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIE5QVmFyaWFudERhdGEmIHJl
c3VsdCkKK2Jvb2wgTlBWYXJpYW50RGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
TlBWYXJpYW50RGF0YSYgcmVzdWx0KQogewogICAgIHVpbnQzMl90IHR5cGU7CiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZSh0eXBlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Q
bHVnaW5zL05QVmFyaWFudERhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05Q
VmFyaWFudERhdGEuaAppbmRleCAzYmM1OTMyNThiMWVlMzExZjI1ZWY3ZDJmOTI3ZDkzMDA4N2Vj
NDU4Li4yYzVmMmM5ZjYxNjZmNDJjODRmNDZlNmIyMTQ2ODhmNjM3MTE4ZGE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBWYXJpYW50RGF0YS5oCkBAIC0zMSw4ICszMSw4
IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgSVBDIHsKLSAg
ICBjbGFzcyBBcmd1bWVudERlY29kZXI7Ci0gICAgY2xhc3MgRW5jb2RlcjsKK2NsYXNzIERlY29k
ZXI7CitjbGFzcyBFbmNvZGVyOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTk5LDcgKzk5
LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNv
bnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIE5QVmFy
aWFudERhdGEmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgTlBWYXJp
YW50RGF0YSYpOwogCiBwcml2YXRlOgogICAgIHVpbnQzMl90IG1fdHlwZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggYTNjZDRjMzE3ZmMyN2M4MTA0ZjRiOGIzNDdlZTBk
NzcwMzJkZDdiMS4uMzk4OGU4Y2E5NTZmYTJmNTA4ZWY5NTk0YTFkNDc3YWY1YjAxNWQyYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgdm9pZCBQ
bHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogI2VuZGlmCiB9CiAKLWJvb2wgUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVyczo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBQbHVnaW5Qcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzJiByZXN1bHQpCitib29sIFBsdWdpblByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFBsdWdpblByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMmIHJlc3VsdCkKIHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShy
ZXN1bHQucHJvY2Vzc1R5cGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKaW5kZXggYTMyNzBiNzgxYmU3ZGEyNzZlMmY5OGYxNTFiZWExZTZlNzk1
ZTNmNS4uYTEyYTQ0NDViYjE2Y2FhZjY5MjczYjY0YTg2MzIxMDhlN2Q1NDlmNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMzYsNyArMzYsNyBAQAogI2VuZGlmCiAKIG5hbWVz
cGFjZSBJUEMgewotY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgRGVjb2RlcjsKIGNsYXNz
IEVuY29kZXI7CiB9CiAKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RydWN0IFBsdWdpblByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMgewogICAgIFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKTsK
IAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29s
IGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgUGx1Z2luUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogCiAgICAgUGx1Z2luUHJvY2Vzc1R5cGUgcHJvY2Vz
c1R5cGU7CiAgICAgYm9vbCBzdXBwb3J0c0FzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9u
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50SW5mby5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvUHJpbnRJbmZvLmNwcAppbmRleCBhNmI3NzFmOGI4ZmMwZGE4ZTIx
YTI1ZDlkZGI2MTg2YjNiMTljNjI1Li4yMWIxNWEzOWE1ZTM3ZTM1MjBhYWNlMzM0OWJlMjJjMTgx
NDlhOTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJpbnRJbmZvLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJpbnRJbmZvLmNwcApAQCAtMjYsOCArMjYsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlByaW50SW5mby5oIgogCi0jaW5jbHVk
ZSAiQXJndW1lbnREZWNvZGVyLmgiCi0jaW5jbHVkZSAiQXJndW1lbnRzLmgiCisjaW5jbHVkZSAi
RGVjb2Rlci5oIgogI2luY2x1ZGUgIkVuY29kZXIuaCIKIAogI2lmIFBMQVRGT1JNKEdUSykKQEAg
LTU2LDcgKzU1LDcgQEAgdm9pZCBQcmludEluZm86OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiAjZW5kaWYKIH0KIAotYm9vbCBQcmludEluZm86OmRlY29kZShJUEM6OkFyZ3Vt
ZW50RGVjb2RlciYgZGVjb2RlciwgUHJpbnRJbmZvJiBpbmZvKQorYm9vbCBQcmludEluZm86OmRl
Y29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFByaW50SW5mbyYgaW5mbykKIHsKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGluZm8ucGFnZVNldHVwU2NhbGVGYWN0b3IpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJpbnRJbmZvLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJpbnRJbmZvLmgKaW5kZXggYjhmMDQyMmViNWU4MDgw
YTlkYmNmNzYwYjc0OGY0OWFlNmExYzQ5Yy4uMGM4NjIzMzlhMzBhNmFkNWU2YTgyOGNhMDM1Mzc0
M2VmOGEyMDk5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50SW5mby5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QcmludEluZm8uaApAQCAtMzgsOCArMzgsOCBA
QCBjbGFzcyBOU1ByaW50SW5mbzsKICNlbmRpZgogCiBuYW1lc3BhY2UgSVBDIHsKLSAgICBjbGFz
cyBBcmd1bWVudERlY29kZXI7Ci0gICAgY2xhc3MgRW5jb2RlcjsKK2NsYXNzIERlY29kZXI7Citj
bGFzcyBFbmNvZGVyOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTY4LDcgKzY4LDcgQEAg
c3RydWN0IFByaW50SW5mbyB7CiAjZW5kaWYKIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2Rl
ciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYs
IFByaW50SW5mbyYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBQcmlu
dEluZm8mKTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TYW5k
Ym94RXh0ZW5zaW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5o
CmluZGV4IGNiMTI1MzFlOWY5NjU4YjkyZTZlNGI4ZmMxZjRmOWNhNjgyZjBjM2MuLmUxMTE1NTEz
MTQzN2RiOTdlMzRmZWIzZTM2NDdkZjQyNDA1M2I2ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1NhbmRib3hFeHRlbnNpb24uaApAQCAtMzgsNyArMzgsNyBAQCB0eXBlZGVmIHN0cnVjdCBfX1dL
U2FuZGJveEV4dGVuc2lvbiogV0tTYW5kYm94RXh0ZW5zaW9uUmVmOwogCiBuYW1lc3BhY2UgSVBD
IHsKIGNsYXNzIEVuY29kZXI7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBEZWNvZGVy
OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAg
ICAgICB+SGFuZGxlKCk7CiAKICAgICAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29u
c3Q7Ci0gICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIEhh
bmRsZSYpOworICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgSGFuZGxl
Jik7CiAKICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgU2FuZGJveEV4dGVuc2lv
bjsKQEAgLTc4LDcgKzc4LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBIYW5kbGUmIG9wZXJh
dG9yW10oc2l6ZV90IGkpIGNvbnN0OwogICAgICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0OwogICAg
ICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAgICAgICAgc3RhdGljIGJv
b2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgSGFuZGxlQXJyYXkmKTsKKyAgICAgICAg
c3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIEhhbmRsZUFycmF5Jik7CiAgICAgICAg
CiAgICAgcHJpdmF0ZToKICNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQpAQCAtMTE0LDcg
KzExNCw3IEBAIHByaXZhdGU6CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjpIYW5k
bGUoKSB7IH0KIGlubGluZSBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6On5IYW5kbGUoKSB7IH0K
IGlubGluZSB2b2lkIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYpIGNvbnN0IHsgfQotaW5saW5lIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjpkZWNv
ZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBIYW5kbGUmKSB7IHJldHVybiB0cnVlOyB9Citpbmxp
bmUgYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXImLCBI
YW5kbGUmKSB7IHJldHVybiB0cnVlOyB9CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
QXJyYXk6OkhhbmRsZUFycmF5KCkgeyB9CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
QXJyYXk6On5IYW5kbGVBcnJheSgpIHsgfQogaW5saW5lIHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlQXJyYXk6OmFsbG9jYXRlKHNpemVfdCkgeyB9CkBAIC0xMjIsNyArMTIyLDcgQEAgaW5s
aW5lIHNpemVfdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheTo6c2l6ZSgpIGNvbnN0IHsg
cmV0dXJuIDA7IH0KIGlubGluZSBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjpvcGVyYXRvcltdKHNpemVfdCkgY29uc3QgeyByZXR1
cm4gbV9lbXB0eUhhbmRsZTsgfQogaW5saW5lIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6Om9wZXJhdG9yW10oc2l6ZV90KSB7IHJldHVybiBt
X2VtcHR5SGFuZGxlOyB9CiBpbmxpbmUgdm9pZCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJh
eTo6ZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0IHsgfQotaW5saW5lIGJvb2wgU2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlQXJyYXk6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIEhhbmRs
ZUFycmF5JikgeyByZXR1cm4gdHJ1ZTsgfQoraW5saW5lIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlQXJyYXk6OmRlY29kZShJUEM6OkRlY29kZXImLCBIYW5kbGVBcnJheSYpIHsgcmV0dXJu
IHRydWU7IH0KIGlubGluZSBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gU2FuZGJveEV4dGVuc2lv
bjo6Y3JlYXRlKGNvbnN0IEhhbmRsZSYpIHsgcmV0dXJuIG51bGxwdHI7IH0KIGlubGluZSBib29s
IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZShjb25zdCBTdHJpbmcmLCBUeXBlLCBIYW5k
bGUmKSB7IHJldHVybiB0cnVlOyB9CiBpbmxpbmUgYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjpjcmVh
dGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiwgSGFuZGxlJikgeyBy
ZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Njcm9sbGlu
Zy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlv
bi5jcHAKaW5kZXggOGRjM2Y4YmJjMTdhMGUyYmNhOTNiN2E2NWVlZWUzZjQ5NmU3ZGQ0Zi4uYmRh
ZmZhYjU3MGRjOGM5OGFjMjUxMDBlNTI3MjdkNTY2Y2NhYTVmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5z
YWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Nyb2xsaW5nL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5j
bHVkZSAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oIgogCiAjaW5jbHVk
ZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJNZXNzYWdlRGVjb2Rlci5oIgogI2luY2x1
ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NM
YXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUuaD4KQEAg
LTQ3LDMyICs0NiwzMiBAQCBuYW1lc3BhY2UgSVBDIHsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZU5vZGU+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYsIGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYpOwotICAgIHN0YXRpYyBib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXImLCBTY3JvbGxpbmdTdGF0ZU5vZGUmKTsKKyAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFNjcm9sbGluZ1N0YXRlTm9kZSYpOwogfTsKIAogdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+IHsK
ICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZSYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVj
b2RlciYsIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSYpOwogfTsKICAgICAKIHRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+
IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFNjcm9sbGluZ1N0YXRl
RnJhbWVTY3JvbGxpbmdOb2RlJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYsIFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlJik7CisgICAgc3RhdGljIGJv
b2wgZGVjb2RlKERlY29kZXImLCBTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZSYpOwog
fTsKICAgICAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVP
dmVyZmxvd1Njcm9sbGluZ05vZGU+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYs
IGNvbnN0IFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlJik7Ci0gICAgc3RhdGlj
IGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBTY3JvbGxpbmdT
dGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZSYpOwogfTsKICAgICAKIHRlbXBsYXRlPD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGU+IHsKICAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlJik7Ci0gICAg
c3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFNjcm9sbGluZ1N0YXRlRml4ZWRO
b2RlJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBTY3JvbGxpbmdTdGF0ZUZp
eGVkTm9kZSYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxTY3JvbGxp
bmdTdGF0ZVN0aWNreU5vZGU+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZSYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXImLCBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUmKTsKKyAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZSYpOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgSVBDCkBAIC05MCw3ICs4OSw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxT
Y3JvbGxpbmdTdGF0ZU5vZGU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU2Nyb2xs
aW5nCiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8R3JhcGhpY3NMYXllcjo6UGxhdGZv
cm1MYXllcklEPihub2RlLmxheWVyKCkpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8U2Nyb2xs
aW5nU3RhdGVOb2RlPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgU2Nyb2xsaW5n
U3RhdGVOb2RlJiBub2RlKQorYm9vbCBBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlTm9kZT46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTY3JvbGxpbmdTdGF0ZU5vZGUmIG5vZGUpCiB7CiAg
ICAgLy8gbm9kZVR5cGUsIHNjcm9sbGluZ05vZGVJRCBhbmQgcGFyZW50Tm9kZUlEIGhhdmUgYWxy
ZWFkeSBiZWVuIGRlY29kZWQgYnkgdGhlIGNhbGxlciBpbiBvcmRlciB0byBjcmVhdGUgdGhlIG5v
ZGUuCiAgICAgU2Nyb2xsaW5nU3RhdGVOb2RlOjpDaGFuZ2VkUHJvcGVydGllcyBjaGFuZ2VkUHJv
cGVydGllczsKQEAgLTE4Niw3ICsxODUsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5n
U3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcgogICAg
ICAgICBub2RlLnNldHRlcihkZWNvZGVkVmFsdWUpOyBcCiAgICAgfQogCi1ib29sIEFyZ3VtZW50
Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciYgZGVjb2RlciwgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJiBub2RlKQorYm9vbCBBcmd1
bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUmIG5vZGUpCiB7CiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShzdGF0aWNfY2FzdDxTY3JvbGxpbmdTdGF0ZU5vZGUmPihub2RlKSkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTIxOSw3ICsyMTgsNyBAQCBib29sIEFyZ3VtZW50Q29k
ZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYg
ZGVjb2RlcgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8U2Nyb2xs
aW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNv
ZGVyLCBTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZSYgbm9kZSkKK2Jvb2wgQXJndW1l
bnRDb2RlcjxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZT46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZSYgbm9kZSkKIHsKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0YXRpY19jYXN0PFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZSY+KG5vZGUpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjY1LDcgKzI2NCw3IEBA
IGJvb2wgQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZT46OmRl
Y29kZShBcmd1bWVudERlY29kZXImIGRlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgQXJn
dW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZT46OmRlY29kZShB
cmd1bWVudERlY29kZXImIGRlY29kZXIsIFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlJiBub2RlKQorYm9vbCBBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNjcm9sbGluZ1N0YXRlT3ZlcmZs
b3dTY3JvbGxpbmdOb2RlJiBub2RlKQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGlj
X2Nhc3Q8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlJj4obm9kZSkpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC0yODgsNyArMjg3LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFNjcm9sbGlu
Z1N0YXRlRml4ZWROb2RlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNjcm8KICAg
ICAgICAgZW5jb2RlciA8PCBub2RlLnZpZXdwb3J0Q29uc3RyYWludHMoKTsKIH0KIAotYm9vbCBB
cmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlPjo6ZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYgZGVjb2RlciwgU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUmIG5vZGUpCitib29sIEFyZ3Vt
ZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUmIG5vZGUpCiB7CiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShzdGF0aWNfY2FzdDxTY3JvbGxpbmdTdGF0ZU5vZGUmPihub2RlKSkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTMxMSw3ICszMTAsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8U2Nyb2xs
aW5nU3RhdGVTdGlja3lOb2RlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNjcgog
ICAgICAgICBlbmNvZGVyIDw8IG5vZGUudmlld3BvcnRDb25zdHJhaW50cygpOwogfQogCi1ib29s
IEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlPjo6ZGVjb2RlKEFyZ3VtZW50
RGVjb2RlciYgZGVjb2RlciwgU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlJiBub2RlKQorYm9vbCBB
cmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZT46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUmIG5vZGUpCiB7CiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShzdGF0aWNfY2FzdDxTY3JvbGxpbmdTdGF0ZU5vZGUmPihub2RlKSkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKQEAgLTM3NSwxMiArMzc0LDEyIEBAIHZvaWQgUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbjo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKICAgICAgICAgZW5jb2RlciA8PCBWZWN0b3I8U2Nyb2xsaW5nTm9kZUlEPigpOwogfQog
Ci1ib29sIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb246OmRlY29kZShJUEM6
OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFu
c2FjdGlvbiYgdHJhbnNhY3Rpb24pCitib29sIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJh
bnNhY3Rpb246OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogewogICAgIHJldHVybiB0cmFuc2Fj
dGlvbi5kZWNvZGUoZGVjb2Rlcik7CiB9CiAKLWJvb2wgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JUcmFuc2FjdGlvbjo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyKQorYm9v
bCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uOjpkZWNvZGUoSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyKQogewogICAgIGludCBudW1Ob2RlczsKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKG51bU5vZGVzKSkKQEAgLTY0NCw3ICs2NDMsNyBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yVHJhbnNhY3Rpb246OmVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdAogewogfQog
Ci1ib29sIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb246OmRlY29kZShJUEM6
OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFu
c2FjdGlvbiYgdHJhbnNhY3Rpb24pCitib29sIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJh
bnNhY3Rpb246OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogewogICAgIHJldHVybiB0cnVlOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Njcm9sbGluZy9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Ny
b2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uaAppbmRleCA1MzBk
MWYxNWNjZTZlZDRlMDdmODQ4MmI0NzRiZTUzMzkxZTI2ZmRhLi44YjliMGJmODc0NzExZDU0Mzcy
YmI1MTJlYTI3ODZkNjc4NDZiNDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
U2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
VHJhbnNhY3Rpb24uaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xs
aW5nU3RhdGVUcmVlLmg+CiAKIG5hbWVzcGFjZSBJUEMgewotY2xhc3MgQXJndW1lbnREZWNvZGVy
OworY2xhc3MgRGVjb2RlcjsKIGNsYXNzIEVuY29kZXI7CiB9CiAKQEAgLTQzLDcgKzQzLDcgQEAg
cHVibGljOgogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAKICAgICB2b2lkIGVu
Y29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpB
cmd1bWVudERlY29kZXImLCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uJik7
CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yVHJhbnNhY3Rpb24mKTsKIAogI2lmICFkZWZpbmVkKE5ERUJVRykgfHwgIUxPR19E
SVNBQkxFRAogICAgIFdURjo6Q1N0cmluZyBkZXNjcmlwdGlvbigpIGNvbnN0OwpAQCAtNTIsNyAr
NTIsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykK
LSAgICBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYpOworICAgIGJvb2wgZGVjb2Rl
KElQQzo6RGVjb2RlciYpOwogICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTY3Jv
bGxpbmdTdGF0ZVRyZWU+IG1fc2Nyb2xsaW5nU3RhdGVUcmVlOwogI2VuZGlmIC8vIEVOQUJMRShB
U1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lv
blN0YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwCmluZGV4
IDgzZjg4Y2U0MzQ0MDY1N2FjZDdlMDRlYjM0NzY3ZDU4NzllZGQ1ZWUuLjBmMDQ4YTRiZDBiZmQ5
YTAzZjkyYzdhYjNkOTFlNzBkNjk2MDhiNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9TZXNzaW9uU3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9u
U3RhdGUuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHN0YXRpYyBib29sIGlzVmFsaWRFbnVtKEhUVFBC
b2R5OjpFbGVtZW50OjpUeXBlIHR5cGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIEhU
VFBCb2R5OjpFbGVtZW50OjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEVs
ZW1lbnQmIHJlc3VsdCkKK2Jvb2wgSFRUUEJvZHk6OkVsZW1lbnQ6OmRlY29kZShJUEM6OkRlY29k
ZXImIGRlY29kZXIsIEVsZW1lbnQmIHJlc3VsdCkKIHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
RW51bShyZXN1bHQudHlwZSkgfHwgIWlzVmFsaWRFbnVtKHJlc3VsdC50eXBlKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtOTAsNyArOTAsNyBAQCB2b2lkIEhUVFBCb2R5OjplbmNvZGUoSVBD
OjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgZWxlbWVudHM7CiB9CiAK
LWJvb2wgSFRUUEJvZHk6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgSFRU
UEJvZHkmIHJlc3VsdCkKK2Jvb2wgSFRUUEJvZHk6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29k
ZXIsIEhUVFBCb2R5JiByZXN1bHQpCiB7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
Y29udGVudFR5cGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMjksNyArMTI5LDcgQEAg
dm9pZCBGcmFtZVN0YXRlOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAg
IGVuY29kZXIgPDwgY2hpbGRyZW47CiB9CiAKLWJvb2wgRnJhbWVTdGF0ZTo6ZGVjb2RlKElQQzo6
QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBGcmFtZVN0YXRlJiByZXN1bHQpCitib29sIEZyYW1l
U3RhdGU6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIEZyYW1lU3RhdGUmIHJlc3VsdCkK
IHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC51cmxTdHJpbmcpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC0xODQsNyArMTg0LDcgQEAgdm9pZCBQYWdlU3RhdGU6OmVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOwogfQogCi1ib29sIFBhZ2VTdGF0ZTo6ZGVjb2RlKElQ
Qzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBQYWdlU3RhdGUmIHJlc3VsdCkKK2Jvb2wgUGFn
ZVN0YXRlOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBQYWdlU3RhdGUmIHJlc3VsdCkK
IHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC50aXRsZSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKQEAgLTIwMiw3ICsyMDIsNyBAQCB2b2lkIEJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0
ZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHBh
Z2VTdGF0ZTsKIH0KIAotYm9vbCBCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU6OmRlY29kZShJUEM6
OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlJiByZXN1
bHQpCitib29sIEJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYg
ZGVjb2RlciwgQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlJiByZXN1bHQpCiB7CiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXN1bHQuaWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
QEAgLTIxOSw3ICsyMTksNyBAQCB2b2lkIEJhY2tGb3J3YXJkTGlzdFN0YXRlOjplbmNvZGUoSVBD
OjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgY3VycmVudEluZGV4Owog
fQogCi1ib29sIEJhY2tGb3J3YXJkTGlzdFN0YXRlOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIEJhY2tGb3J3YXJkTGlzdFN0YXRlJiByZXN1bHQpCitib29sIEJhY2tGb3J3
YXJkTGlzdFN0YXRlOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBCYWNrRm9yd2FyZExp
c3RTdGF0ZSYgcmVzdWx0KQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lml0ZW1z
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1Nlc3Npb25TdGF0ZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25TdGF0ZS5o
CmluZGV4IGQ1NzdlZTY3NDc2ZTM5MTMyZTEzNjA3NDc5Y2IxYTE4MTM0Yjg5OWIuLmRlZTc2OGI3
Yzc2ZWJjZGM2MTMwZTllOTNiZGY5NDNjNDI4ZjQ5YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9TZXNzaW9uU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vz
c2lvblN0YXRlLmgKQEAgLTM5LDcgKzM5LDcgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBE
ZWNvZGVyOwogY2xhc3MgRW5jb2RlcjsKIH0KIApAQCAtNTAsNyArNTAsNyBAQCBib29sIGlzVmFs
aWRFbnVtKFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOwogc3RydWN0IEhU
VFBCb2R5IHsKICAgICBzdHJ1Y3QgRWxlbWVudCB7CiAgICAgICAgIHZvaWQgZW5jb2RlKElQQzo6
RW5jb2RlciYpIGNvbnN0OwotICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVu
dERlY29kZXImLCBFbGVtZW50Jik7CisgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRl
Y29kZXImLCBFbGVtZW50Jik7CiAKICAgICAgICAgZW51bSBjbGFzcyBUeXBlIHsKICAgICAgICAg
ICAgIERhdGEsCkBAIC03NCw3ICs3NCw3IEBAIHN0cnVjdCBIVFRQQm9keSB7CiAgICAgfTsKIAog
ICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRl
Y29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIEhUVFBCb2R5Jik7CisgICAgc3RhdGljIGJvb2wg
ZGVjb2RlKElQQzo6RGVjb2RlciYsIEhUVFBCb2R5Jik7CiAKICAgICBTdHJpbmcgY29udGVudFR5
cGU7CiAgICAgVmVjdG9yPEVsZW1lbnQ+IGVsZW1lbnRzOwpAQCAtODIsNyArODIsNyBAQCBzdHJ1
Y3QgSFRUUEJvZHkgewogCiBzdHJ1Y3QgRnJhbWVTdGF0ZSB7CiAgICAgdm9pZCBlbmNvZGUoSVBD
OjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnRE
ZWNvZGVyJiwgRnJhbWVTdGF0ZSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29k
ZXImLCBGcmFtZVN0YXRlJik7CiAKICAgICBTdHJpbmcgdXJsU3RyaW5nOwogICAgIFN0cmluZyBv
cmlnaW5hbFVSTFN0cmluZzsKQEAgLTExNCw3ICsxMTQsNyBAQCBzdHJ1Y3QgRnJhbWVTdGF0ZSB7
CiAKIHN0cnVjdCBQYWdlU3RhdGUgewogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNv
bnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFBhZ2VT
dGF0ZSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBQYWdlU3RhdGUm
KTsKIAogICAgIFN0cmluZyB0aXRsZTsKICAgICBGcmFtZVN0YXRlIG1haW5GcmFtZVN0YXRlOwpA
QCAtMTIzLDcgKzEyMyw3IEBAIHN0cnVjdCBQYWdlU3RhdGUgewogCiBzdHJ1Y3QgQmFja0Zvcndh
cmRMaXN0SXRlbVN0YXRlIHsKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsK
LSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBCYWNrRm9yd2Fy
ZExpc3RJdGVtU3RhdGUmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwg
QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlJik7CiAKICAgICB1aW50NjRfdCBpZGVudGlmaWVyOwog
CkBAIC0xMzYsNyArMTM2LDcgQEAgc3RydWN0IEJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSB7CiAK
IHN0cnVjdCBCYWNrRm9yd2FyZExpc3RTdGF0ZSB7CiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNv
ZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVy
JiwgQmFja0ZvcndhcmRMaXN0U3RhdGUmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpE
ZWNvZGVyJiwgQmFja0ZvcndhcmRMaXN0U3RhdGUmKTsKIAogICAgIFZlY3RvcjxCYWNrRm9yd2Fy
ZExpc3RJdGVtU3RhdGU+IGl0ZW1zOwogICAgIE9wdGlvbmFsPHVpbnQzMl90PiBjdXJyZW50SW5k
ZXg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuY3BwCmluZGV4IDU3ODBm
NjljNTJiMzQwMzlmZTI2MmI4ZmMzMDg2NzI1OWJkMzAzYWEuLmE0M2FhM2I1ZjQzZGY1NDQ3NjM5
MmI2OGQzZjZhMTk2ODY5NDBkMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9T
aGFyZWFibGVCaXRtYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVC
aXRtYXAuY3BwCkBAIC00Niw3ICs0Niw3IEBAIHZvaWQgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGU6
OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBtX2Zs
YWdzOwogfQogCi1ib29sIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlOjpkZWNvZGUoSVBDOjpBcmd1
bWVudERlY29kZXImIGRlY29kZXIsIEhhbmRsZSYgaGFuZGxlKQorYm9vbCBTaGFyZWFibGVCaXRt
YXA6OkhhbmRsZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgSGFuZGxlJiBoYW5kbGUp
CiB7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYW5kbGUubV9oYW5kbGUpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxl
Qml0bWFwLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgKaW5kZXgg
N2M5Y2VhYmRlMDlkZDE5MDRkM2NhMTVmZDdmYjE2N2VkMDY0NWU5Yy4uZmEwYmI0NzljNzRmM2Ux
Y2JhNGE2MDFkZGU0NTUxMGE4ZDE3NTc2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1NoYXJlYWJsZUJpdG1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFi
bGVCaXRtYXAuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZvaWQgY2xlYXIo
KTsKIAogICAgICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAgICAgICAg
c3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgSGFuZGxlJik7CisgICAg
ICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBIYW5kbGUmKTsKIAogICAgIHBy
aXZhdGU6CiAgICAgICAgIGZyaWVuZCBjbGFzcyBTaGFyZWFibGVCaXRtYXA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlUmVzb3VyY2UuY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1NoYXJlYWJsZVJlc291cmNlLmNwcAppbmRleCBjNDg2MDFlYTE3NTE0OTZi
ZWVkZDAwNWMyNWQzNGQ3NGE1NDVmMzlmLi45ZTJlYjAwNTQ0OGFmODA2Y2M1ODZjMTZhYjNlZDBm
OWQ2N2IwZGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlUmVz
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5j
cHAKQEAgLTQ2LDcgKzQ2LDcgQEAgdm9pZCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlOjplbmNv
ZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbV9zaXplOwog
fQogCi1ib29sIFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGU6OmRlY29kZShJUEM6OkFyZ3VtZW50
RGVjb2RlciYgZGVjb2RlciwgSGFuZGxlJiBoYW5kbGUpCitib29sIFNoYXJlYWJsZVJlc291cmNl
OjpIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIEhhbmRsZSYgaGFuZGxlKQog
ewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFuZGxlLm1faGFuZGxlKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZVJl
c291cmNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlUmVzb3VyY2UuaAppbmRl
eCAyN2UwNzEzMmYxOWMwN2ZlNGU2MTI5MDRjZTJmYTVhYTYwMWYwMTBkLi5jYTFkM2Y0ZTc1MTQw
OTdlZTE2OWI2ZTRiYWJhNDRhMzA5ZjZkNWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvU2hhcmVhYmxlUmVzb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hh
cmVhYmxlUmVzb3VyY2UuaApAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHVuc2ln
bmVkIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KIAogICAgICAgICB2b2lkIGVuY29k
ZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6
QXJndW1lbnREZWNvZGVyJiwgSGFuZGxlJik7CisgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJ
UEM6OkRlY29kZXImLCBIYW5kbGUmKTsKIAogICAgICAgICBSZWZQdHI8V2ViQ29yZTo6U2hhcmVk
QnVmZmVyPiB0cnlXcmFwSW5TaGFyZWRCdWZmZXIoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9TdGF0aXN0aWNzRGF0YS5jcHAKaW5kZXggYjI1ODljZTMzYzE0NTMwOTEyZTRmZGNmNGQ0
YjY0ZjkwOWI1ZDNlYS4uOGFmNmFmYTZkMTQyZTBiODY5ZmQxMTMzZDRiN2RkYjk2YzU4NDAyZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RhdGlzdGljc0RhdGEuY3BwCkBAIC0zOCw3ICszOCw3
IEBAIHZvaWQgU3RhdGlzdGljc0RhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNv
bnN0CiAgICAgZW5jb2RlciA8PCB3ZWJDb3JlQ2FjaGVTdGF0aXN0aWNzOwogfQogCi1ib29sIFN0
YXRpc3RpY3NEYXRhOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFN0YXRp
c3RpY3NEYXRhJiBzdGF0aXN0aWNzRGF0YSkKK2Jvb2wgU3RhdGlzdGljc0RhdGE6OmRlY29kZShJ
UEM6OkRlY29kZXImIGRlY29kZXIsIFN0YXRpc3RpY3NEYXRhJiBzdGF0aXN0aWNzRGF0YSkKIHsK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0YXRpc3RpY3NEYXRhLnN0YXRpc3RpY3NOdW1iZXJz
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1N0YXRpc3RpY3NEYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RhdGlzdGljc0Rh
dGEuaAppbmRleCAzMzcwYjViODUyOWYxZGU2NWMxOTAzOGYwMzVjNTEyMGZkMDNkMjUzLi5mOGUy
NGE4MmEwOThlODNkZWVlMzllZDlmODUzYjE0MmE2MGExYWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvU3RhdGlzdGljc0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvU3RhdGlzdGljc0RhdGEuaApAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBTdGF0aXN0aWNz
RGF0YV9oCiAjZGVmaW5lIFN0YXRpc3RpY3NEYXRhX2gKIAotI2luY2x1ZGUgIkFyZ3VtZW50RGVj
b2Rlci5oIgorI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgiCiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0zNyw3ICsz
Nyw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgU3RhdGlzdGljc0RhdGEgewogICAg
IHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29k
ZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFN0YXRpc3RpY3NEYXRhJik7CisgICAgc3RhdGljIGJv
b2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFN0YXRpc3RpY3NEYXRhJik7CiAgICAgCiAgICAgSGFz
aE1hcDxTdHJpbmcsIHVpbnQ2NF90PiBzdGF0aXN0aWNzTnVtYmVyczsKICAgICBIYXNoTWFwPFN0
cmluZywgdWludDY0X3Q+IGphdmFTY3JpcHRQcm90ZWN0ZWRPYmplY3RUeXBlQ291bnRzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1VwZGF0ZUluZm8uY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1VwZGF0ZUluZm8uY3BwCmluZGV4IGUxODg2MzEzYzZiYTcyNGE0YTk0YjJl
MmNjZWRjMjU3NzlmMmQyYTAuLjQ1MDJjZTE3YWQ4YzI5MGI1MWNiZWExZTI0NGM3ZmEzNGYxMDkw
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9VcGRhdGVJbmZvLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXBkYXRlSW5mby5jcHAKQEAgLTQzLDcgKzQzLDcgQEAg
dm9pZCBVcGRhdGVJbmZvOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAg
IGVuY29kZXIgPDwgYml0bWFwT2Zmc2V0OwogfQogCi1ib29sIFVwZGF0ZUluZm86OmRlY29kZShJ
UEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgVXBkYXRlSW5mbyYgcmVzdWx0KQorYm9vbCBV
cGRhdGVJbmZvOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBVcGRhdGVJbmZvJiByZXN1
bHQpCiB7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudmlld1NpemUpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXBkYXRl
SW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1VwZGF0ZUluZm8uaAppbmRleCBlOWIwYzZm
ZTUzYzExOGE0NGFkN2IyMGNiMmJmY2Q3NGZkOWE2OTJiLi5iMWQ0YWY5ZjdmMTdkNDRmNjA4OWNh
M2UwMjFjMGNkNWY4N2NmMjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXBk
YXRlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9VcGRhdGVJbmZvLmgKQEAgLTMy
LDggKzMyLDggQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBJUEMgewot
ICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLSAgICBjbGFzcyBFbmNvZGVyOworY2xhc3MgRGVj
b2RlcjsKK2NsYXNzIEVuY29kZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDUsNyAr
NDUsNyBAQCBwdWJsaWM6CiAgICAgVXBkYXRlSW5mbygpIHsgfQogCiAgICAgdm9pZCBlbmNvZGUo
SVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1l
bnREZWNvZGVyJiwgVXBkYXRlSW5mbyYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRl
Y29kZXImLCBVcGRhdGVJbmZvJik7CiAKICAgICAvLyBUaGUgc2l6ZSBvZiB0aGUgd2ViIHZpZXcu
CiAgICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3U2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Vc2VyRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlckRhdGEu
Y3BwCmluZGV4IDQwZGMxZGEzYzA0NWY2Njc4OWJmYjk0ZTk2ZGYzNzc2ZGUxYmFhOWEuLjYyZTEz
NTg2YTQxYzU4NTU2NjkwYzk5MzhjNTU2YjczMWZlYzc5NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Vc2VyRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Vz
ZXJEYXRhLmNwcApAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgVXNlckRhdGE6OmVuY29kZShJUEM6
OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlKGVuY29kZXIsIG1fb2JqZWN0Lmdl
dCgpKTsKIH0KIAotYm9vbCBVc2VyRGF0YTo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBk
ZWNvZGVyLCBVc2VyRGF0YSYgdXNlckRhdGEpCitib29sIFVzZXJEYXRhOjpkZWNvZGUoSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgcmV0dXJuIGRlY29k
ZShkZWNvZGVyLCB1c2VyRGF0YS5tX29iamVjdCk7CiB9CkBAIC0zMjcsNyArMzI3LDcgQEAgdm9p
ZCBVc2VyRGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQVBJOjpPYmpl
Y3QmIG9iamVjdCkKICAgICB9CiB9CiAKLWJvb2wgVXNlckRhdGE6OmRlY29kZShJUEM6OkFyZ3Vt
ZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPEFQSTo6T2JqZWN0PiYgcmVzdWx0KQorYm9vbCBV
c2VyRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPEFQSTo6T2JqZWN0
PiYgcmVzdWx0KQogewogICAgIEFQSTo6T2JqZWN0OjpUeXBlIHR5cGU7CiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZUVudW0odHlwZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
VXNlckRhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyRGF0YS5oCmluZGV4IGQzNDMw
Y2I5OWY3NGM1ZDcwZmU2YmFlMjFkMGVkMTIxOGQxZDJiZGQuLjRlZTYwOTJhZDMwNDdiZTZjZGZj
YzlhY2YzYjIyN2RmODRkNzY3MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9V
c2VyRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyRGF0YS5oCkBAIC0zMSw3
ICszMSw3IEBACiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgRW5jb2RlcjsKLWNsYXNzIEFyZ3Vt
ZW50RGVjb2RlcjsKK2NsYXNzIERlY29kZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAt
NTIsMTAgKzUyLDEwIEBAIHB1YmxpYzoKICAgICBBUEk6Ok9iamVjdCogb2JqZWN0KCkgY29uc3Qg
eyByZXR1cm4gbV9vYmplY3QuZ2V0KCk7IH0KIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2Rl
ciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYs
IFVzZXJEYXRhJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFVzZXJE
YXRhJik7CiAKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJiwgY29uc3QgQVBJ
OjpPYmplY3QqKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXIm
LCBSZWZQdHI8QVBJOjpPYmplY3Q+Jik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVj
b2RlciYsIFJlZlB0cjxBUEk6Ok9iamVjdD4mKTsKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoSVBDOjpFbmNvZGVyJiwgY29uc3QgQVBJOjpPYmplY3QmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcApp
bmRleCAzZWQyMzI0NTIzYWQxZTRkZTI3Zjg4ZTA3YWQzMzgwMmJlY2VkNWI1Li40YjUyMDdhOTE2
MDM2NzE5OTY1NjhmNmY2NWVlZTljZDQyYWMzMzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3BwCkBAIC00OSw3ICs0
OSw3IEBAIHZvaWQgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6ZW5jb2RlKElQQzo6RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1fZW5jbG9zZWRJblNjcm9sbGFi
bGVBbmNlc3RvclZpZXc7CiB9CiAKLWJvb2wgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6
ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBWaXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJbmZvJiByZXN1bHQpCitib29sIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86OmRl
Y29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8m
IHJlc3VsdCkKIHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2V4cG9zZWRDb250
ZW50UmVjdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oCmluZGV4IDI4N2JmM2I4MDhi
ZDRjMWRlZjJkOTQ0MzRkM2JhMzI1MTExNzBkNTkuLjZiYTFkNjg5OTgyM2EyMTAwOTUwZDkxMjVm
MDk5YzAwOTJiMmM5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9WaXNpYmxl
Q29udGVudFJlY3RVcGRhdGVJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2li
bGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvRmxvYXRSZWN0Lmg+CiAKIG5hbWVzcGFjZSBJUEMgewotY2xhc3MgQXJndW1lbnREZWNv
ZGVyOworY2xhc3MgRGVjb2RlcjsKIGNsYXNzIEVuY29kZXI7CiB9CiAKQEAgLTgxLDcgKzgxLDcg
QEAgcHVibGljOgogICAgIHVpbnQ2NF90IGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklEKCkgY29u
c3QgeyByZXR1cm4gbV9sYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRDsgfQogCiAgICAgdm9pZCBl
bmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6
QXJndW1lbnREZWNvZGVyJiwgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYpOworICAgIHN0
YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvJik7CiAKIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fZXhwb3NlZENvbnRl
bnRSZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYWNrRm9yd2FyZExpc3RJdGVt
LmgKaW5kZXggZGU3NTZlMDFhZmZjOTlkN2FjOWQ4MDQ3OTU1NGI2OGZhMzhlODgzMi4uMjVkODI2
MjQwNzY3MTQwOWU1NzFjMjQxZGZjZTEwZDUxZjg2ZGJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNz
IERhdGE7CiB9CiAKIG5hbWVzcGFjZSBJUEMgewotY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xh
c3MgRGVjb2RlcjsKIGNsYXNzIEVuY29kZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRhLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRhLmNwcAppbmRleCA4
MWEzMWEyMGMwNzRlNTkyZDNhMTY3ZDZiZTU4NmNmMTUxNTNhMTQyLi42YzdkMTU2OTJiMjBmZjI3
OWZmYzM5MjRkZDYzZDA4YWZiMDlkMDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEuY3BwCkBAIC00OCw3ICs0
OCw3IEBAIHZvaWQgV2ViQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uRGF0YTo6ZW5jb2RlKElQQzo6
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGRvbWFpbkZpbHRlcnNCeXRl
Y29kZVNpemU7CiB9CiAKLWJvb2wgV2ViQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uRGF0YTo6ZGVj
b2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJDb21waWxlZENvbnRlbnRFeHRl
bnNpb25EYXRhJiBjb21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRhKQorYm9vbCBXZWJDb21waWxl
ZENvbnRlbnRFeHRlbnNpb25EYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJD
b21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRhJiBjb21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRh
KQogewogICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGhhbmRsZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29t
cGlsZWRDb250ZW50RXh0ZW5zaW9uRGF0YS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
bXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEuaAppbmRleCA1OWNkODI0YThmMzUyNzYxZTRjMjMx
NmRjOGY2YWFhNGM4M2ViNmY1Li5mNjJjYjMyZDc3MDA4ODhlMDI5MjcyODIwNWQ5NDU3NGRmZDE5
YmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50
RXh0ZW5zaW9uRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb21waWxlZENv
bnRlbnRFeHRlbnNpb25EYXRhLmgKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CiAKIG5hbWVzcGFjZSBJUEMgewotY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xhc3Mg
RGVjb2RlcjsKIGNsYXNzIEVuY29kZXI7CiB9CiAKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgog
ICAgIH0KIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRp
YyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFdlYkNvbXBpbGVkQ29udGVudEV4
dGVuc2lvbkRhdGEmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2Vi
Q29tcGlsZWRDb250ZW50RXh0ZW5zaW9uRGF0YSYpOwogCiAgICAgUmVmUHRyPFNoYXJlZE1lbW9y
eT4gZGF0YTsKICAgICBOZXR3b3JrQ2FjaGU6OkRhdGEgZmlsZURhdGE7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkNvbm5lY3Rpb24uaAppbmRleCA3OTA5NzVjZmNhMWQ2YThkOGU3YjliZjg2YjQ2YmVl
MTc4YTdkZWNlLi5mYjI2MGI0Y2Q3OWZjMmY3NDYyZjQzZTFmNjVhMDRiOWJmOWNkNDU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0aW9uLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHJvdGVj
dGVkOgogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICAvLyBJbXBsZW1lbnRlZCBp
biBnZW5lcmF0ZWQgV2ViQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBv
dmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAgLy8gTWVzYWdlIGhhbmRsaW5nIGltcGxlbWVu
dGF0aW9uIGZ1bmN0aW9ucy4KICAgICB2b2lkIGhhbmRsZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlTmFtZSwgY29uc3QgVXNlckRhdGEmIG1lc3NhZ2VCb2R5KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcAppbmRleCBlMDkwOGQ0MWRm
N2MwNTkyYmFmMDgzMTJmNGNjNGY3MjE2N2Y2MjRlLi4xOTEzMDNlMDhiZmVmOTc0MGY5MjI2Yzg1
ZjM3NWMwZmZjZjdmMzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29u
dGV4dE1lbnVJdGVtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbnRl
eHRNZW51SXRlbURhdGEuY3BwCkBAIC0xMTAsNyArMTEwLDcgQEAgdm9pZCBXZWJDb250ZXh0TWVu
dUl0ZW1EYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29k
ZXIgPDwgbV9zdWJtZW51OwogfQogCi1ib29sIFdlYkNvbnRleHRNZW51SXRlbURhdGE6OmRlY29k
ZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYg
aXRlbSkKK2Jvb2wgV2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYg
ZGVjb2RlciwgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSkKIHsKICAgICBXZWJDb3JlOjpD
b250ZXh0TWVudUl0ZW1UeXBlIHR5cGU7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0odHlw
ZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVt
RGF0YS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuaApp
bmRleCBlYTMxZjVkNjBhYzA4YTY0MzkxNzliMWQzNzRmZGE4MDIzYWE2YTUxLi5hMzYxOTA3Y2Ji
MTgzMzg4Mzk4YmJiYmNhN2M3YWZiNTUwOTM0NThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmgKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgT2Jq
ZWN0OwogfQogCiBuYW1lc3BhY2UgSVBDIHsKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNz
IERlY29kZXI7CiBjbGFzcyBFbmNvZGVyOwogfQogCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFVzZXJEYXRhKEFQSTo6T2JqZWN0Kik7CiAgICAgCiAgICAgdm9pZCBlbmNv
ZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJn
dW1lbnREZWNvZGVyJiwgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYpOworICAgIHN0YXRpYyBib29s
IGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJik7CiAKIHByaXZh
dGU6CiAgICAgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVHlwZSBtX3R5cGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDkyNGFlZTdl
ZGI5NDZiYmNhMTBjZmRmZjVlZWI2ODdjNjM1MDc3ODAuLmU0MmQwZDZjNmM5OTBkMjBlMzU0MDkx
YWZmYTU3ZmU4MmE2N2Y4N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgdm9pZCBBcmd1bWVudENvZGVy
PEFmZmluZVRyYW5zZm9ybT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBBZmZpbmVU
cmFuc2YKICAgICBTaW1wbGVBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmVuY29kZShl
bmNvZGVyLCBhZmZpbmVUcmFuc2Zvcm0pOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8QWZmaW5l
VHJhbnNmb3JtPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgQWZmaW5lVHJhbnNm
b3JtJiBhZmZpbmVUcmFuc2Zvcm0pCitib29sIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3Jt
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEFmZmluZVRyYW5zZm9ybSYgYWZmaW5lVHJhbnNm
b3JtKQogewogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46
OmRlY29kZShkZWNvZGVyLCBhZmZpbmVUcmFuc2Zvcm0pOwogfQpAQCAtMTE0LDcgKzExNCw3IEBA
IHZvaWQgQXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBFdmVudFRyCiAgICAgZW5jb2RlciA8PCBldmVudFRyYWNraW5nUmVn
aW9ucy5ldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnM7CiB9CiAKLWJvb2wg
QXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZShBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIEV2ZW50VHJhY2tpbmdSZWdpb25zJiBldmVudFRyYWNraW5nUmVnaW9ucykK
K2Jvb2wgQXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBFdmVudFRyYWNraW5nUmVnaW9ucyYgZXZlbnRUcmFja2luZ1JlZ2lvbnMpCiB7
CiAgICAgUmVnaW9uIGFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uOwogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24pKQpAQCAtMTUwLDcgKzE1MCw3IEBA
IHZvaWQgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBUcmFuc2ZvCiAgICAgZW5jb2RlciA8PCB0cmFuc2Zvcm1hdGlvbk1h
dHJpeC5tNDQoKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4
Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgVHJhbnNmb3JtYXRpb25NYXRyaXgm
IHRyYW5zZm9ybWF0aW9uTWF0cml4KQorYm9vbCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9u
TWF0cml4Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0
cmFuc2Zvcm1hdGlvbk1hdHJpeCkKIHsKICAgICBkb3VibGUgbTExOwogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUobTExKSkKQEAgLTIxMyw3ICsyMTMsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8TGlu
ZWFyVGltaW5nRnVuY3Rpb24+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTGluZWFy
VAogICAgIGVuY29kZXIuZW5jb2RlRW51bSh0aW1pbmdGdW5jdGlvbi50eXBlKCkpOwogfQogCi1i
b29sIEFyZ3VtZW50Q29kZXI8TGluZWFyVGltaW5nRnVuY3Rpb24+OjpkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiwgTGluZWFyVGltaW5nRnVuY3Rpb24mKQorYm9vbCBBcmd1bWVudENvZGVyPExpbmVh
clRpbWluZ0Z1bmN0aW9uPjo6ZGVjb2RlKERlY29kZXImLCBMaW5lYXJUaW1pbmdGdW5jdGlvbiYp
CiB7CiAgICAgLy8gVHlwZSBpcyBkZWNvZGVkIGJ5IHRoZSBjYWxsZXIuIE5vdGhpbmcgZWxzZSB0
byBkZWNvZGUuCiAgICAgcmV0dXJuIHRydWU7CkBAIC0yMzEsNyArMjMxLDcgQEAgdm9pZCBBcmd1
bWVudENvZGVyPEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgQ3UKICAgICBlbmNvZGVyLmVuY29kZUVudW0odGltaW5nRnVuY3Rpb24udGlt
aW5nRnVuY3Rpb25QcmVzZXQoKSk7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxDdWJpY0Jlemll
clRpbWluZ0Z1bmN0aW9uPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgQ3ViaWNC
ZXppZXJUaW1pbmdGdW5jdGlvbiYgdGltaW5nRnVuY3Rpb24pCitib29sIEFyZ3VtZW50Q29kZXI8
Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBDdWJp
Y0JlemllclRpbWluZ0Z1bmN0aW9uJiB0aW1pbmdGdW5jdGlvbikKIHsKICAgICAvLyBUeXBlIGlz
IGRlY29kZWQgYnkgdGhlIGNhbGxlci4KICAgICBkb3VibGUgeDE7CkBAIC0yNjgsNyArMjY4LDcg
QEAgdm9pZCBBcmd1bWVudENvZGVyPFN0ZXBzVGltaW5nRnVuY3Rpb24+OjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgU3RlcHNUaW0KICAgICBlbmNvZGVyIDw8IHRpbWluZ0Z1bmN0aW9u
LnN0ZXBBdFN0YXJ0KCk7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxTdGVwc1RpbWluZ0Z1bmN0
aW9uPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgU3RlcHNUaW1pbmdGdW5jdGlv
biYgdGltaW5nRnVuY3Rpb24pCitib29sIEFyZ3VtZW50Q29kZXI8U3RlcHNUaW1pbmdGdW5jdGlv
bj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTdGVwc1RpbWluZ0Z1bmN0aW9uJiB0aW1pbmdG
dW5jdGlvbikKIHsKICAgICAvLyBUeXBlIGlzIGRlY29kZWQgYnkgdGhlIGNhbGxlci4KICAgICBp
bnQgbnVtU3RlcHM7CkBAIC0yOTUsNyArMjk1LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFNwcmlu
Z1RpbWluZ0Z1bmN0aW9uPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNwcmluZ1QK
ICAgICBlbmNvZGVyIDw8IHRpbWluZ0Z1bmN0aW9uLmluaXRpYWxWZWxvY2l0eSgpOwogfQogCi1i
b29sIEFyZ3VtZW50Q29kZXI8U3ByaW5nVGltaW5nRnVuY3Rpb24+OjpkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBTcHJpbmdUaW1pbmdGdW5jdGlvbiYgdGltaW5nRnVuY3Rpb24pCiti
b29sIEFyZ3VtZW50Q29kZXI8U3ByaW5nVGltaW5nRnVuY3Rpb24+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgU3ByaW5nVGltaW5nRnVuY3Rpb24mIHRpbWluZ0Z1bmN0aW9uKQogewogICAgIC8v
IFR5cGUgaXMgZGVjb2RlZCBieSB0aGUgY2FsbGVyLgogICAgIGRvdWJsZSBtYXNzOwpAQCAtMzI0
LDcgKzMyNCw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UG9pbnQmIGZsb2F0CiAgICAgU2ltcGxlQXJndW1lbnRD
b2RlcjxGbG9hdFBvaW50Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UG9pbnQpOwogfQogCi1ib29s
IEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29k
ZXIsIEZsb2F0UG9pbnQmIGZsb2F0UG9pbnQpCitib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2lu
dD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFBvaW50JiBmbG9hdFBvaW50KQogewog
ICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjpkZWNvZGUoZGVjb2Rl
ciwgZmxvYXRQb2ludCk7CiB9CkBAIC0zMzUsNyArMzM1LDcgQEAgdm9pZCBBcmd1bWVudENvZGVy
PEZsb2F0UG9pbnQzRD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFBvaW50
M0QmIGYKICAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmVuY29kZShlbmNv
ZGVyLCBmbG9hdFBvaW50KTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46
OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEZsb2F0UG9pbnQzRCYgZmxvYXRQb2lu
dCkKK2Jvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgRmxvYXRQb2ludDNEJiBmbG9hdFBvaW50KQogewogICAgIHJldHVybiBTaW1wbGVBcmd1
bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmRlY29kZShkZWNvZGVyLCBmbG9hdFBvaW50KTsKIH0K
QEAgLTM0Niw3ICszNDYsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UmVjdCYgZmxvYXRSZQogICAgIFNpbXBsZUFy
Z3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UmVjdCk7CiB9CiAK
LWJvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFJlY3Q+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBk
ZWNvZGVyLCBGbG9hdFJlY3QmIGZsb2F0UmVjdCkKK2Jvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFJl
Y3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRSZWN0JiBmbG9hdFJlY3QpCiB7CiAg
ICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIs
IGZsb2F0UmVjdCk7CiB9CkBAIC0zNTcsNyArMzU3LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPEZs
b2F0U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFNpemUmIGZsb2F0
U2kKICAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46OmVuY29kZShlbmNvZGVyLCBm
bG9hdFNpemUpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYgZGVjb2RlciwgRmxvYXRTaXplJiBmbG9hdFNpemUpCitib29sIEFyZ3Vt
ZW50Q29kZXI8RmxvYXRTaXplPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZsb2F0U2l6ZSYg
ZmxvYXRTaXplKQogewogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46
OmRlY29kZShkZWNvZGVyLCBmbG9hdFNpemUpOwogfQpAQCAtMzY4LDcgKzM2OCw3IEBAIHZvaWQg
QXJndW1lbnRDb2RlcjxGbG9hdFJvdW5kZWRSZWN0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IEZsb2F0Um91bmRlCiAgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFJvdW5kZWRS
ZWN0Pjo6ZW5jb2RlKGVuY29kZXIsIHJvdW5kZWRSZWN0KTsKIH0KIAotYm9vbCBBcmd1bWVudENv
ZGVyPEZsb2F0Um91bmRlZFJlY3Q+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBG
bG9hdFJvdW5kZWRSZWN0JiByb3VuZGVkUmVjdCkKK2Jvb2wgQXJndW1lbnRDb2RlcjxGbG9hdFJv
dW5kZWRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZsb2F0Um91bmRlZFJlY3QmIHJv
dW5kZWRSZWN0KQogewogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0Um91bmRl
ZFJlY3Q+OjpkZWNvZGUoZGVjb2Rlciwgcm91bmRlZFJlY3QpOwogfQpAQCAtMzc5LDcgKzM3OSw3
IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFF1YWQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgRmxvYXRRdWFkJiBmbG9hdFF1CiAgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9h
dFF1YWQ+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRRdWFkKTsKIH0KIAotYm9vbCBBcmd1bWVudENv
ZGVyPEZsb2F0UXVhZD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEZsb2F0UXVh
ZCYgZmxvYXRRdWFkKQorYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UXVhZD46OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyLCBGbG9hdFF1YWQmIGZsb2F0UXVhZCkKIHsKICAgICByZXR1cm4gU2ltcGxl
QXJndW1lbnRDb2RlcjxGbG9hdFF1YWQ+OjpkZWNvZGUoZGVjb2RlciwgZmxvYXRRdWFkKTsKIH0K
QEAgLTM4OSw3ICszODksNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBcmd1bWVudHM+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVmlld3BvcnRBcgogICAgIFNpbXBsZUFy
Z3VtZW50Q29kZXI8Vmlld3BvcnRBcmd1bWVudHM+OjplbmNvZGUoZW5jb2Rlciwgdmlld3BvcnRB
cmd1bWVudHMpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBcmd1bWVudHM+Ojpk
ZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBWaWV3cG9ydEFyZ3VtZW50cyYgdmlld3Bv
cnRBcmd1bWVudHMpCitib29sIEFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBcmd1bWVudHM+OjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgVmlld3BvcnRBcmd1bWVudHMmIHZpZXdwb3J0QXJndW1lbnRz
KQogewogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPFZpZXdwb3J0QXJndW1lbnRzPjo6
ZGVjb2RlKGRlY29kZXIsIHZpZXdwb3J0QXJndW1lbnRzKTsKIH0KQEAgLTQwMSw3ICs0MDEsNyBA
QCB2b2lkIEFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgSW50UG9pbnQmIGludFBvaW50KQogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50UG9p
bnQ+OjplbmNvZGUoZW5jb2RlciwgaW50UG9pbnQpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8
SW50UG9pbnQ+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBJbnRQb2ludCYgaW50
UG9pbnQpCitib29sIEFyZ3VtZW50Q29kZXI8SW50UG9pbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgSW50UG9pbnQmIGludFBvaW50KQogewogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENv
ZGVyPEludFBvaW50Pjo6ZGVjb2RlKGRlY29kZXIsIGludFBvaW50KTsKIH0KQEAgLTQxMiw3ICs0
MTIsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8SW50UmVjdD46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBJbnRSZWN0JiBpbnRSZWN0KQogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50
UmVjdD46OmVuY29kZShlbmNvZGVyLCBpbnRSZWN0KTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVy
PEludFJlY3Q+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBJbnRSZWN0JiBpbnRS
ZWN0KQorYm9vbCBBcmd1bWVudENvZGVyPEludFJlY3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgSW50UmVjdCYgaW50UmVjdCkKIHsKICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxJ
bnRSZWN0Pjo6ZGVjb2RlKGRlY29kZXIsIGludFJlY3QpOwogfQpAQCAtNDIzLDcgKzQyMyw3IEBA
IHZvaWQgQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IEludFNpemUmIGludFNpemUpCiAgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6
ZW5jb2RlKGVuY29kZXIsIGludFNpemUpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8SW50U2l6
ZT46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEludFNpemUmIGludFNpemUpCiti
b29sIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJbnRT
aXplJiBpbnRTaXplKQogewogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEludFNpemU+
OjpkZWNvZGUoZGVjb2RlciwgaW50U2l6ZSk7CiB9CkBAIC00NjcsNyArNDY3LDcgQEAgdm9pZCBB
cmd1bWVudENvZGVyPFBhdGg+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUGF0aCYg
cGF0aCkKICAgICB9KTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPFBhdGg+OjpkZWNvZGUoQXJn
dW1lbnREZWNvZGVyJiBkZWNvZGVyLCBQYXRoJiBwYXRoKQorYm9vbCBBcmd1bWVudENvZGVyPFBh
dGg+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUGF0aCYgcGF0aCkKIHsKICAgICB1aW50NjRf
dCBudW1Qb2ludHM7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShudW1Qb2ludHMpKQpAQCAtNTM4
LDcgKzUzOCw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxSZWNlbnRTZWFyY2g+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgUmVjZW50U2VhcmNoJiByCiAgICAgZW5jb2RlciA8PCByZWNl
bnRTZWFyY2guc3RyaW5nIDw8IHJlY2VudFNlYXJjaC50aW1lOwogfQogCi1ib29sIEFyZ3VtZW50
Q29kZXI8UmVjZW50U2VhcmNoPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVj
ZW50U2VhcmNoJiByZWNlbnRTZWFyY2gpCitib29sIEFyZ3VtZW50Q29kZXI8UmVjZW50U2VhcmNo
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJlY2VudFNlYXJjaCYgcmVjZW50U2VhcmNoKQog
ewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVjZW50U2VhcmNoLnN0cmluZykpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKQEAgLTU1MSw3ICs1NTEsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8UmVj
ZW50U2VhcmNoPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVjZW50U2VhcmNo
JgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFJlZ2lvbjo6U3Bhbj4gewogICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgUmVnaW9uOjpTcGFuJik7Ci0gICAg
c3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFJlZ2lvbjo6U3BhbiYpOworICAg
IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgUmVnaW9uOjpTcGFuJik7CiB9OwogCiB2b2lk
IEFyZ3VtZW50Q29kZXI8UmVnaW9uOjpTcGFuPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IFJlZ2lvbjo6U3BhbiYgc3BhbikKQEAgLTU2MCw3ICs1NjAsNyBAQCB2b2lkIEFyZ3VtZW50
Q29kZXI8UmVnaW9uOjpTcGFuPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlZ2lv
bjo6U3BhbiYgcwogICAgIGVuY29kZXIgPDwgKHVpbnQ2NF90KXNwYW4uc2VnbWVudEluZGV4Owog
fQogCi1ib29sIEFyZ3VtZW50Q29kZXI8UmVnaW9uOjpTcGFuPjo6ZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYgZGVjb2RlciwgUmVnaW9uOjpTcGFuJiBzcGFuKQorYm9vbCBBcmd1bWVudENvZGVyPFJl
Z2lvbjo6U3Bhbj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZWdpb246OlNwYW4mIHNwYW4p
CiB7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzcGFuLnkpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC01NzksNyArNTc5LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFJlZ2lvbj46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWdpb24mIHJlZ2lvbikKICAgICBlbmNvZGVyLmVu
Y29kZShyZWdpb24uc2hhcGVTcGFucygpKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPFJlZ2lv
bj46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZ2lvbiYgcmVnaW9uKQorYm9v
bCBBcmd1bWVudENvZGVyPFJlZ2lvbj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZWdpb24m
IHJlZ2lvbikKIHsKICAgICBWZWN0b3I8aW50PiBzZWdtZW50czsKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHNlZ21lbnRzKSkKQEAgLTYwNCw3ICs2MDQsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8
TGVuZ3RoPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IExlbmd0aCYgbGVuZ3RoKQog
ICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8TGVuZ3RoPjo6ZW5jb2RlKGVuY29kZXIsIGxlbmd0aCk7
CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxMZW5ndGg+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVy
JiBkZWNvZGVyLCBMZW5ndGgmIGxlbmd0aCkKK2Jvb2wgQXJndW1lbnRDb2RlcjxMZW5ndGg+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTGVuZ3RoJiBsZW5ndGgpCiB7CiAgICAgcmV0dXJuIFNp
bXBsZUFyZ3VtZW50Q29kZXI8TGVuZ3RoPjo6ZGVjb2RlKGRlY29kZXIsIGxlbmd0aCk7CiB9CkBA
IC02MTUsNyArNjE1LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFZpZXdwb3J0QXR0cmlidXRlcz46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBWaWV3cG9ydEEKICAgICBTaW1wbGVBcmd1
bWVudENvZGVyPFZpZXdwb3J0QXR0cmlidXRlcz46OmVuY29kZShlbmNvZGVyLCB2aWV3cG9ydEF0
dHJpYnV0ZXMpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBdHRyaWJ1dGVzPjo6
ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgVmlld3BvcnRBdHRyaWJ1dGVzJiB2aWV3
cG9ydEF0dHJpYnV0ZXMpCitib29sIEFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBdHRyaWJ1dGVzPjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFZpZXdwb3J0QXR0cmlidXRlcyYgdmlld3BvcnRBdHRy
aWJ1dGVzKQogewogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPFZpZXdwb3J0QXR0cmli
dXRlcz46OmRlY29kZShkZWNvZGVyLCB2aWV3cG9ydEF0dHJpYnV0ZXMpOwogfQpAQCAtNjI2LDcg
KzYyNiw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxNaW1lQ2xhc3NJbmZvPjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IE1pbWVDbGFzc0luZm8mCiAgICAgZW5jb2RlciA8PCBtaW1lQ2xh
c3NJbmZvLnR5cGUgPDwgbWltZUNsYXNzSW5mby5kZXNjIDw8IG1pbWVDbGFzc0luZm8uZXh0ZW5z
aW9uczsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPE1pbWVDbGFzc0luZm8+OjpkZWNvZGUoQXJn
dW1lbnREZWNvZGVyJiBkZWNvZGVyLCBNaW1lQ2xhc3NJbmZvJiBtaW1lQ2xhc3NJbmZvKQorYm9v
bCBBcmd1bWVudENvZGVyPE1pbWVDbGFzc0luZm8+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwg
TWltZUNsYXNzSW5mbyYgbWltZUNsYXNzSW5mbykKIHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KG1pbWVDbGFzc0luZm8udHlwZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTY1Myw3ICs2
NTMsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8UGx1Z2luSW5mbz46OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBQbHVnaW5JbmZvJiBwbHVnaQogI2VuZGlmCiB9CiAKLWJvb2wgQXJndW1l
bnRDb2RlcjxQbHVnaW5JbmZvPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUGx1
Z2luSW5mbyYgcGx1Z2luSW5mbykKK2Jvb2wgQXJndW1lbnRDb2RlcjxQbHVnaW5JbmZvPjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFBsdWdpbkluZm8mIHBsdWdpbkluZm8pCiB7CiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwbHVnaW5JbmZvLm5hbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CkBAIC02ODIsNyArNjgyLDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEF1dGgKICAgICBlbmNvZGVy
IDw8IGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKSA8PCBjaGFsbGVuZ2UucHJvcG9zZWRDcmVk
ZW50aWFsKCkgPDwgY2hhbGxlbmdlLnByZXZpb3VzRmFpbHVyZUNvdW50KCkgPDwgY2hhbGxlbmdl
LmZhaWx1cmVSZXNwb25zZSgpIDw8IGNoYWxsZW5nZS5lcnJvcigpOwogfQogCi1ib29sIEFyZ3Vt
ZW50Q29kZXI8QXV0aGVudGljYXRpb25DaGFsbGVuZ2U+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVy
JiBkZWNvZGVyLCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKQorYm9vbCBBcmd1
bWVudENvZGVyPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpCiB7ICAgIAogICAgIFByb3Rl
Y3Rpb25TcGFjZSBwcm90ZWN0aW9uU3BhY2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcm90
ZWN0aW9uU3BhY2UpKQpAQCAtNzIzLDcgKzcyMyw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxQcm90
ZWN0aW9uU3BhY2U+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUHJvdGVjdGlvblNw
CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHNwYWNlLnNlcnZlclR5cGUoKSk7CiB9CiAKLWJvb2wg
QXJndW1lbnRDb2RlcjxQcm90ZWN0aW9uU3BhY2U+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBk
ZWNvZGVyLCBQcm90ZWN0aW9uU3BhY2UmIHNwYWNlKQorYm9vbCBBcmd1bWVudENvZGVyPFByb3Rl
Y3Rpb25TcGFjZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBQcm90ZWN0aW9uU3BhY2UmIHNw
YWNlKQogewogICAgIGJvb2wgaGFzUGxhdGZvcm1EYXRhOwogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoaGFzUGxhdGZvcm1EYXRhKSkKQEAgLTc2OSw3ICs3NjksNyBAQCB2b2lkIEFyZ3VtZW50Q29k
ZXI8Q3JlZGVudGlhbD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDcmVkZW50aWFs
JiBjcmVkZQogICAgIGVuY29kZXIuZW5jb2RlRW51bShjcmVkZW50aWFsLnBlcnNpc3RlbmNlKCkp
OwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8Q3JlZGVudGlhbD46OmRlY29kZShBcmd1bWVudERl
Y29kZXImIGRlY29kZXIsIENyZWRlbnRpYWwmIGNyZWRlbnRpYWwpCitib29sIEFyZ3VtZW50Q29k
ZXI8Q3JlZGVudGlhbD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBDcmVkZW50aWFsJiBjcmVk
ZW50aWFsKQogewogICAgIGJvb2wgaGFzUGxhdGZvcm1EYXRhOwogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoaGFzUGxhdGZvcm1EYXRhKSkKQEAgLTgwNSw3ICs4MDUsNyBAQCBzdGF0aWMgdm9pZCBl
bmNvZGVJbWFnZShFbmNvZGVyJiBlbmNvZGVyLCBJbWFnZSYgaW1hZ2UpCiAgICAgZW5jb2RlciA8
PCBoYW5kbGU7CiB9CiAKLXN0YXRpYyBib29sIGRlY29kZUltYWdlKEFyZ3VtZW50RGVjb2RlciYg
ZGVjb2RlciwgUmVmUHRyPEltYWdlPiYgaW1hZ2UpCitzdGF0aWMgYm9vbCBkZWNvZGVJbWFnZShE
ZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8SW1hZ2U+JiBpbWFnZSkKIHsKICAgICBTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZSBoYW5kbGU7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYW5kbGUpKQpA
QCAtODI5LDcgKzgyOSw3IEBAIHN0YXRpYyB2b2lkIGVuY29kZU9wdGlvbmFsSW1hZ2UoRW5jb2Rl
ciYgZW5jb2RlciwgSW1hZ2UqIGltYWdlKQogICAgICAgICBlbmNvZGVJbWFnZShlbmNvZGVyLCAq
aW1hZ2UpOwogfQogCi1zdGF0aWMgYm9vbCBkZWNvZGVPcHRpb25hbEltYWdlKEFyZ3VtZW50RGVj
b2RlciYgZGVjb2RlciwgUmVmUHRyPEltYWdlPiYgaW1hZ2UpCitzdGF0aWMgYm9vbCBkZWNvZGVP
cHRpb25hbEltYWdlKERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxJbWFnZT4mIGltYWdlKQogewog
ICAgIGltYWdlID0gbnVsbHB0cjsKIApAQCAtODY0LDcgKzg2NCw3IEBAIHZvaWQgQXJndW1lbnRD
b2RlcjxDdXJzb3I+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ3Vyc29yJiBjdXJz
b3IpCiAjZW5kaWYKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPEN1cnNvcj46OmRlY29kZShBcmd1
bWVudERlY29kZXImIGRlY29kZXIsIEN1cnNvciYgY3Vyc29yKQorYm9vbCBBcmd1bWVudENvZGVy
PEN1cnNvcj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBDdXJzb3ImIGN1cnNvcikKIHsKICAg
ICBDdXJzb3I6OlR5cGUgdHlwZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bSh0eXBlKSkK
QEAgLTkzMyw3ICs5MzMsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1ZXN0Pjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlc291cmNlUmVxdQogICAgIHJlc291cmNl
UmVxdWVzdC5lbmNvZGVXaXRob3V0UGxhdGZvcm1EYXRhKGVuY29kZXIpOwogfQogCi1ib29sIEFy
Z3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1ZXN0Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCitib29sIEFyZ3VtZW50Q29k
ZXI8UmVzb3VyY2VSZXF1ZXN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJlc291cmNlUmVx
dWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQogewogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcp
CiAgICAgU3RyaW5nIGNhY2hlUGFydGl0aW9uOwpAQCAtOTYxLDcgKzk2MSw3IEBAIHZvaWQgQXJn
dW1lbnRDb2RlcjxSZXNvdXJjZUVycm9yPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IFJlc291cmNlRXJyb3ImCiAgICAgZW5jb2RlUGxhdGZvcm1EYXRhKGVuY29kZXIsIHJlc291cmNl
RXJyb3IpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmRlY29kZShB
cmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IpCiti
b29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yKQogewogICAgIHJldHVybiBkZWNvZGVQbGF0
Zm9ybURhdGEoZGVjb2RlciwgcmVzb3VyY2VFcnJvcik7CiB9CkBAIC05ODQsNyArOTg0LDcgQEAg
dm9pZCBBcmd1bWVudENvZGVyPFNlbGVjdGlvblJlY3Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgU2VsZWN0aW9uUmVjdCYKICAgICBlbmNvZGVyIDw8IHNlbGVjdGlvblJlY3QuaXNI
b3Jpem9udGFsKCk7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxTZWxlY3Rpb25SZWN0Pjo6ZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgU2VsZWN0aW9uUmVjdCYgc2VsZWN0aW9uUmVj
dCkKK2Jvb2wgQXJndW1lbnRDb2RlcjxTZWxlY3Rpb25SZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIFNlbGVjdGlvblJlY3QmIHNlbGVjdGlvblJlY3QpCiB7CiAgICAgSW50UmVjdCByZWN0
OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVjdCkpCkBAIC0xMDU5LDcgKzEwNTksNyBAQCB2
b2lkIEFyZ3VtZW50Q29kZXI8V2luZG93RmVhdHVyZXM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgV2luZG93RmVhdHVyZQogICAgIGVuY29kZXIgPDwgd2luZG93RmVhdHVyZXMuZGlh
bG9nOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8V2luZG93RmVhdHVyZXM+OjpkZWNvZGUoQXJn
dW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXaW5kb3dGZWF0dXJlcyYgd2luZG93RmVhdHVyZXMpCiti
b29sIEFyZ3VtZW50Q29kZXI8V2luZG93RmVhdHVyZXM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgV2luZG93RmVhdHVyZXMmIHdpbmRvd0ZlYXR1cmVzKQogewogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUod2luZG93RmVhdHVyZXMueCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTExMDAs
NyArMTEwMCw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxDb2xvcj46OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBDb2xvciYgY29sb3IpCiAgICAgZW5jb2RlciA8PCBjb2xvci5yZ2IoKTsK
IH0KIAotYm9vbCBBcmd1bWVudENvZGVyPENvbG9yPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYg
ZGVjb2RlciwgQ29sb3ImIGNvbG9yKQorYm9vbCBBcmd1bWVudENvZGVyPENvbG9yPjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIENvbG9yJiBjb2xvcikKIHsKICAgICBib29sIGlzVmFsaWQ7CiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShpc1ZhbGlkKSkKQEAgLTExMjgsNyArMTEyOCw3IEBAIHZv
aWQgQXJndW1lbnRDb2RlcjxDb21wb3NpdGlvblVuZGVybGluZT46OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBDb21wb3NpCiAgICAgZW5jb2RlciA8PCB1bmRlcmxpbmUuY29sb3I7CiB9
CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxDb21wb3NpdGlvblVuZGVybGluZT46OmRlY29kZShBcmd1
bWVudERlY29kZXImIGRlY29kZXIsIENvbXBvc2l0aW9uVW5kZXJsaW5lJiB1bmRlcmxpbmUpCiti
b29sIEFyZ3VtZW50Q29kZXI8Q29tcG9zaXRpb25VbmRlcmxpbmU+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgQ29tcG9zaXRpb25VbmRlcmxpbmUmIHVuZGVybGluZSkKIHsKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHVuZGVybGluZS5zdGFydE9mZnNldCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTExNTUsNyArMTE1NSw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxDb29raWU+OjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ29va2llJiBjb29raWUpCiAgICAgZW5jb2RlciA8
PCBjb29raWUuc2Vzc2lvbjsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPENvb2tpZT46OmRlY29k
ZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIENvb2tpZSYgY29va2llKQorYm9vbCBBcmd1bWVu
dENvZGVyPENvb2tpZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBDb29raWUmIGNvb2tpZSkK
IHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvb2tpZS5uYW1lKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtMTE4Nyw3ICsxMTg3LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPERhdGFiYXNl
RGV0YWlscz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEYXRhYmFzZURldGEKICAg
ICBlbmNvZGVyIDw8IGRldGFpbHMubW9kaWZpY2F0aW9uVGltZSgpOwogfQogICAgIAotYm9vbCBB
cmd1bWVudENvZGVyPERhdGFiYXNlRGV0YWlscz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRl
Y29kZXIsIERhdGFiYXNlRGV0YWlscyYgZGV0YWlscykKK2Jvb2wgQXJndW1lbnRDb2RlcjxEYXRh
YmFzZURldGFpbHM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRGF0YWJhc2VEZXRhaWxzJiBk
ZXRhaWxzKQogewogICAgIFN0cmluZyBuYW1lOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUobmFt
ZSkpCkBAIC0xMjMxLDcgKzEyMzEsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8SGlnaGxpZ2h0Pjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEhpZ2hsaWdodCYgaGlnaGxpZwogICAgIGVu
Y29kZXIgPDwgaGlnaGxpZ2h0LnF1YWRzOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8SGlnaGxp
Z2h0Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgSGlnaGxpZ2h0JiBoaWdobGln
aHQpCitib29sIEFyZ3VtZW50Q29kZXI8SGlnaGxpZ2h0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIEhpZ2hsaWdodCYgaGlnaGxpZ2h0KQogewogICAgIHVpbnQzMl90IHR5cGU7CiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZSh0eXBlKSkKQEAgLTEyNjcsNyArMTI2Nyw3IEBAIHN0YXRpYyB2b2lk
IGVuY29kZVNoYXJlZEJ1ZmZlcihFbmNvZGVyJiBlbmNvZGVyLCBTaGFyZWRCdWZmZXIqIGJ1ZmZl
cikKICAgICB9CiB9CiAKLXN0YXRpYyBib29sIGRlY29kZVNoYXJlZEJ1ZmZlcihBcmd1bWVudERl
Y29kZXImIGRlY29kZXIsIFJlZlB0cjxTaGFyZWRCdWZmZXI+JiBidWZmZXIpCitzdGF0aWMgYm9v
bCBkZWNvZGVTaGFyZWRCdWZmZXIoRGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4mIGJ1ZmZlcikKIHsKICAgICB1aW50NjRfdCBidWZmZXJTaXplID0gMDsKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGJ1ZmZlclNpemUpKQpAQCAtMTMwMCw3ICsxMzAwLDcgQEAgdm9pZCBBcmd1
bWVudENvZGVyPFBhc3RlYm9hcmRXZWJDb250ZW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IFBhc3RlYm8KICAgICAgICAgZW5jb2RlU2hhcmVkQnVmZmVyKGVuY29kZXIsIGNvbnRl
bnQuY2xpZW50RGF0YVtpXS5nZXQoKSk7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxQYXN0ZWJv
YXJkV2ViQ29udGVudD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFBhc3RlYm9h
cmRXZWJDb250ZW50JiBjb250ZW50KQorYm9vbCBBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRXZWJD
b250ZW50Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFBhc3RlYm9hcmRXZWJDb250ZW50JiBj
b250ZW50KQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29udGVudC5jYW5TbWFydENvcHlP
ckRlbGV0ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEzMzQsNyArMTMzNCw3IEBAIHZv
aWQgQXJndW1lbnRDb2RlcjxQYXN0ZWJvYXJkSW1hZ2U+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgUGFzdGVib2FyZEltCiAgICAgICAgIGVuY29kZVNoYXJlZEJ1ZmZlcihlbmNvZGVy
LCBwYXN0ZWJvYXJkSW1hZ2UucmVzb3VyY2VEYXRhLmdldCgpKTsKIH0KIAotYm9vbCBBcmd1bWVu
dENvZGVyPFBhc3RlYm9hcmRJbWFnZT46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIs
IFBhc3RlYm9hcmRJbWFnZSYgcGFzdGVib2FyZEltYWdlKQorYm9vbCBBcmd1bWVudENvZGVyPFBh
c3RlYm9hcmRJbWFnZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBQYXN0ZWJvYXJkSW1hZ2Um
IHBhc3RlYm9hcmRJbWFnZSkKIHsKICAgICBpZiAoIWRlY29kZU9wdGlvbmFsSW1hZ2UoZGVjb2Rl
ciwgcGFzdGVib2FyZEltYWdlLmltYWdlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTM1
OCw3ICsxMzU4LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPERpY3RhdGlvbkFsdGVybmF0aXZlPjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IERpY3RhdGkKICAgICBlbmNvZGVyIDw8IGRp
Y3RhdGlvbkFsdGVybmF0aXZlLmRpY3RhdGlvbkNvbnRleHQ7CiB9CiAKLWJvb2wgQXJndW1lbnRD
b2RlcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29k
ZXIsIERpY3RhdGlvbkFsdGVybmF0aXZlJiBkaWN0YXRpb25BbHRlcm5hdGl2ZSkKK2Jvb2wgQXJn
dW1lbnRDb2RlcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBEaWN0YXRpb25BbHRlcm5hdGl2ZSYgZGljdGF0aW9uQWx0ZXJuYXRpdmUpCiB7CiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShkaWN0YXRpb25BbHRlcm5hdGl2ZS5yYW5nZVN0YXJ0KSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtMTM4MCw3ICsxMzgwLDcgQEAgdm9pZCBBcmd1bWVudENvZGVy
PEZpbGVDaG9vc2VyU2V0dGluZ3M+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmls
ZUNob28KICNlbmRpZgogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8RmlsZUNob29zZXJTZXR0aW5n
cz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEZpbGVDaG9vc2VyU2V0dGluZ3Mm
IHNldHRpbmdzKQorYm9vbCBBcmd1bWVudENvZGVyPEZpbGVDaG9vc2VyU2V0dGluZ3M+OjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgRmlsZUNob29zZXJTZXR0aW5ncyYgc2V0dGluZ3MpCiB7CiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShzZXR0aW5ncy5hbGxvd3NNdWx0aXBsZUZpbGVzKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTQwNSw3ICsxNDA1LDcgQEAgdm9pZCBBcmd1bWVudENv
ZGVyPEdyYW1tYXJEZXRhaWw+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgR3JhbW1h
ckRldGFpbCYKICAgICBlbmNvZGVyIDw8IGRldGFpbC51c2VyRGVzY3JpcHRpb247CiB9CiAKLWJv
b2wgQXJndW1lbnRDb2RlcjxHcmFtbWFyRGV0YWlsPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYg
ZGVjb2RlciwgR3JhbW1hckRldGFpbCYgZGV0YWlsKQorYm9vbCBBcmd1bWVudENvZGVyPEdyYW1t
YXJEZXRhaWw+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgR3JhbW1hckRldGFpbCYgZGV0YWls
KQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZGV0YWlsLmxvY2F0aW9uKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtMTQyNyw3ICsxNDI3LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFRl
eHRDaGVja2luZ1JlcXVlc3REYXRhPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRl
eHQKICAgICBlbmNvZGVyLmVuY29kZUVudW0ocmVxdWVzdC5wcm9jZXNzVHlwZSgpKTsKIH0KIAot
Ym9vbCBBcmd1bWVudENvZGVyPFRleHRDaGVja2luZ1JlcXVlc3REYXRhPjo6ZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYgZGVjb2RlciwgVGV4dENoZWNraW5nUmVxdWVzdERhdGEmIHJlcXVlc3QpCiti
b29sIEFyZ3VtZW50Q29kZXI8VGV4dENoZWNraW5nUmVxdWVzdERhdGE+OjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgVGV4dENoZWNraW5nUmVxdWVzdERhdGEmIHJlcXVlc3QpCiB7CiAgICAgaW50
IHNlcXVlbmNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2VxdWVuY2UpKQpAQCAtMTQ1OCw3
ICsxNDU4LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFRleHRDaGVja2luZ1Jlc3VsdD46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUZXh0Q2hlY2sKICAgICBlbmNvZGVyIDw8IHJlc3Vs
dC5yZXBsYWNlbWVudDsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPFRleHRDaGVja2luZ1Jlc3Vs
dD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFRleHRDaGVja2luZ1Jlc3VsdCYg
cmVzdWx0KQorYm9vbCBBcmd1bWVudENvZGVyPFRleHRDaGVja2luZ1Jlc3VsdD46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBUZXh0Q2hlY2tpbmdSZXN1bHQmIHJlc3VsdCkKIHsKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQudHlwZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
QEAgLTE0NzgsNyArMTQ3OCw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxVUkw+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgVVJMJiByZXN1bHQpCiAgICAgZW5jb2RlciA8PCByZXN1bHQu
c3RyaW5nKCk7CiB9CiAgICAgCi1ib29sIEFyZ3VtZW50Q29kZXI8VVJMPjo6ZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYgZGVjb2RlciwgVVJMJiByZXN1bHQpCitib29sIEFyZ3VtZW50Q29kZXI8VVJM
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFVSTCYgcmVzdWx0KQogewogICAgIFN0cmluZyB1
cmxBc1N0cmluZzsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHVybEFzU3RyaW5nKSkKQEAgLTE0
OTcsNyArMTQ5Nyw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxVc2VyU3R5bGVTaGVldD46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBVc2VyU3R5bGVTaGVlCiAgICAgZW5jb2Rlci5lbmNv
ZGVFbnVtKHVzZXJTdHlsZVNoZWV0LmxldmVsKCkpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8
VXNlclN0eWxlU2hlZXQ+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBVc2VyU3R5
bGVTaGVldCYgdXNlclN0eWxlU2hlZXQpCitib29sIEFyZ3VtZW50Q29kZXI8VXNlclN0eWxlU2hl
ZXQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVXNlclN0eWxlU2hlZXQmIHVzZXJTdHlsZVNo
ZWV0KQogewogICAgIFN0cmluZyBzb3VyY2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzb3Vy
Y2UpKQpAQCAtMTUzNiw3ICsxNTM2LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPE1lZGlhU2Vzc2lv
bk1ldGFkYXRhPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IE1lZGlhU2UKICAgICBl
bmNvZGVyIDw8IHJlc3VsdC5hcnR3b3JrVVJMKCk7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxN
ZWRpYVNlc3Npb25NZXRhZGF0YT46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIE1l
ZGlhU2Vzc2lvbk1ldGFkYXRhJiByZXN1bHQpCitib29sIEFyZ3VtZW50Q29kZXI8TWVkaWFTZXNz
aW9uTWV0YWRhdGE+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTWVkaWFTZXNzaW9uTWV0YWRh
dGEmIHJlc3VsdCkKIHsKICAgICBTdHJpbmcgYXJ0aXN0LCBhbGJ1bSwgdGl0bGU7CiAgICAgVVJM
IGFydHdvcmtVUkw7CkBAIC0xNTYzLDcgKzE1NjMsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8VXNl
clNjcmlwdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBVc2VyU2NyaXB0JiB1c2Vy
UwogICAgIGVuY29kZXIuZW5jb2RlRW51bSh1c2VyU2NyaXB0LmluamVjdGVkRnJhbWVzKCkpOwog
fQogCi1ib29sIEFyZ3VtZW50Q29kZXI8VXNlclNjcmlwdD46OmRlY29kZShBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIFVzZXJTY3JpcHQmIHVzZXJTY3JpcHQpCitib29sIEFyZ3VtZW50Q29kZXI8
VXNlclNjcmlwdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBVc2VyU2NyaXB0JiB1c2VyU2Ny
aXB0KQogewogICAgIFN0cmluZyBzb3VyY2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzb3Vy
Y2UpKQpAQCAtMTYwNSw3ICsxNjA1LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFNjcm9sbGFibGVB
cmVhUGFyYW1ldGVycz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTY3IKICAgICBl
bmNvZGVyIDw8IHBhcmFtZXRlcnMuaGFzRW5hYmxlZFZlcnRpY2FsU2Nyb2xsYmFyOwogfQogCi1i
b29sIEFyZ3VtZW50Q29kZXI8U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzPjo6ZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYgZGVjb2RlciwgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzJiBwYXJhbXMpCiti
b29sIEFyZ3VtZW50Q29kZXI8U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzPjo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIsIFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyYgcGFyYW1zKQogewogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGVFbnVtKHBhcmFtcy5ob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE2MzQsNyArMTYzNCw3IEBAIHZvaWQgQXJndW1l
bnRDb2RlcjxGaXhlZFBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50cz46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjCiAgICAgZW5jb2RlciA8PCB2aWV3cG9ydENvbnN0cmFpbnRzLmxheWVyUG9z
aXRpb25BdExhc3RMYXlvdXQoKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPEZpeGVkUG9zaXRp
b25WaWV3cG9ydENvbnN0cmFpbnRzPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwg
Rml4ZWRQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHMmIHZpZXdwb3J0Q29uc3RyYWludHMpCiti
b29sIEFyZ3VtZW50Q29kZXI8Rml4ZWRQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM+OjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgRml4ZWRQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHMmIHZp
ZXdwb3J0Q29uc3RyYWludHMpCiB7CiAgICAgRmxvYXRTaXplIGFsaWdubWVudE9mZnNldDsKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGFsaWdubWVudE9mZnNldCkpCkBAIC0xNjgwLDcgKzE2ODAs
NyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8U3RpY2t5UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRz
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsCiAgICAgZW5jb2RlciA8PCB2aWV3cG9ydENvbnN0
cmFpbnRzLmxheWVyUG9zaXRpb25BdExhc3RMYXlvdXQoKTsKIH0KIAotYm9vbCBBcmd1bWVudENv
ZGVyPFN0aWNreVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50cz46OmRlY29kZShBcmd1bWVudERl
Y29kZXImIGRlY29kZXIsIFN0aWNreVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50cyYgdmlld3Bv
cnRDb25zdHJhaW50cykKK2Jvb2wgQXJndW1lbnRDb2RlcjxTdGlja3lQb3NpdGlvblZpZXdwb3J0
Q29uc3RyYWludHM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU3RpY2t5UG9zaXRpb25WaWV3
cG9ydENvbnN0cmFpbnRzJiB2aWV3cG9ydENvbnN0cmFpbnRzKQogewogICAgIEZsb2F0U2l6ZSBh
bGlnbm1lbnRPZmZzZXQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShhbGlnbm1lbnRPZmZzZXQp
KQpAQCAtMTc4NSw3ICsxNzg1LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPEZpbHRlck9wZXJhdGlv
bj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGaWx0ZXJPcGVyYXQKICAgICB9CiB9
CiAKLWJvb2wgZGVjb2RlRmlsdGVyT3BlcmF0aW9uKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwg
UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4mIGZpbHRlcikKK2Jvb2wgZGVjb2RlRmlsdGVyT3BlcmF0
aW9uKERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+JiBmaWx0ZXIpCiB7
CiAgICAgRmlsdGVyT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHR5cGU7CiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZUVudW0odHlwZSkpCkBAIC0xODYxLDcgKzE4NjEsNyBAQCB2b2lkIEFyZ3VtZW50
Q29kZXI8RmlsdGVyT3BlcmF0aW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBG
aWx0ZXJPcGVyYQogICAgICAgICBlbmNvZGVyIDw8ICpmaWx0ZXI7CiB9CiAKLWJvb2wgQXJndW1l
bnRDb2RlcjxGaWx0ZXJPcGVyYXRpb25zPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgRmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVycykKK2Jvb2wgQXJndW1lbnRDb2RlcjxGaWx0ZXJP
cGVyYXRpb25zPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZpbHRlck9wZXJhdGlvbnMmIGZp
bHRlcnMpCiB7CiAgICAgdWludDY0X3QgZmlsdGVyQ291bnQ7CiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShmaWx0ZXJDb3VudCkpCkBAIC0xODgzLDcgKzE4ODMsNyBAQCB2b2lkIEFyZ3VtZW50Q29k
ZXI8U2Vzc2lvbklEPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNlc3Npb25JRCYg
c2Vzc2lvbgogICAgIGVuY29kZXIgPDwgc2Vzc2lvbklELnNlc3Npb25JRCgpOwogfQogCi1ib29s
IEFyZ3VtZW50Q29kZXI8U2Vzc2lvbklEPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgU2Vzc2lvbklEJiBzZXNzaW9uSUQpCitib29sIEFyZ3VtZW50Q29kZXI8U2Vzc2lvbklEPjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNlc3Npb25JRCYgc2Vzc2lvbklEKQogewogICAgIHVp
bnQ2NF90IHNlc3Npb247CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzZXNzaW9uKSkKQEAgLTE5
MDcsNyArMTkwNyw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxCbG9iUGFydD46OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBCbG9iUGFydCYgYmxvYlBhcnQpCiAgICAgfQogfQogCi1ib29s
IEFyZ3VtZW50Q29kZXI8QmxvYlBhcnQ+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBCbG9iUGFydCYgYmxvYlBhcnQpCitib29sIEFyZ3VtZW50Q29kZXI8QmxvYlBhcnQ+OjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgQmxvYlBhcnQmIGJsb2JQYXJ0KQogewogICAgIHVpbnQzMl90
IHR5cGU7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0eXBlKSkKQEAgLTE5NDgsNyArMTk0OCw3
IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxUZXh0SW5kaWNhdG9yRGF0YT46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBUZXh0SW5kaWNhCiAgICAgZW5jb2RlT3B0aW9uYWxJbWFnZShlbmNv
ZGVyLCB0ZXh0SW5kaWNhdG9yRGF0YS5jb250ZW50SW1hZ2VXaXRoSGlnaGxpZ2h0LmdldCgpKTsK
IH0KIAotYm9vbCBBcmd1bWVudENvZGVyPFRleHRJbmRpY2F0b3JEYXRhPjo6ZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYgZGVjb2RlciwgVGV4dEluZGljYXRvckRhdGEmIHRleHRJbmRpY2F0b3JEYXRh
KQorYm9vbCBBcmd1bWVudENvZGVyPFRleHRJbmRpY2F0b3JEYXRhPjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFRleHRJbmRpY2F0b3JEYXRhJiB0ZXh0SW5kaWNhdG9yRGF0YSkKIHsKICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHRleHRJbmRpY2F0b3JEYXRhLnNlbGVjdGlvblJlY3RJblJvb3RW
aWV3Q29vcmRpbmF0ZXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xOTk4LDcgKzE5OTgs
NyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ+OjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTQogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8
aW50MzJfdD4odGFyZ2V0Lm1vY2tTdGF0ZSgpKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPE1l
ZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQmIHRhcmdldCkKK2Jvb2wgQXJndW1lbnRDb2Rl
cjxNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBN
ZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYgdGFyZ2V0KQogewogICAgIGJvb2wgaGFzUGxhdGZv
cm1EYXRhOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzUGxhdGZvcm1EYXRhKSkKQEAgLTIw
NDQsNyArMjA0NCw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxEaWN0aW9uYXJ5UG9wdXBJbmZvPjo6
ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlciwgY29uc3QgRGljCiAjZW5kaWYKIH0KIAotYm9v
bCBBcmd1bWVudENvZGVyPERpY3Rpb25hcnlQb3B1cEluZm8+OjpkZWNvZGUoSVBDOjpBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIERpY3Rpb25hcnlQb3B1cEluZm8mIHJlc3VsdCkKK2Jvb2wgQXJn
dW1lbnRDb2RlcjxEaWN0aW9uYXJ5UG9wdXBJbmZvPjo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVj
b2RlciwgRGljdGlvbmFyeVBvcHVwSW5mbyYgcmVzdWx0KQogewogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocmVzdWx0Lm9yaWdpbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTIwODIsNyAr
MjA4Miw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxFeGNlcHRpb25EZXRhaWxzPjo6ZW5jb2RlKElQ
Qzo6RW5jb2RlciYgZW5jb2RlciwgY29uc3QgRXhjZXB0CiAgICAgZW5jb2RlciA8PCBpbmZvLnNv
dXJjZVVSTDsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPEV4Y2VwdGlvbkRldGFpbHM+OjpkZWNv
ZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEV4Y2VwdGlvbkRldGFpbHMmIHJlc3Vs
dCkKK2Jvb2wgQXJndW1lbnRDb2RlcjxFeGNlcHRpb25EZXRhaWxzPjo6ZGVjb2RlKElQQzo6RGVj
b2RlciYgZGVjb2RlciwgRXhjZXB0aW9uRGV0YWlscyYgcmVzdWx0KQogewogICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocmVzdWx0Lm1lc3NhZ2UpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0y
MTM3LDcgKzIxMzcsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VMb2FkU3RhdGlzdGlj
cz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDbwogICAgIGVuY29kZXIgPDwg
c3RhdGlzdGljcy5pc1ByZXZhbGVudFJlc291cmNlOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8
UmVzb3VyY2VMb2FkU3RhdGlzdGljcz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIs
IFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3MmIHN0YXRpc3RpY3MpCitib29sIEFyZ3Vt
ZW50Q29kZXI8UmVzb3VyY2VMb2FkU3RhdGlzdGljcz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiBzdGF0aXN0aWNzKQogewogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoc3RhdGlzdGljcy5oaWdoTGV2ZWxEb21haW4pKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgKaW5kZXggNzIyNmRiZjUwZDI1MjA3NmZkNWUwZDNhMmFiMGRiYTkxZDUyNzAyZS4uM2Rj
MGUzZWUzNGQ0OGM1YTM5YTExM2ViODNjMzRiM2EzMTYyNWQzMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMTMxLDM5OSArMTMxLDM5OSBA
QCBuYW1lc3BhY2UgSVBDIHsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpBZmZpbmVUcmFuc2Zvcm0+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYs
IGNvbnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYpOwotICAgIHN0YXRpYyBib29sIGRlY29k
ZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mKTsKKyAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYpOwogfTsK
IAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpFdmVudFRyYWNraW5n
UmVnaW9ucz4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6RXZlbnRUcmFja2luZ1JlZ2lvbnMmKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1l
bnREZWNvZGVyJiwgV2ViQ29yZTo6RXZlbnRUcmFja2luZ1JlZ2lvbnMmKTsKKyAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdSZWdpb25zJik7CiB9
OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlRyYW5zZm9ybWF0
aW9uTWF0cml4PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJD
b3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1
bWVudERlY29kZXImLCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOworICAgIHN0YXRp
YyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKTsK
IH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6TGluZWFyVGlt
aW5nRnVuY3Rpb24+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdl
YkNvcmU6OkxpbmVhclRpbWluZ0Z1bmN0aW9uJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkxpbmVhclRpbWluZ0Z1bmN0aW9uJik7CisgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpMaW5lYXJUaW1pbmdGdW5jdGlvbiYp
OwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDdWJpY0Jl
emllclRpbWluZ0Z1bmN0aW9uPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uJik7Ci0gICAgc3RhdGljIGJv
b2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkN1YmljQmV6aWVyVGltaW5nRnVu
Y3Rpb24mKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkN1Ymlj
QmV6aWVyVGltaW5nRnVuY3Rpb24mKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6U3RlcHNUaW1pbmdGdW5jdGlvbj4gewogICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6U3RlcHNUaW1pbmdGdW5jdGlvbiYpOwotICAg
IHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpTdGVwc1RpbWlu
Z0Z1bmN0aW9uJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpT
dGVwc1RpbWluZ0Z1bmN0aW9uJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OlNwcmluZ1RpbWluZ0Z1bmN0aW9uPiB7CiAgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpTcHJpbmdUaW1pbmdGdW5jdGlvbiYpOwotICAg
IHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpTcHJpbmdUaW1p
bmdGdW5jdGlvbiYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6
U3ByaW5nVGltaW5nRnVuY3Rpb24mKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKTsKLSAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJik7
CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUlu
Zm8mKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Rmxv
YXRQb2ludD4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIm
LCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXIm
LCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OkZsb2F0UG9pbnQzRD4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShF
bmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludDNEJik7Ci0gICAgc3RhdGljIGJvb2wg
ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOworICAgIHN0
YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRQb2ludDNEJik7CiB9Owog
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0UmVjdD4gewog
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
Jik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkZs
b2F0UmVjdCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6Rmxv
YXRSZWN0Jik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkZsb2F0U2l6ZT4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciYsIFdlYkNvcmU6OkZsb2F0U2l6ZSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVy
JiwgV2ViQ29yZTo6RmxvYXRTaXplJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3QmKTsKLSAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVj
dCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRSb3Vu
ZGVkUmVjdCYpOwogfTsKIAogI2lmIFBMQVRGT1JNKElPUykKIHRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRRdWFkPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFF1YWQmKTsKLSAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRRdWFkJik7CisgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpGbG9hdFF1YWQmKTsKIH07CiAKIHRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM+IHsK
ICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0
QXJndW1lbnRzJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdl
YkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29k
ZXImLCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpOwogfTsKICNlbmRpZiAvLyBQTEFURk9S
TShJT1MpCiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW50UG9p
bnQ+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50Jik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNv
cmU6OkludFBvaW50Jik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3Jl
OjpJbnRQb2ludCYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpJbnRSZWN0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciYsIFdlYkNvcmU6OkludFJlY3QmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYs
IFdlYkNvcmU6OkludFJlY3QmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6SW50U2l6ZT4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVu
dERlY29kZXImLCBXZWJDb3JlOjpJbnRTaXplJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERl
Y29kZXImLCBXZWJDb3JlOjpJbnRTaXplJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlBhdGg+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OlBhdGgmKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1l
bnREZWNvZGVyJiwgV2ViQ29yZTo6UGF0aCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNv
ZGVyJiwgV2ViQ29yZTo6UGF0aCYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpSZWdpb24+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYs
IGNvbnN0IFdlYkNvcmU6OlJlZ2lvbiYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVu
dERlY29kZXImLCBXZWJDb3JlOjpSZWdpb24mKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVj
b2RlciYsIFdlYkNvcmU6OlJlZ2lvbiYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpMZW5ndGg+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6Okxlbmd0aCYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1
bWVudERlY29kZXImLCBXZWJDb3JlOjpMZW5ndGgmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFdlYkNvcmU6Okxlbmd0aCYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXM+IHsKICAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpOwot
ICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpWaWV3cG9y
dEF0dHJpYnV0ZXMmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6
OlZpZXdwb3J0QXR0cmlidXRlcyYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpNaW1lQ2xhc3NJbmZvPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImLCBjb25zdCBXZWJDb3JlOjpNaW1lQ2xhc3NJbmZvJik7Ci0gICAgc3RhdGljIGJvb2wg
ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6Ok1pbWVDbGFzc0luZm8mKTsKKyAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6Ok1pbWVDbGFzc0luZm8mKTsKIH07
CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGx1Z2luSW5mbz4g
ewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UGx1Z2lu
SW5mbyYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3Jl
OjpQbHVnaW5JbmZvJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3Jl
OjpQbHVnaW5JbmZvJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwotICAg
IHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29y
ZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlPiB7CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmKTsKLSAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6UHJvdGVjdGlvblNw
YWNlJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2UmKTsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYs
IGNvbnN0IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYpOwotICAgIHN0YXRpYyBib29sIGRlY29k
ZVBsYXRmb3JtRGF0YShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2Um
KTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYsIFdlYkNvcmU6
OlByb3RlY3Rpb25TcGFjZSYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpDcmVkZW50aWFsPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkNyZWRlbnRpYWwmKTsKKyAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkNyZWRlbnRpYWwmKTsKICAgICBzdGF0aWMgdm9pZCBl
bmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNyZWRlbnRpYWwmKTsK
LSAgICBzdGF0aWMgYm9vbCBkZWNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnREZWNvZGVyJiwgV2Vi
Q29yZTo6Q3JlZGVudGlhbCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZVBsYXRmb3JtRGF0YShE
ZWNvZGVyJiwgV2ViQ29yZTo6Q3JlZGVudGlhbCYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDdXJzb3I+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpOwotICAgIHN0YXRpYyBib29sIGRlY29k
ZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpDdXJzb3ImKTsKKyAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkN1cnNvciYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q+IHsKICAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwot
ICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYpOwogICAgIHN0YXRpYyB2b2lkIGVuY29kZVBsYXRmb3JtRGF0YShFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgc3RhdGljIGJvb2wg
ZGVjb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OlJlc291cmNlRXJyb3I+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKLSAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAg
IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwog
ICAgIHN0YXRpYyB2b2lkIGVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZVBsYXRmb3JtRGF0YShB
cmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisgICAgc3RhdGljIGJv
b2wgZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7
CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OldpbmRvd0Zl
YXR1cmVzPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpXaW5kb3dGZWF0dXJlcyYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29k
ZXImLCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShE
ZWNvZGVyJiwgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q29sb3I+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7Ci0gICAgc3RhdGljIGJvb2wgZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkNvbG9yJik7CisgICAgc3RhdGljIGJvb2wg
ZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpDb2xvciYpOwogfTsKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpNYWNoU2VuZFJp
Z2h0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpN
YWNoU2VuZFJpZ2h0Jik7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBXZWJDb3Jl
OjpNYWNoU2VuZFJpZ2h0JiYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29k
ZXImLCBXZWJDb3JlOjpNYWNoU2VuZFJpZ2h0Jik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERl
Y29kZXImLCBXZWJDb3JlOjpNYWNoU2VuZFJpZ2h0Jik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gewogICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kJik7Ci0g
ICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OktleXByZXNz
Q29tbWFuZCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6S2V5
cHJlc3NDb21tYW5kJik7CiB9OwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCiB0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNlbGVjdGlvblJlY3Q+IHsKICAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlNlbGVjdGlvblJlY3Qm
KTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6U2Vs
ZWN0aW9uUmVjdCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6
U2VsZWN0aW9uUmVjdCYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpIaWdobGlnaHQ+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OkhpZ2hsaWdodCYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVu
dERlY29kZXImLCBXZWJDb3JlOjpIaWdobGlnaHQmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFdlYkNvcmU6OkhpZ2hsaWdodCYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudD4gewogICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRl
bnQmKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6
UGFzdGVib2FyZFdlYkNvbnRlbnQmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYs
IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50Jik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBhc3RlYm9hcmRJbWFnZT4gewogICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZEltYWdlJik7Ci0g
ICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlBhc3RlYm9h
cmRJbWFnZSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UGFz
dGVib2FyZEltYWdlJik7CiB9OwogI2VuZGlmCiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+IHsKICAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lJik7Ci0g
ICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkNvbXBvc2l0
aW9uVW5kZXJsaW5lJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3Jl
OjpDb21wb3NpdGlvblVuZGVybGluZSYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpDb29raWU+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1
bWVudERlY29kZXImLCBXZWJDb3JlOjpDb29raWUmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFdlYkNvcmU6OkNvb2tpZSYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpEYXRhYmFzZURldGFpbHM+IHsKICAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlscyYpOwotICAgIHN0
YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpEYXRhYmFzZURldGFp
bHMmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkRhdGFiYXNl
RGV0YWlscyYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpEaWN0YXRpb25BbHRlcm5hdGl2ZT4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVy
JiwgY29uc3QgV2ViQ29yZTo6RGljdGF0aW9uQWx0ZXJuYXRpdmUmKTsKLSAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6RGljdGF0aW9uQWx0ZXJuYXRpdmUm
KTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkRpY3RhdGlvbkFs
dGVybmF0aXZlJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OkZpbGVDaG9vc2VyU2V0dGluZ3M+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MmKTsKLSAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5ncyYp
OworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6RmlsZUNob29zZXJT
ZXR0aW5ncyYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpHcmFtbWFyRGV0YWlsPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25z
dCBXZWJDb3JlOjpHcmFtbWFyRGV0YWlsJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYsIFdlYkNvcmU6OkdyYW1tYXJEZXRhaWwmKTsKKyAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkdyYW1tYXJEZXRhaWwmKTsKIH07CiAKIHRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdERhdGE+
IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRleHRD
aGVja2luZ1JlcXVlc3REYXRhJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYsIFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3REYXRhJik7CisgICAgc3RhdGljIGJv
b2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YSYpOwog
fTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUZXh0Q2hlY2tp
bmdSZXN1bHQ+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNv
cmU6OlRleHRDaGVja2luZ1Jlc3VsdCYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVu
dERlY29kZXImLCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQmKTsKKyAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdCYpOwogfTsKICAg
ICAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VVJMPiB7CiAgICAg
c3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpVUkwmKTsKLSAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6VVJMJik7CisgICAg
c3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpVUkwmKTsKIH07CiAKIHRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VXNlclN0eWxlU2hlZXQ+IHsKICAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlVzZXJTdHlsZVNo
ZWV0Jik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6
OlVzZXJTdHlsZVNoZWV0Jik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJD
b3JlOjpVc2VyU3R5bGVTaGVldCYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpVc2VyU2NyaXB0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpVc2VyU2NyaXB0Jik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlVzZXJTY3JpcHQmKTsKKyAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlVzZXJTY3JpcHQmKTsKIH07CiAKIHRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJz
PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpTY3Jv
bGxhYmxlQXJlYVBhcmFtZXRlcnMmKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiwgV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzJik7CisgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMm
KTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Rml4ZWRQ
b3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYsIGNvbnN0IFdlYkNvcmU6OkZpeGVkUG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzJik7
Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkZpeGVk
UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERl
Y29kZXImLCBXZWJDb3JlOjpGaXhlZFBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50cyYpOwogfTsK
IAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTdGlja3lQb3NpdGlv
blZpZXdwb3J0Q29uc3RyYWludHM+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYs
IGNvbnN0IFdlYkNvcmU6OlN0aWNreVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50cyYpOwotICAg
IHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpTdGlja3lQb3Np
dGlvblZpZXdwb3J0Q29uc3RyYWludHMmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2Rl
ciYsIFdlYkNvcmU6OlN0aWNreVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50cyYpOwogfTsKIAog
I2lmICFVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnM+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMmKTsKLSAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9u
cyYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6RmlsdGVyT3Bl
cmF0aW9ucyYpOwogfTsKICAgICAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6RmlsdGVyT3BlcmF0aW9uPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb24mKTsKIH07Ci1ib29sIGRlY29kZUZpbHRl
ck9wZXJhdGlvbihBcmd1bWVudERlY29kZXImLCBSZWZQdHI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0
aW9uPiYpOworYm9vbCBkZWNvZGVGaWx0ZXJPcGVyYXRpb24oRGVjb2RlciYsIFJlZlB0cjxXZWJD
b3JlOjpGaWx0ZXJPcGVyYXRpb24+Jik7CiAjZW5kaWYKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpTZXNzaW9uSUQ+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCYpOwotICAgIHN0YXRpYyBib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpTZXNzaW9uSUQmKTsKKyAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlNlc3Npb25JRCYpOwogfTsKIAogdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpCbG9iUGFydD4gewogICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6QmxvYlBhcnQmKTsKLSAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6QmxvYlBhcnQmKTsK
KyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkJsb2JQYXJ0Jik7CiB9
OwogCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXI+IHsKICAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJV
bmJsb2NrSGFuZGxlciYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIm
LCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImKTsKKyAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYp
OwogfTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiB0ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1ldGFkYXRhPiB7CiAgICAg
c3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpNZWRpYVNlc3Npb25N
ZXRhZGF0YSYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJD
b3JlOjpNZWRpYVNlc3Npb25NZXRhZGF0YSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNv
ZGVyJiwgV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWV0YWRhdGEmKTsKIH07CiAjZW5kaWYKIAogdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YT4g
ewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VGV4dElu
ZGljYXRvckRhdGEmKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwg
V2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVj
b2RlciYsIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1cEluZm8+IHsKICAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkRpY3Rpb25hcnlQb3B1
cEluZm8mKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29y
ZTo6RGljdGlvbmFyeVBvcHVwSW5mbyYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVy
JiwgV2ViQ29yZTo6RGljdGlvbmFyeVBvcHVwSW5mbyYpOwogfTsKIAogI2lmIEVOQUJMRShXSVJF
TEVTU19QTEFZQkFDS19UQVJHRVQpCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYp
OwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpNZWRp
YVBsYXliYWNrVGFyZ2V0Q29udGV4dCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVy
JiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQmKTsKICAgICBzdGF0aWMgdm9p
ZCBlbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhUGxheWJh
Y2tUYXJnZXRDb250ZXh0Jik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlUGxhdGZvcm1EYXRhKEFy
Z3VtZW50RGVjb2RlciYsIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0Jik7Cisg
ICAgc3RhdGljIGJvb2wgZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImLCBXZWJDb3JlOjpNZWRp
YVBsYXliYWNrVGFyZ2V0Q29udGV4dCYpOwogfTsKICNlbmRpZgogCiB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlJlY2VudFNlYXJjaD4gewogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UmVjZW50U2VhcmNoJik7Ci0gICAgc3Rh
dGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlJlY2VudFNlYXJjaCYp
OworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UmVjZW50U2VhcmNo
Jik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkV4Y2Vw
dGlvbkRldGFpbHM+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdl
YkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMmKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1l
bnREZWNvZGVyJiwgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYpOworICAgIHN0YXRpYyBib29s
IGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYpOwogfTsKIAogdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50
RGVjb2RlciYsIFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsKKyAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsK
IH07CiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OlBheW1lbnQ+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OlBheW1lbnQmKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJn
dW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6UGF5bWVudCYpOworICAgIHN0YXRpYyBib29sIGRlY29k
ZShEZWNvZGVyJiwgV2ViQ29yZTo6UGF5bWVudCYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50Q29udGFjdD4gewogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UGF5bWVudENvbnRhY3QmKTsKLSAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6UGF5bWVudENvbnRh
Y3QmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlBheW1lbnRD
b250YWN0Jik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlBheW1lbnRNZXJjaGFudFNlc3Npb24+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24mKTsKLSAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6UGF5bWVudE1lcmNoYW50U2Vz
c2lvbiYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UGF5bWVu
dE1lcmNoYW50U2Vzc2lvbiYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpQYXltZW50TWV0aG9kPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0aG9kJik7Ci0gICAgc3RhdGljIGJvb2wgZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlBheW1lbnRNZXRob2QmKTsKKyAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlBheW1lbnRNZXRob2QmKTsKIH07CiAK
IHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q+
IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlBheW1l
bnRSZXF1ZXN0Jik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdl
YkNvcmU6OlBheW1lbnRSZXF1ZXN0Jik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXIm
LCBXZWJDb3JlOjpQYXltZW50UmVxdWVzdCYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50UmVxdWVzdDo6Q29udGFjdEZpZWxkcz4gewogICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UGF5bWVudFJlcXVl
c3Q6OkNvbnRhY3RGaWVsZHMmKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNv
ZGVyJiwgV2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OkNvbnRhY3RGaWVsZHMmKTsKKyAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpDb250YWN0
RmllbGRzJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlBheW1lbnRSZXF1ZXN0OjpMaW5lSXRlbT4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OkxpbmVJdGVtJik7Ci0gICAgc3Rh
dGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0
OjpMaW5lSXRlbSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6
UGF5bWVudFJlcXVlc3Q6OkxpbmVJdGVtJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpNZXJjaGFudENhcGFiaWxpdGllcz4g
ewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UGF5bWVu
dFJlcXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpNZXJjaGFudENhcGFi
aWxpdGllcyYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UGF5
bWVudFJlcXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhv
ZD4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UGF5
bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYp
OworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UGF5bWVudFJlcXVl
c3Q6OlNoaXBwaW5nTWV0aG9kJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcz4gewogICAgIHN0
YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6
OlRvdGFsQW5kTGluZUl0ZW1zJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYsIFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcyYpOworICAg
IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OlRv
dGFsQW5kTGluZUl0ZW1zJik7CiB9OwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQu
Y3BwCmluZGV4IDdiNDRmZmQ5MDY5NjZmZTQ0MGY5NjQyZGUwYzQ5YjNhOGUzZTI2ZDcuLjUwN2Jj
MTY2Mjg5ZWQ1ZTI2MjQ2ZmI5YzViN2U3MDdlODAyZDE5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkV2ZW50LmNwcApAQCAtMjYsOCArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIldlYkV2ZW50LmgiCiAKLSNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKLSNpbmNsdWRl
ICJBcmd1bWVudHMuaCIKKyNpbmNsdWRlICJEZWNvZGVyLmgiCiAjaW5jbHVkZSAiRW5jb2Rlci5o
IgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTUzLDcgKzUyLDcgQEAgdm9pZCBXZWJFdmVudDo6
ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1fdGlt
ZXN0YW1wOwogfQogCi1ib29sIFdlYkV2ZW50OjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXIm
IGRlY29kZXIsIFdlYkV2ZW50JiByZXN1bHQpCitib29sIFdlYkV2ZW50OjpkZWNvZGUoSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBXZWJFdmVudCYgcmVzdWx0KQogewogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocmVzdWx0Lm1fdHlwZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkV2ZW50LmgKaW5kZXggYzYwZWM0YzBjMjhkODc0NjlkMjNhOTkyMWZiNDViMzAyNTRhZGRk
OS4uOThkZjY3MTc5YTMyMzg4ODAzNDBhNDJhOTRmNDhjZDNmMjdiN2QxZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkV2ZW50LmgKQEAgLTM3LDggKzM3LDggQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIElQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwot
ICAgIGNsYXNzIEVuY29kZXI7CitjbGFzcyBEZWNvZGVyOworY2xhc3MgRW5jb2RlcjsKIH0KIAog
I2lmIFVTRShBUFBLSVQpCkBAIC0xMTIsNyArMTEyLDcgQEAgcHJvdGVjdGVkOgogICAgIFdlYkV2
ZW50KFR5cGUsIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CiAKICAgICB2b2lkIGVuY29k
ZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1
bWVudERlY29kZXImLCBXZWJFdmVudCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRl
Y29kZXImLCBXZWJFdmVudCYpOwogCiBwcml2YXRlOgogICAgIHVpbnQzMl90IG1fdHlwZTsgLy8g
VHlwZQpAQCAtMTU1LDcgKzE1NSw3IEBAIHB1YmxpYzoKICAgICBTeW50aGV0aWNDbGlja1R5cGUg
c3ludGhldGljQ2xpY2tUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U3ludGhldGlj
Q2xpY2tUeXBlPihtX3N5bnRoZXRpY0NsaWNrVHlwZSk7IH0KIAogICAgIHZvaWQgZW5jb2RlKElQ
Qzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50
RGVjb2RlciYsIFdlYk1vdXNlRXZlbnQmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpE
ZWNvZGVyJiwgV2ViTW91c2VFdmVudCYpOwogCiBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIGlz
TW91c2VFdmVudFR5cGUoVHlwZSk7CkBAIC0yMTcsNyArMjE3LDcgQEAgcHVibGljOgogI2VuZGlm
CiAKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBXZWJXaGVlbEV2ZW50Jik7CisgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYldoZWVsRXZlbnQmKTsKIAogcHJpdmF0
ZToKICAgICBzdGF0aWMgYm9vbCBpc1doZWVsRXZlbnRUeXBlKFR5cGUpOwpAQCAtMjcwLDcgKzI3
MCw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzU3lzdGVtS2V5KCkgY29uc3QgeyByZXR1cm4gbV9p
c1N5c3RlbUtleTsgfQogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0g
ICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgV2ViS2V5Ym9hcmRF
dmVudCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJLZXlib2Fy
ZEV2ZW50Jik7CiAKICAgICBzdGF0aWMgYm9vbCBpc0tleWJvYXJkRXZlbnRUeXBlKFR5cGUpOwog
CkBAIC0zMjUsNyArMzI1LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIGVuY29kZShJ
UEM6OkVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVu
dERlY29kZXImLCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoSVBDOjpEZWNvZGVyJiwgV2ViUGxhdGZvcm1Ub3VjaFBvaW50Jik7CiAKIHByaXZhdGU6CiAg
ICAgdW5zaWduZWQgbV9pZGVudGlmaWVyOwpAQCAtMzY4LDcgKzM2OCw3IEBAIHB1YmxpYzoKICAg
ICBib29sIGFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQoKSBjb25zdDsKIAogICAgIHZvaWQgZW5j
b2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFy
Z3VtZW50RGVjb2RlciYsIFdlYlRvdWNoRXZlbnQmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
SVBDOjpEZWNvZGVyJiwgV2ViVG91Y2hFdmVudCYpOwogICAgIAogcHJpdmF0ZToKICAgICBWZWN0
b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiBtX3RvdWNoUG9pbnRzOwpAQCAtNDEyLDcgKzQxMiw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFN0YXRlKFRvdWNoUG9pbnRTdGF0ZSBzdGF0ZSkgeyBt
X3N0YXRlID0gc3RhdGU7IH0KIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0
OwotICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFdlYlBsYXRm
b3JtVG91Y2hQb2ludCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBX
ZWJQbGF0Zm9ybVRvdWNoUG9pbnQmKTsKIAogcHJpdmF0ZToKICAgICB1aW50MzJfdCBtX2lkOwpA
QCAtNDM1LDcgKzQzNSw3IEBAIHB1YmxpYzoKICAgICBib29sIGFsbFRvdWNoUG9pbnRzQXJlUmVs
ZWFzZWQoKSBjb25zdDsKIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0Owot
ICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFdlYlRvdWNoRXZl
bnQmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViVG91Y2hFdmVu
dCYpOwogICAKIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgaXNUb3VjaEV2ZW50VHlwZShUeXBl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNw
cAppbmRleCBjZDk5Y2MxNmU1MzI4N2FjYzNiZWVjMjYxY2NjYTg5MmQ5MDEzMWU5Li5iYmY5ZmE1
NGNhM2M4MzYzZGRlNTUwYjM4Y2IxN2ZmODhhZmE5ZGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCkBAIC01NSw3ICs1NSw3IEBAIHZv
aWQgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5j
b2RlcikgY29uc3QKICAgICBJUEM6OlNpbXBsZUFyZ3VtZW50Q29kZXI8V2ViR2VvbG9jYXRpb25Q
b3NpdGlvbjo6RGF0YT46OmVuY29kZShlbmNvZGVyLCAqdGhpcyk7CiB9CiAKLWJvb2wgV2ViR2Vv
bG9jYXRpb25Qb3NpdGlvbjo6RGF0YTo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNv
ZGVyLCBEYXRhJiBkYXRhKQorYm9vbCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhOjpkZWNv
ZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBEYXRhJiBkYXRhKQogewogICAgIHJldHVybiBJUEM6
OlNpbXBsZUFyZ3VtZW50Q29kZXI8V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YT46OmRlY29k
ZShkZWNvZGVyLCBkYXRhKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJHZW9sb2NhdGlvblBvc2l0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9j
YXRpb25Qb3NpdGlvbi5oCmluZGV4IDQzYzEyY2IzMTI0Zjg0NGVlMTVmYTg1YmI2NzQ4ZmU5MzU2
ODA2NDEuLmY0ODE1ZTY1M2NiYzdhOWZiYmE4ZTA4MDhlYWJkNTc3OTI0OWU2OWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaApAQCAtMzAsNyAr
MzAsNyBAQAogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBJUEMgewot
Y2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgRGVjb2RlcjsKIGNsYXNzIEVuY29kZXI7CiB9
CiAKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiA6IHB1Ymxp
YyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6Okdlb2xvY2EKIHB1YmxpYzoKICAg
ICBzdHJ1Y3QgRGF0YSB7CiAgICAgICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0
OwotICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBEYXRh
Jik7CisgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBEYXRhJik7CiAK
ICAgICAgICAgZG91YmxlIHRpbWVzdGFtcDsKICAgICAgICAgZG91YmxlIGxhdGl0dWRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHREYXRhLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0RGF0YS5jcHAKaW5kZXggYTVk
MmJiZjZjZTRiYTgzZmJkZjRhODMxNDQ5YzE4NjJjZDQ5OTI1NC4uYTI0YzBlNDU1NWQ1ZjVkMTc2
NDljZThhNTdjOWJlOTVmNWMzZGZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkhpdFRlc3RSZXN1bHREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
SGl0VGVzdFJlc3VsdERhdGEuY3BwCkBAIC0xMjUsNyArMTI1LDcgQEAgdm9pZCBXZWJIaXRUZXN0
UmVzdWx0RGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBwbGF0
Zm9ybUVuY29kZShlbmNvZGVyKTsKIH0KIAotYm9vbCBXZWJIaXRUZXN0UmVzdWx0RGF0YTo6ZGVj
b2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYg
aGl0VGVzdFJlc3VsdERhdGEpCitib29sIFdlYkhpdFRlc3RSZXN1bHREYXRhOjpkZWNvZGUoSVBD
OjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYgaGl0VGVzdFJlc3VsdERh
dGEpCiB7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoaXRUZXN0UmVzdWx0RGF0YS5hYnNvbHV0
ZUltYWdlVVJMKQogICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUoaGl0VGVzdFJlc3VsdERhdGEu
YWJzb2x1dGVQREZVUkwpCkBAIC0xNzUsNyArMTc1LDcgQEAgdm9pZCBXZWJIaXRUZXN0UmVzdWx0
RGF0YTo6cGxhdGZvcm1FbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogfQog
Ci1ib29sIFdlYkhpdFRlc3RSZXN1bHREYXRhOjpwbGF0Zm9ybURlY29kZShJUEM6OkFyZ3VtZW50
RGVjb2RlciYgZGVjb2RlciwgV2ViSGl0VGVzdFJlc3VsdERhdGEmIGhpdFRlc3RSZXN1bHREYXRh
KQorYm9vbCBXZWJIaXRUZXN0UmVzdWx0RGF0YTo6cGxhdGZvcm1EZWNvZGUoSVBDOjpEZWNvZGVy
JiBkZWNvZGVyLCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYgaGl0VGVzdFJlc3VsdERhdGEpCiB7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
SGl0VGVzdFJlc3VsdERhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVz
dWx0RGF0YS5oCmluZGV4IGIxMmE0ZDJjYWU1MWJiMzI2NTc5OTA2MWRlODcyN2M0Mjg0NTU1Y2Qu
LjA4YjEwNmZlY2IwNGJiMDVhM2YwZDQyZjVmMDZiZmUzMmUxNmJhMmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0RGF0YS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0RGF0YS5oCkBAIC0zMyw3ICszMyw3IEBACiBP
QkpDX0NMQVNTIEREQWN0aW9uQ29udGV4dDsKIAogbmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBBcmd1
bWVudERlY29kZXI7CitjbGFzcyBEZWNvZGVyOwogY2xhc3MgRW5jb2RlcjsKIH0KIApAQCAtODEs
OCArODEsOCBAQCBzdHJ1Y3QgV2ViSGl0VGVzdFJlc3VsdERhdGEgewogCiAgICAgdm9pZCBlbmNv
ZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgdm9pZCBwbGF0Zm9ybUVuY29kZShJUEM6OkVu
Y29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29k
ZXImLCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYpOwotICAgIHN0YXRpYyBib29sIHBsYXRmb3JtRGVj
b2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgV2ViSGl0VGVzdFJlc3VsdERhdGEmKTsKKyAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViSGl0VGVzdFJlc3VsdERhdGEmKTsK
KyAgICBzdGF0aWMgYm9vbCBwbGF0Zm9ybURlY29kZShJUEM6OkRlY29kZXImLCBXZWJIaXRUZXN0
UmVzdWx0RGF0YSYpOwogCiAgICAgV2ViQ29yZTo6SW50UmVjdCBlbGVtZW50Qm91bmRpbmdCb3hJ
bldpbmRvd0Nvb3JkaW5hdGVzKGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmKTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKaW5kZXggNTE2MTRiNTI4
OWZlMTNjYjRhNDk3Njg5Y2QzY2RkOTJiZjllYmQ0NS4uZWY0N2FjNTgwMzU2Nzc1MTIxZmUyOGE5
MTUwMjgwZDFjN2ZjZDY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYktl
eWJvYXJkRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJLZXlib2FyZEV2
ZW50LmNwcApAQCAtMTE1LDcgKzExNSw3IEBAIHZvaWQgV2ViS2V5Ym9hcmRFdmVudDo6ZW5jb2Rl
KElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1faXNTeXN0ZW1L
ZXk7CiB9CiAKLWJvb2wgV2ViS2V5Ym9hcmRFdmVudDo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNv
ZGVyJiBkZWNvZGVyLCBXZWJLZXlib2FyZEV2ZW50JiByZXN1bHQpCitib29sIFdlYktleWJvYXJk
RXZlbnQ6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYktleWJvYXJkRXZlbnQmIHJl
c3VsdCkKIHsKICAgICBpZiAoIVdlYkV2ZW50OjpkZWNvZGUoZGVjb2RlciwgcmVzdWx0KSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
Yk1vdXNlRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3Bw
CmluZGV4IDhmYzFlNTlhNzQ3N2I5NzY5ZTIyOGZjNTFlNDRiY2EzMGFiMTc4MDEuLjZjZmE2ZDYy
NTMyMWNjYzY2YmM2MDlkODUwMGNjMjY1MmZlZGNiNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViTW91c2VFdmVudC5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBXZWJNb3VzZUV2ZW50Ojpl
bmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbV9zeW50
aGV0aWNDbGlja1R5cGU7CiB9CiAKLWJvb2wgV2ViTW91c2VFdmVudDo6ZGVjb2RlKElQQzo6QXJn
dW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJNb3VzZUV2ZW50JiByZXN1bHQpCitib29sIFdlYk1v
dXNlRXZlbnQ6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYk1vdXNlRXZlbnQmIHJl
c3VsdCkKIHsKICAgICBpZiAoIVdlYkV2ZW50OjpkZWNvZGUoZGVjb2RlciwgcmVzdWx0KSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
Yk5hdmlnYXRpb25EYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJOYXZpZ2F0
aW9uRGF0YVN0b3JlLmgKaW5kZXggMzM3NjhmMWI4ZmM2ZWUxZGUwNjdlYTUyNzE1ODM0Nzc0NGIx
N2VhOC4uM2I0MmQwMjE1ZmVmODVlNGQwNTVlZTdkMGU1MmNkNDhhNGM3NjZlNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk5hdmlnYXRpb25EYXRhU3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTmF2aWdhdGlvbkRhdGFTdG9yZS5oCkBAIC0yNiw3ICsy
Niw3IEBACiAjaWZuZGVmIFdlYk5hdmlnYXRpb25EYXRhU3RvcmVfaAogI2RlZmluZSBXZWJOYXZp
Z2F0aW9uRGF0YVN0b3JlX2gKIAotI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgorI2luY2x1
ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KQEAg
LTQ0LDcgKzQ0LDcgQEAgc3RydWN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUgewogICAgICAgICBl
bmNvZGVyIDw8IHJlc3BvbnNlOwogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6
OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUp
CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViTmF2aWdh
dGlvbkRhdGFTdG9yZSYgc3RvcmUpCiAgICAgewogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHN0b3JlLnVybCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggOTIyOTlm
MjU3NWNiMGUyYjAyZjcyMTcyODJlMGU0MTRiMzkyYjkzYS4uNWIxYzgwY2EwYmIwYmVhMWMzYmNi
NzcxNjE2YTI1NzU5M2NjZTQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0
CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24pOwog
fQogCi1ib29sIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkFyZ3VtZW50
RGVjb2RlciYgZGVjb2RlciwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykK
K2Jvb2wgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVj
b2RlciwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudmlld1NpemUpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMuaAppbmRleCBkNzQzODhmMTVlMmFiMGFkZDI5YjVmYTgwYmE1NzgzNzZiOWVhYjAzLi5mZjg0
YzQ4ODg5YjhhNDI2ZmNjM2Y5OWE0Yjk2MGVkMmRmYzBiYjZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTQ3LDE1ICs0Nywx
NSBAQAogI2VuZGlmCiAKIG5hbWVzcGFjZSBJUEMgewotICAgIGNsYXNzIEFyZ3VtZW50RGVjb2Rl
cjsKLSAgICBjbGFzcyBFbmNvZGVyOworY2xhc3MgRGVjb2RlcjsKK2NsYXNzIEVuY29kZXI7CiB9
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cyB7CiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJv
b2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cyYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzJik7CiAKICAgICBXZWJDb3JlOjpJbnRTaXplIHZpZXdTaXplOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5jcHAKaW5kZXggYTMwNTc4MTAyMDhh
ZTNhZGVjNjc0MGQ1ODgyODczZmJmNzUzNDJjYy4uNjMyMWIwMTM5MWI5NTRjODBiYTEzZDQxMjJk
NjEwNTk5ZGI4MjFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VH
cm91cERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlR3JvdXBEYXRh
LmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYlBhZ2VHcm91cERhdGE6OmVuY29kZShJUEM6
OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCB1c2VyQ29udGVudENvbnRy
b2xsZXJJZGVudGlmaWVyOwogfQogCi1ib29sIFdlYlBhZ2VHcm91cERhdGE6OmRlY29kZShJUEM6
OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViUGFnZUdyb3VwRGF0YSYgZGF0YSkKK2Jvb2wg
V2ViUGFnZUdyb3VwRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUGFnZUdy
b3VwRGF0YSYgZGF0YSkKIHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGEuaWRlbnRpZmll
cikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJQYWdlR3JvdXBEYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUdy
b3VwRGF0YS5oCmluZGV4IGFiZjZmZDBkMjZiOGYyZWFhYzJmNDQ4YmI4ZDcwMmQxODYyMThiOGIu
LmI3MDkzNjk0NmQ1ZmRkZmI5ZDVlMzRiNWI5OThjYzNkNjdhMDhlNzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlR3JvdXBEYXRhLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlBhZ2VHcm91cERhdGEuaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSVBDIHsKLWNsYXNzIEFyZ3VtZW50
RGVjb2RlcjsKK2NsYXNzIERlY29kZXI7CiBjbGFzcyBFbmNvZGVyOwogfQogCkBAIC0zNyw3ICsz
Nyw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgV2ViUGFnZUdyb3VwRGF0YSB7CiAg
ICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVj
b2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgV2ViUGFnZUdyb3VwRGF0YSYpOworICAgIHN0YXRp
YyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJQYWdlR3JvdXBEYXRhJik7CiAKICAgICBT
dHJpbmcgaWRlbnRpZmllcjsKICAgICB1aW50NjRfdCBwYWdlR3JvdXBJRDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQbGF0Zm9ybVRvdWNoUG9pbnQuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAKaW5kZXggMDU5NWUzNjA1
NjU0NzNjOGIyNDlkODQyOTkzODJmY2I1ODIzNTY5Ni4uMTRhZWYxMDEzMDE4YmRlZDk0MDlhMTMx
NzE3ZjQxM2Q5YjE1YTc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBs
YXRmb3JtVG91Y2hQb2ludC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBsYXRm
b3JtVG91Y2hQb2ludC5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgdm9pZCBXZWJQbGF0Zm9ybVRvdWNo
UG9pbnQ6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8
PCBtX2ZvcmNlOwogfQogCi1ib29sIFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6ZGVjb2RlKElQQzo6
QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQmIHJlc3VsdCkK
K2Jvb2wgV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVy
LCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQmIHJlc3VsdCkKIHsKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5tX2lkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUG9wdXBJdGVtLmNwcAppbmRleCA2YjNiNTJhOTg4OWJkNzE2YWZmYmQ5NzRkYWUxODIz
YzkzNWViYzljLi45OWJiMDZmNjgwYTU1M2ExMGQxODY2NGYxYjNmYWI3ZmNhNjBkZWIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmNwcApAQCAtNzksNyArNzksNyBAQCB2b2lk
IFdlYlBvcHVwSXRlbTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBl
bmNvZGVyIDw8IG1faXNTZWxlY3RlZDsKIH0KIAotYm9vbCBXZWJQb3B1cEl0ZW06OmRlY29kZShJ
UEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViUG9wdXBJdGVtJiBpdGVtKQorYm9vbCBX
ZWJQb3B1cEl0ZW06OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlBvcHVwSXRlbSYg
aXRlbSkKIHsKICAgICBUeXBlIHR5cGU7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0odHlw
ZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmgKaW5kZXggYjJmY2Y3YWFiOTVlNTU0
OTQ3MjA2NDY5ZjJlNmMwNGI0OWIyOGZlMy4uYzE4ZTdhOTY2ZTM3MmY3ZDUyYWU0NDY0MmI1NzVh
MzQ4MDBjZTNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRl
bS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQb3B1cEl0ZW0uaApAQCAtMzAsOCAr
MzAsOCBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSVBD
IHsKLSAgICBjbGFzcyBBcmd1bWVudERlY29kZXI7Ci0gICAgY2xhc3MgRW5jb2RlcjsKK2NsYXNz
IERlY29kZXI7CitjbGFzcyBFbmNvZGVyOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ3
LDcgKzQ3LDcgQEAgc3RydWN0IFdlYlBvcHVwSXRlbSB7CiAgICAgV2ViUG9wdXBJdGVtKFR5cGUs
IGNvbnN0IFN0cmluZyYgdGV4dCwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbiwgYm9vbCBoYXNUZXh0
RGlyZWN0aW9uT3ZlcnJpZGUsIGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgY29uc3QgU3RyaW5nJiBh
Y2Nlc3NpYmlsaXR5VGV4dCwgYm9vbCBpc0VuYWJsZWQsIGJvb2wgaXNMYWJlbCwgYm9vbCBpc1Nl
bGVjdGVkKTsKIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0
YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFdlYlBvcHVwSXRlbSYpOwor
ICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJQb3B1cEl0ZW0mKTsKIAog
ICAgIFR5cGUgbV90eXBlOwogICAgIFN0cmluZyBtX3RleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAKaW5kZXggMzBiNjZkODNiNzA3Nzc5OWIyMmNj
NzRlZGE3M2ExYzg1NmM4N2Q0Mi4uNDU4NTc4Mzk0NmM1NjIzODBjNWViMGZmMzQ4YTFiNmFlYWZh
ZWUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3Rv
cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmNw
cApAQCAtNjcsNyArNjcsNyBAQCB2b2lkIFdlYlByZWZlcmVuY2VzU3RvcmU6OlZhbHVlOjplbmNv
ZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIH0KIH0KIAotYm9vbCBXZWJQcmVm
ZXJlbmNlc1N0b3JlOjpWYWx1ZTo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBWYWx1ZSYgcmVzdWx0KQorYm9vbCBXZWJQcmVmZXJlbmNlc1N0b3JlOjpWYWx1ZTo6ZGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlciwgVmFsdWUmIHJlc3VsdCkKIHsKICAgICBWYWx1ZTo6VHlw
ZSB0eXBlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHR5cGUpKQpAQCAtMTIxLDcgKzEy
MSw3IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXNTdG9yZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5j
b2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1fb3ZlcnJpZGVuRGVmYXVsdHM7CiB9CiAKLWJv
b2wgV2ViUHJlZmVyZW5jZXNTdG9yZTo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNv
ZGVyLCBXZWJQcmVmZXJlbmNlc1N0b3JlJiByZXN1bHQpCitib29sIFdlYlByZWZlcmVuY2VzU3Rv
cmU6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlByZWZlcmVuY2VzU3RvcmUmIHJl
c3VsdCkKIHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3ZhbHVlcykpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
cmVmZXJlbmNlc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNT
dG9yZS5oCmluZGV4IDIxMTM1ZDVlNTYyYTBmNTE5MmNhZjM1NjJmZjNmNzExMTBhNGNmMTUuLjVj
OTAxMzhhNjAzOWZjNTM2YjE4OTQ3ZWZkMmU0N2ZjNzM2MDYzZmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaApAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRl
ZiBXZWJQcmVmZXJlbmNlc1N0b3JlX2gKICNkZWZpbmUgV2ViUHJlZmVyZW5jZXNTdG9yZV9oCiAK
LSNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKKyNpbmNsdWRlICJEZWNvZGVyLmgiCiAjaW5j
bHVkZSAiRW5jb2Rlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nSGFzaC5oPgpAQCAtMzgsNyArMzgsNyBAQCBzdHJ1Y3QgV2ViUHJlZmVyZW5j
ZXNTdG9yZSB7CiAgICAgV2ViUHJlZmVyZW5jZXNTdG9yZSgpOwogCiAgICAgdm9pZCBlbmNvZGUo
SVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1l
bnREZWNvZGVyJiwgV2ViUHJlZmVyZW5jZXNTdG9yZSYpOworICAgIHN0YXRpYyBib29sIGRlY29k
ZShJUEM6OkRlY29kZXImLCBXZWJQcmVmZXJlbmNlc1N0b3JlJik7CiAKICAgICAvLyBOT1RFOiBU
aGUgZ2V0dGVycyBpbiB0aGlzIGNsYXNzIGhhdmUgbm9uLXN0YW5kYXJkIG5hbWVzIHRvIGFpZCBp
biB0aGUgdXNlIG9mIHRoZSBwcmVmZXJlbmNlIG1hY3Jvcy4KIApAQCAtNzMsNyArNzMsNyBAQCBz
dHJ1Y3QgV2ViUHJlZmVyZW5jZXNTdG9yZSB7CiAgICAgICAgIH07CiAKICAgICAgICAgdm9pZCBl
bmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJ
UEM6OkFyZ3VtZW50RGVjb2RlciYsIFZhbHVlJik7CisgICAgICAgIHN0YXRpYyBib29sIGRlY29k
ZShJUEM6OkRlY29kZXImLCBWYWx1ZSYpOwogCiAgICAgICAgIGV4cGxpY2l0IFZhbHVlKCkgOiBt
X3R5cGUoVHlwZTo6Tm9uZSkgeyB9CiAgICAgICAgIGV4cGxpY2l0IFZhbHVlKGNvbnN0IFN0cmlu
ZyYgdmFsdWUpIDogbV90eXBlKFR5cGU6OlN0cmluZyksIG1fc3RyaW5nKHZhbHVlKSB7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcAppbmRleCA1NTk0MTY2MWEyZDhkMWNmYTMzZWYzMTUwZjMwMmY2OGZiZTEwMzRjLi45
ZWJiNDNkYmU5NGVmNDE5ZmJiMTM1NmUzNjJmMmY5NzVkZGI1NjE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBA
IC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNv
ZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2VuZGlmCiB9CiAKLWJvb2wgV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNv
ZGVyLCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorYm9vbCBXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocGFyYW1ldGVycy5pbmplY3RlZEJ1bmRsZVBhdGgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaAppbmRleCA5OTlkMTM0N2I1MTZlYTNiZjMxM2RhOTZkNjk1Y2YxOGFh
NzI0MDNmLi5mZjIwMDVjMzBiOTY5ZWM1YjUxYmQwY2YxNjE0NzczNjQzNDBjYzU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgRGF0YTsKIH0KIAogbmFtZXNwYWNlIElQQyB7Ci1j
bGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBEZWNvZGVyOwogY2xhc3MgRW5jb2RlcjsKIH0K
IApAQCAtNjEsNyArNjEsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7
CiAgICAgfldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKTsKIAogICAgIHZvaWQgZW5jb2Rl
KElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3Vt
ZW50RGVjb2RlciYsIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKKyAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYp
OwogCiAgICAgU3RyaW5nIGluamVjdGVkQnVuZGxlUGF0aDsKICAgICBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUgaW5qZWN0ZWRCdW5kbGVQYXRoRXh0ZW5zaW9uSGFuZGxlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwCmluZGV4IDE1NjE4MTQ5MzY2M2MwNjJhM2RmZDc3NmZj
YmRjMTg0MzM5MWI5ZmEuLmU0ZTZhMDg3YWM0NmVlYTQ0MzE2MTJjMGE4ODFhZWY2ZjFiMWVhMWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKQEAgLTQ3LDcgKzQ3LDcg
QEAgdm9pZCBXZWJUb3VjaEV2ZW50OjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogICAgIGVuY29kZXIgPDwgbV90b3VjaFBvaW50czsKIH0KIAotYm9vbCBXZWJUb3VjaEV2ZW50
OjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYlRvdWNoRXZlbnQmIHJl
c3VsdCkKK2Jvb2wgV2ViVG91Y2hFdmVudDo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
V2ViVG91Y2hFdmVudCYgcmVzdWx0KQogewogICAgIGlmICghV2ViRXZlbnQ6OmRlY29kZShkZWNv
ZGVyLCByZXN1bHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuY3Bw
CmluZGV4IDZkMzFjOTU0NTE2YmQ2YzRlMmUwZDQ5NzQzZjBhNWE4ZWQ5YjljNTUuLjcxZjNjZjEw
ODUyZGYyNGE4YTU2M2QyN2M3ZWUzOWFjMzFkZDkxNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuY3Bw
CkBAIC0zNyw3ICszNyw3IEBAIHZvaWQgV2ViVXNlclNjcmlwdERhdGE6OmVuY29kZShJUEM6OkVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCB1c2VyU2NyaXB0OwogfQogCi1i
b29sIFdlYlVzZXJTY3JpcHREYXRhOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29k
ZXIsIFdlYlVzZXJTY3JpcHREYXRhJiBkYXRhKQorYm9vbCBXZWJVc2VyU2NyaXB0RGF0YTo6ZGVj
b2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViVXNlclNjcmlwdERhdGEmIGRhdGEpCiB7CiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRhLmlkZW50aWZpZXIpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgV2ViVXNlclN0eWxlU2hlZXREYXRhOjplbmNv
ZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgdXNlclN0eWxl
U2hlZXQ7CiB9CiAKLWJvb2wgV2ViVXNlclN0eWxlU2hlZXREYXRhOjpkZWNvZGUoSVBDOjpBcmd1
bWVudERlY29kZXImIGRlY29kZXIsIFdlYlVzZXJTdHlsZVNoZWV0RGF0YSYgZGF0YSkKK2Jvb2wg
V2ViVXNlclN0eWxlU2hlZXREYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJV
c2VyU3R5bGVTaGVldERhdGEmIGRhdGEpCiB7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRh
LmlkZW50aWZpZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC03NCw3ICs3NCw3IEBAIHZv
aWQgV2ViU2NyaXB0TWVzc2FnZUhhbmRsZXJEYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbmFtZTsKIH0KIAotYm9vbCBXZWJTY3JpcHRNZXNz
YWdlSGFuZGxlckRhdGE6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2Vi
U2NyaXB0TWVzc2FnZUhhbmRsZXJEYXRhJiBkYXRhKQorYm9vbCBXZWJTY3JpcHRNZXNzYWdlSGFu
ZGxlckRhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlNjcmlwdE1lc3NhZ2VI
YW5kbGVyRGF0YSYgZGF0YSkKIHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGEuaWRlbnRp
ZmllcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuaAppbmRleCA1NWRk
ODBmNTljZGZiY2Q5MWZkZWE2MTU0MzY4NGI3ZGZjY2NjNmQ5Li5lMjk1OTNiYWM3NTAwZDk3OGE5
NWE5ZDRlNzE2NjQzMjJmMGZmODBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmgKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oCkBAIC0zMCw3ICszMCw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyU3R5bGVTaGVldC5oPgogCiBuYW1lc3BhY2UgSVBD
IHsKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIERlY29kZXI7CiBjbGFzcyBFbmNvZGVy
OwogfQogCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgV2Vi
VXNlclNjcmlwdERhdGEgewogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0Owot
ICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFdlYlVzZXJTY3Jp
cHREYXRhJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYlVzZXJT
Y3JpcHREYXRhJik7CiAKICAgICB1aW50NjRfdCBpZGVudGlmaWVyOwogICAgIHVpbnQ2NF90IHdv
cmxkSWRlbnRpZmllcjsKQEAgLTQ3LDcgKzQ3LDcgQEAgc3RydWN0IFdlYlVzZXJTY3JpcHREYXRh
IHsKIAogc3RydWN0IFdlYlVzZXJTdHlsZVNoZWV0RGF0YSB7CiAgICAgdm9pZCBlbmNvZGUoSVBD
OjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnRE
ZWNvZGVyJiwgV2ViVXNlclN0eWxlU2hlZXREYXRhJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KElQQzo6RGVjb2RlciYsIFdlYlVzZXJTdHlsZVNoZWV0RGF0YSYpOwogCiAgICAgdWludDY0X3Qg
aWRlbnRpZmllcjsKICAgICB1aW50NjRfdCB3b3JsZElkZW50aWZpZXI7CkBAIC01Niw3ICs1Niw3
IEBAIHN0cnVjdCBXZWJVc2VyU3R5bGVTaGVldERhdGEgewogCiBzdHJ1Y3QgV2ViU2NyaXB0TWVz
c2FnZUhhbmRsZXJEYXRhIHsKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsK
LSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBXZWJTY3JpcHRN
ZXNzYWdlSGFuZGxlckRhdGEmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVy
JiwgV2ViU2NyaXB0TWVzc2FnZUhhbmRsZXJEYXRhJik7CiAKICAgICB1aW50NjRfdCBpZGVudGlm
aWVyOwogICAgIHVpbnQ2NF90IHdvcmxkSWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJXaGVlbEV2ZW50LmNwcAppbmRleCAwNWExNWNmMmNmZTgxZjZmZGJmNzFiZTE0YTA4NjlmMTA3
N2RjZWVjLi5iMzI2MzBlMTdhOTNkMzc4MzcxMDZiMTEzZWUxOWM5OGEwMGExZjc2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwCkBAIC04OCw3ICs4OCw3IEBAIHZvaWQg
V2ViV2hlZWxFdmVudDo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICNlbmRp
ZgogfQogCi1ib29sIFdlYldoZWVsRXZlbnQ6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYg
ZGVjb2RlciwgV2ViV2hlZWxFdmVudCYgdCkKK2Jvb2wgV2ViV2hlZWxFdmVudDo6ZGVjb2RlKElQ
Qzo6RGVjb2RlciYgZGVjb2RlciwgV2ViV2hlZWxFdmVudCYgdCkKIHsKICAgICBpZiAoIVdlYkV2
ZW50OjpkZWNvZGUoZGVjb2RlciwgdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuY3BwCmluZGV4IDY4
YzE2N2IzMzViZGE1MzYxZjU1YTgzYjNhYzE5ZDUwZmVhM2UyMjMuLjZhMWU4YTljNzk1YTQ0ZjI3
MGVhMWZhODM0ODk5ZDZjODk5MGI5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFdlYnNp
dGVEYXRhOjpFbnRyeTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBl
bmNvZGVyIDw8IHNpemU7CiB9CiAKLWJvb2wgV2Vic2l0ZURhdGE6OkVudHJ5OjpkZWNvZGUoSVBD
OjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYnNpdGVEYXRhOjpFbnRyeSYgcmVzdWx0KQor
Ym9vbCBXZWJzaXRlRGF0YTo6RW50cnk6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdl
YnNpdGVEYXRhOjpFbnRyeSYgcmVzdWx0KQogewogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSBzZWN1cml0eU9yaWdpbkRhdGE7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzZWN1cml0
eU9yaWdpbkRhdGEpKQpAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFdlYnNpdGVEYXRhOjplbmNvZGUo
SVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2VuZGlmCiB9CiAKLWJvb2wgV2Vic2l0ZURh
dGE6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2Vic2l0ZURhdGEmIHJl
c3VsdCkKK2Jvb2wgV2Vic2l0ZURhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdl
YnNpdGVEYXRhJiByZXN1bHQpCiB7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuZW50
cmllcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmgKaW5kZXggZWNhODdjYWY3MmM5YTAyODdmZTQ3NjNj
MDM1YmQ2NWExNWE2N2RlNi4uZmYzZGIxZjIwYTExNDUzNDQzZDBjNWExZjBiNjk5MGQ5NWU5NmZk
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
LmgKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFj
ZSBJUEMgewotY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgRGVjb2RlcjsKIGNsYXNzIEVu
Y29kZXI7CiB9CiAKQEAgLTQ3LDcgKzQ3LDcgQEAgc3RydWN0IFdlYnNpdGVEYXRhIHsKICAgICAg
ICAgdWludDY0X3Qgc2l6ZTsKIAogICAgICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBj
b25zdDsKLSAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwg
V2Vic2l0ZURhdGE6OkVudHJ5Jik7CisgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRl
Y29kZXImLCBXZWJzaXRlRGF0YTo6RW50cnkmKTsKICAgICB9OwogCiAgICAgVmVjdG9yPEVudHJ5
PiBlbnRyaWVzOwpAQCAtNTgsNyArNTgsNyBAQCBzdHJ1Y3QgV2Vic2l0ZURhdGEgewogI2VuZGlm
CiAKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBXZWJzaXRlRGF0YSYpOworICAgIHN0YXRp
YyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJzaXRlRGF0YSYpOwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3BwIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3BwCmluZGV4IDdlNTIx
ZWJmZTZhMjc5ZGMxZWQ5ZWY2NDg3OWY3NTk0MTU0ZjNhN2MuLjBmZGQxNGQwYzIxOTAxZGZkNzk0
MTU5NzI3NDljZjE4MmU0ZDdlYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9j
Zi9Bcmd1bWVudENvZGVyc0NGLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvY2YvQXJn
dW1lbnRDb2RlcnNDRi5jcHAKQEAgLTI2LDggKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJBcmd1bWVudENvZGVyc0NGLmgiCiAKLSNpbmNsdWRlICJBcmd1bWVudERlY29k
ZXIuaCIKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiRGVjb2Rlci5oIgog
I2luY2x1ZGUgIkVuY29kZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NGVVJMRXh0cmFzLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMjA0LDcgKzIwNCw3IEBAIHZvaWQgZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIENGVHlwZVJlZiB0eXBlUmVmKQogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogfQogCi1ib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJldGFpblB0
cjxDRlR5cGVSZWY+JiByZXN1bHQpCitib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZXRh
aW5QdHI8Q0ZUeXBlUmVmPiYgcmVzdWx0KQogewogICAgIENGVHlwZSB0eXBlOwogICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGVFbnVtKHR5cGUpKQpAQCAtMzM4LDcgKzMzOCw3IEBAIHZvaWQgZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIENGQXJyYXlSZWYgYXJyYXkpCiAgICAgfQogfQogCi1ib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxDRkFycmF5UmVmPiYgcmVz
dWx0KQorYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPENGQXJyYXlSZWY+
JiByZXN1bHQpCiB7CiAgICAgdWludDY0X3Qgc2l6ZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHNpemUpKQpAQCAtMzYzLDcgKzM2Myw3IEBAIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IENGQm9vbGVhblJlZiBib29sZWFuKQogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8Ym9vbD4o
Q0ZCb29sZWFuR2V0VmFsdWUoYm9vbGVhbikpOwogfQogCi1ib29sIGRlY29kZShBcmd1bWVudERl
Y29kZXImIGRlY29kZXIsIFJldGFpblB0cjxDRkJvb2xlYW5SZWY+JiByZXN1bHQpCitib29sIGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8Q0ZCb29sZWFuUmVmPiYgcmVzdWx0KQog
ewogICAgIGJvb2wgYm9vbGVhbjsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGJvb2xlYW4pKQpA
QCAtMzgxLDcgKzM4MSw3IEBAIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENGRGF0YVJl
ZiBkYXRhKQogICAgIGVuY29kZXIgPDwgSVBDOjpEYXRhUmVmZXJlbmNlKGJ5dGVQdHIsIGxlbmd0
aCk7CiB9CiAKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRy
PENGRGF0YVJlZj4mIHJlc3VsdCkKK2Jvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJldGFp
blB0cjxDRkRhdGFSZWY+JiByZXN1bHQpCiB7CiAgICAgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGFS
ZWZlcmVuY2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRhUmVmZXJlbmNlKSkKQEAgLTM5
Niw3ICszOTYsNyBAQCB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDRkRhdGVSZWYgZGF0
ZSkKICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PGRvdWJsZT4oQ0ZEYXRlR2V0QWJzb2x1dGVU
aW1lKGRhdGUpKTsKIH0KIAotYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBS
ZXRhaW5QdHI8Q0ZEYXRlUmVmPiYgcmVzdWx0KQorYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgUmV0YWluUHRyPENGRGF0ZVJlZj4mIHJlc3VsdCkKIHsKICAgICBkb3VibGUgYWJzb2x1dGVU
aW1lOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYWJzb2x1dGVUaW1lKSkKQEAgLTQzMCw3ICs0
MzAsNyBAQCB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDRkRpY3Rpb25hcnlSZWYgZGlj
dGlvbmFyeSkKICAgICB9CiB9CiAKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4mIHJlc3VsdCkKK2Jvb2wgZGVjb2RlKERlY29k
ZXImIGRlY29kZXIsIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+JiByZXN1bHQpCiB7CiAgICAg
dWludDY0X3Qgc2l6ZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUpKQpAQCAtNTE0LDcg
KzUxNCw3IEBAIHN0YXRpYyBzaXplX3Qgc2l6ZUZvck51bWJlclR5cGUoQ0ZOdW1iZXJUeXBlIG51
bWJlclR5cGUpCiAgICAgcmV0dXJuIDA7CiB9CiAKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciYgZGVjb2RlciwgUmV0YWluUHRyPENGTnVtYmVyUmVmPiYgcmVzdWx0KQorYm9vbCBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPENGTnVtYmVyUmVmPiYgcmVzdWx0KQogewogICAg
IENGTnVtYmVyVHlwZSBudW1iZXJUeXBlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKG51
bWJlclR5cGUpKQpAQCAtNTU0LDcgKzU1NCw3IEBAIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIENGU3RyaW5nUmVmIHN0cmluZykKICAgICBlbmNvZGVyIDw8IElQQzo6RGF0YVJlZmVyZW5j
ZShidWZmZXIpOwogfQogCi1ib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJl
dGFpblB0cjxDRlN0cmluZ1JlZj4mIHJlc3VsdCkKK2Jvb2wgZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIFJldGFpblB0cjxDRlN0cmluZ1JlZj4mIHJlc3VsdCkKIHsKICAgICBDRlN0cmluZ0VuY29k
aW5nIGVuY29kaW5nOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKGVuY29kaW5nKSkKQEAg
LTU4OCw3ICs1ODgsNyBAQCB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDRlVSTFJlZiB1
cmwpCiAgICAgZW5jb2RlciA8PCBkYXRhUmVmZXJlbmNlOwogfQogCi1ib29sIGRlY29kZShBcmd1
bWVudERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxDRlVSTFJlZj4mIHJlc3VsdCkKK2Jvb2wg
ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxDRlVSTFJlZj4mIHJlc3VsdCkKIHsK
ICAgICBSZXRhaW5QdHI8Q0ZVUkxSZWY+IGJhc2VVUkw7CiAgICAgYm9vbCBoYXNCYXNlVVJMOwpA
QCAtNjI0LDcgKzYyNCw3IEBAIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIFNlY0NlcnRp
ZmljYXRlUmVmIGNlcnRpZmljYXRlKQogICAgIGVuY29kZShlbmNvZGVyLCBkYXRhLmdldCgpKTsK
IH0KIAotYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8U2Vj
Q2VydGlmaWNhdGVSZWY+JiByZXN1bHQpCitib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBS
ZXRhaW5QdHI8U2VjQ2VydGlmaWNhdGVSZWY+JiByZXN1bHQpCiB7CiAgICAgUmV0YWluUHRyPENG
RGF0YVJlZj4gZGF0YTsKICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBkYXRhKSkKQEAgLTY4NSw3
ICs2ODUsNyBAQCB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBTZWNJZGVudGl0eVJlZiBp
ZGVudGl0eSkKICAgICB9CiB9CiAKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiYgcmVzdWx0KQorYm9vbCBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiYgcmVzdWx0KQogewogICAgIFJl
dGFpblB0cjxTZWNDZXJ0aWZpY2F0ZVJlZj4gY2VydGlmaWNhdGU7CiAgICAgaWYgKCFkZWNvZGUo
ZGVjb2RlciwgY2VydGlmaWNhdGUpKQpAQCAtNzI4LDcgKzcyOCw3IEBAIHZvaWQgZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIFNlY0tleWNoYWluSXRlbVJlZiBrZXljaGFpbkl0ZW0pCiAgICAgfQog
fQogCi1ib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxTZWNL
ZXljaGFpbkl0ZW1SZWY+JiByZXN1bHQpCitib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBS
ZXRhaW5QdHI8U2VjS2V5Y2hhaW5JdGVtUmVmPiYgcmVzdWx0KQogewogICAgIFJldGFpblB0cjxD
RkRhdGFSZWY+IGRhdGE7CiAgICAgaWYgKCFJUEM6OmRlY29kZShkZWNvZGVyLCBkYXRhKSkKQEAg
LTc1MSw3ICs3NTEsNyBAQCB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBTZWNBY2Nlc3ND
b250cm9sUmVmIGFjY2Vzc0NvbnRyb2wpCiAgICAgICAgIGVuY29kZShlbmNvZGVyLCBkYXRhLmdl
dCgpKTsKIH0KIAotYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5Q
dHI8U2VjQWNjZXNzQ29udHJvbFJlZj4mIHJlc3VsdCkKK2Jvb2wgZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIFJldGFpblB0cjxTZWNBY2Nlc3NDb250cm9sUmVmPiYgcmVzdWx0KQogewogICAgIFJl
dGFpblB0cjxDRkRhdGFSZWY+IGRhdGE7CiAgICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgZGF0YSkp
CkBAIC03NzgsNyArNzc4LDcgQEAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgU2VjVHJ1
c3RSZWYgdHJ1c3QpCiAgICAgSVBDOjplbmNvZGUoZW5jb2RlciwgZGF0YS5nZXQoKSk7CiB9CiAK
LWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPFNlY1RydXN0
UmVmPiYgcmVzdWx0KQorYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPFNl
Y1RydXN0UmVmPiYgcmVzdWx0KQogewogICAgIGJvb2wgaGFzVHJ1c3Q7CiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShoYXNUcnVzdCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Y2YvQXJndW1lbnRDb2RlcnNDRi5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2NmL0FyZ3VtZW50
Q29kZXJzQ0YuaAppbmRleCAwMDYzM2YyNjQ5NWY5ZmM1MzNlMzVkMTUwN2NmMDU1MDUyMDliNDY5
Li5kOGJlZmQwYTMxOWE1MzM1YTUwYWUzMDQyY2NjMzgwMjlhNDFkYmUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmgKQEAgLTM3LDY4ICszNyw2OCBAQAog
bmFtZXNwYWNlIElQQyB7CiAKIGNsYXNzIEVuY29kZXI7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7
CitjbGFzcyBEZWNvZGVyOwogCiAvLyBDRkFycmF5UmVmCiB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Q0ZBcnJheVJlZik7Ci1ib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBSZXRhaW5QdHI8Q0ZB
cnJheVJlZj4mIHJlc3VsdCk7Citib29sIGRlY29kZShEZWNvZGVyJiwgUmV0YWluUHRyPENGQXJy
YXlSZWY+JiByZXN1bHQpOwogCiAvLyBDRkJvb2xlYW5SZWYKIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBDRkJvb2xlYW5SZWYpOwotYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgUmV0YWluUHRy
PENGQm9vbGVhblJlZj4mIHJlc3VsdCk7Citib29sIGRlY29kZShEZWNvZGVyJiwgUmV0YWluUHRy
PENGQm9vbGVhblJlZj4mIHJlc3VsdCk7CiAKIC8vIENGRGF0YVJlZgogdm9pZCBlbmNvZGUoRW5j
b2RlciYsIENGRGF0YVJlZik7Ci1ib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBSZXRhaW5Q
dHI8Q0ZEYXRhUmVmPiYgcmVzdWx0KTsKK2Jvb2wgZGVjb2RlKERlY29kZXImLCBSZXRhaW5QdHI8
Q0ZEYXRhUmVmPiYgcmVzdWx0KTsKIAogLy8gQ0ZEYXRlUmVmCiB2b2lkIGVuY29kZShFbmNvZGVy
JiwgQ0ZEYXRlUmVmKTsKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFJldGFpblB0cjxD
RkRhdGVSZWY+JiByZXN1bHQpOworYm9vbCBkZWNvZGUoRGVjb2RlciYsIFJldGFpblB0cjxDRkRh
dGVSZWY+JiByZXN1bHQpOwogCiAvLyBDRkRpY3Rpb25hcnlSZWYKIHZvaWQgZW5jb2RlKEVuY29k
ZXImLCBDRkRpY3Rpb25hcnlSZWYpOwotYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgUmV0
YWluUHRyPENGRGljdGlvbmFyeVJlZj4mIHJlc3VsdCk7Citib29sIGRlY29kZShEZWNvZGVyJiwg
UmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4mIHJlc3VsdCk7CiAKIC8vIENGTnVtYmVyUmVmCiB2
b2lkIGVuY29kZShFbmNvZGVyJiwgQ0ZOdW1iZXJSZWYpOwotYm9vbCBkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiwgUmV0YWluUHRyPENGTnVtYmVyUmVmPiYgcmVzdWx0KTsKK2Jvb2wgZGVjb2RlKERl
Y29kZXImLCBSZXRhaW5QdHI8Q0ZOdW1iZXJSZWY+JiByZXN1bHQpOwogCiAvLyBDRlN0cmluZ1Jl
Zgogdm9pZCBlbmNvZGUoRW5jb2RlciYsIENGU3RyaW5nUmVmKTsKLWJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYsIFJldGFpblB0cjxDRlN0cmluZ1JlZj4mIHJlc3VsdCk7Citib29sIGRlY29k
ZShEZWNvZGVyJiwgUmV0YWluUHRyPENGU3RyaW5nUmVmPiYgcmVzdWx0KTsKIAogLy8gQ0ZUeXBl
UmVmCiB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0ZUeXBlUmVmKTsKLWJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYsIFJldGFpblB0cjxDRlR5cGVSZWY+JiByZXN1bHQpOworYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFJldGFpblB0cjxDRlR5cGVSZWY+JiByZXN1bHQpOwogCiAvLyBDRlVSTFJlZgog
dm9pZCBlbmNvZGUoRW5jb2RlciYsIENGVVJMUmVmKTsKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYsIFJldGFpblB0cjxDRlVSTFJlZj4mIHJlc3VsdCk7Citib29sIGRlY29kZShEZWNvZGVy
JiwgUmV0YWluUHRyPENGVVJMUmVmPiYgcmVzdWx0KTsKIAogLy8gU2VjQ2VydGlmaWNhdGVSZWYK
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBTZWNDZXJ0aWZpY2F0ZVJlZik7Ci1ib29sIGRlY29kZShB
cmd1bWVudERlY29kZXImLCBSZXRhaW5QdHI8U2VjQ2VydGlmaWNhdGVSZWY+JiByZXN1bHQpOwor
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFJldGFpblB0cjxTZWNDZXJ0aWZpY2F0ZVJlZj4mIHJlc3Vs
dCk7CiAKIC8vIFNlY0lkZW50aXR5UmVmCiB2b2lkIGVuY29kZShFbmNvZGVyJiwgU2VjSWRlbnRp
dHlSZWYpOwotYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgUmV0YWluUHRyPFNlY0lkZW50
aXR5UmVmPiYgcmVzdWx0KTsKK2Jvb2wgZGVjb2RlKERlY29kZXImLCBSZXRhaW5QdHI8U2VjSWRl
bnRpdHlSZWY+JiByZXN1bHQpOwogCiAjaWYgSEFWRShTRUNfS0VZQ0hBSU4pCiAvLyBTZWNLZXlj
aGFpbkl0ZW1SZWYKIHZvaWQgZW5jb2RlKEVuY29kZXImLCBTZWNLZXljaGFpbkl0ZW1SZWYpOwot
Ym9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgUmV0YWluUHRyPFNlY0tleWNoYWluSXRlbVJl
Zj4mIHJlc3VsdCk7Citib29sIGRlY29kZShEZWNvZGVyJiwgUmV0YWluUHRyPFNlY0tleWNoYWlu
SXRlbVJlZj4mIHJlc3VsdCk7CiAjZW5kaWYKIAogI2lmIEhBVkUoU0VDX0FDQ0VTU19DT05UUk9M
KQogLy8gU2VjQWNjZXNzQ29udHJvbFJlZgogdm9pZCBlbmNvZGUoRW5jb2RlciYsIFNlY0FjY2Vz
c0NvbnRyb2xSZWYpOwotYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgUmV0YWluUHRyPFNl
Y0FjY2Vzc0NvbnRyb2xSZWY+JiByZXN1bHQpOworYm9vbCBkZWNvZGUoRGVjb2RlciYsIFJldGFp
blB0cjxTZWNBY2Nlc3NDb250cm9sUmVmPiYgcmVzdWx0KTsKICNlbmRpZgogCiAjaWYgSEFWRShT
RUNfVFJVU1RfU0VSSUFMSVpBVElPTikKIC8vIFNlY1RydXN0UmVmCiB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgU2VjVHJ1c3RSZWYpOwotYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgUmV0YWlu
UHRyPFNlY1RydXN0UmVmPiYpOworYm9vbCBkZWNvZGUoRGVjb2RlciYsIFJldGFpblB0cjxTZWNU
cnVzdFJlZj4mKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3Np
dGlvbi5oCmluZGV4IDNmZDY2ZGE0ZTViZTY5ODMyMDNmODc4OGUyNDg5YjE2NGNjNTI2ZTguLjE3
ODJiMjVhZTVjYjgwMzYwMWJjZTc4ODY0M2VmMzkzNjIxYTkzOGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBv
c2l0aW9uLmgKQEAgLTY3LDcgKzY3LDcgQEAgc3RydWN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25B
dFBvc2l0aW9uIHsKICNlbmRpZgogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29u
c3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgSW50ZXJh
Y3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBD
OjpEZWNvZGVyJiwgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKTsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvaW9zL0ludGVyYWN0aW9u
SW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tCmluZGV4IDdiZmE2OWY0ZGE4MGQ2OTM5YmNkM2EwMTYw
MjhiYzlhM2FjNTZjZmIuLmVlZTI2YmQ4Y2Q5ZTVlYTNmMWViN2M1ZjI5MDk3OWE2YzZjNmZiZjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2lvcy9JbnRlcmFj
dGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5tbQpAQCAtNzksNyArNzksNyBAQCB2b2lkIEludGVy
YWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAogI2VuZGlmCiB9CiAKLWJvb2wgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b246OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgSW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkF0UG9zaXRpb24mIHJlc3VsdCkKK2Jvb2wgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb246OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIEludGVyYWN0aW9uSW5mb3Jt
YXRpb25BdFBvc2l0aW9uJiByZXN1bHQpCiB7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1
bHQucG9pbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvaW9zL1F1aWNrTG9va0RvY3VtZW50RGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvaW9zL1F1aWNrTG9va0RvY3VtZW50RGF0YS5jcHAKaW5kZXggZDY1OTdhMTAwNDY3
NjViZGQyMjI1OTkzOGFhZjBjY2FmOWY4NDRiMC4uMGY4NTkxOWIwNDYzYTNkZWNmZGQyOGY1M2Nm
ZjU5ZDcwMmZlZThmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2lvcy9RdWlj
a0xvb2tEb2N1bWVudERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvUXVp
Y2tMb29rRG9jdW1lbnREYXRhLmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaWYgVVNFKFFVSUNL
X0xPT0spCiAKLSNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKKyNpbmNsdWRlICJEZWNvZGVy
LmgiCiAjaW5jbHVkZSAiRW5jb2Rlci5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTYyLDcg
KzYyLDcgQEAgdm9pZCBRdWlja0xvb2tEb2N1bWVudERhdGE6OmVuY29kZShJUEM6OkVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CiAgICAgICAgIGVuY29kZXIuZW5jb2RlRml4ZWRMZW5ndGhEYXRhKENG
RGF0YUdldEJ5dGVQdHIoZGF0YS5nZXQoKSksIENGRGF0YUdldExlbmd0aChkYXRhLmdldCgpKSwg
MSk7CiB9CiAKLWJvb2wgUXVpY2tMb29rRG9jdW1lbnREYXRhOjpkZWNvZGUoSVBDOjpBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIFF1aWNrTG9va0RvY3VtZW50RGF0YSYgZG9jdW1lbnREYXRhKQor
Ym9vbCBRdWlja0xvb2tEb2N1bWVudERhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIs
IFF1aWNrTG9va0RvY3VtZW50RGF0YSYgZG9jdW1lbnREYXRhKQogewogICAgIHVpbnQ2NF90IHNp
emU7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaXplKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9pb3MvUXVpY2tMb29rRG9jdW1lbnREYXRhLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvaW9zL1F1aWNrTG9va0RvY3VtZW50RGF0YS5oCmluZGV4IGU3MmY1ZjkwYTRhYzA2
MGJlZGNhNDliM2MxMTBiZDYwMGRhYWJhZDMuLjFmMjU1YjVmODZlNTUxN2NmYWVlYWFmZTAzNTFh
ZWE2YWEyMDBmZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvUXVpY2tM
b29rRG9jdW1lbnREYXRhLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2lvcy9RdWlja0xv
b2tEb2N1bWVudERhdGEuaApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KIAogbmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBEZWNv
ZGVyOwogY2xhc3MgRW5jb2RlcjsKIH0KIApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAg
Q0ZEYXRhUmVmIGRlY29kZWREYXRhKCkgY29uc3Q7CiAgICAgdm9pZCBjbGVhcigpOwogICAgIHZv
aWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShJ
UEM6OkFyZ3VtZW50RGVjb2RlciYsIFF1aWNrTG9va0RvY3VtZW50RGF0YSYpOworICAgIHN0YXRp
YyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBRdWlja0xvb2tEb2N1bWVudERhdGEmKTsKIAog
cHJpdmF0ZToKICAgICBWZWN0b3I8UmV0YWluUHRyPENGRGF0YVJlZj4sIDE+IG1fZGF0YTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvV2ViUGxhdGZvcm1Ub3VjaFBvaW50
SU9TLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvV2ViUGxhdGZvcm1Ub3VjaFBvaW50
SU9TLmNwcAppbmRleCAxM2I4MTExN2MyNTVkYWYyYzgzOTU1ZTVjMDg5OGVmOWVhZWUxZTc3Li4w
MmIzYzcxNmJmYjllYTQ4ODc3OTRkNzk5NDk5MWViNDQ4OTJlMTMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvaW9zL1dlYlBsYXRmb3JtVG91Y2hQb2ludElPUy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL2lvcy9XZWJQbGF0Zm9ybVRvdWNoUG9pbnRJT1MuY3BwCkBA
IC00NSw3ICs0NSw3IEBAIHZvaWQgV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjplbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2VuZGlmCiB9CiAKLWJvb2wgV2ViUGxhdGZvcm1Ub3Vj
aFBvaW50OjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYlBsYXRmb3Jt
VG91Y2hQb2ludCYgcmVzdWx0KQorYm9vbCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmRlY29kZShJ
UEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlBsYXRmb3JtVG91Y2hQb2ludCYgcmVzdWx0KQogewog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1faWRlbnRpZmllcikpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvV2ViVG91
Y2hFdmVudElPUy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvaW9zL1dlYlRvdWNoRXZlbnRJ
T1MuY3BwCmluZGV4IDA3OTFlMzE4YWVmOGE1MDNiNTY1NTIyMTI1YWQ0M2RkMzc2NDBmODMuLjM5
YWQ4NDUzZDAzNjIwZjFkNDY0ODlhMzhkNTFjYmNmYjA5MGM0NzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9pb3MvV2ViVG91Y2hFdmVudElPUy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL2lvcy9XZWJUb3VjaEV2ZW50SU9TLmNwcApAQCAtNDcsNyArNDcsNyBAQCB2
b2lkIFdlYlRvdWNoRXZlbnQ6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAg
ICAgZW5jb2RlciA8PCBtX2dlc3R1cmVSb3RhdGlvbjsKIH0KIAotYm9vbCBXZWJUb3VjaEV2ZW50
OjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYlRvdWNoRXZlbnQmIHJl
c3VsdCkKK2Jvb2wgV2ViVG91Y2hFdmVudDo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
V2ViVG91Y2hFdmVudCYgcmVzdWx0KQogewogICAgIGlmICghV2ViRXZlbnQ6OmRlY29kZShkZWNv
ZGVyLCByZXN1bHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL0FyZ3VtZW50Q29kZXJzTWFjLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL0FyZ3VtZW50Q29kZXJzTWFjLmgKaW5kZXggZDcxNTNjNmIwZTNlNzUxZGJhNzgz
MTdkMTM0ODcxOTcyMDBlMDdhZi4uZDFjYjE5Y2YwNTRmY2ZjNzhkYzExYWIyZmJlZmM2ZGM2YjVh
OTczNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Bcmd1bWVudENvZGVy
c01hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNNYWMu
aApAQCAtNDIsNTUgKzQyLDU1IEBAIE9CSkNfQ0xBU1MgTlNVUkw7CiBuYW1lc3BhY2UgSVBDIHsK
IAogY2xhc3MgRW5jb2RlcjsKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIERlY29kZXI7
CiAKIC8vIGlkCiB2b2lkIGVuY29kZShFbmNvZGVyJiwgaWQpOwotYm9vbCBkZWNvZGUoQXJndW1l
bnREZWNvZGVyJiwgUmV0YWluUHRyPGlkPiYpOworYm9vbCBkZWNvZGUoRGVjb2RlciYsIFJldGFp
blB0cjxpZD4mKTsKIAogLy8gTlNBdHRyaWJ1dGVkU3RyaW5nCiB2b2lkIGVuY29kZShFbmNvZGVy
JiwgTlNBdHRyaWJ1dGVkU3RyaW5nICopOwotYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwg
UmV0YWluUHRyPE5TQXR0cmlidXRlZFN0cmluZz4mKTsKK2Jvb2wgZGVjb2RlKERlY29kZXImLCBS
ZXRhaW5QdHI8TlNBdHRyaWJ1dGVkU3RyaW5nPiYpOwogCiAjaWYgVVNFKEFQUEtJVCkKIC8vIE5T
Q29sb3IKIHZvaWQgZW5jb2RlKEVuY29kZXImLCBOU0NvbG9yICopOwotYm9vbCBkZWNvZGUoQXJn
dW1lbnREZWNvZGVyJiwgUmV0YWluUHRyPE5TQ29sb3I+Jik7Citib29sIGRlY29kZShEZWNvZGVy
JiwgUmV0YWluUHRyPE5TQ29sb3I+Jik7CiAjZW5kaWYKIAogLy8gTlNEaWN0aW9uYXJ5CiB2b2lk
IGVuY29kZShFbmNvZGVyJiwgTlNEaWN0aW9uYXJ5ICopOwotYm9vbCBkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiwgUmV0YWluUHRyPE5TRGljdGlvbmFyeT4mKTsKK2Jvb2wgZGVjb2RlKERlY29kZXIm
LCBSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5PiYpOwogCiAvLyBOU0FycmF5CiB2b2lkIGVuY29kZShF
bmNvZGVyJiwgTlNBcnJheSAqKTsKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFJldGFp
blB0cjxOU0FycmF5PiYpOworYm9vbCBkZWNvZGUoRGVjb2RlciYsIFJldGFpblB0cjxOU0FycmF5
PiYpOwogCiAjaWYgVVNFKEFQUEtJVCkKIC8vIE5TRm9udAogdm9pZCBlbmNvZGUoRW5jb2RlciYs
IE5TRm9udCAqKTsKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFJldGFpblB0cjxOU0Zv
bnQ+Jik7Citib29sIGRlY29kZShEZWNvZGVyJiwgUmV0YWluUHRyPE5TRm9udD4mKTsKICNlbmRp
ZgogCiAvLyBOU051bWJlcgogdm9pZCBlbmNvZGUoRW5jb2RlciYsIE5TTnVtYmVyICopOwotYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgUmV0YWluUHRyPE5TTnVtYmVyPiYpOworYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIFJldGFpblB0cjxOU051bWJlcj4mKTsKIAogLy8gTlNTdHJpbmcKIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBOU1N0cmluZyAqKTsKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYsIFJldGFpblB0cjxOU1N0cmluZz4mKTsKK2Jvb2wgZGVjb2RlKERlY29kZXImLCBSZXRh
aW5QdHI8TlNTdHJpbmc+Jik7CiAKIC8vIE5TRGF0ZQogdm9pZCBlbmNvZGUoRW5jb2RlciYsIE5T
RGF0ZSAqKTsKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFJldGFpblB0cjxOU0RhdGU+
Jik7Citib29sIGRlY29kZShEZWNvZGVyJiwgUmV0YWluUHRyPE5TRGF0ZT4mKTsKIAogLy8gTlNE
YXRhCiB2b2lkIGVuY29kZShFbmNvZGVyJiwgTlNEYXRhICopOwotYm9vbCBkZWNvZGUoQXJndW1l
bnREZWNvZGVyJiwgUmV0YWluUHRyPE5TRGF0YT4mKTsKK2Jvb2wgZGVjb2RlKERlY29kZXImLCBS
ZXRhaW5QdHI8TlNEYXRhPiYpOwogCiAvLyBOU1VSTAogdm9pZCBlbmNvZGUoRW5jb2RlciYsIE5T
VVJMICopOwotYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgUmV0YWluUHRyPE5TVVJMPiYp
OworYm9vbCBkZWNvZGUoRGVjb2RlciYsIFJldGFpblB0cjxOU1VSTD4mKTsKIAogfSAvLyBuYW1l
c3BhY2UgSVBDCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1l
bnRDb2RlcnNNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0FyZ3VtZW50Q29kZXJz
TWFjLm1tCmluZGV4IDRmYWM3NGFmZGU4ZGEzOThhNDNiMDczMTcyMzM0YjI4OTI2MWE1ZDIuLjc5
ZTllMjE0OTM1MDVlMDAwYzQ0MzNmMGEyNTRjMTIzODZmY2FkZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNNYWMubW0KKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9Bcmd1bWVudENvZGVyc01hYy5tbQpAQCAtMzIsNyArMzIsNyBAQAog
I2VuZGlmCiAKICNpbXBvcnQgIkFyZ3VtZW50Q29kZXJzQ0YuaCIKLSNpbXBvcnQgIkFyZ3VtZW50
RGVjb2Rlci5oIgorI2ltcG9ydCAiRGVjb2Rlci5oIgogI2ltcG9ydCAiRW5jb2Rlci5oIgogI2lt
cG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yTWFj
Lmg+CkBAIC0xMzksNyArMTM5LDcgQEAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgaWQg
b2JqZWN0KQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi1ib29sIGRlY29kZShBcmd1
bWVudERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxpZD4mIHJlc3VsdCkKK2Jvb2wgZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxpZD4mIHJlc3VsdCkKIHsKICAgICBOU1R5cGUg
dHlwZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bSh0eXBlKSkKQEAgLTI5Niw3ICsyOTYs
NyBAQCB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0
cmluZykKICAgICB9CiB9CiAKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwg
UmV0YWluUHRyPE5TQXR0cmlidXRlZFN0cmluZz4mIHJlc3VsdCkKK2Jvb2wgZGVjb2RlKERlY29k
ZXImIGRlY29kZXIsIFJldGFpblB0cjxOU0F0dHJpYnV0ZWRTdHJpbmc+JiByZXN1bHQpCiB7CiAg
ICAgUmV0YWluUHRyPE5TU3RyaW5nPiBwbGFpblN0cmluZzsKICAgICBpZiAoIUlQQzo6ZGVjb2Rl
KGRlY29kZXIsIHBsYWluU3RyaW5nKSkKQEAgLTMzOSw3ICszMzksNyBAQCB2b2lkIGVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBOU0NvbG9yICpjb2xvcikKICAgICBlbmNvZGVyIDw8IGNvbG9yRnJv
bU5TQ29sb3IoY29sb3IpOwogfQogCi1ib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29k
ZXIsIFJldGFpblB0cjxOU0NvbG9yPiYgcmVzdWx0KQorYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgUmV0YWluUHRyPE5TQ29sb3I+JiByZXN1bHQpCiB7CiAgICAgQ29sb3IgY29sb3I7CiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb2xvcikpCkBAIC0zNzcsNyArMzc3LDcgQEAgdm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5KQogICAgIH0K
IH0KIAotYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8TlNE
aWN0aW9uYXJ5PiYgcmVzdWx0KQorYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmV0YWlu
UHRyPE5TRGljdGlvbmFyeT4mIHJlc3VsdCkKIHsKICAgICB1aW50NjRfdCBzaXplOwogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoc2l6ZSkpCkBAIC00MDgsNyArNDA4LDcgQEAgdm9pZCBlbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgTlNGb250ICpmb250KQogICAgIGVuY29kZShlbmNvZGVyLCBbW2Zv
bnQgZm9udERlc2NyaXB0b3JdIGZvbnRBdHRyaWJ1dGVzXSk7CiB9CiAKLWJvb2wgZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPE5TRm9udD4mIHJlc3VsdCkKK2Jvb2wg
ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxOU0ZvbnQ+JiByZXN1bHQpCiB7CiAg
ICAgUmV0YWluUHRyPE5TRGljdGlvbmFyeT4gZm9udEF0dHJpYnV0ZXM7CiAgICAgaWYgKCFkZWNv
ZGUoZGVjb2RlciwgZm9udEF0dHJpYnV0ZXMpKQpAQCAtNDI2LDcgKzQyNiw3IEBAIHZvaWQgZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIE5TTnVtYmVyICpudW1iZXIpCiAgICAgZW5jb2RlKGVuY29k
ZXIsIChDRk51bWJlclJlZiludW1iZXIpOwogfQogCi1ib29sIGRlY29kZShBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIFJldGFpblB0cjxOU051bWJlcj4mIHJlc3VsdCkKK2Jvb2wgZGVjb2RlKERl
Y29kZXImIGRlY29kZXIsIFJldGFpblB0cjxOU051bWJlcj4mIHJlc3VsdCkKIHsKICAgICBSZXRh
aW5QdHI8Q0ZOdW1iZXJSZWY+IG51bWJlcjsKICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBudW1i
ZXIpKQpAQCAtNDQxLDcgKzQ0MSw3IEBAIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIE5T
U3RyaW5nICpzdHJpbmcpCiAgICAgZW5jb2RlKGVuY29kZXIsIChDRlN0cmluZ1JlZilzdHJpbmcp
OwogfQogCi1ib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxO
U1N0cmluZz4mIHJlc3VsdCkKK2Jvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJldGFpblB0
cjxOU1N0cmluZz4mIHJlc3VsdCkKIHsKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHN0cmlu
ZzsKICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBzdHJpbmcpKQpAQCAtNDY5LDcgKzQ2OSw3IEBA
IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIE5TQXJyYXkgKmFycmF5KQogICAgIH0KIH0K
IAotYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8TlNBcnJh
eT4mIHJlc3VsdCkKK2Jvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxOU0Fy
cmF5PiYgcmVzdWx0KQogewogICAgIHVpbnQ2NF90IHNpemU7CiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShzaXplKSkKQEAgLTQ5Myw3ICs0OTMsNyBAQCB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBOU0RhdGUgKmRhdGUpCiAgICAgZW5jb2RlKGVuY29kZXIsIChDRkRhdGVSZWYpZGF0ZSk7
CiB9CiAKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPE5T
RGF0ZT4mIHJlc3VsdCkKK2Jvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxO
U0RhdGU+JiByZXN1bHQpCiB7CiAgICAgUmV0YWluUHRyPENGRGF0ZVJlZj4gZGF0ZTsKICAgICBp
ZiAoIWRlY29kZShkZWNvZGVyLCBkYXRlKSkKQEAgLTUwOCw3ICs1MDgsNyBAQCB2b2lkIGVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBOU0RhdGEgKmRhdGEpCiAgICAgZW5jb2RlKGVuY29kZXIsIChD
RkRhdGFSZWYpZGF0YSk7CiB9CiAKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgUmV0YWluUHRyPE5TRGF0YT4mIHJlc3VsdCkKK2Jvb2wgZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIFJldGFpblB0cjxOU0RhdGE+JiByZXN1bHQpCiB7CiAgICAgUmV0YWluUHRyPENGRGF0YVJl
Zj4gZGF0YTsKICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBkYXRhKSkKQEAgLTUyMyw3ICs1MjMs
NyBAQCB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBOU1VSTCAqVVJMKQogICAgIGVuY29k
ZShlbmNvZGVyLCAoQ0ZVUkxSZWYpVVJMKTsKIH0KIAotYm9vbCBkZWNvZGUoQXJndW1lbnREZWNv
ZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8TlNVUkw+JiByZXN1bHQpCitib29sIGRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8TlNVUkw+JiByZXN1bHQpCiB7CiAgICAgUmV0YWluUHRy
PENGVVJMUmVmPiBVUkw7CiAgICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgVVJMKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXR0cmlidXRlZFN0cmluZy5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9BdHRyaWJ1dGVkU3RyaW5nLmgKaW5kZXggM2NlMjViMTBlOTgy
NjM0NTBlMjBmNmQzMzY2ZjZhY2I3MTcxNjk5Ny4uMzdlMjNmMGIwMzExZGJhMTlkYzU2YjUxZWQw
NjQ1NjhkZjQ5MTgyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9BdHRy
aWJ1dGVkU3RyaW5nLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9BdHRyaWJ1dGVk
U3RyaW5nLmgKQEAgLTMxLDE1ICszMSwxNSBAQAogT0JKQ19DTEFTUyBOU0F0dHJpYnV0ZWRTdHJp
bmc7CiAKIG5hbWVzcGFjZSBJUEMgewotICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLSAgICBj
bGFzcyBFbmNvZGVyOworY2xhc3MgRGVjb2RlcjsKK2NsYXNzIEVuY29kZXI7CiB9CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgQXR0cmlidXRlZFN0cmluZyB7CiAgICAgdm9pZCBlbmNv
ZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJn
dW1lbnREZWNvZGVyJiwgQXR0cmlidXRlZFN0cmluZyYpOworICAgIHN0YXRpYyBib29sIGRlY29k
ZShJUEM6OkRlY29kZXImLCBBdHRyaWJ1dGVkU3RyaW5nJik7CiAgICAgCiAgICAgUmV0YWluUHRy
PE5TQXR0cmlidXRlZFN0cmluZz4gc3RyaW5nOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvQXR0cmlidXRlZFN0cmluZy5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvQXR0cmlidXRlZFN0cmluZy5tbQppbmRleCAxMWE0ODM3Yjk4NTY5ODY1OGE4ZjE4ZTM5
YjFkNmExMGVhZDVhOGYwLi5kNmZiODQwMTEzNTNiZmU4YTZiNGM0N2Y5OWJhYmMxYzRiZDgxM2Rm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0F0dHJpYnV0ZWRTdHJpbmcu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9BdHRyaWJ1dGVkU3RyaW5nLm1tCkBA
IC0yNyw3ICsyNyw3IEBACiAjaW1wb3J0ICJBdHRyaWJ1dGVkU3RyaW5nLmgiCiAKICNpbXBvcnQg
IkFyZ3VtZW50Q29kZXJzTWFjLmgiCi0jaW1wb3J0ICJBcmd1bWVudERlY29kZXIuaCIKKyNpbXBv
cnQgIkRlY29kZXIuaCIKICNpbXBvcnQgIkVuY29kZXIuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7
CkBAIC00MCw3ICs0MCw3IEBAIHZvaWQgQXR0cmlidXRlZFN0cmluZzo6ZW5jb2RlKElQQzo6RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKICAgICBJUEM6OmVuY29kZShlbmNvZGVyLCBzdHJpbmcuZ2V0
KCkpOwogfQogCi1ib29sIEF0dHJpYnV0ZWRTdHJpbmc6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVj
b2RlciYgZGVjb2RlciwgQXR0cmlidXRlZFN0cmluZyYgYXR0cmlidXRlZFN0cmluZykKK2Jvb2wg
QXR0cmlidXRlZFN0cmluZzo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgQXR0cmlidXRl
ZFN0cmluZyYgYXR0cmlidXRlZFN0cmluZykKIHsKICAgICBib29sIGlzTnVsbDsKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGlzTnVsbCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL0NvbG9yU3BhY2VEYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NvbG9y
U3BhY2VEYXRhLmgKaW5kZXggYjkxMWUwOWFiMjgxOTc0OTkyY2NkYzYwYWNkYzgxMWJmNGE1ODEz
Ny4uY2QyYjJmNDcyMjE0MTQyYzZjODc4YzM4NDI0ZDg3OTUxZmE2MzdhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvQ29sb3JTcGFjZURhdGEuaApAQCAtMjksMTUgKzI5LDE1IEBACiAj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCiBuYW1lc3BhY2UgSVBDIHsKLSAgICBjbGFzcyBB
cmd1bWVudERlY29kZXI7Ci0gICAgY2xhc3MgRW5jb2RlcjsKK2NsYXNzIERlY29kZXI7CitjbGFz
cyBFbmNvZGVyOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RydWN0IENvbG9yU3BhY2VE
YXRhIHsKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBDb2xvclNwYWNlRGF0YSYpOworICAg
IHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBDb2xvclNwYWNlRGF0YSYpOwogCiAg
ICAgUmV0YWluUHRyPENHQ29sb3JTcGFjZVJlZj4gY2dDb2xvclNwYWNlOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29sb3JTcGFjZURhdGEubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL0NvbG9yU3BhY2VEYXRhLm1tCmluZGV4IDE3ZjZmZjQwYmVmNGYx
Y2ZiODQ0NGE2NTI3NmJmYjBjYTAyZTU2ZWEuLmM4ZjMyNGQ0MGZiMTY5YTQ0NWYwYTJlYWU4NmY4
YTY2ODFjNjgxYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29sb3JT
cGFjZURhdGEubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0
YS5tbQpAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIkNvbG9yU3BhY2VEYXRhLmgiCiAKICNp
bmNsdWRlICJBcmd1bWVudENvZGVyc0NGLmgiCi0jaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgi
CisjaW5jbHVkZSAiRGVjb2Rlci5oIgogI2luY2x1ZGUgIkVuY29kZXIuaCIKIAogbmFtZXNwYWNl
IFdlYktpdCB7CkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgQ29sb3JTcGFjZURhdGE6OmVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKE51bGwp
OwogfQogCi1ib29sIENvbG9yU3BhY2VEYXRhOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXIm
IGRlY29kZXIsIENvbG9yU3BhY2VEYXRhJiBjb2xvclNwYWNlRGF0YSkKK2Jvb2wgQ29sb3JTcGFj
ZURhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIENvbG9yU3BhY2VEYXRhJiBjb2xv
clNwYWNlRGF0YSkKIHsKICAgICBFbmNvZGVkRGF0YVR5cGUgZGF0YVR5cGU7CiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZUVudW0oZGF0YVR5cGUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9PYmpDT2JqZWN0R3JhcGguaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
T2JqQ09iamVjdEdyYXBoLmgKaW5kZXggNjIzYzdhMGY1NDQwMGYxNDc5YWFkYjc2ODRmYWQzNjk5
YTEzNDAxOS4uZjEyZjFjYTEzMGQ2OTVmYzNmNzJjNzZkNjhjOGZjNjhiYWQyYzRkZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9PYmpDT2JqZWN0R3JhcGguaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL09iakNPYmplY3RHcmFwaC5oCkBAIC0zMCw3ICszMCw3
IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCiBuYW1lc3BhY2UgSVBDIHsKLWNsYXNz
IEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIERlY29kZXI7CiBjbGFzcyBFbmNvZGVyOwogfQogCkBA
IC01NSwxMSArNTUsMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZXRhaW5QdHI8aWQ+IHRyYW5z
Zm9ybShpZCwgY29uc3QgVHJhbnNmb3JtZXImKTsKIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5j
b2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2Rl
ciYsIFJlZlB0cjxBUEk6Ok9iamVjdD4mKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpE
ZWNvZGVyJiwgUmVmUHRyPEFQSTo6T2JqZWN0PiYpOwogCiBwcml2YXRlOgogICAgIHN0YXRpYyB2
b2lkIGVuY29kZShJUEM6OkVuY29kZXImLCBpZCk7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKElQ
Qzo6QXJndW1lbnREZWNvZGVyJiwgUmV0YWluUHRyPGlkPiYpOworICAgIHN0YXRpYyBib29sIGRl
Y29kZShJUEM6OkRlY29kZXImLCBSZXRhaW5QdHI8aWQ+Jik7CiAKICAgICBleHBsaWNpdCBPYmpD
T2JqZWN0R3JhcGgoaWQgcm9vdE9iamVjdCkKICAgICAgICAgOiBtX3Jvb3RPYmplY3Qocm9vdE9i
amVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvT2JqQ09iamVjdEdy
YXBoLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9PYmpDT2JqZWN0R3JhcGgubW0KaW5k
ZXggNDkwYzA2MjdlOWI0NDk2ZDg1M2JkNTQ2MDBlNWYxODcwNTdlMGI5Yy4uZDdiZDMyNzk2OGM4
ZjdmNzNiODE3NGQ3NmIzMTM2ODI2NTk0ZDgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9PYmpDT2JqZWN0R3JhcGgubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9PYmpDT2JqZWN0R3JhcGgubW0KQEAgLTI3LDcgKzI3LDcgQEAKICNpbXBvcnQgIk9iakNP
YmplY3RHcmFwaC5oIgogCiAjaW1wb3J0ICJBcmd1bWVudENvZGVyc01hYy5oIgotI2ltcG9ydCAi
QXJndW1lbnREZWNvZGVyLmgiCisjaW1wb3J0ICJEZWNvZGVyLmgiCiAjaW1wb3J0ICJFbmNvZGVy
LmgiCiAjaW1wb3J0IDx3dGYvT3B0aW9uYWwuaD4KIApAQCAtMjEwLDcgKzIxMCw3IEBAIHZvaWQg
T2JqQ09iamVjdEdyYXBoOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAg
IGVuY29kZShlbmNvZGVyLCBtX3Jvb3RPYmplY3QuZ2V0KCkpOwogfQogCi1ib29sIE9iakNPYmpl
Y3RHcmFwaDo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8
aWQ+JiByZXN1bHQpCitib29sIE9iakNPYmplY3RHcmFwaDo6ZGVjb2RlKElQQzo6RGVjb2RlciYg
ZGVjb2RlciwgUmV0YWluUHRyPGlkPiYgcmVzdWx0KQogewogICAgIHVpbnQzMl90IHR5cGVBc1VJ
bnQzMjsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHR5cGVBc1VJbnQzMikpCkBAIC0zMjksNyAr
MzI5LDcgQEAgYm9vbCBPYmpDT2JqZWN0R3JhcGg6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2Rl
ciYgZGVjb2RlciwgUmV0YWluUHRyPGlkPiYgcmVzdWwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
Ym9vbCBPYmpDT2JqZWN0R3JhcGg6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgUmVmUHRyPEFQSTo6T2JqZWN0PiYgcmVzdWx0KQorYm9vbCBPYmpDT2JqZWN0R3JhcGg6OmRl
Y29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFJlZlB0cjxBUEk6Ok9iamVjdD4mIHJlc3VsdCkK
IHsKICAgICBSZXRhaW5QdHI8aWQ+IHJvb3RPYmplY3Q7CiAgICAgaWYgKCFkZWNvZGUoZGVjb2Rl
ciwgcm9vdE9iamVjdCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Jl
bW90ZUxheWVyQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90
ZUxheWVyQmFja2luZ1N0b3JlLmgKaW5kZXggMWJhMzg4NzRlNDA0ZjIwZjBjNjgxMDViYzAzYmIz
Njg4ZDRiNmQ1MS4uNmFmNzkwMmRhM2Y5ZmE5YzJlYWJkYWFhMGU1ZDc4NWY2NTMyZTZlNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9y
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3Rv
cmUuaApAQCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBseUJhY2tpbmdTdG9y
ZVRvTGF5ZXIoQ0FMYXllciAqKTsKIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNv
bnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFJlbW90
ZUxheWVyQmFja2luZ1N0b3JlJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2Rl
ciYsIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlJik7CiAKICAgICB2b2lkIGVudW1lcmF0ZVJlY3Rz
QmVpbmdEcmF3bihDR0NvbnRleHRSZWYsIHZvaWQgKF4pKENHUmVjdCkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQppbmRl
eCAzYjIxNmQ2ZDMyZWIxM2Y5MjE4ZGNjNzUyMjgwZjVlOGI5YWExMWNkLi41ZmVjYTkxMmE0ZjQ0
ZTg5YzA0NDI5NDg3OTAyOTIyZDlmZDBiYTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KQEAgLTEzNCw3ICsxMzQsNyBA
QCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgaGFuZGxlOwogfQogCi1ib29sIFJlbW90ZUxheWVy
QmFja2luZ1N0b3JlOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlbW90
ZUxheWVyQmFja2luZ1N0b3JlJiByZXN1bHQpCitib29sIFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZSYg
cmVzdWx0KQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fc2l6ZSkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaAppbmRleCAxZWUzYzY3Y2M3NTQ4ZTdkNGM1ZGEz
OTRmNjNlZDY1NGM3ZmE5ODQ5Li45NWNhNTAyNWFlZWJhZDI4MGExYzIzZjBmYjZkNjYzNDhkN2Vl
NDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbi5oCkBAIC00MSw3ICs0MSw3IEBACiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJUEMgewotY2xhc3MgQXJndW1lbnREZWNvZGVyOwor
Y2xhc3MgRGVjb2RlcjsKIGNsYXNzIEVuY29kZXI7CiB9CiAKQEAgLTk3LDcgKzk3LDcgQEAgcHVi
bGljOgogICAgICAgICBMYXllckNyZWF0aW9uUHJvcGVydGllcygpOwogCiAgICAgICAgIHZvaWQg
ZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
SVBDOjpBcmd1bWVudERlY29kZXImLCBMYXllckNyZWF0aW9uUHJvcGVydGllcyYpOworICAgICAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgTGF5ZXJDcmVhdGlvblByb3BlcnRp
ZXMmKTsKIAogICAgICAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQg
bGF5ZXJJRDsKICAgICAgICAgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGUgdHlw
ZTsKQEAgLTExMSw3ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIExheWVyUHJvcGVydGllcyhj
b25zdCBMYXllclByb3BlcnRpZXMmIG90aGVyKTsKIAogICAgICAgICB2b2lkIGVuY29kZShJUEM6
OkVuY29kZXImKSBjb25zdDsKLSAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1l
bnREZWNvZGVyJiwgTGF5ZXJQcm9wZXJ0aWVzJik7CisgICAgICAgIHN0YXRpYyBib29sIGRlY29k
ZShJUEM6OkRlY29kZXImLCBMYXllclByb3BlcnRpZXMmKTsKIAogICAgICAgICB2b2lkIG5vdGVQ
cm9wZXJ0aWVzQ2hhbmdlZChMYXllckNoYW5nZSBjaGFuZ2VGbGFncykKICAgICAgICAgewpAQCAt
MTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoKICAgICB+UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24o
KTsKIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBi
b29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0
aW9uJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFJlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uJik7CiAKICAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9y
bUxheWVySUQgcm9vdExheWVySUQoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RMYXllcklEOyB9CiAg
ICAgdm9pZCBzZXRSb290TGF5ZXJJRChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxh
eWVySUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb24ubW0KaW5kZXggZmYwZjAwZmI5ZDJmYWNkMTNlOTRjMjYwMzcxZmU5
MmYwM2Q4NWI5NS4uYTcxNjg1MDc5Y2UyMzgyZTBmYTE3MjhjZDk3ZTRkM2Q0NTA1MDQ0MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uLm1tCkBAIC0yNyw4ICsyNyw2IEBACiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbi5oIgogCiAjaW1wb3J0ICJBcmd1bWVudENvZGVycy5oIgotI2ltcG9ydCAiRW5j
b2Rlci5oIgotI2ltcG9ydCAiTWVzc2FnZURlY29kZXIuaCIKICNpbXBvcnQgIlBsYXRmb3JtQ0FB
bmltYXRpb25SZW1vdGUuaCIKICNpbXBvcnQgIlBsYXRmb3JtQ0FMYXllclJlbW90ZS5oIgogI2lt
cG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCkBAIC01OCw3ICs1Niw3IEBAIHZvaWQgUmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ3JlYXRpb25Qcm9wZXJ0aWVzOjplbmNvZGUo
SVBDOjpFbmNvZGVyJiBlCiAgICAgZW5jb2RlciA8PCBob3N0aW5nRGV2aWNlU2NhbGVGYWN0b3I7
CiB9CiAKLWJvb2wgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ3JlYXRpb25Qcm9w
ZXJ0aWVzOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIExheWVyQ3JlYXRp
b25Qcm9wZXJ0aWVzJiByZXN1bHQpCitib29sIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpM
YXllckNyZWF0aW9uUHJvcGVydGllczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgTGF5
ZXJDcmVhdGlvblByb3BlcnRpZXMmIHJlc3VsdCkKIHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlc3VsdC5sYXllcklEKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjc5LDcgKzI3Nyw3
IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6ZW5j
b2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikKICAgICAgICAgZW5jb2RlciA8PCB1c2VySW50ZXJh
Y3Rpb25FbmFibGVkOwogfQogCi1ib29sIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXll
clByb3BlcnRpZXM6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgTGF5ZXJQ
cm9wZXJ0aWVzJiByZXN1bHQpCitib29sIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXll
clByb3BlcnRpZXM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIExheWVyUHJvcGVydGll
cyYgcmVzdWx0KQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHJlc3VsdC5jaGFuZ2Vk
UHJvcGVydGllcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTU1Myw3ICs1NTEsNyBAQCB2
b2lkIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbV9jYWxsYmFja0lEczsKIH0KIAotYm9vbCBSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNv
ZGVyLCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgcmVzdWx0KQorYm9vbCBSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbjo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb24mIHJlc3VsdCkKIHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJl
c3VsdC5tX3Jvb3RMYXllcklEKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tCmluZGV4IGMzNWUwYzJh
YjkwODk1OWI0MmJlOTliOWQ2MWRkNmFiY2UwYWE4YjEuLjA1NTY2MGFjZjdlMGVjODUwNjBlNDgw
MmZhZjE0YTg4NzkyYjcyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
U2FuZGJveEV4dGVuc2lvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Nh
bmRib3hFeHRlbnNpb25NYWMubW0KQEAgLTI4LDggKzI4LDggQEAKIAogI2lmIEVOQUJMRShTQU5E
Qk9YX0VYVEVOU0lPTlMpCiAKLSNpbXBvcnQgIkFyZ3VtZW50RGVjb2Rlci5oIgogI2ltcG9ydCAi
RGF0YVJlZmVyZW5jZS5oIgorI2ltcG9ydCAiRGVjb2Rlci5oIgogI2ltcG9ydCAiRW5jb2Rlci5o
IgogI2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0Zp
bGVTeXN0ZW0uaD4KQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGU6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgbV9zYW5kYm94RXh0
ZW5zaW9uID0gMDsKIH0KIAotYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6OmRlY29kZShJ
UEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgSGFuZGxlJiByZXN1bHQpCitib29sIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgSGFuZGxl
JiByZXN1bHQpCiB7CiAgICAgQVNTRVJUKCFyZXN1bHQubV9zYW5kYm94RXh0ZW5zaW9uKTsKIApA
QCAtMTMxLDcgKzEzMSw3IEBAIHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6OmVu
Y29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgCiB9CiAKLWJvb2wgU2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmIGhhbmRsZXMpCitib29sIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYgaGFuZGxlcykKIHsKICAgICB1aW50NjRfdCBz
aXplOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXF1ZXN0RGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXF1ZXN0RGF0YS5jcHAKaW5kZXggMTg3ZTBkNTk3MTFmMDg5
NmU1ZWRmN2IyZjNkZWE0ZGUzNzczZDJlYS4uZmQxZmQ2NjJlYWJmMzExNDNlNDAwYWFmMzljNjNk
N2JjZjc5NDc1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVt
UmVxdWVzdERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJl
cXVlc3REYXRhLmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIFNlY0l0ZW1SZXF1ZXN0RGF0YTo6
ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICAgICAgSVBDOjplbmNvZGUo
ZW5jb2RlciwgbV9hdHRyaWJ1dGVzVG9NYXRjaC5nZXQoKSk7CiB9CiAKLWJvb2wgU2VjSXRlbVJl
cXVlc3REYXRhOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFNlY0l0ZW1S
ZXF1ZXN0RGF0YSYgc2VjSXRlbVJlcXVlc3REYXRhKQorYm9vbCBTZWNJdGVtUmVxdWVzdERhdGE6
OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFNlY0l0ZW1SZXF1ZXN0RGF0YSYgc2VjSXRl
bVJlcXVlc3REYXRhKQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHNlY0l0ZW1SZXF1
ZXN0RGF0YS5tX3R5cGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXF1ZXN0RGF0YS5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9TZWNJdGVtUmVxdWVzdERhdGEuaAppbmRleCBmYzM2NDUwZjQ4MGMwZjE2
YmQ5NzA2NmYwMmQ2MjhjNTNhM2UyMjg1Li40NjVhODIxY2JlY2JmZDlkZDIyYTAzYWRhMzE2YTNl
MWQ4OTM2ZmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1S
ZXF1ZXN0RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlcXVl
c3REYXRhLmgKQEAgLTI5LDggKzI5LDggQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAK
IG5hbWVzcGFjZSBJUEMgewotICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLSAgICBjbGFzcyBF
bmNvZGVyOworY2xhc3MgRGVjb2RlcjsKK2NsYXNzIEVuY29kZXI7CiB9CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewpAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgU2VjSXRlbVJlcXVlc3REYXRh
KFR5cGUsIENGRGljdGlvbmFyeVJlZiBxdWVyeSwgQ0ZEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXNU
b01hdGNoKTsKIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0
YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFNlY0l0ZW1SZXF1ZXN0RGF0
YSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBTZWNJdGVtUmVxdWVz
dERhdGEmKTsKIAogICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXNwb25zZURhdGEu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVzcG9uc2VEYXRhLmNwcApp
bmRleCAxMTJiMGI1ZDE3NmJlODdiYzUxNDk3YmRiODRiZTBjNGZkOGEwNWJhLi4yYTQ1M2RkOTM5
ZjM4M2FjMTFkNDExMGYyOTI3YzQ2ZWEzNjZjYjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXNwb25zZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgdm9p
ZCBTZWNJdGVtUmVzcG9uc2VEYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogICAgICAgICBJUEM6OmVuY29kZShlbmNvZGVyLCBtX3Jlc3VsdE9iamVjdC5nZXQoKSk7CiB9
CiAKLWJvb2wgU2VjSXRlbVJlc3BvbnNlRGF0YTo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVy
JiBkZWNvZGVyLCBTZWNJdGVtUmVzcG9uc2VEYXRhJiBzZWNJdGVtUmVzcG9uc2VEYXRhKQorYm9v
bCBTZWNJdGVtUmVzcG9uc2VEYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBTZWNJ
dGVtUmVzcG9uc2VEYXRhJiBzZWNJdGVtUmVzcG9uc2VEYXRhKQogewogICAgIGludDY0X3QgcmVz
dWx0Q29kZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdENvZGUpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVzcG9uc2VEYXRhLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXNwb25zZURhdGEuaAppbmRleCAwY2Q5YmIw
YmEyMjYxMmQ1MTRlYzUxZDcxNTVkMTc4NWU1NzY3MzNiLi5kYmRmOGQwMGFjZmIzN2Y2MzQwZTJk
M2FmZGVjZDgzZTVlNGM2MTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L1NlY0l0ZW1SZXNwb25zZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Nl
Y0l0ZW1SZXNwb25zZURhdGEuaApAQCAtMjksOCArMjksOCBAQAogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KIAogbmFtZXNwYWNlIElQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwot
ICAgIGNsYXNzIEVuY29kZXI7CitjbGFzcyBEZWNvZGVyOworY2xhc3MgRW5jb2RlcjsKIH0KIAog
bmFtZXNwYWNlIFdlYktpdCB7CkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICBTZWNJdGVt
UmVzcG9uc2VEYXRhKE9TU3RhdHVzLCBDRlR5cGVSZWYgcmVzdWx0KTsKIAogICAgIHZvaWQgZW5j
b2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFy
Z3VtZW50RGVjb2RlciYsIFNlY0l0ZW1SZXNwb25zZURhdGEmKTsKKyAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoSVBDOjpEZWNvZGVyJiwgU2VjSXRlbVJlc3BvbnNlRGF0YSYpOwogCiAgICAgUmV0YWlu
UHRyPENGVHlwZVJlZj4mIHJlc3VsdE9iamVjdCgpIHsgcmV0dXJuIG1fcmVzdWx0T2JqZWN0OyB9
CiAgICAgT1NTdGF0dXMgcmVzdWx0Q29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0Q29kZTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5oCmluZGV4IGNhMGQ2NDk4MGQ3
ZmRiZWZmYjE4NjZmOGFkMWZlMjE3NjE2NDg0MjIuLjNmMDY0YTIxYTkwYzk0Y2U0NTc5ZmU2MWJi
MWYxZGI2NDhhYTkyMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2Vj
SXRlbVNoaW0uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmgK
QEAgLTQ3LDcgKzQ3LDcgQEAgcHJpdmF0ZToKICAgICBTZWNJdGVtU2hpbSgpOwogCiAgICAgLy8g
SVBDOjpDb25uZWN0aW9uOjpXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIuCi0gICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3Zl
cnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKSBvdmVycmlkZTsKIAogICAgIHZvaWQgc2VjSXRlbVJlc3BvbnNlKHVpbnQ2NF90
IHJlcXVlc3RJRCwgY29uc3QgU2VjSXRlbVJlc3BvbnNlRGF0YSYpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCmluZGV4
IDc5ZDM5NjgxNGMwMDQ3ZGI5YzQxOTliODNlZTAyNzQ1MDliN2ZlNjkuLjRkY2I4MmZkNDY3YTUy
Mjk5MTMwZDNmYjg4YTg4OTIxMTUyNDA0NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCkBAIC0xMTQsNyArMTE0LDcg
QEAgdm9pZCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVxdWVzdD46OmVuY29kZVBsYXRmb3JtRGF0
YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdAogfQogI2VuZGlmCiAKLWJvb2wgQXJndW1lbnRDb2Rl
cjxSZXNvdXJjZVJlcXVlc3Q+OjpkZWNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnREZWNvZGVyJiBk
ZWNvZGVyLCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKK2Jvb2wgQXJndW1lbnRD
b2RlcjxSZXNvdXJjZVJlcXVlc3Q+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2Rl
ciwgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCiB7CiAgICAgYm9vbCByZXF1ZXN0
SXNQcmVzZW50OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVxdWVzdElzUHJlc2VudCkpCkBA
IC0xODAsNyArMTgwLDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDZXJ0aWZpY2F0ZUkKICAgICB9CiB9CiAKLWJv
b2wgQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVy
JiBkZWNvZGVyLCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbykKK2Jvb2wgQXJndW1l
bnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQ2VydGlm
aWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8pCiB7CiAgICAgQ2VydGlmaWNhdGVJbmZvOjpUeXBl
IGNlcnRpZmljYXRlSW5mb1R5cGU7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0oY2VydGlm
aWNhdGVJbmZvVHlwZSkpCkBAIC0yODMsNyArMjgzLDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFJl
c291cmNlRXJyb3I+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
UmUKICAgICBlbmNvZGVOU0Vycm9yKGVuY29kZXIsIG5zRXJyb3IpOwogfQogCi1zdGF0aWMgYm9v
bCBkZWNvZGVOU0Vycm9yKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPE5TRXJy
b3I+JiBuc0Vycm9yKQorc3RhdGljIGJvb2wgZGVjb2RlTlNFcnJvcihEZWNvZGVyJiBkZWNvZGVy
LCBSZXRhaW5QdHI8TlNFcnJvcj4mIG5zRXJyb3IpCiB7CiAgICAgU3RyaW5nIGRvbWFpbjsKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGRvbWFpbikpCkBAIC0zMTQsNyArMzE0LDcgQEAgc3RhdGlj
IGJvb2wgZGVjb2RlTlNFcnJvcihBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxO
U0Vycm9yPiYgbnNFcnJvcikKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBBcmd1bWVudENv
ZGVyPFJlc291cmNlRXJyb3I+OjpkZWNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnREZWNvZGVyJiBk
ZWNvZGVyLCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yKQorYm9vbCBBcmd1bWVudENvZGVy
PFJlc291cmNlRXJyb3I+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2RlciwgUmVz
b3VyY2VFcnJvciYgcmVzb3VyY2VFcnJvcikKIHsKICAgICBib29sIGVycm9ySXNOdWxsOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoZXJyb3JJc051bGwpKQpAQCAtMzQzLDcgKzM0Myw3IEBAIHZv
aWQgQXJndW1lbnRDb2RlcjxQcm90ZWN0aW9uU3BhY2U+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QKICAgICBJUEM6OmVuY29kZShlbmNvZGVyLCByZWludGVycHJl
dF9jYXN0PENGRGF0YVJlZj4oZGF0YS5nZXQoKSkpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8
UHJvdGVjdGlvblNwYWNlPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgUHJvdGVjdGlvblNwYWNlJiBzcGFjZSkKK2Jvb2wgQXJndW1lbnRDb2RlcjxQcm90ZWN0
aW9uU3BhY2U+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2RlciwgUHJvdGVjdGlv
blNwYWNlJiBzcGFjZSkKIHsKICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBkYXRhOwogICAgIGlm
ICghSVBDOjpkZWNvZGUoZGVjb2RlciwgZGF0YSkpCkBAIC0zOTAsNyArMzkwLDcgQEAgdm9pZCBB
cmd1bWVudENvZGVyPENyZWRlbnRpYWw+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgQ3JlZGUKICAgICBJUEM6OmVuY29kZShlbmNvZGVyLCByZWludGVycHJldF9j
YXN0PENGRGF0YVJlZj4oZGF0YS5nZXQoKSkpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8Q3Jl
ZGVudGlhbD46OmRlY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIENy
ZWRlbnRpYWwmIGNyZWRlbnRpYWwpCitib29sIEFyZ3VtZW50Q29kZXI8Q3JlZGVudGlhbD46OmRl
Y29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiBkZWNvZGVyLCBDcmVkZW50aWFsJiBjcmVkZW50aWFs
KQogewogICAgIGJvb2wgaGFzSWRlbnRpdHk7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNJ
ZGVudGl0eSkpCkBAIC00NDYsNyArNDQ2LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPE1hY2hTZW5k
UmlnaHQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgTWFjaFNlbmRSaWdodCYmIHNlbmQKICAg
ICBlbmNvZGVyIDw8IEF0dGFjaG1lbnQoc2VuZFJpZ2h0LmxlYWtTZW5kUmlnaHQoKSwgTUFDSF9N
U0dfVFlQRV9NT1ZFX1NFTkQpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8TWFjaFNlbmRSaWdo
dD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIE1hY2hTZW5kUmlnaHQmIHNlbmRS
aWdodCkKK2Jvb2wgQXJndW1lbnRDb2RlcjxNYWNoU2VuZFJpZ2h0Pjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIE1hY2hTZW5kUmlnaHQmIHNlbmRSaWdodCkKIHsKICAgICBBdHRhY2htZW50IGF0
dGFjaG1lbnQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShhdHRhY2htZW50KSkKQEAgLTQ2NCw3
ICs0NjQsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8S2V5cHJlc3NDb21tYW5kPjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IEtleXByZXNzQ29tbQogICAgIGVuY29kZXIgPDwga2V5cHJl
c3NDb21tYW5kLmNvbW1hbmROYW1lIDw8IGtleXByZXNzQ29tbWFuZC50ZXh0OwogfQogICAgIAot
Ym9vbCBBcmd1bWVudENvZGVyPEtleXByZXNzQ29tbWFuZD46OmRlY29kZShBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIEtleXByZXNzQ29tbWFuZCYga2V5cHJlc3NDb21tYW5kKQorYm9vbCBBcmd1
bWVudENvZGVyPEtleXByZXNzQ29tbWFuZD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBLZXlw
cmVzc0NvbW1hbmQmIGtleXByZXNzQ29tbWFuZCkKIHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGtleXByZXNzQ29tbWFuZC5jb21tYW5kTmFtZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTQ4Niw3ICs0ODYsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8Q29udGVudEZpbHRlclVuYmxvY2tI
YW5kbGVyPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0CiAgICAgSVBDOjplbmNvZGUo
ZW5jb2RlciwgcmVpbnRlcnByZXRfY2FzdDxDRkRhdGFSZWY+KGRhdGEuZ2V0KCkpKTsKIH0KIAot
Ym9vbCBBcmd1bWVudENvZGVyPENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcj46OmRlY29kZShB
cmd1bWVudERlY29kZXImIGRlY29kZXIsIENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgY29u
dGVudEZpbHRlclVuYmxvY2tIYW5kbGVyKQorYm9vbCBBcmd1bWVudENvZGVyPENvbnRlbnRGaWx0
ZXJVbmJsb2NrSGFuZGxlcj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBDb250ZW50RmlsdGVy
VW5ibG9ja0hhbmRsZXImIGNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcikKIHsKICAgICBSZXRh
aW5QdHI8Q0ZEYXRhUmVmPiBkYXRhOwogICAgIGlmICghSVBDOjpkZWNvZGUoZGVjb2RlciwgZGF0
YSkpCkBAIC01MjQsNyArNTI0LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPE1lZGlhUGxheWJhY2tU
YXJnZXRDb250ZXh0Pjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImIGVuY28KIAogfQogCi1i
b29sIEFyZ3VtZW50Q29kZXI8TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ+OjpkZWNvZGVQbGF0
Zm9ybURhdGEoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29u
dGV4dCYgdGFyZ2V0KQorYm9vbCBBcmd1bWVudENvZGVyPE1lZGlhUGxheWJhY2tUYXJnZXRDb250
ZXh0Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImIGRlY29kZXIsIE1lZGlhUGxheWJhY2tU
YXJnZXRDb250ZXh0JiB0YXJnZXQpCiB7CiAgICAgaWYgKCFbZ2V0QVZPdXRwdXRDb250ZXh0Q2xh
c3MoKSBjb25mb3Jtc1RvUHJvdG9jb2w6QHByb3RvY29sKE5TU2VjdXJlQ29kaW5nKV0pCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
V2ViR2VzdHVyZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViR2VzdHVy
ZUV2ZW50LmNwcAppbmRleCA1ZGM3MGJhZjQ3NTY2MWJlNjQ2Y2E3ODJkOWQ4N2JiYTg1Y2YyMTU0
Li40MTJhNmExNTUwNWM4OThmMTBmYWMxNjIwNzMzMjdmODhhN2JlNmY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuY3BwCkBAIC00Myw3ICs0Myw3IEBA
IHZvaWQgV2ViR2VzdHVyZUV2ZW50OjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogICAgIGVuY29kZXIgPDwgbV9nZXN0dXJlUm90YXRpb247CiB9CiAKLWJvb2wgV2ViR2VzdHVy
ZUV2ZW50OjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYkdlc3R1cmVF
dmVudCYgcmVzdWx0KQorYm9vbCBXZWJHZXN0dXJlRXZlbnQ6OmRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIsIFdlYkdlc3R1cmVFdmVudCYgcmVzdWx0KQogewogICAgIGlmICghV2ViRXZlbnQ6
OmRlY29kZShkZWNvZGVyLCByZXN1bHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaAppbmRleCA5ZmFiZjQxZWJkZGQ2
MDk4MGRlNjFlMTU4OWU3NmY2NzgxYTFhNWFhLi5iYzY4YmE1MjdhNWVjODJkMzA4YjgzMGY2YmVi
ZThjMGYyMDBjMzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkdl
c3R1cmVFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViR2VzdHVyZUV2
ZW50LmgKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAogbmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBEZWNvZGVy
OwogY2xhc3MgRW5jb2RlcjsKIH0KIApAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgZmxv
YXQgZ2VzdHVyZVJvdGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9nZXN0dXJlUm90YXRpb247IH0K
IAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29s
IGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFdlYkdlc3R1cmVFdmVudCYpOworICAgIHN0
YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJHZXN0dXJlRXZlbnQmKTsKICAgICAK
IHByaXZhdGU6CiAgICAgYm9vbCBpc0dlc3R1cmVFdmVudFR5cGUoVHlwZSkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkhpdFRlc3RSZXN1bHREYXRhLm1t
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJIaXRUZXN0UmVzdWx0RGF0YS5tbQppbmRl
eCAwMWY1ZmM4OGE4NGYyMGM4NjU5YTFjNzg0NDM1MzY5ZjA1MWU5ZTc4Li43ZWYxMTMwOGY5ZGE1
M2JmYjRlMTJhMzZkNjBlNGI1MDY5MmQxMTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL1dlYkhpdFRlc3RSZXN1bHREYXRhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvV2ViSGl0VGVzdFJlc3VsdERhdGEubW0KQEAgLTI5LDcgKzI5LDcgQEAKICNpZiBQ
TEFURk9STShNQUMpCiAKICNpbXBvcnQgIkFyZ3VtZW50Q29kZXJzQ0YuaCIKLSNpbXBvcnQgIkFy
Z3VtZW50RGVjb2Rlci5oIgorI2ltcG9ydCAiRGVjb2Rlci5oIgogI2ltcG9ydCAiRW5jb2Rlci5o
IgogI2ltcG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0Rh
dGFEZXRlY3RvcnNTUEkuaD4KQEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBXZWJIaXRUZXN0UmVzdWx0
RGF0YTo6cGxhdGZvcm1FbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgICAg
ICBlbmNvZGVyIDw8IGRldGVjdGVkRGF0YVRleHRJbmRpY2F0b3ItPmRhdGEoKTsKIH0KIAotYm9v
bCBXZWJIaXRUZXN0UmVzdWx0RGF0YTo6cGxhdGZvcm1EZWNvZGUoSVBDOjpBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIFdlYkhpdFRlc3RSZXN1bHREYXRhJiBoaXRUZXN0UmVzdWx0RGF0YSkKK2Jv
b2wgV2ViSGl0VGVzdFJlc3VsdERhdGE6OnBsYXRmb3JtRGVjb2RlKElQQzo6RGVjb2RlciYgZGVj
b2RlciwgV2ViSGl0VGVzdFJlc3VsdERhdGEmIGhpdFRlc3RSZXN1bHREYXRhKQogewogICAgIGJv
b2wgaGFzQWN0aW9uQ29udGV4dDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc0FjdGlvbkNv
bnRleHQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElIaXRU
ZXN0UmVzdWx0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSUhpdFRlc3RSZXN1
bHQuaAppbmRleCA0NTljYjJkZjRlYzdkZTJiZGY3ZWM0NzQ2ZTZhN2ViZjYxZmY1NjI1Li5kYzRm
NjEwYjJiNDRhYWViMzk3NmYyMWYzMWZhMTRhMGQ2YTU0OWE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSUhpdFRlc3RSZXN1bHQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0FQSUhpdFRlc3RSZXN1bHQuaApAQCAtMzUsNyArMzUsNyBAQAog
T0JKQ19DTEFTUyBEREFjdGlvbkNvbnRleHQ7CiAKIG5hbWVzcGFjZSBJUEMgewotY2xhc3MgQXJn
dW1lbnREZWNvZGVyOworY2xhc3MgRGVjb2RlcjsKIGNsYXNzIEVuY29kZXI7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1l
bnRDb29yZGluYXRvclByb3h5LmgKaW5kZXggYTBjZTVlMGYzN2MzODkxMTRjMjFlMzZiYmI0ZGFj
NDdmNTIyMjE5Ni4uMTU3YWE2Y2E4ZDg1MDg5ODllNjdhMWZiMjFlMjc1NDBlZjM4ZWFhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29y
ZGluYXRvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FwcGxlUGF5L1dl
YlBheW1lbnRDb29yZGluYXRvclByb3h5LmgKQEAgLTcxLDggKzcxLDggQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgotICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRl
OwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRl
OworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNv
ZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBv
dmVycmlkZTsKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgdm9pZCBjYW5NYWtlUGF5
bWVudHMoYm9vbCYgcmVwbHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKaW5kZXggMzg0YWY2NTVlOTcw
ZDEwNWY0YThhMjQ1MGZjOTNkODE3MDQyMTdmMy4uMjgwZDJkNThiODZlYzc5ZWIzNGNiNzNmNmU0
OWVjMzk0NjkzYWQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9t
YXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCkBAIC0xMzgsNyArMTM4LDcgQEAg
cHJpdmF0ZToKICAgICBTdHJpbmcgaGFuZGxlRm9yV2ViRnJhbWVQcm94eShjb25zdCBXZWJGcmFt
ZVByb3h5Jik7CiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViQXV0b21hdGlv
blNlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVy
cmlkZTsKIAogICAgIC8vIENhbGxlZCBieSBXZWJBdXRvbWF0aW9uU2Vzc2lvbiBtZXNzYWdlcwog
ICAgIHZvaWQgZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24odWludDY0X3QgY2FsbGJhY2tJ
RCwgY29uc3QgU3RyaW5nJiByZXN1bHQsIGNvbnN0IFN0cmluZyYgZXJyb3JUeXBlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCmluZGV4IDIzZjJj
MjcyMzViM2MwNzUzYzBmODhkZWJhODcwMGFlMDI3ODM3Y2UuLjA0MzhkZTIxMTczOTEwYTc2M2U0
OTRkNzM1ZmMzZGI2MzAyMmQ2YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9DaGlsZFByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0No
aWxkUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTU3LDEyICsxNTcsMTIgQEAgdm9pZCBDaGlsZFByb2Nl
c3NQcm94eTo6cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3Nh
Z2VSZWNlaXYKICAgICBtX21lc3NhZ2VSZWNlaXZlck1hcC5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIo
bWVzc2FnZVJlY2VpdmVyTmFtZSk7CiB9CiAKLWJvb2wgQ2hpbGRQcm9jZXNzUHJveHk6OmRpc3Bh
dGNoTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZURlY29k
ZXImIGRlY29kZXIpCitib29sIENoaWxkUHJvY2Vzc1Byb3h5OjpkaXNwYXRjaE1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCiB7CiAgICAg
cmV0dXJuIG1fbWVzc2FnZVJlY2VpdmVyTWFwLmRpc3BhdGNoTWVzc2FnZShjb25uZWN0aW9uLCBk
ZWNvZGVyKTsKIH0KIAotYm9vbCBDaGlsZFByb2Nlc3NQcm94eTo6ZGlzcGF0Y2hTeW5jTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZURlY29kZXImIGRlY29k
ZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCitib29sIENo
aWxkUHJvY2Vzc1Byb3h5OjpkaXNwYXRjaFN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNv
ZGVyPiYgcmVwbHlFbmNvZGVyKQogewogICAgIHJldHVybiBtX21lc3NhZ2VSZWNlaXZlck1hcC5k
aXNwYXRjaFN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5oCmluZGV4IGVk
OGUxMDcxMjkzYzIwNjRlODViZDY5MmRmODNhZWMyZGEzY2ExZjYuLjUwZTQ2OGVmYjJhMjM5Mzk2
ZGUxODM5OWQ2ZmVkMzRlMDVmY2MxYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
aGlsZFByb2Nlc3NQcm94eS5oCkBAIC03OSw4ICs3OSw4IEBAIHByb3RlY3RlZDoKICAgICAvLyBQ
cm9jZXNzTGF1bmNoZXI6OkNsaWVudAogICAgIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nl
c3NMYXVuY2hlciosIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcikgb3ZlcnJpZGU7CiAKLSAg
ICBib29sIGRpc3BhdGNoTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJik7Ci0gICAgYm9vbCBkaXNwYXRjaFN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOworICAg
IGJvb2wgZGlzcGF0Y2hNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwor
ICAgIGJvb2wgZGlzcGF0Y2hTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOwogICAgIAogICAgIHZpcnR1YWwg
dm9pZCBnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGxheWJhY2tT
ZXNzaW9uTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2Vi
UGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5LmgKaW5kZXggY2YwZjY5ZWM2YTgyMDY1NzFjZDYy
ODU0MWIxNzU4YTdkZWE3NzlkZS4uZGZmODI2YTYzMzZjOWFiNGFhY2Q1MzI4MTVlYTY3MDE1N2U1
ZGFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBsYXli
YWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuaApAQCAtMTQ1LDcgKzE0NSw3IEBA
IHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTsKIAogICAgIGV4cGxpY2l0IFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eShXZWJQYWdl
UHJveHkmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6TWVzc2FnZURlY29kZXImKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogCiAgICAgdHlwZWRlZiBzdGQ6
OnR1cGxlPFJlZlB0cjxXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ+LCBSZWZQdHI8UGxh
dGZvcm1XZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2U+PiBNb2RlbEludGVyZmFjZVR1cGxlOwog
ICAgIE1vZGVsSW50ZXJmYWNlVHVwbGUgY3JlYXRlTW9kZWxBbmRJbnRlcmZhY2UodWludDY0X3Qg
Y29udGV4dElkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRleCAyMjNmOWI1NGFh
Y2VmNjgxYjM4OWJiNmYzNmJiNTA0NDc2ZWM0Y2Y5Li44MjFlMjU5MjQ5YjgzM2FmYTIzMDgzMDk4
MWQ3MWJiNGYzZjg1Y2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCkBAIC0xMTMs
NyArMTEzLDcgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgV2ViVmlkZW9GdWxsc2NyZWVu
TW9kZWxDb250ZXh0OwogCiAgICAgZXhwbGljaXQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5KFdlYlBhZ2VQcm94eSYsIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eSYpOwotICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVj
b2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKICAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8
UmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dD4sIFJlZlB0cjxQbGF0Zm9ybVdl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZT4+IE1vZGVsSW50ZXJmYWNlVHVwbGU7CiAgICAgTW9k
ZWxJbnRlcmZhY2VUdXBsZSBjcmVhdGVNb2RlbEFuZEludGVyZmFjZSh1aW50NjRfdCBjb250ZXh0
SWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RhdGFiYXNlcy9EYXRh
YmFzZVByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2Vz
L0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA0OTIxNzQxMjYwYjU4NDE1NjQzYzZiMmVh
Y2Y5MmY5MzJjZjA2MDJlLi5lZGNhNzhkOTY3ODhkNzc1NzczOTc0NGIyN2M2ZDhjYTc0MzFmZmZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNl
UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2Vz
L0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmNwcApAQCAtNzYsNyArNzYsNyBAQCB2b2lkIERhdGFiYXNl
UHJvY2Vzc1Byb3h5Ojpwcm9jZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbikKICAgICBBU1NFUlRfVU5VU0VEKGNvbm5lY3Rpb24sIHRoaXMtPmNvbm5lY3Rpb24oKSA9
PSAmY29ubmVjdGlvbik7CiB9CiAKLXZvaWQgRGF0YWJhc2VQcm9jZXNzUHJveHk6OmRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpNZXNzYWdlRGVjb2Rl
ciYgZGVjb2RlcikKK3ZvaWQgRGF0YWJhc2VQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewog
ICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6RGF0YWJh
c2VQcm9jZXNzUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewogICAgICAgICBkaWRSZWNl
aXZlRGF0YWJhc2VQcm9jZXNzUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nl
c3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVBy
b2Nlc3NQcm94eS5oCmluZGV4IGY4ZjM2Y2IyNjBjZmJkMTA4Mjc3NWRlMDg5MzE0YmFkNDYwMWU1
OTQuLjMxYzhjODE2ZDgyM2JkZGY4Mjk4NTYwNWZjZjIyMjkwZWE4NWI4MDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vz
c1Byb3h5LmgKQEAgLTYzLDEzICs2MywxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJvY2Vzc1dp
bGxTaHV0RG93bihJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKIAogICAgIC8vIElQQzo6Q29u
bmVjdGlvbjo6Q2xpZW50Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKICAgICB2
b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVj
ZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNl
IG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBv
dmVycmlkZTsKICAgICBJUEM6OlByb2Nlc3NUeXBlIGxvY2FsUHJvY2Vzc1R5cGUoKSBvdmVycmlk
ZSB7IHJldHVybiBJUEM6OlByb2Nlc3NUeXBlOjpVSTsgfQogICAgIElQQzo6UHJvY2Vzc1R5cGUg
cmVtb3RlUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlByb2Nlc3NUeXBlOjpE
YXRhYmFzZTsgfQogCi0gICAgdm9pZCBkaWRSZWNlaXZlRGF0YWJhc2VQcm9jZXNzUHJveHlNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVEYXRhYmFzZVByb2Nlc3NQcm94eU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJik7CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzCiAgICAgdm9pZCBkaWRDcmVh
dGVEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3QgSVBDOjpBdHRhY2htZW50Jik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2Fk
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94
eS5oCmluZGV4IDFiYzlkN2ZmODk0N2U1YWI4YjY3ZTcxNTZhMjI2NTkyNDFmZmM2ZGMuLjE1ZmU1
NDJjMzA2NGQ4YTEzZTI0MDU3NDk1YjIyZjcxZDZlNmJjODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oCkBAIC02NiwxNSArNjYs
MTUgQEAgcHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogICAgIHZvaWQgcHJvY2Vzc0Rp
ZENsb3NlKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVEb3dubG9hZFByb3h5TWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7Ci0gICAgdm9pZCBkaWRSZWNlaXZl
U3luY0Rvd25sb2FkUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURl
Y29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVj
ZWl2ZURvd25sb2FkUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
OworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNEb3dubG9hZFByb3h5TWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOwog
CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IERvd25sb2FkUHJveHkoRG93bmxvYWRQcm94eU1hcCYs
IFdlYlByb2Nlc3NQb29sJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAKICAg
ICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwotICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29k
ZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKIAog
ICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgdm9pZCBkaWRTdGFydChjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBBdG9taWNTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1l
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IDYw
ZDc5YzY4NzhkYzgxNWQ2ZDBmYmIwZWI0N2Y3NDZmMDhkYTZmZTIuLmY0NjU5YmUzMzViYTBmYmUz
ZWEyYTJlM2UzZjZmNDFjMzVmNGNkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Ry
YXdpbmdBcmVhUHJveHkuaApAQCAtMTE4LDcgKzExOCw3IEBAIHByb3RlY3RlZDoKICAgICBXZWJD
b3JlOjpJbnRTaXplIG1fc2Nyb2xsT2Zmc2V0OwogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2
ZXIKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVz
c2FnZURlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBzaXplRGlkQ2hhbmdlKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdl
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2Nv
bHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkuaAppbmRleCBmYTQ5ZDYwZWFkOThhMTJlZTRi
MjI2MTRjY2Q1NjM4MDk2MTc0MmU0Li5iMzg3NWYzNjJhNGViODE2N2QxNGQ3MjEyNWNkNWY3MGZl
MmZjZjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0
b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5h
Z2VyUHJveHkuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgLy8g
SVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwog
CiAgICAgQ2hpbGRQcm9jZXNzUHJveHkqIG1fY2hpbGRQcm9jZXNzUHJveHk7CiAgICAgV2ViUHJv
Y2Vzc1Bvb2wmIG1fcHJvY2Vzc1Bvb2w7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGFjYTU3ODJjMzZh
MjZiZTMzNWZhMDZjMjBlYjBiYmEwYWI0NmQ4M2IuLjRlYzQ2YzExMGQ3OGEyZjg0YzE1MmIxM2Vm
MDE0ZWFhYjBhMmZmMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0xOTksNyArMTk5LDcgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpuZXR3b3JrUHJvY2Vzc0NyYXNoZWRPckZhaWxlZFRvTGF1
bmNoKCkKICAgICBtX3Byb2Nlc3NQb29sLm5ldHdvcmtQcm9jZXNzQ3Jhc2hlZCh0aGlzKTsKIH0K
IAotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCit2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChkaXNwYXRjaE1lc3Nh
Z2UoY29ubmVjdGlvbiwgZGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKQEAgLTIxMCw3ICsyMTAs
NyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpNZQogICAgIGRpZFJlY2VpdmVOZXR3b3JrUHJvY2Vz
c1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpF
bmNvZGVyPiYgcmVwbHlFbmNvZGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNl
aXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXIm
IGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7
CiAgICAgaWYgKGRpc3BhdGNoU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlF
bmNvZGVyKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDMwZjExY2IyOTIwMjVk
ZTY5OTAzNTdlODY1ZTI2YzVkN2JmMzQxYWYuLmI1ZDVkOGRlZGNhMWVmZDJmNTUxOWFiYjA5Yjcx
ODU1YjBmZTVhYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTkzLDE1ICs5MywxNSBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZGlkU2V0QXNzZXJ0aW9uU3RhdGUoQXNzZXJ0aW9uU3RhdGUpIG92ZXJyaWRlOwog
CiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
IG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKICAgICB2
b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmlu
Z1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlTmFtZSkgb3ZlcnJpZGU7CiAgICAgSVBDOjpQcm9jZXNzVHlwZSBsb2NhbFByb2Nlc3NUeXBl
KCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6VUk7IH0KICAgICBJUEM6OlBy
b2Nlc3NUeXBlIHJlbW90ZVByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9j
ZXNzVHlwZTo6TmV0d29yazsgfQogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycwotICAgIHZvaWQg
ZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVOZXR3b3JrUHJvY2Vzc1By
b3h5TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKICAgICB2b2lkIGRp
ZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbnN0IElQQzo6QXR0YWNobWVu
dCYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHVpbnQ2NF90
IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCk7CiAgICAgdm9pZCBkaWRGZXRjaFdlYnNp
dGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFdlYnNpdGVEYXRhJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5o
CmluZGV4IGNjOWM1ODMwYzExODFmYzJmMDg5NTBmMjYxZGRlZTAyYmQ3YTU1MGIuLjhjODJhYjdm
ODA0YmI5NDZjODQ4ZjA3MTA5OGQyZmI1NzhiNDhlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCkBAIC0xMDgsOCAr
MTA4LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsdWdpblByb2Nlc3NDcmFzaGVkT3JGYWlsZWRU
b0xhdW5jaCgpOwogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBv
dmVycmlkZTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBv
dmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29k
ZXI+Jikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92
ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5n
UmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDJhMWQyZmQ1NmQzOTJiNmRlY2QwODY5YTBlOTJkMzhj
NjM3YThlODAuLjkxYjY0NmQ5NDA0MDllMzhjMjI2ZTY1ZTIyMTRhMGU0OTEyZDdkNTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9s
bGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcApAQCAtMjksNyArMjksNiBA
QAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVy
cy5oIgotI2luY2x1ZGUgIk1lc3NhZ2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yLmgiCiAjaW5jbHVkZSAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlcy5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmgK
aW5kZXggZGE5NGFkYjEyMDhmMTMwYjI1ZjAxYzMxZjgzMGZiMDZkMWM2OTA2Mi4uNmNiOWYxYzkx
ZjkyZTI0NTA3Y2NiMGQzM2EyMzFhNzk1YTQ5Y2IwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5oCkBAIC03NSw4ICs3NSw4IEBAIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgU3RvcmFnZU1hbmFnZXIoY29uc3QgU3RyaW5nJiBsb2NhbFN0
b3JhZ2VEaXJlY3RvcnkpOwogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpXb3JrUXVldWVNZXNz
YWdlUmVjZWl2ZXIuCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5p
cXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpIG92ZXJyaWRlOworICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2Rlcikg
b3ZlcnJpZGU7CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgY3JlYXRlTG9j
YWxTdG9yYWdlTWFwKElQQzo6Q29ubmVjdGlvbiYsIHVpbnQ2NF90IHN0b3JhZ2VNYXBJRCwgdWlu
dDY0X3Qgc3RvcmFnZU5hbWVzcGFjZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9X
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmgKaW5kZXggZDk3YjVk
ZDk3NWJiYzRmODc0ZDliMTJmNmU4MjZlMjFhZWQ2YmRhYy4uYmZjODNkNTg4YmQyZjFkMThiYjhm
MWNkZjQ4OTU1NDhhYTc2YmM5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclBy
b3h5LmgKQEAgLTk4LDcgKzk4LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIElQQzo6
TWVzc2FnZVJlY2VpdmVyLgotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKICAg
ICB2b2lkIGRpZFBvc3RNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIHVpbnQ2NF90IHBhZ2VJRCwg
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgdWlu
dDY0X3QgbWVzc2FnZUhhbmRsZXJJRCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1N0b3JlLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZS5oCmluZGV4IGU4YzZlODYw
NTkxZjA4MDIxYTBkNDljZWM4NjMyNmIyMTI1ODFkNjcuLmQ1MzM0ZGJlYWRhZWYwNDMxOGQzOWFm
OWQ3MTkzZWIwM2ZiZWE4YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9W
aXNpdGVkTGlua1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zpc2l0ZWRM
aW5rU3RvcmUuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgLy8g
SVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwog
CiAgICAgLy8gV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIKICAgICB2b2lkIHdlYlByb2Nlc3NX
aWxsT3BlbkNvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgSVBDOjpDb25uZWN0aW9uJikgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFu
YWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclBy
b3h5LmgKaW5kZXggYTJhMDUzYmZiNDM1Yzg4OTkyOWM5MjRhMTdjMjg2MWFjMWNmYzI1ZC4uNTQ2
NmM5NTZmYjYxYTE0ZDJlOTNiYjYyMzg5NTcxNGQyNDVkMzg1NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaApAQCAtMTAwLDcgKzEwMCw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkgb3ZlcnJp
ZGU7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jikgb3ZlcnJpZGU7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIHBlcnNpc3RIVFRQ
Q29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKaW5kZXggMmVlODA0ODliOGNiOTAyY2Q2MTg3NmI1
MWJjMTllMDc1MTI5NjU3YS4uNjcwNDU4MDU1YzkyOWRlMmY3Nzg4MDIxZDQ5MmQ3NDY0NTljYTMx
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCkBAIC00MywxMCAr
NDMsOSBAQCBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIE5hdmlnYXRpb247CiB9CiAKLQogbmFtZXNw
YWNlIElQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwotICAgIGNsYXNzIENvbm5lY3Rp
b247CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgRGVjb2RlcjsKIH0KIAogbmFtZXNwYWNlIFdl
YktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHkuaAppbmRleCAzNjBmZWE1MDIxMDRmNWQzYjA3OTA1OGI3YzUwOGNmODYwNzE4
OGU0Li4xMDdiNWMwYWFhYmM0OTBkYjVhYjc5ZTZlYmQ0ZjY5Y2Q3N2IyM2YwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmgK
QEAgLTgxLDggKzgxLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGJlZ2FuRW50ZXJGdWxsU2NyZWVu
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluaXRpYWxGcmFtZSwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgZmluYWxGcmFtZSk7CiAgICAgdm9pZCBiZWdhbkV4aXRGdWxsU2NyZWVuKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIGluaXRpYWxGcmFtZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZmlu
YWxGcmFtZSk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5j
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlx
dWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0
ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CiAKICAgICBXZWJQYWdlUHJv
eHkqIG1fcGFnZTsKICAgICBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Q2xpZW50KiBtX2NsaWVu
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1h
bmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5LmgKaW5kZXggMjVlZGE5YjlmNjMxYjRhYWFkMzk0NjMwZDYxNGNlOTMyMmU5ODQ1
ZS4uYTRjYjEyMmNiMzM1ZTBkMDQ5NTMxYmJmNDkxYzVmNDQ2MGZlY2MzMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgK
QEAgLTY2LDcgKzY2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlcmVmV2ViQ29udGV4dFN1cHBs
ZW1lbnQoKSBvdmVycmlkZTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVy
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAogICAgIGJvb2wgaXNVcGRhdGluZygpIGNvbnN0
IHsgcmV0dXJuICFtX3VwZGF0ZVJlcXVlc3RlcnMuaXNFbXB0eSgpOyB9CiAgICAgYm9vbCBpc0hp
Z2hBY2N1cmFjeUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiAhbV9oaWdoQWNjdXJhY3lSZXF1ZXN0
ZXJzLmlzRW1wdHkoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Ykljb25EYXRhYmFzZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFz
ZS5oCmluZGV4IDQzMTA1MDFhMGM5OGU3MDUxZTRjNjEwNDE5ZjM1MjJmZTZmMTZmMjcuLjA4Mzk3
ZWUyN2U2OWRhMjcyZmQwNjE4NDAxNzk1MjFmMDRjYTJkMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmgKQEAgLTEwMSw4ICsxMDEsOCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZGlkQ2xvc2UoKSBvdmVycmlkZTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVJlY2Vp
dmVyCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1l
c3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJ
UEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1
ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBub3RpZnlJY29uRGF0
YVJlYWR5Rm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaAppbmRleCA1ZmE0YzkwOThiYjJlMWJjMzFiNDY3MDM4
YmFhNWE2NmYxOTE5YmMyLi44OTNlZWU1NTViMmNhZjk4NWFlZDcyY2U4MjcxZGQwNTkyMzhmZWEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaApAQCAt
MTYyLDcgKzE2Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBlYWdlcmx5Q3JlYXRlSW5zcGVjdG9y
UGFnZSgpOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpIG92ZXJyaWRlOwogCiAgICAgV2ViUGFnZVByb3h5KiBwbGF0Zm9ybUNyZWF0ZUluc3Bl
Y3RvclBhZ2UoKTsKICAgICB2b2lkIHBsYXRmb3JtT3BlbigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGJkMTQ2OTg2OTZlZWRkNTUyMDgxMTM1NDYxNjE0OTUx
YjI5MjI1NTIuLjg1YjdmODU0YmRmMmViNjBkZjc2YmNkYWNjNTZmYjY2MjliMDU5YWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEzOCw3ICsxMzgsNyBAQCBj
bGFzcyBVUkxSZXF1ZXN0OwogfQogCiBuYW1lc3BhY2UgSVBDIHsKLWNsYXNzIEFyZ3VtZW50RGVj
b2RlcjsKK2NsYXNzIERlY29kZXI7CiBjbGFzcyBDb25uZWN0aW9uOwogfQogCkBAIC0xMTQ0LDgg
KzExNDQsOCBAQCBwcml2YXRlOgogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICAv
LyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViUGFnZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNz
YWdlRGVjb2RlciYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBD
OjpFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZl
U3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVf
cHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVNlbmRl
cgogICAgIGJvb2wgc2VuZE1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4sIHVu
c2lnbmVkIG1lc3NhZ2VTZW5kRmxhZ3MpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oCmluZGV4IDcwMWRiZmE3YmFjMDk4OGI0MWU0YWRl
ODNjNWUzZTZhYWJiODI4ZjEuLjVlMmE1YjEwZTQ5NTNhZjk5ZDEzOGMyN2E2NGM5ZDg5MmMxMDJm
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5LmgK
QEAgLTUzLDggKzUzLDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXZWJQYXN0ZWJvYXJkUHJv
eHkoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9w
dHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1
bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKIAogI2lmIFBMQVRGT1JNKElPUykK
ICAgICB2b2lkIHdyaXRlV2ViQ29udGVudFRvUGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0
ZWJvYXJkV2ViQ29udGVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKaW5kZXggYTM4ZWJhNWJmMDg3YzllMGM5ZGZjNThmMmUyMDJkNGZmM2M1YjIwOS4u
YTU5MjhlYzQ4NDhiNmRiZjg0ZjYwY2I0MDk2Zjk1ZGQ1NjZiYWY1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0xMDMwLDEyICsxMDMwLDEyIEBA
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOCiAgICAgbV9tZXNzYWdlUmVjZWl2ZXJNYXAucmVtb3Zl
TWVzc2FnZVJlY2VpdmVyKG1lc3NhZ2VSZWNlaXZlck5hbWUsIGRlc3RpbmF0aW9uSUQpOwogfQog
Ci1ib29sIFdlYlByb2Nlc3NQb29sOjpkaXNwYXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQorYm9vbCBXZWJQcm9jZXNz
UG9vbDo6ZGlzcGF0Y2hNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyKQogewogICAgIHJldHVybiBtX21lc3NhZ2VSZWNlaXZlck1hcC5kaXNw
YXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiB9CiAKLWJvb2wgV2ViUHJvY2Vzc1Bv
b2w6OmRpc3BhdGNoU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYg
cmVwbHlFbmNvZGVyKQorYm9vbCBXZWJQcm9jZXNzUG9vbDo6ZGlzcGF0Y2hTeW5jTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1
bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKICAgICByZXR1cm4gbV9t
ZXNzYWdlUmVjZWl2ZXJNYXAuZGlzcGF0Y2hTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVy
LCByZXBseUVuY29kZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaAppbmRleCA1YjVmZTExMjdhMjcxNTE1ODRhZGU4MTg4M2M1ZmZiNjhiNjEzMjczLi5hYjcw
NzM0MjY5YmJmMWFlOTg1ZTFiMjJlOTJlYWNlZTI5YmFjYTEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtMTI2LDggKzEyNiw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHJlbW92ZU1lc3NhZ2VSZWNlaXZlcihJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdl
UmVjZWl2ZXJOYW1lKTsKICAgICB2b2lkIHJlbW92ZU1lc3NhZ2VSZWNlaXZlcihJUEM6OlN0cmlu
Z1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEKTsK
IAotICAgIGJvb2wgZGlzcGF0Y2hNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2Fn
ZURlY29kZXImKTsKLSAgICBib29sIGRpc3BhdGNoU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7
CisgICAgYm9vbCBkaXNwYXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jik7CisgICAgYm9vbCBkaXNwYXRjaFN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7CiAKICAgICB2b2lkIGlu
aXRpYWxpemVDbGllbnQoY29uc3QgV0tDb250ZXh0Q2xpZW50QmFzZSopOwogICAgIHZvaWQgaW5p
dGlhbGl6ZUluamVjdGVkQnVuZGxlQ2xpZW50KGNvbnN0IFdLQ29udGV4dEluamVjdGVkQnVuZGxl
Q2xpZW50QmFzZSopOwpAQCAtNDA1LDggKzQwNSw4IEBAIHByaXZhdGU6CiAKICAgICAvLyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlci4KICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViUHJv
Y2Vzc1Bvb2xNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVj
b2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOwog
CiAgICAgc3RhdGljIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKHZvaWQqIGNvbnRleHQpOwogICAgIHZv
aWQgbGFuZ3VhZ2VDaGFuZ2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwCmluZGV4IDExNTU3NzRmN2VjYmVhYjU2NzE5OTJlZTRmYmYxZGY4NjdkODFl
MWUuLjU3NWM3YWIyYTg3ODY2OWVmMWViOTdmYTJhMjBiNGE5M2FlZGE0MGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC00OTIsNyArNDkyLDcg
QEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnJlbGVhc2VSZW1haW5pbmdJY29uc0ZvclBhZ2VVUkxz
KCkKICAgICBtX3BhZ2VVUkxSZXRhaW5Db3VudE1hcC5jbGVhcigpOwogfQogCi12b2lkIFdlYlBy
b2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVy
JiBkZWNvZGVyKQogewogICAgIGlmIChkaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rl
cikpCiAgICAgICAgIHJldHVybjsKQEAgLTUwOCw3ICs1MDgsNyBAQCB2b2lkIFdlYlByb2Nlc3NQ
cm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6
Ok1lc3NhZwogICAgIC8vIEZJWE1FOiBBZGQgdW5oYW5kbGVkIG1lc3NhZ2UgbG9nZ2luZy4KIH0K
IAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5p
cXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCit2b2lkIFdlYlByb2Nlc3NQcm94
eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBD
OjpEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlF
bmNvZGVyKQogewogICAgIGlmIChkaXNwYXRjaFN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIsIHJlcGx5RW5jb2RlcikpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBiNmQ5ZmM1MDhjYTdiNzgxZjBmZmRjMDBjNDFl
N2E5NzkxOTI5MWE0Li42NmVhNWQ3NGQzZWU2YzcxNmIyZTQ1OWE2MWE0ZTBlYWQ5MTBlZmYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xOTgsOCAr
MTk4LDggQEAgcHJpdmF0ZToKIAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAg
ZnJpZW5kIGNsYXNzIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7Ci0gICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYp
IG92ZXJyaWRlOwogICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVu
Y2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOwogICAgIElQQzo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9j
ZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6OlVJOyB9CkBAIC0y
MjIsOCArMjIyLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEZpbmlzaExhdW5jaGluZyhQcm9j
ZXNzTGF1bmNoZXIqLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpIG92ZXJyaWRlOwogCiAg
ICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYlByb2Nlc3NQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJQcm9jZXNzUHJveHlNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVT
eW5jV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVXZWJQcm9jZXNzUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNXZWJQcm9jZXNzUHJveHlNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+
Jik7CiAKICAgICBib29sIGNhblRlcm1pbmF0ZUNoaWxkUHJvY2VzcygpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmgKaW5kZXggYzBkZDk5NGYyM2UzY2YzNTE2MjJiNTY2YzEyNzkyNDBhNmRkNTU2Yi4uMDU3
YjM3OGJlOWI2ZjM2YTk1NjQwMDlhYzE2ZThjZGE5ODA4ZmI5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
aApAQCAtNzQsNyArNzQsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBwZXJzaXN0ZW50U3RvcmFn
ZVBhdGgoY29uc3QgU3RyaW5nJiBsYWJlbCkgY29uc3Q7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VS
ZWNlaXZlcgotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHdy
aXRlRW5jb2RlclRvRGlzayhXZWJDb3JlOjpLZXllZEVuY29kZXImLCBjb25zdCBTdHJpbmcmIGxh
YmVsKSBjb25zdDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6S2V5ZWREZWNvZGVyPiBj
cmVhdGVEZWNvZGVyRnJvbURpc2soY29uc3QgU3RyaW5nJiBsYWJlbCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvU21hcnRNYWduaWZpY2F0aW9u
Q29udHJvbGxlci5oCmluZGV4IGI4NmFkMzVmM2MyMTAyNjY3OWIyYTI1MGFmZmIyOGNhMzg4MTQ0
M2IuLjI5ZWRiOTRmN2EyODAyN2Y1ZTZhMmRmOTIxYjI2MjYzMjZkNzJkNzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvU21hcnRNYWduaWZpY2F0aW9u
Q29udHJvbGxlci5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICAv
LyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRl
OwogCiAgICAgdm9pZCBkaWRDb2xsZWN0R2VvbWV0cnlGb3JTbWFydE1hZ25pZmljYXRpb25HZXN0
dXJlKFdlYkNvcmU6OkZsb2F0UG9pbnQgb3JpZ2luLCBXZWJDb3JlOjpGbG9hdFJlY3QgcmVuZGVy
UmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHZpc2libGVDb250ZW50Qm91bmRzLCBib29sIGlzUmVw
bGFjZWRFbGVtZW50LCBkb3VibGUgdmlld3BvcnRNaW5pbXVtU2NhbGUsIGRvdWJsZSB2aWV3cG9y
dE1heGltdW1TY2FsZSk7CiAgICAgdm9pZCBtYWduaWZ5KFdlYkNvcmU6OkZsb2F0UG9pbnQgb3Jp
Z2luLCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0UmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHZp
c2libGVDb250ZW50UmVjdCwgZG91YmxlIHZpZXdwb3J0TWluaW11bVNjYWxlLCBkb3VibGUgdmll
d3BvcnRNYXhpbXVtU2NhbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaAppbmRleCBlYjBj
MmMzZWM1ODQ3ZWViMDg2NzFkNzUyMjdjZDNkMDBmMjUyMTYxLi4wMDYzYzA4NDM3MDljMWY5ODVj
ZWYzOGZlZGQwMzAxNTQ1ODM1NzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaApAQCAt
ODEsNyArODEsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgaW5kaWNhdG9y
TG9jYXRpb24oKSBjb25zdDsKIAogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVy
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAg
ICB2b2lkIHdpbGxDb21taXRMYXllclRyZWUodWludDY0X3QgdHJhbnNhY3Rpb25JRCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5oCmluZGV4IDE4
MTgzNmRmMTI3OTI1YWQwOWZlOGQ1MTZjNGQzM2JkZTgyOTE3YzguLjMyMWVjMTA2OTQ5YWQ0NzZj
M2VlMzQyNjNjZTlhYjg1ZWNmZTU5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5oCkBAIC00NSw3ICs0NSw3IEBAIHByaXZhdGU6CiAgICAg
U2VjSXRlbVNoaW1Qcm94eSgpOwogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpXb3JrUXVldWVN
ZXNzYWdlUmVjZWl2ZXIKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAg
dm9pZCBzZWNJdGVtUmVxdWVzdChJUEM6OkNvbm5lY3Rpb24mLCB1aW50NjRfdCByZXF1ZXN0SUQs
IGNvbnN0IFNlY0l0ZW1SZXF1ZXN0RGF0YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaAppbmRleCBiNWIxMTU1ZTM4NjRk
OTczZDIyNmY0MWUxYTA5NjE3Y2Q2NWI4ZTY0Li5lNDZkZWQ4MTZlYWI2YjRiYjgxODcxYjMxMjAx
NWQ3ZjM5OThmODAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Zp
ZXdHZXN0dXJlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
Vmlld0dlc3R1cmVDb250cm9sbGVyLmgKQEAgLTEzOCw3ICsxMzgsNyBAQCBwdWJsaWM6CiAKIHBy
aXZhdGU6CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCi0gICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKSBvdmVycmlkZTsKIAogICAgIHN0YXRpYyBWaWV3R2VzdHVyZUNvbnRyb2xsZXIqIGdlc3R1
cmVDb250cm9sbGVyRm9yUGFnZSh1aW50NjRfdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwZjYxMDdmZGEyODdjYmQ4ZThm
NDU3MmQ4NDllZDg5MjU0ZGYzNzZlLi43MjJmN2JmMTljYWZiNDJiODhmYTBmMzczM2MxMzBhYTY0
MjE2OTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xNzEsOCArMTcxLDYgQEAKIAkJMUEyMTYxQjExMUYzNzY2NDAwOEFEMEY1
IC8qIE5QUnVudGltZU9iamVjdE1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQTIxNjFBRjExRjM3NjY0MDA4QUQwRjUgLyogTlBSdW50aW1lT2Jq
ZWN0TWFwLmNwcCAqLzsgfTsKIAkJMUEyMTYyQjAxMUYzODk3MTAwOEFEMEY1IC8qIE5QUnVudGlt
ZVV0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQTIxNjJBRTExRjM4OTcxMDA4QUQwRjUgLyogTlBSdW50aW1lVXRpbGl0aWVzLmNwcCAq
LzsgfTsKIAkJMUEyMTYyQjExMUYzODk3MTAwOEFEMEY1IC8qIE5QUnVudGltZVV0aWxpdGllcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyMTYyQUYx
MUYzODk3MTAwOEFEMEY1IC8qIE5QUnVudGltZVV0aWxpdGllcy5oICovOyB9OwotCQkxQTIzMjkw
MjE2MkM4NjczMDBEODJGN0EgLyogTWVzc2FnZURlY29kZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyMzI5MDAxNjJDODY3MzAwRDgyRjdBIC8q
IE1lc3NhZ2VEZWNvZGVyLmNwcCAqLzsgfTsKLQkJMUEyMzI5MDMxNjJDODY3MzAwRDgyRjdBIC8q
IE1lc3NhZ2VEZWNvZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQTIzMjkwMTE2MkM4NjczMDBEODJGN0EgLyogTWVzc2FnZURlY29kZXIuaCAqLzsg
fTsKIAkJMUEyNDY0RjMxODkxRTQ1MTAwMjM0QzVCIC8qIEFQSUxvYWRlckNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyNDY0RjIxODkxRTQ1
MTAwMjM0QzVCIC8qIEFQSUxvYWRlckNsaWVudC5oICovOyB9OwogCQkxQTI0QjVGMjExRjUzMUU4
MDBDMzgyNjkgLyogTWFjaFV0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQTI0QjVGMDExRjUzMUU4MDBDMzgyNjkgLyogTWFjaFV0aWxp
dGllcy5jcHAgKi87IH07CiAJCTFBMjRCNUYzMTFGNTMxRTgwMEMzODI2OSAvKiBNYWNoVXRpbGl0
aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTI0
QjVGMTExRjUzMUU4MDBDMzgyNjkgLyogTWFjaFV0aWxpdGllcy5oICovOyB9OwpAQCAtMTMzOCw4
ICsxMzM2LDggQEAKIAkJQkMwMzJEOEQxMEY0MzdBMDAwNThDMTVBIC8qIFdlYkZyYW1lLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAzMkQ4OTEwRjQz
N0EwMDA1OEMxNUEgLyogV2ViRnJhbWUuaCAqLzsgfTsKIAkJQkMwMzJEOEYxMEY0MzdBMDAwNThD
MTVBIC8qIFdlYlBhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMDMyRDhCMTBGNDM3QTAwMDU4QzE1QSAvKiBXZWJQYWdlLmggKi87IH07CiAJCUJD
MDMyRDk3MTBGNDM3QUYwMDU4QzE1QSAvKiBXZWJQcm9jZXNzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAzMkQ5MTEwRjQzN0FGMDA1OEMxNUEgLyog
V2ViUHJvY2Vzcy5oICovOyB9OwotCQlCQzAzMkRBNTEwRjQzN0QxMDA1OEMxNUEgLyogQXJndW1l
bnREZWNvZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDMDMyRDlEMTBGNDM3RDEwMDU4QzE1QSAvKiBBcmd1bWVudERlY29kZXIuY3BwICovOyB9
OwotCQlCQzAzMkRBNjEwRjQzN0QxMDA1OEMxNUEgLyogQXJndW1lbnREZWNvZGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAzMkQ5RTEwRjQzN0Qx
MDA1OEMxNUEgLyogQXJndW1lbnREZWNvZGVyLmggKi87IH07CisJCUJDMDMyREE1MTBGNDM3RDEw
MDU4QzE1QSAvKiBEZWNvZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMDMyRDlEMTBGNDM3RDEwMDU4QzE1QSAvKiBEZWNvZGVyLmNwcCAqLzsg
fTsKKwkJQkMwMzJEQTYxMEY0MzdEMTAwNThDMTVBIC8qIERlY29kZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDMyRDlFMTBGNDM3RDEwMDU4QzE1
QSAvKiBEZWNvZGVyLmggKi87IH07CiAJCUJDMDMyREE3MTBGNDM3RDEwMDU4QzE1QSAvKiBFbmNv
ZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
MDMyRDlGMTBGNDM3RDEwMDU4QzE1QSAvKiBFbmNvZGVyLmNwcCAqLzsgfTsKIAkJQkMwMzJEQTgx
MEY0MzdEMTAwNThDMTVBIC8qIEVuY29kZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDMyREEwMTBGNDM3RDEwMDU4QzE1QSAvKiBFbmNvZGVyLmgg
Ki87IH07CiAJCUJDMDMyREE5MTBGNDM3RDEwMDU4QzE1QSAvKiBBcmd1bWVudHMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDMyREExMTBGNDM3RDEw
MDU4QzE1QSAvKiBBcmd1bWVudHMuaCAqLzsgfTsKQEAgLTIxNTQsOCArMjE1Miw2IEBACiAJCTFB
MjE2MkFGMTFGMzg5NzEwMDhBRDBGNSAvKiBOUFJ1bnRpbWVVdGlsaXRpZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTlBSdW50aW1lVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFBMjJGMEZGMTI4OUZDRDkwMDg1RTc0RiAvKiBXS0J1bmRsZVBh
Z2VPdmVybGF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlUGFn
ZU92ZXJsYXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEyMkYxMDAxMjg5RkNE
OTAwODVFNzRGIC8qIFdLQnVuZGxlUGFnZU92ZXJsYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV0tCdW5kbGVQYWdlT3ZlcmxheS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTFBMjMyOTAwMTYyQzg2NzMwMEQ4MkY3QSAvKiBNZXNzYWdlRGVjb2Rl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZXNzYWdlRGVjb2Rl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFBMjMyOTAxMTYyQzg2NzMwMEQ4
MkY3QSAvKiBNZXNzYWdlRGVjb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZXNzYWdlRGVjb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTI0NjRG
MjE4OTFFNDUxMDAyMzRDNUIgLyogQVBJTG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEFQSUxvYWRlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQTI0QjVGMDExRjUzMUU4MDBDMzgyNjkgLyogTWFjaFV0aWxpdGllcy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYWNoVXRpbGl0aWVzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEyNEI1RjExMUY1MzFFODAwQzM4MjY5IC8qIE1h
Y2hVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFjaFV0aWxp
dGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzQzMSw4ICszNDI3LDggQEAK
IAkJQkMwMzJEODkxMEY0MzdBMDAwNThDMTVBIC8qIFdlYkZyYW1lLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDMDMyRDhCMTBGNDM3QTAwMDU4QzE1QSAvKiBXZWJQYWdlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQkMwMzJEOTExMEY0MzdBRjAwNThDMTVBIC8qIFdlYlByb2Nlc3MuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUHJvY2Vzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlCQzAzMkQ5RDEwRjQzN0QxMDA1OEMxNUEgLyogQXJndW1lbnREZWNvZGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFyZ3VtZW50RGVjb2Rlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDMDMyRDlFMTBGNDM3RDEwMDU4QzE1QSAv
KiBBcmd1bWVudERlY29kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJn
dW1lbnREZWNvZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMDMyRDlEMTBG
NDM3RDEwMDU4QzE1QSAvKiBEZWNvZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERlY29kZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzAz
MkQ5RTEwRjQzN0QxMDA1OEMxNUEgLyogRGVjb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEZWNvZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMDMy
RDlGMTBGNDM3RDEwMDU4QzE1QSAvKiBFbmNvZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEVuY29kZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQzAzMkRBMDEwRjQzN0QxMDA1OEMxNUEgLyogRW5jb2Rlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFbmNvZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDMDMyREExMTBGNDM3RDEwMDU4QzE1QSAvKiBBcmd1bWVudHMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQXJndW1lbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC00ODE2LDggKzQ4MTIsOCBAQAogCQkJCTFBRUZEMjc4MTFEMTZDODEwMDgyMTlEMyAvKiBB
cmd1bWVudENvZGVyLmggKi8sCiAJCQkJMUEzRDYxMDQxM0E3RjAzQTAwRjk1RDRFIC8qIEFyZ3Vt
ZW50Q29kZXJzLmNwcCAqLywKIAkJCQkxQUVGRDJGNjExRDE4MDdCMDA4MjE5RDMgLyogQXJndW1l
bnRDb2RlcnMuaCAqLywKLQkJCQlCQzAzMkQ5RDEwRjQzN0QxMDA1OEMxNUEgLyogQXJndW1lbnRE
ZWNvZGVyLmNwcCAqLywKLQkJCQlCQzAzMkQ5RTEwRjQzN0QxMDA1OEMxNUEgLyogQXJndW1lbnRE
ZWNvZGVyLmggKi8sCisJCQkJQkMwMzJEOUQxMEY0MzdEMTAwNThDMTVBIC8qIERlY29kZXIuY3Bw
ICovLAorCQkJCUJDMDMyRDlFMTBGNDM3RDEwMDU4QzE1QSAvKiBEZWNvZGVyLmggKi8sCiAJCQkJ
QkMwMzJEOUYxMEY0MzdEMTAwNThDMTVBIC8qIEVuY29kZXIuY3BwICovLAogCQkJCUJDMDMyREEw
MTBGNDM3RDEwMDU4QzE1QSAvKiBFbmNvZGVyLmggKi8sCiAJCQkJQkMwMzJEQTExMEY0MzdEMTAw
NThDMTVBIC8qIEFyZ3VtZW50cy5oICovLApAQCAtNDgyOCw4ICs0ODI0LDYgQEAKIAkJCQkxQUM3
NTM3RDE4M0JFNTBGMDA3MkNCMTUgLyogRGF0YVJlZmVyZW5jZS5jcHAgKi8sCiAJCQkJMUFDNzUz
N0UxODNCRTUwRjAwNzJDQjE1IC8qIERhdGFSZWZlcmVuY2UuaCAqLywKIAkJCQlDMENFNzJBQzEy
NDdFNzhEMDBCQzBFQzQgLyogSGFuZGxlTWVzc2FnZS5oICovLAotCQkJCTFBMjMyOTAwMTYyQzg2
NzMwMEQ4MkY3QSAvKiBNZXNzYWdlRGVjb2Rlci5jcHAgKi8sCi0JCQkJMUEyMzI5MDExNjJDODY3
MzAwRDgyRjdBIC8qIE1lc3NhZ2VEZWNvZGVyLmggKi8sCiAJCQkJMUFDNEM4MjgxNkI4NzZBOTAw
NjlEQ0NEIC8qIE1lc3NhZ2VGbGFncy5oICovLAogCQkJCTFBM0VFRDExMTYxQTUzRDYwMEFFQjRG
NSAvKiBNZXNzYWdlUmVjZWl2ZXIuaCAqLywKIAkJCQkxQTNFRUQwQzE2MUE1MzUzMDBBRUI0RjUg
LyogTWVzc2FnZVJlY2VpdmVyTWFwLmNwcCAqLywKQEAgLTc1MTksNyArNzUxMyw3IEBACiAJCQkJ
MUFFRkQyRjcxMUQxODA3QjAwODIxOUQzIC8qIEFyZ3VtZW50Q29kZXJzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQUFGMEM0QTEyQjE2MzM0MDA4RTQ5RTIgLyogQXJndW1lbnRDb2RlcnNDRi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTE3OUZEOUMxMzREMzgwNjAwMTVCODgzIC8qIEFyZ3VtZW50Q29k
ZXJzTWFjLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzAzMkRBNjEwRjQzN0QxMDA1OEMxNUEgLyog
QXJndW1lbnREZWNvZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzAzMkRBNjEwRjQzN0QxMDA1
OEMxNUEgLyogRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEQTgxMEY0MzdEMTAw
NThDMTVBIC8qIEVuY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyREE5MTBGNDM3RDEw
MDU4QzE1QSAvKiBBcmd1bWVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFMUEwQkQyMUE0OEU2
QzYwMDU0RUY3NCAvKiBBc3NlcnRpb25TZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8sCkBAIC03
NjM3LDcgKzc2MzEsNiBAQAogCQkJCTFBMjRCNUYzMTFGNTMxRTgwMEMzODI2OSAvKiBNYWNoVXRp
bGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTFBMEJENTFBNDhFNkM2MDA1NEVGNzQgLyog
TWFuYWdlZENvbmZpZ3VyYXRpb25TUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxOTMzREVGMTk2
NUVCMzEwMDhBQzNFQSAvKiBNZW51VXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkxQTIz
MjkwMzE2MkM4NjczMDBEODJGN0EgLyogTWVzc2FnZURlY29kZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBQzRDODI5MTZCODc2QTkwMDY5RENDRCAvKiBNZXNzYWdlRmxhZ3MuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBM0VFRDEyMTYxQTUzRDYwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBM0VFRDBGMTYxQTUzNTQwMEFFQjRGNSAvKiBNZXNzYWdlUmVj
ZWl2ZXJNYXAuaCBpbiBIZWFkZXJzICovLApAQCAtODk4NCw3ICs4OTc3LDcgQEAKIAkJCQkxQTNE
NjEwNTEzQTdGMDNBMDBGOTVENEUgLyogQXJndW1lbnRDb2RlcnMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUFBRjBDNEIxMkIxNjMzNDAwOEU0OUUyIC8qIEFyZ3VtZW50Q29kZXJzQ0YuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRTE3OUZEOUYxMzREMzgyNTAwMTVCODgzIC8qIEFyZ3VtZW50Q29k
ZXJzTWFjLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQkMwMzJEQTUxMEY0MzdEMTAwNThDMTVBIC8q
IEFyZ3VtZW50RGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzAzMkRBNTEwRjQzN0Qx
MDA1OEMxNUEgLyogRGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzAzMkRBNzEwRjQz
N0QxMDA1OEMxNUEgLyogRW5jb2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTlDNEE1ODE4
QjgxMTc0MDA3QkRDQjYgLyogQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNTE1RTc3MjcxODNERDZGNjAwMDcyMDNGIC8qIEFzeW5jUmVxdWVzdC5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTkxMDIsNyArOTA5NSw2IEBACiAJCQkJNTE2MEJGRTExMzM4MURGOTAw
OTE4OTk5IC8qIExvZ2dpbmdGb3VuZGF0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyNEI1
RjIxMUY1MzFFODAwQzM4MjY5IC8qIE1hY2hVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTE5MzNERjAxOTY1RUIzMTAwOEFDM0VBIC8qIE1lbnVVdGlsaXRpZXMubW0gaW4gU291cmNl
cyAqLywKLQkJCQkxQTIzMjkwMjE2MkM4NjczMDBEODJGN0EgLyogTWVzc2FnZURlY29kZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUEzRUVEMEUxNjFBNTM1NDAwQUVCNEY1IC8qIE1lc3NhZ2VS
ZWNlaXZlck1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDVBQjYyRjFBNjlENkZCMDAxNEE5
Q0IgLyogTWVzc2FnZVJlY29yZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJENUFCNjMwMUE2
OUQ2RkIwMDE0QTlDQiAvKiBNZXNzYWdlUmVjb3JkZXJQcm9iZXMuZCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50
Q29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5
bWVudENvb3JkaW5hdG9yLmgKaW5kZXggMzBiNzIzNzY0ZDIxYTdjZjRhZTgwODA4ZDViODMzOTUw
YjYyMGY0Mi4uMjU3Y2U1YjJkODI2ZjJjNjY0NTA3MzUwNzFiMmU5MDMwMTE1NDc1MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRp
bmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1l
bnRDb29yZGluYXRvci5oCkBAIC02Nyw3ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYXlt
ZW50Q29vcmRpbmF0b3JEZXN0cm95ZWQoKSBvdmVycmlkZTsKIAogICAgIC8vIElQQzo6TWVzc2Fn
ZVJlY2VpdmVyLgotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKICAgICAvLyBN
ZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgdmFsaWRhdGVNZXJjaGFudChjb25zdCBTdHJpbmcm
IHZhbGlkYXRpb25VUkxTdHJpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmgKaW5k
ZXggYmJkYmEzMjE2OWE0MTcxMGYxZTlhZjc4YTQzNTk1ZmVkMDliNzdhMi4uZmRhNzU2YzI4NzEy
MjU0ZDBlYWM1NWM4MmNiNGE1YzljNjMzODI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eS5oCkBAIC01NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6RWxlbWVudCog
ZWxlbWVudEZvck5vZGVIYW5kbGUoV2ViRnJhbWUmLCBjb25zdCBTdHJpbmcmKTsKIAogICAgIC8v
IEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAKICAgICAvLyBDYWxsZWQgYnkgV2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eSBtZXNzYWdlcwogICAgIHZvaWQgZXZhbHVhdGVKYXZhU2NyaXB0
RnVuY3Rpb24odWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcm
IGZ1bmN0aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wgZXhwZWN0c0ltcGxpY2l0
Q2FsbGJhY2tBcmd1bWVudCwgaW50IGNhbGxiYWNrVGltZW91dCwgdWludDY0X3QgY2FsbGJhY2tJ
RCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29v
a2llTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tp
ZU1hbmFnZXIuaAppbmRleCAxMTZkYzM0ODY2MGVhMjYzNjYyZWRhMjZiZDQzN2QyMWU2MDU1YTg2
Li5hOTk1ODY2MzM1NWE3YTRhYzMwYzExMzFhNGRkMmEwNzE0MGZlYjk3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmgKQEAg
LTYwLDcgKzYwLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIElQQzo6TWVzc2FnZVJl
Y2VpdmVyCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZ2V0
SG9zdG5hbWVzV2l0aENvb2tpZXModWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkZWxl
dGVDb29raWVzRm9ySG9zdG5hbWUoY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRv
U2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIv
V2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXggMTUzMTY2ZDM5ZTk5MmJhNzllYjYwMTNh
ZGZiYTIzOGQ0NTRmZjUxYS4uMWU5MjA0OTZhNmI4Y2Q3YWQyYzA4NTAzY2MxNGUxMTlhMTBlNmU5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhl
ZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAt
OTYsNyArOTYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tl
ZChjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVy
LCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRfdCBuZXdWZXJzaW9uKTsKICAgICB2b2lkIGRp
ZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0
cmluZz4mIGRhdGFiYXNlTmFtZXMpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIAogICAgIHZvaWQgY29u
bmVjdGlvblRvU2VydmVyTG9zdCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25u
ZWN0aW9uLmNwcAppbmRleCA0YzRlMWE2MmNmYjMwZTg4MWVlNzI5MmFjZjNhNzQ1ZTQ2ZGM2Y2Jh
Li42MTgxMzBmNGQwNzk1MmEwZDU3NjAwODQ2MTQ4ZjEyNGY1MjVlODkwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dl
YlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgV2ViVG9E
YXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjp+V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9u
KCkKIHsKIH0KIAotdm9pZCBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpNZXNzYWdlRGVjb2Rl
ciYgZGVjb2RlcikKK3ZvaWQgV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVj
b2RlcikKIHsKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBpZiAoZGVjb2Rlci5t
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
cjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29u
bmVjdGlvbi5oCmluZGV4IGU1OWIzMTYxZDc2YWQ5MTcyM2EzYWU2NjAxNWNiODQ3YzNjMDAzODYu
LjI4MmZkZTZhMTMwN2I3YTc2NDc3NDE3MjEzNjk5OTM3YjM1ZWU1YzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29u
bmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRv
RGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAg
ICAgV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
Zmllcik7CiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJy
aWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBv
dmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmlu
Z1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CiAgICAgSVBDOjpQcm9jZXNzVHlwZSBs
b2NhbFByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBDOjpQcm9jZXNzVHlwZTo6V2Vi
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2Vi
RnVsbFNjcmVlbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2Ny
ZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcAppbmRleCAyYTUxMWExNTgyYzJkMzYxZDY2Njcw
NDg3ZWZjNTdlNmI1MWE1MjFkLi4zNjY5YzJkYTk4NjBiM2FlYTYwMmM4ZGJmN2QwZmJjOTg3Nzk4
Y2RjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2Vi
RnVsbFNjcmVlbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVs
bFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgV2ViQ29y
ZTo6RWxlbWVudCogV2ViRnVsbFNjcmVlbk1hbmFnZXI6OmVsZW1lbnQoKQogICAgIHJldHVybiBt
X2VsZW1lbnQuZ2V0KCk7IAogfQogCi12b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZURlY29k
ZXImIGRlY29kZXIpCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKIHsK
ICAgICBkaWRSZWNlaXZlV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIGRl
Y29kZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2Ny
ZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1
bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaAppbmRleCA3Y2RkZGNmZTdlNDIxZjFhY2E0
NTM0ZjM3YzQ2M2U2Mjc0NzEzYzAxLi5iNjA3OGE4YTU0MGQ1YTI4OTY2NTY3ZjQzOWNlYWRjNDhl
ZDE4ZTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4v
V2ViRnVsbFNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1
bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaApAQCAtMzMsNyArMzMsNyBAQAogCiBuYW1l
c3BhY2UgSVBDIHsKIGNsYXNzIENvbm5lY3Rpb247Ci1jbGFzcyBNZXNzYWdlRGVjb2RlcjsKK2Ns
YXNzIERlY29kZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUxLDcgKzUxLDcgQEAg
cHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViRnVsbFNjcmVlbk1hbmFnZXI+IGNyZWF0ZShXZWJQ
YWdlKik7CiAgICAgdmlydHVhbCB+V2ViRnVsbFNjcmVlbk1hbmFnZXIoKTsKIAotICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYp
OworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNv
ZGVyJik7CiAKICAgICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbihib29sIHdpdGhLZXlib2FyZCk7
CiAgICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKTsK
QEAgLTc0LDcgKzc0LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2F2ZVNjcm9sbFBvc2l0aW9u
KCk7CiAgICAgdm9pZCByZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsKIAotICAgIHZvaWQgZGlkUmVj
ZWl2ZVdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1l
c3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViRnVsbFNjcmVlbk1hbmFnZXJN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogCiAgICAgV2ViQ29yZTo6
SW50UmVjdCBtX2luaXRpYWxGcmFtZTsKICAgICBXZWJDb3JlOjpJbnRSZWN0IG1fZmluYWxGcmFt
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0
aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCmluZGV4IDVhYjliYTA4MGMwOWI1MTEyMWQ5M2Nj
YzFjZmZlOTRkMmM1YWQ2MGEuLjVmYTJmYmJiOGU0ZGEzMDE3ZDE5YTJlMTRlOWRkZjgzOTE5MzUx
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9s
b2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBpc1VwZGF0aW5nKCkgY29uc3QgeyByZXR1
cm4gIW1fcGFnZVNldC5pc0VtcHR5KCk7IH0KICAgICBib29sIGlzSGlnaEFjY3VyYWN5RW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuICFtX2hpZ2hBY2N1cmFjeVBhZ2VTZXQuaXNFbXB0eSgpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29u
RGF0YWJhc2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2Uv
V2ViSWNvbkRhdGFiYXNlUHJveHkuaAppbmRleCA3YmRhNjMyYjU4MGY5NTllMzMyNWVlMGNhMGJi
MmM0NTZiMjk2ZjZkLi42MmEwNmMzZjk0ZjdkN2UwOTc2MzViNTJiNzhjNDMzOGViM2NhOGJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29u
RGF0YWJhc2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFi
YXNlL1dlYkljb25EYXRhYmFzZVByb3h5LmgKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKSBvdmVycmlkZTsKICAgICAKICAgICAvLyBDYWxsYmFja3MgZnJvbSB0aGUgVUlQcm9jZXNz
CiAgICAgdm9pZCB1cmxJbXBvcnRGaW5pc2hlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCmluZGV4IGRk
MWM0YTc4NTQ5ZmVjODg3MzY5NGIwYzNjOWUxYWFjY2ZhOGFiMGUuLjkxNWUzYTE1YWRkZmVhODAx
ZDZhMDRkYWZhYjc3ZmI1YzJmZDMyMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKQEAgLTU2LDcgKzU2
LDcgQEAgY2xhc3MgRGF0YTsKIH0KIAogbmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBBcmd1bWVudERl
Y29kZXI7CitjbGFzcyBEZWNvZGVyOwogY2xhc3MgQ29ubmVjdGlvbjsKIGNsYXNzIERhdGFSZWZl
cmVuY2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDkzZThlMGMwNWM2MWI3
MzEwZGJhMjg3NmQ3NmNiZjcxMTFjOTFiODcuLjA4YWIxZTM1NTE2ZjE4ZDljMGQ0NTdlZjYxNDQx
OWE5YmMzMDBkNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC01MSw3ICs1MSw3
IEBAIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6fk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigp
CiB7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZURlY29kZXImIGRlY29k
ZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCiB7CiAgICAg
aWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJSZXNvdXJj
ZUxvYWRlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIGlmIChXZWJSZXNvdXJj
ZUxvYWRlciogd2ViUmVzb3VyY2VMb2FkZXIgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJM
b2FkZXJTdHJhdGVneSgpLndlYlJlc291cmNlTG9hZGVyRm9ySWRlbnRpZmllcihkZWNvZGVyLmRl
c3RpbmF0aW9uSUQoKSkpCkBAIC02Myw3ICs2Myw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
CiAgICAgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoY29ubmVjdGlv
biwgZGVjb2Rlcik7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNl
aXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0
ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JikKK3ZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKQogewogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IGVhZTMzODFlMTNiZTE3ZWI4
NGVlZGNiM2VlNzMyMzQ5MTk3YTdiYzYuLjBjNmI0M2M4Njk0MWUyNzk5MTNiYzRhM2I3MmNiOGZj
YTBkYzA5ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTU2LDcgKzU2LDcgQEAgcHVi
bGljOgogICAgIAogICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpIHsgcmV0dXJuIG1f
Y29ubmVjdGlvbi5nZXQoKTsgfQogCi0gICAgdm9pZCBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7
CisgICAgdm9pZCBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIAogICAgIHZvaWQgd3JpdGVCbG9ic1RvVGVt
cG9yYXJ5RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBGdW5jdGlvbjx2b2lk
IChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZVBhdGhzKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7
CiAKQEAgLTY0LDggKzY0LDggQEAgcHJpdmF0ZToKICAgICBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKIAogICAgIC8vIElQQzo6Q29ubmVjdGlv
bjo6Q2xpZW50Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY01l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVl
X3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6
OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkQ2xvc2Uo
SVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2Vp
dmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOwogICAg
IElQQzo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQ
Qzo6UHJvY2Vzc1R5cGU6OldlYjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaAppbmRleCA5ZDliOGQ3NWRlZmMwYmZiMWNm
MjYyMDc0NzcyNTkyOGNkMDYxMTY3Li5kZWFlM2Q0YzYzNGE2NDU0MGQzMDczNTM2N2JiNTg3NWYw
YmU0YTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViUmVzb3VyY2VMb2FkZXIuaApAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAKICAgICB+V2Vi
UmVzb3VyY2VMb2FkZXIoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlJlc291cmNlTG9hZGVy
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9p
ZCBkaWRSZWNlaXZlV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpOwogCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXIqIHJlc291cmNlTG9h
ZGVyKCkgY29uc3QgeyByZXR1cm4gbV9jb3JlTG9hZGVyLmdldCgpOyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25N
YW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90
aWZpY2F0aW9uTWFuYWdlci5oCmluZGV4IGE4YjE1NDNlZGQ0ZDgwNjhhMTg3OTMyOTdmNjQ2ZjMw
MTM2ZWQyOTYuLjE3MWU1NWZjOGIxNzI2YzNhN2Q0MDdiYjg5MTM3NDIxNjYwYjI3ODEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaApAQCAtNzMsNyArNzMsNyBAQCBwcml2YXRlOgog
CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5l
cmF0ZWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXIm
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogICAgIAogICAgIHZvaWQgZGlkU2hvd05vdGlmaWNh
dGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CiAgICAgdm9pZCBkaWRDbGlja05vdGlmaWNh
dGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW4uY3BwCmluZGV4IDhlMmNlMjQ3MWVhODVkOWNiMDM3YjI4OGFhMDRm
YTllNzczOTRlZjIuLmVjMjNmY2YzMTcyYTc2NjkyMWVlYjFmZmE4NWE0NGNhNDE5MmQxYmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwCkBAIC00Niw3
ICs0Niw3IEBAIHZvaWQgUGx1Z2luOjpQYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogI2VuZGlmCiB9CiAKLWJvb2wgUGx1Z2luOjpQYXJhbWV0ZXJzOjpkZWNv
ZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMp
Citib29sIFBsdWdpbjo6UGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
UGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBTdHJpbmcgdXJsU3RyaW5nOwogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUodXJsU3RyaW5nKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW4uaAppbmRleCAxNTRmNzhhNTA0OGM0MDRkYTExODBkYWJmNmIzNTNlNzYx
Njk3NWM4Li41ZWY3ZTcxNTJkMzg0YTk0YTc0OTkzZDRhNjg5MDRhN2I5ZDhmY2VkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oCkBAIC00OSw3ICs0OSw3IEBA
IHN0cnVjdCBOUE9iamVjdDsKIAogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBFbmNvZGVyOwotY2xh
c3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgRGVjb2RlcjsKIH0KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtOTMsNyArOTMsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgICAgICB2b2lkIGVu
Y29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQ
Qzo6QXJndW1lbnREZWNvZGVyJiwgUGFyYW1ldGVycyYpOworICAgICAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoSVBDOjpEZWNvZGVyJiwgUGFyYW1ldGVycyYpOwogICAgIH07CiAKICAgICAvLyBTZXRz
IHRoZSBhY3RpdmUgcGx1Zy1pbiBjb250cm9sbGVyIGFuZCBpbml0aWFsaXplcyB0aGUgcGx1Zy1p
bi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDEwNjM3OGQwZDY0M2Q3NGY2ZDE0NjYx
OGMwYThlMzY2NGVjMzFmMDEuLmJlZjliNTM5MDEwZmVhZjJhMGEwOGZkMTFkN2EyNzk2NmQ5YWEw
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtODksNyArODksNyBAQCB2b2lkIFBs
dWdpblByb2Nlc3NDb25uZWN0aW9uOjpyZW1vdmVQbHVnaW5Qcm94eShQbHVnaW5Qcm94eSogcGx1
Z2luKQogICAgIG1fcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLT5yZW1vdmVQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbih0aGlzKTsKIH0KIAotdm9pZCBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6Ok1l
c3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQordm9pZCBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6ZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXIm
IGRlY29kZXIpCiB7CiAgICAgaWYgKCFkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkgewogICAgICAg
ICBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rpb24sIGRl
Y29kZXIpOwpAQCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDCiAgICAg
cGx1Z2luUHJveHktPmRpZFJlY2VpdmVQbHVnaW5Qcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVj
b2Rlcik7CiB9CiAKLXZvaWQgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5j
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZURlY29kZXIm
IGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCit2
b2lkIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVl
X3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7CiAgICAgaWYgKGRlY29kZXIubWVz
c2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpOUE9iamVjdE1lc3NhZ2VSZWNlaXZlcjo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIG1fbnBSZW1vdGVPYmplY3RNYXAtPmRp
ZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCBmZDI4MTEwMDM2YjA1ZTc3OGI0OWZiNjZjY2FiNjJh
MmNiOGY5YTI2Li5hMzlmOTJhM2FhOTI4ZDNmYWYwNmJiNzYzNTc5NDAwMmRiMjA0N2FmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNjQsMTYgKzY0LDE2IEBAIHByaXZhdGU6CiAgICAgUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb24oUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyKiwgdWlu
dDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29u
bmVjdGlvbklkZW50aWZpZXIsIGJvb2wgc3VwcG9ydHNBc3luY2hyb25vdXNJbml0aWFsaXphdGlv
bik7CiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRl
OwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRl
OworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNv
ZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBv
dmVycmlkZTsKICAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNl
IG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKICAgICBJUEM6OlByb2Nlc3NUeXBlIGxvY2FsUHJvY2Vz
c1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlByb2Nlc3NUeXBlOjpXZWI7IH0KICAgICBJ
UEM6OlByb2Nlc3NUeXBlIHJlbW90ZVByb2Nlc3NUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gSVBD
OjpQcm9jZXNzVHlwZTo6UGx1Z2luOyB9CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgotICAg
IHZvaWQgZGlkUmVjZWl2ZVBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1Bs
dWdpblByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1BsdWdpblByb2Nlc3NDb25u
ZWN0aW9uTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1
ZV9wdHI8SVBDOjpFbmNvZGVyPiYpOwogICAgIHZvaWQgc2V0RXhjZXB0aW9uKGNvbnN0IFN0cmlu
ZyYpOwogICAgIHZvaWQgYXVkaW9IYXJkd2FyZURpZEJlY29tZUFjdGl2ZSgpOwogICAgIHZvaWQg
YXVkaW9IYXJkd2FyZURpZEJlY29tZUluYWN0aXZlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbk1hbmFnZXIuY3BwCmluZGV4IDhmMzFkMmQ5ZDM4MGQzZjZjZDY5ZWVkMzQwOGYyZmY5MGZj
NDQ1NDcuLjkyZGQxMDNlYjdhZGIyMmFhYjRkNjY4ZTc0ZWIwOTdlM2MxMDYzZWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNp
ZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIAotI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rl
ci5oIgorI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgiCiAjaW5jbHVk
ZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbk1hbmFnZXJNZXNzYWdlcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdl
ci5oCmluZGV4IDY0NzVmZGQ4ZDU2YWFhZDQ0ZGY0NzExMDc3MzYzNWEyZTJkYzRkZmYuLjRmMTM3
Yjg1ZGQwMTc2MTNlYmQxZjhhZjIxMmU3YzdjODYzMGNmOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb25NYW5hZ2VyLmgKQEAgLTU2LDcgKzU2LDcgQEAgcHJpdmF0ZToKICAgICBQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIoKTsKIAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6V29y
a1F1ZXVlTWVzc2FnZVJlY2VpdmVyLgotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7
CiAKICAgICB2b2lkIHBsdWdpblByb2Nlc3NDcmFzaGVkKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NU
b2tlbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm94eS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b3h5LmgKaW5kZXggZWRhOTYyNGZiYWI0OTdlNDQ0MTk1YTgwNzY2NmQ0NDdlMmQ4NGJkMy4uYTdj
ODFiMDM3ZjMyNTdiNWI0YWVmNDEwODUxNzc0ZDZkNjY0OWY0MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmgKQEAgLTYzLDggKzYzLDggQEAg
cHVibGljOgogICAgIHVpbnQ2NF90IHBsdWdpbkluc3RhbmNlSUQoKSBjb25zdCB7IHJldHVybiBt
X3BsdWdpbkluc3RhbmNlSUQ7IH0KICAgICB2b2lkIHBsdWdpblByb2Nlc3NDcmFzaGVkKCk7CiAK
LSAgICB2b2lkIGRpZFJlY2VpdmVQbHVnaW5Qcm94eU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpNZXNzYWdlRGVjb2RlciYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNQbHVnaW5Qcm94
eU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5p
cXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJveHlN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNQbHVnaW5Qcm94eU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsKIAogICAgIGJvb2wgaXNCZWluZ0Fz
eW5jaHJvbm91c2x5SW5pdGlhbGl6ZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3dhaXRp
bmdPbkFzeW5jaHJvbm91c0luaXRpYWxpemF0aW9uOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvci5oCmluZGV4IGI2ZjYyZmVjYTFjOTVjMmVkYzU4ODhjMzkyYzQyNmU1MmVmM2IwYWIu
LmNmNWRjZWQzYjRjNzQyYmIwOTM2Y2YzZThlM2JlYzQzZDJkMjAxNzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
VGltZXIuaD4KIAogbmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFz
cyBEZWNvZGVyOwogY2xhc3MgRW5jb2RlcjsKIH0KIApAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgaXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygpIGNvbnN0IG92ZXJyaWRlOwogCiAg
ICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJy
aWRlOwogICAgIAogICAgIC8vIFJlc3BvbmQgdG8gVUkgcHJvY2VzcyBjaGFuZ2VzLgogICAgIHZv
aWQgc2Nyb2xsUG9zaXRpb25DaGFuZ2VkRm9yTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHN5bmNMYXll
clBvc2l0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU2Nyb2xs
aW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KaW5kZXggYWJkMmU4
YTFmZjI2MDVlZGQ0MThiNmY3OGNhNDg1MDY0NmE0MjIxOC4uNTU2MDNkYThkMTViMjdhNzNmZmI0
NGQwNGQ0YzBkM2M0ZGQ0OTE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0K
QEAgLTMwLDcgKzMwLDYgQEAKIAogI2ltcG9ydCAiQXJndW1lbnRDb2RlcnMuaCIKICNpbXBvcnQg
IkdyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oIgotI2ltcG9ydCAiTWVzc2FnZURlY29kZXIuaCIKICNp
bXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgiCiAjaW1wb3J0ICJSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvck1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclRyYW5zYWN0aW9uLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1N0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
U3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5oCmluZGV4IDYzMzg5MTE2NWNiYmE3OWQzN2RhZjkxYTUx
MjExMDcxZGNhZWQ1M2YuLmViYmY2YmJmZDMxMzdlZjJjZTQ2MDE3OGZhZDRjOTA2MGU1YjE3NTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlQXJl
YU1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlQXJl
YU1hcC5oCkBAIC02NSw3ICs2NSw3IEBAIHByaXZhdGU6CiAgICAgU3RvcmFnZUFyZWFNYXAoU3Rv
cmFnZU5hbWVzcGFjZUltcGwqLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYpOwogCiAg
ICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJy
aWRlOwogCiAgICAgdm9pZCBkaWRHZXRWYWx1ZXModWludDY0X3Qgc3RvcmFnZU1hcFNlZWQpOwog
ICAgIHZvaWQgZGlkU2V0SXRlbSh1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgY29uc3QgU3RyaW5n
JiBrZXksIGJvb2wgcXVvdGFFcnJvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuaApp
bmRleCBkYWIwY2QwZjUzNDhhN2RlZDMwOTFkNGMxYzQwM2RlMTljMWYzMGYzLi5jNTk3NjFkZjU4
NWE5MTRlMGU0MjJjZDRjODJjMjM1MzIxYTk1ODgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250
cm9sbGVyLmgKQEAgLTc3LDcgKzc3LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgLy8gSVBD
OjpNZXNzYWdlUmVjZWl2ZXIuCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAog
ICAgIHZvaWQgYWRkVXNlckNvbnRlbnRXb3JsZHMoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjx1aW50
NjRfdCwgU3RyaW5nPj4mKTsKICAgICB2b2lkIHJlbW92ZVVzZXJDb250ZW50V29ybGRzKGNvbnN0
IFZlY3Rvcjx1aW50NjRfdD4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0RyYXdpbmdBcmVhLmgKaW5kZXggNzhmNTU3ZjRmZGRlODdkN2VlYjEyN2I4MDcyMTg0ZDM3
MmFmNzU3YS4uOGIwZjc1MWMzMmYxNmRiMmZmMzRhZTJhYWFiNDA1YmNjNDdhZjBjZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKQEAgLTQy
LDcgKzQyLDcgQEAKIAogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBDb25uZWN0aW9uOwotY2xhc3Mg
TWVzc2FnZURlY29kZXI7CitjbGFzcyBEZWNvZGVyOwogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC0xMTUsNyArMTE1LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBVU0UoQ09PUkRJTkFU
RURfR1JBUEhJQ1NfTVVMVElQUk9DRVNTKQotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQ29v
cmRpbmF0ZWRMYXllclRyZWVIb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQ29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSA9IDA7
CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdVcGRhdGVk
U2Nyb2xsUG9zaXRpb24oc3RkOjpmdW5jdGlvbjx2b2lkICgpPik7CkBAIC0xNTIsOCArMTUyLDgg
QEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgot
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdl
RGVjb2RlciYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpF
bmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRy
PElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCiAg
ICAgLy8gRklYTUU6IFRoZXNlIHNob3VsZCBiZSBwdXJlIHZpcnR1YWwuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKaW5kZXggYWRm
N2U1Zjk2NjA4NWM0NGEzZTc1ZWZmZTdiNjYxMDVjZTIxMGMxYS4uMWQ0Nzc4NzdlYWFlNDA0NTI2
YTA3NDUxYzA3MTg2OTk3YTU1MGU1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaApAQCAtNzQsNyArNzQsNyBAQCBwcml2YXRl
OgogICAgIEV2ZW50RGlzcGF0Y2hlcigpOwogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpXb3Jr
UXVldWVNZXNzYWdlUmVjZWl2ZXIuCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsK
IAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lkIHdoZWVsRXZlbnQodWludDY0X3Qg
cGFnZUlELCBjb25zdCBXZWJXaGVlbEV2ZW50JiwgYm9vbCBjYW5SdWJiZXJCYW5kQXRMZWZ0LCBi
b29sIGNhblJ1YmJlckJhbmRBdFJpZ2h0LCBib29sIGNhblJ1YmJlckJhbmRBdFRvcCwgYm9vbCBj
YW5SdWJiZXJCYW5kQXRCb3R0b20pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1ZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmgKaW5k
ZXggNTEwYWY2ZjU3NjAwYmNlYmFlODE5OGQ1MDczNTQzNGY5N2M5Y2M3OS4uNmZmZjY1MjBmZDFm
ZDgxYjQ1ZTBhMmIyZGYwNjBjMjkzNmZlYzNlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxl
Y3Rvci5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICAvLyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlci4KLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCiAg
ICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KICAgICB2b2lkIGNvbGxlY3RHZW9tZXRyeUZvclNtYXJ0
TWFnbmlmaWNhdGlvbkdlc3R1cmUoV2ViQ29yZTo6RmxvYXRQb2ludCBvcmlnaW4pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVEaXNwYXRj
aGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3Bh
dGNoZXIuaAppbmRleCBiYmRlNWFmNzVhNmViZWQzNDEzMDZhZmM4MGU2YmZlMTBlZWUzNzIzLi5i
ZmY5ZjZkYjcxZjU2NWE4ZDI2YTU2NjgzYjAzZGM2NGY1NjlhODIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIu
aApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFZpZXdVcGRhdGVEaXNw
YXRjaGVyKCk7CiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpXb3JrUXVldWVNZXNzYWdlUmVjZWl2
ZXIuCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1l
c3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAogICAgIHZvaWQgdmlzaWJs
ZUNvbnRlbnRSZWN0VXBkYXRlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgVmlzaWJsZUNvbnRlbnRS
ZWN0VXBkYXRlSW5mbyYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5oCmluZGV4IGQ3Nzc3
MmIxMWJlN2Q1ZDA0NzU0YTNkODc4NTBmY2ZlNTc4YjJlZjguLmUxMzMwODg0YjA1YWY2NmViYTQ5
MDY1NjgwMWY3NDU4OGZhODRkMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5oCkBAIC00
Niw3ICs0Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRWaXNpdGVkTGluayhXZWJDb3JlOjpQ
YWdlJiwgV2ViQ29yZTo6TGlua0hhc2gpIG92ZXJyaWRlOwogCiAgICAgLy8gSVBDOjpNZXNzYWdl
UmVjZWl2ZXIuCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAogICAgIHZvaWQg
c2V0VmlzaXRlZExpbmtUYWJsZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYpOwogICAgIHZv
aWQgdmlzaXRlZExpbmtTdGF0ZUNoYW5nZWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkxpbmtIYXNo
PiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYklu
c3BlY3Rvci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rv
ci5oCmluZGV4IDg0MDU4ZmIzYTNmOWQwZWE5OGIzN2ZhMWUyNzk3YTk2ZDY1YThmN2IuLjYyZmQ5
NTQ3MWY2ZjE5MGUyMDQwNzYxNGM2OGM1ZWMwOTQ2NjI4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKQEAgLTQ5LDcgKzQ5LDcgQEAg
cHVibGljOgogICAgIENvbm5lY3Rpb25UeXBlIGNvbm5lY3Rpb25UeXBlKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gQ29ubmVjdGlvblR5cGU6OkxvY2FsOyB9CiAKICAgICAvLyBJbXBsZW1lbnRl
ZCBpbiBnZW5lcmF0ZWQgV2ViSW5zcGVjdG9yTWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYp
IG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVu
dAogICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGUgeyBjbG9zZSgp
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5z
cGVjdG9yVUkuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0
b3JVSS5oCmluZGV4IGJkNGQ1NzllOTMyMmQ4N2IxNjJlOGViN2FiY2ViMmIwMTNiMmE5NjYuLmMx
N2ExMWQ4MGEwNWU4M2E0ZTUwMTM5M2NmNTE1MWFhZWUwOWExZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5oCkBAIC00NCw3ICs0
NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYkluc3BlY3RvclVJPiBjcmVhdGUoV2Vi
UGFnZSYpOwogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkluc3BlY3RvclVJ
TWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAK
ICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpD
b25uZWN0aW9uJikgb3ZlcnJpZGUgeyBjbG9zZVdpbmRvdygpOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZTYzOWMzZDFmY2E1YjBkNTUw
Zjg1YjQ4ODQ1NmM4YTJkYjg1MmUwYi4uZTUxYTlhNjA0NDRjNzg0YmFjMjdkNDJhOGM2OWE1MzNk
Y2ZjMGYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcApAQCAtMzg3OCw3ICszODc4LDcgQEAgYm9vbCBXZWJQYWdlOjp3aW5kb3dBbmRXZWJQYWdl
QXJlRm9jdXNlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCku
aXNGb2N1c2VkKCkgJiYgbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5pc0FjdGl2ZSgpOwogfQog
Ci12b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRl
Y29kZXIpCiB7CiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTFRJUFJPQ0VTUykKICAg
ICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OkNvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdDo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CkBAIC0zOTEwLDcgKzM5
MTAsNyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgSVBDOjpNZXNzYWdlRGVjb2RlcgogICAgIGRpZFJlY2VpdmVXZWJQYWdlTWVz
c2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZl
U3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVy
KQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVu
Y29kZXI+JiByZXBseUVuY29kZXIpCiB7ICAgCiAgICAgZGlkUmVjZWl2ZVN5bmNXZWJQYWdlTWVz
c2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMTliZDQ0ZmIxNjA2OTJhNGJl
ZDM5ODg3Mzg5NDQ4ZTI1MTBjMWYzMi4uYTZkNjU5M2RhZGYyYTVmNWI0MDg5ODNhMDg2MjgwMjdm
ZDQ4NjYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CkBAIC0xMjIsNyArMTIyLDcgQEAgY2xhc3MgQXJyYXk7CiB9CiAKIG5hbWVzcGFjZSBJUEMgewot
Y2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgRGVjb2RlcjsKIGNsYXNzIENvbm5lY3Rpb247
CiB9CiAKQEAgLTMxMCw4ICszMTAsOCBAQCBwdWJsaWM6CiAgICAgV2ViT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXIqIGFjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyKCkgY29uc3QgeyByZXR1cm4g
bV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5nZXQoKTsgfQogICAgIHZvaWQgc2V0QWN0
aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIoUGFzc1JlZlB0cjxXZWJPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lcj4pOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5p
cXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBz
dGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOwogCiAgICAgLy8gLS0gSW5q
ZWN0ZWRCdW5kbGUgbWV0aG9kcwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpAQCAtOTY1LDgg
Kzk2NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybURldGFjaCgpOwogICAgIHZvaWQg
cGxhdGZvcm1FZGl0b3JTdGF0ZShXZWJDb3JlOjpGcmFtZSYsIEVkaXRvclN0YXRlJiByZXN1bHQs
IEluY2x1ZGVQb3N0TGF5b3V0RGF0YUhpbnQpIGNvbnN0OwogCi0gICAgdm9pZCBkaWRSZWNlaXZl
V2ViUGFnZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwot
ICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNXZWJQYWdlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViUGFnZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsK
IAogI2lmIFBMQVRGT1JNKElPUykKICAgICB2b2lkIHJlc2V0Vmlld3BvcnREZWZhdWx0Q29uZmln
dXJhdGlvbihXZWJGcmFtZSogbWFpbkZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVt
b3RlLmgKaW5kZXggMzE3ZjU4YTU2Y2RkMGRjNTk4NWQ2MGZkOWQ1NjU0NDFlNGFiNjAwNi4uZmY3
NGM3MzNiNmM0M2FmMjFiYjBlODFlOWI5NDMyZjY2NmNjZGY5YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3Rl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNB
QW5pbWF0aW9uUmVtb3RlLmgKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIElQQyB7CiBj
bGFzcyBFbmNvZGVyOwotY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgRGVjb2RlcjsKIH07
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTIzMSw3ICsyMzEsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIH0KIAogICAgICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAgICAg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgS2V5ZnJhbWVWYWx1
ZSYpOworICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgS2V5ZnJhbWVW
YWx1ZSYpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgS2V5ZnJhbWVUeXBlIGtleVR5cGU7CkBA
IC0yNjMsNyArMjYzLDcgQEAgcHVibGljOgogICAgICAgICB9CiAKICAgICAgICAgdm9pZCBlbmNv
ZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6
OkFyZ3VtZW50RGVjb2RlciYsIFByb3BlcnRpZXMmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZGVj
b2RlKElQQzo6RGVjb2RlciYsIFByb3BlcnRpZXMmKTsKIAogICAgICAgICBTdHJpbmcga2V5UGF0
aDsKICAgICAgICAgUGxhdGZvcm1DQUFuaW1hdGlvbjo6QW5pbWF0aW9uVHlwZSBhbmltYXRpb25U
eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCmluZGV4IGMyNjE2MmI3OGMw
NDBhOTE1NzFiNzlkM2I3YWVmOTg1MmMwZWJlMDYuLjE2M2E3MmIyMDIyZGQ4YTkwMDU5NzU2MDRk
NmE0OGUxODQ4MWE0ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0KQEAg
LTEyOCw3ICsxMjgsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OktleWZyYW1l
VmFsdWU6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbgogICAgIH0KIH0KIAotYm9v
bCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpLZXlmcmFtZVZhbHVlOjpkZWNvZGUoSVBDOjpB
cmd1bWVudERlY29kZXImIGRlY29kZXIsIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OktleWZy
YW1lVmFsdWUmIHZhbHVlKQorYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpLZXlmcmFt
ZVZhbHVlOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBQbGF0Zm9ybUNBQW5pbWF0aW9u
UmVtb3RlOjpLZXlmcmFtZVZhbHVlJiB2YWx1ZSkKIHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
RW51bSh2YWx1ZS5rZXlUeXBlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjA0LDcgKzIw
NCw3IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6UHJvcGVydGllczo6ZW5jb2Rl
KElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB9CiB9CiAKLWJvb2wgUGxhdGZvcm1D
QUFuaW1hdGlvblJlbW90ZTo6UHJvcGVydGllczo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVy
JiBkZWNvZGVyLCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpQcm9wZXJ0aWVzJiBwcm9wZXJ0
aWVzKQorYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpQcm9wZXJ0aWVzOjpkZWNvZGUo
SVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpQcm9wZXJ0
aWVzJiBwcm9wZXJ0aWVzKQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocHJvcGVydGllcy5r
ZXlQYXRoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKaW5kZXggMjcyZmJlY2M2YTBkZjA4YzY4MzZiYzAwZmYyZTU5ZGRiZjQw
ZWM3Mi4uMTRiM2ExNDU0YzY1OThkNjQ3NjViMzBkMDVlYTViZWJhMmY0NzdiZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC02MzIsNyArNjMyLDcgQEAgdm9p
ZCBXZWJQcm9jZXNzOjp0ZXJtaW5hdGUoKQogICAgIENoaWxkUHJvY2Vzczo6dGVybWluYXRlKCk7
CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlx
dWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3ZvaWQgV2ViUHJvY2Vzczo6ZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVy
KQogewogICAgIGlmIChtZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaFN5bmNNZXNzYWdlKGNv
bm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2RlcikpCiAgICAgICAgIHJldHVybjsKQEAgLTY0
MCw3ICs2NDAsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZQogICAgIGRpZFJlY2VpdmVTeW5j
V2ViUHJvY2Vzc01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0K
IAotdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIElQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCit2b2lkIFdlYlByb2Nlc3M6
OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChtZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaE1l
c3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggYzZiNWY4N2I5Y2I1ODRhNzAwMGRhODc0NWFm
Y2VlOWVmOGI2NmQ4NC4uNzUzYWVkMTQ3ODUxOGQ0NWNkZDg0OWMxOTVhYWRmOTYyNzIzYmE1OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTMxOSwxNiArMzE5LDE2
IEBAIHByaXZhdGU6CiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIGZyaWVu
ZCBjbGFzcyBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M7Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNz
YWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJy
aWRlOwogICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJp
bmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVz
c2FnZU5hbWUpIG92ZXJyaWRlOwogICAgIElQQzo6UHJvY2Vzc1R5cGUgbG9jYWxQcm9jZXNzVHlw
ZSgpIG92ZXJyaWRlIHsgcmV0dXJuIElQQzo6UHJvY2Vzc1R5cGU6OldlYjsgfQogICAgIElQQzo6
UHJvY2Vzc1R5cGUgcmVtb3RlUHJvY2Vzc1R5cGUoKSBvdmVycmlkZSB7IHJldHVybiBJUEM6OlBy
b2Nlc3NUeXBlOjpVSTsgfQogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYlBy
b2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViUHJvY2Vzc01l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwotICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNXZWJQcm9jZXNzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1l
c3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVXZWJQcm9jZXNzTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViUHJvY2Vzc01lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKTsK
IAogICAgIFJlZlB0cjxXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M+IG1fd2ViQ29ubmVjdGlvbjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQbGF5YmFj
a1Nlc3Npb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlBs
YXliYWNrU2Vzc2lvbk1hbmFnZXIuaAppbmRleCA3YWEyMTYwMzI5ZTA4ZjI1MjU4YTJkOTBlZjVh
Y2JlNzY4MThiYThlLi4wMWZmZWQyMTllMWVhNzM3YTIwZmQ5NmUzYzAzMDFhODJmZDA2MDEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlBsYXliYWNrU2Vz
c2lvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlBs
YXliYWNrU2Vzc2lvbk1hbmFnZXIuaApAQCAtNDEsNyArNDEsNyBAQAogbmFtZXNwYWNlIElQQyB7
CiBjbGFzcyBBdHRhY2htZW50OwogY2xhc3MgQ29ubmVjdGlvbjsKLWNsYXNzIE1lc3NhZ2VEZWNv
ZGVyOworY2xhc3MgRGVjb2RlcjsKIGNsYXNzIE1lc3NhZ2VSZWNlaXZlcjsKIH0KIApAQCAtOTEs
NyArOTEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJQbGF5YmFja1Nlc3Npb25NYW5h
Z2VyPiBjcmVhdGUoV2ViUGFnZSYpOwogICAgIHZpcnR1YWwgfldlYlBsYXliYWNrU2Vzc2lvbk1h
bmFnZXIoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpNZXNzYWdlRGVjb2RlciYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAKICAgICB2b2lkIHNldFVw
UGxheWJhY2tDb250cm9sc01hbmFnZXIoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudCYpOwogICAg
IHZvaWQgY2xlYXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
aAppbmRleCAxZmIxZGM4N2VlY2VmNWZjODNjNDU0ODNjZGMyYzUyN2IxY2M5OGJlLi45MTE5N2Nm
Mjg3ZDA5NGUzMDY1MzRkMmFkNTNjYTBjYmMzZDkzOWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
aApAQCAtNDAsNyArNDAsNyBAQAogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBBdHRhY2htZW50Owog
Y2xhc3MgQ29ubmVjdGlvbjsKLWNsYXNzIE1lc3NhZ2VEZWNvZGVyOworY2xhc3MgRGVjb2RlcjsK
IGNsYXNzIE1lc3NhZ2VSZWNlaXZlcjsKIH0KIApAQCAtMTE1LDcgKzExNSw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI+IGNyZWF0ZShXZWJQYWdl
JiwgV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlciYpOwogICAgIHZpcnR1YWwgfldlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIoKTsKICAgICAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRl
OwogCiAgICAgLy8gSW50ZXJmYWNlIHRvIENocm9tZUNsaWVudAogICAgIGJvb2wgc3VwcG9ydHNW
aWRlb0Z1bGxzY3JlZW4oV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlKSBjb25zdDsK
</data>
<flag name="review"
          id="310034"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>