<?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>57364</bug_id>
          
          <creation_ts>2011-03-29 11:11:25 -0700</creation_ts>
          <short_desc>REGRESSION(r82281): Qt build failed to compile (Requested by loislo on #webkit).</short_desc>
          <delta_ts>2022-03-01 02:41:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>57327</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>loislo</cc>
    
    <cc>pfeldman</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>375554</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-29 11:11:25 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/82281 broke the build:
Qt build failed to compile (Requested by loislo on #webkit).

This is an automatic bug report generated by the sheriff-bot. 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 case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375555</commentid>
    <comment_count>1</comment_count>
      <attachid>87369</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-29 11:11:49 -0700</bug_when>
    <thetext>Created attachment 87369
ROLLOUT of r82281

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 --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375572</commentid>
    <comment_count>2</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-03-29 11:25:39 -0700</bug_when>
    <thetext>was fixed by Darin at r82288</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87369</attachid>
            <date>2011-03-29 11:11:49 -0700</date>
            <delta_ts>2022-03-01 02:41:13 -0800</delta_ts>
            <desc>ROLLOUT of r82281</desc>
            <filename>bug-57364-20110329180932.patch</filename>
            <type>text/plain</type>
            <size>65297</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIyODUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyMmFjOWNjMTE2MzFkMzJjZTM4MWEz
MDlkMTEzZDRjYjgxNGYzZjZlLi40ZGY3MmFmNzNjMTFhNDU0MDJjMjVkMjNiM2U5MjllOWViYzk3
M2M2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDMtMjkgIFNoZXJpZmYgQm90ICA8d2Vi
a2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHI4MjI4MS4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvODIy
ODEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MzY0
CisKKyAgICAgICAgUXQgYnVpbGQgZmFpbGVkIHRvIGNvbXBpbGUgKFJlcXVlc3RlZCBieSBsb2lz
bG8gb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0
b3ItdGVzdC5qczoKKyAgICAgICAgKGluaXRpYWxpemVfSW5zcGVjdG9yVGVzdC5JbnNwZWN0b3JU
ZXN0LnJlbG9hZFBhZ2UpOgorCiAyMDExLTAzLTI5ICBBbmRyYXMgQmVjc2kgIDxhYmVjc2lAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKaW5kZXggMWUz
NDNmNTg2YTQ2MTQ1NDQwYzNiYzdlMGEzYTlmYzQxODA2MzljZC4uYzUwN2Y1OWI3ODA0YzFhODk5
ODMwNzU5NmE0OTk2ZWYxZWY4MWNmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKQEAgLTEzNyw3ICsxMzcsNyBAQCBJbnNwZWN0
b3JUZXN0LnJlbG9hZFBhZ2UgPSBmdW5jdGlvbihjYWxsYmFjaykKIAogICAgIGlmIChXZWJJbnNw
ZWN0b3IucGFuZWxzLm5ldHdvcmspCiAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29y
ay5fcmVzZXQoKTsKLSAgICBQYWdlQWdlbnQucmVsb2FkUGFnZShmYWxzZSk7CisgICAgSW5zcGVj
dG9yQWdlbnQucmVsb2FkUGFnZShmYWxzZSk7CiB9CiAKIEluc3BlY3RvclRlc3QucGFnZVJlbG9h
ZGVkID0gZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA4MDdmNTVkZGMzN2Y1ZGMw
NzgxMmE3OWQ1ZTEzMTI1Zjg1MzQ1ZGJiLi4yMjY1NzJkYTU0NWYwYzY4NzRkNjcxODhmM2EyMWY0
ZTJjMDNjOTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtODg1LDcgKzg4NSw2IEBAIFNFVChX
ZWJDb3JlX1NPVVJDRVMKICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAog
ICAgIGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50LmNwcAotICAgIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50LmNwcAog
ICAgIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVj
dG9yQ2xpZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDViMGZjMzRmMjg3ZjQ4YjQ5Yzg4Y2FmMWMxMGI0
OTY4MmMyYTcyNWMuLmMyYTg2ZDQxOTMzMmQ0YmU1YTJlNzk0N2JlNTUyMWM0YWVhNDc2NTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw3MCBAQAorMjAxMS0wMy0yOSAgU2hlcmlmZiBCb3QgIDx3ZWJr
aXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjgyMjgxLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC84MjI4
MQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTczNjQK
KworICAgICAgICBRdCBidWlsZCBmYWlsZWQgdG8gY29tcGlsZSAoUmVxdWVzdGVkIGJ5IGxvaXNs
byBvbiAjd2Via2l0KS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdO
VW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3Jl
LnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaW5zcGVjdG9y
L0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG06CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6SW5zcGVjdG9yQWdlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQWdlbnQ6OnJlc3RvcmVJbnNwZWN0b3JTdGF0ZUZyb21Db29raWUpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6OmRpZENsZWFyV2luZG93T2JqZWN0SW5X
b3JsZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6c2V0RnJvbnRlbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6OmRpc2Nvbm5lY3RGcm9udGVuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6OmxvYWRFdmVudEZpcmVkKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpzZXRVc2VyQWdlbnRPdmVycmlkZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6YXBwbHlVc2VyQWdlbnRPdmVycmlkZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6Z2V0Q29va2llcyk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6YnVpbGRBcnJheUZvckNvb2tpZXMpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yQ29va2llKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpkZWxldGVDb29raWUpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQWdlbnQ6Om9wZW5Jbkluc3BlY3RlZFdpbmRvdyk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JBZ2VudDo6YWRkU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6cmVtb3ZlQWxsU2NyaXB0c1RvRXZhbHVhdGVPbkxv
YWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6OnJlbG9hZFBhZ2UpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQWdlbnQ6Omluc3BlY3RvckFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVy
Ojpjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRDbGVhcldpbmRvd09iamVjdEluV29ybGRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YXBwbHlVc2VyQWdlbnRPdmVycmlkZUltcGwpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkb21Db250ZW50TG9hZGVk
RXZlbnRGaXJlZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpsb2FkRXZlbnRGaXJlZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRDb21taXRMb2FkSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQ
YWdlQWdlbnQuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdl
QWdlbnQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50
cy5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVudGluZ0FnZW50czo6SW5zdHJ1bWVudGlu
Z0FnZW50cyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQYW5lbC5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdHNQYW5lbC5wcm90b3R5cGUuX3JlbG9hZFJlc291
cmNlcyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVJdGVtc1ZpZXcuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29va2llSXRlbXNWaWV3LnByb3RvdHlwZS5fZGVsZXRl
Q29va2llKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db29raWVzLmdldENvb2tpZXNBc3luYyk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fb25SZWxvYWQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLk5ldHdvcmtEYXRhR3JpZE5vZGUucHJvdG90eXBlLl9vcGVuSW5OZXdUYWIp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbmRi
bGNsaWNrKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlcnNTaWRlYmFyUGFu
ZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJzU2lkZWJhclBhbmUucHJvdG90eXBl
LnNldEluc3RydW1lbnRhdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNw
ZWN0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iub3BlblJlc291cmNlKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5kb2N1bWVudEtleURvd24pOgorCiAyMDExLTAzLTI5ICBBbmRyYXMgQmVj
c2kgIDxhYmVjc2lAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggNTgzNjhiZGQ5ZjI4NmQ3YTFiMmQ4YzZiZWM0ZTll
M2FiOGQxNDBkZi4uODU2ZGIwNmUwOTY0Nzk3NDA1ZjUwM2FkNThiYmVjNWNkODM0NWNiNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0KQEAgLTIwMjQsOCArMjAyNCw2IEBAIHdlYmNvcmVfc291cmNlcyAr
PSBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIFwK
LQlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBcCi0JU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmggXAogCVNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5k
ZXggOGY4OWNkYTE2N2Y3YTUxN2YxNDNiNjFlZjkyZmJjOTg1ZDM3NDA3NC4uZDIxOGY0NzMwZmNm
ZmU2NjBhMzYxMWE5NTJkNmU4YTQzNzIxNjM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzIxMCw4
ICszMjEwLDYgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0
LmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3Bw
JywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgnLAot
ICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwJywKLSAgICAgICAg
ICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgnLAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9y
L0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3Bl
Y3RvclJlc291cmNlQWdlbnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggMzMwNjc4YTRjZjc5NGE3
ZGNlYjE2YTMyYTFmMDM2YTY5ZmQ1YzA0OS4uNDI1MWQ3Mzg1OTE1YzM5M2IwOGRmY2NkNzRiYzI5
MTMyYTUxNDg3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTgwOCw3ICs4MDgsNyBAQCBTT1VSQ0VTICs9
IFwKICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcCBcCiAgICAgaW5zcGVj
dG9yL0luc3BlY3RvckFnZW50LmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudC5jcHAgXAotICAgIGluc3BlY3Rvci9JbnNwZWN0b3JCcm93c2VlYnVnZ2Vy
QWdlbnQuY3BwIFwKKyAgICBpbnNwZWN0b3IvSW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQu
Y3BwIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwIFwKICAgICBpbnNwZWN0
b3IvSW5zcGVjdG9yQ2xpZW50LmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVB
Z2VudC5jcHAgXApAQCAtODIyLDcgKzgyMiw2IEBAIFNPVVJDRVMgKz0gXAogICAgIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kSG9zdC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uY3BwIFwKLSAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBcCiAgICAg
aW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwIFwKICAgICBpbnNwZWN0b3IvSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1l
QWdlbnQuY3BwIFwKQEAgLTE3NDcsNyArMTc0Niw2IEBAIEhFQURFUlMgKz0gXAogICAgIGluc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmggXAogICAgIGluc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZEhvc3QuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oIFwKLSAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmggXAogICAgIGluc3Bl
Y3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JS
ZXNvdXJjZUFnZW50LmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDli
NzQwNjA2OWJlNDhmNmVhMWIzMDE4Mzk2OWVkZTUzOGNkMWVjODQuLjdjMzFmNWYyOTE0MjE2Yjlj
MGI4OGQ5ZTdiNmQ2NzVkMzE2NTUwNjIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCkBAIC02NjM5OCwxNCArNjYzOTgsNiBAQAogCQkJCT4KIAkJCTwv
RmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9y
UGFnZUFnZW50LmNwcCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZl
UGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3RvclBhZ2VBZ2VudC5oIgotCQkJCT4KLQkJCTwvRmls
ZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudC5oIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0ZTIxZjk4OWQ0NDY4ZjFjZGE5
NmU3MmQ0MzlhNTIwM2U0Y2RhYjA1Li4zZDY1NTMzNWY2ZDVkZmUyZWIzNTFjMjU0ZWIxZGRjZmRj
MTYxY2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xMjQzLDggKzEyNDMsNiBAQAogCQk0RjMyODlCNTExQTQyQUFCMDA1QUJF
N0UgLyogSW5zcGVjdG9yVmFsdWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDRGMzI4OUIzMTFBNDJBQUIwMDVBQkU3RSAvKiBJbnNwZWN0b3JWYWx1
ZXMuY3BwICovOyB9OwogCQk0RjMyODlCNjExQTQyQUFCMDA1QUJFN0UgLyogSW5zcGVjdG9yVmFs
dWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjMy
ODlCNDExQTQyQUFCMDA1QUJFN0UgLyogSW5zcGVjdG9yVmFsdWVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEY0RjVGRkIxMUNCRDJFMTAwQTE4
NkJGIC8qIEluc3BlY3RvckZyb250ZW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRGNEY1RkZBMTFDQkQyRDIwMEExODZCRiAvKiBJbnNwZWN0b3JG
cm9udGVuZC5jcHAgKi87IH07Ci0JCTRGNkZERDY0MTM0MURFREQwMDFGOEVFMyAvKiBJbnNwZWN0
b3JQYWdlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEY2RkRENjIxMzQxREVERDAwMUY4RUUzIC8qIEluc3BlY3RvclBhZ2VBZ2VudC5jcHAg
Ki87IH07Ci0JCTRGNkZERDY1MTM0MURFREQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGNkZERDYz
MTM0MURFREQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuaCAqLzsgfTsKIAkJNEY3MDdB
OTkxMUVGNjc5NDAwQUNEQTY5IC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGNzA3QTk3MTFFRjY3
OTQwMEFDREE2OSAvKiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAgKi87IH07CiAJCTRG
NzA3QTlBMTFFRjY3OTQwMEFDREE2OSAvKiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEY3MDdBOTgxMUVG
Njc5NDAwQUNEQTY5IC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmggKi87IH07CiAJCTRG
QTNCOTBBMTI1Q0QxMjIwMDMwMEJBRCAvKiBJbnNwZWN0b3JTdGF0ZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkEzQjkwODEyNUNEMTIxMDAzMDBC
QUQgLyogSW5zcGVjdG9yU3RhdGUuY3BwICovOyB9OwpAQCAtNzc0NSw4ICs3NzQzLDYgQEAKIAkJ
NEYzMjg5QjQxMUE0MkFBQjAwNUFCRTdFIC8qIEluc3BlY3RvclZhbHVlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JWYWx1ZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNEY0RjVGRkExMUNCRDJEMjAwQTE4NkJGIC8qIEluc3BlY3RvckZyb250
ZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckZy
b250ZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEY0RjVGRkMxMUNCRDMw
MTAwQTE4NkJGIC8qIEluc3BlY3RvckZyb250ZW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluc3BlY3RvckZyb250ZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTRGNkZERDYyMTM0MURFREQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yUGFnZUFnZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNEY2RkRENjMxMzQxREVERDAwMUY4RUUz
IC8qIEluc3BlY3RvclBhZ2VBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbnNwZWN0b3JQYWdlQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEY3
MDdBOTcxMUVGNjc5NDAwQUNEQTY5IC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckJhY2tlbmREaXNw
YXRjaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEY3MDdBOTgxMUVGNjc5
NDAwQUNEQTY5IC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGQTNCOTA4MTI1Q0QxMjEwMDMwMEJBRCAvKiBJbnNwZWN0
b3JTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0
b3JTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzE1OSw4ICsxMzE1
NSw2IEBACiAJCQkJN0EwRTc3MEQxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5k
SG9zdC5pZGwgKi8sCiAJCQkJMjBENjI5MjQxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHAgKi8sCiAJCQkJMjBENjI5MjUxMjUzNjkwQjAwMDgxNTQzIC8qIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oICovLAotCQkJCTRGNkZERDYyMTM0MURFREQwMDFGOEVF
MyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuY3BwICovLAotCQkJCTRGNkZERDYzMTM0MURFREQwMDFG
OEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuaCAqLywKIAkJCQk5RjBENkIyQzEyMUJGRUJBMDA2
QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgKi8sCiAJCQkJOUYwRDZCMkQxMjFC
RkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQuaCAqLywKIAkJCQk4MkFCMTc3
MTEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAgKi8sCkBAIC0y
MjcyMCw3ICsyMjcxNCw2IEBACiAJCQkJQkM3NzJFMTMxMzMxNjIwQzAwMUVDOUNFIC8qIENTU0xp
bmVCb3hDb250YWluVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTRGMTQ0MjI5MTMzOUZENjIw
MEUwRDZGOCAvKiBET01Ob2RlSGlnaGxpZ2h0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU5QjBF
RUE3MTMyQTZGMkEwMDQzMzFDNyAvKiBKYXZhVHlwZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNEY2
RkRENjUxMzQxREVERDAwMUY4RUUzIC8qIEluc3BlY3RvclBhZ2VBZ2VudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CkBAIC0yNTM5Myw3ICsyNTM4Niw2IEBACiAJCQkJN0UzN0VGMkUxMzM5MjA4ODAwQjI5MjUw
IC8qIFN1YnJlc291cmNlTG9hZGVyQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEYxNDQyMjgx
MzM5RkQ2MjAwRTBENkY4IC8qIERPTU5vZGVIaWdobGlnaHRlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4NEI2MjY4NTEzMzEzOEY5MDA5NUE0ODkgLyogRm9udFBsYXRmb3JtRGF0YS5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQk0RjZGREQ2NDEzNDFERUREMDAxRjhFRTMgLyogSW5zcGVjdG9yUGFn
ZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbQppbmRleCBlYTY1ZjJlMWUwNzA2MzQ5N2MxNzAw
ZGY1NmFlN2QxZDkzMWViZDIzLi42YjliNGFiZTFlYWJiNGFkOTVlNTU4NTI0N2Y0NDNiZDk0NTBl
ZmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvcklu
c3BlY3Rvci5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvcklu
c3BlY3Rvci5wbQpAQCAtMjUsMTEgKzI1LDYgQEAgJHR5cGVUcmFuc2Zvcm17IkNvbnNvbGUifSA9
IHsKICAgICAiaGVhZGVyIiA9PiAiSW5zcGVjdG9yQ29uc29sZUFnZW50LmgiLAogICAgICJkb21h
aW5BY2Nlc3NvciIgPT4gIm1fY29uc29sZUFnZW50IiwKIH07Ci0kdHlwZVRyYW5zZm9ybXsiUGFn
ZSJ9ID0gewotICAgICJmb3J3YXJkIiA9PiAiSW5zcGVjdG9yUGFnZUFnZW50IiwKLSAgICAiaGVh
ZGVyIiA9PiAiSW5zcGVjdG9yUGFnZUFnZW50LmgiLAotICAgICJkb21haW5BY2Nlc3NvciIgPT4g
Im1fcGFnZUFnZW50IiwKLX07CiAkdHlwZVRyYW5zZm9ybXsiRGVidWdnZXIifSA9IHsKICAgICAi
Zm9yd2FyZCIgPT4gIkluc3BlY3RvckRlYnVnZ2VyQWdlbnQiLAogICAgICJoZWFkZXIiID0+ICJJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgiLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ci5qc29uCmluZGV4IDBlODI0NjYzMmU3ZDMwODkxMDUwZWIxNTU2MzZmNzE3NWIxMjk1N2QuLmI3
ZDlhOWM3ZjdlZTdlNzMzZTM5YWVlZDdlM2JkZjE0N2I1YzE3ODUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTQsMTI4ICs0LDEyMCBAQAogICAgICAgICAidHlw
ZXMiOiBbXSwKICAgICAgICAgImNvbW1hbmRzIjogWwogICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICJuYW1lIjogImRpZEV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQiLAorICAgICAgICAg
ICAgICAgICJuYW1lIjogImFkZFNjcmlwdFRvRXZhbHVhdGVPbkxvYWQiLAogICAgICAgICAgICAg
ICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRlc3RD
YWxsSWQiLCAidHlwZSI6ICJpbnRlZ2VyIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImpzb25SZXN1bHQiLCAidHlwZSI6ICJzdHJpbmciIH0KKyAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJzY3JpcHRTb3VyY2UiLCAidHlwZSI6ICJzdHJpbmciIH0KICAgICAgICAgICAg
ICAgICBdCi0gICAgICAgICAgICB9Ci0gICAgICAgIF0sCi0gICAgICAgICJldmVudHMiOiBbCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIm5hbWUiOiAiZnJvbnRlbmRSZXVzZWQiCi0g
ICAgICAgICAgICB9LAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJuYW1lIjogImJy
aW5nVG9Gcm9udCIKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgIm5hbWUiOiAiZGlzY29ubmVjdEZyb21CYWNrZW5kIgogICAgICAgICAgICAgfSwKICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFtZSI6ICJyZXNldCIKKyAgICAgICAgICAgICAg
ICAibmFtZSI6ICJyZW1vdmVBbGxTY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCIKICAgICAgICAgICAg
IH0sCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIm5hbWUiOiAic2hvd1BhbmVsIiwK
KyAgICAgICAgICAgICAgICAibmFtZSI6ICJyZWxvYWRQYWdlIiwKICAgICAgICAgICAgICAgICAi
cGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwYW5lbCIsICJ0
eXBlIjogInN0cmluZyIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlnbm9yZUNh
Y2hlIiwgInR5cGUiOiAiYm9vbGVhbiIgfQogICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAg
IH0sCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIm5hbWUiOiAic3RhcnRVc2VySW5p
dGlhdGVkRGVidWdnaW5nIgorICAgICAgICAgICAgICAgICJuYW1lIjogIm9wZW5Jbkluc3BlY3Rl
ZFdpbmRvdyIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiB9CisgICAgICAgICAgICAg
ICAgXQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFt
ZSI6ICJldmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kIiwKKyAgICAgICAgICAgICAgICAibmFtZSI6
ICJkaWRFdmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kIiwKICAgICAgICAgICAgICAgICAicGFyYW1l
dGVycyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0ZXN0Q2FsbElkIiwgInR5
cGUiOiAiaW50ZWdlciIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzY3JpcHQi
LCAidHlwZSI6ICJzdHJpbmciIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJqc29u
UmVzdWx0IiwgInR5cGUiOiAic3RyaW5nIiB9CiAgICAgICAgICAgICAgICAgXQogICAgICAgICAg
ICAgfSwKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFtZSI6ICJpbnNwZWN0IiwK
KyAgICAgICAgICAgICAgICAibmFtZSI6ICJzZXRVc2VyQWdlbnRPdmVycmlkZSIsCiAgICAgICAg
ICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
b2JqZWN0IiwgIiRyZWYiOiAiUmVtb3RlT2JqZWN0IiB9LAotICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImhpbnRzIiwgInR5cGUiOiAib2JqZWN0IiB9CisgICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAidXNlckFnZW50IiwgInR5cGUiOiAic3RyaW5nIiB9CiAgICAgICAgICAgICAg
ICAgXQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFt
ZSI6ICJkaWRDcmVhdGVXb3JrZXIiLAotICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwot
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlkIiwgInR5cGUiOiAiaW50ZWdlciIgfSwK
LSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmciIH0s
Ci0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXNTaGFyZWQiLCAidHlwZSI6ICJib29s
ZWFuIiB9CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiZ2V0Q29va2llcyIsCisgICAgICAgICAg
ICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29va2ll
cyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiIgOiAiQ29va2llIn0gfSwKKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb29raWVzU3RyaW5nIiwgInR5cGUiOiAic3Ry
aW5nIiB9CiAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAibmFtZSI6ICJkaWREZXN0cm95V29ya2VyIiwKKyAgICAgICAgICAg
ICAgICAibmFtZSI6ICJkZWxldGVDb29raWUiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJz
IjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlkIiwgInR5cGUiOiAiaW50ZWdl
ciIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvb2tpZU5hbWUiLCAidHlwZSI6
ICJzdHJpbmciIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZG9tYWluIiwgInR5
cGUiOiAic3RyaW5nIiB9CiAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgfQotICAgICAg
ICBdCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJkb21haW4iOiAiUGFnZSIsCi0gICAgICAgICJ0
eXBlcyI6IFtdLAotICAgICAgICAiY29tbWFuZHMiOiBbCisgICAgICAgIF0sCisgICAgICAgICJl
dmVudHMiOiBbCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIm5hbWUiOiAiYWRkU2Ny
aXB0VG9FdmFsdWF0ZU9uTG9hZCIsCi0gICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0g
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2NyaXB0U291cmNlIiwgInR5cGUiOiAic3Ry
aW5nIiB9Ci0gICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICJuYW1lIjogImZyb250
ZW5kUmV1c2VkIgogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAibmFtZSI6ICJyZW1vdmVBbGxTY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCIKKyAgICAgICAgICAg
ICAgICAibmFtZSI6ICJicmluZ1RvRnJvbnQiCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICJuYW1lIjogInJlbG9hZFBhZ2UiLAorICAgICAgICAgICAgICAg
ICJuYW1lIjogImRpc2Nvbm5lY3RGcm9tQmFja2VuZCIKKyAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiaW5zcGVjdGVkVVJMQ2hhbmdlZCIsCiAg
ICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiaWdub3JlQ2FjaGUiLCAidHlwZSI6ICJib29sZWFuIiB9CisgICAgICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiB9CiAgICAgICAgICAgICAgICAg
XQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFtZSI6
ICJvcGVuSW5JbnNwZWN0ZWRXaW5kb3ciLAorICAgICAgICAgICAgICAgICJuYW1lIjogImRvbUNv
bnRlbnRFdmVudEZpcmVkIiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmciIH0KKyAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0aW1lIiwgInR5cGUiOiAibnVtYmVyIiB9CiAgICAg
ICAgICAgICAgICAgXQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAibmFtZSI6ICJzZXRVc2VyQWdlbnRPdmVycmlkZSIsCisgICAgICAgICAgICAgICAgIm5h
bWUiOiAibG9hZEV2ZW50RmlyZWQiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwot
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVzZXJBZ2VudCIsICJ0eXBlIjogInN0cmlu
ZyIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRpbWUiLCAidHlwZSI6ICJudW1i
ZXIiIH0KICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICJuYW1lIjogImdldENvb2tpZXMiLAotICAgICAgICAgICAgICAgICJy
ZXR1cm5zIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvb2tpZXMiLCAidHlw
ZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiIDogIkNvb2tpZSJ9IH0sCi0gICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiY29va2llc1N0cmluZyIsICJ0eXBlIjogInN0cmluZyIgfQor
ICAgICAgICAgICAgICAgICJuYW1lIjogInJlc2V0IgorICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJzaG93UGFuZWwiLAorICAgICAgICAgICAg
ICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBhbmVs
IiwgInR5cGUiOiAic3RyaW5nIiB9CiAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgfSwK
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFtZSI6ICJkZWxldGVDb29raWUiLAor
ICAgICAgICAgICAgICAgICJuYW1lIjogInN0YXJ0VXNlckluaXRpYXRlZERlYnVnZ2luZyIKKyAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiZXZh
bHVhdGVGb3JUZXN0SW5Gcm9udGVuZCIsCiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBb
Ci0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29va2llTmFtZSIsICJ0eXBlIjogInN0
cmluZyIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkb21haW4iLCAidHlwZSI6
ICJzdHJpbmciIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0ZXN0Q2FsbElkIiwg
InR5cGUiOiAiaW50ZWdlciIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzY3Jp
cHQiLCAidHlwZSI6ICJzdHJpbmciIH0KICAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICB9
Ci0gICAgICAgIF0sCi0gICAgICAgICJldmVudHMiOiBbCisgICAgICAgICAgICB9LAogICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICJuYW1lIjogImluc3BlY3RlZFVSTENoYW5nZWQiLAor
ICAgICAgICAgICAgICAgICJuYW1lIjogImluc3BlY3QiLAogICAgICAgICAgICAgICAgICJwYXJh
bWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0eXBlIjog
InN0cmluZyIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9iamVjdCIsICIkcmVm
IjogIlJlbW90ZU9iamVjdCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoaW50
cyIsICJ0eXBlIjogIm9iamVjdCIgfQogICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgIH0s
CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIm5hbWUiOiAiZG9tQ29udGVudEV2ZW50
RmlyZWQiLAorICAgICAgICAgICAgICAgICJuYW1lIjogImRpZENyZWF0ZVdvcmtlciIsCiAgICAg
ICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAidGltZSIsICJ0eXBlIjogIm51bWJlciIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImlkIiwgInR5cGUiOiAiaW50ZWdlciIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmciIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiaXNTaGFyZWQiLCAidHlwZSI6ICJib29sZWFuIiB9CiAgICAgICAgICAgICAgICAgXQog
ICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFtZSI6ICJs
b2FkRXZlbnRGaXJlZCIsCisgICAgICAgICAgICAgICAgIm5hbWUiOiAiZGlkRGVzdHJveVdvcmtl
ciIsCiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAidGltZSIsICJ0eXBlIjogIm51bWJlciIgfQorICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImlkIiwgInR5cGUiOiAiaW50ZWdlciIgfQogICAgICAgICAgICAgICAgIF0K
ICAgICAgICAgICAgIH0KICAgICAgICAgXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JBZ2VudC5jcHAKaW5kZXggZjU1MDIxMWY5YzI3YTBiYTRiYjIyZjA5MGVlN2IzY2FlODdl
OWFlOC4uMjJmNDZlNTA1NDFjZWE4MWM0ZjhlODhlNGY3N2M1NTljYjVmOWYxMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwCkBAIC0zMiw5ICszMiwxMiBA
QAogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9h
ZGVyLmgiCisjaW5jbHVkZSAiQ29va2llSmFyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAi
RnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1
ZGUgIkluamVjdGVkU2NyaXB0SG9zdC5oIgogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0TWFuYWdl
ci5oIgpAQCAtNDcsNyArNTAsNiBAQAogI2luY2x1ZGUgIkluc3BlY3RvckRlYnVnZ2VyQWdlbnQu
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUgIkluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oIgotI2luY2x1ZGUgIkluc3BlY3RvclBhZ2VBZ2VudC5oIgogI2luY2x1
ZGUgIkluc3BlY3RvclByb2ZpbGVyQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JSZXNvdXJj
ZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUnVudGltZUFnZW50LmgiCkBAIC02Miw2ICs2
NCw5IEBACiAjaW5jbHVkZSAiU2NyaXB0T2JqZWN0LmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUu
aCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9y
LmgiCisjaW5jbHVkZSAiV2luZG93RmVhdHVyZXMuaCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KIAogI2lmIEVOQUJMRShEQVRBQkFTRSkKICNpbmNsdWRlICJJbnNwZWN0b3JEYXRhYmFz
ZUFnZW50LmgiCkBAIC05NSw3ICsxMDAsNiBAQCBJbnNwZWN0b3JBZ2VudDo6SW5zcGVjdG9yQWdl
bnQoUGFnZSogcGFnZSwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQsIEluamVjdGVkU2NyaQogICAg
ICwgbV9pbnN0cnVtZW50aW5nQWdlbnRzKG5ldyBJbnN0cnVtZW50aW5nQWdlbnRzKCkpCiAgICAg
LCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgLCBt
X3N0YXRlKG5ldyBJbnNwZWN0b3JTdGF0ZShjbGllbnQpKQotICAgICwgbV9wYWdlQWdlbnQoSW5z
cGVjdG9yUGFnZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBwYWdl
LCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpKQogICAgICwgbV9kb21BZ2VudChJbnNwZWN0b3JET01B
Z2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgcGFnZSwgbV9jbGllbnQs
IG1fc3RhdGUuZ2V0KCksIGluamVjdGVkU2NyaXB0TWFuYWdlcikpCiAgICAgLCBtX2Nzc0FnZW50
KG5ldyBJbnNwZWN0b3JDU1NBZ2VudChtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fZG9t
QWdlbnQuZ2V0KCkpKQogI2lmIEVOQUJMRShEQVRBQkFTRSkKQEAgLTE3MCw3ICsxNzQsNyBAQCB2
b2lkIEluc3BlY3RvckFnZW50OjpyZXN0b3JlSW5zcGVjdG9yU3RhdGVGcm9tQ29va2llKGNvbnN0
IFN0cmluZyYgaW5zcGVjdG9yU3RhdAogICAgIG1fc3RhdGUtPmxvYWRGcm9tQ29va2llKGluc3Bl
Y3RvclN0YXRlQ29va2llKTsKIAogICAgIG1fZnJvbnRlbmQtPmluc3BlY3RvcigpLT5mcm9udGVu
ZFJldXNlZCgpOwotICAgIG1fcGFnZUFnZW50LT5yZXN0b3JlKCk7CisgICAgbV9mcm9udGVuZC0+
aW5zcGVjdG9yKCktPmluc3BlY3RlZFVSTENoYW5nZWQoaW5zcGVjdGVkVVJMKCkuc3RyaW5nKCkp
OwogCiAgICAgbV9kb21BZ2VudC0+cmVzdG9yZSgpOwogICAgIG1fcmVzb3VyY2VBZ2VudC0+cmVz
dG9yZSgpOwpAQCAtMTg3LDYgKzE5MSwxOSBAQCB2b2lkIEluc3BlY3RvckFnZW50OjpkaWRDbGVh
cldpbmRvd09iamVjdEluV29ybGQoRnJhbWUqIGZyYW1lLCBET01XcmFwcGVyV29ybGQqCiAgICAg
aWYgKHdvcmxkICE9IG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKQogICAgICAgICByZXR1cm47CiAK
KyAgICBpZiAoZW5hYmxlZCgpKSB7CisgICAgICAgIGlmIChtX2Zyb250ZW5kICYmIGZyYW1lID09
IG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCkpCisgICAgICAgICAgICBtX2luamVjdGVkU2Ny
aXB0TWFuYWdlci0+ZGlzY2FyZEluamVjdGVkU2NyaXB0cygpOworCisgICAgICAgIGlmIChtX3Nj
cmlwdHNUb0V2YWx1YXRlT25Mb2FkLnNpemUoKSkgeworICAgICAgICAgICAgU2NyaXB0U3RhdGUq
IHNjcmlwdFN0YXRlID0gbWFpbldvcmxkU2NyaXB0U3RhdGUoZnJhbWUpOworICAgICAgICAgICAg
Zm9yIChWZWN0b3I8U3RyaW5nPjo6aXRlcmF0b3IgaXQgPSBtX3NjcmlwdHNUb0V2YWx1YXRlT25M
b2FkLmJlZ2luKCk7CisgICAgICAgICAgICAgICAgICBpdCAhPSBtX3NjcmlwdHNUb0V2YWx1YXRl
T25Mb2FkLmVuZCgpOyArK2l0KSB7CisgICAgICAgICAgICAgICAgbV9pbmplY3RlZFNjcmlwdE1h
bmFnZXItPmluamVjdFNjcmlwdCgqaXQsIHNjcmlwdFN0YXRlKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgIH0KKwogICAgIGlmICghbV9pbnNwZWN0b3JFeHRlbnNpb25BUEkuaXNFbXB0
eSgpKQogICAgICAgICBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0U2NyaXB0KG1faW5z
cGVjdG9yRXh0ZW5zaW9uQVBJLCBtYWluV29ybGRTY3JpcHRTdGF0ZShmcmFtZSkpOwogfQpAQCAt
MjAyLDcgKzIxOSw2IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3Rv
ckZyb250ZW5kKiBpbnNwZWN0b3JGcm9udGVuZCkKICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQ
TElDQVRJT05TKQogICAgIG1fYXBwbGljYXRpb25DYWNoZUFnZW50LT5zZXRGcm9udGVuZChtX2Zy
b250ZW5kKTsKICNlbmRpZgotICAgIG1fcGFnZUFnZW50LT5zZXRGcm9udGVuZChtX2Zyb250ZW5k
KTsKICAgICBtX2RvbUFnZW50LT5zZXRGcm9udGVuZChtX2Zyb250ZW5kKTsKICAgICBtX2NvbnNv
bGVBZ2VudC0+c2V0RnJvbnRlbmQobV9mcm9udGVuZCk7CiAgICAgbV90aW1lbGluZUFnZW50LT5z
ZXRGcm9udGVuZChtX2Zyb250ZW5kKTsKQEAgLTIxNyw2ICsyMzMsOCBAQCB2b2lkIEluc3BlY3Rv
ckFnZW50OjpzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCogaW5zcGVjdG9yRnJvbnRlbmQp
CiAjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQogICAgIG1fZG9tU3RvcmFnZUFnZW50LT5zZXRGcm9u
dGVuZChtX2Zyb250ZW5kKTsKICNlbmRpZgorICAgIC8vIEluaXRpYWxpemUgV2ViIEluc3BlY3Rv
ciB0aXRsZS4KKyAgICBtX2Zyb250ZW5kLT5pbnNwZWN0b3IoKS0+aW5zcGVjdGVkVVJMQ2hhbmdl
ZChpbnNwZWN0ZWRVUkwoKS5zdHJpbmcoKSk7CiAKICAgICBpZiAoIW1fc2hvd1BhbmVsQWZ0ZXJW
aXNpYmxlLmlzRW1wdHkoKSkgewogICAgICAgICBtX2Zyb250ZW5kLT5pbnNwZWN0b3IoKS0+c2hv
d1BhbmVsKG1fc2hvd1BhbmVsQWZ0ZXJWaXNpYmxlKTsKQEAgLTI2Nyw5ICsyODUsOSBAQCB2b2lk
IEluc3BlY3RvckFnZW50OjpkaXNjb25uZWN0RnJvbnRlbmQoKQogI2lmIEVOQUJMRShET01fU1RP
UkFHRSkKICAgICBtX2RvbVN0b3JhZ2VBZ2VudC0+Y2xlYXJGcm9udGVuZCgpOwogI2VuZGlmCi0g
ICAgbV9wYWdlQWdlbnQtPmNsZWFyRnJvbnRlbmQoKTsKIAogICAgIHJlbGVhc2VGcm9udGVuZExp
ZmV0aW1lQWdlbnRzKCk7CisgICAgbV91c2VyQWdlbnRPdmVycmlkZSA9ICIiOwogfQogCiB2b2lk
IEluc3BlY3RvckFnZW50OjpjcmVhdGVGcm9udGVuZExpZmV0aW1lQWdlbnRzKCkKQEAgLTI4NCw5
ICszMDIsMTAgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6cmVsZWFzZUZyb250ZW5kTGlmZXRpbWVB
Z2VudHMoKQogCiB2b2lkIEluc3BlY3RvckFnZW50OjpkaWRDb21taXRMb2FkKERvY3VtZW50TG9h
ZGVyKiBsb2FkZXIpCiB7Ci0gICAgaWYgKG1fZnJvbnRlbmQpCisgICAgaWYgKG1fZnJvbnRlbmQp
IHsKKyAgICAgICAgbV9mcm9udGVuZC0+aW5zcGVjdG9yKCktPmluc3BlY3RlZFVSTENoYW5nZWQo
bG9hZGVyLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgICAgIG1fZnJvbnRlbmQtPmluc3BlY3Rvcigp
LT5yZXNldCgpOwotCisgICAgfQogICAgIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5kaXNjYXJk
SW5qZWN0ZWRTY3JpcHRzKCk7CiAjaWYgRU5BQkxFKFdPUktFUlMpCiAgICAgbV93b3JrZXJzLmNs
ZWFyKCk7CkBAIC0yOTUsNyArMzE0LDMzIEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OmRpZENvbW1p
dExvYWQoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKIAogdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZG9t
Q29udGVudExvYWRlZEV2ZW50RmlyZWQoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgY29uc3QgS1VS
TCYgdXJsKQogeworICAgIGlmICghZW5hYmxlZCgpIHx8ICFpc01haW5SZXNvdXJjZUxvYWRlcihs
b2FkZXIsIHVybCkpCisgICAgICAgIHJldHVybjsKKwogICAgIG1faW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLT5pbmplY3RlZFNjcmlwdEhvc3QoKS0+Y2xlYXJJbnNwZWN0ZWROb2RlcygpOworICAgIGlm
IChJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMtPmlu
c3BlY3RvckRPTUFnZW50KCkpCisgICAgICAgIGRvbUFnZW50LT5tYWluRnJhbWVET01Db250ZW50
TG9hZGVkKCk7CisgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQg
PSBtX2luc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKKyAgICAg
ICAgdGltZWxpbmVBZ2VudC0+ZGlkTWFya0RPTUNvbnRlbnRFdmVudCgpOworICAgIGlmIChtX2Zy
b250ZW5kKQorICAgICAgICBtX2Zyb250ZW5kLT5pbnNwZWN0b3IoKS0+ZG9tQ29udGVudEV2ZW50
RmlyZWQoY3VycmVudFRpbWUoKSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQWdlbnQ6OmxvYWRFdmVu
dEZpcmVkKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIGNvbnN0IEtVUkwmIHVybCkKK3sKKyAgICBp
ZiAoIWVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKEluc3BlY3RvckRPTUFn
ZW50KiBkb21BZ2VudCA9IG1faW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yRE9NQWdlbnQo
KSkKKyAgICAgICAgZG9tQWdlbnQtPmxvYWRFdmVudEZpcmVkKGxvYWRlci0+ZnJhbWUoKS0+ZG9j
dW1lbnQoKSk7CisKKyAgICBpZiAoIWlzTWFpblJlc291cmNlTG9hZGVyKGxvYWRlciwgdXJsKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVs
aW5lQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQo
KSkKKyAgICAgICAgdGltZWxpbmVBZ2VudC0+ZGlkTWFya0xvYWRFdmVudCgpOworICAgIGlmICht
X2Zyb250ZW5kKQorICAgICAgICBtX2Zyb250ZW5kLT5pbnNwZWN0b3IoKS0+bG9hZEV2ZW50Rmly
ZWQoY3VycmVudFRpbWUoKSk7CiB9CiAKIGJvb2wgSW5zcGVjdG9yQWdlbnQ6OmlzTWFpblJlc291
cmNlTG9hZGVyKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIGNvbnN0IEtVUkwmIHJlcXVlc3RVcmwp
CkBAIC0zMDMsNiArMzQ4LDE3IEBAIGJvb2wgSW5zcGVjdG9yQWdlbnQ6OmlzTWFpblJlc291cmNl
TG9hZGVyKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIGNvbnN0IEtVUkwmIHJlCiAgICAgcmV0dXJu
IGxvYWRlci0+ZnJhbWUoKSA9PSBtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpICYmIHJlcXVl
c3RVcmwgPT0gbG9hZGVyLT5yZXF1ZXN0VVJMKCk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQWdlbnQ6
OnNldFVzZXJBZ2VudE92ZXJyaWRlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiB1c2VyQWdl
bnQpCit7CisgICAgbV91c2VyQWdlbnRPdmVycmlkZSA9IHVzZXJBZ2VudDsKK30KKwordm9pZCBJ
bnNwZWN0b3JBZ2VudDo6YXBwbHlVc2VyQWdlbnRPdmVycmlkZShTdHJpbmcqIHVzZXJBZ2VudCkg
Y29uc3QKK3sKKyAgICBpZiAoIW1fdXNlckFnZW50T3ZlcnJpZGUuaXNFbXB0eSgpKQorICAgICAg
ICAqdXNlckFnZW50ID0gbV91c2VyQWdlbnRPdmVycmlkZTsKK30KKwogI2lmIEVOQUJMRShXT1JL
RVJTKQogY2xhc3MgUG9zdFdvcmtlck5vdGlmaWNhdGlvblRvRnJvbnRlbmRUYXNrIDogcHVibGlj
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgewogcHVibGljOgpAQCAtMzcyLDYgKzQyOCw5
MCBAQCB2b2lkIEluc3BlY3RvckFnZW50OjpkaWREZXN0cm95V29ya2VyKGludHB0cl90IGlkKQog
fQogI2VuZGlmIC8vIEVOQUJMRShXT1JLRVJTKQogCit2b2lkIEluc3BlY3RvckFnZW50OjpnZXRD
b29raWVzKEVycm9yU3RyaW5nKiwgUmVmUHRyPEluc3BlY3RvckFycmF5PiogY29va2llcywgV1RG
OjpTdHJpbmcqIGNvb2tpZXNTdHJpbmcpCit7CisgICAgLy8gSWYgd2UgY2FuIGdldCByYXcgY29v
a2llcy4KKyAgICBMaXN0SGFzaFNldDxDb29raWU+IHJhd0Nvb2tpZXNMaXN0OworCisgICAgLy8g
SWYgd2UgY2FuJ3QgZ2V0IHJhdyBjb29raWVzIC0gZmFsbCBiYWNrIHRvIFN0cmluZyByZXByZXNl
bnRhdGlvbgorICAgIFN0cmluZyBzdHJpbmdDb29raWVzTGlzdDsKKworICAgIC8vIFJldHVybiB2
YWx1ZSB0byBnZXRSYXdDb29raWVzIHNob3VsZCBiZSB0aGUgc2FtZSBmb3IgZXZlcnkgY2FsbCBi
ZWNhdXNlCisgICAgLy8gdGhlIHJldHVybiB2YWx1ZSBpcyBwbGF0Zm9ybS9uZXR3b3JrIGJhY2tl
bmQgc3BlY2lmaWMsIGFuZCB0aGUgY2FsbCB3aWxsCisgICAgLy8gYWx3YXlzIHJldHVybiB0aGUg
c2FtZSB0cnVlL2ZhbHNlIHZhbHVlLgorICAgIGJvb2wgcmF3Q29va2llc0ltcGxlbWVudGVkID0g
ZmFsc2U7CisKKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1faW5zcGVjdGVkUGFnZS0+bWFpbkZy
YW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dChtX2luc3Bl
Y3RlZFBhZ2UtPm1haW5GcmFtZSgpKSkgeworICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBm
cmFtZS0+ZG9jdW1lbnQoKTsKKyAgICAgICAgY29uc3QgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkRv
Y3VtZW50UmVzb3VyY2VNYXAmIGFsbFJlc291cmNlcyA9IGRvY3VtZW50LT5jYWNoZWRSZXNvdXJj
ZUxvYWRlcigpLT5hbGxDYWNoZWRSZXNvdXJjZXMoKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OkRvY3VtZW50UmVzb3VyY2VNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGFsbFJlc291
cmNlcy5lbmQoKTsKKyAgICAgICAgZm9yIChDYWNoZWRSZXNvdXJjZUxvYWRlcjo6RG9jdW1lbnRS
ZXNvdXJjZU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBhbGxSZXNvdXJjZXMuYmVnaW4oKTsgaXQg
IT0gZW5kOyArK2l0KSB7CisgICAgICAgICAgICBWZWN0b3I8Q29va2llPiBkb2NDb29raWVzTGlz
dDsKKyAgICAgICAgICAgIHJhd0Nvb2tpZXNJbXBsZW1lbnRlZCA9IGdldFJhd0Nvb2tpZXMoZG9j
dW1lbnQsIEtVUkwoUGFyc2VkVVJMU3RyaW5nLCBpdC0+c2Vjb25kLT51cmwoKSksIGRvY0Nvb2tp
ZXNMaXN0KTsKKworICAgICAgICAgICAgaWYgKCFyYXdDb29raWVzSW1wbGVtZW50ZWQpIHsKKyAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogV2UgbmVlZCBkdXBsaWNhdGlvbiBjaGVja2luZyBmb3Ig
dGhlIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBjb29raWVzLgorICAgICAgICAgICAgICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgICAgICAgICAgICAgIHN0cmluZ0Nvb2tpZXNMaXN0ICs9
IGRvY3VtZW50LT5jb29raWUoZWMpOworICAgICAgICAgICAgICAgIC8vIEV4Y2VwdGlvbnMgYXJl
IHRocm93biBieSBjb29raWUoKSBpbiBzYW5kYm94ZWQgZnJhbWVzLiBUaGF0IHdvbid0IGhhcHBl
biBoZXJlCisgICAgICAgICAgICAgICAgLy8gYmVjYXVzZSAiZG9jdW1lbnQiIGlzIHRoZSBkb2N1
bWVudCBvZiB0aGUgbWFpbiBmcmFtZSBvZiB0aGUgcGFnZS4KKyAgICAgICAgICAgICAgICBBU1NF
UlQoIWVjKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IGNvb2tp
ZXNTaXplID0gZG9jQ29va2llc0xpc3Quc2l6ZSgpOworICAgICAgICAgICAgICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgY29va2llc1NpemU7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBpZiAo
IXJhd0Nvb2tpZXNMaXN0LmNvbnRhaW5zKGRvY0Nvb2tpZXNMaXN0W2ldKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJhd0Nvb2tpZXNMaXN0LmFkZChkb2NDb29raWVzTGlzdFtpXSk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYg
KHJhd0Nvb2tpZXNJbXBsZW1lbnRlZCkKKyAgICAgICAgKmNvb2tpZXMgPSBidWlsZEFycmF5Rm9y
Q29va2llcyhyYXdDb29raWVzTGlzdCk7CisgICAgZWxzZQorICAgICAgICAqY29va2llc1N0cmlu
ZyA9IHN0cmluZ0Nvb2tpZXNMaXN0OworfQorCitQYXNzUmVmUHRyPEluc3BlY3RvckFycmF5PiBJ
bnNwZWN0b3JBZ2VudDo6YnVpbGRBcnJheUZvckNvb2tpZXMoTGlzdEhhc2hTZXQ8Q29va2llPiYg
Y29va2llc0xpc3QpCit7CisgICAgUmVmUHRyPEluc3BlY3RvckFycmF5PiBjb29raWVzID0gSW5z
cGVjdG9yQXJyYXk6OmNyZWF0ZSgpOworCisgICAgTGlzdEhhc2hTZXQ8Q29va2llPjo6aXRlcmF0
b3IgZW5kID0gY29va2llc0xpc3QuZW5kKCk7CisgICAgTGlzdEhhc2hTZXQ8Q29va2llPjo6aXRl
cmF0b3IgaXQgPSBjb29raWVzTGlzdC5iZWdpbigpOworICAgIGZvciAoaW50IGkgPSAwOyBpdCAh
PSBlbmQ7ICsraXQsIGkrKykKKyAgICAgICAgY29va2llcy0+cHVzaE9iamVjdChidWlsZE9iamVj
dEZvckNvb2tpZSgqaXQpKTsKKworICAgIHJldHVybiBjb29raWVzOworfQorCitQYXNzUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gSW5zcGVjdG9yQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yQ29va2llKGNv
bnN0IENvb2tpZSYgY29va2llKQoreworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHZhbHVl
ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICB2YWx1ZS0+c2V0U3RyaW5nKCJuYW1l
IiwgY29va2llLm5hbWUpOworICAgIHZhbHVlLT5zZXRTdHJpbmcoInZhbHVlIiwgY29va2llLnZh
bHVlKTsKKyAgICB2YWx1ZS0+c2V0U3RyaW5nKCJkb21haW4iLCBjb29raWUuZG9tYWluKTsKKyAg
ICB2YWx1ZS0+c2V0U3RyaW5nKCJwYXRoIiwgY29va2llLnBhdGgpOworICAgIHZhbHVlLT5zZXRO
dW1iZXIoImV4cGlyZXMiLCBjb29raWUuZXhwaXJlcyk7CisgICAgdmFsdWUtPnNldE51bWJlcigi
c2l6ZSIsIChjb29raWUubmFtZS5sZW5ndGgoKSArIGNvb2tpZS52YWx1ZS5sZW5ndGgoKSkpOwor
ICAgIHZhbHVlLT5zZXRCb29sZWFuKCJodHRwT25seSIsIGNvb2tpZS5odHRwT25seSk7CisgICAg
dmFsdWUtPnNldEJvb2xlYW4oInNlY3VyZSIsIGNvb2tpZS5zZWN1cmUpOworICAgIHZhbHVlLT5z
ZXRCb29sZWFuKCJzZXNzaW9uIiwgY29va2llLnNlc3Npb24pOworICAgIHJldHVybiB2YWx1ZTsK
K30KKwordm9pZCBJbnNwZWN0b3JBZ2VudDo6ZGVsZXRlQ29va2llKEVycm9yU3RyaW5nKiwgY29u
c3QgU3RyaW5nJiBjb29raWVOYW1lLCBjb25zdCBTdHJpbmcmIGRvbWFpbikKK3sKKyAgICBmb3Ig
KEZyYW1lKiBmcmFtZSA9IG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFt
ZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dChtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFt
ZSgpKSkgeworICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsK
KyAgICAgICAgaWYgKGRvY3VtZW50LT51cmwoKS5ob3N0KCkgIT0gZG9tYWluKQorICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIGNvbnN0IENhY2hlZFJlc291cmNlTG9hZGVyOjpEb2N1bWVu
dFJlc291cmNlTWFwJiBhbGxSZXNvdXJjZXMgPSBkb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoKS0+YWxsQ2FjaGVkUmVzb3VyY2VzKCk7CisgICAgICAgIENhY2hlZFJlc291cmNlTG9hZGVy
OjpEb2N1bWVudFJlc291cmNlTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBhbGxSZXNvdXJjZXMu
ZW5kKCk7CisgICAgICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkRvY3VtZW50UmVzb3Vy
Y2VNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gYWxsUmVzb3VyY2VzLmJlZ2luKCk7IGl0ICE9IGVu
ZDsgKytpdCkKKyAgICAgICAgICAgIFdlYkNvcmU6OmRlbGV0ZUNvb2tpZShkb2N1bWVudCwgS1VS
TChQYXJzZWRVUkxTdHJpbmcsIGl0LT5zZWNvbmQtPnVybCgpKSwgY29va2llTmFtZSk7CisgICAg
fQorfQorCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiB2b2lkIEluc3BlY3RvckFn
ZW50OjpzaG93UHJvZmlsZXNQYW5lbCgpCiB7CkBAIC0zOTcsNiArNTM3LDM0IEBAIHZvaWQgSW5z
cGVjdG9yQWdlbnQ6OmRpZEV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoRXJyb3JTdHJpbmcqLCBs
b25nIGNhbGxJZCwgY29uCiAgICAgZnVuY3Rpb24uY2FsbCgpOwogfQogCit2b2lkIEluc3BlY3Rv
ckFnZW50OjpvcGVuSW5JbnNwZWN0ZWRXaW5kb3coRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcm
IHVybCkKK3sKKyAgICBGcmFtZSogbWFpbkZyYW1lID0gbV9pbnNwZWN0ZWRQYWdlLT5tYWluRnJh
bWUoKTsKKworICAgIEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChtYWluRnJhbWUtPmRvY3VtZW50
KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdCgpLCAiX2JsYW5rIik7CisKKyAg
ICBib29sIGNyZWF0ZWQ7CisgICAgV2luZG93RmVhdHVyZXMgd2luZG93RmVhdHVyZXM7CisgICAg
RnJhbWUqIG5ld0ZyYW1lID0gV2ViQ29yZTo6Y3JlYXRlV2luZG93KG1haW5GcmFtZSwgbWFpbkZy
YW1lLCByZXF1ZXN0LCB3aW5kb3dGZWF0dXJlcywgY3JlYXRlZCk7CisgICAgaWYgKCFuZXdGcmFt
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgaW5kaWNhdG9y
KERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUpOworICAgIG5ld0ZyYW1lLT5sb2FkZXIo
KS0+c2V0T3BlbmVyKG1haW5GcmFtZSk7CisgICAgbmV3RnJhbWUtPnBhZ2UoKS0+c2V0T3BlbmVk
QnlET00oKTsKKyAgICBuZXdGcmFtZS0+bG9hZGVyKCktPmNoYW5nZUxvY2F0aW9uKG1haW5GcmFt
ZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgbmV3RnJhbWUtPmxvYWRlcigpLT5jb21w
bGV0ZVVSTCh1cmwpLCAiIiwgZmFsc2UsIGZhbHNlKTsKK30KKwordm9pZCBJbnNwZWN0b3JBZ2Vu
dDo6YWRkU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYg
c291cmNlKQoreworICAgIG1fc2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQuYXBwZW5kKHNvdXJjZSk7
Cit9CisKK3ZvaWQgSW5zcGVjdG9yQWdlbnQ6OnJlbW92ZUFsbFNjcmlwdHNUb0V2YWx1YXRlT25M
b2FkKEVycm9yU3RyaW5nKikKK3sKKyAgICBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkLmNsZWFy
KCk7Cit9CisKIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OnNldEluc3BlY3RvckV4dGVuc2lvbkFQSShj
b25zdCBTdHJpbmcmIHNvdXJjZSkKIHsKICAgICBtX2luc3BlY3RvckV4dGVuc2lvbkFQSSA9IHNv
dXJjZTsKQEAgLTQxNCw2ICs1ODIsMTEgQEAgS1VSTCBJbnNwZWN0b3JBZ2VudDo6aW5zcGVjdGVk
VVJMV2l0aG91dEZyYWdtZW50KCkgY29uc3QKICAgICByZXR1cm4gdXJsOwogfQogCit2b2lkIElu
c3BlY3RvckFnZW50OjpyZWxvYWRQYWdlKEVycm9yU3RyaW5nKiwgYm9vbCBpZ25vcmVDYWNoZSkK
K3sKKyAgICBtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+cmVsb2FkKGln
bm9yZUNhY2hlKTsKK30KKwogYm9vbCBJbnNwZWN0b3JBZ2VudDo6ZW5hYmxlZCgpIGNvbnN0CiB7
CiAgICAgaWYgKCFtX2luc3BlY3RlZFBhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JBZ2VudC5oCmluZGV4IGM1MmQxNTllNjk3MWJhMmQwOWY0ZDRiYmNjNTRlMjU5NGIwZjU3
MTEuLjlhNTI1YTQ4ZjU2NWYyOTMxMmU4MjdkNmUxMGIyYzg3M2JiODY0ZTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5oCkBAIC0zMSwxNSArMzEsMTkgQEAKIAog
I2luY2x1ZGUgIkNoYXJhY3RlckRhdGEuaCIKICNpbmNsdWRlICJDb25zb2xlLmgiCisjaW5jbHVk
ZSAiQ29va2llLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgor
I2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2gu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBDYWNoZWRSZXNvdXJjZTsKIGNsYXNz
IENoYXJhY3RlckRhdGE7CiBjbGFzcyBEYXRhYmFzZTsKIGNsYXNzIERPTVdyYXBwZXJXb3JsZDsK
QEAgLTYyLDcgKzY2LDYgQEAgY2xhc3MgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDsKIGNsYXNzIElu
c3BlY3RvckZyb250ZW5kOwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ7CiBjbGFzcyBJ
bnNwZWN0b3JPYmplY3Q7Ci1jbGFzcyBJbnNwZWN0b3JQYWdlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0
b3JQcm9maWxlckFnZW50OwogY2xhc3MgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDsKIGNsYXNzIElu
c3BlY3RvclJ1bnRpbWVBZ2VudDsKQEAgLTExOCw3ICsxMjEsNyBAQCBwdWJsaWM6CiAKICAgICBJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzKCkgY29uc3QgeyByZXR1cm4g
bV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpOyB9CiAKLSAgICBJbnNwZWN0b3JQYWdlQWdlbnQq
IHBhZ2VBZ2VudCgpIHsgcmV0dXJuIG1fcGFnZUFnZW50LmdldCgpOyB9CisgICAgSW5zcGVjdG9y
QWdlbnQqIGluc3BlY3RvckFnZW50KCkgeyByZXR1cm4gdGhpczsgfQogICAgIEluc3BlY3RvckNv
bnNvbGVBZ2VudCogY29uc29sZUFnZW50KCkgeyByZXR1cm4gbV9jb25zb2xlQWdlbnQuZ2V0KCk7
IH0KICAgICBJbnNwZWN0b3JDU1NBZ2VudCogY3NzQWdlbnQoKSB7IHJldHVybiBtX2Nzc0FnZW50
LmdldCgpOyB9CiAgICAgSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50KCkgeyByZXR1cm4gbV9k
b21BZ2VudC5nZXQoKTsgfQpAQCAtMTQ0LDcgKzE0NywxMSBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IGRpZENvbW1pdExvYWQoRG9jdW1lbnRMb2FkZXIqKTsKIAorICAgIHZvaWQgZ2V0Q29va2llcyhF
cnJvclN0cmluZyosIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIGNvb2tpZXMsIFdURjo6U3RyaW5n
KiBjb29raWVzU3RyaW5nKTsKKyAgICB2b2lkIGRlbGV0ZUNvb2tpZShFcnJvclN0cmluZyosIGNv
bnN0IFN0cmluZyYgY29va2llTmFtZSwgY29uc3QgU3RyaW5nJiBkb21haW4pOworCiAgICAgdm9p
ZCBkb21Db250ZW50TG9hZGVkRXZlbnRGaXJlZChEb2N1bWVudExvYWRlciosIGNvbnN0IEtVUkwm
KTsKKyAgICB2b2lkIGxvYWRFdmVudEZpcmVkKERvY3VtZW50TG9hZGVyKiwgY29uc3QgS1VSTCYp
OwogCiAjaWYgRU5BQkxFKFdPUktFUlMpCiAgICAgZW51bSBXb3JrZXJBY3Rpb24geyBXb3JrZXJD
cmVhdGVkLCBXb3JrZXJEZXN0cm95ZWQgfTsKQEAgLTE1Niw2ICsxNjMsNyBAQCBwdWJsaWM6CiAK
ICAgICBib29sIGhhc0Zyb250ZW5kKCkgY29uc3QgeyByZXR1cm4gbV9mcm9udGVuZDsgfQogCisg
ICAgdm9pZCBvcGVuSW5JbnNwZWN0ZWRXaW5kb3coRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcm
IHVybCk7CiAKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICB2b2lkIHNob3dQ
cm9maWxlc1BhbmVsKCk7CkBAIC0xNjQsNiArMTcyLDggQEAgcHVibGljOgogICAgIC8vIEdlbmVy
aWMgY29kZSBjYWxsZWQgZnJvbSBjdXN0b20gaW1wbGVtZW50YXRpb25zLgogICAgIHZvaWQgZXZh
bHVhdGVGb3JUZXN0SW5Gcm9udGVuZChsb25nIHRlc3RDYWxsSWQsIGNvbnN0IFN0cmluZyYgc2Ny
aXB0KTsKIAorICAgIHZvaWQgYWRkU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZChFcnJvclN0cmluZyos
IGNvbnN0IFN0cmluZyYgc291cmNlKTsKKyAgICB2b2lkIHJlbW92ZUFsbFNjcmlwdHNUb0V2YWx1
YXRlT25Mb2FkKEVycm9yU3RyaW5nKik7CiAgICAgdm9pZCBzZXRJbnNwZWN0b3JFeHRlbnNpb25B
UEkoY29uc3QgU3RyaW5nJiBzb3VyY2UpOwogCiAgICAgSW5zcGVjdG9yU3RhdGUqIHN0YXRlKCkg
eyByZXR1cm4gbV9zdGF0ZS5nZXQoKTsgfQpAQCAtMTc0LDYgKzE4NCw5IEBAIHB1YmxpYzoKICAg
ICAvLyBGb2xsb3dpbmcgYXJlIHVzZWQgZnJvbSBJbnNwZWN0b3JCYWNrZW5kIGFuZCBpbnRlcm5h
bGx5LgogICAgIHZvaWQgZGlkRXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChFcnJvclN0cmluZyos
IGxvbmcgY2FsbElkLCBjb25zdCBTdHJpbmcmIGpzb25SZXN1bHQpOwogCisgICAgdm9pZCBzZXRV
c2VyQWdlbnRPdmVycmlkZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KTsK
KyAgICB2b2lkIGFwcGx5VXNlckFnZW50T3ZlcnJpZGUoU3RyaW5nKiB1c2VyQWdlbnQpIGNvbnN0
OworCiBwcml2YXRlOgogICAgIHZvaWQgc2hvd1BhbmVsKGNvbnN0IFN0cmluZyYgcGFuZWwpOwog
ICAgIHZvaWQgdW5iaW5kQWxsUmVzb3VyY2VzKCk7CkBAIC0xODUsNiArMTk4LDkgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHRvZ2dsZVJlY29yZEJ1dHRvbihib29sKTsKICNlbmRpZgogCisgICAgUGFz
c1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yQ29va2llKGNvbnN0IENvb2tp
ZSYpOworICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGJ1aWxkQXJyYXlGb3JDb29raWVz
KExpc3RIYXNoU2V0PENvb2tpZT4mKTsKKwogICAgIGJvb2wgaXNNYWluUmVzb3VyY2VMb2FkZXIo
RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBLVVJMJiByZXF1ZXN0VXJsKTsKICAgICB2b2lkIGlzc3Vl
RXZhbHVhdGVGb3JUZXN0Q29tbWFuZHMoKTsKIApAQCAtMTk0LDcgKzIxMCw2IEBAIHByaXZhdGU6
CiAgICAgT3duUHRyPEluc3RydW1lbnRpbmdBZ2VudHM+IG1faW5zdHJ1bWVudGluZ0FnZW50czsK
ICAgICBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwogICAg
IE93blB0cjxJbnNwZWN0b3JTdGF0ZT4gbV9zdGF0ZTsKLSAgICBPd25QdHI8SW5zcGVjdG9yUGFn
ZUFnZW50PiBtX3BhZ2VBZ2VudDsKICAgICBPd25QdHI8SW5zcGVjdG9yRE9NQWdlbnQ+IG1fZG9t
QWdlbnQ7CiAgICAgT3duUHRyPEluc3BlY3RvckNTU0FnZW50PiBtX2Nzc0FnZW50OwogCkBAIC0y
MTksMTIgKzIzNCwxNCBAQCBwcml2YXRlOgogCiAgICAgVmVjdG9yPHBhaXI8bG9uZywgU3RyaW5n
PiA+IG1fcGVuZGluZ0V2YWx1YXRlVGVzdENvbW1hbmRzOwogICAgIFN0cmluZyBtX3Nob3dQYW5l
bEFmdGVyVmlzaWJsZTsKKyAgICBWZWN0b3I8U3RyaW5nPiBtX3NjcmlwdHNUb0V2YWx1YXRlT25M
b2FkOwogICAgIFN0cmluZyBtX2luc3BlY3RvckV4dGVuc2lvbkFQSTsKICNpZiBFTkFCTEUoSkFW
QVNDUklQVF9ERUJVR0dFUikKICAgICBPd25QdHI8SW5zcGVjdG9yRGVidWdnZXJBZ2VudD4gbV9k
ZWJ1Z2dlckFnZW50OwogICAgIE93blB0cjxJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudD4g
bV9icm93c2VyRGVidWdnZXJBZ2VudDsKICAgICBPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dD4gbV9wcm9maWxlckFnZW50OwogI2VuZGlmCisgICAgU3RyaW5nIG1fdXNlckFnZW50T3ZlcnJp
ZGU7CiAjaWYgRU5BQkxFKFdPUktFUlMpCiAgICAgdHlwZWRlZiBIYXNoTWFwPGludHB0cl90LCBS
ZWZQdHI8SW5zcGVjdG9yV29ya2VyUmVzb3VyY2U+ID4gV29ya2Vyc01hcDsKICAgICBXb3JrZXJz
TWFwIG1fd29ya2VyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcAppbmRleCA2MmIyMmVlOGQwMzcyNjc5NDk0M2Y4ODZjYjJiMzZlY2JkOWVl
NTIzLi5mZTVmMDZhNjUyOTBmZTI4YzE4NGM2N2Q5OTgxZWI1Mjg1MTBkYjFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xMzQs
NyArMTM0LDYgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoKQog
I2VuZGlmCiAgICAgICAgIG1faW5zcGVjdG9yQWdlbnQuZ2V0KCksCiAgICAgICAgIG1faW5zcGVj
dG9yQWdlbnQtPnJlc291cmNlQWdlbnQoKSwKLSAgICAgICAgbV9pbnNwZWN0b3JBZ2VudC0+cGFn
ZUFnZW50KCksCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgICAgIG1faW5z
cGVjdG9yQWdlbnQtPnByb2ZpbGVyQWdlbnQoKSwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCA3ZjYz
N2RkYWQxYTg2ZDUxNDI1NWZhM2I0ZmQ0YjY4Y2M4MmY1N2M2Li4zZTM0NDI0M2Y3ZjE3MzE5ZDU3
MDIwNmI4ZWRlMTVhYTQwYTU2Yjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNDcsNyArNDcsNiBAQAogI2lu
Y2x1ZGUgIkluc3BlY3RvckRPTUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oIgotI2luY2x1ZGUg
Ikluc3BlY3RvclBhZ2VBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclByb2ZpbGVyQWdlbnQu
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yVGltZWxpbmVBZ2VudC5oIgpAQCAtOTMsOCArOTIsNiBAQCBzdGF0aWMgYm9vbCBldmVudEhh
c0xpc3RlbmVycyhjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB3aW5k
b3csCiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDbGVhcldpbmRvd09iamVj
dEluV29ybGRJbXBsKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCwgRnJhbWUqIGZyYW1l
LCBET01XcmFwcGVyV29ybGQqIHdvcmxkKQogewotICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQq
IHBhZ2VBZ2VudCA9IGluc3BlY3RvckFnZW50LT5pbnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3Bl
Y3RvclBhZ2VBZ2VudCgpKQotICAgICAgICBwYWdlQWdlbnQtPmRpZENsZWFyV2luZG93T2JqZWN0
SW5Xb3JsZChmcmFtZSwgd29ybGQpOwogICAgIGluc3BlY3RvckFnZW50LT5kaWRDbGVhcldpbmRv
d09iamVjdEluV29ybGQoZnJhbWUsIHdvcmxkKTsKIH0KIApAQCAtMzkwLDggKzM4Nyw3IEBAIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNhbGN1bGF0ZVN0eWxlSW1wbChjb25z
dCBJbnNwZWN0b3JJbnN0cnVtZW50CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjph
cHBseVVzZXJBZ2VudE92ZXJyaWRlSW1wbChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQs
IFN0cmluZyogdXNlckFnZW50KQogewotICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VB
Z2VudCA9IHJldHJpZXZlUGFnZUFnZW50KGluc3BlY3RvckFnZW50KSkKLSAgICAgICAgcGFnZUFn
ZW50LT5hcHBseVVzZXJBZ2VudE92ZXJyaWRlKHVzZXJBZ2VudCk7CisgICAgaW5zcGVjdG9yQWdl
bnQtPmFwcGx5VXNlckFnZW50T3ZlcnJpZGUodXNlckFnZW50KTsKIH0KIAogdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdEltcGwoSW5zcGVjdG9yQWdlbnQqIGlu
c3BlY3RvckFnZW50LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBs
b2FkZXIsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVkaXJlY3RSZXNwb25zZSkKQEAgLTQ5NSw0MCArNDkxLDEyIEBAIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpzY3JpcHRJbXBvcnRlZEltcGwoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3Rv
ckFnZW50CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkb21Db250ZW50TG9hZGVk
RXZlbnRGaXJlZEltcGwoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50LCBGcmFtZSogZnJh
bWUsIGNvbnN0IEtVUkwmIHVybCkKIHsKLSAgICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2Fk
ZXIgPSBmcmFtZS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCk7Ci0gICAgQVNTRVJUKGRvY3Vt
ZW50TG9hZGVyKTsKLQotICAgIGlmIChmcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKSAhPSBmcmFt
ZSB8fCB1cmwgIT0gZG9jdW1lbnRMb2FkZXItPnJlcXVlc3RVUkwoKSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgaW5zcGVjdG9yQWdlbnQtPmRvbUNvbnRlbnRMb2FkZWRFdmVudEZpcmVkKGRvY3Vt
ZW50TG9hZGVyLCB1cmwpOwotCi0gICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9
IGluc3BlY3RvckFnZW50LT5pbnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvckRPTUFnZW50
KCkpCi0gICAgICAgIGRvbUFnZW50LT5tYWluRnJhbWVET01Db250ZW50TG9hZGVkKCk7Ci0KLSAg
ICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3BlY3RvckFn
ZW50LT5pbnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKLSAg
ICAgICAgdGltZWxpbmVBZ2VudC0+ZGlkTWFya0RPTUNvbnRlbnRFdmVudCgpOwotCi0gICAgaWYg
KEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50ID0gaW5zcGVjdG9yQWdlbnQtPmluc3RydW1l
bnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCi0gICAgICAgIHBhZ2VBZ2VudC0+
ZG9tQ29udGVudEV2ZW50RmlyZWQoKTsKKyAgICBpbnNwZWN0b3JBZ2VudC0+ZG9tQ29udGVudExv
YWRlZEV2ZW50RmlyZWQoZnJhbWUtPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpLCB1cmwpOwog
fQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bG9hZEV2ZW50RmlyZWRJbXBsKElu
c3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCwgRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1
cmwpCiB7Ci0gICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gZnJhbWUtPmxvYWRl
cigpLT5kb2N1bWVudExvYWRlcigpOwotICAgIEFTU0VSVChkb2N1bWVudExvYWRlcik7Ci0KLSAg
ICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5zcGVjdG9yQWdlbnQtPmluc3Ry
dW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yRE9NQWdlbnQoKSkKLSAgICAgICAgZG9tQWdlbnQt
PmxvYWRFdmVudEZpcmVkKGRvY3VtZW50TG9hZGVyLT5mcmFtZSgpLT5kb2N1bWVudCgpKTsKLQot
ICAgIGlmIChmcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKSAhPSBmcmFtZSB8fCB1cmwgIT0gZG9j
dW1lbnRMb2FkZXItPnJlcXVlc3RVUkwoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKElu
c3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnNwZWN0b3JBZ2VudC0+aW5z
dHJ1bWVudGluZ0FnZW50cygpLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCi0gICAgICAgIHRp
bWVsaW5lQWdlbnQtPmRpZE1hcmtMb2FkRXZlbnQoKTsKLQotICAgIGlmIChJbnNwZWN0b3JQYWdl
QWdlbnQqIHBhZ2VBZ2VudCA9IGluc3BlY3RvckFnZW50LT5pbnN0cnVtZW50aW5nQWdlbnRzKCkt
Pmluc3BlY3RvclBhZ2VBZ2VudCgpKQotICAgICAgICBwYWdlQWdlbnQtPmxvYWRFdmVudEZpcmVk
KCk7CisgICAgaW5zcGVjdG9yQWdlbnQtPmxvYWRFdmVudEZpcmVkKGZyYW1lLT5sb2FkZXIoKS0+
ZG9jdW1lbnRMb2FkZXIoKSwgdXJsKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmZyYW1lRGV0YWNoZWRGcm9tUGFyZW50SW1wbChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9y
QWdlbnQsIEZyYW1lKiBmcmFtZSkKQEAgLTU3NiwxMCArNTQ0LDYgQEAgdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZENvbW1pdExvYWRJbXBsKFBhZ2UqIHBhZ2UsIEluc3BlY3RvckFn
ZW50KiBpbnMKICNlbmRpZgogICAgIGlmIChJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBp
bnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JET01BZ2VudCgpKQogICAgICAgICBkb21BZ2Vu
dC0+c2V0RG9jdW1lbnQobWFpbkZyYW1lLT5kb2N1bWVudCgpKTsKLQotICAgIGlmIChJbnNwZWN0
b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBh
Z2VBZ2VudCgpKQotICAgICAgICBwYWdlQWdlbnQtPmluc3BlY3RlZFVSTENoYW5nZWQobG9hZGVy
LT51cmwoKS5zdHJpbmcoKSk7Ci0KICAgICBpbnNwZWN0b3JBZ2VudC0+ZGlkQ29tbWl0TG9hZChs
b2FkZXIpOwogfQogCkBAIC03NzcsMTEgKzc0MSw2IEBAIEluc3BlY3RvclJlc291cmNlQWdlbnQq
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cmV0cmlldmVSZXNvdXJjZUFnZW50KEluc3BlY3Rv
CiAgICAgcmV0dXJuIGluc3BlY3RvckFnZW50LT5pbnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3Bl
Y3RvclJlc291cmNlQWdlbnQoKTsKIH0KIAotSW5zcGVjdG9yUGFnZUFnZW50KiBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OnJldHJpZXZlUGFnZUFnZW50KEluc3BlY3RvckFnZW50KiBpbnNwZWN0
b3JBZ2VudCkKLXsKLSAgICByZXR1cm4gaW5zcGVjdG9yQWdlbnQtPmluc3RydW1lbnRpbmdBZ2Vu
dHMoKS0+aW5zcGVjdG9yUGFnZUFnZW50KCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vICFFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IDc3YzQ2NGU5MTk5ZjQy
YmU0MzU3ZGFiN2ZhNmVkMDU3N2E1ZjM2ODAuLjVjZTRhMGY4MzhjZDQ2ZmZmM2I4ZjA5MWUyNTBj
YzY1OGNkMGI4NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTQ4LDcgKzQ4LDYgQEAgY2xhc3MgRXZlbnRDb250ZXh0
OwogY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBIaXRUZXN0UmVzdWx0OwogY2xhc3MgSW5z
cGVjdG9yQWdlbnQ7Ci1jbGFzcyBJbnNwZWN0b3JQYWdlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50OwogY2xhc3MgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDsKIGNsYXNzIEtVUkw7
CkBAIC0zMDAsNyArMjk5LDYgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudCogcmV0cmlldmVUaW1lbGluZUFnZW50KEluc3BlY3RvckFnZW50Kik7CiAgICAgc3Rh
dGljIEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHJldHJpZXZlVGltZWxpbmVBZ2VudChjb25zdCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKICAgICBzdGF0aWMgSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudCogcmV0cmlldmVSZXNvdXJjZUFnZW50KEluc3BlY3RvckFnZW50Kik7Ci0gICAg
c3RhdGljIEluc3BlY3RvclBhZ2VBZ2VudCogcmV0cmlldmVQYWdlQWdlbnQoSW5zcGVjdG9yQWdl
bnQqKTsKIAogICAgIHN0YXRpYyBIYXNoTWFwPFBhZ2UqLCBJbnNwZWN0b3JBZ2VudCo+JiBpbnNw
ZWN0b3JBZ2VudHMoKTsKICAgICBzdGF0aWMgaW50IHNfZnJvbnRlbmRDb3VudGVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYWYwNTNjOTFmOGViODNjOWUyYmYwN2YxOTMzOTZiZjQyYjBl
OWQ3ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDI1OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiSW5zcGVj
dG9yUGFnZUFnZW50LmgiCi0KLSNpZiBFTkFCTEUoSU5TUEVDVE9SKSAmJiBFTkFCTEUoSkFWQVND
UklQVF9ERUJVR0dFUikKLQotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0jaW5j
bHVkZSAiQ29va2llLmgiCi0jaW5jbHVkZSAiQ29va2llSmFyLmgiCi0jaW5jbHVkZSAiRG9jdW1l
bnRMb2FkZXIuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVl
c3QuaCIKLSNpbmNsdWRlICJJbmplY3RlZFNjcmlwdE1hbmFnZXIuaCIKLSNpbmNsdWRlICJJbnNw
ZWN0b3JGcm9udGVuZC5oIgotI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgotI2luY2x1ZGUg
Ikluc3RydW1lbnRpbmdBZ2VudHMuaCIKLSNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiU2Ny
aXB0T2JqZWN0LmgiCi0jaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKLSNpbmNsdWRl
ICJXaW5kb3dGZWF0dXJlcy5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgotI2luY2x1
ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVBhc3NPd25Q
dHI8SW5zcGVjdG9yUGFnZUFnZW50PiBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNyZWF0ZShJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBQYWdlKiBpbnNwZWN0ZWRQYWdlLCBJ
bmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKLXsKLSAgICByZXR1
cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvclBhZ2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBp
bnNwZWN0ZWRQYWdlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpKTsKLX0KLQotSW5zcGVjdG9yUGFn
ZUFnZW50OjpJbnNwZWN0b3JQYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVu
dGluZ0FnZW50cywgUGFnZSogaW5zcGVjdGVkUGFnZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBp
bmplY3RlZFNjcmlwdE1hbmFnZXIpCi0gICAgOiBtX2luc3RydW1lbnRpbmdBZ2VudHMoaW5zdHJ1
bWVudGluZ0FnZW50cykKLSAgICAsIG1faW5zcGVjdGVkUGFnZShpbnNwZWN0ZWRQYWdlKQotICAg
ICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQotICAgICwg
bV9mcm9udGVuZCgwKQotewotfQotCi12b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6c2V0RnJvbnRl
bmQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQotewotICAgIG1fZnJvbnRlbmQgPSBmcm9u
dGVuZDsKLSAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3RvclBhZ2VBZ2VudCh0
aGlzKTsKLQotICAgIC8vIEluaXRpYWxpemUgV2ViIEluc3BlY3RvciB0aXRsZS4KLSAgICBtX2Zy
b250ZW5kLT5wYWdlKCktPmluc3BlY3RlZFVSTENoYW5nZWQobV9pbnNwZWN0ZWRQYWdlLT5tYWlu
RnJhbWUoKS0+ZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5nKCkpOwotCi19Ci0KLXZvaWQgSW5zcGVj
dG9yUGFnZUFnZW50OjpjbGVhckZyb250ZW5kKCkKLXsKLSAgICBtX2luc3RydW1lbnRpbmdBZ2Vu
dHMtPnNldEluc3BlY3RvclBhZ2VBZ2VudCgwKTsKLSAgICBtX3VzZXJBZ2VudE92ZXJyaWRlID0g
IiI7Ci0gICAgbV9mcm9udGVuZCA9IDA7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yUGFnZUFnZW50Ojph
ZGRTY3JpcHRUb0V2YWx1YXRlT25Mb2FkKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2UpCi17Ci0gICAgbV9zY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZC5hcHBlbmQoc291cmNlKTsKLX0K
LQotdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OnJlbW92ZUFsbFNjcmlwdHNUb0V2YWx1YXRlT25M
b2FkKEVycm9yU3RyaW5nKikKLXsKLSAgICBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkLmNsZWFy
KCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpyZWxvYWRQYWdlKEVycm9yU3RyaW5n
KiwgYm9vbCBpZ25vcmVDYWNoZSkKLXsKLSAgICBtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgp
LT5sb2FkZXIoKS0+cmVsb2FkKGlnbm9yZUNhY2hlKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JQYWdl
QWdlbnQ6Om9wZW5Jbkluc3BlY3RlZFdpbmRvdyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYg
dXJsKQotewotICAgIEZyYW1lKiBtYWluRnJhbWUgPSBtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFt
ZSgpOwotCi0gICAgRnJhbWVMb2FkUmVxdWVzdCByZXF1ZXN0KG1haW5GcmFtZS0+ZG9jdW1lbnQo
KS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KCksICJfYmxhbmsiKTsKLQotICAg
IGJvb2wgY3JlYXRlZDsKLSAgICBXaW5kb3dGZWF0dXJlcyB3aW5kb3dGZWF0dXJlczsKLSAgICBG
cmFtZSogbmV3RnJhbWUgPSBXZWJDb3JlOjpjcmVhdGVXaW5kb3cobWFpbkZyYW1lLCBtYWluRnJh
bWUsIHJlcXVlc3QsIHdpbmRvd0ZlYXR1cmVzLCBjcmVhdGVkKTsKLSAgICBpZiAoIW5ld0ZyYW1l
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBVc2VyR2VzdHVyZUluZGljYXRvciBpbmRpY2F0b3Io
RGVmaW5pdGVseVByb2Nlc3NpbmdVc2VyR2VzdHVyZSk7Ci0gICAgbmV3RnJhbWUtPmxvYWRlcigp
LT5zZXRPcGVuZXIobWFpbkZyYW1lKTsKLSAgICBuZXdGcmFtZS0+cGFnZSgpLT5zZXRPcGVuZWRC
eURPTSgpOwotICAgIG5ld0ZyYW1lLT5sb2FkZXIoKS0+Y2hhbmdlTG9jYXRpb24obWFpbkZyYW1l
LT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBuZXdGcmFtZS0+bG9hZGVyKCktPmNvbXBs
ZXRlVVJMKHVybCksICIiLCBmYWxzZSwgZmFsc2UpOwotfQotCi12b2lkIEluc3BlY3RvclBhZ2VB
Z2VudDo6c2V0VXNlckFnZW50T3ZlcnJpZGUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHVz
ZXJBZ2VudCkKLXsKLSAgICBtX3VzZXJBZ2VudE92ZXJyaWRlID0gdXNlckFnZW50OwotfQotCi12
b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6YXBwbHlVc2VyQWdlbnRPdmVycmlkZShTdHJpbmcqIHVz
ZXJBZ2VudCkgY29uc3QKLXsKLSAgICBpZiAoIW1fdXNlckFnZW50T3ZlcnJpZGUuaXNFbXB0eSgp
KQotICAgICAgICAqdXNlckFnZW50ID0gbV91c2VyQWdlbnRPdmVycmlkZTsKLX0KLQotc3RhdGlj
IFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZvckNvb2tpZShjb25zdCBD
b29raWUmIGNvb2tpZSkKLXsKLSAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiB2YWx1ZSA9IElu
c3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgdmFsdWUtPnNldFN0cmluZygibmFtZSIsIGNv
b2tpZS5uYW1lKTsKLSAgICB2YWx1ZS0+c2V0U3RyaW5nKCJ2YWx1ZSIsIGNvb2tpZS52YWx1ZSk7
Ci0gICAgdmFsdWUtPnNldFN0cmluZygiZG9tYWluIiwgY29va2llLmRvbWFpbik7Ci0gICAgdmFs
dWUtPnNldFN0cmluZygicGF0aCIsIGNvb2tpZS5wYXRoKTsKLSAgICB2YWx1ZS0+c2V0TnVtYmVy
KCJleHBpcmVzIiwgY29va2llLmV4cGlyZXMpOwotICAgIHZhbHVlLT5zZXROdW1iZXIoInNpemUi
LCAoY29va2llLm5hbWUubGVuZ3RoKCkgKyBjb29raWUudmFsdWUubGVuZ3RoKCkpKTsKLSAgICB2
YWx1ZS0+c2V0Qm9vbGVhbigiaHR0cE9ubHkiLCBjb29raWUuaHR0cE9ubHkpOwotICAgIHZhbHVl
LT5zZXRCb29sZWFuKCJzZWN1cmUiLCBjb29raWUuc2VjdXJlKTsKLSAgICB2YWx1ZS0+c2V0Qm9v
bGVhbigic2Vzc2lvbiIsIGNvb2tpZS5zZXNzaW9uKTsKLSAgICByZXR1cm4gdmFsdWU7Ci19Ci0K
LXN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3RvckFycmF5PiBidWlsZEFycmF5Rm9yQ29va2llcyhM
aXN0SGFzaFNldDxDb29raWU+JiBjb29raWVzTGlzdCkKLXsKLSAgICBSZWZQdHI8SW5zcGVjdG9y
QXJyYXk+IGNvb2tpZXMgPSBJbnNwZWN0b3JBcnJheTo6Y3JlYXRlKCk7Ci0KLSAgICBMaXN0SGFz
aFNldDxDb29raWU+OjppdGVyYXRvciBlbmQgPSBjb29raWVzTGlzdC5lbmQoKTsKLSAgICBMaXN0
SGFzaFNldDxDb29raWU+OjppdGVyYXRvciBpdCA9IGNvb2tpZXNMaXN0LmJlZ2luKCk7Ci0gICAg
Zm9yIChpbnQgaSA9IDA7IGl0ICE9IGVuZDsgKytpdCwgaSsrKQotICAgICAgICBjb29raWVzLT5w
dXNoT2JqZWN0KGJ1aWxkT2JqZWN0Rm9yQ29va2llKCppdCkpOwotCi0gICAgcmV0dXJuIGNvb2tp
ZXM7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpnZXRDb29raWVzKEVycm9yU3RyaW5n
KiwgUmVmUHRyPEluc3BlY3RvckFycmF5PiogY29va2llcywgV1RGOjpTdHJpbmcqIGNvb2tpZXNT
dHJpbmcpCi17Ci0gICAgLy8gSWYgd2UgY2FuIGdldCByYXcgY29va2llcy4KLSAgICBMaXN0SGFz
aFNldDxDb29raWU+IHJhd0Nvb2tpZXNMaXN0OwotCi0gICAgLy8gSWYgd2UgY2FuJ3QgZ2V0IHJh
dyBjb29raWVzIC0gZmFsbCBiYWNrIHRvIFN0cmluZyByZXByZXNlbnRhdGlvbgotICAgIFN0cmlu
ZyBzdHJpbmdDb29raWVzTGlzdDsKLQotICAgIC8vIFJldHVybiB2YWx1ZSB0byBnZXRSYXdDb29r
aWVzIHNob3VsZCBiZSB0aGUgc2FtZSBmb3IgZXZlcnkgY2FsbCBiZWNhdXNlCi0gICAgLy8gdGhl
IHJldHVybiB2YWx1ZSBpcyBwbGF0Zm9ybS9uZXR3b3JrIGJhY2tlbmQgc3BlY2lmaWMsIGFuZCB0
aGUgY2FsbCB3aWxsCi0gICAgLy8gYWx3YXlzIHJldHVybiB0aGUgc2FtZSB0cnVlL2ZhbHNlIHZh
bHVlLgotICAgIGJvb2wgcmF3Q29va2llc0ltcGxlbWVudGVkID0gZmFsc2U7Ci0KLSAgICBmb3Ig
KEZyYW1lKiBmcmFtZSA9IG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFt
ZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dChtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFt
ZSgpKSkgewotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsK
LSAgICAgICAgY29uc3QgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkRvY3VtZW50UmVzb3VyY2VNYXAm
IGFsbFJlc291cmNlcyA9IGRvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5hbGxDYWNo
ZWRSZXNvdXJjZXMoKTsKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkRvY3VtZW50UmVz
b3VyY2VNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGFsbFJlc291cmNlcy5lbmQoKTsKLSAgICAg
ICAgZm9yIChDYWNoZWRSZXNvdXJjZUxvYWRlcjo6RG9jdW1lbnRSZXNvdXJjZU1hcDo6Y29uc3Rf
aXRlcmF0b3IgaXQgPSBhbGxSZXNvdXJjZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0g
ICAgICAgICAgICBWZWN0b3I8Q29va2llPiBkb2NDb29raWVzTGlzdDsKLSAgICAgICAgICAgIHJh
d0Nvb2tpZXNJbXBsZW1lbnRlZCA9IGdldFJhd0Nvb2tpZXMoZG9jdW1lbnQsIEtVUkwoUGFyc2Vk
VVJMU3RyaW5nLCBpdC0+c2Vjb25kLT51cmwoKSksIGRvY0Nvb2tpZXNMaXN0KTsKLQotICAgICAg
ICAgICAgaWYgKCFyYXdDb29raWVzSW1wbGVtZW50ZWQpIHsKLSAgICAgICAgICAgICAgICAvLyBG
SVhNRTogV2UgbmVlZCBkdXBsaWNhdGlvbiBjaGVja2luZyBmb3IgdGhlIFN0cmluZyByZXByZXNl
bnRhdGlvbiBvZiBjb29raWVzLgotICAgICAgICAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwotICAgICAgICAgICAgICAgIHN0cmluZ0Nvb2tpZXNMaXN0ICs9IGRvY3VtZW50LT5jb29raWUo
ZWMpOwotICAgICAgICAgICAgICAgIC8vIEV4Y2VwdGlvbnMgYXJlIHRocm93biBieSBjb29raWUo
KSBpbiBzYW5kYm94ZWQgZnJhbWVzLiBUaGF0IHdvbid0IGhhcHBlbiBoZXJlCi0gICAgICAgICAg
ICAgICAgLy8gYmVjYXVzZSAiZG9jdW1lbnQiIGlzIHRoZSBkb2N1bWVudCBvZiB0aGUgbWFpbiBm
cmFtZSBvZiB0aGUgcGFnZS4KLSAgICAgICAgICAgICAgICBBU1NFUlQoIWVjKTsKLSAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaW50IGNvb2tpZXNTaXplID0gZG9jQ29va2ll
c0xpc3Quc2l6ZSgpOwotICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY29va2ll
c1NpemU7IGkrKykgewotICAgICAgICAgICAgICAgICAgICBpZiAoIXJhd0Nvb2tpZXNMaXN0LmNv
bnRhaW5zKGRvY0Nvb2tpZXNMaXN0W2ldKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJhd0Nv
b2tpZXNMaXN0LmFkZChkb2NDb29raWVzTGlzdFtpXSk7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHJhd0Nvb2tpZXNJbXBsZW1l
bnRlZCkKLSAgICAgICAgKmNvb2tpZXMgPSBidWlsZEFycmF5Rm9yQ29va2llcyhyYXdDb29raWVz
TGlzdCk7Ci0gICAgZWxzZQotICAgICAgICAqY29va2llc1N0cmluZyA9IHN0cmluZ0Nvb2tpZXNM
aXN0OwotfQotCi12b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZGVsZXRlQ29va2llKEVycm9yU3Ry
aW5nKiwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lLCBjb25zdCBTdHJpbmcmIGRvbWFpbikKLXsK
LSAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCk7IGZy
YW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dChtX2luc3BlY3RlZFBhZ2Ut
Pm1haW5GcmFtZSgpKSkgewotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9j
dW1lbnQoKTsKLSAgICAgICAgaWYgKGRvY3VtZW50LT51cmwoKS5ob3N0KCkgIT0gZG9tYWluKQot
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGNvbnN0IENhY2hlZFJlc291cmNlTG9hZGVy
OjpEb2N1bWVudFJlc291cmNlTWFwJiBhbGxSZXNvdXJjZXMgPSBkb2N1bWVudC0+Y2FjaGVkUmVz
b3VyY2VMb2FkZXIoKS0+YWxsQ2FjaGVkUmVzb3VyY2VzKCk7Ci0gICAgICAgIENhY2hlZFJlc291
cmNlTG9hZGVyOjpEb2N1bWVudFJlc291cmNlTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBhbGxS
ZXNvdXJjZXMuZW5kKCk7Ci0gICAgICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkRvY3Vt
ZW50UmVzb3VyY2VNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gYWxsUmVzb3VyY2VzLmJlZ2luKCk7
IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgICAgIFdlYkNvcmU6OmRlbGV0ZUNvb2tpZShkb2N1
bWVudCwgS1VSTChQYXJzZWRVUkxTdHJpbmcsIGl0LT5zZWNvbmQtPnVybCgpKSwgY29va2llTmFt
ZSk7Ci0gICAgfQotfQotCi12b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6aW5zcGVjdGVkVVJMQ2hh
bmdlZChjb25zdCBTdHJpbmcmIHVybCkKLXsKLSAgICBtX2Zyb250ZW5kLT5wYWdlKCktPmluc3Bl
Y3RlZFVSTENoYW5nZWQodXJsKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OnJlc3Rv
cmUoKQotewotICAgIGluc3BlY3RlZFVSTENoYW5nZWQobV9pbnNwZWN0ZWRQYWdlLT5tYWluRnJh
bWUoKS0+ZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5nKCkpOwotfQotCi12b2lkIEluc3BlY3RvclBh
Z2VBZ2VudDo6ZGlkQ29tbWl0TG9hZChjb25zdCBTdHJpbmcmIHVybCkKLXsKLSAgICBpbnNwZWN0
ZWRVUkxDaGFuZ2VkKHVybCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yUGFnZUFnZW50Ojpkb21Db250
ZW50RXZlbnRGaXJlZCgpCi17Ci0gICAgIG1fZnJvbnRlbmQtPnBhZ2UoKS0+ZG9tQ29udGVudEV2
ZW50RmlyZWQoY3VycmVudFRpbWUoKSk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yUGFnZUFnZW50Ojps
b2FkRXZlbnRGaXJlZCgpCi17Ci0gICAgIG1fZnJvbnRlbmQtPnBhZ2UoKS0+bG9hZEV2ZW50Rmly
ZWQoY3VycmVudFRpbWUoKSk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkaWRDbGVh
cldpbmRvd09iamVjdEluV29ybGQoRnJhbWUqIGZyYW1lLCBET01XcmFwcGVyV29ybGQqIHdvcmxk
KQotewotICAgIGlmICh3b3JsZCAhPSBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgaWYgKGZyYW1lID09IG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCkp
Ci0gICAgICAgIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5kaXNjYXJkSW5qZWN0ZWRTY3JpcHRz
KCk7Ci0KLSAgICBpZiAobV9zY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZC5zaXplKCkpIHsKLSAgICAg
ICAgU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlID0gbWFpbldvcmxkU2NyaXB0U3RhdGUoZnJhbWUp
OwotICAgICAgICBmb3IgKFZlY3RvcjxTdHJpbmc+OjppdGVyYXRvciBpdCA9IG1fc2NyaXB0c1Rv
RXZhbHVhdGVPbkxvYWQuYmVnaW4oKTsKLSAgICAgICAgICAgICBpdCAhPSBtX3NjcmlwdHNUb0V2
YWx1YXRlT25Mb2FkLmVuZCgpOyArK2l0KSB7Ci0gICAgICAgICAgICBtX2luamVjdGVkU2NyaXB0
TWFuYWdlci0+aW5qZWN0U2NyaXB0KCppdCwgc2NyaXB0U3RhdGUpOwotICAgICAgICB9Ci0gICAg
fQotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoSU5TUEVD
VE9SKSAmJiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYmI2Yjk2ZjBiNGFiY2E4ODYyNmViZDBhZjcxMDdkOWU3MzIzM2Q5Yy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw5NSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAq
IGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0g
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lm
bmRlZiBJbnNwZWN0b3JQYWdlQWdlbnRfaAotI2RlZmluZSBJbnNwZWN0b3JQYWdlQWdlbnRfaAot
Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVOQUJMRShJTlNQRUNUT1IpCi0K
LSNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNz
IERPTVdyYXBwZXJXb3JsZDsKLWNsYXNzIEZyYW1lOwotY2xhc3MgRnJvbnRlbmQ7Ci1jbGFzcyBJ
bmplY3RlZFNjcmlwdE1hbmFnZXI7Ci1jbGFzcyBJbnNwZWN0b3JBcnJheTsKLWNsYXNzIEluc3Bl
Y3RvckZyb250ZW5kOwotY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKLWNsYXNzIFBhZ2U7Ci0K
LXR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwotCi1jbGFzcyBJbnNwZWN0b3JQYWdlQWdlbnQg
ewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvclBhZ2VBZ2VudCk7Ci1wdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yUGFnZUFnZW50PiBjcmVhdGUoSW5zdHJ1
bWVudGluZ0FnZW50cyosIFBhZ2UqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKLQotICAgIC8v
IFBhZ2UgQVBJIGZvciBJbnNwZWN0b3JGcm9udGVuZAotICAgIHZvaWQgYWRkU2NyaXB0VG9FdmFs
dWF0ZU9uTG9hZChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc291cmNlKTsKLSAgICB2b2lk
IHJlbW92ZUFsbFNjcmlwdHNUb0V2YWx1YXRlT25Mb2FkKEVycm9yU3RyaW5nKik7Ci0gICAgdm9p
ZCByZWxvYWRQYWdlKEVycm9yU3RyaW5nKiwgYm9vbCBpZ25vcmVDYWNoZSk7Ci0gICAgdm9pZCBv
cGVuSW5JbnNwZWN0ZWRXaW5kb3coRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHVybCk7Ci0g
ICAgdm9pZCBzZXRVc2VyQWdlbnRPdmVycmlkZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYg
dXNlckFnZW50KTsKLSAgICB2b2lkIGdldENvb2tpZXMoRXJyb3JTdHJpbmcqLCBSZWZQdHI8SW5z
cGVjdG9yQXJyYXk+KiBjb29raWVzLCBXVEY6OlN0cmluZyogY29va2llc1N0cmluZyk7Ci0gICAg
dm9pZCBkZWxldGVDb29raWUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUs
IGNvbnN0IFN0cmluZyYgZG9tYWluKTsKLQotICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
biBBUEkKLSAgICB2b2lkIGluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJiB1cmwpOwot
ICAgIHZvaWQgZGlkQ29tbWl0TG9hZChjb25zdCBTdHJpbmcmIHVybCk7Ci0gICAgdm9pZCBkaWRD
bGVhcldpbmRvd09iamVjdEluV29ybGQoRnJhbWUqLCBET01XcmFwcGVyV29ybGQqKTsKLSAgICB2
b2lkIGRvbUNvbnRlbnRFdmVudEZpcmVkKCk7Ci0gICAgdm9pZCBsb2FkRXZlbnRGaXJlZCgpOwot
Ci0gICAgdm9pZCBzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCopOwotICAgIHZvaWQgY2xl
YXJGcm9udGVuZCgpOwotICAgIHZvaWQgcmVzdG9yZSgpOwotICAgIHZvaWQgYXBwbHlVc2VyQWdl
bnRPdmVycmlkZShTdHJpbmcqIHVzZXJBZ2VudCkgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgSW5z
cGVjdG9yUGFnZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBQYWdlKiwgSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKik7Ci0KLSAgICBJbnN0cnVtZW50aW5nQWdlbnRzKiBtX2luc3RydW1lbnRpbmdB
Z2VudHM7Ci0gICAgUGFnZSogbV9pbnNwZWN0ZWRQYWdlOwotICAgIEluamVjdGVkU2NyaXB0TWFu
YWdlciogbV9pbmplY3RlZFNjcmlwdE1hbmFnZXI7Ci0gICAgSW5zcGVjdG9yRnJvbnRlbmQqIG1f
ZnJvbnRlbmQ7Ci0gICAgVmVjdG9yPFN0cmluZz4gbV9zY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZDsK
LSAgICBTdHJpbmcgbV91c2VyQWdlbnRPdmVycmlkZTsKLX07Ci0KLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVOQUJM
RShJTlNQRUNUT1IpCi0KLSNlbmRpZiAvLyAhZGVmaW5lZChJbnNwZWN0b3JQYWdlQWdlbnRfaCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRz
LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oCmluZGV4
IDNiNjdlZGQ4ZGY4ZTIzNTAxNTZlZDRkZmVmZTE4MDRjM2UxYzhhMDguLmFhMGI2ZDZjMDlhYmI4
ZjNlYjgzNTJjNDE4NDE0NmY0MzlkOGE1NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaApAQCAtMzgsNyArMzgsNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEluc3BlY3RvckFnZW50OwogY2xhc3MgSW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50OwotY2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50OwogY2xhc3MgSW5zcGVjdG9y
QnJvd3NlckRlYnVnZ2VyQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JDU1NBZ2VudDsKIGNsYXNzIElu
c3BlY3RvckNvbnNvbGVBZ2VudDsKQEAgLTU3LDcgKzU2LDYgQEAgY2xhc3MgSW5zdHJ1bWVudGlu
Z0FnZW50cyB7CiBwdWJsaWM6CiAgICAgSW5zdHJ1bWVudGluZ0FnZW50cygpCiAgICAgICAgIDog
bV9pbnNwZWN0b3JBZ2VudCgwKQotICAgICAgICAsIG1faW5zcGVjdG9yUGFnZUFnZW50KDApCiAg
ICAgICAgICwgbV9pbnNwZWN0b3JDU1NBZ2VudCgwKQogICAgICAgICAsIG1faW5zcGVjdG9yQ29u
c29sZUFnZW50KDApCiAgICAgICAgICwgbV9pbnNwZWN0b3JET01BZ2VudCgwKQpAQCAtODQsOSAr
ODIsNiBAQCBwdWJsaWM6CiAgICAgSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50KCkgY29u
c3QgeyByZXR1cm4gbV9pbnNwZWN0b3JBZ2VudDsgfQogICAgIHZvaWQgc2V0SW5zcGVjdG9yQWdl
bnQoSW5zcGVjdG9yQWdlbnQqIGFnZW50KSB7IG1faW5zcGVjdG9yQWdlbnQgPSBhZ2VudDsgfQog
Ci0gICAgSW5zcGVjdG9yUGFnZUFnZW50KiBpbnNwZWN0b3JQYWdlQWdlbnQoKSBjb25zdCB7IHJl
dHVybiBtX2luc3BlY3RvclBhZ2VBZ2VudDsgfQotICAgIHZvaWQgc2V0SW5zcGVjdG9yUGFnZUFn
ZW50KEluc3BlY3RvclBhZ2VBZ2VudCogYWdlbnQpIHsgbV9pbnNwZWN0b3JQYWdlQWdlbnQgPSBh
Z2VudDsgfQotCiAgICAgSW5zcGVjdG9yQ1NTQWdlbnQqIGluc3BlY3RvckNTU0FnZW50KCkgY29u
c3QgeyByZXR1cm4gbV9pbnNwZWN0b3JDU1NBZ2VudDsgfQogICAgIHZvaWQgc2V0SW5zcGVjdG9y
Q1NTQWdlbnQoSW5zcGVjdG9yQ1NTQWdlbnQqIGFnZW50KSB7IG1faW5zcGVjdG9yQ1NTQWdlbnQg
PSBhZ2VudDsgfQogCkBAIC0xMzAsNyArMTI1LDYgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAg
IEluc3BlY3RvckFnZW50KiBtX2luc3BlY3RvckFnZW50OwotICAgIEluc3BlY3RvclBhZ2VBZ2Vu
dCogbV9pbnNwZWN0b3JQYWdlQWdlbnQ7CiAgICAgSW5zcGVjdG9yQ1NTQWdlbnQqIG1faW5zcGVj
dG9yQ1NTQWdlbnQ7CiAgICAgSW5zcGVjdG9yQ29uc29sZUFnZW50KiBtX2luc3BlY3RvckNvbnNv
bGVBZ2VudDsKICAgICBJbnNwZWN0b3JET01BZ2VudCogbV9pbnNwZWN0b3JET01BZ2VudDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzCmlu
ZGV4IDdmNTZmNDE4NTk2ZGE0ZDBmNjIzN2IwOWYxZjAxODFiNGE1YjE3ZDAuLjMxNDRjNzg4YTZj
YjU5MjkzMGUwYzcxMGYyMTk0NzhmNTUwMjU3ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQYW5lbC5qcwpAQCAtMTkyLDcgKzE5Miw3IEBAIFdl
Ykluc3BlY3Rvci5BdWRpdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgX3JlbG9hZFJlc291cmNl
czogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewogICAgICAgICB0aGlzLl9wYWdlUmVsb2FkQ2Fs
bGJhY2sgPSBjYWxsYmFjazsKLSAgICAgICAgUGFnZUFnZW50LnJlbG9hZFBhZ2UoZmFsc2UpOwor
ICAgICAgICBJbnNwZWN0b3JBZ2VudC5yZWxvYWRQYWdlKGZhbHNlKTsKICAgICB9LAogCiAgICAg
X2RpZE1haW5SZXNvdXJjZUxvYWQ6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNWaWV3LmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVJdGVtc1ZpZXcuanMKaW5kZXggNmJmMzMyNmY2
ODc1ZGIxY2JiYjRlZGNjN2RmNDJkNmRhYzQzZmI5Yy4uYWFhNDdjMThkYzU0ODQ4MmJmNTkxOWE0
MGJiZDAxNGVlNTNkMDdiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Db29raWVJdGVtc1ZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Db29raWVJdGVtc1ZpZXcuanMKQEAgLTE0MCw3ICsxNDAsNyBAQCBXZWJJbnNw
ZWN0b3IuQ29va2llSXRlbXNWaWV3LnByb3RvdHlwZSA9IHsKIAogICAgIF9kZWxldGVDb29raWU6
IGZ1bmN0aW9uKGNvb2tpZSkKICAgICB7Ci0gICAgICAgIFBhZ2VBZ2VudC5kZWxldGVDb29raWUo
Y29va2llLm5hbWUsIHRoaXMuX2Nvb2tpZURvbWFpbik7CisgICAgICAgIEluc3BlY3RvckFnZW50
LmRlbGV0ZUNvb2tpZShjb29raWUubmFtZSwgdGhpcy5fY29va2llRG9tYWluKTsKICAgICAgICAg
dGhpcy5fdXBkYXRlKCk7CiAgICAgfSwKIApAQCAtMjE1LDcgKzIxNSw3IEBAIFdlYkluc3BlY3Rv
ci5Db29raWVzLmdldENvb2tpZXNBc3luYyA9IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgICAgICAg
ICAgY2FsbGJhY2soY29va2llcywgdHJ1ZSk7CiAgICAgfQogCi0gICAgUGFnZUFnZW50LmdldENv
b2tpZXMobXljYWxsYmFjayk7CisgICAgSW5zcGVjdG9yQWdlbnQuZ2V0Q29va2llcyhteWNhbGxi
YWNrKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNvb2tpZXMuYnVpbGRDb29raWVzRnJvbVN0cmluZyA9
IGZ1bmN0aW9uKHJhd0Nvb2tpZVN0cmluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKaW5kZXggOTU1NGRmYTVhOTAxYTQ5
MzE3MThjOTM0ZDBjNmI1NDNhZDljNjhmNS4uZjc1YThjMjFmYzM2MzJmMWIwYmM3NDI1OWMzZTYw
OGMzZDA4ZTc5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9FeHRlbnNpb25TZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKQEAgLTI2Nyw5ICsyNjcsOSBAQCBXZWJJbnNwZWN0b3Iu
RXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAgICBfb25SZWxvYWQ6IGZ1bmN0aW9uKG1l
c3NhZ2UpCiAgICAgewogICAgICAgICBpZiAodHlwZW9mIG1lc3NhZ2UudXNlckFnZW50ID09PSAi
c3RyaW5nIikKLSAgICAgICAgICAgIFBhZ2VBZ2VudC5zZXRVc2VyQWdlbnRPdmVycmlkZShtZXNz
YWdlLnVzZXJBZ2VudCk7CisgICAgICAgICAgICBJbnNwZWN0b3JBZ2VudC5zZXRVc2VyQWdlbnRP
dmVycmlkZShtZXNzYWdlLnVzZXJBZ2VudCk7CiAKLSAgICAgICAgUGFnZUFnZW50LnJlbG9hZFBh
Z2UoZmFsc2UpOworICAgICAgICBJbnNwZWN0b3JBZ2VudC5yZWxvYWRQYWdlKGZhbHNlKTsKICAg
ICAgICAgcmV0dXJuIHRoaXMuX3N0YXR1cy5PSygpOwogICAgIH0sCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMKaW5kZXggM2M0OTdk
NjJhMTQzZDhmNzZhNWMyYjM0NWI2MzRmN2IwODg2NDNkNy4uYjVlNjZkYjBhY2Q3ZmEyY2M0MmEy
NTE5MzU0ZmViYzlmYjRjNDFkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMKQEAgLTEzNzcsNyArMTM3Nyw3IEBAIFdlYkluc3Bl
Y3Rvci5OZXR3b3JrRGF0YUdyaWROb2RlLnByb3RvdHlwZSA9IHsKIAogICAgIF9vcGVuSW5OZXdU
YWI6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFBhZ2VBZ2VudC5vcGVuSW5JbnNwZWN0ZWRX
aW5kb3codGhpcy5fcmVzb3VyY2UudXJsKTsKKyAgICAgICAgSW5zcGVjdG9yQWdlbnQub3Blbklu
SW5zcGVjdGVkV2luZG93KHRoaXMuX3Jlc291cmNlLnVybCk7CiAgICAgfSwKIAogICAgIGdldCBz
ZWxlY3RhYmxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVzb3VyY2VzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlc1BhbmVsLmpzCmluZGV4IGM2NWU2YjdmODJjMjM2NzY5Yzg4ODE0YmQ4YTYyNWZi
ZjljYTRlMWQuLmMzMjQ4YmI3NDIyMDc3Y2FhZTllMjJhZDZmNzQ0ZDY0MDIyOGVlMmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5l
bC5qcwpAQCAtMTAxMCw3ICsxMDEwLDcgQEAgV2ViSW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VUcmVl
RWxlbWVudC5wcm90b3R5cGUgPSB7CiAKICAgICBvbmRibGNsaWNrOiBmdW5jdGlvbihldmVudCkK
ICAgICB7Ci0gICAgICAgIFBhZ2VBZ2VudC5vcGVuSW5JbnNwZWN0ZWRXaW5kb3codGhpcy5fcmVz
b3VyY2UudXJsKTsKKyAgICAgICAgSW5zcGVjdG9yQWdlbnQub3BlbkluSW5zcGVjdGVkV2luZG93
KHRoaXMuX3Jlc291cmNlLnVybCk7CiAgICAgfSwKIAogICAgIG9uYXR0YWNoOiBmdW5jdGlvbigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlcnNT
aWRlYmFyUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2Vy
c1NpZGViYXJQYW5lLmpzCmluZGV4IGU3MGRiNDQ5ZGI5YmYwYTcxODY1Yjc1NzcwOTdiNjVjYjdj
MWNmMDQuLmVmZGI5MzZhNGVmYmU0MTkzNzJmNWQ5OTU3ZWY4MDM4YzNlZjdlOWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2Vyc1NpZGViYXJQYW5l
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2Vyc1NpZGVi
YXJQYW5lLmpzCkBAIC03NCw5ICs3NCw5IEBAIFdlYkluc3BlY3Rvci5Xb3JrZXJzU2lkZWJhclBh
bmUucHJvdG90eXBlID0gewogCiAgICAgc2V0SW5zdHJ1bWVudGF0aW9uOiBmdW5jdGlvbihlbmFi
bGVkKQogICAgIHsKLSAgICAgICAgUGFnZUFnZW50LnJlbW92ZUFsbFNjcmlwdHNUb0V2YWx1YXRl
T25Mb2FkKCk7CisgICAgICAgIEluc3BlY3RvckFnZW50LnJlbW92ZUFsbFNjcmlwdHNUb0V2YWx1
YXRlT25Mb2FkKCk7CiAgICAgICAgIGlmIChlbmFibGVkKQotICAgICAgICAgICAgUGFnZUFnZW50
LmFkZFNjcmlwdFRvRXZhbHVhdGVPbkxvYWQoIigiICsgSW5qZWN0ZWRGYWtlV29ya2VyICsgIiki
KTsKKyAgICAgICAgICAgIEluc3BlY3RvckFnZW50LmFkZFNjcmlwdFRvRXZhbHVhdGVPbkxvYWQo
IigiICsgSW5qZWN0ZWRGYWtlV29ya2VyICsgIikiKTsKICAgICB9LAogCiAgICAgcmVzZXQ6IGZ1
bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuanMKaW5kZXggNTkxNzFkYjJkYTg1NmMwMWM4MjFhNTkyNTQxZGRlM2UyN2Q1MzZjNy4uZDhj
OGY1MTA0NTY1YjkxMGE5OTdlOTY2YTEyOWQ2N2Q0NTE4ZDgyOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTQ0NCw3ICs0NDQsNiBA
QCBXZWJJbnNwZWN0b3IuZG9Mb2FkZWREb25lID0gZnVuY3Rpb24oKQogICAgIHRoaXMuZG9tQWdl
bnQgPSBuZXcgV2ViSW5zcGVjdG9yLkRPTUFnZW50KCk7CiAKICAgICBJbnNwZWN0b3JCYWNrZW5k
LnJlZ2lzdGVyRG9tYWluRGlzcGF0Y2hlcigiSW5zcGVjdG9yIiwgdGhpcyk7Ci0gICAgSW5zcGVj
dG9yQmFja2VuZC5yZWdpc3RlckRvbWFpbkRpc3BhdGNoZXIoIlBhZ2UiLCB0aGlzKTsKIAogICAg
IHRoaXMucmVzb3VyY2VDYXRlZ29yaWVzID0gewogICAgICAgICBkb2N1bWVudHM6IG5ldyBXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VDYXRlZ29yeSgiZG9jdW1lbnRzIiwgV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJEb2N1bWVudHMiKSwgInJnYig0NywxMDIsMjM2KSIpLApAQCAtNjc1LDcgKzY3NCw3IEBA
IFdlYkluc3BlY3Rvci5vcGVuUmVzb3VyY2UgPSBmdW5jdGlvbihyZXNvdXJjZVVSTCwgaW5SZXNv
dXJjZXNQYW5lbCkKICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5yZXNvdXJjZXMuc2hvd1Jl
c291cmNlKHJlc291cmNlKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgicmVzb3Vy
Y2VzIik7CiAgICAgfSBlbHNlCi0gICAgICAgIFBhZ2VBZ2VudC5vcGVuSW5JbnNwZWN0ZWRXaW5k
b3cocmVzb3VyY2UgPyByZXNvdXJjZS51cmwgOiByZXNvdXJjZVVSTCk7CisgICAgICAgIEluc3Bl
Y3RvckFnZW50Lm9wZW5Jbkluc3BlY3RlZFdpbmRvdyhyZXNvdXJjZSA/IHJlc291cmNlLnVybCA6
IHJlc291cmNlVVJMKTsKIH0KIAogV2ViSW5zcGVjdG9yLl9yZWdpc3RlclNob3J0Y3V0cyA9IGZ1
bmN0aW9uKCkKQEAgLTc5OSwxMyArNzk4LDEzIEBAIFdlYkluc3BlY3Rvci5kb2N1bWVudEtleURv
d24gPSBmdW5jdGlvbihldmVudCkKIAogICAgICAgICBjYXNlICJVKzAwNTIiOiAvLyBSIGtleQog
ICAgICAgICAgICAgaWYgKChldmVudC5tZXRhS2V5ICYmIGlzTWFjKSB8fCAoZXZlbnQuY3RybEtl
eSAmJiAhaXNNYWMpKSB7Ci0gICAgICAgICAgICAgICAgUGFnZUFnZW50LnJlbG9hZFBhZ2UoZXZl
bnQuc2hpZnRLZXkpOworICAgICAgICAgICAgICAgIEluc3BlY3RvckFnZW50LnJlbG9hZFBhZ2Uo
ZXZlbnQuc2hpZnRLZXkpOwogICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSAiRjUiOgog
ICAgICAgICAgICAgaWYgKCFpc01hYykKLSAgICAgICAgICAgICAgICBQYWdlQWdlbnQucmVsb2Fk
UGFnZShldmVudC5jdHJsS2V5IHx8IGV2ZW50LnNoaWZ0S2V5KTsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JBZ2VudC5yZWxvYWRQYWdlKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQuc2hpZnRLZXkp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>