<?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>122479</bug_id>
          
          <creation_ts>2013-10-07 18:29:35 -0700</creation_ts>
          <short_desc>REGRESSION(r157061): Broke worker tests (Requested by andersca on #webkit).</short_desc>
          <delta_ts>2013-10-07 18:32:48 -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>528+ (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>
          
          <blocked>122469</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>andersca</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>937315</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-07 18:29:35 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/157061 broke the build:
Broke worker tests (Requested by andersca on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937318</commentid>
    <comment_count>1</comment_count>
      <attachid>213638</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-07 18:29:56 -0700</bug_when>
    <thetext>Created attachment 213638
ROLLOUT of r157061

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937320</commentid>
    <comment_count>2</comment_count>
      <attachid>213638</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-07 18:32:47 -0700</bug_when>
    <thetext>Comment on attachment 213638
ROLLOUT of r157061

Clearing flags on attachment: 213638

Committed r157075: &lt;http://trac.webkit.org/changeset/157075&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937321</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-07 18:32:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213638</attachid>
            <date>2013-10-07 18:29:56 -0700</date>
            <delta_ts>2013-10-07 18:32:47 -0700</delta_ts>
            <desc>ROLLOUT of r157061</desc>
            <filename>bug-122479-20131007182956.patch</filename>
            <type>text/plain</type>
            <size>84338</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3MDc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmY0NWFjN2JlZGVmMTI0
N2VjNTYyMDVmZDllYzdlZmEzZjEzYzA4Mi4uZDU5MzJkOWEyYTM5ZDA0MGUzMTYwNzVkZGU5ZDI3
ZDM3NzdkOWI3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1MSBAQAorMjAxMy0xMC0wNyAgQ29t
bWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjE1NzA2MS4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvMTU3MDYxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjI0NzkKKworICAgICAgICBCcm9rZSB3b3JrZXIgdGVzdHMgKFJlcXVlc3RlZCBi
eSBhbmRlcnNjYSBvbiAjd2Via2l0KS4KKworICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVyZWZDb250ZXh0VGFzazo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRlcmVmQ29udGV4dFRhc2s6OkRlcmVmQ29udGV4dFRhc2sp
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6On5EYXRhYmFzZSk6CisgICAgICAgIChXZWJD
b3JlOjpEZWxpdmVyUGVuZGluZ0NhbGxiYWNrVGFzazo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRlbGl2ZXJQZW5kaW5nQ2FsbGJhY2tUYXNrOjpwZXJmb3JtVGFzayk6CisgICAgICAgIChX
ZWJDb3JlOjpEZWxpdmVyUGVuZGluZ0NhbGxiYWNrVGFzazo6RGVsaXZlclBlbmRpbmdDYWxsYmFj
a1Rhc2spOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OnNjaGVkdWxlVHJhbnNhY3Rpb25D
YWxsYmFjayk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VDcmVhdGlvbkNhbGxiYWNrVGFzazo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlQ3JlYXRpb25DYWxsYmFja1Rhc2s6OnBl
cmZvcm1UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlQ3JlYXRpb25DYWxsYmFja1Rh
c2s6OkRhdGFiYXNlQ3JlYXRpb25DYWxsYmFja1Rhc2spOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YWJhc2VNYW5hZ2VyOjpvcGVuRGF0YWJhc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJh
c2UvU1FMQ2FsbGJhY2tXcmFwcGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTUUxDYWxsYmFja1dy
YXBwZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTENhbGxiYWNrV3JhcHBlcjo6U2Fm
ZVJlbGVhc2VUYXNrOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMQ2FsbGJhY2tXcmFw
cGVyOjpTYWZlUmVsZWFzZVRhc2s6OnBlcmZvcm1UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OlNR
TENhbGxiYWNrV3JhcHBlcjo6U2FmZVJlbGVhc2VUYXNrOjppc0NsZWFudXBUYXNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNRTENhbGxiYWNrV3JhcHBlcjo6U2FmZVJlbGVhc2VUYXNrOjpTYWZlUmVs
ZWFzZVRhc2spOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpwcm9jZXNzUGVuZGluZ1Rhc2tzKToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGll
bnRXcmFwcGVyLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsOjpXb3JrZXJHbG9iYWxTY29wZURpZEluaXRpYWxpemVUYXNrOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWw6Oldvcmtlckdsb2JhbFNjb3BlRGlkSW5pdGlhbGl6ZVRhc2s6On5Xb3JrZXJHbG9iYWxTY29w
ZURpZEluaXRpYWxpemVUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsOjpXb3JrZXJHbG9iYWxTY29wZURpZEluaXRpYWxpemVUYXNrOjpXb3Jr
ZXJHbG9iYWxTY29wZURpZEluaXRpYWxpemVUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
clRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6Om1haW5UaHJlYWRJbml0aWFsaXpl
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5oOgorICAgICAgICAoV2Vi
Q29yZTo6RGVsZXRlQ2FsbGJhY2tEYXRhVGFzazo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRlbGV0ZUNhbGxiYWNrRGF0YVRhc2s6OnBlcmZvcm1UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6
OkRlbGV0ZUNhbGxiYWNrRGF0YVRhc2s6OmlzQ2xlYW51cFRhc2spOgorICAgICAgICAoV2ViQ29y
ZTo6RGVsZXRlQ2FsbGJhY2tEYXRhVGFzazo6RGVsZXRlQ2FsbGJhY2tEYXRhVGFzayk6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3RUYXNrLmg6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2lu
ZG93QmFzZTo6cXVldWVUYXNrVG9FdmVudExvb3ApOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
V29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTV29ya2VyR2xv
YmFsU2NvcGVCYXNlOjpxdWV1ZVRhc2tUb0V2ZW50TG9vcCk6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUNhbGxiYWNrSW1w
bGVtZW50YXRpb24pOgorICAgICAgICAqIGRvbS9Dcm9zc1RocmVhZFRhc2suaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNyb3NzVGhyZWFkVGFzazE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpD
cm9zc1RocmVhZFRhc2sxOjpwZXJmb3JtVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc1Ro
cmVhZFRhc2syOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NUaHJlYWRUYXNrMjo6
cGVyZm9ybVRhc2spOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NUaHJlYWRUYXNrMzo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzVGhyZWFkVGFzazM6OnBlcmZvcm1UYXNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNyb3NzVGhyZWFkVGFzazQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpDcm9zc1RocmVhZFRhc2s0OjpwZXJmb3JtVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpD
cm9zc1RocmVhZFRhc2s1OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NUaHJlYWRU
YXNrNTo6cGVyZm9ybVRhc2spOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NUaHJlYWRUYXNrNjo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzVGhyZWFkVGFzazY6OnBlcmZvcm1UYXNr
KToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzVGhyZWFkVGFzazc6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpDcm9zc1RocmVhZFRhc2s3OjpwZXJmb3JtVGFzayk6CisgICAgICAgIChXZWJD
b3JlOjpDcm9zc1RocmVhZFRhc2s4OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NU
aHJlYWRUYXNrODo6cGVyZm9ybVRhc2spOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ2FsbGJh
Y2tUYXNrKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjphZGRNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1UYXNrQ29udGV4dDo6UGVy
Zm9ybVRhc2tDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpwb3N0VGFzayk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGVuZGluZ1Rhc2tzVGltZXJGaXJlZCk6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc01lc3NhZ2VzU29vblRhc2s6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNzTWVzc2FnZXNTb29uVGFzazo6cGVyZm9y
bVRhc2spOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cHJvY2Vz
c01lc3NhZ2VQb3J0TWVzc2FnZXNTb29uKToKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6QWRk
Q29uc29sZU1lc3NhZ2VUYXNrOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6QWRkQ29uc29sZU1lc3NhZ2VUYXNrOjpBZGRDb25zb2xlTWVzc2FnZVRh
c2spOgorICAgICAgICAqIGRvbS9TdHJpbmdDYWxsYmFjay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTdHJpbmdDYWxsYmFjazo6c2NoZWR1bGVDYWxsYmFjayk6CisgICAgICAgICogbG9hZGVyL2Fw
cGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWxs
Q2FjaGVMaXN0ZW5lclRhc2s6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWxsQ2FjaGVM
aXN0ZW5lclRhc2s6OkNhbGxDYWNoZUxpc3RlbmVyVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OnBvc3RMaXN0ZW5lclRhc2spOgorICAgICAgICAqIHdvcmtl
cnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2hhcmVkV29ya2VyUHJveHk6OnBvc3RUYXNrVG9Mb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6
U2hhcmVkV29ya2VyUHJveHk6OnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U2hhcmVkV29ya2VyQ29ubmVjdFRhc2s6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXJDb25uZWN0VGFzazo6cGVyZm9ybVRhc2spOgorICAg
ICAgICAoV2ViQ29yZTo6RGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnk6OndvcmtlclNjcmlw
dExvYWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9y
eTo6Y29ubmVjdFRvV29ya2VyKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckV2ZW50UXVldWUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRXZlbnRRdWV1ZTo6ZW5xdWV1ZUV2ZW50KToK
KyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Oldvcmtlckdsb2JhbFNjb3BlOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJH
bG9iYWxTY29wZTo6cG9zdFRhc2spOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2Nv
cGU6OmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNj
b3BlOjphZGRNZXNzYWdlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmg6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJMb2FkZXJQcm94eS5oOgorICAgICAgICAqIHdvcmtl
cnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVdv
cmtlckdsb2JhbFNjb3BlVGFzazo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VX
b3JrZXJHbG9iYWxTY29wZVRhc2s6OnBlcmZvcm1UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
c3NhZ2VXb3JrZXJUYXNrOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVdvcmtl
clRhc2s6OnBlcmZvcm1UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckV4Y2VwdGlvblRh
c2s6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJFeGNlcHRpb25UYXNrOjpwZXJm
b3JtVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZURlc3Ryb3llZFRh
c2s6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZURlc3Ryb3ll
ZFRhc2s6OnBlcmZvcm1UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRlcm1pbmF0ZVRh
c2s6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUZXJtaW5hdGVUYXNrOjpXb3Jr
ZXJUZXJtaW5hdGVUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRlcm1pbmF0ZVRhc2s6
OnBlcmZvcm1UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZEFjdGl2aXR5UmVw
b3J0VGFzazo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZEFjdGl2aXR5
UmVwb3J0VGFzazo6cGVyZm9ybVRhc2spOgorICAgICAgICAoV2ViQ29yZTo6UG9zdE1lc3NhZ2VU
b1BhZ2VJbnNwZWN0b3JUYXNrOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UG9zdE1lc3Nh
Z2VUb1BhZ2VJbnNwZWN0b3JUYXNrOjpwZXJmb3JtVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpO
b3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2VUYXNrOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
Tm90aWZ5TmV0d29ya1N0YXRlQ2hhbmdlVGFzazo6Tm90aWZ5TmV0d29ya1N0YXRlQ2hhbmdlVGFz
ayk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2VUYXNrOjpwZXJm
b3JtVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdE1l
c3NhZ2VUb1dvcmtlck9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQ
cm94eTo6cG9zdE1lc3NhZ2VUb1dvcmtlckdsb2JhbFNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6
Oldvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3Bl
KToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0VGFza1RvTG9h
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0RXhjZXB0
aW9uVG9Xb3JrZXJPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJv
eHk6OndvcmtlclRocmVhZENyZWF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2Fn
aW5nUHJveHk6Om5vdGlmeU5ldHdvcmtTdGF0ZUNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJNZXNzYWdpbmdQcm94eTo6d29ya2VyR2xvYmFsU2NvcGVEZXN0cm95ZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJveHk6Ondvcmtlckdsb2JhbFNjb3BlQ2xvc2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0TWVzc2FnZVRv
UGFnZUluc3BlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6
Y29uZmlybU1lc3NhZ2VGcm9tV29ya2VyT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ck1lc3NhZ2luZ1Byb3h5OjpyZXBvcnRQZW5kaW5nQWN0aXZpdHkpOgorICAgICAgICAqIHdvcmtl
cnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclJ1bkxv
b3AuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyUnVuTG9vcDo6cG9zdFRhc2spOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyUnVuTG9vcDo6cG9zdFRhc2tBbmRUZXJtaW5hdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyUnVuTG9vcDo6cG9zdFRhc2tGb3JNb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OldvcmtlclJ1bkxvb3A6OlRhc2s6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJSdW5Mb29wOjpUYXNrOjpUYXNrKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclJ1
bkxvb3AuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJUaHJlYWRTaHV0ZG93bkZpbmlzaFRhc2s6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJUaHJlYWRTaHV0ZG93bkZpbmlzaFRhc2s6OnBlcmZvcm1UYXNrKToK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZFNodXRkb3duRmluaXNoVGFzazo6aXNDbGVh
bnVwVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRTaHV0ZG93blN0YXJ0VGFz
azo6cGVyZm9ybVRhc2spOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpzdG9wKToK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6cmVsZWFzZUZhc3RNYWxsb2NGcmVlTWVt
b3J5SW5BbGxUaHJlYWRzKToKKwogMjAxMy0xMC0wNyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgTWFrZSBWZWN0b3I6Omluc2VydCB3b3JrIGZvciBtb3ZlLW9ubHkg
dHlwZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5j
cHAKaW5kZXggYmM2MDE3YjRhYjUxM2M0ODk1NzIxMGNlMjI1MzFkNTliMDI0MzU1MC4uODY5Yzg1
ZjBkNzBiM2M5NmVhNmE4MDc1NTU5ZmRjMjM0ZmJlZWMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKQEAgLTg2LDEyICs4NiwxMSBAQCBE
YXRhYmFzZTo6RGF0YWJhc2UoUGFzc1JlZlB0cjxEYXRhYmFzZUJhY2tlbmRDb250ZXh0PiBkYXRh
YmFzZUNvbnRleHQsCiAKIGNsYXNzIERlcmVmQ29udGV4dFRhc2sgOiBwdWJsaWMgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6VGFzayB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgRGVyZWZDb250ZXh0
VGFzayhQYXNzUmVmUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IGNvbnRleHQpCi0gICAgICAg
IDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgc3RhdGljIFBhc3NPd25QdHI8RGVyZWZDb250ZXh0
VGFzaz4gY3JlYXRlKFBhc3NSZWZQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gY29udGV4dCkK
ICAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGVyZWZDb250ZXh0VGFzayhjb250
ZXh0KSk7CiAgICAgfQogCi1wcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzayhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogICAgIHsKICAgICAgICAgQVNTRVJUX1VO
VVNFRChjb250ZXh0LCBjb250ZXh0ID09IG1fY29udGV4dCk7CkBAIC0xMDAsNiArOTksMTIgQEAg
cHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBpc0NsZWFudXBUYXNrKCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQogCitwcml2YXRlOgorICAgIERlcmVmQ29udGV4dFRhc2soUGFzc1JlZlB0cjxT
Y3JpcHRFeGVjdXRpb25Db250ZXh0PiBjb250ZXh0KQorICAgICAgICA6IG1fY29udGV4dChjb250
ZXh0KQorICAgIHsKKyAgICB9CisgICAgCiAgICAgUmVmUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ+IG1fY29udGV4dDsKIH07CiAKQEAgLTExMSw3ICsxMTYsNyBAQCBEYXRhYmFzZTo6fkRhdGFi
YXNlKCkKICAgICAgICAgLy8gRGVyZWZDb250ZXh0VGFzazo6Y3JlYXRlLgogICAgICAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0ID0gbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0LmdldCgpOwogICAgICAgICAKLSAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC0+cG9zdFRhc2soc3RkOjptYWtlX3VuaXF1ZTxEZXJlZkNvbnRleHRUYXNrPihtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQucmVsZWFzZSgpKSk7CisgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQtPnBvc3RUYXNrKERlcmVmQ29udGV4dFRhc2s6OmNyZWF0ZShtX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQucmVsZWFzZSgpKSk7CiAgICAgfQogfQogCkBAIC0yMDAsMjQgKzIwNSwyOCBAQCB2
b2lkIERhdGFiYXNlOjpydW5UcmFuc2FjdGlvbihQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2Fs
bGJhY2s+IGNhbGxiYWNrLCBQYXNzUgogCiBjbGFzcyBEZWxpdmVyUGVuZGluZ0NhbGxiYWNrVGFz
ayA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrIHsKIHB1YmxpYzoKLSAgICBl
eHBsaWNpdCBEZWxpdmVyUGVuZGluZ0NhbGxiYWNrVGFzayhQYXNzUmVmUHRyPFNRTFRyYW5zYWN0
aW9uPiB0cmFuc2FjdGlvbikKLSAgICAgICAgOiBtX3RyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKQor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPERlbGl2ZXJQZW5kaW5nQ2FsbGJhY2tUYXNrPiBjcmVhdGUo
UGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbj4gdHJhbnNhY3Rpb24pCiAgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IERlbGl2ZXJQZW5kaW5nQ2FsbGJhY2tUYXNrKHRyYW5zYWN0aW9u
KSk7CiAgICAgfQogCi1wcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzayhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KikgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRh
c2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopCiAgICAgewogICAgICAgICBtX3RyYW5zYWN0aW9u
LT5wZXJmb3JtUGVuZGluZ0NhbGxiYWNrKCk7CiAgICAgfQogCiBwcml2YXRlOgorICAgIERlbGl2
ZXJQZW5kaW5nQ2FsbGJhY2tUYXNrKFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb24+IHRyYW5zYWN0
aW9uKQorICAgICAgICA6IG1fdHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pCisgICAgeworICAgIH0K
KwogICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlvbj4gbV90cmFuc2FjdGlvbjsKIH07CiAKIHZvaWQg
RGF0YWJhc2U6OnNjaGVkdWxlVHJhbnNhY3Rpb25DYWxsYmFjayhTUUxUcmFuc2FjdGlvbiogdHJh
bnNhY3Rpb24pCiB7Ci0gICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhzdGQ6
Om1ha2VfdW5pcXVlPERlbGl2ZXJQZW5kaW5nQ2FsbGJhY2tUYXNrPih0cmFuc2FjdGlvbikpOwor
ICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2soRGVsaXZlclBlbmRpbmdDYWxs
YmFja1Rhc2s6OmNyZWF0ZSh0cmFuc2FjdGlvbikpOwogfQogCiBWZWN0b3I8U3RyaW5nPiBEYXRh
YmFzZTo6cGVyZm9ybUdldFRhYmxlTmFtZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwCmluZGV4IDU2Zjc2YjMxMGJk
ZGMyYjQ1OWVlNTU4NDgyZmE1YjBmYTRkMWM5MTEuLmFmY2VhMTQzYTk2NzA1MWExNzE2MjFjOWVm
NTdiNDllMmYxMjg1ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHAKQEAgLTEwNSwxOCArMTA1LDIzIEBAIHZvaWQg
RGF0YWJhc2VNYW5hZ2VyOjpzZXRJc0F2YWlsYWJsZShib29sIGF2YWlsYWJsZSkKIAogY2xhc3Mg
RGF0YWJhc2VDcmVhdGlvbkNhbGxiYWNrVGFzayA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjpUYXNrIHsKIHB1YmxpYzoKLSAgICBEYXRhYmFzZUNyZWF0aW9uQ2FsbGJhY2tUYXNrKFBh
c3NSZWZQdHI8RGF0YWJhc2U+IGRhdGFiYXNlLCBQYXNzUmVmUHRyPERhdGFiYXNlQ2FsbGJhY2s+
IGNhbGxiYWNrKQotICAgICAgICA6IG1fZGF0YWJhc2UoZGF0YWJhc2UpCi0gICAgICAgICwgbV9j
cmVhdGlvbkNhbGxiYWNrKGNhbGxiYWNrKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPERhdGFiYXNl
Q3JlYXRpb25DYWxsYmFja1Rhc2s+IGNyZWF0ZShQYXNzUmVmUHRyPERhdGFiYXNlPiBkYXRhYmFz
ZSwgUGFzc1JlZlB0cjxEYXRhYmFzZUNhbGxiYWNrPiBjcmVhdGlvbkNhbGxiYWNrKQogICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEYXRhYmFzZUNyZWF0aW9uQ2FsbGJhY2tUYXNr
KGRhdGFiYXNlLCBjcmVhdGlvbkNhbGxiYWNrKSk7CiAgICAgfQogCi1wcml2YXRlOgotICAgIHZp
cnR1YWwgdm9pZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgT1ZFUlJJREUK
KyAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopCiAg
ICAgewogICAgICAgICBtX2NyZWF0aW9uQ2FsbGJhY2stPmhhbmRsZUV2ZW50KG1fZGF0YWJhc2Uu
Z2V0KCkpOwogICAgIH0KIAorcHJpdmF0ZToKKyAgICBEYXRhYmFzZUNyZWF0aW9uQ2FsbGJhY2tU
YXNrKFBhc3NSZWZQdHI8RGF0YWJhc2U+IGRhdGFiYXNlLCBQYXNzUmVmUHRyPERhdGFiYXNlQ2Fs
bGJhY2s+IGNhbGxiYWNrKQorICAgICAgICA6IG1fZGF0YWJhc2UoZGF0YWJhc2UpCisgICAgICAg
ICwgbV9jcmVhdGlvbkNhbGxiYWNrKGNhbGxiYWNrKQorICAgIHsKKyAgICB9CisKICAgICBSZWZQ
dHI8RGF0YWJhc2U+IG1fZGF0YWJhc2U7CiAgICAgUmVmUHRyPERhdGFiYXNlQ2FsbGJhY2s+IG1f
Y3JlYXRpb25DYWxsYmFjazsKIH07CkBAIC0yOTYsNyArMzAxLDcgQEAgUGFzc1JlZlB0cjxEYXRh
YmFzZT4gRGF0YWJhc2VNYW5hZ2VyOjpvcGVuRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGUKIAogICAgIGlmIChiYWNrZW5kLT5pc05ldygpICYmIGNyZWF0aW9uQ2FsbGJhY2su
Z2V0KCkpIHsKICAgICAgICAgTE9HKFN0b3JhZ2VBUEksICJTY2hlZHVsaW5nIERhdGFiYXNlQ3Jl
YXRpb25DYWxsYmFja1Rhc2sgZm9yIGRhdGFiYXNlICVwXG4iLCBkYXRhYmFzZS5nZXQoKSk7Ci0g
ICAgICAgIGRhdGFiYXNlLT5tX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKHN0ZDo6
bWFrZV91bmlxdWU8RGF0YWJhc2VDcmVhdGlvbkNhbGxiYWNrVGFzaz4oZGF0YWJhc2UsIGNyZWF0
aW9uQ2FsbGJhY2spKTsKKyAgICAgICAgZGF0YWJhc2UtPm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC0+cG9zdFRhc2soRGF0YWJhc2VDcmVhdGlvbkNhbGxiYWNrVGFzazo6Y3JlYXRlKGRhdGFiYXNl
LCBjcmVhdGlvbkNhbGxiYWNrKSk7CiAgICAgfQogCiAgICAgQVNTRVJUKGRhdGFiYXNlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMQ2FsbGJhY2tX
cmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxiYWNr
V3JhcHBlci5oCmluZGV4IDYyNDFiYmQyNDA4MzBhODJmY2E4YWFlN2EyYTkyMTBmOGQ3M2M0ODcu
LmMxODRhMzczODA1MzgyNGUyNzdhNTAwOGJlYTc0YTVjNDNkYTM2NzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMQ2FsbGJhY2tXcmFwcGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxDYWxsYmFja1dyYXBwZXIu
aApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBjb250ZXh0ID0gbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0LnJlbGVhc2UoKS5sZWFrUmVmKCk7CiAgICAgICAgICAgICBjYWxs
YmFjayA9IG1fY2FsbGJhY2sucmVsZWFzZSgpLmxlYWtSZWYoKTsKICAgICAgICAgfQotICAgICAg
ICBjb250ZXh0LT5wb3N0VGFzayhzdGQ6Om1ha2VfdW5pcXVlPFNhZmVSZWxlYXNlVGFzaz4oY2Fs
bGJhY2spKTsKKyAgICAgICAgY29udGV4dC0+cG9zdFRhc2soU2FmZVJlbGVhc2VUYXNrOjpjcmVh
dGUoY2FsbGJhY2spKTsKICAgICB9CiAKICAgICBQYXNzUmVmUHRyPFQ+IHVud3JhcCgpCkBAIC05
MCwyMSArOTAsMjYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBjbGFzcyBTYWZlUmVsZWFzZVRh
c2sgOiBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayB7CiAgICAgcHVibGljOgot
ICAgICAgICBleHBsaWNpdCBTYWZlUmVsZWFzZVRhc2soVCogY2FsbGJhY2tUb1JlbGVhc2UpCi0g
ICAgICAgICAgICA6IG1fY2FsbGJhY2tUb1JlbGVhc2UoY2FsbGJhY2tUb1JlbGVhc2UpCisgICAg
ICAgIHN0YXRpYyBQYXNzT3duUHRyPFNhZmVSZWxlYXNlVGFzaz4gY3JlYXRlKFQqIGNhbGxiYWNr
VG9SZWxlYXNlKQogICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNh
ZmVSZWxlYXNlVGFzayhjYWxsYmFja1RvUmVsZWFzZSkpOwogICAgICAgICB9CiAKLSAgICBwcml2
YXRlOgotICAgICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRhc2soU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCkgT1ZFUlJJREUKKyAgICAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNr
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgICAgIHsKICAgICAgICAgICAg
IEFTU0VSVChtX2NhbGxiYWNrVG9SZWxlYXNlICYmIGNvbnRleHQgJiYgY29udGV4dC0+aXNDb250
ZXh0VGhyZWFkKCkpOwogICAgICAgICAgICAgbV9jYWxsYmFja1RvUmVsZWFzZS0+ZGVyZWYoKTsK
ICAgICAgICAgICAgIGNvbnRleHQtPmRlcmVmKCk7CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0
dWFsIGJvb2wgaXNDbGVhbnVwVGFzaygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0K
LSAgICAgICAgCisgICAgICAgIHZpcnR1YWwgYm9vbCBpc0NsZWFudXBUYXNrKCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgZXhwbGljaXQgU2FmZVJlbGVh
c2VUYXNrKFQqIGNhbGxiYWNrVG9SZWxlYXNlKQorICAgICAgICAgICAgOiBtX2NhbGxiYWNrVG9S
ZWxlYXNlKGNhbGxiYWNrVG9SZWxlYXNlKQorICAgICAgICB7CisgICAgICAgIH0KKwogICAgICAg
ICBUKiBtX2NhbGxiYWNrVG9SZWxlYXNlOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVu
dFdyYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAKaW5kZXggZDdlMTcwNDc0ZWJlNDY0
NWExMjRmMjY5YjkwZjZlMWUxZDNmNWI2OS4uYTMzNjdiMGVmMjFjYmMwZjg3YmFjZDAyZGVjNmVm
YzcwZjAzMWQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xp
ZW50V3JhcHBlci5jcHAKQEAgLTIzMiwxMCArMjMyLDkgQEAgdm9pZCBUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OnByb2Nlc3NQZW5kaW5nVGFza3MoKQogICAgICAgICBt
X2NvbnRleHQtPnBvc3RUYXNrKGNyZWF0ZUNhbGxiYWNrVGFzaygmVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWxDbGllbnRXcmFwcGVyOjpwcm9jZXNzUGVuZGluZ1Rhc2tzQ2FsbGJhY2ssIHRoaXMp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLQotICAgIGF1dG8gdGFza3MgPSBzdGQ6Om1vdmUo
bV9wZW5kaW5nVGFza3MpOwotCi0gICAgZm9yIChhdXRvIGl0ZXIgPSB0YXNrcy5iZWdpbigpOyBp
dGVyICE9IHRhc2tzLmVuZCgpOyArK2l0ZXIpCisgICAgVmVjdG9yPE93blB0cjxTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpUYXNrPiA+IHRhc2tzOworICAgIHRhc2tzLnN3YXAobV9wZW5kaW5nVGFz
a3MpOworICAgIGZvciAoVmVjdG9yPE93blB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNr
PiA+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gdGFza3MuYmVnaW4oKTsgaXRlciAhPSB0YXNrcy5l
bmQoKTsgKytpdGVyKQogICAgICAgICAoKml0ZXIpLT5wZXJmb3JtVGFzaygwKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oCmluZGV4IGVi
MmNkODUxMzA3MDI5Y2NjNzJiMzk5YTcwODFkNzk0MzYyNmUwYzYuLmM2ZjMzYTU4MDMyMjExOGY2
NWIyMzhkNDE1MjBkMTliMjFkZmJiZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWxDbGllbnRXcmFwcGVyLmgKQEAgLTExNCw3ICsxMTQsNyBAQCBwcml2YXRlOgogICAg
IFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kUmVzdWx0IG1fc2VuZFJlcXVlc3RSZXN1
bHQ7CiAgICAgdW5zaWduZWQgbG9uZyBtX2J1ZmZlcmVkQW1vdW50OwogICAgIGJvb2wgbV9zdXNw
ZW5kZWQ7Ci0gICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpUYXNrPj4gbV9wZW5kaW5nVGFza3M7CisgICAgVmVjdG9yPE93blB0cjxTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjpUYXNrPiA+IG1fcGVuZGluZ1Rhc2tzOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dv
cmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXgg
Y2RmZjBmZDQwMzg0MWYwNGEwZWE4MzMyOTRjZWI5NjRhNTU2OTI1NC4uYjZiYTJkNmZhOTQyN2M2
Njc0YmZjYmMyZWMyYjVjNWYxZmNlMjk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuY3BwCkBAIC0zNjEsMTUgKzM2MSwxNCBAQCBXb3JrZXJUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbDo6QnJpZGdlOjp+QnJpZGdlKCkKIAogY2xhc3MgV29ya2VyVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6Oldvcmtlckdsb2JhbFNjb3BlRGlkSW5pdGlhbGl6ZVRhc2sgOiBw
dWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayB7CiBwdWJsaWM6Ci0gICAgV29ya2Vy
R2xvYmFsU2NvcGVEaWRJbml0aWFsaXplVGFzayhXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbDo6UGVlciogcGVlciwgV29ya2VyTG9hZGVyUHJveHkqIGxvYWRlclByb3h5LCBQYXNzUmVm
UHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4gd29ya2VyQ2xpZW50
V3JhcHBlcikKLSAgICAgICAgOiBtX3BlZXIocGVlcikKLSAgICAgICAgLCBtX2xvYWRlclByb3h5
KGxvYWRlclByb3h5KQotICAgICAgICAsIG1fd29ya2VyQ2xpZW50V3JhcHBlcih3b3JrZXJDbGll
bnRXcmFwcGVyKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OlRhc2s+IGNyZWF0ZShXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlciogcGVl
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV29ya2VyTG9hZGVyUHJveHkqIGxvYWRlclByb3h5LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXNzUmVmUHRyPFRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4gd29ya2VyQ2xpZW50V3JhcHBlcikK
ICAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgV29ya2VyR2xvYmFsU2NvcGVEaWRJ
bml0aWFsaXplVGFzayhwZWVyLCBsb2FkZXJQcm94eSwgd29ya2VyQ2xpZW50V3JhcHBlcikpOwog
ICAgIH0KLSAgICB2aXJ0dWFsIH5Xb3JrZXJHbG9iYWxTY29wZURpZEluaXRpYWxpemVUYXNrKCkg
eyB9CiAKLXByaXZhdGU6CisgICAgdmlydHVhbCB+V29ya2VyR2xvYmFsU2NvcGVEaWRJbml0aWFs
aXplVGFzaygpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0KSBPVkVSUklERQogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNF
RChjb250ZXh0LCBjb250ZXh0LT5pc1dvcmtlckdsb2JhbFNjb3BlKCkpOwpAQCAtMzgzLDYgKzM4
MiwxNiBAQCBwcml2YXRlOgogICAgIH0KICAgICB2aXJ0dWFsIGJvb2wgaXNDbGVhbnVwVGFzaygp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAorcHJpdmF0ZToKKyAgICBXb3JrZXJH
bG9iYWxTY29wZURpZEluaXRpYWxpemVUYXNrKFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsOjpQZWVyKiBwZWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXb3Jr
ZXJMb2FkZXJQcm94eSogbG9hZGVyUHJveHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFBhc3NSZWZQdHI8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVy
PiB3b3JrZXJDbGllbnRXcmFwcGVyKQorICAgICAgICA6IG1fcGVlcihwZWVyKQorICAgICAgICAs
IG1fbG9hZGVyUHJveHkobG9hZGVyUHJveHkpCisgICAgICAgICwgbV93b3JrZXJDbGllbnRXcmFw
cGVyKHdvcmtlckNsaWVudFdyYXBwZXIpCisgICAgeworICAgIH0KKwogICAgIFdvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyKiBtX3BlZXI7CiAgICAgV29ya2VyTG9hZGVyUHJv
eHkqIG1fbG9hZGVyUHJveHk7CiAgICAgUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlcj4gbV93b3JrZXJDbGllbnRXcmFwcGVyOwpAQCAtMzk2LDcgKzQwNSw4IEBA
IHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6bWFpblRocmVh
ZEluaXRpYWxpemUoU2NyaXB0RXhlY3V0CiAgICAgUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsQ2xpZW50V3JhcHBlcj4gY2xpZW50V3JhcHBlciA9IHBycENsaWVudFdyYXBwZXI7CiAK
ICAgICBQZWVyKiBwZWVyID0gUGVlcjo6Y3JlYXRlKGNsaWVudFdyYXBwZXIsICpsb2FkZXJQcm94
eSwgY29udGV4dCwgdGFza01vZGUpOwotICAgIGJvb2wgc2VudCA9IGxvYWRlclByb3h5LT5wb3N0
VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKHN0ZDo6bWFrZV91bmlxdWU8V29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6Oldvcmtlckdsb2JhbFNjb3BlRGlkSW5pdGlhbGl6ZVRh
c2s+KHBlZXIsIGxvYWRlclByb3h5LCBjbGllbnRXcmFwcGVyKSwgdGFza01vZGUpOworICAgIGJv
b2wgc2VudCA9IGxvYWRlclByb3h5LT5wb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3Bl
KAorICAgICAgICBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6V29ya2VyR2xvYmFs
U2NvcGVEaWRJbml0aWFsaXplVGFzazo6Y3JlYXRlKHBlZXIsIGxvYWRlclByb3h5LCBjbGllbnRX
cmFwcGVyKSwgdGFza01vZGUpOwogICAgIGlmICghc2VudCkgewogICAgICAgICBjbGllbnRXcmFw
cGVyLT5jbGVhclBlZXIoKTsKICAgICAgICAgZGVsZXRlIHBlZXI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuaAppbmRleCBkOGZiNDA2Zjk4NTk5YzcxZmE1ODQz
MTRmOTAzZDA3YTNjMTMxOWZkLi5kMzIxYzU3ZjA1YzlmMDIzMmYxZTdkMDRjYTQ0MjFjMzc0YjA4
NjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmgKQEAg
LTc3LDE4ICs3NywxOSBAQCBwcml2YXRlOgogCiBjbGFzcyBEZWxldGVDYWxsYmFja0RhdGFUYXNr
IDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgewogcHVibGljOgotICAgIGV4
cGxpY2l0IERlbGV0ZUNhbGxiYWNrRGF0YVRhc2soSlNDYWxsYmFja0RhdGEqIGRhdGEpCi0gICAg
ICAgIDogbV9kYXRhKGRhdGEpCisgICAgc3RhdGljIFBhc3NPd25QdHI8RGVsZXRlQ2FsbGJhY2tE
YXRhVGFzaz4gY3JlYXRlKEpTQ2FsbGJhY2tEYXRhKiBkYXRhKQogICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBEZWxldGVDYWxsYmFja0RhdGFUYXNrKGRhdGEpKTsKICAgICB9CiAK
LXByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqKSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVj
dXRpb25Db250ZXh0KikKICAgICB7CiAgICAgICAgIGRlbGV0ZSBtX2RhdGE7CiAgICAgfQorICAg
IHZpcnR1YWwgYm9vbCBpc0NsZWFudXBUYXNrKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorcHJp
dmF0ZToKIAotICAgIHZpcnR1YWwgYm9vbCBpc0NsZWFudXBUYXNrKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gdHJ1ZTsgfQorICAgIERlbGV0ZUNhbGxiYWNrRGF0YVRhc2soSlNDYWxsYmFja0Rh
dGEqIGRhdGEpIDogbV9kYXRhKGRhdGEpIHt9CiAKICAgICBKU0NhbGxiYWNrRGF0YSogbV9kYXRh
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0VGFzay5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmpl
Y3RUYXNrLmgKaW5kZXggMjM3NjNhZjA1MWNkODBkY2ZhOGE0NmY3MDc1MTY1NzY1Y2YyNWVlNy4u
NjcyY2M4NTIxNDYyNjNiMTM5OTZhYzM4ZGM4MDFjNWE0ODhhZWVhNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3RUYXNrLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3RUYXNrLmgKQEAgLTM1LDEw
ICszNSwxNiBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdENhbGxiYWNrOwogCiBjbGFzcyBKU0dsb2Jh
bE9iamVjdFRhc2sgRklOQUwgOiBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayB7
CiBwdWJsaWM6Ci0gICAgSlNHbG9iYWxPYmplY3RUYXNrKEpTRE9NR2xvYmFsT2JqZWN0KiwgSlND
OjpHbG9iYWxPYmplY3RNZXRob2RUYWJsZTo6UXVldWVUYXNrVG9FdmVudExvb3BDYWxsYmFja0Z1
bmN0aW9uUHRyLCBQYXNzUmVmUHRyPEpTQzo6VGFza0NvbnRleHQ+KTsKKyAgICBzdGF0aWMgUGFz
c093blB0cjxKU0dsb2JhbE9iamVjdFRhc2s+IGNyZWF0ZShKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU0M6Okdsb2JhbE9iamVjdE1ldGhvZFRhYmxlOjpRdWV1ZVRhc2tUb0V2ZW50
TG9vcENhbGxiYWNrRnVuY3Rpb25QdHIgZnVuY3Rpb25QdHIsIFBhc3NSZWZQdHI8SlNDOjpUYXNr
Q29udGV4dD4gdGFza0NvbnRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3
IEpTR2xvYmFsT2JqZWN0VGFzayhnbG9iYWxPYmplY3QsIGZ1bmN0aW9uUHRyLCB0YXNrQ29udGV4
dCkpOworICAgIH0KKwogICAgIHZpcnR1YWwgfkpTR2xvYmFsT2JqZWN0VGFzaygpOwogCiBwcml2
YXRlOgorICAgIEpTR2xvYmFsT2JqZWN0VGFzayhKU0RPTUdsb2JhbE9iamVjdCosIEpTQzo6R2xv
YmFsT2JqZWN0TWV0aG9kVGFibGU6OlF1ZXVlVGFza1RvRXZlbnRMb29wQ2FsbGJhY2tGdW5jdGlv
blB0ciwgUGFzc1JlZlB0cjxKU0M6OlRhc2tDb250ZXh0Pik7CisKICAgICB2aXJ0dWFsIHZvaWQg
cGVyZm9ybVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIE9WRVJSSURFOwogCiAgICAgUmVm
UHRyPEpTR2xvYmFsT2JqZWN0Q2FsbGJhY2s+IG1fY2FsbGJhY2s7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCBkZGM5ZGEzNTNlZTQ0M2Ux
OGMwOWUxMTU2Zjg0MWNkODU0ODA1M2EyLi5jMjllNmQ1NzkyOGRmZDRhNmU4Y2JhZDdmZDM3MDM1
YzhlYjRiZTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
QmFzZS5jcHAKQEAgLTE2Nyw3ICsxNjcsNyBAQCBib29sIEpTRE9NV2luZG93QmFzZTo6amF2YVNj
cmlwdEV4cGVyaW1lbnRzRW5hYmxlZChjb25zdCBKU0dsb2JhbE9iamVjdCogb2JqZWN0KQogdm9p
ZCBKU0RPTVdpbmRvd0Jhc2U6OnF1ZXVlVGFza1RvRXZlbnRMb29wKGNvbnN0IEpTR2xvYmFsT2Jq
ZWN0KiBvYmplY3QsIEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlOjpRdWV1ZVRhc2tUb0V2ZW50TG9v
cENhbGxiYWNrRnVuY3Rpb25QdHIgZnVuY3Rpb25QdHIsIFBhc3NSZWZQdHI8VGFza0NvbnRleHQ+
IHRhc2tDb250ZXh0KQogewogICAgIGNvbnN0IEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9
IHN0YXRpY19jYXN0PGNvbnN0IEpTRE9NV2luZG93QmFzZSo+KG9iamVjdCk7Ci0gICAgdGhpc09i
amVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5wb3N0VGFzayhzdGQ6Om1ha2VfdW5pcXVl
PEpTR2xvYmFsT2JqZWN0VGFzaz4oKEpTRE9NV2luZG93QmFzZSopdGhpc09iamVjdCwgZnVuY3Rp
b25QdHIsIHRhc2tDb250ZXh0KSk7CisgICAgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5wb3N0VGFzayhKU0dsb2JhbE9iamVjdFRhc2s6OmNyZWF0ZSgoSlNET01XaW5kb3dC
YXNlKil0aGlzT2JqZWN0LCBmdW5jdGlvblB0ciwgdGFza0NvbnRleHQpKTsKIH0KIAogdm9pZCBK
U0RPTVdpbmRvd0Jhc2U6OndpbGxSZW1vdmVGcm9tV2luZG93U2hlbGwoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCmlu
ZGV4IDY5ZDRlZjgwMWQxYjNkYTYwZTEwZTJkNGY4MTc0ZWJmZGY4Yjc0ZmEuLjJmOTdhYmI5YTEz
ZDMyZDEzZmExNmJhOTdmMjFmZjJjNzg2YWQzMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTk5LDcgKzk5
LDcgQEAgYm9vbCBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6amF2YVNjcmlwdEV4cGVyaW1lbnRz
RW5hYmxlZChjb25zdCBKU0dsb2JhbE9iamVjdCoKIHZvaWQgSlNXb3JrZXJHbG9iYWxTY29wZUJh
c2U6OnF1ZXVlVGFza1RvRXZlbnRMb29wKGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBvYmplY3QsIEds
b2JhbE9iamVjdE1ldGhvZFRhYmxlOjpRdWV1ZVRhc2tUb0V2ZW50TG9vcENhbGxiYWNrRnVuY3Rp
b25QdHIgZnVuY3Rpb25QdHIsIFBhc3NSZWZQdHI8VGFza0NvbnRleHQ+IHRhc2tDb250ZXh0KQog
ewogICAgIGNvbnN0IEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlKiB0aGlzT2JqZWN0ID0gc3RhdGlj
X2Nhc3Q8Y29uc3QgSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UqPihvYmplY3QpOwotICAgIHRoaXNP
YmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+cG9zdFRhc2soc3RkOjptYWtlX3VuaXF1
ZTxKU0dsb2JhbE9iamVjdFRhc2s+KChKU0RPTUdsb2JhbE9iamVjdCopdGhpc09iamVjdCwgZnVu
Y3Rpb25QdHIsIHRhc2tDb250ZXh0KSk7CisgICAgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT5wb3N0VGFzayhKU0dsb2JhbE9iamVjdFRhc2s6OmNyZWF0ZSgoSlNET01HbG9i
YWxPYmplY3QqKXRoaXNPYmplY3QsIGZ1bmN0aW9uUHRyLCB0YXNrQ29udGV4dCkpOwogfQogCiBK
U1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCosIFdvcmtlckds
b2JhbFNjb3BlKiB3b3JrZXJHbG9iYWxTY29wZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggNjhmNWFlOWQzN2EzYWI0M2Vh
MzNmYjA0ODcwMzkxNTc4NmIzNWZhOS4uMWQyMjAwMzQ2ZGRlYzliMTg5Yjg0YTQ2NTBmNzg1YzFk
MDA4ZGIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KQEAgLTMwODUsNyArMzA4NSw3IEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNr
SW1wbGVtZW50YXRpb24KICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIWNvbnRleHQg
fHwgY29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkpXG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgZGVsZXRlIG1fZGF0YTtcbiIpOwogICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGVsc2VcbiIpOwotICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBjb250ZXh0LT5w
b3N0VGFzayhzdGQ6Om1ha2VfdW5pcXVlPERlbGV0ZUNhbGxiYWNrRGF0YVRhc2s+KG1fZGF0YSkp
O1xuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGNvbnRleHQtPnBvc3RUYXNr
KERlbGV0ZUNhbGxiYWNrRGF0YVRhc2s6OmNyZWF0ZShtX2RhdGEpKTtcbiIpOwogICAgIHB1c2go
QGltcGxDb250ZW50LCAiI2lmbmRlZiBOREVCVUdcbiIpOwogICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIG1fZGF0YSA9IDA7XG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxu
Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ3Jvc3NUaHJlYWRUYXNrLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vQ3Jvc3NUaHJlYWRUYXNrLmgKaW5kZXggYmRhZDAxMWYwYjFjMDAz
MGI0YThmNGEzZGNiMzgyMjRiZTBlMjFmNC4uZTI4MDk5ODdmOGMwZmIxZThlNjljOTQ2N2ZkYTgw
N2UzNDg5NTc2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Nyb3NzVGhyZWFkVGFz
ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Dcm9zc1RocmVhZFRhc2suaApAQCAtNjMsMTgg
KzYzLDI0IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIENyb3NzVGhyZWFkVGFzazE8UDEsIE1QMT4g
Q3Jvc3NUaHJlYWRUYXNrOwogICAgIHR5cGVkZWYgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRUYXNrVHJh
aXRzPFAxPjo6UGFyYW1UeXBlIFBhcmFtMTsKIAorICAgIHN0YXRpYyBQYXNzT3duUHRyPENyb3Nz
VGhyZWFkVGFzaz4gY3JlYXRlKE1ldGhvZCBtZXRob2QsIFBhcmFtMSBwYXJhbWV0ZXIxKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDcm9zc1RocmVhZFRhc2sobWV0aG9kLCBw
YXJhbWV0ZXIxKSk7CisgICAgfQorCitwcml2YXRlOgogICAgIENyb3NzVGhyZWFkVGFzazEoTWV0
aG9kIG1ldGhvZCwgUGFyYW0xIHBhcmFtZXRlcjEpCiAgICAgICAgIDogbV9tZXRob2QobWV0aG9k
KQogICAgICAgICAsIG1fcGFyYW1ldGVyMShwYXJhbWV0ZXIxKQogICAgIHsKICAgICB9CiAKLXBy
aXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgewogICAgICAgICAoKm1fbWV0aG9kKShj
b250ZXh0LCBtX3BhcmFtZXRlcjEpOwogICAgIH0KIAorcHJpdmF0ZToKICAgICBNZXRob2QgbV9t
ZXRob2Q7CiAgICAgUDEgbV9wYXJhbWV0ZXIxOwogfTsKQEAgLTg3LDYgKzkzLDEyIEBAIHB1Ymxp
YzoKICAgICB0eXBlZGVmIHR5cGVuYW1lIENyb3NzVGhyZWFkVGFza1RyYWl0czxQMT46OlBhcmFt
VHlwZSBQYXJhbTE7CiAgICAgdHlwZWRlZiB0eXBlbmFtZSBDcm9zc1RocmVhZFRhc2tUcmFpdHM8
UDI+OjpQYXJhbVR5cGUgUGFyYW0yOwogCisgICAgc3RhdGljIFBhc3NPd25QdHI8Q3Jvc3NUaHJl
YWRUYXNrPiBjcmVhdGUoTWV0aG9kIG1ldGhvZCwgUGFyYW0xIHBhcmFtZXRlcjEsIFBhcmFtMiBw
YXJhbWV0ZXIyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDcm9zc1RocmVh
ZFRhc2sobWV0aG9kLCBwYXJhbWV0ZXIxLCBwYXJhbWV0ZXIyKSk7CisgICAgfQorCitwcml2YXRl
OgogICAgIENyb3NzVGhyZWFkVGFzazIoTWV0aG9kIG1ldGhvZCwgUGFyYW0xIHBhcmFtZXRlcjEs
IFBhcmFtMiBwYXJhbWV0ZXIyKQogICAgICAgICA6IG1fbWV0aG9kKG1ldGhvZCkKICAgICAgICAg
LCBtX3BhcmFtZXRlcjEocGFyYW1ldGVyMSkKQEAgLTk0LDEyICsxMDYsMTIgQEAgcHVibGljOgog
ICAgIHsKICAgICB9CiAKLXByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lk
IHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgewogICAg
ICAgICAoKm1fbWV0aG9kKShjb250ZXh0LCBtX3BhcmFtZXRlcjEsIG1fcGFyYW1ldGVyMik7CiAg
ICAgfQogCitwcml2YXRlOgogICAgIE1ldGhvZCBtX21ldGhvZDsKICAgICBQMSBtX3BhcmFtZXRl
cjE7CiAgICAgUDIgbV9wYXJhbWV0ZXIyOwpAQCAtMTE0LDYgKzEyNiwxMiBAQCBwdWJsaWM6CiAg
ICAgdHlwZWRlZiB0eXBlbmFtZSBDcm9zc1RocmVhZFRhc2tUcmFpdHM8UDI+OjpQYXJhbVR5cGUg
UGFyYW0yOwogICAgIHR5cGVkZWYgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRUYXNrVHJhaXRzPFAzPjo6
UGFyYW1UeXBlIFBhcmFtMzsKIAorICAgIHN0YXRpYyBQYXNzT3duUHRyPENyb3NzVGhyZWFkVGFz
az4gY3JlYXRlKE1ldGhvZCBtZXRob2QsIFBhcmFtMSBwYXJhbWV0ZXIxLCBQYXJhbTIgcGFyYW1l
dGVyMiwgUGFyYW0zIHBhcmFtZXRlcjMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IENyb3NzVGhyZWFkVGFzayhtZXRob2QsIHBhcmFtZXRlcjEsIHBhcmFtZXRlcjIsIHBhcmFt
ZXRlcjMpKTsKKyAgICB9CisKK3ByaXZhdGU6CiAgICAgQ3Jvc3NUaHJlYWRUYXNrMyhNZXRob2Qg
bWV0aG9kLCBQYXJhbTEgcGFyYW1ldGVyMSwgUGFyYW0yIHBhcmFtZXRlcjIsIFBhcmFtMyBwYXJh
bWV0ZXIzKQogICAgICAgICA6IG1fbWV0aG9kKG1ldGhvZCkKICAgICAgICAgLCBtX3BhcmFtZXRl
cjEocGFyYW1ldGVyMSkKQEAgLTEyMiwxMiArMTQwLDEyIEBAIHB1YmxpYzoKICAgICB7CiAgICAg
fQogCi1wcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0KSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFz
ayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogICAgIHsKICAgICAgICAgKCptX21l
dGhvZCkoY29udGV4dCwgbV9wYXJhbWV0ZXIxLCBtX3BhcmFtZXRlcjIsIG1fcGFyYW1ldGVyMyk7
CiAgICAgfQogCitwcml2YXRlOgogICAgIE1ldGhvZCBtX21ldGhvZDsKICAgICBQMSBtX3BhcmFt
ZXRlcjE7CiAgICAgUDIgbV9wYXJhbWV0ZXIyOwpAQCAtMTQ0LDYgKzE2MiwxMiBAQCBwdWJsaWM6
CiAgICAgdHlwZWRlZiB0eXBlbmFtZSBDcm9zc1RocmVhZFRhc2tUcmFpdHM8UDM+OjpQYXJhbVR5
cGUgUGFyYW0zOwogICAgIHR5cGVkZWYgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRUYXNrVHJhaXRzPFA0
Pjo6UGFyYW1UeXBlIFBhcmFtNDsKIAorICAgIHN0YXRpYyBQYXNzT3duUHRyPENyb3NzVGhyZWFk
VGFzaz4gY3JlYXRlKE1ldGhvZCBtZXRob2QsIFBhcmFtMSBwYXJhbWV0ZXIxLCBQYXJhbTIgcGFy
YW1ldGVyMiwgUGFyYW0zIHBhcmFtZXRlcjMsIFBhcmFtNCBwYXJhbWV0ZXI0KQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDcm9zc1RocmVhZFRhc2sobWV0aG9kLCBwYXJhbWV0
ZXIxLCBwYXJhbWV0ZXIyLCBwYXJhbWV0ZXIzLCBwYXJhbWV0ZXI0KSk7CisgICAgfQorCitwcml2
YXRlOgogICAgIENyb3NzVGhyZWFkVGFzazQoTWV0aG9kIG1ldGhvZCwgUGFyYW0xIHBhcmFtZXRl
cjEsIFBhcmFtMiBwYXJhbWV0ZXIyLCBQYXJhbTMgcGFyYW1ldGVyMywgUGFyYW00IHBhcmFtZXRl
cjQpCiAgICAgICAgIDogbV9tZXRob2QobWV0aG9kKQogICAgICAgICAsIG1fcGFyYW1ldGVyMShw
YXJhbWV0ZXIxKQpAQCAtMTUzLDEyICsxNzcsMTIgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAK
LXByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgewogICAgICAgICAoKm1fbWV0aG9k
KShjb250ZXh0LCBtX3BhcmFtZXRlcjEsIG1fcGFyYW1ldGVyMiwgbV9wYXJhbWV0ZXIzLCBtX3Bh
cmFtZXRlcjQpOwogICAgIH0KIAorcHJpdmF0ZToKICAgICBNZXRob2QgbV9tZXRob2Q7CiAgICAg
UDEgbV9wYXJhbWV0ZXIxOwogICAgIFAyIG1fcGFyYW1ldGVyMjsKQEAgLTE3Nyw3ICsyMDEsMTIg
QEAgcHVibGljOgogICAgIHR5cGVkZWYgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRUYXNrVHJhaXRzPFA0
Pjo6UGFyYW1UeXBlIFBhcmFtNDsKICAgICB0eXBlZGVmIHR5cGVuYW1lIENyb3NzVGhyZWFkVGFz
a1RyYWl0czxQNT46OlBhcmFtVHlwZSBQYXJhbTU7CiAKLXB1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c093blB0cjxDcm9zc1RocmVhZFRhc2s+IGNyZWF0ZShNZXRob2QgbWV0aG9kLCBQYXJhbTEgcGFy
YW1ldGVyMSwgUGFyYW0yIHBhcmFtZXRlcjIsIFBhcmFtMyBwYXJhbWV0ZXIzLCBQYXJhbTQgcGFy
YW1ldGVyNCwgUGFyYW01IHBhcmFtZXRlcjUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IENyb3NzVGhyZWFkVGFzayhtZXRob2QsIHBhcmFtZXRlcjEsIHBhcmFtZXRlcjIsIHBh
cmFtZXRlcjMsIHBhcmFtZXRlcjQsIHBhcmFtZXRlcjUpKTsKKyAgICB9CisKK3ByaXZhdGU6CiAg
ICAgQ3Jvc3NUaHJlYWRUYXNrNShNZXRob2QgbWV0aG9kLCBQYXJhbTEgcGFyYW1ldGVyMSwgUGFy
YW0yIHBhcmFtZXRlcjIsIFBhcmFtMyBwYXJhbWV0ZXIzLCBQYXJhbTQgcGFyYW1ldGVyNCwgUGFy
YW01IHBhcmFtZXRlcjUpCiAgICAgICAgIDogbV9tZXRob2QobWV0aG9kKQogICAgICAgICAsIG1f
cGFyYW1ldGVyMShwYXJhbWV0ZXIxKQpAQCAtMTg4LDEyICsyMTcsMTIgQEAgcHVibGljOgogICAg
IHsKICAgICB9CiAKLXByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIHBl
cmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgewogICAgICAg
ICAoKm1fbWV0aG9kKShjb250ZXh0LCBtX3BhcmFtZXRlcjEsIG1fcGFyYW1ldGVyMiwgbV9wYXJh
bWV0ZXIzLCBtX3BhcmFtZXRlcjQsIG1fcGFyYW1ldGVyNSk7CiAgICAgfQogCitwcml2YXRlOgog
ICAgIE1ldGhvZCBtX21ldGhvZDsKICAgICBQMSBtX3BhcmFtZXRlcjE7CiAgICAgUDIgbV9wYXJh
bWV0ZXIyOwpAQCAtMjE0LDYgKzI0MywxMiBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiB0eXBlbmFt
ZSBDcm9zc1RocmVhZFRhc2tUcmFpdHM8UDU+OjpQYXJhbVR5cGUgUGFyYW01OwogICAgIHR5cGVk
ZWYgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRUYXNrVHJhaXRzPFA2Pjo6UGFyYW1UeXBlIFBhcmFtNjsK
IAorICAgIHN0YXRpYyBQYXNzT3duUHRyPENyb3NzVGhyZWFkVGFzaz4gY3JlYXRlKE1ldGhvZCBt
ZXRob2QsIFBhcmFtMSBwYXJhbWV0ZXIxLCBQYXJhbTIgcGFyYW1ldGVyMiwgUGFyYW0zIHBhcmFt
ZXRlcjMsIFBhcmFtNCBwYXJhbWV0ZXI0LCBQYXJhbTUgcGFyYW1ldGVyNSwgUGFyYW02IHBhcmFt
ZXRlcjYpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENyb3NzVGhyZWFkVGFz
ayhtZXRob2QsIHBhcmFtZXRlcjEsIHBhcmFtZXRlcjIsIHBhcmFtZXRlcjMsIHBhcmFtZXRlcjQs
IHBhcmFtZXRlcjUsIHBhcmFtZXRlcjYpKTsKKyAgICB9CisKK3ByaXZhdGU6CiAgICAgQ3Jvc3NU
aHJlYWRUYXNrNihNZXRob2QgbWV0aG9kLCBQYXJhbTEgcGFyYW1ldGVyMSwgUGFyYW0yIHBhcmFt
ZXRlcjIsIFBhcmFtMyBwYXJhbWV0ZXIzLCBQYXJhbTQgcGFyYW1ldGVyNCwgUGFyYW01IHBhcmFt
ZXRlcjUsIFBhcmFtNiBwYXJhbWV0ZXI2KQogICAgICAgICA6IG1fbWV0aG9kKG1ldGhvZCkKICAg
ICAgICAgLCBtX3BhcmFtZXRlcjEocGFyYW1ldGVyMSkKQEAgLTIyNSw4ICsyNjAsNyBAQCBwdWJs
aWM6CiAgICAgewogICAgIH0KIAotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRh
c2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkgT1ZFUlJJREUKKyAgICB2aXJ0dWFs
IHZvaWQgcGVyZm9ybVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKICAgICB7
CiAgICAgICAgICgqbV9tZXRob2QpKGNvbnRleHQsIG1fcGFyYW1ldGVyMSwgbV9wYXJhbWV0ZXIy
LCBtX3BhcmFtZXRlcjMsIG1fcGFyYW1ldGVyNCwgbV9wYXJhbWV0ZXI1LCBtX3BhcmFtZXRlcjYp
OwogICAgIH0KQEAgLTI1NCw3ICsyODgsMTIgQEAgcHVibGljOgogICAgIHR5cGVkZWYgdHlwZW5h
bWUgQ3Jvc3NUaHJlYWRUYXNrVHJhaXRzPFA2Pjo6UGFyYW1UeXBlIFBhcmFtNjsKICAgICB0eXBl
ZGVmIHR5cGVuYW1lIENyb3NzVGhyZWFkVGFza1RyYWl0czxQNz46OlBhcmFtVHlwZSBQYXJhbTc7
CiAKLXB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxDcm9zc1RocmVhZFRhc2s+IGNyZWF0
ZShNZXRob2QgbWV0aG9kLCBQYXJhbTEgcGFyYW1ldGVyMSwgUGFyYW0yIHBhcmFtZXRlcjIsIFBh
cmFtMyBwYXJhbWV0ZXIzLCBQYXJhbTQgcGFyYW1ldGVyNCwgUGFyYW01IHBhcmFtZXRlcjUsIFBh
cmFtNiBwYXJhbWV0ZXI2LCBQYXJhbTcgcGFyYW1ldGVyNykKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFB0cihuZXcgQ3Jvc3NUaHJlYWRUYXNrKG1ldGhvZCwgcGFyYW1ldGVyMSwgcGFyYW1l
dGVyMiwgcGFyYW1ldGVyMywgcGFyYW1ldGVyNCwgcGFyYW1ldGVyNSwgcGFyYW1ldGVyNiwgcGFy
YW1ldGVyNykpOworICAgIH0KKworcHJpdmF0ZToKICAgICBDcm9zc1RocmVhZFRhc2s3KE1ldGhv
ZCBtZXRob2QsIFBhcmFtMSBwYXJhbWV0ZXIxLCBQYXJhbTIgcGFyYW1ldGVyMiwgUGFyYW0zIHBh
cmFtZXRlcjMsIFBhcmFtNCBwYXJhbWV0ZXI0LCBQYXJhbTUgcGFyYW1ldGVyNSwgUGFyYW02IHBh
cmFtZXRlcjYsIFBhcmFtNyBwYXJhbWV0ZXI3KQogICAgICAgICA6IG1fbWV0aG9kKG1ldGhvZCkK
ICAgICAgICAgLCBtX3BhcmFtZXRlcjEocGFyYW1ldGVyMSkKQEAgLTI2NywxMiArMzA2LDEyIEBA
IHB1YmxpYzoKICAgICB7CiAgICAgfQogCi1wcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBwZXJm
b3JtVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KSBPVkVSUklERQorICAgIHZp
cnR1YWwgdm9pZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQog
ICAgIHsKICAgICAgICAgKCptX21ldGhvZCkoY29udGV4dCwgbV9wYXJhbWV0ZXIxLCBtX3BhcmFt
ZXRlcjIsIG1fcGFyYW1ldGVyMywgbV9wYXJhbWV0ZXI0LCBtX3BhcmFtZXRlcjUsIG1fcGFyYW1l
dGVyNiwgbV9wYXJhbWV0ZXI3KTsKICAgICB9CiAKK3ByaXZhdGU6CiAgICAgTWV0aG9kIG1fbWV0
aG9kOwogICAgIFAxIG1fcGFyYW1ldGVyMTsKICAgICBQMiBtX3BhcmFtZXRlcjI7CkBAIC0yOTcs
NyArMzM2LDEyIEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIHR5cGVuYW1lIENyb3NzVGhyZWFkVGFz
a1RyYWl0czxQNz46OlBhcmFtVHlwZSBQYXJhbTc7CiAgICAgdHlwZWRlZiB0eXBlbmFtZSBDcm9z
c1RocmVhZFRhc2tUcmFpdHM8UDg+OjpQYXJhbVR5cGUgUGFyYW04OwogICAgIAotcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPENyb3NzVGhyZWFkVGFzaz4gY3JlYXRlKE1ldGhvZCBtZXRo
b2QsIFBhcmFtMSBwYXJhbWV0ZXIxLCBQYXJhbTIgcGFyYW1ldGVyMiwgUGFyYW0zIHBhcmFtZXRl
cjMsIFBhcmFtNCBwYXJhbWV0ZXI0LCBQYXJhbTUgcGFyYW1ldGVyNSwgUGFyYW02IHBhcmFtZXRl
cjYsIFBhcmFtNyBwYXJhbWV0ZXI3LCBQYXJhbTggcGFyYW1ldGVyOCkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFB0cihuZXcgQ3Jvc3NUaHJlYWRUYXNrKG1ldGhvZCwgcGFyYW1ldGVyMSwg
cGFyYW1ldGVyMiwgcGFyYW1ldGVyMywgcGFyYW1ldGVyNCwgcGFyYW1ldGVyNSwgcGFyYW1ldGVy
NiwgcGFyYW1ldGVyNywgcGFyYW1ldGVyOCkpOworICAgIH0KKyAgICAKK3ByaXZhdGU6CiAgICAg
Q3Jvc3NUaHJlYWRUYXNrOChNZXRob2QgbWV0aG9kLCBQYXJhbTEgcGFyYW1ldGVyMSwgUGFyYW0y
IHBhcmFtZXRlcjIsIFBhcmFtMyBwYXJhbWV0ZXIzLCBQYXJhbTQgcGFyYW1ldGVyNCwgUGFyYW01
IHBhcmFtZXRlcjUsIFBhcmFtNiBwYXJhbWV0ZXI2LCBQYXJhbTcgcGFyYW1ldGVyNywgUGFyYW04
IHBhcmFtZXRlcjgpCiAgICAgOiBtX21ldGhvZChtZXRob2QpCiAgICAgLCBtX3BhcmFtZXRlcjEo
cGFyYW1ldGVyMSkKQEAgLTMxMSwxMiArMzU1LDEyIEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQog
ICAgIAotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRhc2soU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCkgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRh
c2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKICAgICB7CiAgICAgICAgICgqbV9t
ZXRob2QpKGNvbnRleHQsIG1fcGFyYW1ldGVyMSwgbV9wYXJhbWV0ZXIyLCBtX3BhcmFtZXRlcjMs
IG1fcGFyYW1ldGVyNCwgbV9wYXJhbWV0ZXI1LCBtX3BhcmFtZXRlcjYsIG1fcGFyYW1ldGVyNywg
bV9wYXJhbWV0ZXI4KTsKICAgICB9CiAgICAgCitwcml2YXRlOgogICAgIE1ldGhvZCBtX21ldGhv
ZDsKICAgICBQMSBtX3BhcmFtZXRlcjE7CiAgICAgUDIgbV9wYXJhbWV0ZXIyOwpAQCAtMzI5LDY4
ICszNzMsNjggQEAgcHJpdmF0ZToKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFAxLCB0eXBlbmFt
ZSBNUDE+Ci1zdGQ6OnVuaXF1ZV9wdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4gY3Jl
YXRlQ2FsbGJhY2tUYXNrKAorUGFzc093blB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNr
PiBjcmVhdGVDYWxsYmFja1Rhc2soCiAgICAgdm9pZCAoKm1ldGhvZCkoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIE1QMSksCiAgICAgY29uc3QgUDEmIHBhcmFtZXRlcjEpCiB7Ci0gICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8Q3Jvc3NUaHJlYWRUYXNrMTx0eXBlbmFtZSBDcm9zc1RocmVhZENv
cGllcjxQMT46OlR5cGUsIE1QMT4+KAorICAgIHJldHVybiBDcm9zc1RocmVhZFRhc2sxPHR5cGVu
YW1lIENyb3NzVGhyZWFkQ29waWVyPFAxPjo6VHlwZSwgTVAxPjo6Y3JlYXRlKAogICAgICAgICBt
ZXRob2QsCiAgICAgICAgIENyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIxKSk7
CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0
eXBlbmFtZSBNUDI+Ci1zdGQ6OnVuaXF1ZV9wdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFz
az4gY3JlYXRlQ2FsbGJhY2tUYXNrKAorUGFzc093blB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpUYXNrPiBjcmVhdGVDYWxsYmFja1Rhc2soCiAgICAgdm9pZCAoKm1ldGhvZCkoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIE1QMSwgTVAyKSwKICAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwgY29u
c3QgUDImIHBhcmFtZXRlcjIpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Q3Jvc3NU
aHJlYWRUYXNrMjx0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQMT46OlR5cGUsIE1QMSwgdHlw
ZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDI+OjpUeXBlLCBNUDI+PigKKyAgICByZXR1cm4gQ3Jv
c3NUaHJlYWRUYXNrMjx0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQMT46OlR5cGUsIE1QMSwg
dHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDI+OjpUeXBlLCBNUDI+OjpjcmVhdGUoCiAgICAg
ICAgIG1ldGhvZCwKICAgICAgICAgQ3Jvc3NUaHJlYWRDb3BpZXI8UDE+Ojpjb3B5KHBhcmFtZXRl
cjEpLCBDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVyMikpOwogfQogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgTVAy
LCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgTVAzPgotc3RkOjp1bmlxdWVfcHRyPFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ6OlRhc2s+IGNyZWF0ZUNhbGxiYWNrVGFzaygKK1Bhc3NPd25QdHI8U2NyaXB0
RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4gY3JlYXRlQ2FsbGJhY2tUYXNrKAogICAgIHZvaWQgKCpt
ZXRob2QpKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBNUDEsIE1QMiwgTVAzKSwKICAgICBjb25z
dCBQMSYgcGFyYW1ldGVyMSwgY29uc3QgUDImIHBhcmFtZXRlcjIsIGNvbnN0IFAzJiBwYXJhbWV0
ZXIzKQogewotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPENyb3NzVGhyZWFkVGFzazM8dHlw
ZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDE+OjpUeXBlLCBNUDEsIHR5cGVuYW1lIENyb3NzVGhy
ZWFkQ29waWVyPFAyPjo6VHlwZSwgTVAyLCB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQMz46
OlR5cGUsIE1QMz4+KAorICAgIHJldHVybiBDcm9zc1RocmVhZFRhc2szPHR5cGVuYW1lIENyb3Nz
VGhyZWFkQ29waWVyPFAxPjo6VHlwZSwgTVAxLCB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQ
Mj46OlR5cGUsIE1QMiwgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDM+OjpUeXBlLCBNUDM+
OjpjcmVhdGUoCiAgICAgICAgIG1ldGhvZCwKICAgICAgICAgQ3Jvc3NUaHJlYWRDb3BpZXI8UDE+
Ojpjb3B5KHBhcmFtZXRlcjEpLCBDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVy
MiksCiAgICAgICAgIENyb3NzVGhyZWFkQ29waWVyPFAzPjo6Y29weShwYXJhbWV0ZXIzKSk7CiB9
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBl
bmFtZSBNUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBNUDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFt
ZSBNUDQ+Ci1zdGQ6OnVuaXF1ZV9wdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4gY3Jl
YXRlQ2FsbGJhY2tUYXNrKAorUGFzc093blB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNr
PiBjcmVhdGVDYWxsYmFja1Rhc2soCiAgICAgdm9pZCAoKm1ldGhvZCkoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIE1QMSwgTVAyLCBNUDMsIE1QNCksCiAgICAgY29uc3QgUDEmIHBhcmFtZXRlcjEs
IGNvbnN0IFAyJiBwYXJhbWV0ZXIyLCBjb25zdCBQMyYgcGFyYW1ldGVyMywgY29uc3QgUDQmIHBh
cmFtZXRlcjQpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Q3Jvc3NUaHJlYWRUYXNr
NDx0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQMT46OlR5cGUsIE1QMSwgdHlwZW5hbWUgQ3Jv
c3NUaHJlYWRDb3BpZXI8UDI+OjpUeXBlLCBNUDIsIHR5cGVuYW1lIENyb3NzVGhyZWFkQ29waWVy
PFAzPjo6VHlwZSwgTVAzLAotICAgICAgICB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQND46
OlR5cGUsIE1QND4+KAorICAgIHJldHVybiBDcm9zc1RocmVhZFRhc2s0PHR5cGVuYW1lIENyb3Nz
VGhyZWFkQ29waWVyPFAxPjo6VHlwZSwgTVAxLCB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQ
Mj46OlR5cGUsIE1QMiwgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDM+OjpUeXBlLCBNUDMs
CisgICAgICAgIHR5cGVuYW1lIENyb3NzVGhyZWFkQ29waWVyPFA0Pjo6VHlwZSwgTVA0Pjo6Y3Jl
YXRlKAogICAgICAgICAgICAgbWV0aG9kLAogICAgICAgICAgICAgQ3Jvc3NUaHJlYWRDb3BpZXI8
UDE+Ojpjb3B5KHBhcmFtZXRlcjEpLCBDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1l
dGVyMiksCiAgICAgICAgICAgICBDcm9zc1RocmVhZENvcGllcjxQMz46OmNvcHkocGFyYW1ldGVy
MyksIENyb3NzVGhyZWFkQ29waWVyPFA0Pjo6Y29weShwYXJhbWV0ZXI0KSk7CiB9CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBNUDIs
IHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBNUDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFtZSBNUDQsIHR5
cGVuYW1lIFA1LCB0eXBlbmFtZSBNUDU+Ci1zdGQ6OnVuaXF1ZV9wdHI8U2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6VGFzaz4gY3JlYXRlQ2FsbGJhY2tUYXNrKAorUGFzc093blB0cjxTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpUYXNrPiBjcmVhdGVDYWxsYmFja1Rhc2soCiAgICAgdm9pZCAoKm1ldGhv
ZCkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE1QMSwgTVAyLCBNUDMsIE1QNCwgTVA1KSwKICAg
ICBjb25zdCBQMSYgcGFyYW1ldGVyMSwgY29uc3QgUDImIHBhcmFtZXRlcjIsIGNvbnN0IFAzJiBw
YXJhbWV0ZXIzLCBjb25zdCBQNCYgcGFyYW1ldGVyNCwgY29uc3QgUDUmIHBhcmFtZXRlcjUpCiB7
Ci0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Q3Jvc3NUaHJlYWRUYXNrNTx0eXBlbmFtZSBD
cm9zc1RocmVhZENvcGllcjxQMT46OlR5cGUsIE1QMSwgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3Bp
ZXI8UDI+OjpUeXBlLCBNUDIsIHR5cGVuYW1lIENyb3NzVGhyZWFkQ29waWVyPFAzPjo6VHlwZSwg
TVAzLAotICAgICAgICB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQND46OlR5cGUsIE1QNCwg
dHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDU+OjpUeXBlLCBNUDU+PigKKyAgICByZXR1cm4g
Q3Jvc3NUaHJlYWRUYXNrNTx0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQMT46OlR5cGUsIE1Q
MSwgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDI+OjpUeXBlLCBNUDIsIHR5cGVuYW1lIENy
b3NzVGhyZWFkQ29waWVyPFAzPjo6VHlwZSwgTVAzLAorICAgICAgICB0eXBlbmFtZSBDcm9zc1Ro
cmVhZENvcGllcjxQND46OlR5cGUsIE1QNCwgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDU+
OjpUeXBlLCBNUDU+OjpjcmVhdGUoCiAgICAgICAgICAgICBtZXRob2QsCi0gICAgICAgICAgICBD
cm9zc1RocmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1ldGVyMSksIENyb3NzVGhyZWFkQ29waWVy
PFAyPjo6Y29weShwYXJhbWV0ZXIyKSwgICAKKyAgICAgICAgICAgIENyb3NzVGhyZWFkQ29waWVy
PFAxPjo6Y29weShwYXJhbWV0ZXIxKSwgQ3Jvc3NUaHJlYWRDb3BpZXI8UDI+Ojpjb3B5KHBhcmFt
ZXRlcjIpLAogICAgICAgICAgICAgQ3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5KHBhcmFtZXRl
cjMpLCBDcm9zc1RocmVhZENvcGllcjxQND46OmNvcHkocGFyYW1ldGVyNCksCiAgICAgICAgICAg
ICBDcm9zc1RocmVhZENvcGllcjxQNT46OmNvcHkocGFyYW1ldGVyNSkpOwogfQogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgTVAyLCB0
eXBlbmFtZSBQMywgdHlwZW5hbWUgTVAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgTVA0LCB0eXBl
bmFtZSBQNSwgdHlwZW5hbWUgTVA1LCB0eXBlbmFtZSBQNiwgdHlwZW5hbWUgTVA2Pgotc3RkOjp1
bmlxdWVfcHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IGNyZWF0ZUNhbGxiYWNrVGFz
aygKK1Bhc3NPd25QdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4gY3JlYXRlQ2FsbGJh
Y2tUYXNrKAogICAgIHZvaWQgKCptZXRob2QpKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBNUDEs
IE1QMiwgTVAzLCBNUDQsIE1QNSwgTVA2KSwKICAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwgY29u
c3QgUDImIHBhcmFtZXRlcjIsIGNvbnN0IFAzJiBwYXJhbWV0ZXIzLCBjb25zdCBQNCYgcGFyYW1l
dGVyNCwgY29uc3QgUDUmIHBhcmFtZXRlcjUsIGNvbnN0IFA2JiBwYXJhbWV0ZXI2KQogewotICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPENyb3NzVGhyZWFkVGFzazY8dHlwZW5hbWUgQ3Jvc3NU
aHJlYWRDb3BpZXI8UDE+OjpUeXBlLCBNUDEsIHR5cGVuYW1lIENyb3NzVGhyZWFkQ29waWVyPFAy
Pjo6VHlwZSwgTVAyLCB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQMz46OlR5cGUsIE1QMywK
LSAgICAgICAgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDQ+OjpUeXBlLCBNUDQsIHR5cGVu
YW1lIENyb3NzVGhyZWFkQ29waWVyPFA1Pjo6VHlwZSwgTVA1LCB0eXBlbmFtZSBDcm9zc1RocmVh
ZENvcGllcjxQNj46OlR5cGUsIE1QNj4+KAorICAgIHJldHVybiBDcm9zc1RocmVhZFRhc2s2PHR5
cGVuYW1lIENyb3NzVGhyZWFkQ29waWVyPFAxPjo6VHlwZSwgTVAxLCB0eXBlbmFtZSBDcm9zc1Ro
cmVhZENvcGllcjxQMj46OlR5cGUsIE1QMiwgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDM+
OjpUeXBlLCBNUDMsCisgICAgICAgIHR5cGVuYW1lIENyb3NzVGhyZWFkQ29waWVyPFA0Pjo6VHlw
ZSwgTVA0LCB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQNT46OlR5cGUsIE1QNSwgdHlwZW5h
bWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDY+OjpUeXBlLCBNUDY+OjpjcmVhdGUoCiAgICAgICAgICAg
ICBtZXRob2QsCiAgICAgICAgICAgICBDcm9zc1RocmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1l
dGVyMSksIENyb3NzVGhyZWFkQ29waWVyPFAyPjo6Y29weShwYXJhbWV0ZXIyKSwKICAgICAgICAg
ICAgIENyb3NzVGhyZWFkQ29waWVyPFAzPjo6Y29weShwYXJhbWV0ZXIzKSwgQ3Jvc3NUaHJlYWRD
b3BpZXI8UDQ+Ojpjb3B5KHBhcmFtZXRlcjQpLApAQCAtMzk4LDEzICs0NDIsMTMgQEAgc3RkOjp1
bmlxdWVfcHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IGNyZWF0ZUNhbGxiYWNrVGFz
aygKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgUDEsIHR5cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDIs
IHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIE1QMywgdHlwZW5hbWUgUDQsIHR5
cGVuYW1lIE1QNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIE1QNSwgdHlwZW5hbWUgUDYsIHR5cGVu
YW1lIE1QNiwgdHlwZW5hbWUgUDcsIHR5cGVuYW1lIE1QNz4KLXN0ZDo6dW5pcXVlX3B0cjxTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiBjcmVhdGVDYWxsYmFja1Rhc2soCitQYXNzT3duUHRy
PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IGNyZWF0ZUNhbGxiYWNrVGFzaygKICAgICB2
b2lkICgqbWV0aG9kKShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTVAxLCBNUDIsIE1QMywgTVA0
LCBNUDUsIE1QNiwgTVA3KSwKICAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwgY29uc3QgUDImIHBh
cmFtZXRlcjIsIGNvbnN0IFAzJiBwYXJhbWV0ZXIzLCBjb25zdCBQNCYgcGFyYW1ldGVyNCwgY29u
c3QgUDUmIHBhcmFtZXRlcjUsIGNvbnN0IFA2JiBwYXJhbWV0ZXI2LCBjb25zdCBQNyYgcGFyYW1l
dGVyNykKIHsKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDcm9zc1RocmVhZFRhc2s3PHR5
cGVuYW1lIENyb3NzVGhyZWFkQ29waWVyPFAxPjo6VHlwZSwgTVAxLCB0eXBlbmFtZSBDcm9zc1Ro
cmVhZENvcGllcjxQMj46OlR5cGUsIE1QMiwgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDM+
OjpUeXBlLCBNUDMsCisgICAgcmV0dXJuIENyb3NzVGhyZWFkVGFzazc8dHlwZW5hbWUgQ3Jvc3NU
aHJlYWRDb3BpZXI8UDE+OjpUeXBlLCBNUDEsIHR5cGVuYW1lIENyb3NzVGhyZWFkQ29waWVyPFAy
Pjo6VHlwZSwgTVAyLCB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQMz46OlR5cGUsIE1QMywK
ICAgICAgICAgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDQ+OjpUeXBlLCBNUDQsIHR5cGVu
YW1lIENyb3NzVGhyZWFkQ29waWVyPFA1Pjo6VHlwZSwgTVA1LCB0eXBlbmFtZSBDcm9zc1RocmVh
ZENvcGllcjxQNj46OlR5cGUsIE1QNiwKLSAgICAgICAgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3Bp
ZXI8UDc+OjpUeXBlLCBNUDc+PigKKyAgICAgICAgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8
UDc+OjpUeXBlLCBNUDc+OjpjcmVhdGUoCiAgICAgICAgICAgICBtZXRob2QsCiAgICAgICAgICAg
ICBDcm9zc1RocmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1ldGVyMSksIENyb3NzVGhyZWFkQ29w
aWVyPFAyPjo6Y29weShwYXJhbWV0ZXIyKSwKICAgICAgICAgICAgIENyb3NzVGhyZWFkQ29waWVy
PFAzPjo6Y29weShwYXJhbWV0ZXIzKSwgQ3Jvc3NUaHJlYWRDb3BpZXI8UDQ+Ojpjb3B5KHBhcmFt
ZXRlcjQpLApAQCAtNDEzLDEzICs0NTcsMTMgQEAgc3RkOjp1bmlxdWVfcHRyPFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ6OlRhc2s+IGNyZWF0ZUNhbGxiYWNrVGFzaygKIH0KIAogdGVtcGxhdGU8dHlw
ZW5hbWUgUDEsIHR5cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5h
bWUgUDMsIHR5cGVuYW1lIE1QMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIE1QNCwgdHlwZW5hbWUg
UDUsIHR5cGVuYW1lIE1QNSwgdHlwZW5hbWUgUDYsIHR5cGVuYW1lIE1QNiwgdHlwZW5hbWUgUDcs
IHR5cGVuYW1lIE1QNywgdHlwZW5hbWUgUDgsIHR5cGVuYW1lIE1QOD4KLXN0ZDo6dW5pcXVlX3B0
cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiBjcmVhdGVDYWxsYmFja1Rhc2soCitQYXNz
T3duUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IGNyZWF0ZUNhbGxiYWNrVGFzaygK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZvaWQgKCptZXRob2QpKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBNUDEsIE1QMiwgTVAz
LCBNUDQsIE1QNSwgTVA2LCBNUDcsIE1QOCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwgY29u
c3QgUDImIHBhcmFtZXRlcjIsIGNvbnN0IFAzJiBwYXJhbWV0ZXIzLCBjb25zdCBQNCYgcGFyYW1l
dGVyNCwgY29uc3QgUDUmIHBhcmFtZXRlcjUsIGNvbnN0IFA2JiBwYXJhbWV0ZXI2LCBjb25zdCBQ
NyYgcGFyYW1ldGVyNywgY29uc3QgUDgmIHBhcmFtZXRlcjgpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8Q3Jvc3NUaHJlYWRUYXNrODx0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQ
MT46OlR5cGUsIE1QMSwgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDI+OjpUeXBlLCBNUDIs
IHR5cGVuYW1lIENyb3NzVGhyZWFkQ29waWVyPFAzPjo6VHlwZSwgTVAzLAorICAgIHJldHVybiBD
cm9zc1RocmVhZFRhc2s4PHR5cGVuYW1lIENyb3NzVGhyZWFkQ29waWVyPFAxPjo6VHlwZSwgTVAx
LCB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQMj46OlR5cGUsIE1QMiwgdHlwZW5hbWUgQ3Jv
c3NUaHJlYWRDb3BpZXI8UDM+OjpUeXBlLCBNUDMsCiAgICAgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRD
b3BpZXI8UDQ+OjpUeXBlLCBNUDQsIHR5cGVuYW1lIENyb3NzVGhyZWFkQ29waWVyPFA1Pjo6VHlw
ZSwgTVA1LCB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQNj46OlR5cGUsIE1QNiwKLSAgICB0
eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQNz46OlR5cGUsIE1QNywgdHlwZW5hbWUgQ3Jvc3NU
aHJlYWRDb3BpZXI8UDg+OjpUeXBlLCBNUDg+PigKKyAgICB0eXBlbmFtZSBDcm9zc1RocmVhZENv
cGllcjxQNz46OlR5cGUsIE1QNywgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDg+OjpUeXBl
LCBNUDg+OjpjcmVhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWV0aG9kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIENyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0
ZXIxKSwgQ3Jvc3NUaHJlYWRDb3BpZXI8UDI+Ojpjb3B5KHBhcmFtZXRlcjIpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyb3NzVGhyZWFk
Q29waWVyPFAzPjo6Y29weShwYXJhbWV0ZXIzKSwgQ3Jvc3NUaHJlYWRDb3BpZXI8UDQ+Ojpjb3B5
KHBhcmFtZXRlcjQpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggODM0MjM4YjA2ZjA3NTNm
Njc3ZDI2ZTBkNTJjYzBkNzU3NmQyMWZkYy4uZWY1ZDVlYmRkZjgwNjBhYTM2ZDg0YjBmNjkxM2M3
Mjc1NTAwMjE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00ODMxLDcgKzQ4MzEsNyBA
QCB2b2lkIERvY3VtZW50OjpwYXJzZUROU1ByZWZldGNoQ29udHJvbEhlYWRlcihjb25zdCBTdHJp
bmcmIGRuc1ByZWZldGNoQ29udHJvbCkKIHZvaWQgRG9jdW1lbnQ6OmFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKIHsKICAgICBpZiAoIWlz
Q29udGV4dFRocmVhZCgpKSB7Ci0gICAgICAgIHBvc3RUYXNrKHN0ZDo6bWFrZV91bmlxdWU8QWRk
Q29uc29sZU1lc3NhZ2VUYXNrPihzb3VyY2UsIGxldmVsLCBtZXNzYWdlKSk7CisgICAgICAgIHBv
c3RUYXNrKEFkZENvbnNvbGVNZXNzYWdlVGFzazo6Y3JlYXRlKHNvdXJjZSwgbGV2ZWwsIG1lc3Nh
Z2UpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNDg0Miw3ICs0ODQyLDcgQEAgdm9p
ZCBEb2N1bWVudDo6YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3Nh
Z2VMZXZlbCBsZXZlbCwgY29uc3QKIHZvaWQgRG9jdW1lbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29s
dW1uTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCBKU0M6OkV4
ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiB7CiAgICAg
aWYgKCFpc0NvbnRleHRUaHJlYWQoKSkgewotICAgICAgICBwb3N0VGFzayhzdGQ6Om1ha2VfdW5p
cXVlPEFkZENvbnNvbGVNZXNzYWdlVGFzaz4oc291cmNlLCBsZXZlbCwgbWVzc2FnZSkpOworICAg
ICAgICBwb3N0VGFzayhBZGRDb25zb2xlTWVzc2FnZVRhc2s6OmNyZWF0ZShzb3VyY2UsIGxldmVs
LCBtZXNzYWdlKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQ4NTgsMTQgKzQ4NTgs
MTQgQEAgU2VjdXJpdHlPcmlnaW4qIERvY3VtZW50Ojp0b3BPcmlnaW4oKSBjb25zdAogc3RydWN0
IFBlcmZvcm1UYXNrQ29udGV4dCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGVyZm9ybVRh
c2tDb250ZXh0KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgUGVyZm9y
bVRhc2tDb250ZXh0KFdlYWtQdHI8RG9jdW1lbnQ+IGRvY3VtZW50LCBzdGQ6OnVuaXF1ZV9wdHI8
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4gdGFzaykKKyAgICBQZXJmb3JtVGFza0NvbnRl
eHQoV2Vha1B0cjxEb2N1bWVudD4gZG9jdW1lbnQsIFBhc3NPd25QdHI8U2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6VGFzaz4gdGFzaykKICAgICAgICAgOiBkb2N1bWVudFJlZmVyZW5jZShkb2N1bWVu
dCkKLSAgICAgICAgLCB0YXNrKHN0ZDo6bW92ZSh0YXNrKSkKKyAgICAgICAgLCB0YXNrKHRhc2sp
CiAgICAgewogICAgIH0KIAogICAgIFdlYWtQdHI8RG9jdW1lbnQ+IGRvY3VtZW50UmVmZXJlbmNl
OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiB0YXNr
OworICAgIE93blB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiB0YXNrOwogfTsKIAog
dm9pZCBEb2N1bWVudDo6ZGlkUmVjZWl2ZVRhc2sodm9pZCogdW50eXBlZENvbnRleHQpCkBAIC00
ODg4LDE1ICs0ODg4LDE1IEBAIHZvaWQgRG9jdW1lbnQ6OmRpZFJlY2VpdmVUYXNrKHZvaWQqIHVu
dHlwZWRDb250ZXh0KQogICAgIGNvbnRleHQtPnRhc2stPnBlcmZvcm1UYXNrKGRvY3VtZW50KTsK
IH0KIAotdm9pZCBEb2N1bWVudDo6cG9zdFRhc2soc3RkOjp1bmlxdWVfcHRyPFRhc2s+IHRhc2sp
Cit2b2lkIERvY3VtZW50Ojpwb3N0VGFzayhQYXNzT3duUHRyPFRhc2s+IHRhc2spCiB7Ci0gICAg
Y2FsbE9uTWFpblRocmVhZChkaWRSZWNlaXZlVGFzaywgbmV3IFBlcmZvcm1UYXNrQ29udGV4dCht
X3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKSwgc3RkOjptb3ZlKHRhc2spKSk7CisgICAgY2Fs
bE9uTWFpblRocmVhZChkaWRSZWNlaXZlVGFzaywgbmV3IFBlcmZvcm1UYXNrQ29udGV4dChtX3dl
YWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKSwgdGFzaykpOwogfQogCiB2b2lkIERvY3VtZW50Ojpw
ZW5kaW5nVGFza3NUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50PiopCiB7CiAgICAgd2hpbGUgKCFt
X3BlbmRpbmdUYXNrcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgYXV0byB0YXNrID0gc3RkOjptb3Zl
KG1fcGVuZGluZ1Rhc2tzWzBdKTsKKyAgICAgICAgT3duUHRyPFRhc2s+IHRhc2sgPSBtX3BlbmRp
bmdUYXNrc1swXS5yZWxlYXNlKCk7CiAgICAgICAgIG1fcGVuZGluZ1Rhc2tzLnJlbW92ZSgwKTsK
ICAgICAgICAgdGFzay0+cGVyZm9ybVRhc2sodGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAppbmRleCBjNjFhZmFlYmZiZTc2YzUyNTUyMjNjNTYwNzliNjZkNmZjZGMzNTk3Li5mMzZiMDI0
NjljNDI3NDI2Y2ZmNTk0Nzk0MTE1NzlkOTQzMjIxYWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApA
QCAtOTM0LDcgKzkzNCw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzRE5TUHJlZmV0Y2hFbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gbV9pc0ROU1ByZWZldGNoRW5hYmxlZDsgfQogICAgIHZvaWQgcGFy
c2VETlNQcmVmZXRjaENvbnRyb2xIZWFkZXIoY29uc3QgU3RyaW5nJik7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgcG9zdFRhc2soc3RkOjp1bmlxdWVfcHRyPFRhc2s+KSBPVkVSUklERTsgLy8gRXhlY3V0
ZXMgdGhlIHRhc2sgb24gY29udGV4dCdzIHRocmVhZCBhc3luY2hyb25vdXNseS4KKyAgICB2aXJ0
dWFsIHZvaWQgcG9zdFRhc2soUGFzc093blB0cjxUYXNrPikgT1ZFUlJJREU7IC8vIEV4ZWN1dGVz
IHRoZSB0YXNrIG9uIGNvbnRleHQncyB0aHJlYWQgYXN5bmNocm9ub3VzbHkuCiAKICAgICB2b2lk
IHN1c3BlbmRTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXJDYWxsYmFja3MoKTsKICAgICB2b2lk
IHJlc3VtZVNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlckNhbGxiYWNrcygpOwpAQCAtMTUxOCw3
ICsxNTE4LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgVGltZXI8RG9jdW1lbnQ+IG1fcGVu
ZGluZ1Rhc2tzVGltZXI7Ci0gICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxUYXNrPj4gbV9wZW5k
aW5nVGFza3M7CisgICAgVmVjdG9yPE93blB0cjxUYXNrPiA+IG1fcGVuZGluZ1Rhc2tzOwogCiAj
aWYgRU5BQkxFKElPU19URVhUX0FVVE9TSVpJTkcpCiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggY2U5Yzc0MmFkZDdmOGYyZTkw
OGFiOGE0MThiOTg4NTJjOWI1YjJlMi4uZjc0OGFjOWUwZjk1MDRiOTkzMWU3MmE5ZTU5ZWU1NzMy
MWE4ZDQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmNwcApAQCAtNTEsMTIgKzUxLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUHJv
Y2Vzc01lc3NhZ2VzU29vblRhc2sgOiBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFz
ayB7CiBwdWJsaWM6Ci0gICAgUHJvY2Vzc01lc3NhZ2VzU29vblRhc2soKQorICAgIHN0YXRpYyBQ
YXNzT3duUHRyPFByb2Nlc3NNZXNzYWdlc1Nvb25UYXNrPiBjcmVhdGUoKQogICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQcm9jZXNzTWVzc2FnZXNTb29uVGFzayk7CiAgICAgfQog
Ci1wcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0KSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzayhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogICAgIHsKICAgICAgICAgY29udGV4dC0+
ZGlzcGF0Y2hNZXNzYWdlUG9ydEV2ZW50cygpOwogICAgIH0KQEAgLTExOSw3ICsxMTksNyBAQCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Ojp+U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpCiAKIHZvaWQg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cHJvY2Vzc01lc3NhZ2VQb3J0TWVzc2FnZXNTb29uKCkK
IHsKLSAgICBwb3N0VGFzayhzdGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NNZXNzYWdlc1Nvb25UYXNr
PigpKTsKKyAgICBwb3N0VGFzayhQcm9jZXNzTWVzc2FnZXNTb29uVGFzazo6Y3JlYXRlKCkpOwog
fQogCiB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3BhdGNoTWVzc2FnZVBvcnRFdmVu
dHMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXgg
OGM4NTdlYWM4ZmQ0YzkzZmIwYjZjYmIwZGRlYzYzNmUxZjVkMWUzOS4uODc0ODY4ODJiOWVjNzIz
ZGNlZTBjMGExZWFmOGE5NDhiYjYwYzJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oCkBAIC0xMzAsNyArMTMwLDcgQEAgcHVibGljOgogICAgICAgICB2
aXJ0dWFsIGJvb2wgaXNDbGVhbnVwVGFzaygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
fTsKIAotICAgIHZpcnR1YWwgdm9pZCBwb3N0VGFzayhzdGQ6OnVuaXF1ZV9wdHI8VGFzaz4pID0g
MDsgLy8gRXhlY3V0ZXMgdGhlIHRhc2sgb24gY29udGV4dCdzIHRocmVhZCBhc3luY2hyb25vdXNs
eS4KKyAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2soUGFzc093blB0cjxUYXNrPikgPSAwOyAvLyBF
eGVjdXRlcyB0aGUgdGFzayBvbiBjb250ZXh0J3MgdGhyZWFkIGFzeW5jaHJvbm91c2x5LgogCiAg
ICAgLy8gR2V0cyB0aGUgbmV4dCBpZCBpbiBhIGNpcmN1bGFyIHNlcXVlbmNlIGZyb20gMSB0byAy
XjMxLTEuCiAgICAgaW50IGNpcmN1bGFyU2VxdWVudGlhbElEKCk7CkBAIC0xNTcsMTUgKzE1Nywx
OCBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgY2xhc3MgQWRkQ29uc29sZU1lc3NhZ2VUYXNr
IDogcHVibGljIFRhc2sgewogICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NPd25QdHI8
QWRkQ29uc29sZU1lc3NhZ2VUYXNrPiBjcmVhdGUoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3Nh
Z2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQorICAgICAgICB7CisgICAgICAg
ICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEFkZENvbnNvbGVNZXNzYWdlVGFzayhzb3VyY2UsIGxl
dmVsLCBtZXNzYWdlKSk7CisgICAgICAgIH0KKyAgICAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1U
YXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBPVkVSUklERTsKKyAgICBwcml2YXRlOgogICAg
ICAgICBBZGRDb25zb2xlTWVzc2FnZVRhc2soTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VM
ZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgICAgICAgICAgOiBtX3NvdXJj
ZShzb3VyY2UpCiAgICAgICAgICAgICAsIG1fbGV2ZWwobGV2ZWwpCiAgICAgICAgICAgICAsIG1f
bWVzc2FnZShtZXNzYWdlLmlzb2xhdGVkQ29weSgpKQogICAgICAgICB7CiAgICAgICAgIH0KLQot
ICAgICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCop
IE9WRVJSSURFOwotCiAgICAgICAgIE1lc3NhZ2VTb3VyY2UgbV9zb3VyY2U7CiAgICAgICAgIE1l
c3NhZ2VMZXZlbCBtX2xldmVsOwogICAgICAgICBTdHJpbmcgbV9tZXNzYWdlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TdHJpbmdDYWxsYmFjay5jcHAKaW5kZXggNTQ3NTM2MDg1YzA4YWRjM2MyN2ZkNGEzNDJm
YTk1OTYwZDg0MjMzOC4uYzYyODViMTcxNWJjNjcyZjVjOWQ4OGIxZTk2NGQxNTEwMTAxMmFjZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suY3BwCkBAIC00MCwxOCArNDAsMjMgQEAg
bmFtZXNwYWNlIHsKIAogY2xhc3MgRGlzcGF0Y2hDYWxsYmFja1Rhc2sgOiBwdWJsaWMgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDo6VGFzayB7CiBwdWJsaWM6Ci0gICAgRGlzcGF0Y2hDYWxsYmFja1Rh
c2soUGFzc1JlZlB0cjxTdHJpbmdDYWxsYmFjaz4gY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgZGF0
YSkKLSAgICAgICAgOiBtX2NhbGxiYWNrKGNhbGxiYWNrKQotICAgICAgICAsIG1fZGF0YShkYXRh
KQorICAgIHN0YXRpYyBQYXNzT3duUHRyPERpc3BhdGNoQ2FsbGJhY2tUYXNrPiBjcmVhdGUoUGFz
c1JlZlB0cjxTdHJpbmdDYWxsYmFjaz4gY2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgZGF0YSkKICAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGlzcGF0Y2hDYWxsYmFja1Rhc2soY2Fs
bGJhY2ssIGRhdGEpKTsKICAgICB9CiAKLXByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHBlcmZv
cm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9p
ZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KikKICAgICB7CiAgICAgICAgIG1f
Y2FsbGJhY2stPmhhbmRsZUV2ZW50KG1fZGF0YSk7CiAgICAgfQogCitwcml2YXRlOgorICAgIERp
c3BhdGNoQ2FsbGJhY2tUYXNrKFBhc3NSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+IGNhbGxiYWNrLCBj
b25zdCBTdHJpbmcmIGRhdGEpCisgICAgICAgIDogbV9jYWxsYmFjayhjYWxsYmFjaykKKyAgICAg
ICAgLCBtX2RhdGEoZGF0YSkKKyAgICB7CisgICAgfQorCiAgICAgUmVmUHRyPFN0cmluZ0NhbGxi
YWNrPiBtX2NhbGxiYWNrOwogICAgIGNvbnN0IFN0cmluZyBtX2RhdGE7CiB9OwpAQCAtNjAsNyAr
NjUsNyBAQCBwcml2YXRlOgogCiB2b2lkIFN0cmluZ0NhbGxiYWNrOjpzY2hlZHVsZUNhbGxiYWNr
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgZGF0YSkKIHsK
LSAgICBjb250ZXh0LT5wb3N0VGFzayhzdGQ6Om1ha2VfdW5pcXVlPERpc3BhdGNoQ2FsbGJhY2tU
YXNrPih0aGlzLCBkYXRhKSk7CisgICAgY29udGV4dC0+cG9zdFRhc2soRGlzcGF0Y2hDYWxsYmFj
a1Rhc2s6OmNyZWF0ZSh0aGlzLCBkYXRhKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHAKaW5kZXggNDgyMjY0YmIyNzBhYjhiNjg5NzAyOTk2NDc2MGIzNzNjYzE1
NzczZS4uNzM1N2I0NWZhNmFhN2QwY2QxMTM3MGM0NWZhNjM3ZGIzZWY4MDU1NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHAKQEAgLTExMTksMTUgKzExMTksMTEgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3Jv
dXA6OnNjaGVkdWxlUmVhY2hlZE1heEFwcENhY2hlU2l6ZUNhbGxiYWNrKCkKIAogY2xhc3MgQ2Fs
bENhY2hlTGlzdGVuZXJUYXNrIDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sg
ewogcHVibGljOgotICAgIENhbGxDYWNoZUxpc3RlbmVyVGFzayhQYXNzUmVmUHRyPERvY3VtZW50
TG9hZGVyPiBsb2FkZXIsIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpFdmVudElEIGV2ZW50SUQsIGlu
dCBwcm9ncmVzc1RvdGFsLCBpbnQgcHJvZ3Jlc3NEb25lKQotICAgICAgICA6IG1fZG9jdW1lbnRM
b2FkZXIobG9hZGVyKQotICAgICAgICAsIG1fZXZlbnRJRChldmVudElEKQotICAgICAgICAsIG1f
cHJvZ3Jlc3NUb3RhbChwcm9ncmVzc1RvdGFsKQotICAgICAgICAsIG1fcHJvZ3Jlc3NEb25lKHBy
b2dyZXNzRG9uZSkKKyAgICBzdGF0aWMgUGFzc093blB0cjxDYWxsQ2FjaGVMaXN0ZW5lclRhc2s+
IGNyZWF0ZShQYXNzUmVmUHRyPERvY3VtZW50TG9hZGVyPiBsb2FkZXIsIEFwcGxpY2F0aW9uQ2Fj
aGVIb3N0OjpFdmVudElEIGV2ZW50SUQsIGludCBwcm9ncmVzc1RvdGFsLCBpbnQgcHJvZ3Jlc3NE
b25lKQogICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDYWxsQ2FjaGVMaXN0ZW5l
clRhc2sobG9hZGVyLCBldmVudElELCBwcm9ncmVzc1RvdGFsLCBwcm9ncmVzc0RvbmUpKTsKICAg
ICB9CiAKLXByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQpIE9WRVJSSURFCiAgICAgewogICAgICAgICAKQEAgLTExNDEs
NiArMTEzNywxNSBAQCBwcml2YXRlOgogICAgICAgICBtX2RvY3VtZW50TG9hZGVyLT5hcHBsaWNh
dGlvbkNhY2hlSG9zdCgpLT5ub3RpZnlET01BcHBsaWNhdGlvbkNhY2hlKG1fZXZlbnRJRCwgbV9w
cm9ncmVzc1RvdGFsLCBtX3Byb2dyZXNzRG9uZSk7CiAgICAgfQogCitwcml2YXRlOgorICAgIENh
bGxDYWNoZUxpc3RlbmVyVGFzayhQYXNzUmVmUHRyPERvY3VtZW50TG9hZGVyPiBsb2FkZXIsIEFw
cGxpY2F0aW9uQ2FjaGVIb3N0OjpFdmVudElEIGV2ZW50SUQsIGludCBwcm9ncmVzc1RvdGFsLCBp
bnQgcHJvZ3Jlc3NEb25lKQorICAgICAgICA6IG1fZG9jdW1lbnRMb2FkZXIobG9hZGVyKQorICAg
ICAgICAsIG1fZXZlbnRJRChldmVudElEKQorICAgICAgICAsIG1fcHJvZ3Jlc3NUb3RhbChwcm9n
cmVzc1RvdGFsKQorICAgICAgICAsIG1fcHJvZ3Jlc3NEb25lKHByb2dyZXNzRG9uZSkKKyAgICB7
CisgICAgfQorCiAgICAgUmVmUHRyPERvY3VtZW50TG9hZGVyPiBtX2RvY3VtZW50TG9hZGVyOwog
ICAgIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpFdmVudElEIG1fZXZlbnRJRDsKICAgICBpbnQgbV9w
cm9ncmVzc1RvdGFsOwpAQCAtMTE2Miw3ICsxMTY3LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hl
R3JvdXA6OnBvc3RMaXN0ZW5lclRhc2soQXBwbGljYXRpb25DYWNoZUhvc3Q6OkV2ZW50SUQgZXZl
bnQKICAgICAKICAgICBBU1NFUlQoZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkgPT0g
bG9hZGVyKTsKIAotICAgIGZyYW1lLT5kb2N1bWVudCgpLT5wb3N0VGFzayhzdGQ6Om1ha2VfdW5p
cXVlPENhbGxDYWNoZUxpc3RlbmVyVGFzaz4obG9hZGVyLCBldmVudElELCBwcm9ncmVzc1RvdGFs
LCBwcm9ncmVzc0RvbmUpKTsKKyAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+cG9zdFRhc2soQ2FsbENh
Y2hlTGlzdGVuZXJUYXNrOjpjcmVhdGUobG9hZGVyLCBldmVudElELCBwcm9ncmVzc1RvdGFsLCBw
cm9ncmVzc0RvbmUpKTsKIH0KIAogdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnNldFVwZGF0
ZVN0YXR1cyhVcGRhdGVTdGF0dXMgc3RhdHVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAppbmRleCBhNDhkMGJi
Mjc1ZTgxMWYyNjRmY2ZjOWI3NWRjZWJlODA0OTIzZDgwLi41YzI2YzhjNjEwMTUyNmMyNzJmOGQ4
NjQyOWRmYmEzYWQ2MGYxMDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Rl
ZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcApAQCAtNzksOCArNzksOCBAQCBw
dWJsaWM6CiAgICAgYm9vbCBtYXRjaGVzKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gb3JpZ2luLCBjb25zdCBVUkwmIHVybFRvTWF0Y2gpIGNvbnN0OwogCiAg
ICAgLy8gV29ya2VyTG9hZGVyUHJveHkKLSAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2tUb0xvYWRl
cihzdGQ6OnVuaXF1ZV9wdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4pIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgYm9vbCBwb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKHN0
ZDo6dW5pcXVlX3B0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiwgY29uc3QgU3RyaW5n
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBvc3RUYXNrVG9Mb2FkZXIoUGFzc093blB0
cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPik7CisgICAgdmlydHVhbCBib29sIHBvc3RU
YXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoUGFzc093blB0cjxTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpUYXNrPiwgY29uc3QgU3RyaW5nJik7CiAKICAgICAvLyBXb3JrZXJSZXBvcnRpbmdQ
cm94eQogICAgIHZpcnR1YWwgdm9pZCBwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoY29uc3Qg
U3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CkBAIC0xNDAsNyArMTQwLDcgQEAgYm9vbCBTaGFyZWRX
b3JrZXJQcm94eTo6bWF0Y2hlcyhjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IG8KICAgICByZXR1cm4gbmFtZSA9PSBtX25hbWU7CiB9CiAKLXZvaWQgU2hhcmVk
V29ya2VyUHJveHk6OnBvc3RUYXNrVG9Mb2FkZXIoc3RkOjp1bmlxdWVfcHRyPFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ6OlRhc2s+IHRhc2spCit2b2lkIFNoYXJlZFdvcmtlclByb3h5Ojpwb3N0VGFz
a1RvTG9hZGVyKFBhc3NPd25QdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4gdGFzaykK
IHsKICAgICBNdXRleExvY2tlciBsb2NrKG1fd29ya2VyRG9jdW1lbnRzTG9jayk7CiAKQEAgLTE1
MywxNSArMTUzLDE1IEBAIHZvaWQgU2hhcmVkV29ya2VyUHJveHk6OnBvc3RUYXNrVG9Mb2FkZXIo
c3RkOjp1bmlxdWVfcHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6CiAgICAgLy8gSnVzdCBwaWNr
IGFuIGFyYml0cmFyeSBhY3RpdmUgZG9jdW1lbnQgZnJvbSB0aGUgSGFzaFNldCBhbmQgcGFzcyBs
b2FkIHJlcXVlc3RzIHRvIGl0LgogICAgIC8vIEZJWE1FOiBEbyB3ZSBuZWVkIHRvIGRlYWwgd2l0
aCB0aGUgY2FzZSB3aGVyZSB0aGUgdXNlciBjbG9zZXMgdGhlIGRvY3VtZW50IG1pZC1sb2FkLCB2
aWEgYSBzaGFkb3cgZG9jdW1lbnQgb3Igc29tZSBvdGhlciBzb2x1dGlvbj8KICAgICBEb2N1bWVu
dCogZG9jdW1lbnQgPSAqKG1fd29ya2VyRG9jdW1lbnRzLmJlZ2luKCkpOwotICAgIGRvY3VtZW50
LT5wb3N0VGFzayhzdGQ6Om1vdmUodGFzaykpOworICAgIGRvY3VtZW50LT5wb3N0VGFzayh0YXNr
KTsKIH0KIAotYm9vbCBTaGFyZWRXb3JrZXJQcm94eTo6cG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJH
bG9iYWxTY29wZShzdGQ6OnVuaXF1ZV9wdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4g
dGFzaywgY29uc3QgU3RyaW5nJiBtb2RlKQorYm9vbCBTaGFyZWRXb3JrZXJQcm94eTo6cG9zdFRh
c2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZShQYXNzT3duUHRyPFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OlRhc2s+IHRhc2ssIGNvbnN0IFN0cmluZyYgbW9kZSkKIHsKICAgICBpZiAoaXNDbG9z
aW5nKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBBU1NFUlQobV90aHJlYWQpOwotICAg
IG1fdGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKHN0ZDo6bW92ZSh0YXNrKSwgbW9k
ZSk7CisgICAgbV90aHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUodGFzaywgbW9kZSk7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTI1OSwxMyArMjU5LDE4IEBAIHZvaWQgU2hhcmVk
V29ya2VyUHJveHk6OmNsb3NlKCkKIAogY2xhc3MgU2hhcmVkV29ya2VyQ29ubmVjdFRhc2sgOiBw
dWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayB7CiBwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NPd25QdHI8U2hhcmVkV29ya2VyQ29ubmVjdFRhc2s+IGNyZWF0ZShQYXNzT3duUHRyPE1l
c3NhZ2VQb3J0Q2hhbm5lbD4gY2hhbm5lbCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0
cihuZXcgU2hhcmVkV29ya2VyQ29ubmVjdFRhc2soY2hhbm5lbCkpOworICAgIH0KKworcHJpdmF0
ZToKICAgICBTaGFyZWRXb3JrZXJDb25uZWN0VGFzayhQYXNzT3duUHRyPE1lc3NhZ2VQb3J0Q2hh
bm5lbD4gY2hhbm5lbCkKICAgICAgICAgOiBtX2NoYW5uZWwoY2hhbm5lbCkKICAgICB7CiAgICAg
fQogCi1wcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBzY3JpcHRDb250ZXh0KSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBwZXJm
b3JtVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0KQogICAgIHsKICAg
ICAgICAgUmVmUHRyPE1lc3NhZ2VQb3J0PiBwb3J0ID0gTWVzc2FnZVBvcnQ6OmNyZWF0ZSgqc2Ny
aXB0Q29udGV4dCk7CiAgICAgICAgIHBvcnQtPmVudGFuZ2xlKG1fY2hhbm5lbC5yZWxlYXNlKCkp
OwpAQCAtMzY1LDcgKzM3MCw3IEBAIHZvaWQgRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnk6
OndvcmtlclNjcmlwdExvYWRlZChTaGFyZWRXb3JrZXJQcm94eSYgcHJveHksCiAgICAgICAgIHBy
b3h5LnNldFRocmVhZCh0aHJlYWQpOwogICAgICAgICB0aHJlYWQtPnN0YXJ0KCk7CiAgICAgfQot
ICAgIHByb3h5LnRocmVhZCgpLT5ydW5Mb29wKCkucG9zdFRhc2soc3RkOjptYWtlX3VuaXF1ZTxT
aGFyZWRXb3JrZXJDb25uZWN0VGFzaz4ocG9ydCkpOworICAgIHByb3h5LnRocmVhZCgpLT5ydW5M
b29wKCkucG9zdFRhc2soU2hhcmVkV29ya2VyQ29ubmVjdFRhc2s6OmNyZWF0ZShwb3J0KSk7CiB9
CiAKIGJvb2wgRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnk6Omhhc1NoYXJlZFdvcmtlcnMo
RG9jdW1lbnQqIGRvY3VtZW50KQpAQCAtNDEzLDcgKzQxOCw3IEBAIHZvaWQgRGVmYXVsdFNoYXJl
ZFdvcmtlclJlcG9zaXRvcnk6OmNvbm5lY3RUb1dvcmtlcihQYXNzUmVmUHRyPFNoYXJlZFdvcmtl
cj4gd29yCiAgICAgfQogICAgIC8vIElmIHByb3h5IGlzIGFscmVhZHkgcnVubmluZywganVzdCBj
b25uZWN0IHRvIGl0IC0gb3RoZXJ3aXNlLCBraWNrIG9mZiBhIGxvYWRlciB0byBsb2FkIHRoZSBz
Y3JpcHQuCiAgICAgaWYgKHByb3h5LT50aHJlYWQoKSkKLSAgICAgICAgcHJveHktPnRocmVhZCgp
LT5ydW5Mb29wKCkucG9zdFRhc2soc3RkOjptYWtlX3VuaXF1ZTxTaGFyZWRXb3JrZXJDb25uZWN0
VGFzaz4ocG9ydCkpOworICAgICAgICBwcm94eS0+dGhyZWFkKCktPnJ1bkxvb3AoKS5wb3N0VGFz
ayhTaGFyZWRXb3JrZXJDb25uZWN0VGFzazo6Y3JlYXRlKHBvcnQpKTsKICAgICBlbHNlIHsKICAg
ICAgICAgUmVmUHRyPFNoYXJlZFdvcmtlclNjcmlwdExvYWRlcj4gbG9hZGVyID0gYWRvcHRSZWYo
bmV3IFNoYXJlZFdvcmtlclNjcmlwdExvYWRlcih3b3JrZXIsIHBvcnQsIHByb3h5LnJlbGVhc2Uo
KSkpOwogICAgICAgICBsb2FkZXItPmxvYWQodXJsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyRXZlbnRRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckV2ZW50UXVldWUuY3BwCmluZGV4IGQ0Y2RkZWE4MWQ0MTQzYWIyYTM3OTc2MDFiNWE2
MjMzMTNiMmYwMmYuLjBjYzQ3ODliMzA2ZDliMTQ4YTljZDIxNzQ3ZTA4OTIxNWI5NTg2MzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRRdWV1ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVlLmNwcApAQCAtNDgsMTEg
KzQ4LDkgQEAgV29ya2VyRXZlbnRRdWV1ZTo6fldvcmtlckV2ZW50UXVldWUoKQogCiBjbGFzcyBX
b3JrZXJFdmVudFF1ZXVlOjpFdmVudERpc3BhdGNoZXJUYXNrIEZJTkFMIDogcHVibGljIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgewogcHVibGljOgotICAgIEV2ZW50RGlzcGF0Y2hlclRh
c2soUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQsIFdvcmtlckV2ZW50UXVldWUmIGV2ZW50UXVldWUp
Ci0gICAgICAgIDogbV9ldmVudChldmVudCkKLSAgICAgICAgLCBtX2V2ZW50UXVldWUoZXZlbnRR
dWV1ZSkKLSAgICAgICAgLCBtX2lzQ2FuY2VsbGVkKGZhbHNlKQorICAgIHN0YXRpYyBQYXNzT3du
UHRyPEV2ZW50RGlzcGF0Y2hlclRhc2s+IGNyZWF0ZShQYXNzUmVmUHRyPEV2ZW50PiBldmVudCwg
V29ya2VyRXZlbnRRdWV1ZSYgZXZlbnRRdWV1ZSkKICAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFB0cihuZXcgRXZlbnREaXNwYXRjaGVyVGFzayhldmVudCwgZXZlbnRRdWV1ZSkpOwogICAgIH0K
IAogICAgIHZpcnR1YWwgfkV2ZW50RGlzcGF0Y2hlclRhc2soKQpAQCAtNjEsMTMgKzU5LDExIEBA
IHB1YmxpYzoKICAgICAgICAgICAgIG1fZXZlbnRRdWV1ZS5tX2V2ZW50VGFza01hcC5yZW1vdmUo
bV9ldmVudC5nZXQoKSk7CiAgICAgfQogCi0gICAgdm9pZCBjYW5jZWwoKQorICAgIHZvaWQgZGlz
cGF0Y2hFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxFdmVudD4gZXZl
bnQpCiAgICAgewotICAgICAgICBtX2lzQ2FuY2VsbGVkID0gdHJ1ZTsKLSAgICAgICAgbV9ldmVu
dC5jbGVhcigpOworICAgICAgICBldmVudC0+dGFyZ2V0KCktPmRpc3BhdGNoRXZlbnQoZXZlbnQp
OwogICAgIH0KIAotcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRhc2soU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkgT1ZFUlJJREUKICAgICB7CiAgICAgICAgIGlmICht
X2lzQ2FuY2VsbGVkKQpAQCAtNzcsOSArNzMsMTggQEAgcHJpdmF0ZToKICAgICAgICAgbV9ldmVu
dC5jbGVhcigpOwogICAgIH0KIAotICAgIHZvaWQgZGlzcGF0Y2hFdmVudChTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCisgICAgdm9pZCBjYW5jZWwoKQor
ICAgIHsKKyAgICAgICAgbV9pc0NhbmNlbGxlZCA9IHRydWU7CisgICAgICAgIG1fZXZlbnQuY2xl
YXIoKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgRXZlbnREaXNwYXRjaGVyVGFzayhQYXNzUmVm
UHRyPEV2ZW50PiBldmVudCwgV29ya2VyRXZlbnRRdWV1ZSYgZXZlbnRRdWV1ZSkKKyAgICAgICAg
OiBtX2V2ZW50KGV2ZW50KQorICAgICAgICAsIG1fZXZlbnRRdWV1ZShldmVudFF1ZXVlKQorICAg
ICAgICAsIG1faXNDYW5jZWxsZWQoZmFsc2UpCiAgICAgewotICAgICAgICBldmVudC0+dGFyZ2V0
KCktPmRpc3BhdGNoRXZlbnQoZXZlbnQpOwogICAgIH0KIAogICAgIFJlZlB0cjxFdmVudD4gbV9l
dmVudDsKQEAgLTkyLDkgKzk3LDkgQEAgYm9vbCBXb3JrZXJFdmVudFF1ZXVlOjplbnF1ZXVlRXZl
bnQoUGFzc1JlZlB0cjxFdmVudD4gcHJwRXZlbnQpCiAgICAgaWYgKG1faXNDbG9zZWQpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gcHJwRXZlbnQ7Ci0g
ICAgYXV0byB0YXNrID0gc3RkOjptYWtlX3VuaXF1ZTxFdmVudERpc3BhdGNoZXJUYXNrPihldmVu
dCwgKnRoaXMpOworICAgIE93blB0cjxFdmVudERpc3BhdGNoZXJUYXNrPiB0YXNrID0gRXZlbnRE
aXNwYXRjaGVyVGFzazo6Y3JlYXRlKGV2ZW50LCAqdGhpcyk7CiAgICAgbV9ldmVudFRhc2tNYXAu
YWRkKGV2ZW50LnJlbGVhc2UoKSwgdGFzay5nZXQoKSk7Ci0gICAgbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0LnBvc3RUYXNrKHN0ZDo6bW92ZSh0YXNrKSk7CisgICAgbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0LnBvc3RUYXNrKHRhc2sucmVsZWFzZSgpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCBjZTNi
NGNhYzJiNzk4ZjVkMmVhZGU2YTEwMTAwN2FlYjQ3MzM0OTEwLi4yOTM3OTc0MDVkNTE0OWE3ZDVk
NzcwMmI2Njg1M2E4ZjNjNWU5ZDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckdsb2JhbFNjb3BlLmNwcApAQCAtMTUzLDcgKzE1Myw3IEBAIHZvaWQgV29ya2VyR2xvYmFsU2Nv
cGU6OmNsb3NlKCkKICAgICAvLyBBZnRlciBtX2Nsb3NpbmcgaXMgc2V0LCBhbGwgdGhlIHRhc2tz
IGluIHRoZSBxdWV1ZSBjb250aW51ZSB0byBiZSBmZXRjaGVkIGJ1dCBvbmx5CiAgICAgLy8gdGFz
a3Mgd2l0aCBpc0NsZWFudXBUYXNrKCk9PXRydWUgd2lsbCBiZSBleGVjdXRlZC4KICAgICBtX2Ns
b3NpbmcgPSB0cnVlOwotICAgIHBvc3RUYXNrKHN0ZDo6bWFrZV91bmlxdWU8Q2xvc2VXb3JrZXJH
bG9iYWxTY29wZVRhc2s+KCkpOworICAgIHBvc3RUYXNrKENsb3NlV29ya2VyR2xvYmFsU2NvcGVU
YXNrOjpjcmVhdGUoKSk7CiB9CiAKIFdvcmtlck5hdmlnYXRvciogV29ya2VyR2xvYmFsU2NvcGU6
Om5hdmlnYXRvcigpIGNvbnN0CkBAIC0xODAsOSArMTgwLDkgQEAgYm9vbCBXb3JrZXJHbG9iYWxT
Y29wZTo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LXZvaWQgV29ya2VyR2xvYmFsU2NvcGU6OnBvc3RUYXNrKHN0ZDo6dW5pcXVlX3B0cjxUYXNrPiB0
YXNrKQordm9pZCBXb3JrZXJHbG9iYWxTY29wZTo6cG9zdFRhc2soUGFzc093blB0cjxUYXNrPiB0
YXNrKQogewotICAgIHRocmVhZCgpLT5ydW5Mb29wKCkucG9zdFRhc2soc3RkOjptb3ZlKHRhc2sp
KTsKKyAgICB0aHJlYWQoKS0+cnVuTG9vcCgpLnBvc3RUYXNrKHRhc2spOwogfQogCiBpbnQgV29y
a2VyR2xvYmFsU2NvcGU6OnNldFRpbWVvdXQoUGFzc093blB0cjxTY2hlZHVsZWRBY3Rpb24+IGFj
dGlvbiwgaW50IHRpbWVvdXQpCkBAIC0yNjUsNyArMjY1LDcgQEAgdm9pZCBXb3JrZXJHbG9iYWxT
Y29wZTo6bG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBj
b25zdAogdm9pZCBXb3JrZXJHbG9iYWxTY29wZTo6YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1
bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQogewogICAgIGlmICghaXNDb250ZXh0VGhy
ZWFkKCkpIHsKLSAgICAgICAgcG9zdFRhc2soc3RkOjptYWtlX3VuaXF1ZTxBZGRDb25zb2xlTWVz
c2FnZVRhc2s+KHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UpKTsKKyAgICAgICAgcG9zdFRhc2soQWRk
Q29uc29sZU1lc3NhZ2VUYXNrOjpjcmVhdGUoc291cmNlLCBsZXZlbCwgbWVzc2FnZSkpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yNzYsNyArMjc2LDcgQEAgdm9pZCBXb3JrZXJHbG9i
YWxTY29wZTo6YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VM
ZXZlbCBsZXYKIHZvaWQgV29ya2VyR2xvYmFsU2NvcGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1u
TnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCBKU0M6OkV4ZWNT
dGF0ZSogc3RhdGUsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiB7CiAgICAgaWYg
KCFpc0NvbnRleHRUaHJlYWQoKSkgewotICAgICAgICBwb3N0VGFzayhzdGQ6Om1ha2VfdW5pcXVl
PEFkZENvbnNvbGVNZXNzYWdlVGFzaz4oc291cmNlLCBsZXZlbCwgbWVzc2FnZSkpOworICAgICAg
ICBwb3N0VGFzayhBZGRDb25zb2xlTWVzc2FnZVRhc2s6OmNyZWF0ZShzb3VyY2UsIGxldmVsLCBt
ZXNzYWdlKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCBjNWFiN2YzMTUwZTk5NWI1MTU4NDYzZjk0YWM2
YTRjODA0MjQ0MzE0Li4yNTMyYjkyNmRkMzNmNjEzZDExN2IyM2NlODQxYmExYWNjMDQ1ZmM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCkBAIC04Myw3ICs4
Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBib29sIGhhc1BlbmRpbmdBY3Rp
dml0eSgpIGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwb3N0VGFzayhzdGQ6OnVuaXF1
ZV9wdHI8VGFzaz4pIE9WRVJSSURFOyAvLyBFeGVjdXRlcyB0aGUgdGFzayBvbiBjb250ZXh0J3Mg
dGhyZWFkIGFzeW5jaHJvbm91c2x5LgorICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2soUGFz
c093blB0cjxUYXNrPikgT1ZFUlJJREU7IC8vIEV4ZWN1dGVzIHRoZSB0YXNrIG9uIGNvbnRleHQn
cyB0aHJlYWQgYXN5bmNocm9ub3VzbHkuCiAKICAgICAgICAgLy8gV29ya2VyR2xvYmFsU2NvcGUK
ICAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUqIHNlbGYoKSB7IHJldHVybiB0aGlzOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckxvYWRlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckxvYWRlclByb3h5LmgKaW5kZXggMzA0ODVhNDZmZWJi
ZjNmNjY1ODMyZWFlOTk4ZDg3Mzk0NGViYmQ3My4uMTg1NDJiNmZlNzU1ZjIwZjY0YTY1ZjUyOWVj
MDQ4ODQyNGU2YTQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJM
b2FkZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTG9hZGVyUHJv
eHkuaApAQCAtNDksMTIgKzQ5LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmly
dHVhbCB+V29ya2VyTG9hZGVyUHJveHkoKSB7IH0KIAogICAgICAgICAvLyBQb3N0cyBhIHRhc2sg
dG8gdGhlIHRocmVhZCB3aGljaCBydW5zIHRoZSBsb2FkaW5nIGNvZGUgKG5vcm1hbGx5LCB0aGUg
bWFpbiB0aHJlYWQpLgotICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2tUb0xvYWRlcihzdGQ6
OnVuaXF1ZV9wdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4pID0gMDsKKyAgICAgICAg
dmlydHVhbCB2b2lkIHBvc3RUYXNrVG9Mb2FkZXIoUGFzc093blB0cjxTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpUYXNrPikgPSAwOwogCiAgICAgICAgIC8vIFBvc3RzIGNhbGxiYWNrcyBmcm9tIGxv
YWRpbmcgY29kZSB0byB0aGUgV29ya2VyR2xvYmFsU2NvcGUuIFRoZSAnbW9kZScgaXMgdXNlZCB0
byBkaWZmZXJlbnRpYXRlCiAgICAgICAgIC8vIHNwZWNpZmljIHN5bmNocm9ub3VzIGxvYWRpbmcg
cmVxdWVzdHMgc28gdGhleSBjYW4gYmUgJ25lc3RlZCcsIHBlciBzcGVjLgogICAgICAgICAvLyBS
ZXR1cm5zIHRydWUgaWYgdGhlIHRhc2sgd2FzIHBvc3RlZCBzdWNjZXNzZnVsbHkuCi0gICAgICAg
IHZpcnR1YWwgYm9vbCBwb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKHN0ZDo6dW5p
cXVlX3B0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiwgY29uc3QgU3RyaW5nJiBtb2Rl
KSA9IDA7CisgICAgICAgIHZpcnR1YWwgYm9vbCBwb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2Jh
bFNjb3BlKFBhc3NPd25QdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4sIGNvbnN0IFN0
cmluZyYgbW9kZSkgPSAwOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggY2Fh
ZDM1M2ZjNGJjZmVjZmYwOWI0MTgxMjY2NDJjODhlZTgwZjk1Mi4uMDJlYmM2NTFjZDZiOGE2ODZj
ZDUyMDdiN2Q0NmYwZmRjMzYxOTY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTU2LDE0ICs1NiwxOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIE1lc3NhZ2VXb3JrZXJHbG9iYWxTY29wZVRhc2sgOiBwdWJsaWMgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25Q
dHI8TWVzc2FnZVdvcmtlckdsb2JhbFNjb3BlVGFzaz4gY3JlYXRlKFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBQYXNzT3duUHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFy
cmF5PiBjaGFubmVscykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVzc2Fn
ZVdvcmtlckdsb2JhbFNjb3BlVGFzayhtZXNzYWdlLCBjaGFubmVscykpOworICAgIH0KKworcHJp
dmF0ZToKICAgICBNZXNzYWdlV29ya2VyR2xvYmFsU2NvcGVUYXNrKFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBQYXNzT3duUHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFy
cmF5PiBjaGFubmVscykKICAgICAgICAgOiBtX21lc3NhZ2UobWVzc2FnZSkKICAgICAgICAgLCBt
X2NoYW5uZWxzKGNoYW5uZWxzKQogICAgIHsKICAgICB9CiAKLXByaXZhdGU6Ci0gICAgdmlydHVh
bCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQp
IE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdENvbnRleHQpCiAgICAgewogICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklU
WV9JTVBMSUNBVElPTihzY3JpcHRDb250ZXh0LT5pc1dvcmtlckdsb2JhbFNjb3BlKCkpOwogICAg
ICAgICBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCA9IHN0YXRpY19jYXN0PERl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKj4oc2NyaXB0Q29udGV4dCk7CkBAIC03OSw2ICs4NCwx
MiBAQCBwcml2YXRlOgogCiBjbGFzcyBNZXNzYWdlV29ya2VyVGFzayA6IHB1YmxpYyBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjpUYXNrIHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxN
ZXNzYWdlV29ya2VyVGFzaz4gY3JlYXRlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBtZXNzYWdlLCBQYXNzT3duUHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiBjaGFubmVscywg
V29ya2VyTWVzc2FnaW5nUHJveHkqIG1lc3NhZ2luZ1Byb3h5KQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBNZXNzYWdlV29ya2VyVGFzayhtZXNzYWdlLCBjaGFubmVscywgbWVz
c2FnaW5nUHJveHkpKTsKKyAgICB9CisKK3ByaXZhdGU6CiAgICAgTWVzc2FnZVdvcmtlclRhc2so
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIFBhc3NPd25QdHI8TWVz
c2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxzLCBXb3JrZXJNZXNzYWdpbmdQcm94eSogbWVz
c2FnaW5nUHJveHkpCiAgICAgICAgIDogbV9tZXNzYWdlKG1lc3NhZ2UpCiAgICAgICAgICwgbV9j
aGFubmVscyhjaGFubmVscykKQEAgLTg2LDggKzk3LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9
CiAKLXByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIHNjcmlwdENvbnRleHQpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIHBlcmZv
cm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQpCiAgICAgewogICAg
ICAgICBXb3JrZXIqIHdvcmtlck9iamVjdCA9IG1fbWVzc2FnaW5nUHJveHktPndvcmtlck9iamVj
dCgpOwogICAgICAgICBpZiAoIXdvcmtlck9iamVjdCB8fCBtX21lc3NhZ2luZ1Byb3h5LT5hc2tl
ZFRvVGVybWluYXRlKCkpCkBAIC05Nyw2ICsxMDcsNyBAQCBwcml2YXRlOgogICAgICAgICB3b3Jr
ZXJPYmplY3QtPmRpc3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUocG9ydHMucmVsZWFz
ZSgpLCBtX21lc3NhZ2UpKTsKICAgICB9CiAKK3ByaXZhdGU6CiAgICAgUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gbV9tZXNzYWdlOwogICAgIE93blB0cjxNZXNzYWdlUG9ydENoYW5uZWxB
cnJheT4gbV9jaGFubmVsczsKICAgICBXb3JrZXJNZXNzYWdpbmdQcm94eSogbV9tZXNzYWdpbmdQ
cm94eTsKQEAgLTEwNCw2ICsxMTUsMTIgQEAgcHJpdmF0ZToKIAogY2xhc3MgV29ya2VyRXhjZXB0
aW9uVGFzayA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrIHsKIHB1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc093blB0cjxXb3JrZXJFeGNlcHRpb25UYXNrPiBjcmVhdGUoY29uc3Qg
U3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgV29ya2VyTWVzc2FnaW5nUHJveHkqIG1lc3NhZ2luZ1By
b3h5KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXb3JrZXJFeGNlcHRpb25U
YXNrKGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBzb3VyY2VVUkwsIG1l
c3NhZ2luZ1Byb3h5KSk7CisgICAgfQorCitwcml2YXRlOgogICAgIFdvcmtlckV4Y2VwdGlvblRh
c2soY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1u
TnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgV29ya2VyTWVzc2FnaW5nUHJveHkqIG1l
c3NhZ2luZ1Byb3h5KQogICAgICAgICA6IG1fZXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZS5pc29s
YXRlZENvcHkoKSkKICAgICAgICAgLCBtX2xpbmVOdW1iZXIobGluZU51bWJlcikKQEAgLTExMyw4
ICsxMzAsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotcHJpdmF0ZToKLSAgICB2aXJ0dWFs
IHZvaWQgcGVyZm9ybVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkgT1ZFUlJJ
REUKKyAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCkKICAgICB7CiAgICAgICAgIFdvcmtlciogd29ya2VyT2JqZWN0ID0gbV9tZXNzYWdp
bmdQcm94eS0+d29ya2VyT2JqZWN0KCk7CiAgICAgICAgIGlmICghd29ya2VyT2JqZWN0KQpAQCAt
MTM3LDEzICsxNTMsMTggQEAgcHJpdmF0ZToKIAogY2xhc3MgV29ya2VyR2xvYmFsU2NvcGVEZXN0
cm95ZWRUYXNrIDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgewogcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzT3duUHRyPFdvcmtlckdsb2JhbFNjb3BlRGVzdHJveWVkVGFzaz4g
Y3JlYXRlKFdvcmtlck1lc3NhZ2luZ1Byb3h5KiBtZXNzYWdpbmdQcm94eSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgV29ya2VyR2xvYmFsU2NvcGVEZXN0cm95ZWRUYXNrKG1l
c3NhZ2luZ1Byb3h5KSk7CisgICAgfQorCitwcml2YXRlOgogICAgIFdvcmtlckdsb2JhbFNjb3Bl
RGVzdHJveWVkVGFzayhXb3JrZXJNZXNzYWdpbmdQcm94eSogbWVzc2FnaW5nUHJveHkpCiAgICAg
ICAgIDogbV9tZXNzYWdpbmdQcm94eShtZXNzYWdpbmdQcm94eSkKICAgICB7CiAgICAgfQogCi1w
cml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRpb25Db250
ZXh0KikgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRhc2soU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCopCiAgICAgewogICAgICAgICBtX21lc3NhZ2luZ1Byb3h5LT53b3JrZXJHbG9i
YWxTY29wZURlc3Ryb3llZEludGVybmFsKCk7CiAgICAgfQpAQCAtMTUzLDEzICsxNzQsMTggQEAg
cHJpdmF0ZToKIAogY2xhc3MgV29ya2VyVGVybWluYXRlVGFzayA6IHB1YmxpYyBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpUYXNrIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBXb3JrZXJUZXJtaW5h
dGVUYXNrKFdvcmtlck1lc3NhZ2luZ1Byb3h5KiBtZXNzYWdpbmdQcm94eSkKLSAgICAgICAgOiBt
X21lc3NhZ2luZ1Byb3h5KG1lc3NhZ2luZ1Byb3h5KQorICAgIHN0YXRpYyBQYXNzT3duUHRyPFdv
cmtlclRlcm1pbmF0ZVRhc2s+IGNyZWF0ZShXb3JrZXJNZXNzYWdpbmdQcm94eSogbWVzc2FnaW5n
UHJveHkpCiAgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdvcmtlclRlcm1pbmF0
ZVRhc2sobWVzc2FnaW5nUHJveHkpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2
b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBPVkVSUklERQorICAgIFdv
cmtlclRlcm1pbmF0ZVRhc2soV29ya2VyTWVzc2FnaW5nUHJveHkqIG1lc3NhZ2luZ1Byb3h5KQor
ICAgICAgICA6IG1fbWVzc2FnaW5nUHJveHkobWVzc2FnaW5nUHJveHkpCisgICAgeworICAgIH0K
KworICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KikK
ICAgICB7CiAgICAgICAgIG1fbWVzc2FnaW5nUHJveHktPnRlcm1pbmF0ZVdvcmtlckdsb2JhbFNj
b3BlKCk7CiAgICAgfQpAQCAtMTY5LDYgKzE5NSwxMiBAQCBwcml2YXRlOgogCiBjbGFzcyBXb3Jr
ZXJUaHJlYWRBY3Rpdml0eVJlcG9ydFRhc2sgOiBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6VGFzayB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8V29ya2VyVGhyZWFkQWN0
aXZpdHlSZXBvcnRUYXNrPiBjcmVhdGUoV29ya2VyTWVzc2FnaW5nUHJveHkqIG1lc3NhZ2luZ1By
b3h5LCBib29sIGNvbmZpcm1pbmdNZXNzYWdlLCBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgV29ya2VyVGhyZWFkQWN0aXZpdHlSZXBv
cnRUYXNrKG1lc3NhZ2luZ1Byb3h5LCBjb25maXJtaW5nTWVzc2FnZSwgaGFzUGVuZGluZ0FjdGl2
aXR5KSk7CisgICAgfQorCitwcml2YXRlOgogICAgIFdvcmtlclRocmVhZEFjdGl2aXR5UmVwb3J0
VGFzayhXb3JrZXJNZXNzYWdpbmdQcm94eSogbWVzc2FnaW5nUHJveHksIGJvb2wgY29uZmlybWlu
Z01lc3NhZ2UsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KQogICAgICAgICA6IG1fbWVzc2FnaW5n
UHJveHkobWVzc2FnaW5nUHJveHkpCiAgICAgICAgICwgbV9jb25maXJtaW5nTWVzc2FnZShjb25m
aXJtaW5nTWVzc2FnZSkKQEAgLTE3Niw4ICsyMDgsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0K
IAotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRhc2soU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCopIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqKQogICAgIHsKICAgICAgICAgbV9tZXNzYWdpbmdQcm94eS0+cmVwb3J0
UGVuZGluZ0FjdGl2aXR5SW50ZXJuYWwobV9jb25maXJtaW5nTWVzc2FnZSwgbV9oYXNQZW5kaW5n
QWN0aXZpdHkpOwogICAgIH0KQEAgLTE4OSwxNCArMjIwLDE5IEBAIHByaXZhdGU6CiAKIGNsYXNz
IFBvc3RNZXNzYWdlVG9QYWdlSW5zcGVjdG9yVGFzayA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpUYXNrIHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxQb3N0TWVzc2Fn
ZVRvUGFnZUluc3BlY3RvclRhc2s+IGNyZWF0ZShXb3JrZXJNZXNzYWdpbmdQcm94eSogbWVzc2Fn
aW5nUHJveHksIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgUG9zdE1lc3NhZ2VUb1BhZ2VJbnNwZWN0b3JUYXNrKG1lc3NhZ2luZ1Byb3h5
LCBtZXNzYWdlKSk7CisgICAgfQorCitwcml2YXRlOgogICAgIFBvc3RNZXNzYWdlVG9QYWdlSW5z
cGVjdG9yVGFzayhXb3JrZXJNZXNzYWdpbmdQcm94eSogbWVzc2FnaW5nUHJveHksIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkKICAgICAgICAgOiBtX21lc3NhZ2luZ1Byb3h5KG1lc3NhZ2luZ1Byb3h5
KQogICAgICAgICAsIG1fbWVzc2FnZShtZXNzYWdlLmlzb2xhdGVkQ29weSgpKQogICAgIHsKICAg
ICB9CiAKLXByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqKSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzayhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KikKICAgICB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAg
ICAgaWYgKFdvcmtlckdsb2JhbFNjb3BlUHJveHk6OlBhZ2VJbnNwZWN0b3IqIHBhZ2VJbnNwZWN0
b3IgPSBtX21lc3NhZ2luZ1Byb3h5LT5tX3BhZ2VJbnNwZWN0b3IpCkBAIC0yMTAsMTMgKzI0Niwx
OCBAQCBwcml2YXRlOgogCiBjbGFzcyBOb3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2VUYXNrIDogcHVi
bGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgewogcHVibGljOgotICAgIGV4cGxpY2l0
IE5vdGlmeU5ldHdvcmtTdGF0ZUNoYW5nZVRhc2soYm9vbCBpc09uTGluZSkKLSAgICAgICAgOiBt
X2lzT25MaW5lKGlzT25MaW5lKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPE5vdGlmeU5ldHdvcmtT
dGF0ZUNoYW5nZVRhc2s+IGNyZWF0ZShib29sIGlzT25MaW5lKQogICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBOb3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2VUYXNrKGlzT25MaW5lKSk7
CiAgICAgfQogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzayhTY3JpcHRF
eGVjdXRpb25Db250ZXh0ICpjb250ZXh0KSBPVkVSUklERQorICAgIE5vdGlmeU5ldHdvcmtTdGF0
ZUNoYW5nZVRhc2soYm9vbCBpc09uTGluZSkKKyAgICAgICAgOiBtX2lzT25MaW5lKGlzT25MaW5l
KQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRhc2soU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCAqY29udGV4dCkKICAgICB7CiAgICAgICAgIEF0b21pY1N0cmluZyBldmVu
dE5hbWUgPSBtX2lzT25MaW5lID8gZXZlbnROYW1lcygpLm9ubGluZUV2ZW50IDogZXZlbnROYW1l
cygpLm9mZmxpbmVFdmVudDsKICAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUqIHdvcmtlckdsb2Jh
bFNjb3BlID0gc3RhdGljX2Nhc3Q8V29ya2VyR2xvYmFsU2NvcGUqPihjb250ZXh0KTsKQEAgLTI3
MSw3ICszMTIsNyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2Jh
bFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdAogCiB2b2lkIFdvcmtlck1lc3Nh
Z2luZ1Byb3h5Ojpwb3N0TWVzc2FnZVRvV29ya2VyT2JqZWN0KFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBQYXNzT3duUHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5
PiBjaGFubmVscykKIHsKLSAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKHN0
ZDo6bWFrZV91bmlxdWU8TWVzc2FnZVdvcmtlclRhc2s+KG1lc3NhZ2UsIGNoYW5uZWxzLCB0aGlz
KSk7CisgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhNZXNzYWdlV29ya2Vy
VGFzazo6Y3JlYXRlKG1lc3NhZ2UsIGNoYW5uZWxzLCB0aGlzKSk7CiB9CiAKIHZvaWQgV29ya2Vy
TWVzc2FnaW5nUHJveHk6OnBvc3RNZXNzYWdlVG9Xb3JrZXJHbG9iYWxTY29wZShQYXNzUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgUGFzc093blB0cjxNZXNzYWdlUG9ydENo
YW5uZWxBcnJheT4gY2hhbm5lbHMpCkBAIC0yODEsMzEgKzMyMiwzMSBAQCB2b2lkIFdvcmtlck1l
c3NhZ2luZ1Byb3h5Ojpwb3N0TWVzc2FnZVRvV29ya2VyR2xvYmFsU2NvcGUoUGFzc1JlZlB0cjxT
ZXJpYWxpemVkUwogCiAgICAgaWYgKG1fd29ya2VyVGhyZWFkKSB7CiAgICAgICAgICsrbV91bmNv
bmZpcm1lZE1lc3NhZ2VDb3VudDsKLSAgICAgICAgbV93b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5w
b3N0VGFzayhzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VXb3JrZXJHbG9iYWxTY29wZVRhc2s+KG1l
c3NhZ2UsIGNoYW5uZWxzKSk7CisgICAgICAgIG1fd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9z
dFRhc2soTWVzc2FnZVdvcmtlckdsb2JhbFNjb3BlVGFzazo6Y3JlYXRlKG1lc3NhZ2UsIGNoYW5u
ZWxzKSk7CiAgICAgfSBlbHNlCi0gICAgICAgIG1fcXVldWVkRWFybHlUYXNrcy5hcHBlbmQoc3Rk
OjptYWtlX3VuaXF1ZTxNZXNzYWdlV29ya2VyR2xvYmFsU2NvcGVUYXNrPihtZXNzYWdlLCBjaGFu
bmVscykpOworICAgICAgICBtX3F1ZXVlZEVhcmx5VGFza3MuYXBwZW5kKE1lc3NhZ2VXb3JrZXJH
bG9iYWxTY29wZVRhc2s6OmNyZWF0ZShtZXNzYWdlLCBjaGFubmVscykpOwogfQogCi1ib29sIFdv
cmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKHN0
ZDo6dW5pcXVlX3B0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiB0YXNrLCBjb25zdCBT
dHJpbmcmIG1vZGUpCitib29sIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0VGFza0Zvck1vZGVU
b1dvcmtlckdsb2JhbFNjb3BlKFBhc3NPd25QdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFz
az4gdGFzaywgY29uc3QgU3RyaW5nJiBtb2RlKQogewogICAgIGlmIChtX2Fza2VkVG9UZXJtaW5h
dGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEFTU0VSVChtX3dvcmtlclRocmVhZCk7
Ci0gICAgbV93b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoc3RkOjptb3Zl
KHRhc2spLCBtb2RlKTsKKyAgICBtX3dvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9y
TW9kZSh0YXNrLCBtb2RlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBXb3JrZXJNZXNz
YWdpbmdQcm94eTo6cG9zdFRhc2tUb0xvYWRlcihzdGQ6OnVuaXF1ZV9wdHI8U2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6VGFzaz4gdGFzaykKK3ZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RU
YXNrVG9Mb2FkZXIoUGFzc093blB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiB0YXNr
KQogewogICAgIC8vIEZJWE1FOiBJbiBjYXNlIG9mIG5lc3RlZCB3b3JrZXJzLCB0aGlzIHNob3Vs
ZCBnbyBkaXJlY3RseSB0byB0aGUgcm9vdCBEb2N1bWVudCBjb250ZXh0LgogICAgIEFTU0VSVCht
X3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1lbnQoKSk7Ci0gICAgbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0LT5wb3N0VGFzayhzdGQ6Om1vdmUodGFzaykpOworICAgIG1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC0+cG9zdFRhc2sodGFzayk7CiB9CiAKIHZvaWQgV29ya2VyTWVzc2FnaW5n
UHJveHk6OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdChjb25zdCBTdHJpbmcmIGVycm9yTWVz
c2FnZSwgaW50IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgc291
cmNlVVJMKQogewotICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2soc3RkOjpt
YWtlX3VuaXF1ZTxXb3JrZXJFeGNlcHRpb25UYXNrPihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIs
IGNvbHVtbk51bWJlciwgc291cmNlVVJMLCB0aGlzKSk7CisgICAgbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0LT5wb3N0VGFzayhXb3JrZXJFeGNlcHRpb25UYXNrOjpjcmVhdGUoZXJyb3JNZXNzYWdl
LCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHNvdXJjZVVSTCwgdGhpcykpOwogfQogCiBzdGF0
aWMgdm9pZCBwb3N0Q29uc29sZU1lc3NhZ2VUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIFdvcmtlck1lc3NhZ2luZ1Byb3h5KiBtZXNzYWdpbmdQcm94eSwgTWVzc2FnZVNvdXJj
ZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNp
Z25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgc291
cmNlVVJMKQpAQCAtMzM0LDcgKzM3NSw3IEBAIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6Ondv
cmtlclRocmVhZENyZWF0ZWQoUGFzc1JlZlB0cjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+CiAgICAg
ICAgIG1fd29ya2VyVGhyZWFkSGFkUGVuZGluZ0FjdGl2aXR5ID0gdHJ1ZTsgLy8gV29ya2VyIGlu
aXRpYWxpemF0aW9uIG1lYW5zIGEgcGVuZGluZyBhY3Rpdml0eS4KIAogICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgdGFza0NvdW50OyArK2kpCi0gICAgICAgICAgICBtX3dvcmtlclRo
cmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrKHN0ZDo6bW92ZShtX3F1ZXVlZEVhcmx5VGFza3NbaV0p
KTsKKyAgICAgICAgICAgIG1fd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2sobV9xdWV1
ZWRFYXJseVRhc2tzW2ldLnJlbGVhc2UoKSk7CiAgICAgICAgIG1fcXVldWVkRWFybHlUYXNrcy5j
bGVhcigpOwogICAgIH0KIH0KQEAgLTM1Myw3ICszOTQsNyBAQCB2b2lkIFdvcmtlck1lc3NhZ2lu
Z1Byb3h5Ojpub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBpc09ubGluZSkKICAgICBpZiAo
IW1fd29ya2VyVGhyZWFkKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3dvcmtlclRocmVhZC0+
cnVuTG9vcCgpLnBvc3RUYXNrKHN0ZDo6bWFrZV91bmlxdWU8Tm90aWZ5TmV0d29ya1N0YXRlQ2hh
bmdlVGFzaz4oaXNPbmxpbmUpKTsKKyAgICBtX3dvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RU
YXNrKE5vdGlmeU5ldHdvcmtTdGF0ZUNoYW5nZVRhc2s6OmNyZWF0ZShpc09ubGluZSkpOwogfQog
CiB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojp3b3JrZXJPYmplY3REZXN0cm95ZWRJbnRlcm5h
bChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV29ya2VyTWVzc2FnaW5nUHJveHkqIHByb3h5KQpA
QCAtNDI0LDE0ICs0NjUsMTQgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6c2VuZE1lc3Nh
Z2VUb0luc3BlY3Rvcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAKIHZvaWQgV29ya2VyTWVzc2Fn
aW5nUHJveHk6Ondvcmtlckdsb2JhbFNjb3BlRGVzdHJveWVkKCkKIHsKLSAgICBtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKHN0ZDo6bWFrZV91bmlxdWU8V29ya2VyR2xvYmFsU2Nv
cGVEZXN0cm95ZWRUYXNrPih0aGlzKSk7CisgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5w
b3N0VGFzayhXb3JrZXJHbG9iYWxTY29wZURlc3Ryb3llZFRhc2s6OmNyZWF0ZSh0aGlzKSk7CiAg
ICAgLy8gV2lsbCBleGVjdXRlIHdvcmtlckdsb2JhbFNjb3BlRGVzdHJveWVkSW50ZXJuYWwoKSBv
biBjb250ZXh0J3MgdGhyZWFkLgogfQogCiB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojp3b3Jr
ZXJHbG9iYWxTY29wZUNsb3NlZCgpCiB7CiAgICAgLy8gRXhlY3V0ZXMgdGVybWluYXRlV29ya2Vy
R2xvYmFsU2NvcGUoKSBvbiBwYXJlbnQgY29udGV4dCdzIHRocmVhZC4KLSAgICBtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKHN0ZDo6bWFrZV91bmlxdWU8V29ya2VyVGVybWluYXRl
VGFzaz4odGhpcykpOworICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2soV29y
a2VyVGVybWluYXRlVGFzazo6Y3JlYXRlKHRoaXMpKTsKIH0KIAogdm9pZCBXb3JrZXJNZXNzYWdp
bmdQcm94eTo6d29ya2VyR2xvYmFsU2NvcGVEZXN0cm95ZWRJbnRlcm5hbCgpCkBAIC00NjIsNyAr
NTAzLDcgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6dGVybWluYXRlV29ya2VyR2xvYmFs
U2NvcGUoKQogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5
Ojpwb3N0TWVzc2FnZVRvUGFnZUluc3BlY3Rvcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0g
ICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhzdGQ6Om1ha2VfdW5pcXVlPFBv
c3RNZXNzYWdlVG9QYWdlSW5zcGVjdG9yVGFzaz4odGhpcywgbWVzc2FnZSkpOworICAgIG1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2soUG9zdE1lc3NhZ2VUb1BhZ2VJbnNwZWN0b3JU
YXNrOjpjcmVhdGUodGhpcywgbWVzc2FnZSkpOwogfQogCiB2b2lkIFdvcmtlck1lc3NhZ2luZ1By
b3h5Ojp1cGRhdGVJbnNwZWN0b3JTdGF0ZUNvb2tpZShjb25zdCBTdHJpbmcmKQpAQCAtNDczLDEz
ICs1MTQsMTMgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6dXBkYXRlSW5zcGVjdG9yU3Rh
dGVDb29raWUoY29uc3QgU3RyaW5nJikKIAogdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6Y29u
ZmlybU1lc3NhZ2VGcm9tV29ya2VyT2JqZWN0KGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KQogewot
ICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2soc3RkOjptYWtlX3VuaXF1ZTxX
b3JrZXJUaHJlYWRBY3Rpdml0eVJlcG9ydFRhc2s+KHRoaXMsIHRydWUsIGhhc1BlbmRpbmdBY3Rp
dml0eSkpOworICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2soV29ya2VyVGhy
ZWFkQWN0aXZpdHlSZXBvcnRUYXNrOjpjcmVhdGUodGhpcywgdHJ1ZSwgaGFzUGVuZGluZ0FjdGl2
aXR5KSk7CiAgICAgLy8gV2lsbCBleGVjdXRlIHJlcG9ydFBlbmRpbmdBY3Rpdml0eUludGVybmFs
KCkgb24gY29udGV4dCdzIHRocmVhZC4KIH0KIAogdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6
cmVwb3J0UGVuZGluZ0FjdGl2aXR5KGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KQogewotICAgIG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2soc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJU
aHJlYWRBY3Rpdml0eVJlcG9ydFRhc2s+KHRoaXMsIGZhbHNlLCBoYXNQZW5kaW5nQWN0aXZpdHkp
KTsKKyAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKFdvcmtlclRocmVhZEFj
dGl2aXR5UmVwb3J0VGFzazo6Y3JlYXRlKHRoaXMsIGZhbHNlLCBoYXNQZW5kaW5nQWN0aXZpdHkp
KTsKICAgICAvLyBXaWxsIGV4ZWN1dGUgcmVwb3J0UGVuZGluZ0FjdGl2aXR5SW50ZXJuYWwoKSBv
biBjb250ZXh0J3MgdGhyZWFkLgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ck1lc3NhZ2luZ1Byb3h5LmgKaW5kZXggMzQzODlmMjliNGY3MmI1MDhlZTgzMGU2YjY3MjQ1MDA5
ZWJlMDdkZS4uMTg5NmE4MTM1MDRhYzE4YWJhY2RkMWZhYzAzMTkwNjlkZmY3NWE2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaApAQCAtODIsOCAr
ODIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIEltcGxlbWVudGF0aW9uIG9m
IFdvcmtlckxvYWRlclByb3h5LgogICAgICAgICAvLyBUaGVzZSBtZXRob2RzIGFyZSBjYWxsZWQg
b24gZGlmZmVyZW50IHRocmVhZHMgdG8gc2NoZWR1bGUgbG9hZGluZwogICAgICAgICAvLyByZXF1
ZXN0cyBhbmQgdG8gc2VuZCBjYWxsYmFja3MgYmFjayB0byBXb3JrZXJHbG9iYWxTY29wZS4KLSAg
ICAgICAgdmlydHVhbCB2b2lkIHBvc3RUYXNrVG9Mb2FkZXIoc3RkOjp1bmlxdWVfcHRyPFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+KSBPVkVSUklERTsKLSAgICAgICAgdmlydHVhbCBib29s
IHBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoc3RkOjp1bmlxdWVfcHRyPFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+LCBjb25zdCBTdHJpbmcmIG1vZGUpIE9WRVJSSURFOwor
ICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2tUb0xvYWRlcihQYXNzT3duUHRyPFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OlRhc2s+KSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCBib29sIHBv
c3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoUGFzc093blB0cjxTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjpUYXNrPiwgY29uc3QgU3RyaW5nJiBtb2RlKSBPVkVSUklERTsKIAogICAgICAg
ICB2b2lkIHdvcmtlclRocmVhZENyZWF0ZWQoUGFzc1JlZlB0cjxEZWRpY2F0ZWRXb3JrZXJUaHJl
YWQ+KTsKIApAQCAtMTE1LDcgKzExNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAg
ICBib29sIG1fYXNrZWRUb1Rlcm1pbmF0ZTsKIAotICAgICAgICBWZWN0b3I8c3RkOjp1bmlxdWVf
cHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+PiBtX3F1ZXVlZEVhcmx5VGFza3M7IC8v
IFRhc2tzIGFyZSBxdWV1ZWQgaGVyZSB1bnRpbCB0aGVyZSdzIGEgdGhyZWFkIG9iamVjdCBjcmVh
dGVkLgorICAgICAgICBWZWN0b3I8T3duUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+
ID4gbV9xdWV1ZWRFYXJseVRhc2tzOyAvLyBUYXNrcyBhcmUgcXVldWVkIGhlcmUgdW50aWwgdGhl
cmUncyBhIHRocmVhZCBvYmplY3QgY3JlYXRlZC4KICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAg
ICAgICBXb3JrZXJHbG9iYWxTY29wZVByb3h5OjpQYWdlSW5zcGVjdG9yKiBtX3BhZ2VJbnNwZWN0
b3I7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVu
TG9vcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwCmluZGV4
IDBkYmZiNTgyMWU3Y2NmMzU1ZjFmNmM0NjkyMmUyMDlhNmM2MGRlNDguLmY0YTJlZmM4NjM3ZDYy
ZmUyMDY2N2MzYzFjZDAwOGY5NjgyNDMwYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyUnVuTG9vcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJSdW5Mb29wLmNwcApAQCAtMTk2LDE5ICsxOTYsMjQgQEAgdm9pZCBXb3JrZXJSdW5Mb29wOjp0
ZXJtaW5hdGUoKQogICAgIG1fbWVzc2FnZVF1ZXVlLmtpbGwoKTsKIH0KIAotdm9pZCBXb3JrZXJS
dW5Mb29wOjpwb3N0VGFzayhzdGQ6OnVuaXF1ZV9wdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
VGFzaz4gdGFzaykKK3ZvaWQgV29ya2VyUnVuTG9vcDo6cG9zdFRhc2soUGFzc093blB0cjxTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiB0YXNrKQogewotICAgIHBvc3RUYXNrRm9yTW9kZShz
dGQ6Om1vdmUodGFzayksIGRlZmF1bHRNb2RlKCkpOworICAgIHBvc3RUYXNrRm9yTW9kZSh0YXNr
LCBkZWZhdWx0TW9kZSgpKTsKIH0KIAotdm9pZCBXb3JrZXJSdW5Mb29wOjpwb3N0VGFza0FuZFRl
cm1pbmF0ZShzdGQ6OnVuaXF1ZV9wdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4gdGFz
aykKK3ZvaWQgV29ya2VyUnVuTG9vcDo6cG9zdFRhc2tBbmRUZXJtaW5hdGUoUGFzc093blB0cjxT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiB0YXNrKQogewotICAgIG1fbWVzc2FnZVF1ZXVl
LmFwcGVuZEFuZEtpbGwoc3RkOjptYWtlX3VuaXF1ZTxUYXNrPihzdGQ6Om1vdmUodGFzayksIGRl
ZmF1bHRNb2RlKCkuaXNvbGF0ZWRDb3B5KCkpKTsKKyAgICBtX21lc3NhZ2VRdWV1ZS5hcHBlbmRB
bmRLaWxsKFRhc2s6OmNyZWF0ZSh0YXNrLCBkZWZhdWx0TW9kZSgpLmlzb2xhdGVkQ29weSgpKSk7
CiB9CiAKLXZvaWQgV29ya2VyUnVuTG9vcDo6cG9zdFRhc2tGb3JNb2RlKHN0ZDo6dW5pcXVlX3B0
cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiB0YXNrLCBjb25zdCBTdHJpbmcmIG1vZGUp
Cit2b2lkIFdvcmtlclJ1bkxvb3A6OnBvc3RUYXNrRm9yTW9kZShQYXNzT3duUHRyPFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IHRhc2ssIGNvbnN0IFN0cmluZyYgbW9kZSkKIHsKLSAgICBt
X21lc3NhZ2VRdWV1ZS5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxUYXNrPihzdGQ6Om1vdmUodGFz
ayksIG1vZGUuaXNvbGF0ZWRDb3B5KCkpKTsKKyAgICBtX21lc3NhZ2VRdWV1ZS5hcHBlbmQoVGFz
azo6Y3JlYXRlKHRhc2ssIG1vZGUuaXNvbGF0ZWRDb3B5KCkpKTsKK30KKworc3RkOjp1bmlxdWVf
cHRyPFdvcmtlclJ1bkxvb3A6OlRhc2s+IFdvcmtlclJ1bkxvb3A6OlRhc2s6OmNyZWF0ZShQYXNz
T3duUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IHRhc2ssIGNvbnN0IFN0cmluZyYg
bW9kZSkKK3sKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFRhc2s+KG5ldyBUYXNrKHRhc2ss
IG1vZGUpKTsKIH0KIAogdm9pZCBXb3JrZXJSdW5Mb29wOjpUYXNrOjpwZXJmb3JtVGFzayhjb25z
dCBXb3JrZXJSdW5Mb29wJiBydW5Mb29wLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
KQpAQCAtMjE4LDggKzIyMyw4IEBAIHZvaWQgV29ya2VyUnVuTG9vcDo6VGFzazo6cGVyZm9ybVRh
c2soY29uc3QgV29ya2VyUnVuTG9vcCYgcnVuTG9vcCwgU2NyaXB0RXhlY3V0CiAgICAgICAgIG1f
dGFzay0+cGVyZm9ybVRhc2soY29udGV4dCk7CiB9CiAKLVdvcmtlclJ1bkxvb3A6OlRhc2s6OlRh
c2soc3RkOjp1bmlxdWVfcHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IHRhc2ssIGNv
bnN0IFN0cmluZyYgbW9kZSkKLSAgICA6IG1fdGFzayhzdGQ6Om1vdmUodGFzaykpCitXb3JrZXJS
dW5Mb29wOjpUYXNrOjpUYXNrKFBhc3NPd25QdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFz
az4gdGFzaywgY29uc3QgU3RyaW5nJiBtb2RlKQorICAgIDogbV90YXNrKHRhc2spCiAgICAgLCBt
X21vZGUobW9kZS5pc29sYXRlZENvcHkoKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJSdW5Mb29wLmgKaW5kZXggMTQ2OGRjZmFkMDAwOTY1MzNhNzJjODE2ZWZmODQ1MzNiYTE3MmJj
OC4uM2RlZTVhNTNmMWRhMjVmOTdjNTIyYzViNjRjZTlhNjYzM2M3NjRjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmgKQEAgLTYwLDkgKzYwLDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICB2b2lkIHRlcm1pbmF0ZSgpOwogICAgICAgICBib29sIHRlcm1pbmF0
ZWQoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2VRdWV1ZS5raWxsZWQoKTsgfQogCi0gICAgICAg
IHZvaWQgcG9zdFRhc2soc3RkOjp1bmlxdWVfcHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRh
c2s+KTsKLSAgICAgICAgdm9pZCBwb3N0VGFza0FuZFRlcm1pbmF0ZShzdGQ6OnVuaXF1ZV9wdHI8
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4pOwotICAgICAgICB2b2lkIHBvc3RUYXNrRm9y
TW9kZShzdGQ6OnVuaXF1ZV9wdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4sIGNvbnN0
IFN0cmluZyYgbW9kZSk7CisgICAgICAgIHZvaWQgcG9zdFRhc2soUGFzc093blB0cjxTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjpUYXNrPik7CisgICAgICAgIHZvaWQgcG9zdFRhc2tBbmRUZXJtaW5h
dGUoUGFzc093blB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPik7CisgICAgICAgIHZv
aWQgcG9zdFRhc2tGb3JNb2RlKFBhc3NPd25QdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFz
az4sIGNvbnN0IFN0cmluZyYgbW9kZSk7CiAKICAgICAgICAgdW5zaWduZWQgbG9uZyBjcmVhdGVV
bmlxdWVJZCgpIHsgcmV0dXJuICsrbV91bmlxdWVJZDsgfQogCkBAIC03MSwxNSArNzEsMTUgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBjbGFzcyBUYXNrIHsKICAgICAgICAgICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFRhc2spOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICAg
ICAgcHVibGljOgotICAgICAgICAgICAgVGFzayhzdGQ6OnVuaXF1ZV9wdHI8U2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6VGFzaz4sIGNvbnN0IFN0cmluZyYgbW9kZSk7CisgICAgICAgICAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFRhc2s+IGNyZWF0ZShQYXNzT3duUHRyPFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ6OlRhc2s+LCBjb25zdCBTdHJpbmcmIG1vZGUpOwogICAgICAgICAgICAgflRhc2so
KSB7IH0KLQogICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBtb2RlKCkgY29uc3QgeyByZXR1cm4g
bV9tb2RlOyB9CiAgICAgICAgICAgICB2b2lkIHBlcmZvcm1UYXNrKGNvbnN0IFdvcmtlclJ1bkxv
b3AmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKICAgICAgICAgcHJpdmF0ZToKLQotICAg
ICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IG1f
dGFzazsKKyAgICAgICAgICAgIFRhc2soUGFzc093blB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpUYXNrPiB0YXNrLCBjb25zdCBTdHJpbmcmIG1vZGUpOworICAgICAgICAKKyAgICAgICAgICAg
IE93blB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiBtX3Rhc2s7CiAgICAgICAgICAg
ICBTdHJpbmcgbV9tb2RlOwogICAgICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clRocmVhZC5jcHAKaW5kZXggYjg3Y2Y3MjhkMDYyMDFhNDg2MTY1YTVkZjgwNGFjMjFjY2MxMGJh
MS4uNjczM2QxNDEwODMyZjU0MzZiZjQ3ZDA4MWY5N2FmMWVmZmQzZjQ5NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcApAQCAtMTkwLDEyICsxOTAsMTIgQEAgdm9pZCBX
b3JrZXJUaHJlYWQ6OnJ1bkV2ZW50TG9vcCgpCiAKIGNsYXNzIFdvcmtlclRocmVhZFNodXRkb3du
RmluaXNoVGFzayA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrIHsKIHB1Ymxp
YzoKLSAgICBXb3JrZXJUaHJlYWRTaHV0ZG93bkZpbmlzaFRhc2soKQorICAgIHN0YXRpYyBQYXNz
T3duUHRyPFdvcmtlclRocmVhZFNodXRkb3duRmluaXNoVGFzaz4gY3JlYXRlKCkKICAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgV29ya2VyVGhyZWFkU2h1dGRvd25GaW5pc2hUYXNr
KCkpOwogICAgIH0KIAotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRhc2soU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCAqY29udGV4dCkgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIHZvaWQg
cGVyZm9ybVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCAqY29udGV4dCkKICAgICB7CiAgICAg
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGNvbnRleHQtPmlzV29ya2VyR2xv
YmFsU2NvcGUoKSk7CiAgICAgICAgIFdvcmtlckdsb2JhbFNjb3BlKiB3b3JrZXJHbG9iYWxTY29w
ZSA9IHN0YXRpY19jYXN0PFdvcmtlckdsb2JhbFNjb3BlKj4oY29udGV4dCk7CkBAIC0yMDYsNyAr
MjA2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgd29ya2VyR2xvYmFsU2NvcGUtPmNsZWFyU2NyaXB0
KCk7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGlzQ2xlYW51cFRhc2soKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzQ2xlYW51cFRhc2soKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiB9OwogCiBjbGFzcyBXb3JrZXJUaHJlYWRTaHV0ZG93blN0
YXJ0VGFzayA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrIHsKQEAgLTI0Myw3
ICsyNDMsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgLy8gU3RpY2sgYSBzaHV0ZG93biBjb21tYW5k
IGF0IHRoZSBlbmQgb2YgdGhlIHF1ZXVlLCBzbyB0aGF0IHdlIGRlYWwKICAgICAgICAgLy8gd2l0
aCBhbGwgdGhlIGNsZWFudXAgdGFza3MgdGhlIGRhdGFiYXNlcyBwb3N0IGZpcnN0LgotICAgICAg
ICB3b3JrZXJHbG9iYWxTY29wZS0+cG9zdFRhc2soc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJUaHJl
YWRTaHV0ZG93bkZpbmlzaFRhc2s+KCkpOworICAgICAgICB3b3JrZXJHbG9iYWxTY29wZS0+cG9z
dFRhc2soV29ya2VyVGhyZWFkU2h1dGRvd25GaW5pc2hUYXNrOjpjcmVhdGUoKSk7CiAgICAgfQog
CiAgICAgdmlydHVhbCBib29sIGlzQ2xlYW51cFRhc2soKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CkBAIC0yNjEsNyArMjYxLDcgQEAgdm9pZCBXb3JrZXJUaHJlYWQ6OnN0b3AoKQogI2lmIEVOQUJM
RShTUUxfREFUQUJBU0UpCiAgICAgICAgIERhdGFiYXNlTWFuYWdlcjo6bWFuYWdlcigpLmludGVy
cnVwdEFsbERhdGFiYXNlc0ZvckNvbnRleHQobV93b3JrZXJHbG9iYWxTY29wZS5nZXQoKSk7CiAj
ZW5kaWYKLSAgICAgICAgbV9ydW5Mb29wLnBvc3RUYXNrQW5kVGVybWluYXRlKHN0ZDo6bWFrZV91
bmlxdWU8V29ya2VyVGhyZWFkU2h1dGRvd25GaW5pc2hUYXNrPigpKTsKKyAgICAgICAgbV9ydW5M
b29wLnBvc3RUYXNrQW5kVGVybWluYXRlKFdvcmtlclRocmVhZFNodXRkb3duU3RhcnRUYXNrOjpj
cmVhdGUoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgbV9ydW5Mb29wLnRlcm1pbmF0
ZSgpOwpAQCAtMjc1LDkgKzI3NSw5IEBAIHZvaWQgV29ya2VyVGhyZWFkOjpyZWxlYXNlRmFzdE1h
bGxvY0ZyZWVNZW1vcnlJbkFsbFRocmVhZHMoKQogewogICAgIE11dGV4TG9ja2VyIGxvY2sodGhy
ZWFkU2V0TXV0ZXgoKSk7CiAgICAgSGFzaFNldDxXb3JrZXJUaHJlYWQqPiYgdGhyZWFkcyA9IHdv
cmtlclRocmVhZHMoKTsKLQotICAgIGZvciAoYXV0byBpdCA9IHRocmVhZHMuYmVnaW4oKSwgZW5k
ID0gdGhyZWFkcy5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KQotICAgICAgICAoKml0KS0+cnVuTG9v
cCgpLnBvc3RUYXNrKHN0ZDo6bWFrZV91bmlxdWU8UmVsZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5
VGFzaz4oKSk7CisgICAgSGFzaFNldDxXb3JrZXJUaHJlYWQqPjo6aXRlcmF0b3IgZW5kID0gdGhy
ZWFkcy5lbmQoKTsKKyAgICBmb3IgKEhhc2hTZXQ8V29ya2VyVGhyZWFkKj46Oml0ZXJhdG9yIGl0
ID0gdGhyZWFkcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCisgICAgICAgICgqaXQpLT5ydW5M
b29wKCkucG9zdFRhc2soYWRvcHRQdHIobmV3IFJlbGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeVRh
c2spKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>