<?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>121779</bug_id>
          
          <creation_ts>2013-09-22 23:28:03 -0700</creation_ts>
          <short_desc>REGRESSION(r156254): Caused assertions in fast/regions tests (Requested by ap on #webkit).</short_desc>
          <delta_ts>2013-09-22 23:34:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>121771</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>darin</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>932030</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-22 23:28:03 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/156254 broke the build:
Caused assertions in fast/regions tests (Requested by ap on #webkit).

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

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

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

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932043</commentid>
    <comment_count>2</comment_count>
      <attachid>212327</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-22 23:34:39 -0700</bug_when>
    <thetext>Comment on attachment 212327
ROLLOUT of r156254

Clearing flags on attachment: 212327

Committed r156262: &lt;http://trac.webkit.org/changeset/156262&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932044</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-22 23:34:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212327</attachid>
            <date>2013-09-22 23:28:32 -0700</date>
            <delta_ts>2013-09-22 23:34:39 -0700</delta_ts>
            <desc>ROLLOUT of r156254</desc>
            <filename>bug-121779-20130922232832.patch</filename>
            <type>text/plain</type>
            <size>87725</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2MjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTc5ODYwODA0MDQ1ZDFi
NmY0NTAyMDU1NmRjYTE1ZDI4OTQxMTQ0OS4uODQ1ZWM0YTlmZjRlYTY0NzQzZTU3NGVlOGI3MDI4
NjFiM2FhODNlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNiBAQAorMjAxMy0wOS0yMiAgQ29t
bWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjE1NjI1NC4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvMTU2MjU0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjE3NzkKKworICAgICAgICBDYXVzZWQgYXNzZXJ0aW9ucyBpbiBmYXN0L3JlZ2lv
bnMgdGVzdHMgKFJlcXVlc3RlZCBieSBhcCBvbgorICAgICAgICAjd2Via2l0KS4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAg
ICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiByZW5kZXJpbmcvQXV0b1RhYmxlTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
dG9UYWJsZUxheW91dDo6cmVjYWxjQ29sdW1uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OndpbGxCZURlc3Ryb3ll
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6YWRkQ2hpbGRUb0Fub255bW91c0Nv
bHVtbkJsb2Nrcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6c3BsaXRCbG9ja3Mp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNwbGl0Rmxvdyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9jazo6bWFrZUNoaWxkcmVuQW5vbnltb3VzQ29sdW1uQmxvY2tzKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjptYWtlQ2hpbGRyZW5Ob25JbmxpbmUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnJlbW92ZUxlZnRvdmVyQW5vbnltb3VzQmxv
Y2spOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNvbGxhcHNlQW5vbnltb3VzQm94
Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnJlbW92ZUNoaWxkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp1cGRhdGVGaXJzdExldHRlclN0eWxlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJsb2NrOjpmaXJzdENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXN0
Q2hpbGQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94OjpzcGxpdEFub255bW91c0JveGVzQXJvdW5kQ2hpbGQpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6bW92ZUNoaWxkVG8pOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OlJl
bmRlckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6YWRkQ2hpbGQp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6cmVtb3ZlQ2hpbGQpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2Jq
ZWN0OjpsYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5oOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjp3
aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjpzcGxpdElu
bGluZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjpzcGxpdEZsb3cpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjpjaGlsZEJlY2FtZU5vbklubGluZSk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
SW5saW5lOjpmaXJzdENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6bGFz
dENoaWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllck1vZGVsT2JqZWN0Ojp3aWxsQmVEZXN0cm95
ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJN
ZWRpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYTo6bGF5b3V0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTWVkaWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1l
ZGlhOjpmaXJzdENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhOjpsYXN0Q2hp
bGQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0OjpoYW5kbGVEeW5hbWljRmxvYXRQb3NpdGlvbkNoYW5nZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnJlbW92ZUZyb21SZW5kZXJGbG93VGhyZWFkUmVjdXJz
aXZlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJPYmplY3Q6OmZpcnN0Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
T2JqZWN0OjpsYXN0Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpjaGls
ZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmNhbkhhdmVDaGlsZHJlbik6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Q2hpbGRMaXN0OjpkZXN0cm95TGVmdG92ZXJD
aGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3RDaGlsZExpc3Q6OnJlbW92
ZUNoaWxkTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3RDaGlsZExpc3Q6Omlu
c2VydENoaWxkTm9kZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlz
dC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuaC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENoaWxkTGlzdDo6UmVuZGVyT2JqZWN0Q2hp
bGRMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENoaWxkTGlzdDo6Zmlyc3RD
aGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3RDaGlsZExpc3Q6Omxhc3RDaGls
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3RDaGlsZExpc3Q6OnNldEZpcnN0Q2hp
bGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Q2hpbGRMaXN0OjpzZXRMYXN0Q2hp
bGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Q2hpbGRMaXN0OjphcHBlbmRDaGls
ZE5vZGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNhbkhhdmVDaGlsZHJlbik6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclJlcGxpY2EuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUnVieUJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUnVieUJhc2U6Om1vdmVJbmxpbmVDaGls
ZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSdWJ5QmFzZTo6bW92ZUJsb2NrQ2hpbGRy
ZW4pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJs
ZVNlY3Rpb24uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJpbmdBbGxJbk9uZS5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL21h
dGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJN
YXRoTUxPcGVyYXRvcjo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHQ29udGFpbmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdDb250
YWluZXI6OmZpcnN0Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHQ29udGFpbmVy
OjpsYXN0Q2hpbGQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHR3JhZGllbnRT
dG9wLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU1ZHTW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICog
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdTaGFwZS5oOgorCiAyMDEzLTA5LTIyICBBbnRvbmlvIEdvbWVzICA8YTEuZ29tZXNA
c2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBpZnJhbWUgYW5kIHNjcm9sbGJhciB3aXRoICJv
dmVyZmxvdzphdXRvIiBzaG91bGQgc3VwcG9ydCBhdXRvc2Nyb2xsIHdpdGggbW91c2VkcmFnCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CmluZGV4IGQzZGRiNmVmNjI4NTVkN2E5ZDU2ODg2NmE5NWZhNWI5ZGY3
NzYxNDMuLjY0Mjk5MGU4MGYwYTE5YjQ3NDFkNmJiZWUyYmJmYWUwYTgwN2ZhODcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC0yMTcyLDYgKzIxNzIsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcAogICAgIHJlbmRlcmluZy9SZW5k
ZXJOYW1lZEZsb3dUaHJlYWQuY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKyAg
ICByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcAogICAgIHJlbmRlcmluZy9SZW5k
ZXJQcm9ncmVzcy5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyUXVvdGUuY3BwCiAgICAgcmVuZGVy
aW5nL1JlbmRlclJlZ2lvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDgz
Y2JkMjJmYThlNWQ0NGNlMWVlNWY0ZDU4YzhhZmUwNTFiOTU4OTcuLjIzOGY2ZDA3NDRjMjBmYTIw
MzI0Y2IyZTY0OGE5ZTk2OWIwNTc5MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpA
QCAtNDUwNCw2ICs0NTA0LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3RDaGlsZExpc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBc
CiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck92ZXJmbG93LmggXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
aW5kZXggNmQ5ZTRiMDU3M2E2MzYzMDFiZTViYTY3MTA5OGNkZjA0MGNkNjIyYS4uMmM0ZDg4MWY0
ZDU3NTE0ZjVjOWY2Y2ViNGM4MzNhNTI3ZDVhYTQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0xMTk0LDYg
KzExOTQsNyBAQCBTT1VSQ0VTICs9IFwKICAgICByZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5T
ZXQuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcCBcCiAgICAg
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgXAorICAgIHJlbmRlcmluZy9SZW5kZXJPYmplY3RD
aGlsZExpc3QuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwIFwKICAgICBy
ZW5kZXJpbmcvUmVuZGVyUXVvdGUuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNw
cCBcCkBAIC0yNDYwLDYgKzI0NjEsNyBAQCBIRUFERVJTICs9IFwKICAgICByZW5kZXJpbmcvUmVu
ZGVyTWVudUxpc3QuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlck1ldGVyLmggXAogICAgIHJlbmRl
cmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmggXAorICAgIHJlbmRlcmluZy9SZW5kZXJPYmpl
Y3RDaGlsZExpc3QuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIFwKICAgICByZW5k
ZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclF1b3RlLmggXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXgg
NWQ5NDQxNzM3OGVlN2I5ODY1ODBhNDhlN2VlOGE4MWM3ODk2ZWI2Yy4uNTU2OTU3MThjMDE5MzVk
NjVjMGY2YjQyNjMxZGRhMzBhODQ2MmQ3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0xMDI1Miw2ICsxMDI1MiwyMCBAQAogICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0Ns
Q29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xSZW5kZXJPYmpl
Y3RDaGlsZExpc3QuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHJlbmRlcmluZ1xSZW5kZXJQcm9ncmVzcy5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTk5OTEsNiArMjAwMDUsNyBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRlck11bHRpQ29sdW1uU2V0LmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVuZGVyT2JqZWN0Lmgi
IC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVuZGVyT2JqZWN0Q2hp
bGRMaXN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVuZGVy
UHJvZ3Jlc3MuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xSZW5k
ZXJRdW90ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRl
clJlZ2lvbi5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDhkMzUzMWI2OTI3NDNhYmE2YzZhNDI4YzNmMTMzMTk3YmNiNDI5
YzAuLjYwZTg0ZjRjYzZlMTg5ZWJiM2I3OTgxYzM2NzE0NDczOWIzNDM1YTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ3Njgs
NiArNDc2OCw3IEBACiAJCUJDMjk5MzVEMTdBMURENTgwMEJDRTg4MCAvKiBDb2xvcklucHV0VHlw
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzI5
OTM1QzE3QTFERDU4MDBCQ0U4ODAgLyogQ29sb3JJbnB1dFR5cGUuY3BwICovOyB9OwogCQlCQzJD
QkY0RTE0MEYxQUJEMDAzODc5QkUgLyogSlNXZWJHTENvbnRleHRFdmVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyQ0JGNEIxNDBGMUE2NTAwMzg3
OUJFIC8qIEpTV2ViR0xDb250ZXh0RXZlbnQuaCAqLzsgfTsKIAkJQkMyQ0JGN0IxNDBGMUQ1ODAw
Mzg3OUJFIC8qIEpTV2ViR0xDb250ZXh0RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyQ0JGN0ExNDBGMUQ1ODAwMzg3OUJFIC8qIEpTV2Vi
R0xDb250ZXh0RXZlbnQuY3BwICovOyB9OworCQlCQzJDQzhERjBGMzI4ODEwMDBBOURGMjYgLyog
UmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzJDQzhERTBGMzI4ODEwMDBBOURGMjYgLyogUmVuZGVyT2JqZWN0Q2hp
bGRMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQkMyRUQ1NTUwQzZCOUJEMzAwOTIwQkZGIC8qIEpTRWxlbWVudEN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzJFRDU1NDBDNkI5QkQz
MDA5MjBCRkYgLyogSlNFbGVtZW50Q3VzdG9tLmNwcCAqLzsgfTsKIAkJQkMyRUQ2QkMwQzZCRDJG
MDAwOTIwQkZGIC8qIEpTQXR0ckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzJFRDZCQjBDNkJEMkYwMDA5MjBCRkYgLyogSlNBdHRyQ3Vz
dG9tLmNwcCAqLzsgfTsKIAkJQkMyRUQ3QTUwQzZDMEYzNjAwOTIwQkZGIC8qIEpTSFRNTEZyYW1l
RWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzJFRDdBNDBDNkMwRjM2MDA5MjBCRkYgLyogSlNIVE1MRnJhbWVFbGVtZW50Q3Vz
dG9tLmNwcCAqLzsgfTsKQEAgLTQ4ODcsNiArNDg4OCw3IEBACiAJCUJDNjBEQTVCMEQyQTMxRjcw
MEI5OTE4RiAvKiBYUGF0aEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkM2MERBNTkwRDJBMzFGNzAwQjk5MThGIC8qIFhQYXRoRXhjZXB0
aW9uLmggKi87IH07CiAJCUJDNjBEQjQ5MEQyQTNEMUUwMEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0
aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
NjBEQjQ3MEQyQTNEMUUwMEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0aW9uLmNwcCAqLzsgfTsKIAkJ
QkM2MERCNEEwRDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNjBEQjQ4MEQyQTNEMUUwMEI5
OTE4RiAvKiBKU1hQYXRoRXhjZXB0aW9uLmggKi87IH07CisJCUJDNjBFRkI3MEYzM0EwRTcwMDgx
MkE5MyAvKiBSZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM2MEVGQjYwRjMzQTBFNzAwODEyQTkzIC8qIFJlbmRl
ck9iamVjdENoaWxkTGlzdC5jcHAgKi87IH07CiAJCUJDNjQ2NDA5MTFEN0YzMDQwMDY0NTVCMCAv
KiBET01TdHJpbmdNYXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkM2NDY0MDcxMUQ3RjMwNDAwNjQ1NUIwIC8qIERPTVN0cmluZ01hcC5jcHAgKi87
IH07CiAJCUJDNjQ2NDBBMTFEN0YzMDQwMDY0NTVCMCAvKiBET01TdHJpbmdNYXAuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNjQ2NDA4MTFEN0YzMDQw
MDY0NTVCMCAvKiBET01TdHJpbmdNYXAuaCAqLzsgfTsKIAkJQkM2NDY0MUMxMUQ3RjQxNjAwNjQ1
NUIwIC8qIERhdGFzZXRET01TdHJpbmdNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDNjQ2NDFBMTFEN0Y0MTYwMDY0NTVCMCAvKiBEYXRhc2V0RE9N
U3RyaW5nTWFwLmggKi87IH07CkBAIC0xMTYyOSw2ICsxMTYzMSw3IEBACiAJCUJDMjk5MzVDMTdB
MURENTgwMEJDRTg4MCAvKiBDb2xvcklucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBDb2xvcklucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDMkNCRjRCMTQwRjFBNjUwMDM4NzlCRSAvKiBKU1dlYkdMQ29udGV4dEV2ZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xDb250ZXh0RXZlbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMyQ0JGN0ExNDBGMUQ1ODAwMzg3OUJF
IC8qIEpTV2ViR0xDb250ZXh0RXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNXZWJHTENvbnRleHRFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUJDMkNDOERFMEYzMjg4MTAwMEE5REYyNiAvKiBSZW5kZXJPYmplY3RDaGlsZExpc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyT2JqZWN0Q2hpbGRMaXN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMkVENTU0MEM2QjlCRDMwMDkyMEJG
RiAvKiBKU0VsZW1lbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNFbGVtZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkMyRUQ2QkIwQzZCRDJGMDAwOTIwQkZGIC8qIEpTQXR0ckN1c3RvbS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0F0dHJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQzJFRDdBNDBDNkMwRjM2MDA5MjBCRkYgLyogSlNIVE1MRnJhbWVF
bGVtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
SFRNTEZyYW1lRWxlbWVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMTc1Nyw2ICsxMTc2MCw3IEBACiAJCUJDNjBEQTVBMEQyQTMxRjcwMEI5OTE4RiAvKiBYUGF0
aEV4Y2VwdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFBhdGhFeGNlcHRpb24uaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzYwREI0NzBEMkEzRDFFMDBCOTkxOEYg
LyogSlNYUGF0aEV4Y2VwdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1hQYXRoRXhjZXB0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkM2MERCNDgwRDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNYUGF0aEV4Y2VwdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlCQzYwRUZCNjBGMzNBMEU3MDA4MTJBOTMgLyogUmVuZGVyT2JqZWN0
Q2hpbGRMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRl
ck9iamVjdENoaWxkTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNjQ2
NDA3MTFEN0YzMDQwMDY0NTVCMCAvKiBET01TdHJpbmdNYXAuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRE9NU3RyaW5nTWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkM2NDY0MDgxMUQ3RjMwNDAwNjQ1NUIwIC8qIERPTVN0cmluZ01hcC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01TdHJpbmdNYXAuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM2NDY0MUExMUQ3RjQxNjAwNjQ1NUIwIC8qIERhdGFzZXRE
T01TdHJpbmdNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YXNldERP
TVN0cmluZ01hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA2MjcsNiArMjA2
MzEsOCBAQAogCQkJCUJDODVGMjNDMTUxOTE1RTAwMEJDMTdCRSAvKiBSZW5kZXJOYW1lZEZsb3dU
aHJlYWQuaCAqLywKIAkJCQlCQ0VBNDg0MDA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyT2JqZWN0
LmNwcCAqLywKIAkJCQlCQ0VBNDg0MTA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyT2JqZWN0Lmgg
Ki8sCisJCQkJQkM2MEVGQjYwRjMzQTBFNzAwODEyQTkzIC8qIFJlbmRlck9iamVjdENoaWxkTGlz
dC5jcHAgKi8sCisJCQkJQkMyQ0M4REUwRjMyODgxMDAwQTlERjI2IC8qIFJlbmRlck9iamVjdENo
aWxkTGlzdC5oICovLAogCQkJCUJDRkE5MzA3MTAzMzMxOTMwMDdCMjVEMSAvKiBSZW5kZXJPdmVy
Zmxvdy5oICovLAogCQkJCUE0M0JGNTlBMTE0OTI5MjgwMEM2NDNDQSAvKiBSZW5kZXJQcm9ncmVz
cy5jcHAgKi8sCiAJCQkJQTQzQkY1OUIxMTQ5MjkyODAwQzY0M0NBIC8qIFJlbmRlclByb2dyZXNz
LmggKi8sCkBAIC0yMzc3MCw2ICsyMzc3Niw3IEBACiAJCQkJQkNFMzJCOUMxNTE3QzBCMjAwRjU0
MkVDIC8qIFJlbmRlck11bHRpQ29sdW1uU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzg1RjIz
RDE1MTkxNUUwMDBCQzE3QkUgLyogUmVuZGVyTmFtZWRGbG93VGhyZWFkLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQ0VBNDg4MDA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyT2JqZWN0LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlCQzJDQzhERjBGMzI4ODEwMDBBOURGMjYgLyogUmVuZGVyT2JqZWN0Q2hp
bGRMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0ZBOTMwODEwMzMzMTkzMDA3QjI1RDEgLyog
UmVuZGVyT3ZlcmZsb3cuaCBpbiBIZWFkZXJzICovLAogCQkJCUE0M0JGNTlEMTE0OTI5MjgwMEM2
NDNDQSAvKiBSZW5kZXJQcm9ncmVzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUE1NzRGMjUxMzFE
QjkzOTAwNDcxQjg4IC8qIFJlbmRlclF1b3RlLmggaW4gSGVhZGVycyAqLywKQEAgLTI2OTg5LDYg
KzI2OTk2LDcgQEAKIAkJCQlCQ0UzMkI5RTE1MTdDMjI3MDBGNTQyRUMgLyogUmVuZGVyTXVsdGlD
b2x1bW5TZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEzRkY5QzMxNTI2NTM1OTAwMjI4OEEx
IC8qIFJlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0VBNDg3
RjA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUJDNjBFRkI3MEYzM0EwRTcwMDgxMkE5MyAvKiBSZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTQzQkY1OUMxMTQ5MjkyODAwQzY0M0NBIC8qIFJlbmRlclByb2dy
ZXNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVBNTc0RjI0MTMxREI5MzkwMDQ3MUI4OCAvKiBS
ZW5kZXJRdW90ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNUI3QTE3MDE3QzEwQUE4MDBFNEFB
MEEgLyogRWxlbWVudERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvQXV0b1RhYmxlTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9BdXRvVGFibGVMYXlvdXQuY3BwCmluZGV4IGNkMTFmMjU5Mjg3NTE5ODBiZWIwMWE2
MzAxYTJmMWJjYWE5Y2Y4ZGIuLjY2NzVlM2ZiNWUzNjQzMzNiNzYzZjg3MTNiZTJiZjEyNTJjZGQ1
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9BdXRvVGFibGVMYXlvdXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9BdXRvVGFibGVMYXlvdXQuY3BwCkBA
IC00OSw3ICs0OSw3IEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpyZWNhbGNDb2x1bW4odW5zaWdu
ZWQgZWZmQ29sKQogICAgIFJlbmRlclRhYmxlQ2VsbCogZml4ZWRDb250cmlidXRvciA9IDA7CiAg
ICAgUmVuZGVyVGFibGVDZWxsKiBtYXhDb250cmlidXRvciA9IDA7CiAKLSAgICBmb3IgKFJlbmRl
ck9iamVjdCogY2hpbGQgPSBtX3RhYmxlLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNo
aWxkLT5uZXh0U2libGluZygpKSB7CisgICAgZm9yIChSZW5kZXJPYmplY3QqIGNoaWxkID0gbV90
YWJsZS0+Y2hpbGRyZW4oKS0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4
dFNpYmxpbmcoKSkgewogICAgICAgICBpZiAoY2hpbGQtPmlzUmVuZGVyVGFibGVDb2woKSl7CiAg
ICAgICAgICAgICAvLyBSZW5kZXJUYWJsZUNvbHMgZG9uJ3QgaGF2ZSB0aGUgY29uY2VwdCBvZiBw
cmVmZXJyZWQgbG9naWNhbCB3aWR0aCwgYnV0IHdlIG5lZWQgdG8gY2xlYXIgdGhlaXIgZGlydHkg
Yml0cwogICAgICAgICAgICAgLy8gc28gdGhhdCBpZiB3ZSBjYWxsIHNldFByZWZlcnJlZFdpZHRo
c0RpcnR5KHRydWUpIG9uIGEgY29sIG9yIG9uZSBvZiBpdHMgZGVzY2VuZGFudHMsIHdlJ2xsIG1h
cmsgaXQncwpAQCAtNjUsNyArNjUsNyBAQCB2b2lkIEF1dG9UYWJsZUxheW91dDo6cmVjYWxjQ29s
dW1uKHVuc2lnbmVkIGVmZkNvbCkKICAgICAgICAgICAgICAgICBpZiAoY3VycmVudC5pbkNvbFNw
YW4gfHwgIWNlbGwpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAg
ICAgICAgYm9vbCBjZWxsSGFzQ29udGVudCA9IGNlbGwtPmZpcnN0Q2hpbGQoKSB8fCBjZWxsLT5z
dHlsZSgpLT5oYXNCb3JkZXIoKSB8fCBjZWxsLT5zdHlsZSgpLT5oYXNQYWRkaW5nKCk7CisgICAg
ICAgICAgICAgICAgYm9vbCBjZWxsSGFzQ29udGVudCA9IGNlbGwtPmNoaWxkcmVuKCktPmZpcnN0
Q2hpbGQoKSB8fCBjZWxsLT5zdHlsZSgpLT5oYXNCb3JkZXIoKSB8fCBjZWxsLT5zdHlsZSgpLT5o
YXNQYWRkaW5nKCk7CiAgICAgICAgICAgICAgICAgaWYgKGNlbGxIYXNDb250ZW50KQogICAgICAg
ICAgICAgICAgICAgICBjb2x1bW5MYXlvdXQuZW1wdHlDZWxsc09ubHkgPSBmYWxzZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggZmNiNWNjZWJiYTcyODMz
MWJhYWQ4N2E5ZDE5ZjNjNWZkZTYyOGFkNi4uNWJkZjEzOGNiNzQ1OGE5YmEyZmEzOWJmZWU3YTU1
OGUxNTA4ZmRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBA
IC04NCw2ICs4NCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIHN0cnVjdCBTYW1l
U2l6ZUFzUmVuZGVyQmxvY2sgOiBwdWJsaWMgUmVuZGVyQm94IHsKICAgICB2b2lkKiBwb2ludGVy
c1syXTsKKyAgICBSZW5kZXJPYmplY3RDaGlsZExpc3QgY2hpbGRyZW47CiAgICAgUmVuZGVyTGlu
ZUJveExpc3QgbGluZUJveGVzOwogICAgIHVpbnQzMl90IGJpdGZpZWxkczsKIH07CkBAIC0yMTIs
NyArMjEzLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6d2lsbEJlRGVzdHJveWVkKCkKIAogICAgIC8v
IE1ha2Ugc3VyZSB0byBkZXN0cm95IGFub255bW91cyBjaGlsZHJlbiBmaXJzdCB3aGlsZSB0aGV5
IGFyZSBzdGlsbCBjb25uZWN0ZWQgdG8gdGhlIHJlc3Qgb2YgdGhlIHRyZWUsIHNvIHRoYXQgdGhl
eSB3aWxsCiAgICAgLy8gcHJvcGVybHkgZGlydHkgbGluZSBib3hlcyB0aGF0IHRoZXkgYXJlIHJl
bW92ZWQgZnJvbS4gRWZmZWN0cyB0aGF0IGRvIDpiZWZvcmUvOmFmdGVyIG9ubHkgb24gaG92ZXIg
Y291bGQgY3Jhc2ggb3RoZXJ3aXNlLgotICAgIGRlc3Ryb3lMZWZ0b3ZlckNoaWxkcmVuKCk7Cisg
ICAgY2hpbGRyZW4oKS0+ZGVzdHJveUxlZnRvdmVyQ2hpbGRyZW4oKTsKIAogICAgIC8vIERlc3Ry
b3kgb3VyIGNvbnRpbnVhdGlvbiBiZWZvcmUgYW55dGhpbmcgb3RoZXIgdGhhbiBhbm9ueW1vdXMg
Y2hpbGRyZW4uCiAgICAgLy8gVGhlIHJlYXNvbiB3ZSBkb24ndCBkZXN0cm95IGl0IGJlZm9yZSBh
bm9ueW1vdXMgY2hpbGRyZW4gaXMgdGhhdCB0aGV5IG1heQpAQCAtNDY3LDcgKzQ2OCw3IEBAIHZv
aWQgUmVuZGVyQmxvY2s6OmFkZENoaWxkVG9Bbm9ueW1vdXNDb2x1bW5CbG9ja3MoUmVuZGVyT2Jq
ZWN0KiBuZXdDaGlsZCwgUmVuZGVyCiAgICAgaWYgKCFiZWZvcmVDaGlsZCkgewogICAgICAgICAv
LyBDcmVhdGUgYSBuZXcgYmxvY2sgb2YgdGhlIGNvcnJlY3QgdHlwZS4KICAgICAgICAgUmVuZGVy
QmxvY2sqIG5ld0JveCA9IG5ld0NoaWxkSGFzQ29sdW1uU3BhbiA/IGNyZWF0ZUFub255bW91c0Nv
bHVtblNwYW5CbG9jaygpIDogY3JlYXRlQW5vbnltb3VzQ29sdW1uc0Jsb2NrKCk7Ci0gICAgICAg
IGluc2VydENoaWxkSW50ZXJuYWwobmV3Qm94LCBudWxscHRyLCBOb3RpZnlDaGlsZHJlbik7Cisg
ICAgICAgIGNoaWxkcmVuKCktPmFwcGVuZENoaWxkTm9kZSh0aGlzLCBuZXdCb3gpOwogICAgICAg
ICBuZXdCb3gtPmFkZENoaWxkSWdub3JpbmdBbm9ueW1vdXNDb2x1bW5CbG9ja3MobmV3Q2hpbGQs
IDApOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNDkwLDcgKzQ5MSw3IEBAIHZvaWQgUmVu
ZGVyQmxvY2s6OmFkZENoaWxkVG9Bbm9ueW1vdXNDb2x1bW5CbG9ja3MoUmVuZGVyT2JqZWN0KiBu
ZXdDaGlsZCwgUmVuZGVyCiAgICAgCiAgICAgLy8gQ3JlYXRlIGEgbmV3IGFub255bW91cyBib3gg
b2YgdGhlIGFwcHJvcHJpYXRlIHR5cGUuCiAgICAgUmVuZGVyQmxvY2sqIG5ld0JveCA9IG5ld0No
aWxkSGFzQ29sdW1uU3BhbiA/IGNyZWF0ZUFub255bW91c0NvbHVtblNwYW5CbG9jaygpIDogY3Jl
YXRlQW5vbnltb3VzQ29sdW1uc0Jsb2NrKCk7Ci0gICAgaW5zZXJ0Q2hpbGRJbnRlcm5hbChuZXdC
b3gsIG5ld0JlZm9yZUNoaWxkLCBOb3RpZnlDaGlsZHJlbik7CisgICAgY2hpbGRyZW4oKS0+aW5z
ZXJ0Q2hpbGROb2RlKHRoaXMsIG5ld0JveCwgbmV3QmVmb3JlQ2hpbGQpOwogICAgIG5ld0JveC0+
YWRkQ2hpbGRJZ25vcmluZ0Fub255bW91c0NvbHVtbkJsb2NrcyhuZXdDaGlsZCwgMCk7CiAgICAg
cmV0dXJuOwogfQpAQCAtNjA3LDcgKzYwOCw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnNwbGl0Qmxv
Y2tzKFJlbmRlckJsb2NrKiBmcm9tQmxvY2ssIFJlbmRlckJsb2NrKiB0b0Jsb2NrLAogICAgIH0K
IAogICAgIC8vIE5vdyB3ZSBhcmUgYXQgdGhlIGNvbHVtbnMgYmxvY2sgbGV2ZWwuIFdlIG5lZWQg
dG8gcHV0IHRoZSBjbG9uZSBpbnRvIHRoZSB0b0Jsb2NrLgotICAgIHRvQmxvY2stPmluc2VydENo
aWxkSW50ZXJuYWwoY2xvbmVCbG9jaywgbnVsbHB0ciwgTm90aWZ5Q2hpbGRyZW4pOworICAgIHRv
QmxvY2stPmNoaWxkcmVuKCktPmFwcGVuZENoaWxkTm9kZSh0b0Jsb2NrLCBjbG9uZUJsb2NrKTsK
IAogICAgIC8vIE5vdyB0YWtlIGFsbCB0aGUgY2hpbGRyZW4gYWZ0ZXIgY3VyckNoaWxkIGFuZCBy
ZW1vdmUgdGhlbSBmcm9tIHRoZSBmcm9tQmxvY2sKICAgICAvLyBhbmQgcHV0IHRoZW0gaW4gdGhl
IHRvQmxvY2suCkBAIC02NDIsOSArNjQzLDkgQEAgdm9pZCBSZW5kZXJCbG9jazo6c3BsaXRGbG93
KFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQsIFJlbmRlckJsb2NrKiBuZXdCbG9ja0JveCwKIAog
ICAgIFJlbmRlck9iamVjdCogYm94Rmlyc3QgPSBtYWRlTmV3QmVmb3JlQmxvY2sgPyBibG9jay0+
Zmlyc3RDaGlsZCgpIDogcHJlLT5uZXh0U2libGluZygpOwogICAgIGlmIChtYWRlTmV3QmVmb3Jl
QmxvY2spCi0gICAgICAgIGJsb2NrLT5pbnNlcnRDaGlsZEludGVybmFsKHByZSwgYm94Rmlyc3Qs
IE5vdGlmeUNoaWxkcmVuKTsKLSAgICBibG9jay0+aW5zZXJ0Q2hpbGRJbnRlcm5hbChuZXdCbG9j
a0JveCwgYm94Rmlyc3QsIE5vdGlmeUNoaWxkcmVuKTsKLSAgICBibG9jay0+aW5zZXJ0Q2hpbGRJ
bnRlcm5hbChwb3N0LCBib3hGaXJzdCwgTm90aWZ5Q2hpbGRyZW4pOworICAgICAgICBibG9jay0+
Y2hpbGRyZW4oKS0+aW5zZXJ0Q2hpbGROb2RlKGJsb2NrLCBwcmUsIGJveEZpcnN0KTsKKyAgICBi
bG9jay0+Y2hpbGRyZW4oKS0+aW5zZXJ0Q2hpbGROb2RlKGJsb2NrLCBuZXdCbG9ja0JveCwgYm94
Rmlyc3QpOworICAgIGJsb2NrLT5jaGlsZHJlbigpLT5pbnNlcnRDaGlsZE5vZGUoYmxvY2ssIHBv
c3QsIGJveEZpcnN0KTsKICAgICBibG9jay0+c2V0Q2hpbGRyZW5JbmxpbmUoZmFsc2UpOwogICAg
IAogICAgIGlmIChtYWRlTmV3QmVmb3JlQmxvY2spCkBAIC02OTQsMTAgKzY5NSwxMCBAQCB2b2lk
IFJlbmRlckJsb2NrOjptYWtlQ2hpbGRyZW5Bbm9ueW1vdXNDb2x1bW5CbG9ja3MoUmVuZGVyT2Jq
ZWN0KiBiZWZvcmVDaGlsZCwgUgogCiAgICAgUmVuZGVyT2JqZWN0KiBib3hGaXJzdCA9IGJsb2Nr
LT5maXJzdENoaWxkKCk7CiAgICAgaWYgKHByZSkKLSAgICAgICAgYmxvY2stPmluc2VydENoaWxk
SW50ZXJuYWwocHJlLCBib3hGaXJzdCwgTm90aWZ5Q2hpbGRyZW4pOwotICAgIGJsb2NrLT5pbnNl
cnRDaGlsZEludGVybmFsKG5ld0Jsb2NrQm94LCBib3hGaXJzdCwgTm90aWZ5Q2hpbGRyZW4pOwor
ICAgICAgICBibG9jay0+Y2hpbGRyZW4oKS0+aW5zZXJ0Q2hpbGROb2RlKGJsb2NrLCBwcmUsIGJv
eEZpcnN0KTsKKyAgICBibG9jay0+Y2hpbGRyZW4oKS0+aW5zZXJ0Q2hpbGROb2RlKGJsb2NrLCBu
ZXdCbG9ja0JveCwgYm94Rmlyc3QpOwogICAgIGlmIChwb3N0KQotICAgICAgICBibG9jay0+aW5z
ZXJ0Q2hpbGRJbnRlcm5hbChwb3N0LCBib3hGaXJzdCwgTm90aWZ5Q2hpbGRyZW4pOworICAgICAg
ICBibG9jay0+Y2hpbGRyZW4oKS0+aW5zZXJ0Q2hpbGROb2RlKGJsb2NrLCBwb3N0LCBib3hGaXJz
dCk7CiAgICAgYmxvY2stPnNldENoaWxkcmVuSW5saW5lKGZhbHNlKTsKICAgICAKICAgICAvLyBU
aGUgcHJlL3Bvc3QgYmxvY2tzIGFsd2F5cyBoYXZlIGxheWVycywgc28gd2Uga25vdyB0byBhbHdh
eXMgZG8gYSBmdWxsIGluc2VydC9yZW1vdmUgKHNvIHdlIHBhc3MgdHJ1ZSBhcyB0aGUgbGFzdCBh
cmd1bWVudCkuCkBAIC0xMDA0LDcgKzEwMDUsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjptYWtlQ2hp
bGRyZW5Ob25JbmxpbmUoUmVuZGVyT2JqZWN0ICppbnNlcnRpb25Qb2ludCkKICAgICAgICAgY2hp
bGQgPSBpbmxpbmVSdW5FbmQtPm5leHRTaWJsaW5nKCk7CiAKICAgICAgICAgUmVuZGVyQmxvY2sq
IGJsb2NrID0gY3JlYXRlQW5vbnltb3VzQmxvY2soKTsKLSAgICAgICAgaW5zZXJ0Q2hpbGRJbnRl
cm5hbChibG9jaywgaW5saW5lUnVuU3RhcnQsIE5vdGlmeUNoaWxkcmVuKTsKKyAgICAgICAgY2hp
bGRyZW4oKS0+aW5zZXJ0Q2hpbGROb2RlKHRoaXMsIGJsb2NrLCBpbmxpbmVSdW5TdGFydCk7CiAg
ICAgICAgIG1vdmVDaGlsZHJlblRvKGJsb2NrLCBpbmxpbmVSdW5TdGFydCwgY2hpbGQpOwogICAg
IH0KIApAQCAtMTAyNCw4ICsxMDI1LDggQEAgdm9pZCBSZW5kZXJCbG9jazo6cmVtb3ZlTGVmdG92
ZXJBbm9ueW1vdXNCbG9jayhSZW5kZXJCbG9jayogY2hpbGQpCiAgICAgaWYgKGNoaWxkLT5jb250
aW51YXRpb24oKSB8fCAoY2hpbGQtPmZpcnN0Q2hpbGQoKSAmJiAoY2hpbGQtPmlzQW5vbnltb3Vz
Q29sdW1uU3BhbkJsb2NrKCkgfHwgY2hpbGQtPmlzQW5vbnltb3VzQ29sdW1uc0Jsb2NrKCkpKSkK
ICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIFJlbmRlck9iamVjdCogZmlyc3RBbkNoaWxkID0g
Y2hpbGQtPmZpcnN0Q2hpbGQoKTsKLSAgICBSZW5kZXJPYmplY3QqIGxhc3RBbkNoaWxkID0gY2hp
bGQtPmxhc3RDaGlsZCgpOworICAgIFJlbmRlck9iamVjdCogZmlyc3RBbkNoaWxkID0gY2hpbGQt
Pm1fY2hpbGRyZW4uZmlyc3RDaGlsZCgpOworICAgIFJlbmRlck9iamVjdCogbGFzdEFuQ2hpbGQg
PSBjaGlsZC0+bV9jaGlsZHJlbi5sYXN0Q2hpbGQoKTsKICAgICBpZiAoZmlyc3RBbkNoaWxkKSB7
CiAgICAgICAgIFJlbmRlck9iamVjdCogbyA9IGZpcnN0QW5DaGlsZDsKICAgICAgICAgd2hpbGUg
KG8pIHsKQEAgLTEwMzksMTUgKzEwNDAsMTUgQEAgdm9pZCBSZW5kZXJCbG9jazo6cmVtb3ZlTGVm
dG92ZXJBbm9ueW1vdXNCbG9jayhSZW5kZXJCbG9jayogY2hpbGQpCiAgICAgICAgIGlmIChjaGls
ZC0+bmV4dFNpYmxpbmcoKSkKICAgICAgICAgICAgIGNoaWxkLT5uZXh0U2libGluZygpLT5zZXRQ
cmV2aW91c1NpYmxpbmcobGFzdEFuQ2hpbGQpOwogICAgICAgICAgICAgCi0gICAgICAgIGlmIChj
aGlsZCA9PSBmaXJzdENoaWxkKCkpCi0gICAgICAgICAgICBzZXRGaXJzdENoaWxkKGZpcnN0QW5D
aGlsZCk7Ci0gICAgICAgIGlmIChjaGlsZCA9PSBsYXN0Q2hpbGQoKSkKLSAgICAgICAgICAgIHNl
dExhc3RDaGlsZChsYXN0QW5DaGlsZCk7CisgICAgICAgIGlmIChjaGlsZCA9PSBtX2NoaWxkcmVu
LmZpcnN0Q2hpbGQoKSkKKyAgICAgICAgICAgIG1fY2hpbGRyZW4uc2V0Rmlyc3RDaGlsZChmaXJz
dEFuQ2hpbGQpOworICAgICAgICBpZiAoY2hpbGQgPT0gbV9jaGlsZHJlbi5sYXN0Q2hpbGQoKSkK
KyAgICAgICAgICAgIG1fY2hpbGRyZW4uc2V0TGFzdENoaWxkKGxhc3RBbkNoaWxkKTsKICAgICB9
IGVsc2UgewotICAgICAgICBpZiAoY2hpbGQgPT0gZmlyc3RDaGlsZCgpKQotICAgICAgICAgICAg
c2V0Rmlyc3RDaGlsZChjaGlsZC0+bmV4dFNpYmxpbmcoKSk7Ci0gICAgICAgIGlmIChjaGlsZCA9
PSBsYXN0Q2hpbGQoKSkKLSAgICAgICAgICAgIHNldExhc3RDaGlsZChjaGlsZC0+cHJldmlvdXNT
aWJsaW5nKCkpOworICAgICAgICBpZiAoY2hpbGQgPT0gbV9jaGlsZHJlbi5maXJzdENoaWxkKCkp
CisgICAgICAgICAgICBtX2NoaWxkcmVuLnNldEZpcnN0Q2hpbGQoY2hpbGQtPm5leHRTaWJsaW5n
KCkpOworICAgICAgICBpZiAoY2hpbGQgPT0gbV9jaGlsZHJlbi5sYXN0Q2hpbGQoKSkKKyAgICAg
ICAgICAgIG1fY2hpbGRyZW4uc2V0TGFzdENoaWxkKGNoaWxkLT5wcmV2aW91c1NpYmxpbmcoKSk7
CiAKICAgICAgICAgaWYgKGNoaWxkLT5wcmV2aW91c1NpYmxpbmcoKSkKICAgICAgICAgICAgIGNo
aWxkLT5wcmV2aW91c1NpYmxpbmcoKS0+c2V0TmV4dFNpYmxpbmcoY2hpbGQtPm5leHRTaWJsaW5n
KCkpOwpAQCAtMTA1NSw3ICsxMDU2LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6cmVtb3ZlTGVmdG92
ZXJBbm9ueW1vdXNCbG9jayhSZW5kZXJCbG9jayogY2hpbGQpCiAgICAgICAgICAgICBjaGlsZC0+
bmV4dFNpYmxpbmcoKS0+c2V0UHJldmlvdXNTaWJsaW5nKGNoaWxkLT5wcmV2aW91c1NpYmxpbmco
KSk7CiAgICAgfQogCi0gICAgY2hpbGQtPnNldEZpcnN0Q2hpbGQoMCk7CisgICAgY2hpbGQtPmNo
aWxkcmVuKCktPnNldEZpcnN0Q2hpbGQoMCk7CiAgICAgY2hpbGQtPm1fbmV4dCA9IDA7CiAKICAg
ICAvLyBSZW1vdmUgYWxsIHRoZSBpbmZvcm1hdGlvbiBpbiB0aGUgZmxvdyB0aHJlYWQgYXNzb2Np
YXRlZCB3aXRoIHRoZSBsZWZ0b3ZlciBhbm9ueW1vdXMgYmxvY2suCkBAIC0xMDkzLDcgKzEwOTQs
NyBAQCBzdGF0aWMgYm9vbCBjYW5NZXJnZUNvbnRpZ3VvdXNBbm9ueW1vdXNCbG9ja3MoUmVuZGVy
T2JqZWN0KiBvbGRDaGlsZCwgUmVuZGVyT2JqZQogICAgICAgICAgICAmJiBwcmV2LT5pc0Fub255
bW91c0NvbHVtblNwYW5CbG9jaygpID09IG5leHQtPmlzQW5vbnltb3VzQ29sdW1uU3BhbkJsb2Nr
KCk7CiB9CiAKLXZvaWQgUmVuZGVyQmxvY2s6OmNvbGxhcHNlQW5vbnltb3VzQm94Q2hpbGQoUmVu
ZGVyQmxvY2sqIHBhcmVudCwgUmVuZGVyQmxvY2sqIGNoaWxkKQordm9pZCBSZW5kZXJCbG9jazo6
Y29sbGFwc2VBbm9ueW1vdXNCb3hDaGlsZChSZW5kZXJCbG9jayogcGFyZW50LCBSZW5kZXJPYmpl
Y3QqIGNoaWxkKQogewogICAgIHBhcmVudC0+c2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVj
YWxjKCk7CiAgICAgcGFyZW50LT5zZXRDaGlsZHJlbklubGluZShjaGlsZC0+Y2hpbGRyZW5Jbmxp
bmUoKSk7CkBAIC0xMTAxLDE0ICsxMTAyLDE0IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmNvbGxhcHNl
QW5vbnltb3VzQm94Q2hpbGQoUmVuZGVyQmxvY2sqIHBhcmVudCwgUmVuZGVyQmxvY2sqIGNoCiAK
ICAgICBSZW5kZXJGbG93VGhyZWFkKiBjaGlsZEZsb3dUaHJlYWQgPSBjaGlsZC0+Zmxvd1RocmVh
ZENvbnRhaW5pbmdCbG9jaygpOwogICAgIEN1cnJlbnRSZW5kZXJGbG93VGhyZWFkTWFpbnRhaW5l
ciBmbG93VGhyZWFkTWFpbnRhaW5lcihjaGlsZEZsb3dUaHJlYWQpOwotCi0gICAgcGFyZW50LT5y
ZW1vdmVDaGlsZEludGVybmFsKGNoaWxkLCBjaGlsZC0+aGFzTGF5ZXIoKSA/IE5vdGlmeUNoaWxk
cmVuIDogRG9udE5vdGlmeUNoaWxkcmVuKTsKLSAgICBjaGlsZC0+bW92ZUFsbENoaWxkcmVuVG8o
cGFyZW50LCBuZXh0U2libGluZywgY2hpbGQtPmhhc0xheWVyKCkpOworICAgIAorICAgIFJlbmRl
ckJsb2NrKiBhbm9uQmxvY2sgPSB0b1JlbmRlckJsb2NrKHBhcmVudC0+Y2hpbGRyZW4oKS0+cmVt
b3ZlQ2hpbGROb2RlKHBhcmVudCwgY2hpbGQsIGNoaWxkLT5oYXNMYXllcigpKSk7CisgICAgYW5v
bkJsb2NrLT5tb3ZlQWxsQ2hpbGRyZW5UbyhwYXJlbnQsIG5leHRTaWJsaW5nLCBjaGlsZC0+aGFz
TGF5ZXIoKSk7CiAgICAgLy8gRGVsZXRlIHRoZSBub3ctZW1wdHkgYmxvY2sncyBsaW5lcyBhbmQg
bnVrZSBpdC4KLSAgICBjaGlsZC0+ZGVsZXRlTGluZUJveFRyZWUoKTsKKyAgICBhbm9uQmxvY2st
PmRlbGV0ZUxpbmVCb3hUcmVlKCk7CiAgICAgaWYgKGNoaWxkRmxvd1RocmVhZCAmJiBjaGlsZEZs
b3dUaHJlYWQtPmlzUmVuZGVyTmFtZWRGbG93VGhyZWFkKCkpCi0gICAgICAgIHRvUmVuZGVyTmFt
ZWRGbG93VGhyZWFkKGNoaWxkRmxvd1RocmVhZCktPnJlbW92ZUZsb3dDaGlsZEluZm8oY2hpbGQp
OwotICAgIGNoaWxkLT5kZXN0cm95KCk7CisgICAgICAgIHRvUmVuZGVyTmFtZWRGbG93VGhyZWFk
KGNoaWxkRmxvd1RocmVhZCktPnJlbW92ZUZsb3dDaGlsZEluZm8oYW5vbkJsb2NrKTsKKyAgICBh
bm9uQmxvY2stPmRlc3Ryb3koKTsKIH0KIAogdm9pZCBSZW5kZXJCbG9jazo6bW92ZUFsbENoaWxk
cmVuSW5jbHVkaW5nRmxvYXRzVG8oUmVuZGVyQmxvY2sqIHRvQmxvY2ssIGJvb2wgZnVsbFJlbW92
ZUluc2VydCkKQEAgLTExODcsMTIgKzExODgsMTEgQEAgdm9pZCBSZW5kZXJCbG9jazo6cmVtb3Zl
Q2hpbGQoUmVuZGVyT2JqZWN0KiBvbGRDaGlsZCkKICAgICAgICAgICAgIC8vIENhY2hlIHRoaXMg
dmFsdWUgYXMgaXQgbWlnaHQgZ2V0IGNoYW5nZWQgaW4gc2V0U3R5bGUoKSBjYWxsLgogICAgICAg
ICAgICAgYm9vbCBpbmxpbmVDaGlsZHJlbkJsb2NrSGFzTGF5ZXIgPSBpbmxpbmVDaGlsZHJlbkJs
b2NrLT5oYXNMYXllcigpOwogICAgICAgICAgICAgaW5saW5lQ2hpbGRyZW5CbG9jay0+c2V0U3R5
bGUobmV3U3R5bGUpOwotICAgICAgICAgICAgcmVtb3ZlQ2hpbGRJbnRlcm5hbChpbmxpbmVDaGls
ZHJlbkJsb2NrLCBpbmxpbmVDaGlsZHJlbkJsb2NrSGFzTGF5ZXIgPyBOb3RpZnlDaGlsZHJlbiA6
IERvbnROb3RpZnlDaGlsZHJlbik7CisgICAgICAgICAgICBjaGlsZHJlbigpLT5yZW1vdmVDaGls
ZE5vZGUodGhpcywgaW5saW5lQ2hpbGRyZW5CbG9jaywgaW5saW5lQ2hpbGRyZW5CbG9ja0hhc0xh
eWVyKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gTm93IGp1c3QgcHV0IHRoZSBpbmxp
bmVDaGlsZHJlbkJsb2NrIGluc2lkZSB0aGUgYmxvY2tDaGlsZHJlbkJsb2NrLgotICAgICAgICAg
ICAgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IHByZXYgPT0gaW5saW5lQ2hpbGRyZW5CbG9j
ayA/IGJsb2NrQ2hpbGRyZW5CbG9jay0+Zmlyc3RDaGlsZCgpIDogbnVsbHB0cjsKLSAgICAgICAg
ICAgIGJsb2NrQ2hpbGRyZW5CbG9jay0+aW5zZXJ0Q2hpbGRJbnRlcm5hbChpbmxpbmVDaGlsZHJl
bkJsb2NrLCBiZWZvcmVDaGlsZCwKLSAgICAgICAgICAgICAgICAoaW5saW5lQ2hpbGRyZW5CbG9j
a0hhc0xheWVyIHx8IGJsb2NrQ2hpbGRyZW5CbG9jay0+aGFzTGF5ZXIoKSkgPyBOb3RpZnlDaGls
ZHJlbiA6IERvbnROb3RpZnlDaGlsZHJlbik7CisgICAgICAgICAgICBibG9ja0NoaWxkcmVuQmxv
Y2stPmNoaWxkcmVuKCktPmluc2VydENoaWxkTm9kZShibG9ja0NoaWxkcmVuQmxvY2ssIGlubGlu
ZUNoaWxkcmVuQmxvY2ssIHByZXYgPT0gaW5saW5lQ2hpbGRyZW5CbG9jayA/IGJsb2NrQ2hpbGRy
ZW5CbG9jay0+Zmlyc3RDaGlsZCgpIDogMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubGluZUNoaWxkcmVuQmxvY2tIYXNMYXll
ciB8fCBibG9ja0NoaWxkcmVuQmxvY2stPmhhc0xheWVyKCkpOwogICAgICAgICAgICAgbmV4dC0+
c2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7CiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIC8vIGlubGluZUNoaWxkcmVuQmxvY2sgZ290IHJlcGFyZW50ZWQgdG8gYmxvY2tDaGls
ZHJlbkJsb2NrLCBzbyBpdCBpcyBubyBsb25nZXIgYSBjaGlsZApAQCAtMTIyMCw3ICsxMjIwLDcg
QEAgdm9pZCBSZW5kZXJCbG9jazo6cmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0KiBvbGRDaGlsZCkK
ICAgICAgICAgLy8gVGhlIHJlbW92YWwgaGFzIGtub2NrZWQgdXMgZG93biB0byBjb250YWluaW5n
IG9ubHkgYSBzaW5nbGUgYW5vbnltb3VzCiAgICAgICAgIC8vIGJveC4gIFdlIGNhbiBnbyBhaGVh
ZCBhbmQgcHVsbCB0aGUgY29udGVudCByaWdodCBiYWNrIHVwIGludG8gb3VyCiAgICAgICAgIC8v
IGJveC4KLSAgICAgICAgY29sbGFwc2VBbm9ueW1vdXNCb3hDaGlsZCh0aGlzLCB0b1JlbmRlckJs
b2NrKGNoaWxkKSk7CisgICAgICAgIGNvbGxhcHNlQW5vbnltb3VzQm94Q2hpbGQodGhpcywgY2hp
bGQpOwogICAgIH0gZWxzZSBpZiAoKChwcmV2ICYmIHByZXYtPmlzQW5vbnltb3VzQmxvY2soKSkg
fHwgKG5leHQgJiYgbmV4dC0+aXNBbm9ueW1vdXNCbG9jaygpKSkgJiYgY2FuQ29sbGFwc2VBbm9u
eW1vdXNCbG9ja0NoaWxkKCkpIHsKICAgICAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IHRoZSBy
ZW1vdmFsIGhhcyBrbm9ja2VkIHVzIGRvd24gdG8gYSBzaW5nbGUgYW5vbnltb3VzCiAgICAgICAg
IC8vIGJsb2NrIHdpdGggcHNldWRvLXN0eWxlIGVsZW1lbnQgc2libGluZ3MgKGUuZy4gZmlyc3Qt
bGV0dGVyKS4gSWYgdGhlc2UKQEAgLTU4NDUsNyArNTg0NSw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6
OnVwZGF0ZUZpcnN0TGV0dGVyU3R5bGUoUmVuZGVyT2JqZWN0KiBmaXJzdExldHRlckJsb2NrLCBS
ZW5kZXJPCiAgICAgICAgIH0KICAgICAgICAgLy8gVG8gcHJldmVudCByZW1vdmFsIG9mIHNpbmds
ZSBhbm9ueW1vdXMgYmxvY2sgaW4gUmVuZGVyQmxvY2s6OnJlbW92ZUNoaWxkIGFuZCBjYXVzaW5n
CiAgICAgICAgIC8vIHxuZXh0U2libGluZ3wgdG8gZ28gc3RhbGUsIHdlIHJlbW92ZSB0aGUgb2xk
IGZpcnN0IGxldHRlciB1c2luZyByZW1vdmVDaGlsZE5vZGUgZmlyc3QuCi0gICAgICAgIGZpcnN0
TGV0dGVyQ29udGFpbmVyLT5yZW1vdmVDaGlsZEludGVybmFsKGZpcnN0TGV0dGVyLCBOb3RpZnlD
aGlsZHJlbik7CisgICAgICAgIGZpcnN0TGV0dGVyQ29udGFpbmVyLT5jaGlsZHJlbigpLT5yZW1v
dmVDaGlsZE5vZGUoZmlyc3RMZXR0ZXJDb250YWluZXIsIGZpcnN0TGV0dGVyKTsKICAgICAgICAg
Zmlyc3RMZXR0ZXItPmRlc3Ryb3koKTsKICAgICAgICAgZmlyc3RMZXR0ZXIgPSBuZXdGaXJzdExl
dHRlcjsKICAgICAgICAgZmlyc3RMZXR0ZXJDb250YWluZXItPmFkZENoaWxkKGZpcnN0TGV0dGVy
LCBuZXh0U2libGluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4
IDk4YWQzZmFjYjI4ODBmMDVkNjRlOGI1MzYxZmE3Nzg5MGNiODRkMDAuLjY3YWIzYjllZWJhZmIx
MDczOTEzOWFiOGVhZDI4ZjJkMTc5MjViYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5oCkBAIC0xMDQsNiArMTA0LDEyIEBAIHByb3RlY3RlZDoKIHB1YmxpYzoKICAgICBz
dGF0aWMgUmVuZGVyQmxvY2sqIGNyZWF0ZUFub255bW91cyhEb2N1bWVudCYpOwogCisgICAgUmVu
ZGVyT2JqZWN0KiBmaXJzdENoaWxkKCkgY29uc3QgeyByZXR1cm4gbV9jaGlsZHJlbi5maXJzdENo
aWxkKCk7IH0KKyAgICBSZW5kZXJPYmplY3QqIGxhc3RDaGlsZCgpIGNvbnN0IHsgcmV0dXJuIG1f
Y2hpbGRyZW4ubGFzdENoaWxkKCk7IH0KKworICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0
Q2hpbGRMaXN0KiBjaGlsZHJlbigpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuICZtX2No
aWxkcmVuOyB9CisgICAgdmlydHVhbCBSZW5kZXJPYmplY3RDaGlsZExpc3QqIGNoaWxkcmVuKCkg
T1ZFUlJJREUgRklOQUwgeyByZXR1cm4gJm1fY2hpbGRyZW47IH0KKwogICAgIGJvb2wgYmVpbmdE
ZXN0cm95ZWQoKSBjb25zdCB7IHJldHVybiBtX2JlaW5nRGVzdHJveWVkOyB9CiAKICAgICAvLyBU
aGVzZSB0d28gZnVuY3Rpb25zIGFyZSBvdmVycmlkZGVuIGZvciBpbmxpbmUtYmxvY2suCkBAIC0y
ODYsNyArMjkyLDcgQEAgcHVibGljOgogICAgIFJlbmRlckJsb2NrKiBjcmVhdGVBbm9ueW1vdXNC
bG9jayhFRGlzcGxheSBkaXNwbGF5ID0gQkxPQ0spIGNvbnN0IHsgcmV0dXJuIGNyZWF0ZUFub255
bW91c1dpdGhQYXJlbnRSZW5kZXJlckFuZERpc3BsYXkodGhpcywgZGlzcGxheSk7IH0KICAgICBS
ZW5kZXJCbG9jayogY3JlYXRlQW5vbnltb3VzQ29sdW1uc0Jsb2NrKCkgY29uc3QgeyByZXR1cm4g
Y3JlYXRlQW5vbnltb3VzQ29sdW1uc1dpdGhQYXJlbnRSZW5kZXJlcih0aGlzKTsgfQogICAgIFJl
bmRlckJsb2NrKiBjcmVhdGVBbm9ueW1vdXNDb2x1bW5TcGFuQmxvY2soKSBjb25zdCB7IHJldHVy
biBjcmVhdGVBbm9ueW1vdXNDb2x1bW5TcGFuV2l0aFBhcmVudFJlbmRlcmVyKHRoaXMpOyB9Ci0g
ICAgc3RhdGljIHZvaWQgY29sbGFwc2VBbm9ueW1vdXNCb3hDaGlsZChSZW5kZXJCbG9jayogcGFy
ZW50LCBSZW5kZXJCbG9jayogY2hpbGQpOworICAgIHN0YXRpYyB2b2lkIGNvbGxhcHNlQW5vbnlt
b3VzQm94Q2hpbGQoUmVuZGVyQmxvY2sqIHBhcmVudCwgUmVuZGVyT2JqZWN0KiBjaGlsZCk7CiAK
ICAgICB2aXJ0dWFsIFJlbmRlckJveCogY3JlYXRlQW5vbnltb3VzQm94V2l0aFNhbWVUeXBlQXMo
Y29uc3QgUmVuZGVyT2JqZWN0KiBwYXJlbnQpIGNvbnN0IE9WRVJSSURFOwogCkBAIC01NjUsNyAr
NTcxLDYgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlckJsb2NrKCkgY29u
c3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0lu
bGluZUJsb2NrT3JJbmxpbmVUYWJsZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIGlz
SW5saW5lKCkgJiYgaXNSZXBsYWNlZCgpOyB9Ci0gICAgdmlydHVhbCBib29sIGNhbkhhdmVDaGls
ZHJlbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZvaWQgbWFrZUNo
aWxkcmVuTm9uSW5saW5lKFJlbmRlck9iamVjdCogaW5zZXJ0aW9uUG9pbnQgPSAwKTsKICAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlTGVmdG92ZXJBbm9ueW1vdXNCbG9jayhSZW5kZXJCbG9jayogY2hp
bGQpOwpAQCAtODczLDYgKzg3OCw3IEBAIHByb3RlY3RlZDoKICAgICBPd25QdHI8RmxvYXRpbmdP
YmplY3RzPiBtX2Zsb2F0aW5nT2JqZWN0czsKICAgICBPd25QdHI8UmVuZGVyQmxvY2tSYXJlRGF0
YT4gbV9yYXJlRGF0YTsKIAorICAgIFJlbmRlck9iamVjdENoaWxkTGlzdCBtX2NoaWxkcmVuOwog
ICAgIFJlbmRlckxpbmVCb3hMaXN0IG1fbGluZUJveGVzOyAgIC8vIEFsbCBvZiB0aGUgcm9vdCBs
aW5lIGJveGVzIGNyZWF0ZWQgZm9yIHRoaXMgYmxvY2sgZmxvdy4gIEZvciBleGFtcGxlLCA8ZGl2
PkhlbGxvPGJyPndvcmxkLjwvZGl2PiB3aWxsIGhhdmUgdHdvIHRvdGFsIGxpbmVzIGZvciB0aGUg
PGRpdj4uCiAKICAgICBtdXRhYmxlIHNpZ25lZCBtX2xpbmVIZWlnaHQgOiAyNzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggOWE2NDhmMzBkOWFkMDA2OTk1MWUxOTlj
ZTA0ODFhZDE5OWYxZDRmZS4uM2I4ZjQ4YTBjMjJiMWQzZTliNzlhZTZjM2FjYTk3ZmQxMmZjZDcx
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTQ2NDcsNyArNDY0
Nyw3IEBAIFJlbmRlck9iamVjdCogUmVuZGVyQm94OjpzcGxpdEFub255bW91c0JveGVzQXJvdW5k
Q2hpbGQoUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsCiAgICAgICAgICAgICAvLyBzbyB0aGF0IHRo
ZSB0YWJsZSByZXBhaW50aW5nIGxvZ2ljIGtub3dzIHRoZSBzdHJ1Y3R1cmUgaXMgZGlydHkuCiAg
ICAgICAgICAgICAvLyBTZWUgZm9yIGV4YW1wbGUgUmVuZGVyVGFibGVDZWxsOmNsaXBwZWRPdmVy
Zmxvd1JlY3RGb3JSZXBhaW50LgogICAgICAgICAgICAgbWFya0JveEZvclJlbGF5b3V0QWZ0ZXJT
cGxpdChwYXJlbnRCb3gpOwotICAgICAgICAgICAgcGFyZW50Qm94LT5pbnNlcnRDaGlsZEludGVy
bmFsKHBvc3RCb3gsIGJveFRvU3BsaXQtPm5leHRTaWJsaW5nKCksIE5vdGlmeUNoaWxkcmVuKTsK
KyAgICAgICAgICAgIHBhcmVudEJveC0+Y2hpbGRyZW4oKS0+aW5zZXJ0Q2hpbGROb2RlKHBhcmVu
dEJveCwgcG9zdEJveCwgYm94VG9TcGxpdC0+bmV4dFNpYmxpbmcoKSk7CiAgICAgICAgICAgICBi
b3hUb1NwbGl0LT5tb3ZlQ2hpbGRyZW5Ubyhwb3N0Qm94LCBiZWZvcmVDaGlsZCwgMCwgdHJ1ZSk7
CiAKICAgICAgICAgICAgIG1hcmtCb3hGb3JSZWxheW91dEFmdGVyU3BsaXQoYm94VG9TcGxpdCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNw
cAppbmRleCAzMjM3ZDFjMjJlNmY4NzEyMDgxM2E1NWM1OGY2NGI0Nzg1NjQ4YzcyLi42MThmYWRk
MzRmYWY5N2QzMjY1MGNiODk1MDJhMzM3YmQ2YjliNjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKQEAgLTI3ODEsMTMgKzI3ODEs
OSBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojptb3ZlQ2hpbGRUbyhSZW5kZXJCb3hNb2Rl
bE9iamVjdCogdG9Cb3hNb2RlbE9iamVjdCwgUgogICAgIGlmIChmdWxsUmVtb3ZlSW5zZXJ0ICYm
ICh0b0JveE1vZGVsT2JqZWN0LT5pc1JlbmRlckJsb2NrKCkgfHwgdG9Cb3hNb2RlbE9iamVjdC0+
aXNSZW5kZXJJbmxpbmUoKSkpIHsKICAgICAgICAgLy8gVGFrZXMgY2FyZSBvZiBhZGRpbmcgdGhl
IG5ldyBjaGlsZCBjb3JyZWN0bHkgaWYgdG9CbG9jayBhbmQgZnJvbUJsb2NrCiAgICAgICAgIC8v
IGhhdmUgZGlmZmVyZW50IGtpbmQgb2YgY2hpbGRyZW4gKGJsb2NrIHZzIGlubGluZSkuCi0gICAg
ICAgIHJlbW92ZUNoaWxkSW50ZXJuYWwoY2hpbGQsIE5vdGlmeUNoaWxkcmVuKTsKLSAgICAgICAg
dG9Cb3hNb2RlbE9iamVjdC0+YWRkQ2hpbGQoY2hpbGQsIGJlZm9yZUNoaWxkKTsKLSAgICB9IGVs
c2UgewotICAgICAgICBOb3RpZnlDaGlsZHJlblR5cGUgbm90aWZ5VHlwZSA9IGZ1bGxSZW1vdmVJ
bnNlcnQgPyBOb3RpZnlDaGlsZHJlbiA6IERvbnROb3RpZnlDaGlsZHJlbjsKLSAgICAgICAgcmVt
b3ZlQ2hpbGRJbnRlcm5hbChjaGlsZCwgbm90aWZ5VHlwZSk7Ci0gICAgICAgIHRvQm94TW9kZWxP
YmplY3QtPmluc2VydENoaWxkSW50ZXJuYWwoY2hpbGQsIGJlZm9yZUNoaWxkLCBub3RpZnlUeXBl
KTsKLSAgICB9CisgICAgICAgIHRvQm94TW9kZWxPYmplY3QtPmFkZENoaWxkKGNoaWxkcmVuKCkt
PnJlbW92ZUNoaWxkTm9kZSh0aGlzLCBjaGlsZCksIGJlZm9yZUNoaWxkKTsKKyAgICB9IGVsc2UK
KyAgICAgICAgdG9Cb3hNb2RlbE9iamVjdC0+Y2hpbGRyZW4oKS0+aW5zZXJ0Q2hpbGROb2RlKHRv
Qm94TW9kZWxPYmplY3QsIGNoaWxkcmVuKCktPnJlbW92ZUNoaWxkTm9kZSh0aGlzLCBjaGlsZCwg
ZnVsbFJlbW92ZUluc2VydCksIGJlZm9yZUNoaWxkLCBmdWxsUmVtb3ZlSW5zZXJ0KTsKIH0KIAog
dm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6bW92ZUNoaWxkcmVuVG8oUmVuZGVyQm94TW9kZWxP
YmplY3QqIHRvQm94TW9kZWxPYmplY3QsIFJlbmRlck9iamVjdCogc3RhcnRDaGlsZCwgUmVuZGVy
T2JqZWN0KiBlbmRDaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCwgYm9vbCBmdWxsUmVt
b3ZlSW5zZXJ0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmlu
ZGV4IGY3MDE5ZGFiYTZiZWY2YzFkNjU4ZTBkYzY2ZmU4MGYyYjA2NTMyOGMuLmNmZmVjMTU2Yjcw
Mjc4MmEyM2JmYTMwYTA5N2I4MmY5ZWJhZDI1ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTI1LDE2ICsyNSwxMyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2Fj
aGUuaCIKICNpbmNsdWRlICJDb250ZW50RGF0YS5oIgotI2luY2x1ZGUgIlJlbmRlckNvdW50ZXIu
aCIKICNpbmNsdWRlICJSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guaCIKICNpbmNsdWRlICJS
ZW5kZXJGbGV4aWJsZUJveC5oIgogI2luY2x1ZGUgIlJlbmRlckdyaWQuaCIKICNpbmNsdWRlICJS
ZW5kZXJJbWFnZS5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlLmgi
CiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKLSNpbmNsdWRlICJSZW5kZXJMaW5lQnJlYWsuaCIK
ICNpbmNsdWRlICJSZW5kZXJMaXN0SXRlbS5oIgogI2luY2x1ZGUgIlJlbmRlck11bHRpQ29sdW1u
QmxvY2suaCIKICNpbmNsdWRlICJSZW5kZXJSZWdpb24uaCIKQEAgLTQ1LDE1ICs0MiwxMiBAQAog
I2luY2x1ZGUgIlJlbmRlclRhYmxlQ29sLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGFibGVSb3cuaCIK
ICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCi0jaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1
ZGUgIlNWR1JlbmRlclN1cHBvcnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJF
bGVtZW50OjpSZW5kZXJFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgOiBSZW5kZXJPYmpl
Y3QoZWxlbWVudCkKLSAgICAsIG1fZmlyc3RDaGlsZChudWxscHRyKQotICAgICwgbV9sYXN0Q2hp
bGQobnVsbHB0cikKIHsKIH0KIApAQCAtMTQyLDYgKzEzNiw5IEBAIFJlbmRlckVsZW1lbnQqIFJl
bmRlckVsZW1lbnQ6OmNyZWF0ZUZvcihFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYgc3R5
bGUpCiAKIHZvaWQgUmVuZGVyRWxlbWVudDo6YWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBuZXdDaGls
ZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCkKIHsKKyAgICBBU1NFUlQoY2hpbGRyZW4oKSk7
CisgICAgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0JiBjaGlsZHJlbiA9ICp0aGlzLT5jaGlsZHJlbigp
OworCiAgICAgYm9vbCBuZWVkc1RhYmxlID0gZmFsc2U7CiAKICAgICBpZiAobmV3Q2hpbGQtPmlz
UmVuZGVyVGFibGVDb2woKSkgewpAQCAtMTU5LDcgKzE1Niw3IEBAIHZvaWQgUmVuZGVyRWxlbWVu
dDo6YWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBuZXdDaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVD
aGlsZCkKIAogICAgIGlmIChuZWVkc1RhYmxlKSB7CiAgICAgICAgIFJlbmRlclRhYmxlKiB0YWJs
ZTsKLSAgICAgICAgUmVuZGVyT2JqZWN0KiBhZnRlckNoaWxkID0gYmVmb3JlQ2hpbGQgPyBiZWZv
cmVDaGlsZC0+cHJldmlvdXNTaWJsaW5nKCkgOiBtX2xhc3RDaGlsZDsKKyAgICAgICAgUmVuZGVy
T2JqZWN0KiBhZnRlckNoaWxkID0gYmVmb3JlQ2hpbGQgPyBiZWZvcmVDaGlsZC0+cHJldmlvdXNT
aWJsaW5nKCkgOiBjaGlsZHJlbi5sYXN0Q2hpbGQoKTsKICAgICAgICAgaWYgKGFmdGVyQ2hpbGQg
JiYgYWZ0ZXJDaGlsZC0+aXNBbm9ueW1vdXMoKSAmJiBhZnRlckNoaWxkLT5pc1RhYmxlKCkgJiYg
IWFmdGVyQ2hpbGQtPmlzQmVmb3JlQ29udGVudCgpKQogICAgICAgICAgICAgdGFibGUgPSB0b1Jl
bmRlclRhYmxlKGFmdGVyQ2hpbGQpOwogICAgICAgICBlbHNlIHsKQEAgLTE2OCw3ICsxNjUsNyBA
QCB2b2lkIFJlbmRlckVsZW1lbnQ6OmFkZENoaWxkKFJlbmRlck9iamVjdCogbmV3Q2hpbGQsIFJl
bmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCiAgICAgICAgIH0KICAgICAgICAgdGFibGUtPmFkZENo
aWxkKG5ld0NoaWxkKTsKICAgICB9IGVsc2UKLSAgICAgICAgaW5zZXJ0Q2hpbGRJbnRlcm5hbChu
ZXdDaGlsZCwgYmVmb3JlQ2hpbGQsIE5vdGlmeUNoaWxkcmVuKTsKKyAgICAgICAgY2hpbGRyZW4u
aW5zZXJ0Q2hpbGROb2RlKHRoaXMsIG5ld0NoaWxkLCBiZWZvcmVDaGlsZCk7CiAKICAgICBpZiAo
bmV3Q2hpbGQtPmlzVGV4dCgpICYmIG5ld0NoaWxkLT5zdHlsZSgpLT50ZXh0VHJhbnNmb3JtKCkg
PT0gQ0FQSVRBTElaRSkKICAgICAgICAgdG9SZW5kZXJUZXh0KG5ld0NoaWxkKS0+dHJhbnNmb3Jt
VGV4dCgpOwpAQCAtMTkxLDEzOSArMTg4LDggQEAgdm9pZCBSZW5kZXJFbGVtZW50OjphZGRDaGls
ZChSZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKQogCiB2
b2lkIFJlbmRlckVsZW1lbnQ6OnJlbW92ZUNoaWxkKFJlbmRlck9iamVjdCogb2xkQ2hpbGQpCiB7
Ci0gICAgcmVtb3ZlQ2hpbGRJbnRlcm5hbChvbGRDaGlsZCwgTm90aWZ5Q2hpbGRyZW4pOwotfQot
Ci12b2lkIFJlbmRlckVsZW1lbnQ6OmRlc3Ryb3lMZWZ0b3ZlckNoaWxkcmVuKCkKLXsKLSAgICB3
aGlsZSAoZmlyc3RDaGlsZCgpKSB7Ci0gICAgICAgIGlmIChmaXJzdENoaWxkKCktPmlzTGlzdE1h
cmtlcigpIHx8IChmaXJzdENoaWxkKCktPnN0eWxlKCktPnN0eWxlVHlwZSgpID09IEZJUlNUX0xF
VFRFUiAmJiAhZmlyc3RDaGlsZCgpLT5pc1RleHQoKSkpCi0gICAgICAgICAgICBmaXJzdENoaWxk
KCktPnJlbW92ZUZyb21QYXJlbnQoKTsgLy8gTGlzdCBtYXJrZXJzIGFyZSBvd25lZCBieSB0aGVp
ciBlbmNsb3NpbmcgbGlzdCBhbmQgc28gZG9uJ3QgZ2V0IGRlc3Ryb3llZCBieSB0aGlzIGNvbnRh
aW5lci4gU2ltaWxhcmx5LCBmaXJzdCBsZXR0ZXJzIGFyZSBkZXN0cm95ZWQgYnkgdGhlaXIgcmVt
YWluaW5nIHRleHQgZnJhZ21lbnQuCi0gICAgICAgIGVsc2UgaWYgKGZpcnN0Q2hpbGQoKS0+aXNS
dW5JbigpICYmIGZpcnN0Q2hpbGQoKS0+bm9kZSgpKSB7Ci0gICAgICAgICAgICBmaXJzdENoaWxk
KCktPm5vZGUoKS0+c2V0UmVuZGVyZXIoMCk7Ci0gICAgICAgICAgICBmaXJzdENoaWxkKCktPm5v
ZGUoKS0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOwotICAgICAgICAgICAgZmlyc3RDaGlsZCgpLT5k
ZXN0cm95KCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBEZXN0cm95IGFueSBh
bm9ueW1vdXMgY2hpbGRyZW4gcmVtYWluaW5nIGluIHRoZSByZW5kZXIgdHJlZSwgYXMgd2VsbCBh
cyBpbXBsaWNpdCAoc2hhZG93KSBET00gZWxlbWVudHMgbGlrZSB0aG9zZSB1c2VkIGluIHRoZSBl
bmdpbmUtYmFzZWQgdGV4dCBmaWVsZHMuCi0gICAgICAgICAgICBpZiAoZmlyc3RDaGlsZCgpLT5u
b2RlKCkpCi0gICAgICAgICAgICAgICAgZmlyc3RDaGlsZCgpLT5ub2RlKCktPnNldFJlbmRlcmVy
KDApOwotICAgICAgICAgICAgZmlyc3RDaGlsZCgpLT5kZXN0cm95KCk7Ci0gICAgICAgIH0KLSAg
ICB9Ci19Ci0KLXZvaWQgUmVuZGVyRWxlbWVudDo6aW5zZXJ0Q2hpbGRJbnRlcm5hbChSZW5kZXJP
YmplY3QqIG5ld0NoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkLCBOb3RpZnlDaGlsZHJl
blR5cGUgbm90aWZ5Q2hpbGRyZW4pCi17Ci0gICAgQVNTRVJUKGNhbkhhdmVDaGlsZHJlbigpKTsK
LSAgICBBU1NFUlQoIW5ld0NoaWxkLT5wYXJlbnQoKSk7Ci0gICAgQVNTRVJUKCFpc1JlbmRlckJs
b2NrRmxvdygpIHx8ICghbmV3Q2hpbGQtPmlzVGFibGVTZWN0aW9uKCkgJiYgIW5ld0NoaWxkLT5p
c1RhYmxlUm93KCkgJiYgIW5ld0NoaWxkLT5pc1RhYmxlQ2VsbCgpKSk7Ci0KLSAgICB3aGlsZSAo
YmVmb3JlQ2hpbGQgJiYgYmVmb3JlQ2hpbGQtPnBhcmVudCgpICYmIGJlZm9yZUNoaWxkLT5wYXJl
bnQoKSAhPSB0aGlzKQotICAgICAgICBiZWZvcmVDaGlsZCA9IGJlZm9yZUNoaWxkLT5wYXJlbnQo
KTsKLQotICAgIC8vIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiwgYnV0IGlmIGl0IGRvZXMgcHJl
dmVudCByZW5kZXIgdHJlZSBjb3JydXB0aW9uCi0gICAgLy8gd2hlcmUgY2hpbGQtPnBhcmVudCgp
IGVuZHMgdXAgYmVpbmcgb3duZXIgYnV0IGNoaWxkLT5uZXh0U2libGluZygpLT5wYXJlbnQoKQot
ICAgIC8vIGlzIG5vdCBvd25lci4KLSAgICBpZiAoYmVmb3JlQ2hpbGQgJiYgYmVmb3JlQ2hpbGQt
PnBhcmVudCgpICE9IHRoaXMpIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBuZXdDaGlsZC0+c2V0UGFyZW50KHRoaXMpOwotCi0g
ICAgaWYgKG1fZmlyc3RDaGlsZCA9PSBiZWZvcmVDaGlsZCkKLSAgICAgICAgbV9maXJzdENoaWxk
ID0gbmV3Q2hpbGQ7Ci0KLSAgICBpZiAoYmVmb3JlQ2hpbGQpIHsKLSAgICAgICAgUmVuZGVyT2Jq
ZWN0KiBwcmV2aW91c1NpYmxpbmcgPSBiZWZvcmVDaGlsZC0+cHJldmlvdXNTaWJsaW5nKCk7Ci0g
ICAgICAgIGlmIChwcmV2aW91c1NpYmxpbmcpCi0gICAgICAgICAgICBwcmV2aW91c1NpYmxpbmct
PnNldE5leHRTaWJsaW5nKG5ld0NoaWxkKTsKLSAgICAgICAgbmV3Q2hpbGQtPnNldFByZXZpb3Vz
U2libGluZyhwcmV2aW91c1NpYmxpbmcpOwotICAgICAgICBuZXdDaGlsZC0+c2V0TmV4dFNpYmxp
bmcoYmVmb3JlQ2hpbGQpOwotICAgICAgICBiZWZvcmVDaGlsZC0+c2V0UHJldmlvdXNTaWJsaW5n
KG5ld0NoaWxkKTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAobGFzdENoaWxkKCkpCi0gICAg
ICAgICAgICBsYXN0Q2hpbGQoKS0+c2V0TmV4dFNpYmxpbmcobmV3Q2hpbGQpOwotICAgICAgICBu
ZXdDaGlsZC0+c2V0UHJldmlvdXNTaWJsaW5nKGxhc3RDaGlsZCgpKTsKLSAgICAgICAgbV9sYXN0
Q2hpbGQgPSBuZXdDaGlsZDsKLSAgICB9Ci0KLSAgICBpZiAoIWRvY3VtZW50QmVpbmdEZXN0cm95
ZWQoKSkgewotICAgICAgICBpZiAobm90aWZ5Q2hpbGRyZW4gPT0gTm90aWZ5Q2hpbGRyZW4pCi0g
ICAgICAgICAgICBuZXdDaGlsZC0+aW5zZXJ0ZWRJbnRvVHJlZSgpOwotICAgICAgICBSZW5kZXJD
b3VudGVyOjpyZW5kZXJlclN1YnRyZWVBdHRhY2hlZChuZXdDaGlsZCk7Ci0gICAgfQotCi0gICAg
bmV3Q2hpbGQtPnNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwotICAgIHNldFBy
ZWZlcnJlZExvZ2ljYWxXaWR0aHNEaXJ0eSh0cnVlKTsKLSAgICBpZiAoIW5vcm1hbENoaWxkTmVl
ZHNMYXlvdXQoKSkKLSAgICAgICAgc2V0Q2hpbGROZWVkc0xheW91dCh0cnVlKTsgLy8gV2UgbWF5
IHN1cHBseSB0aGUgc3RhdGljIHBvc2l0aW9uIGZvciBhbiBhYnNvbHV0ZSBwb3NpdGlvbmVkIGNo
aWxkLgotCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5heE9iamVj
dENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5jaGlsZHJlbkNoYW5nZWQodGhpcyk7Ci19Ci0KLXZv
aWQgUmVuZGVyRWxlbWVudDo6cmVtb3ZlQ2hpbGRJbnRlcm5hbChSZW5kZXJPYmplY3QqIG9sZENo
aWxkLCBOb3RpZnlDaGlsZHJlblR5cGUgbm90aWZ5Q2hpbGRyZW4pCi17Ci0gICAgQVNTRVJUKGNh
bkhhdmVDaGlsZHJlbigpKTsKLSAgICBBU1NFUlQob2xkQ2hpbGQtPnBhcmVudCgpID09IHRoaXMp
OwotCi0gICAgaWYgKG9sZENoaWxkLT5pc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkp
Ci0gICAgICAgIHRvUmVuZGVyQm94KG9sZENoaWxkKS0+cmVtb3ZlRmxvYXRpbmdPclBvc2l0aW9u
ZWRDaGlsZEZyb21CbG9ja0xpc3RzKCk7Ci0KLSAgICAvLyBTbyB0aGF0IHdlJ2xsIGdldCB0aGUg
YXBwcm9wcmlhdGUgZGlydHkgYml0IHNldCAoZWl0aGVyIHRoYXQgYSBub3JtYWwgZmxvdyBjaGls
ZCBnb3QgeWFua2VkIG9yCi0gICAgLy8gdGhhdCBhIHBvc2l0aW9uZWQgY2hpbGQgZ290IHlhbmtl
ZCkuIFdlIGFsc28gcmVwYWludCwgc28gdGhhdCB0aGUgYXJlYSBleHBvc2VkIHdoZW4gdGhlIGNo
aWxkCi0gICAgLy8gZGlzYXBwZWFycyBnZXRzIHJlcGFpbnRlZCBwcm9wZXJseS4KLSAgICBpZiAo
IWRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSAmJiBub3RpZnlDaGlsZHJlbiA9PSBOb3RpZnlDaGls
ZHJlbiAmJiBvbGRDaGlsZC0+ZXZlckhhZExheW91dCgpKSB7Ci0gICAgICAgIG9sZENoaWxkLT5z
ZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKLSAgICAgICAgLy8gV2Ugb25seSBy
ZXBhaW50IHxvbGRDaGlsZHwgaWYgd2UgaGF2ZSBhIFJlbmRlckxheWVyIGFzIGl0cyB2aXN1YWwg
b3ZlcmZsb3cgbWF5IG5vdCBiZSB0cmFja2VkIGJ5IGl0cyBwYXJlbnQuCi0gICAgICAgIGlmIChv
bGRDaGlsZC0+aXNCb2R5KCkpCi0gICAgICAgICAgICB2aWV3KCkucmVwYWludFJvb3RDb250ZW50
cygpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBvbGRDaGlsZC0+cmVwYWludCgpOwotICAg
IH0KLQotICAgIC8vIElmIHdlIGhhdmUgYSBsaW5lIGJveCB3cmFwcGVyLCBkZWxldGUgaXQuCi0g
ICAgaWYgKG9sZENoaWxkLT5pc0JveCgpKQotICAgICAgICB0b1JlbmRlckJveChvbGRDaGlsZCkt
PmRlbGV0ZUxpbmVCb3hXcmFwcGVyKCk7Ci0gICAgZWxzZSBpZiAob2xkQ2hpbGQtPmlzTGluZUJy
ZWFrKCkpCi0gICAgICAgIHRvUmVuZGVyTGluZUJyZWFrKG9sZENoaWxkKS0+ZGVsZXRlSW5saW5l
Qm94V3JhcHBlcigpOwotCi0gICAgLy8gSWYgb2xkQ2hpbGQgaXMgdGhlIHN0YXJ0IG9yIGVuZCBv
ZiB0aGUgc2VsZWN0aW9uLCB0aGVuIGNsZWFyIHRoZSBzZWxlY3Rpb24gdG8KLSAgICAvLyBhdm9p
ZCBwcm9ibGVtcyBvZiBpbnZhbGlkIHBvaW50ZXJzLgotICAgIC8vIEZJWE1FOiBUaGUgRnJhbWVT
ZWxlY3Rpb24gc2hvdWxkIGJlIHJlc3BvbnNpYmxlIGZvciB0aGlzIHdoZW4gaXQKLSAgICAvLyBp
cyBub3RpZmllZCBvZiBET00gbXV0YXRpb25zLgotICAgIGlmICghZG9jdW1lbnRCZWluZ0Rlc3Ry
b3llZCgpICYmIG9sZENoaWxkLT5pc1NlbGVjdGlvbkJvcmRlcigpKQotICAgICAgICB2aWV3KCku
Y2xlYXJTZWxlY3Rpb24oKTsKLQotICAgIGlmICghZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpICYm
IG5vdGlmeUNoaWxkcmVuID09IE5vdGlmeUNoaWxkcmVuKQotICAgICAgICBvbGRDaGlsZC0+d2ls
bEJlUmVtb3ZlZEZyb21UcmVlKCk7Ci0KLSAgICAvLyBXQVJOSU5HOiBUaGVyZSBzaG91bGQgYmUg
bm8gY29kZSBydW5uaW5nIGJldHdlZW4gd2lsbEJlUmVtb3ZlZEZyb21UcmVlIGFuZCB0aGUgYWN0
dWFsIHJlbW92YWwgYmVsb3cuCi0gICAgLy8gVGhpcyBpcyBuZWVkZWQgdG8gYXZvaWQgcmFjZSBj
b25kaXRpb25zIHdoZXJlIHdpbGxCZVJlbW92ZWRGcm9tVHJlZSB3b3VsZCBkaXJ0eSB0aGUgdHJl
ZSdzIHN0cnVjdHVyZQotICAgIC8vIGFuZCB0aGUgY29kZSBydW5uaW5nIGhlcmUgd291bGQgZm9y
Y2UgYW4gdW50aW1lbHkgcmVidWlsZGluZywgbGVhdmluZyB8b2xkQ2hpbGR8IGRhbmdsaW5nLgot
Ci0gICAgaWYgKG9sZENoaWxkLT5wcmV2aW91c1NpYmxpbmcoKSkKLSAgICAgICAgb2xkQ2hpbGQt
PnByZXZpb3VzU2libGluZygpLT5zZXROZXh0U2libGluZyhvbGRDaGlsZC0+bmV4dFNpYmxpbmco
KSk7Ci0gICAgaWYgKG9sZENoaWxkLT5uZXh0U2libGluZygpKQotICAgICAgICBvbGRDaGlsZC0+
bmV4dFNpYmxpbmcoKS0+c2V0UHJldmlvdXNTaWJsaW5nKG9sZENoaWxkLT5wcmV2aW91c1NpYmxp
bmcoKSk7Ci0KLSAgICBpZiAobV9maXJzdENoaWxkID09IG9sZENoaWxkKQotICAgICAgICBtX2Zp
cnN0Q2hpbGQgPSBvbGRDaGlsZC0+bmV4dFNpYmxpbmcoKTsKLSAgICBpZiAobV9sYXN0Q2hpbGQg
PT0gb2xkQ2hpbGQpCi0gICAgICAgIG1fbGFzdENoaWxkID0gb2xkQ2hpbGQtPnByZXZpb3VzU2li
bGluZygpOwotCi0gICAgb2xkQ2hpbGQtPnNldFByZXZpb3VzU2libGluZygwKTsKLSAgICBvbGRD
aGlsZC0+c2V0TmV4dFNpYmxpbmcoMCk7Ci0gICAgb2xkQ2hpbGQtPnNldFBhcmVudCgwKTsKLQot
ICAgIC8vIHJlbmRlcmVyUmVtb3ZlZEZyb21UcmVlIHdhbGtzIHRoZSB3aG9sZSBzdWJ0cmVlLiBX
ZSBjYW4gaW1wcm92ZSBwZXJmb3JtYW5jZQotICAgIC8vIGJ5IHNraXBwaW5nIHRoaXMgc3RlcCB3
aGVuIGRlc3Ryb3lpbmcgdGhlIGVudGlyZSB0cmVlLgotICAgIGlmICghZG9jdW1lbnRCZWluZ0Rl
c3Ryb3llZCgpKQotICAgICAgICBSZW5kZXJDb3VudGVyOjpyZW5kZXJlclJlbW92ZWRGcm9tVHJl
ZShvbGRDaGlsZCk7Ci0KLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgp
LmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+Y2hpbGRyZW5DaGFuZ2Vk
KHRoaXMpOworICAgIEFTU0VSVChjaGlsZHJlbigpKTsKKyAgICBjaGlsZHJlbigpLT5yZW1vdmVD
aGlsZE5vZGUodGhpcywgb2xkQ2hpbGQpOwogfQogCiBzdGF0aWMgdm9pZCBhZGRMYXllcnMoUmVu
ZGVyT2JqZWN0KiBvYmosIFJlbmRlckxheWVyKiBwYXJlbnRMYXllciwgUmVuZGVyRWxlbWVudCom
IG5ld09iamVjdCwgUmVuZGVyTGF5ZXIqJiBiZWZvcmVDaGlsZCkKQEAgLTQ4MCwxMSArMzQ2LDUg
QEAgdm9pZCBSZW5kZXJFbGVtZW50Ojp3aWxsQmVSZW1vdmVkRnJvbVRyZWUoKQogICAgIFJlbmRl
ck9iamVjdDo6d2lsbEJlUmVtb3ZlZEZyb21UcmVlKCk7CiB9CiAKLXZvaWQgUmVuZGVyRWxlbWVu
dDo6d2lsbEJlRGVzdHJveWVkKCkKLXsKLSAgICBkZXN0cm95TGVmdG92ZXJDaGlsZHJlbigpOwot
Ci0gICAgUmVuZGVyT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKTsKLX0KIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKaW5kZXggYmI5YjAzMzgzNmNjNmVmY2Q1YTkz
NzU1OGQ3Mzc3MGY2NDIwOGRjOC4uYmVmNmZhNWFmNDI1YmEwY2FiMjEyMzE3MDE3ZDliZmM2NDRj
Y2QxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCkBAIC0zOCw5
ICszOCw2IEBAIHB1YmxpYzoKICAgICBFbGVtZW50KiBub25Qc2V1ZG9FbGVtZW50KCkgY29uc3Qg
eyByZXR1cm4gdG9FbGVtZW50KFJlbmRlck9iamVjdDo6bm9uUHNldWRvTm9kZSgpKTsgfQogICAg
IEVsZW1lbnQqIGdlbmVyYXRpbmdFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdG9FbGVtZW50KFJl
bmRlck9iamVjdDo6Z2VuZXJhdGluZ05vZGUoKSk7IH0KIAotICAgIHZpcnR1YWwgUmVuZGVyT2Jq
ZWN0KiBmaXJzdENoaWxkKCkgY29uc3QgRklOQUwgeyByZXR1cm4gbV9maXJzdENoaWxkOyB9Ci0g
ICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGxhc3RDaGlsZCgpIGNvbnN0IEZJTkFMIHsgcmV0dXJu
IG1fbGFzdENoaWxkOyB9Ci0KICAgICB2aXJ0dWFsIGJvb2wgaXNDaGlsZEFsbG93ZWQoUmVuZGVy
T2JqZWN0KiwgUmVuZGVyU3R5bGUqKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVh
bCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogbmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVm
b3JlQ2hpbGQgPSAwKTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGRJZ25vcmluZ0NvbnRpbnVh
dGlvbihSZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0g
MCkgeyByZXR1cm4gYWRkQ2hpbGQobmV3Q2hpbGQsIGJlZm9yZUNoaWxkKTsgfQpAQCAtNTQsMTAg
KzUxLDYgQEAgcHVibGljOgogICAgIHZvaWQgbW92ZUxheWVycyhSZW5kZXJMYXllciogb2xkUGFy
ZW50LCBSZW5kZXJMYXllciogbmV3UGFyZW50KTsKICAgICBSZW5kZXJMYXllciogZmluZE5leHRM
YXllcihSZW5kZXJMYXllciogcGFyZW50TGF5ZXIsIFJlbmRlck9iamVjdCogc3RhcnRQb2ludCwg
Ym9vbCBjaGVja1BhcmVudCA9IHRydWUpOwogCi0gICAgZW51bSBOb3RpZnlDaGlsZHJlblR5cGUg
eyBOb3RpZnlDaGlsZHJlbiwgRG9udE5vdGlmeUNoaWxkcmVuIH07Ci0gICAgdm9pZCBpbnNlcnRD
aGlsZEludGVybmFsKFJlbmRlck9iamVjdCosIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQsIE5v
dGlmeUNoaWxkcmVuVHlwZSk7Ci0gICAgdm9pZCByZW1vdmVDaGlsZEludGVybmFsKFJlbmRlck9i
amVjdCosIE5vdGlmeUNoaWxkcmVuVHlwZSk7Ci0KIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBS
ZW5kZXJFbGVtZW50KEVsZW1lbnQqKTsKIApAQCAtNjYsMjIgKzU5LDE0IEBAIHByb3RlY3RlZDoK
ICAgICBMYXlvdXRVbml0IHZhbHVlRm9yTGVuZ3RoKGNvbnN0IExlbmd0aCYsIExheW91dFVuaXQg
bWF4aW11bVZhbHVlLCBib29sIHJvdW5kUGVyY2VudGFnZXMgPSBmYWxzZSkgY29uc3Q7CiAgICAg
TGF5b3V0VW5pdCBtaW5pbXVtVmFsdWVGb3JMZW5ndGgoY29uc3QgTGVuZ3RoJiwgTGF5b3V0VW5p
dCBtYXhpbXVtVmFsdWUsIGJvb2wgcm91bmRQZXJjZW50YWdlcyA9IGZhbHNlKSBjb25zdDsKIAot
ICAgIHZvaWQgc2V0Rmlyc3RDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkKSB7IG1fZmlyc3RDaGls
ZCA9IGNoaWxkOyB9Ci0gICAgdm9pZCBzZXRMYXN0Q2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCkg
eyBtX2xhc3RDaGlsZCA9IGNoaWxkOyB9Ci0gICAgdm9pZCBkZXN0cm95TGVmdG92ZXJDaGlsZHJl
bigpOwotCiAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b1RyZWUoKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgd2lsbEJlUmVtb3ZlZEZyb21UcmVlKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIE9WRVJSSURFOwogCiBwcml2YXRlOgogICAgIHZv
aWQgbm9kZSgpIGNvbnN0IFdURl9ERUxFVEVEX0ZVTkNUSU9OOwogICAgIHZvaWQgbm9uUHNldWRv
Tm9kZSgpIGNvbnN0IFdURl9ERUxFVEVEX0ZVTkNUSU9OOwogICAgIHZvaWQgZ2VuZXJhdGluZ05v
ZGUoKSBjb25zdCBXVEZfREVMRVRFRF9GVU5DVElPTjsKICAgICB2b2lkIGlzVGV4dCgpIGNvbnN0
IFdURl9ERUxFVEVEX0ZVTkNUSU9OOwotCi0gICAgUmVuZGVyT2JqZWN0KiBtX2ZpcnN0Q2hpbGQ7
Ci0gICAgUmVuZGVyT2JqZWN0KiBtX2xhc3RDaGlsZDsKIH07CiAKIGlubGluZSBMYXlvdXRVbml0
IFJlbmRlckVsZW1lbnQ6OnZhbHVlRm9yTGVuZ3RoKGNvbnN0IExlbmd0aCYgbGVuZ3RoLCBMYXlv
dXRVbml0IG1heGltdW1WYWx1ZSwgYm9vbCByb3VuZFBlcmNlbnRhZ2VzKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKaW5kZXgg
NTdkN2ZmYzVhNjg0OWM0YjdiMjRkM2JjMTk2MWMwMDg3MWU2YjI3Yy4uM2QxNTA2ODY3MzI1ZmE3
ZDNkMTAxNDM3MzFlZTcxMWM0NzhiMGI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCkBAIC00OTQsNyArNDk0LDcgQEAgdm9pZCBS
ZW5kZXJFbWJlZGRlZE9iamVjdDo6bGF5b3V0KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8g
VGhpcyBjb2RlIGNvcGllZCBmcm9tIFJlbmRlck1lZGlhOjpsYXlvdXQoKS4KLSAgICBSZW5kZXJP
YmplY3QqIGNoaWxkID0gZmlyc3RDaGlsZCgpOworICAgIFJlbmRlck9iamVjdCogY2hpbGQgPSBt
X2NoaWxkcmVuLmZpcnN0Q2hpbGQoKTsKIAogICAgIGlmICghY2hpbGQpCiAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgK
aW5kZXggYjZlNDQxOTY2ZjkzNzJmYTM2ZmVkNWUzNmE4NGZmZjI3NTVlZTgxYS4uNDEzOGIxZGFh
YWE5Zjk2YWJmOWYxOGVlOTc4MmFkZjg0YTk0MDllZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKQEAgLTcyLDYgKzcyLDkgQEAgcHJvdGVj
dGVkOgogCiAgICAgdmlydHVhbCBDdXJzb3JEaXJlY3RpdmUgZ2V0Q3Vyc29yKGNvbnN0IExheW91
dFBvaW50JiwgQ3Vyc29yJikgY29uc3QgT1ZFUlJJREU7CiAKKyAgICB2aXJ0dWFsIGNvbnN0IFJl
bmRlck9iamVjdENoaWxkTGlzdCogY2hpbGRyZW4oKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJl
dHVybiAmbV9jaGlsZHJlbjsgfQorICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiBj
aGlsZHJlbigpIE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuICZtX2NoaWxkcmVuOyB9CisKIHByb3Rl
Y3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgT1ZFUlJJREU7CiAKQEAgLTEwMCw2ICsx
MDMsNyBAQCBwcml2YXRlOgogICAgIExheW91dFJlY3QgdW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0
b3JCb3VuZHMoY29uc3QgTGF5b3V0UG9pbnQmKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBj
YW5IYXZlQ2hpbGRyZW4oKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICAKICAgICB2aXJ0dWFs
IGJvb2wgY2FuSGF2ZVdpZGdldCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIGJvb2wg
bV9oYXNGYWxsYmFja0NvbnRlbnQ7IC8vIEZJWE1FOiBUaGlzIGJlbG9uZ3Mgb24gSFRNTE9iamVj
dEVsZW1lbnQuCkBAIC0xMTAsNiArMTE0LDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV91bmF2
YWlsYWJsZVBsdWdpblJlcGxhY2VtZW50VGV4dDsKICAgICBib29sIG1fdW5hdmFpbGFibGVQbHVn
aW5JbmRpY2F0b3JJc1ByZXNzZWQ7CiAgICAgYm9vbCBtX21vdXNlRG93bldhc0luVW5hdmFpbGFi
bGVQbHVnaW5JbmRpY2F0b3I7CisgICAgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0IG1fY2hpbGRyZW47
CiAgICAgU3RyaW5nIG1fdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbjsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmgKaW5kZXggZDQ0ZmFlZDBjNDNjYzI2OGY5
ZmQyYWVmMmZlYWVmNzhjOGEzMmM3MS4uZDU5NTQ3NDk0NTNjMjQ2NDQ0NTVkYTgyMTU4Y2ZhNjQ3
MDQ0MmQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1l
U2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmgKQEAg
LTYwLDYgKzYwLDEyIEBAIHB1YmxpYzoKIAogICAgIEhUTUxGcmFtZVNldEVsZW1lbnQmIGZyYW1l
U2V0RWxlbWVudCgpIGNvbnN0OwogCisgICAgUmVuZGVyT2JqZWN0KiBmaXJzdENoaWxkKCkgY29u
c3QgeyByZXR1cm4gbV9jaGlsZHJlbi5maXJzdENoaWxkKCk7IH0KKyAgICBSZW5kZXJPYmplY3Qq
IGxhc3RDaGlsZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRyZW4ubGFzdENoaWxkKCk7IH0KKwor
ICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiBjaGlsZHJlbigpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuICZtX2NoaWxkcmVuOyB9CisgICAgdmlydHVhbCBSZW5kZXJPYmpl
Y3RDaGlsZExpc3QqIGNoaWxkcmVuKCkgT1ZFUlJJREUgeyByZXR1cm4gJm1fY2hpbGRyZW47IH0K
KwogICAgIEZyYW1lRWRnZUluZm8gZWRnZUluZm8oKSBjb25zdDsKIAogICAgIGJvb2wgdXNlclJl
c2l6ZShNb3VzZUV2ZW50Kik7CkBAIC05Niw3ICsxMDIsNiBAQCBwcml2YXRlOgogCiAgICAgdmly
dHVhbCB2b2lkIGxheW91dCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWlu
dEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBj
YW5IYXZlQ2hpbGRyZW4oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmly
dHVhbCBib29sIGlzQ2hpbGRBbGxvd2VkKFJlbmRlck9iamVjdCosIFJlbmRlclN0eWxlKikgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBDdXJzb3JEaXJlY3RpdmUgZ2V0Q3Vyc29yKGNvbnN0
IExheW91dFBvaW50JiwgQ3Vyc29yJikgY29uc3QgT1ZFUlJJREU7CiAKQEAgLTExOSw2ICsxMjQs
OCBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnRSb3dCb3JkZXIoY29uc3QgUGFpbnRJbmZvJiwg
Y29uc3QgSW50UmVjdCYpOwogICAgIHZvaWQgcGFpbnRDb2x1bW5Cb3JkZXIoY29uc3QgUGFpbnRJ
bmZvJiwgY29uc3QgSW50UmVjdCYpOwogCisgICAgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0IG1fY2hp
bGRyZW47CisKICAgICBHcmlkQXhpcyBtX3Jvd3M7CiAgICAgR3JpZEF4aXMgbV9jb2xzOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCmluZGV4IDg1NzM0MzQ5ZjM2
MTU3NzcyMjY4MTMwYWVhM2NjMzg1ZTdhMGFlNzUuLmM0ZjdjNzlmZjNlZWRlOGYyYzY3NDQ3NmRl
ZGMzYzkyZGZiYzk4OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUu
Y3BwCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjp3aWxsQmVEZXN0cm95ZWQo
KQogCiAgICAgLy8gTWFrZSBzdXJlIHRvIGRlc3Ryb3kgYW5vbnltb3VzIGNoaWxkcmVuIGZpcnN0
IHdoaWxlIHRoZXkgYXJlIHN0aWxsIGNvbm5lY3RlZCB0byB0aGUgcmVzdCBvZiB0aGUgdHJlZSwg
c28gdGhhdCB0aGV5IHdpbGwKICAgICAvLyBwcm9wZXJseSBkaXJ0eSBsaW5lIGJveGVzIHRoYXQg
dGhleSBhcmUgcmVtb3ZlZCBmcm9tLiAgRWZmZWN0cyB0aGF0IGRvIDpiZWZvcmUvOmFmdGVyIG9u
bHkgb24gaG92ZXIgY291bGQgY3Jhc2ggb3RoZXJ3aXNlLgotICAgIGRlc3Ryb3lMZWZ0b3ZlckNo
aWxkcmVuKCk7CisgICAgY2hpbGRyZW4oKS0+ZGVzdHJveUxlZnRvdmVyQ2hpbGRyZW4oKTsKIAog
ICAgIC8vIERlc3Ryb3kgb3VyIGNvbnRpbnVhdGlvbiBiZWZvcmUgYW55dGhpbmcgb3RoZXIgdGhh
biBhbm9ueW1vdXMgY2hpbGRyZW4uCiAgICAgLy8gVGhlIHJlYXNvbiB3ZSBkb24ndCBkZXN0cm95
IGl0IGJlZm9yZSBhbm9ueW1vdXMgY2hpbGRyZW4gaXMgdGhhdCB0aGV5IG1heQpAQCAtMzY2LDgg
KzM2Niw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjpzcGxpdElubGluZXMoUmVuZGVyQmxvY2sqIGZy
b21CbG9jaywgUmVuZGVyQmxvY2sqIHRvQmxvY2ssCiAgICAgd2hpbGUgKG8pIHsKICAgICAgICAg
UmVuZGVyT2JqZWN0KiB0bXAgPSBvOwogICAgICAgICBvID0gdG1wLT5uZXh0U2libGluZygpOwot
ICAgICAgICByZW1vdmVDaGlsZEludGVybmFsKHRtcCwgTm90aWZ5Q2hpbGRyZW4pOwotICAgICAg
ICBjbG9uZUlubGluZS0+YWRkQ2hpbGRJZ25vcmluZ0NvbnRpbnVhdGlvbih0bXAsIDApOworICAg
ICAgICBjbG9uZUlubGluZS0+YWRkQ2hpbGRJZ25vcmluZ0NvbnRpbnVhdGlvbihjaGlsZHJlbigp
LT5yZW1vdmVDaGlsZE5vZGUodGhpcywgdG1wKSwgMCk7CiAgICAgICAgIHRtcC0+c2V0TmVlZHNM
YXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7CiAgICAgfQogCkBAIC00MDgsOCArNDA3LDcgQEAg
dm9pZCBSZW5kZXJJbmxpbmU6OnNwbGl0SW5saW5lcyhSZW5kZXJCbG9jayogZnJvbUJsb2NrLCBS
ZW5kZXJCbG9jayogdG9CbG9jaywKICAgICAgICAgICAgIHdoaWxlIChvKSB7CiAgICAgICAgICAg
ICAgICAgUmVuZGVyT2JqZWN0KiB0bXAgPSBvOwogICAgICAgICAgICAgICAgIG8gPSB0bXAtPm5l
eHRTaWJsaW5nKCk7Ci0gICAgICAgICAgICAgICAgaW5saW5lQ3Vyci0+cmVtb3ZlQ2hpbGRJbnRl
cm5hbCh0bXAsIE5vdGlmeUNoaWxkcmVuKTsKLSAgICAgICAgICAgICAgICBjbG9uZUlubGluZS0+
YWRkQ2hpbGRJZ25vcmluZ0NvbnRpbnVhdGlvbih0bXAsIDApOworICAgICAgICAgICAgICAgIGNs
b25lSW5saW5lLT5hZGRDaGlsZElnbm9yaW5nQ29udGludWF0aW9uKGlubGluZUN1cnItPmNoaWxk
cmVuKCktPnJlbW92ZUNoaWxkTm9kZShjdXJyLCB0bXApLCAwKTsKICAgICAgICAgICAgICAgICB0
bXAtPnNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CkBAIC00MjEsNyArNDE5LDcgQEAgdm9pZCBSZW5kZXJJbmxpbmU6OnNwbGl0SW5s
aW5lcyhSZW5kZXJCbG9jayogZnJvbUJsb2NrLCBSZW5kZXJCbG9jayogdG9CbG9jaywKICAgICB9
CiAKICAgICAvLyBOb3cgd2UgYXJlIGF0IHRoZSBibG9jayBsZXZlbC4gV2UgbmVlZCB0byBwdXQg
dGhlIGNsb25lIGludG8gdGhlIHRvQmxvY2suCi0gICAgdG9CbG9jay0+aW5zZXJ0Q2hpbGRJbnRl
cm5hbChjbG9uZUlubGluZSwgbnVsbHB0ciwgTm90aWZ5Q2hpbGRyZW4pOworICAgIHRvQmxvY2st
PmNoaWxkcmVuKCktPmFwcGVuZENoaWxkTm9kZSh0b0Jsb2NrLCBjbG9uZUlubGluZSk7CiAKICAg
ICAvLyBOb3cgdGFrZSBhbGwgdGhlIGNoaWxkcmVuIGFmdGVyIGN1cnJDaGlsZCBhbmQgcmVtb3Zl
IHRoZW0gZnJvbSB0aGUgZnJvbUJsb2NrCiAgICAgLy8gYW5kIHB1dCB0aGVtIGluIHRoZSB0b0Js
b2NrLgpAQCAtNDI5LDggKzQyNyw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjpzcGxpdElubGluZXMo
UmVuZGVyQmxvY2sqIGZyb21CbG9jaywgUmVuZGVyQmxvY2sqIHRvQmxvY2ssCiAgICAgd2hpbGUg
KG8pIHsKICAgICAgICAgUmVuZGVyT2JqZWN0KiB0bXAgPSBvOwogICAgICAgICBvID0gdG1wLT5u
ZXh0U2libGluZygpOwotICAgICAgICBmcm9tQmxvY2stPnJlbW92ZUNoaWxkSW50ZXJuYWwodG1w
LCBOb3RpZnlDaGlsZHJlbik7Ci0gICAgICAgIHRvQmxvY2stPmluc2VydENoaWxkSW50ZXJuYWwo
dG1wLCBudWxscHRyLCBOb3RpZnlDaGlsZHJlbik7CisgICAgICAgIHRvQmxvY2stPmNoaWxkcmVu
KCktPmFwcGVuZENoaWxkTm9kZSh0b0Jsb2NrLCBmcm9tQmxvY2stPmNoaWxkcmVuKCktPnJlbW92
ZUNoaWxkTm9kZShmcm9tQmxvY2ssIHRtcCkpOwogICAgIH0KIH0KIApAQCAtNDYwLDkgKzQ1Nyw5
IEBAIHZvaWQgUmVuZGVySW5saW5lOjpzcGxpdEZsb3coUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGls
ZCwgUmVuZGVyQmxvY2sqIG5ld0Jsb2NrQm94CiAKICAgICBSZW5kZXJPYmplY3QqIGJveEZpcnN0
ID0gbWFkZU5ld0JlZm9yZUJsb2NrID8gYmxvY2stPmZpcnN0Q2hpbGQoKSA6IHByZS0+bmV4dFNp
YmxpbmcoKTsKICAgICBpZiAobWFkZU5ld0JlZm9yZUJsb2NrKQotICAgICAgICBibG9jay0+aW5z
ZXJ0Q2hpbGRJbnRlcm5hbChwcmUsIGJveEZpcnN0LCBOb3RpZnlDaGlsZHJlbik7Ci0gICAgYmxv
Y2stPmluc2VydENoaWxkSW50ZXJuYWwobmV3QmxvY2tCb3gsIGJveEZpcnN0LCBOb3RpZnlDaGls
ZHJlbik7Ci0gICAgYmxvY2stPmluc2VydENoaWxkSW50ZXJuYWwocG9zdCwgYm94Rmlyc3QsIE5v
dGlmeUNoaWxkcmVuKTsKKyAgICAgICAgYmxvY2stPmNoaWxkcmVuKCktPmluc2VydENoaWxkTm9k
ZShibG9jaywgcHJlLCBib3hGaXJzdCk7CisgICAgYmxvY2stPmNoaWxkcmVuKCktPmluc2VydENo
aWxkTm9kZShibG9jaywgbmV3QmxvY2tCb3gsIGJveEZpcnN0KTsKKyAgICBibG9jay0+Y2hpbGRy
ZW4oKS0+aW5zZXJ0Q2hpbGROb2RlKGJsb2NrLCBwb3N0LCBib3hGaXJzdCk7CiAgICAgYmxvY2st
PnNldENoaWxkcmVuSW5saW5lKGZhbHNlKTsKICAgICAKICAgICBpZiAobWFkZU5ld0JlZm9yZUJs
b2NrKSB7CkBAIC00NzAsOCArNDY3LDcgQEAgdm9pZCBSZW5kZXJJbmxpbmU6OnNwbGl0RmxvdyhS
ZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkLCBSZW5kZXJCbG9jayogbmV3QmxvY2tCb3gKICAgICAg
ICAgd2hpbGUgKG8pIHsKICAgICAgICAgICAgIFJlbmRlck9iamVjdCogbm8gPSBvOwogICAgICAg
ICAgICAgbyA9IG5vLT5uZXh0U2libGluZygpOwotICAgICAgICAgICAgYmxvY2stPnJlbW92ZUNo
aWxkSW50ZXJuYWwobm8sIE5vdGlmeUNoaWxkcmVuKTsKLSAgICAgICAgICAgIHByZS0+aW5zZXJ0
Q2hpbGRJbnRlcm5hbChubywgbnVsbHB0ciwgTm90aWZ5Q2hpbGRyZW4pOworICAgICAgICAgICAg
cHJlLT5jaGlsZHJlbigpLT5hcHBlbmRDaGlsZE5vZGUocHJlLCBibG9jay0+Y2hpbGRyZW4oKS0+
cmVtb3ZlQ2hpbGROb2RlKGJsb2NrLCBubykpOwogICAgICAgICAgICAgbm8tPnNldE5lZWRzTGF5
b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTI2NSw3ICsx
MjYxLDcgQEAgdm9pZCBSZW5kZXJJbmxpbmU6OmNoaWxkQmVjYW1lTm9uSW5saW5lKFJlbmRlck9i
amVjdCogY2hpbGQpCiAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIG9sZENvbnRpbnVhdGlvbiA9
IGNvbnRpbnVhdGlvbigpOwogICAgIHNldENvbnRpbnVhdGlvbihuZXdCb3gpOwogICAgIFJlbmRl
ck9iamVjdCogYmVmb3JlQ2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKTsKLSAgICByZW1vdmVD
aGlsZEludGVybmFsKGNoaWxkLCBOb3RpZnlDaGlsZHJlbik7CisgICAgY2hpbGRyZW4oKS0+cmVt
b3ZlQ2hpbGROb2RlKHRoaXMsIGNoaWxkKTsKICAgICBzcGxpdEZsb3coYmVmb3JlQ2hpbGQsIG5l
d0JveCwgY2hpbGQsIG9sZENvbnRpbnVhdGlvbik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuaAppbmRleCA3ZTVmNzkwYTkwOTEwYWNmNjgzMDViNzViNjM5ZDMxYjRh
Zjc4MzM3Li40ODdiMDNlYzcyYzdlNjE1NzBlZGM5MzYyZWQ2OTI0MWI5N2JmZDQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCkBAIC0zNyw2ICszNyw5IEBAIHB1Ymxp
YzoKIAogICAgIHN0YXRpYyBSZW5kZXJJbmxpbmUqIGNyZWF0ZUFub255bW91cyhEb2N1bWVudCYp
OwogCisgICAgUmVuZGVyT2JqZWN0KiBmaXJzdENoaWxkKCkgY29uc3QgeyByZXR1cm4gbV9jaGls
ZHJlbi5maXJzdENoaWxkKCk7IH0KKyAgICBSZW5kZXJPYmplY3QqIGxhc3RDaGlsZCgpIGNvbnN0
IHsgcmV0dXJuIG1fY2hpbGRyZW4ubGFzdENoaWxkKCk7IH0KKwogICAgIHZpcnR1YWwgdm9pZCBh
ZGRDaGlsZChSZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxk
ID0gMCkgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luTGVmdCgpIGNv
bnN0IE9WRVJSSURFIEZJTkFMOwpAQCAtOTYsMTAgKzk5LDEyIEBAIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJT
dHlsZSogb2xkU3R5bGUpIE9WRVJSSURFOwogCiBwcml2YXRlOgorICAgIHZpcnR1YWwgY29uc3Qg
UmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiBjaGlsZHJlbigpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsg
cmV0dXJuICZtX2NoaWxkcmVuOyB9CisgICAgdmlydHVhbCBSZW5kZXJPYmplY3RDaGlsZExpc3Qq
IGNoaWxkcmVuKCkgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gJm1fY2hpbGRyZW47IH0KKwogICAg
IHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURFOwogCiAgICAg
dmlydHVhbCBib29sIGlzUmVuZGVySW5saW5lKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1
cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCBPVkVS
UklERSBGSU5BTCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBMYXlvdXRSZWN0IGN1bGxlZElubGlu
ZVZpc3VhbE92ZXJmbG93Qm91bmRpbmdCb3goKSBjb25zdDsKICAgICBJbmxpbmVCb3gqIGN1bGxl
ZElubGluZUZpcnN0TGluZUJveCgpIGNvbnN0OwpAQCAtMTczLDYgKzE3OCw3IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExheW91dFJlY3QmIG5leHRMaW5l
LCBjb25zdCBDb2xvcik7CiAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIGNvbnRpbnVhdGlvbkJl
Zm9yZShSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKTsKIAorICAgIFJlbmRlck9iamVjdENoaWxk
TGlzdCBtX2NoaWxkcmVuOwogICAgIFJlbmRlckxpbmVCb3hMaXN0IG1fbGluZUJveGVzOyAgIC8v
IEFsbCBvZiB0aGUgbGluZSBib3hlcyBjcmVhdGVkIGZvciB0aGlzIGlubGluZSBmbG93LiAgRm9y
IGV4YW1wbGUsIDxpPkhlbGxvPGJyPndvcmxkLjwvaT4gd2lsbCBoYXZlIHR3byA8aT4gbGluZSBi
b3hlcy4KIAogICAgIGJvb2wgbV9hbHdheXNDcmVhdGVMaW5lQm94ZXMgOiAxOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCmluZGV4
IDk3MzUzYmU5YTYzMDhiMmFkYjEwODQwNjNlOTE1NGRhZjc3ZDE2ODcuLjM5ZjE4ZWU2OTY1ODA4
MzRiOWIzNGNjYjIxMjQ2OTc2N2RhZjJhZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgdm9p
ZCBSZW5kZXJMYXllck1vZGVsT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKQogICAgIH0KIAogICAg
IC8vIFJlbmRlck9iamVjdDo6d2lsbEJlRGVzdHJveWVkIGNhbGxzIGJhY2sgdG8gZGVzdHJveUxh
eWVyKCkgZm9yIGxheWVyIGRlc3RydWN0aW9uCi0gICAgUmVuZGVyRWxlbWVudDo6d2lsbEJlRGVz
dHJveWVkKCk7CisgICAgUmVuZGVyT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKTsKIH0KIAogdm9p
ZCBSZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNl
IGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaW5lQnJlYWsuaAppbmRleCBkZmM5YzY0Yzc0ZTJkZGIwMDA5MzY2NWFkNDhi
NjlmZjc2YWViMmQ3Li5hZDFjMTUzNzY0MGIxODk2ZTRjZjAwYjA5NmUzZjNiNjQ5NzQ0OTZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oCkBAIC01NCw4ICs1
NCw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBub2RlKCkgY29uc3QgV1RGX0RFTEVU
RURfRlVOQ1RJT047CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3Qg
T1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KLQogICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9u
IHBvc2l0aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIGludCBjYXJldE1pbk9mZnNldCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgaW50
IGNhcmV0TWF4T2Zmc2V0KCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RNYXJrZXIuaAppbmRleCAwZjk3NDgwYjg1YjNlNThmNGEzMzFkOTNhZDM0
NWE3MDI0NTJlZjk4Li4wMDAxMWYxNjUzNWQ4ODk4N2YzNjZjMTczYzgwYWJkNGEwODgzMWRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmgKQEAgLTU1LDcg
KzU1LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2lj
YWxXaWR0aHMoKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0xpc3RNYXJrZXIoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIGNhbkhhdmVDaGlsZHJlbigp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFp
bnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZWRpYS5jcHAKaW5kZXggZDM4YzViMmQ3NGM4M2U5Y2QzZTU1M2Y1MmMwMzVm
OWJiNzdkNDI3NC4uZjQ5YmFhNDM1OWJiMzkwNDQ0MGUxNGY1ZWM1ZjdkNDc5NWQ3OTVhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuY3BwCkBAIC01OCw3ICs1OCw3IEBA
IHZvaWQgUmVuZGVyTWVkaWE6OmxheW91dCgpCiAKICAgICBSZW5kZXJJbWFnZTo6bGF5b3V0KCk7
CiAKLSAgICBSZW5kZXJCb3gqIGNvbnRyb2xzUmVuZGVyZXIgPSB0b1JlbmRlckJveChmaXJzdENo
aWxkKCkpOworICAgIFJlbmRlckJveCogY29udHJvbHNSZW5kZXJlciA9IHRvUmVuZGVyQm94KG1f
Y2hpbGRyZW4uZmlyc3RDaGlsZCgpKTsKICAgICBpZiAoIWNvbnRyb2xzUmVuZGVyZXIpCiAgICAg
ICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1lZGlhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuaAppbmRleCA0
Yzg0N2E5ZTI4YTFjZWI3ZWQwZjJjZThiMTVhZjIzZjc0YTY2ZTI1Li45M2M4NzY0MGQyMzYxYzcx
OTEyYzE3OTNlODY4NTZlNmRmMmNlMzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTWVkaWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TWVkaWEuaApAQCAtNDEsNiArNDEsMTIgQEAgcHVibGljOgogCiAgICAgSFRNTE1lZGlhRWxlbWVu
dCYgbWVkaWFFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdG9IVE1MTWVkaWFFbGVtZW50KG5vZGVG
b3JOb25Bbm9ueW1vdXMoKSk7IH0KIAorICAgIFJlbmRlck9iamVjdCogZmlyc3RDaGlsZCgpIGNv
bnN0IHsgcmV0dXJuIG1fY2hpbGRyZW4uZmlyc3RDaGlsZCgpOyB9CisgICAgUmVuZGVyT2JqZWN0
KiBsYXN0Q2hpbGQoKSBjb25zdCB7IHJldHVybiBtX2NoaWxkcmVuLmxhc3RDaGlsZCgpOyB9CisK
KyAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdENoaWxkTGlzdCogY2hpbGRyZW4oKSBjb25z
dCBPVkVSUklERSBGSU5BTCB7IHJldHVybiAmbV9jaGlsZHJlbjsgfQorICAgIHZpcnR1YWwgUmVu
ZGVyT2JqZWN0Q2hpbGRMaXN0KiBjaGlsZHJlbigpIE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuICZt
X2NoaWxkcmVuOyB9CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CiAK
QEAgLTU1LDYgKzYxLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRSZXBsYWNl
ZChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIE9WRVJSSURFOwogCiAgICAgdmlydHVh
bCBib29sIHJlcXVpcmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbigpIGNvbnN0IE9WRVJS
SURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KKworICAgIFJlbmRlck9iamVjdENoaWxkTGlzdCBt
X2NoaWxkcmVuOwogfTsKIAogaW5saW5lIFJlbmRlck1lZGlhKiB0b1JlbmRlck1lZGlhKFJlbmRl
ck9iamVjdCogb2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cAppbmRleCBhODY3MzNmM2ZkMDFjYjY0NTQzNGVkNDEyNWZjZTVhN2MxOTE4YTQ4Li5mNzdmNWVj
NjFkZWY0N2VmNjNjNzZiZTFkZjU5NmUxNjZiZGY5OTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMTY2Myw5ICsxNjYzLDkgQEAgdm9pZCBSZW5kZXJP
YmplY3Q6OmhhbmRsZUR5bmFtaWNGbG9hdFBvc2l0aW9uQ2hhbmdlKCkKICAgICAgICAgZWxzZSB7
CiAgICAgICAgICAgICAvLyBBbiBhbm9ueW1vdXMgYmxvY2sgbXVzdCBiZSBtYWRlIHRvIHdyYXAg
dGhpcyBpbmxpbmUuCiAgICAgICAgICAgICBSZW5kZXJCbG9jayogYmxvY2sgPSB0b1JlbmRlckJs
b2NrKHBhcmVudCgpKS0+Y3JlYXRlQW5vbnltb3VzQmxvY2soKTsKLSAgICAgICAgICAgIHBhcmVu
dCgpLT5pbnNlcnRDaGlsZEludGVybmFsKGJsb2NrLCB0aGlzLCBSZW5kZXJFbGVtZW50OjpOb3Rp
ZnlDaGlsZHJlbik7Ci0gICAgICAgICAgICBwYXJlbnQoKS0+cmVtb3ZlQ2hpbGRJbnRlcm5hbCh0
aGlzLCBSZW5kZXJFbGVtZW50OjpOb3RpZnlDaGlsZHJlbik7Ci0gICAgICAgICAgICBibG9jay0+
aW5zZXJ0Q2hpbGRJbnRlcm5hbCh0aGlzLCBudWxscHRyLCBSZW5kZXJFbGVtZW50OjpOb3RpZnlD
aGlsZHJlbik7CisgICAgICAgICAgICBSZW5kZXJPYmplY3RDaGlsZExpc3QqIGNoaWxkbGlzdCA9
IHBhcmVudCgpLT5jaGlsZHJlbigpOworICAgICAgICAgICAgY2hpbGRsaXN0LT5pbnNlcnRDaGls
ZE5vZGUocGFyZW50KCksIGJsb2NrLCB0aGlzKTsKKyAgICAgICAgICAgIGJsb2NrLT5jaGlsZHJl
bigpLT5hcHBlbmRDaGlsZE5vZGUoYmxvY2ssIGNoaWxkbGlzdC0+cmVtb3ZlQ2hpbGROb2RlKHBh
cmVudCgpLCB0aGlzKSk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0yNDEwLDYgKzI0MTAsMTEg
QEAgaW5saW5lIHZvaWQgUmVuZGVyT2JqZWN0OjpjbGVhckxheW91dFJvb3RJZk5lZWRlZCgpIGNv
bnN0CiAKIHZvaWQgUmVuZGVyT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKQogeworICAgIC8vIERl
c3Ryb3kgYW55IGxlZnRvdmVyIGFub255bW91cyBjaGlsZHJlbi4KKyAgICBSZW5kZXJPYmplY3RD
aGlsZExpc3QqIGNoaWxkcmVuID0gdGhpcy0+Y2hpbGRyZW4oKTsKKyAgICBpZiAoY2hpbGRyZW4p
CisgICAgICAgIGNoaWxkcmVuLT5kZXN0cm95TGVmdG92ZXJDaGlsZHJlbigpOworCiAgICAgLy8g
SWYgdGhpcyByZW5kZXJlciBpcyBiZWluZyBhdXRvc2Nyb2xsZWQsIHN0b3AgdGhlIGF1dG9zY3Jv
bGwgdGltZXIKICAgICAKICAgICAvLyBGSVhNRTogUmVuZGVyT2JqZWN0OjpkZXN0cm95IHNob3Vs
ZCBub3QgZ2V0IGNhbGxlZCB3aXRoIGEgcmVuZGVyZXIgd2hvc2UgZG9jdW1lbnQKQEAgLTI1MTUs
OSArMjUyMCwxMSBAQCB2b2lkIFJlbmRlck9iamVjdDo6cmVtb3ZlRnJvbVJlbmRlckZsb3dUaHJl
YWQoKQogCiB2b2lkIFJlbmRlck9iamVjdDo6cmVtb3ZlRnJvbVJlbmRlckZsb3dUaHJlYWRSZWN1
cnNpdmUoUmVuZGVyRmxvd1RocmVhZCogcmVuZGVyRmxvd1RocmVhZCkKIHsKLSAgICBmb3IgKFJl
bmRlck9iamVjdCogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5u
ZXh0U2libGluZygpKQotICAgICAgICBjaGlsZC0+cmVtb3ZlRnJvbVJlbmRlckZsb3dUaHJlYWRS
ZWN1cnNpdmUocmVuZGVyRmxvd1RocmVhZCk7Ci0KKyAgICBpZiAoY29uc3QgUmVuZGVyT2JqZWN0
Q2hpbGRMaXN0KiBjaGlsZHJlbiA9IHRoaXMtPmNoaWxkcmVuKCkpIHsKKyAgICAgICAgZm9yIChS
ZW5kZXJPYmplY3QqIGNoaWxkID0gY2hpbGRyZW4tPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxk
ID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCisgICAgICAgICAgICBjaGlsZC0+cmVtb3ZlRnJvbVJl
bmRlckZsb3dUaHJlYWRSZWN1cnNpdmUocmVuZGVyRmxvd1RocmVhZCk7CisgICAgfQorICAgIAog
ICAgIFJlbmRlckZsb3dUaHJlYWQqIGxvY2FsRmxvd1RocmVhZCA9IHJlbmRlckZsb3dUaHJlYWQ7
CiAgICAgaWYgKGZsb3dUaHJlYWRTdGF0ZSgpID09IEluc2lkZUluRmxvd1RocmVhZCkKICAgICAg
ICAgbG9jYWxGbG93VGhyZWFkID0gZmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaygpOyAvLyBXZSBo
YXZlIHRvIGFzay4gV2UgY2FuJ3QganVzdCBhc3N1bWUgd2UgYXJlIGluIHRoZSBzYW1lIGZsb3cg
dGhyZWFkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDlhYmE5
MjFjZmE1ZDFiMGJlOTBlMDM4ZWIxNzA5YjFmODAwMTM5NGEuLjgwNjkyNDAxOGNlZWMzYmE0M2Jh
Y2YyY2YyYTMwMDY4YjEzNjM2MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJGbG9hdFF1YWQuaCIKICNpbmNsdWRl
ICJMYXlvdXRSZWN0LmgiCiAjaW5jbHVkZSAiUGFpbnRQaGFzZS5oIgorI2luY2x1ZGUgIlJlbmRl
ck9iamVjdENoaWxkTGlzdC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAi
U2Nyb2xsQmVoYXZpb3IuaCIKICNpbmNsdWRlICJTdHlsZUluaGVyaXRlZERhdGEuaCIKQEAgLTE0
Niw4ICsxNDcsOCBAQCBjb25zdCBpbnQgc2hvd1RyZWVDaGFyYWN0ZXJPZmZzZXQgPSAzOTsKIGNs
YXNzIFJlbmRlck9iamVjdCA6IHB1YmxpYyBDYWNoZWRJbWFnZUNsaWVudCB7CiAgICAgZnJpZW5k
IGNsYXNzIFJlbmRlckJsb2NrOwogICAgIGZyaWVuZCBjbGFzcyBSZW5kZXJCbG9ja0Zsb3c7Ci0g
ICAgZnJpZW5kIGNsYXNzIFJlbmRlckVsZW1lbnQ7CiAgICAgZnJpZW5kIGNsYXNzIFJlbmRlckxh
eWVyOworICAgIGZyaWVuZCBjbGFzcyBSZW5kZXJPYmplY3RDaGlsZExpc3Q7CiBwdWJsaWM6CiAg
ICAgLy8gQW5vbnltb3VzIG9iamVjdHMgc2hvdWxkIHBhc3MgdGhlIGRvY3VtZW50IGFzIHRoZWly
IG5vZGUsIGFuZCB0aGV5IHdpbGwgdGhlbiBhdXRvbWF0aWNhbGx5IGJlCiAgICAgLy8gbWFya2Vk
IGFzIGFub255bW91cyBpbiB0aGUgY29uc3RydWN0b3IuCkBAIC0xNjUsOSArMTY2LDI1IEBAIHB1
YmxpYzoKICAgICBSZW5kZXJPYmplY3QqIG5leHRTaWJsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9u
ZXh0OyB9CiAKICAgICAvLyBGSVhNRTogVGhlc2Ugc2hvdWxkIGJlIHJlbmFtZWQgc2xvd0ZpcnN0
Q2hpbGQsIHNsb3dMYXN0Q2hpbGQsIGV0Yy4KLSAgICAvLyB0byBkaXNjb3VyYWdlIHRoZWlyIHVz
ZS4KLSAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogZmlyc3RDaGlsZCgpIGNvbnN0IHsgcmV0dXJu
IG51bGxwdHI7IH0KLSAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogbGFzdENoaWxkKCkgY29uc3Qg
eyByZXR1cm4gbnVsbHB0cjsgfQorICAgIC8vIHRvIGRpc2NvdXJhZ2UgdGhlaXIgdXNlLiBUaGUg
dmlydHVhbCBjYWxsIHRvIGNoaWxkcmVuIGluc2lkZSB0aGVzZQorICAgIC8vIGNhbiBiZSBzbG93
IGZvciBob3QgY29kZSBwYXRocy4KKyAgICAvLyBEZXJpdmVkIGNsYXNzZXMgbGlrZSBSZW5kZXJC
bG9jayBvdmVycmlkZSB0aGVzZSBub24tdmlydHVhbAorICAgIC8vIGZ1bmN0aW9ucyB0byBtYWtl
IHRoZW0gZmFzdCB3aGVuIHdlIGFscmVhZHkgaGF2ZSBhIG1vcmUgc3BlY2lmaWMgcG9pbnRlciB0
eXBlLgorICAgIFJlbmRlck9iamVjdCogZmlyc3RDaGlsZCgpIGNvbnN0CisgICAgeworICAgICAg
ICBpZiAoY29uc3QgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiBjaGlsZHJlbiA9IHRoaXMtPmNoaWxk
cmVuKCkpCisgICAgICAgICAgICByZXR1cm4gY2hpbGRyZW4tPmZpcnN0Q2hpbGQoKTsKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgfQorICAgIFJlbmRlck9iamVjdCogbGFzdENoaWxkKCkgY29uc3QK
KyAgICB7CisgICAgICAgIGlmIChjb25zdCBSZW5kZXJPYmplY3RDaGlsZExpc3QqIGNoaWxkcmVu
ID0gdGhpcy0+Y2hpbGRyZW4oKSkKKyAgICAgICAgICAgIHJldHVybiBjaGlsZHJlbi0+bGFzdENo
aWxkKCk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHZpcnR1YWwgUmVuZGVyT2Jq
ZWN0Q2hpbGRMaXN0KiBjaGlsZHJlbigpIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIGNvbnN0
IFJlbmRlck9iamVjdENoaWxkTGlzdCogY2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiAwOyB9CiAK
ICAgICBSZW5kZXJPYmplY3QqIG5leHRJblByZU9yZGVyKCkgY29uc3Q7CiAgICAgUmVuZGVyT2Jq
ZWN0KiBuZXh0SW5QcmVPcmRlcihjb25zdCBSZW5kZXJPYmplY3QqIHN0YXlXaXRoaW4pIGNvbnN0
OwpAQCAtMjUzLDcgKzI3MCw3IEBAIHB1YmxpYzoKICAgICAKICAgICAvLyBSZW5kZXJPYmplY3Qg
dHJlZSBtYW5pcHVsYXRpb24KICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KLSAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QgPSAwOwor
ICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBjaGlsZHJl
bigpOyB9CiAgICAgdmlydHVhbCBib29sIGNhbkhhdmVHZW5lcmF0ZWRDaGlsZHJlbigpIGNvbnN0
OwogICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVzQW5vbnltb3VzV3JhcHBlcigpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hp
bGRMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExp
c3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjE5NjNjYTExNjVjY2Q5OWQ5ZGVlNjE2NDQyOTIzN2Q5MzMyNGU3
ODMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0Q2hpbGRMaXN0LmNwcApAQCAtMCwwICsxLDE3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5kZXJPYmplY3RDaGls
ZExpc3QuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJSZW5kZXJD
b3VudGVyLmgiCisjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlJlbmRlckxp
bmVCcmVhay5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiUmVuZGVyVmll
dy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0
OjpkZXN0cm95TGVmdG92ZXJDaGlsZHJlbigpCit7CisgICAgd2hpbGUgKGZpcnN0Q2hpbGQoKSkg
eworICAgICAgICBpZiAoZmlyc3RDaGlsZCgpLT5pc0xpc3RNYXJrZXIoKSB8fCAoZmlyc3RDaGls
ZCgpLT5zdHlsZSgpLT5zdHlsZVR5cGUoKSA9PSBGSVJTVF9MRVRURVIgJiYgIWZpcnN0Q2hpbGQo
KS0+aXNUZXh0KCkpKQorICAgICAgICAgICAgZmlyc3RDaGlsZCgpLT5yZW1vdmVGcm9tUGFyZW50
KCk7IC8vIExpc3QgbWFya2VycyBhcmUgb3duZWQgYnkgdGhlaXIgZW5jbG9zaW5nIGxpc3QgYW5k
IHNvIGRvbid0IGdldCBkZXN0cm95ZWQgYnkgdGhpcyBjb250YWluZXIuIFNpbWlsYXJseSwgZmly
c3QgbGV0dGVycyBhcmUgZGVzdHJveWVkIGJ5IHRoZWlyIHJlbWFpbmluZyB0ZXh0IGZyYWdtZW50
LgorICAgICAgICBlbHNlIGlmIChmaXJzdENoaWxkKCktPmlzUnVuSW4oKSAmJiBmaXJzdENoaWxk
KCktPm5vZGUoKSkgeworICAgICAgICAgICAgZmlyc3RDaGlsZCgpLT5ub2RlKCktPnNldFJlbmRl
cmVyKDApOworICAgICAgICAgICAgZmlyc3RDaGlsZCgpLT5ub2RlKCktPnNldE5lZWRzU3R5bGVS
ZWNhbGMoKTsKKyAgICAgICAgICAgIGZpcnN0Q2hpbGQoKS0+ZGVzdHJveSgpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgLy8gRGVzdHJveSBhbnkgYW5vbnltb3VzIGNoaWxkcmVuIHJl
bWFpbmluZyBpbiB0aGUgcmVuZGVyIHRyZWUsIGFzIHdlbGwgYXMgaW1wbGljaXQgKHNoYWRvdykg
RE9NIGVsZW1lbnRzIGxpa2UgdGhvc2UgdXNlZCBpbiB0aGUgZW5naW5lLWJhc2VkIHRleHQgZmll
bGRzLgorICAgICAgICAgICAgaWYgKGZpcnN0Q2hpbGQoKS0+bm9kZSgpKQorICAgICAgICAgICAg
ICAgIGZpcnN0Q2hpbGQoKS0+bm9kZSgpLT5zZXRSZW5kZXJlcigwKTsKKyAgICAgICAgICAgIGZp
cnN0Q2hpbGQoKS0+ZGVzdHJveSgpOworICAgICAgICB9CisgICAgfQorfQorCitSZW5kZXJPYmpl
Y3QqIFJlbmRlck9iamVjdENoaWxkTGlzdDo6cmVtb3ZlQ2hpbGROb2RlKFJlbmRlckVsZW1lbnQq
IG93bmVyLCBSZW5kZXJPYmplY3QqIG9sZENoaWxkLCBib29sIG5vdGlmeVJlbmRlcmVyKQorewor
ICAgIEFTU0VSVChvbGRDaGlsZC0+cGFyZW50KCkgPT0gb3duZXIpOworCisgICAgaWYgKG9sZENo
aWxkLT5pc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCisgICAgICAgIHRvUmVuZGVy
Qm94KG9sZENoaWxkKS0+cmVtb3ZlRmxvYXRpbmdPclBvc2l0aW9uZWRDaGlsZEZyb21CbG9ja0xp
c3RzKCk7CisKKyAgICAvLyBTbyB0aGF0IHdlJ2xsIGdldCB0aGUgYXBwcm9wcmlhdGUgZGlydHkg
Yml0IHNldCAoZWl0aGVyIHRoYXQgYSBub3JtYWwgZmxvdyBjaGlsZCBnb3QgeWFua2VkIG9yCisg
ICAgLy8gdGhhdCBhIHBvc2l0aW9uZWQgY2hpbGQgZ290IHlhbmtlZCkuIFdlIGFsc28gcmVwYWlu
dCwgc28gdGhhdCB0aGUgYXJlYSBleHBvc2VkIHdoZW4gdGhlIGNoaWxkCisgICAgLy8gZGlzYXBw
ZWFycyBnZXRzIHJlcGFpbnRlZCBwcm9wZXJseS4KKyAgICBpZiAoIW93bmVyLT5kb2N1bWVudEJl
aW5nRGVzdHJveWVkKCkgJiYgbm90aWZ5UmVuZGVyZXIgJiYgb2xkQ2hpbGQtPmV2ZXJIYWRMYXlv
dXQoKSkgeworICAgICAgICBvbGRDaGlsZC0+c2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVj
YWxjKCk7CisgICAgICAgIC8vIFdlIG9ubHkgcmVwYWludCB8b2xkQ2hpbGR8IGlmIHdlIGhhdmUg
YSBSZW5kZXJMYXllciBhcyBpdHMgdmlzdWFsIG92ZXJmbG93IG1heSBub3QgYmUgdHJhY2tlZCBi
eSBpdHMgcGFyZW50LgorICAgICAgICBpZiAob2xkQ2hpbGQtPmlzQm9keSgpKQorICAgICAgICAg
ICAgb3duZXItPnZpZXcoKS5yZXBhaW50Um9vdENvbnRlbnRzKCk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIG9sZENoaWxkLT5yZXBhaW50KCk7CisgICAgfQorCisgICAgLy8gSWYgd2UgaGF2
ZSBhIGxpbmUgYm94IHdyYXBwZXIsIGRlbGV0ZSBpdC4KKyAgICBpZiAob2xkQ2hpbGQtPmlzQm94
KCkpCisgICAgICAgIHRvUmVuZGVyQm94KG9sZENoaWxkKS0+ZGVsZXRlTGluZUJveFdyYXBwZXIo
KTsKKyAgICBlbHNlIGlmIChvbGRDaGlsZC0+aXNMaW5lQnJlYWsoKSkKKyAgICAgICAgdG9SZW5k
ZXJMaW5lQnJlYWsob2xkQ2hpbGQpLT5kZWxldGVJbmxpbmVCb3hXcmFwcGVyKCk7CisKKyAgICAv
LyBJZiBvbGRDaGlsZCBpcyB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZSBzZWxlY3Rpb24sIHRoZW4g
Y2xlYXIgdGhlIHNlbGVjdGlvbiB0bworICAgIC8vIGF2b2lkIHByb2JsZW1zIG9mIGludmFsaWQg
cG9pbnRlcnMuCisgICAgLy8gRklYTUU6IFRoZSBGcmFtZVNlbGVjdGlvbiBzaG91bGQgYmUgcmVz
cG9uc2libGUgZm9yIHRoaXMgd2hlbiBpdAorICAgIC8vIGlzIG5vdGlmaWVkIG9mIERPTSBtdXRh
dGlvbnMuCisgICAgaWYgKCFvd25lci0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpICYmIG9sZENo
aWxkLT5pc1NlbGVjdGlvbkJvcmRlcigpKQorICAgICAgICBvd25lci0+dmlldygpLmNsZWFyU2Vs
ZWN0aW9uKCk7CisKKyAgICBpZiAoIW93bmVyLT5kb2N1bWVudEJlaW5nRGVzdHJveWVkKCkgJiYg
bm90aWZ5UmVuZGVyZXIpCisgICAgICAgIG9sZENoaWxkLT53aWxsQmVSZW1vdmVkRnJvbVRyZWUo
KTsKKworICAgIC8vIFdBUk5JTkc6IFRoZXJlIHNob3VsZCBiZSBubyBjb2RlIHJ1bm5pbmcgYmV0
d2VlbiB3aWxsQmVSZW1vdmVkRnJvbVRyZWUgYW5kIHRoZSBhY3R1YWwgcmVtb3ZhbCBiZWxvdy4K
KyAgICAvLyBUaGlzIGlzIG5lZWRlZCB0byBhdm9pZCByYWNlIGNvbmRpdGlvbnMgd2hlcmUgd2ls
bEJlUmVtb3ZlZEZyb21UcmVlIHdvdWxkIGRpcnR5IHRoZSB0cmVlJ3Mgc3RydWN0dXJlCisgICAg
Ly8gYW5kIHRoZSBjb2RlIHJ1bm5pbmcgaGVyZSB3b3VsZCBmb3JjZSBhbiB1bnRpbWVseSByZWJ1
aWxkaW5nLCBsZWF2aW5nIHxvbGRDaGlsZHwgZGFuZ2xpbmcuCisKKyAgICBpZiAob2xkQ2hpbGQt
PnByZXZpb3VzU2libGluZygpKQorICAgICAgICBvbGRDaGlsZC0+cHJldmlvdXNTaWJsaW5nKCkt
PnNldE5leHRTaWJsaW5nKG9sZENoaWxkLT5uZXh0U2libGluZygpKTsKKyAgICBpZiAob2xkQ2hp
bGQtPm5leHRTaWJsaW5nKCkpCisgICAgICAgIG9sZENoaWxkLT5uZXh0U2libGluZygpLT5zZXRQ
cmV2aW91c1NpYmxpbmcob2xkQ2hpbGQtPnByZXZpb3VzU2libGluZygpKTsKKworICAgIGlmIChm
aXJzdENoaWxkKCkgPT0gb2xkQ2hpbGQpCisgICAgICAgIHNldEZpcnN0Q2hpbGQob2xkQ2hpbGQt
Pm5leHRTaWJsaW5nKCkpOworICAgIGlmIChsYXN0Q2hpbGQoKSA9PSBvbGRDaGlsZCkKKyAgICAg
ICAgc2V0TGFzdENoaWxkKG9sZENoaWxkLT5wcmV2aW91c1NpYmxpbmcoKSk7CisKKyAgICBvbGRD
aGlsZC0+c2V0UHJldmlvdXNTaWJsaW5nKDApOworICAgIG9sZENoaWxkLT5zZXROZXh0U2libGlu
ZygwKTsKKyAgICBvbGRDaGlsZC0+c2V0UGFyZW50KDApOworCisgICAgLy8gcmVuZGVyZXJSZW1v
dmVkRnJvbVRyZWUgd2Fsa3MgdGhlIHdob2xlIHN1YnRyZWUuIFdlIGNhbiBpbXByb3ZlIHBlcmZv
cm1hbmNlCisgICAgLy8gYnkgc2tpcHBpbmcgdGhpcyBzdGVwIHdoZW4gZGVzdHJveWluZyB0aGUg
ZW50aXJlIHRyZWUuCisgICAgaWYgKCFvd25lci0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKQor
ICAgICAgICBSZW5kZXJDb3VudGVyOjpyZW5kZXJlclJlbW92ZWRGcm9tVHJlZShvbGRDaGlsZCk7
CisKKyAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBvd25lci0+ZG9jdW1lbnQoKS5leGlz
dGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgY2FjaGUtPmNoaWxkcmVuQ2hhbmdlZChvd25l
cik7CisKKyAgICByZXR1cm4gb2xkQ2hpbGQ7Cit9CisKK3ZvaWQgUmVuZGVyT2JqZWN0Q2hpbGRM
aXN0OjppbnNlcnRDaGlsZE5vZGUoUmVuZGVyRWxlbWVudCogb3duZXIsIFJlbmRlck9iamVjdCog
bmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQsIGJvb2wgbm90aWZ5UmVuZGVyZXIp
Cit7CisgICAgQVNTRVJUKCFuZXdDaGlsZC0+cGFyZW50KCkpOworICAgIEFTU0VSVCghb3duZXIt
PmlzUmVuZGVyQmxvY2tGbG93KCkgfHwgKCFuZXdDaGlsZC0+aXNUYWJsZVNlY3Rpb24oKSAmJiAh
bmV3Q2hpbGQtPmlzVGFibGVSb3coKSAmJiAhbmV3Q2hpbGQtPmlzVGFibGVDZWxsKCkpKTsKKwor
ICAgIHdoaWxlIChiZWZvcmVDaGlsZCAmJiBiZWZvcmVDaGlsZC0+cGFyZW50KCkgJiYgYmVmb3Jl
Q2hpbGQtPnBhcmVudCgpICE9IG93bmVyKQorICAgICAgICBiZWZvcmVDaGlsZCA9IGJlZm9yZUNo
aWxkLT5wYXJlbnQoKTsKKworICAgIC8vIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiwgYnV0IGlm
IGl0IGRvZXMgcHJldmVudCByZW5kZXIgdHJlZSBjb3JydXB0aW9uCisgICAgLy8gd2hlcmUgY2hp
bGQtPnBhcmVudCgpIGVuZHMgdXAgYmVpbmcgb3duZXIgYnV0IGNoaWxkLT5uZXh0U2libGluZygp
LT5wYXJlbnQoKQorICAgIC8vIGlzIG5vdCBvd25lci4KKyAgICBpZiAoYmVmb3JlQ2hpbGQgJiYg
YmVmb3JlQ2hpbGQtPnBhcmVudCgpICE9IG93bmVyKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbmV3Q2hpbGQtPnNldFBhcmVu
dChvd25lcik7CisKKyAgICBpZiAoZmlyc3RDaGlsZCgpID09IGJlZm9yZUNoaWxkKQorICAgICAg
ICBzZXRGaXJzdENoaWxkKG5ld0NoaWxkKTsKKworICAgIGlmIChiZWZvcmVDaGlsZCkgeworICAg
ICAgICBSZW5kZXJPYmplY3QqIHByZXZpb3VzU2libGluZyA9IGJlZm9yZUNoaWxkLT5wcmV2aW91
c1NpYmxpbmcoKTsKKyAgICAgICAgaWYgKHByZXZpb3VzU2libGluZykKKyAgICAgICAgICAgIHBy
ZXZpb3VzU2libGluZy0+c2V0TmV4dFNpYmxpbmcobmV3Q2hpbGQpOworICAgICAgICBuZXdDaGls
ZC0+c2V0UHJldmlvdXNTaWJsaW5nKHByZXZpb3VzU2libGluZyk7CisgICAgICAgIG5ld0NoaWxk
LT5zZXROZXh0U2libGluZyhiZWZvcmVDaGlsZCk7CisgICAgICAgIGJlZm9yZUNoaWxkLT5zZXRQ
cmV2aW91c1NpYmxpbmcobmV3Q2hpbGQpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChsYXN0
Q2hpbGQoKSkKKyAgICAgICAgICAgIGxhc3RDaGlsZCgpLT5zZXROZXh0U2libGluZyhuZXdDaGls
ZCk7CisgICAgICAgIG5ld0NoaWxkLT5zZXRQcmV2aW91c1NpYmxpbmcobGFzdENoaWxkKCkpOwor
ICAgICAgICBzZXRMYXN0Q2hpbGQobmV3Q2hpbGQpOworICAgIH0KKworICAgIGlmICghb3duZXIt
PmRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSAmJiBub3RpZnlSZW5kZXJlcikKKyAgICAgICAgbmV3
Q2hpbGQtPmluc2VydGVkSW50b1RyZWUoKTsKKworICAgIGlmICghb3duZXItPmRvY3VtZW50QmVp
bmdEZXN0cm95ZWQoKSkgeworICAgICAgICBSZW5kZXJDb3VudGVyOjpyZW5kZXJlclN1YnRyZWVB
dHRhY2hlZChuZXdDaGlsZCk7CisgICAgfQorCisgICAgbmV3Q2hpbGQtPnNldE5lZWRzTGF5b3V0
QW5kUHJlZldpZHRoc1JlY2FsYygpOworICAgIG93bmVyLT5zZXRQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzRGlydHkodHJ1ZSk7CisgICAgaWYgKCFvd25lci0+bm9ybWFsQ2hpbGROZWVkc0xheW91dCgp
KQorICAgICAgICBvd25lci0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlKTsgLy8gV2UgbWF5IHN1
cHBseSB0aGUgc3RhdGljIHBvc2l0aW9uIGZvciBhbiBhYnNvbHV0ZSBwb3NpdGlvbmVkIGNoaWxk
LgorCisgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gb3duZXItPmRvY3VtZW50KCkuYXhP
YmplY3RDYWNoZSgpKQorICAgICAgICBjYWNoZS0+Y2hpbGRyZW5DaGFuZ2VkKG93bmVyKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdENoaWxkTGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1YzlmZjFmNjY2OTdkMWE3ZjRl
ZGQ3NDE5YTM2OTMwYzRiMzA1NmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIFJlbmRlck9iamVjdENoaWxkTGlzdF9oCisjZGVmaW5lIFJlbmRlck9iamVj
dENoaWxkTGlzdF9oCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFJlbmRlckVsZW1lbnQ7CitjbGFzcyBSZW5kZXJPYmplY3Q7CisKK2Ns
YXNzIFJlbmRlck9iamVjdENoaWxkTGlzdCB7CitwdWJsaWM6CisgICAgUmVuZGVyT2JqZWN0Q2hp
bGRMaXN0KCkKKyAgICAgICAgOiBtX2ZpcnN0Q2hpbGQoMCkKKyAgICAgICAgLCBtX2xhc3RDaGls
ZCgwKQorICAgIHsKKyAgICB9CisKKyAgICBSZW5kZXJPYmplY3QqIGZpcnN0Q2hpbGQoKSBjb25z
dCB7IHJldHVybiBtX2ZpcnN0Q2hpbGQ7IH0KKyAgICBSZW5kZXJPYmplY3QqIGxhc3RDaGlsZCgp
IGNvbnN0IHsgcmV0dXJuIG1fbGFzdENoaWxkOyB9CisKKyAgICAvLyBGSVhNRTogVGVtcG9yYXJ5
IHdoaWxlIFJlbmRlckJveCBzdGlsbCBleGlzdHMuIEV2ZW50dWFsbHkgdGhpcyB3aWxsIGp1c3Qg
aGFwcGVuIGR1cmluZyBpbnNlcnQvYXBwZW5kL3JlbW92ZSBtZXRob2RzIG9uIHRoZSBjaGlsZCBs
aXN0LCBhbmQgbm9ib2R5CisgICAgLy8gd2lsbCBuZWVkIHRvIG1hbmlwdWxhdGUgZmlyc3RDaGls
ZCBvciBsYXN0Q2hpbGQgZGlyZWN0bHkuCisgICAgdm9pZCBzZXRGaXJzdENoaWxkKFJlbmRlck9i
amVjdCogY2hpbGQpIHsgbV9maXJzdENoaWxkID0gY2hpbGQ7IH0KKyAgICB2b2lkIHNldExhc3RD
aGlsZChSZW5kZXJPYmplY3QqIGNoaWxkKSB7IG1fbGFzdENoaWxkID0gY2hpbGQ7IH0KKworICAg
IHZvaWQgZGVzdHJveUxlZnRvdmVyQ2hpbGRyZW4oKTsKKworICAgIFJlbmRlck9iamVjdCogcmVt
b3ZlQ2hpbGROb2RlKFJlbmRlckVsZW1lbnQqIG93bmVyLCBSZW5kZXJPYmplY3QqLCBib29sIG5v
dGlmeVJlbmRlcmVyID0gdHJ1ZSk7CisgICAgdm9pZCBpbnNlcnRDaGlsZE5vZGUoUmVuZGVyRWxl
bWVudCogb3duZXIsIFJlbmRlck9iamVjdCogbmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3Jl
Q2hpbGQsIGJvb2wgbm90aWZ5UmVuZGVyZXIgPSB0cnVlKTsKKyAgICB2b2lkIGFwcGVuZENoaWxk
Tm9kZShSZW5kZXJFbGVtZW50KiBvd25lciwgUmVuZGVyT2JqZWN0KiBuZXdDaGlsZCwgYm9vbCBu
b3RpZnlSZW5kZXJlciA9IHRydWUpCisgICAgeworICAgICAgICBpbnNlcnRDaGlsZE5vZGUob3du
ZXIsIG5ld0NoaWxkLCAwLCBub3RpZnlSZW5kZXJlcik7CisgICAgfQorCitwcml2YXRlOgorICAg
IFJlbmRlck9iamVjdCogbV9maXJzdENoaWxkOworICAgIFJlbmRlck9iamVjdCogbV9sYXN0Q2hp
bGQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZW5kZXJPYmpl
Y3RDaGlsZExpc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlcGxhY2VkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaApp
bmRleCA5NjBkN2IxNGVjZTZiNTIzZWE3NjZhMjc2NmQ0NmQ2M2QwMDU0Y2Y0Li41YmRkMGJjNDlk
ODllMDViMTZjMzliY2ViY2UyNTFiNjcxMTlkNmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVwbGFjZWQuaApAQCAtNzIsNyArNzIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgUmVuZGVyQm94KiBlbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdCB7IHJldHVybiAwOyB9CiAg
ICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gIlJlbmRlclJlcGxhY2VkIjsgfQogCi0gICAgdmlydHVhbCBib29sIGNhbkhhdmVDaGlsZHJl
bigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGNh
bkhhdmVDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIHZv
aWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBPVkVSUklERSBGSU5BTDsKICAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRSZXBsYWNlZChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYp
IHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxpY2Eu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmgKaW5kZXggYWQ0MDdj
NDE1Yjc5MTk3MDRkN2M4OGZkNDc1NTNlZjA3MGYwNmMxZC4uMjE3YThjYmVkMWQ4MGM2MTM2ZDE1
YThlZWNjZjk2Nzg2NTQ2N2E5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclJlcGxpY2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVw
bGljYS5oCkBAIC01MCw5ICs1MCw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgUmVuZGVyUmVw
bGljYSgpOwogCi0gICAgdmlydHVhbCBib29sIGlzUmVwbGljYSgpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3Qg
T1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVByZWZl
cnJlZExvZ2ljYWxXaWR0aHMoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZXBsaWNh
KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVy
cmVkTG9naWNhbFdpZHRocygpOwogCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclJ1YnlCYXNlLmNwcAppbmRleCA4NTU3NzYyODcxNDA4YmQ2ZTdkNWJjNGZjNWFkOWZiZmVk
MWI4MDBkLi5mMDFkY2YzN2ZjZWJkM2YyNTUyZmZjMTM1ZWU5YTA5NWE5NzZiMzMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5jcHAKQEAgLTk4LDcgKzk4LDcg
QEAgdm9pZCBSZW5kZXJSdWJ5QmFzZTo6bW92ZUlubGluZUNoaWxkcmVuKFJlbmRlclJ1YnlCYXNl
KiB0b0Jhc2UsIFJlbmRlck9iamVjdCogYmUKICAgICAgICAgICAgIHRvQmxvY2sgPSB0b1JlbmRl
ckJsb2NrKGxhc3RDaGlsZCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgdG9CbG9jayA9
IHRvQmFzZS0+Y3JlYXRlQW5vbnltb3VzQmxvY2soKTsKLSAgICAgICAgICAgIHRvQmFzZS0+aW5z
ZXJ0Q2hpbGRJbnRlcm5hbCh0b0Jsb2NrLCBudWxscHRyLCBOb3RpZnlDaGlsZHJlbik7CisgICAg
ICAgICAgICB0b0Jhc2UtPmNoaWxkcmVuKCktPmFwcGVuZENoaWxkTm9kZSh0b0Jhc2UsIHRvQmxv
Y2spOwogICAgICAgICB9CiAgICAgfQogICAgIC8vIE1vdmUgb3VyIGlubGluZSBjaGlsZHJlbiBp
bnRvIHRoZSB0YXJnZXQgYmxvY2sgd2UgZGV0ZXJtaW5lZCBhYm92ZS4KQEAgLTEyMyw3ICsxMjMs
NyBAQCB2b2lkIFJlbmRlclJ1YnlCYXNlOjptb3ZlQmxvY2tDaGlsZHJlbihSZW5kZXJSdWJ5QmFz
ZSogdG9CYXNlLCBSZW5kZXJPYmplY3QqIGJlZgogICAgICAgICAgICAgJiYgbGFzdENoaWxkVGhl
cmUgJiYgbGFzdENoaWxkVGhlcmUtPmlzQW5vbnltb3VzQmxvY2soKSAmJiBsYXN0Q2hpbGRUaGVy
ZS0+Y2hpbGRyZW5JbmxpbmUoKSkgeyAgICAgICAgICAgIAogICAgICAgICBSZW5kZXJCbG9jayog
YW5vbkJsb2NrSGVyZSA9IHRvUmVuZGVyQmxvY2soZmlyc3RDaGlsZEhlcmUpOwogICAgICAgICBS
ZW5kZXJCbG9jayogYW5vbkJsb2NrVGhlcmUgPSB0b1JlbmRlckJsb2NrKGxhc3RDaGlsZFRoZXJl
KTsKLSAgICAgICAgYW5vbkJsb2NrSGVyZS0+bW92ZUFsbENoaWxkcmVuVG8oYW5vbkJsb2NrVGhl
cmUsIHRydWUpOworICAgICAgICBhbm9uQmxvY2tIZXJlLT5tb3ZlQWxsQ2hpbGRyZW5Ubyhhbm9u
QmxvY2tUaGVyZSwgYW5vbkJsb2NrVGhlcmUtPmNoaWxkcmVuKCkpOwogICAgICAgICBhbm9uQmxv
Y2tIZXJlLT5kZWxldGVMaW5lQm94VHJlZSgpOwogICAgICAgICBhbm9uQmxvY2tIZXJlLT5kZXN0
cm95KCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlQ29sLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuaApp
bmRleCBlODEwMDkwNGQzM2FkZDIxMDZkNGQ0OGU2NGZiYjM0ZTRhYzU0OGVkLi43NjRlZGU2Nzk4
YWJiOGViNjQxNTRjOWJlYTI1ZTk3OGFkNGU4NjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGVDb2wuaApAQCAtMzgsNiArMzgsMTIgQEAgcHVibGljOgogICAgIGV4cGxp
Y2l0IFJlbmRlclRhYmxlQ29sKEVsZW1lbnQmKTsKICAgICBFbGVtZW50JiBlbGVtZW50KCkgY29u
c3QgeyByZXR1cm4gdG9FbGVtZW50KG5vZGVGb3JOb25Bbm9ueW1vdXMoKSk7IH0KIAorICAgIFJl
bmRlck9iamVjdCogZmlyc3RDaGlsZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRyZW4uZmlyc3RD
aGlsZCgpOyB9CisgICAgUmVuZGVyT2JqZWN0KiBsYXN0Q2hpbGQoKSBjb25zdCB7IHJldHVybiBt
X2NoaWxkcmVuLmxhc3RDaGlsZCgpOyB9CisKKyAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVj
dENoaWxkTGlzdCogY2hpbGRyZW4oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAmbV9jaGlsZHJl
bjsgfQorICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiBjaGlsZHJlbigpIE9WRVJS
SURFIHsgcmV0dXJuICZtX2NoaWxkcmVuOyB9CisKICAgICB2b2lkIGNsZWFyUHJlZmVycmVkTG9n
aWNhbFdpZHRoc0RpcnR5Qml0cygpOwogCiAgICAgdW5zaWduZWQgc3BhbigpIGNvbnN0IHsgcmV0
dXJuIG1fc3BhbjsgfQpAQCAtOTEsNiArOTcsNyBAQCBwcml2YXRlOgogCiAgICAgUmVuZGVyVGFi
bGUqIHRhYmxlKCkgY29uc3Q7CiAKKyAgICBSZW5kZXJPYmplY3RDaGlsZExpc3QgbV9jaGlsZHJl
bjsKICAgICB1bnNpZ25lZCBtX3NwYW47CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZVJvdy5oCmluZGV4IGZlNDg0Zjc2M2UxNDJlYmUxNThiMGJkYTZjOGE5MjY2OWVj
NjA5YzEuLmE5ZjI4ODM1ZjIwOGM0NTc2ZDVjMjQ4Yjg4YTkzZTNkYWE3Njc5NGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oCkBAIC0zNiw2ICszNiwxMiBAQCBj
bGFzcyBSZW5kZXJUYWJsZVJvdyBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCb3ggewogcHVibGljOgog
ICAgIGV4cGxpY2l0IFJlbmRlclRhYmxlUm93KEVsZW1lbnQqKTsKIAorICAgIFJlbmRlck9iamVj
dCogZmlyc3RDaGlsZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRyZW4uZmlyc3RDaGlsZCgpOyB9
CisgICAgUmVuZGVyT2JqZWN0KiBsYXN0Q2hpbGQoKSBjb25zdCB7IHJldHVybiBtX2NoaWxkcmVu
Lmxhc3RDaGlsZCgpOyB9CisKKyAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdENoaWxkTGlz
dCogY2hpbGRyZW4oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAmbV9jaGlsZHJlbjsgfQorICAg
IHZpcnR1YWwgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiBjaGlsZHJlbigpIE9WRVJSSURFIHsgcmV0
dXJuICZtX2NoaWxkcmVuOyB9CisKICAgICBSZW5kZXJUYWJsZVNlY3Rpb24qIHNlY3Rpb24oKSBj
b25zdCB7IHJldHVybiB0b1JlbmRlclRhYmxlU2VjdGlvbihwYXJlbnQoKSk7IH0KICAgICBSZW5k
ZXJUYWJsZSogdGFibGUoKSBjb25zdCB7IHJldHVybiB0b1JlbmRlclRhYmxlKHBhcmVudCgpLT5w
YXJlbnQoKSk7IH0KIApAQCAtODksNyArOTUsNiBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBi
b29sIGlzVGFibGVSb3coKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2
aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1
ZTsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVSZW1vdmVkRnJvbVRyZWUoKSBPVkVSUklERTsK
IAogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVSUklERTsKQEAgLTEwNCw2ICsxMDksNyBA
QCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVy
ZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBPVkVSUklERTsKIAorICAgIFJlbmRl
ck9iamVjdENoaWxkTGlzdCBtX2NoaWxkcmVuOwogICAgIHVuc2lnbmVkIG1fcm93SW5kZXggOiAz
MTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJs
ZVNlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24u
aAppbmRleCBmNzQ4OTdiZmZiMzNkMWJkYmYzMTVhNjY1ZGFiMDI4Zjg3MTU5ZmRiLi45OGM0NjVl
MmJiZmRiZjRiMDYxYmE1N2UwMTFmNjMxOTI3ZWE4YTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oCkBAIC02NSw2ICs2NSwxMiBAQCBwdWJsaWM6
CiAgICAgZXhwbGljaXQgUmVuZGVyVGFibGVTZWN0aW9uKEVsZW1lbnQqKTsKICAgICB2aXJ0dWFs
IH5SZW5kZXJUYWJsZVNlY3Rpb24oKTsKIAorICAgIFJlbmRlck9iamVjdCogZmlyc3RDaGlsZCgp
IGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRyZW4uZmlyc3RDaGlsZCgpOyB9CisgICAgUmVuZGVyT2Jq
ZWN0KiBsYXN0Q2hpbGQoKSBjb25zdCB7IHJldHVybiBtX2NoaWxkcmVuLmxhc3RDaGlsZCgpOyB9
CisKKyAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdENoaWxkTGlzdCogY2hpbGRyZW4oKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiAmbV9jaGlsZHJlbjsgfQorICAgIHZpcnR1YWwgUmVuZGVy
T2JqZWN0Q2hpbGRMaXN0KiBjaGlsZHJlbigpIE9WRVJSSURFIHsgcmV0dXJuICZtX2NoaWxkcmVu
OyB9CisKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVu
ZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IDApIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBpbnQg
Zmlyc3RMaW5lQm94QmFzZWxpbmUoKSBjb25zdCBPVkVSUklERTsKQEAgLTE5OCw4ICsyMDQsNiBA
QCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFt
ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIChpc0Fub255bW91cygpIHx8IGlzUHNldWRvRWxl
bWVudCgpKSA/ICJSZW5kZXJUYWJsZVNlY3Rpb24gKGFub255bW91cykiIDogIlJlbmRlclRhYmxl
U2VjdGlvbiI7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0KICAgICB2aXJ0dWFsIGJvb2wgaXNUYWJsZVNlY3Rp
b24oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQg
d2lsbEJlUmVtb3ZlZEZyb21UcmVlKCkgT1ZFUlJJREU7CkBAIC0yMzgsNiArMjQyLDggQEAgcHJp
dmF0ZToKIAogICAgIHZvaWQgc2V0TG9naWNhbFBvc2l0aW9uRm9yQ2VsbChSZW5kZXJUYWJsZUNl
bGwqLCB1bnNpZ25lZCBlZmZlY3RpdmVDb2x1bW4pIGNvbnN0OwogCisgICAgUmVuZGVyT2JqZWN0
Q2hpbGRMaXN0IG1fY2hpbGRyZW47CisKICAgICBWZWN0b3I8Um93U3RydWN0PiBtX2dyaWQ7CiAg
ICAgVmVjdG9yPGludD4gbV9yb3dQb3M7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dC5oCmluZGV4IDhiNWYzYTcyM2U5YzQyMzMwN2QzM2Q2MDk5MDJjMTk4ZDhmNmY2NDkuLjIxN2Y0
NWVhMmQ4NDkxOWY4YzExNzlhMWEwNTUyODQyYTgxN2ExZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHQuaApAQCAtMTU4LDggKzE1OCw2IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0
dWFsIElubGluZVRleHRCb3gqIGNyZWF0ZVRleHRCb3goKTsgLy8gU3ViY2xhc3NlZCBieSBTVkcu
CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0IE9W
RVJSSURFIEZJTkFMIHsgcmV0dXJuIGZhbHNlOyB9Ci0KICAgICB2b2lkIGNvbXB1dGVQcmVmZXJy
ZWRMb2dpY2FsV2lkdGhzKGZsb2F0IGxlYWRXaWR0aCwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250
RGF0YSo+JiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93Jik7CiAKICAgICBib29sIGNvbXB1
dGVDYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJpbmdBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyaW5nQWxsSW5PbmUuY3BwCmluZGV4IGU5NGU3ZjZlZmI0ZDExMDA2ZWEy
NDI4ZmQwNjQwMDMxZjNlZjVmYzkuLjMxZDM1Y2YyNTExMzczMWM2YmJkMmJlM2VlM2Q5NDgzZDc0
ZDc3NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJpbmdBbGxJ
bk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcmluZ0FsbEluT25l
LmNwcApAQCAtODQsNiArODQsNyBAQAogI2luY2x1ZGUgIlJlbmRlck11bHRpQ29sdW1uRmxvd1Ro
cmVhZC5jcHAiCiAjaW5jbHVkZSAiUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwIgogI2luY2x1ZGUg
IlJlbmRlck9iamVjdC5jcHAiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcCIK
ICNpbmNsdWRlICJSZW5kZXJQcm9ncmVzcy5jcHAiCiAjaW5jbHVkZSAiUmVuZGVyUXVvdGUuY3Bw
IgogI2luY2x1ZGUgIlJlbmRlclJlcGxhY2VkLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5jcHAKaW5kZXggYThj
ZGE1YWI3NTdhNGNmNDQ0ODRjMGFlODMxYWY1NzkyMjQyNDliZi4uODEwZmM1NGFkODg1ODQwZTM3
MjlmYTNjNTY4OGQ4OTQ2MTc5NWIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5jcHAKQEAgLTEzOSw3ICsxMzks
NyBAQCB2b2lkIFJlbmRlck1hdGhNTE9wZXJhdG9yOjp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAg
UmVuZGVyT2JqZWN0KiBzYXZlZFJlbmRlcmVyID0gZWxlbWVudCgpLT5yZW5kZXJlcigpOwogCiAg
ICAgLy8gRGVzdHJveSBvdXIgY3VycmVudCBjaGlsZHJlbgotICAgIGRlc3Ryb3lMZWZ0b3ZlckNo
aWxkcmVuKCk7CisgICAgY2hpbGRyZW4oKS0+ZGVzdHJveUxlZnRvdmVyQ2hpbGRyZW4oKTsKIAog
ICAgIC8vIFNpbmNlIHdlIHNoYXJlIGEgbm9kZSB3aXRoIG91ciBjaGlsZHJlbiwgZGVzdHJveWlu
ZyBvdXIgY2hpbGRyZW4gbWF5IHNldCBvdXIgbm9kZSdzCiAgICAgLy8gcmVuZGVyZXIgdG8gMCwg
c28gd2UgbmVlZCB0byByZXN0b3JlIGl0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmgKaW5kZXggNmMwODA4YjYxMjk2YzcyOGRlNmQwMGZj
ODU1YTkwOWIzMDMxYjZiYi4uYzNmNTc2MDY5ZGJmYjIzNmQ0NWNlMGY2NWIyMDczMmNlNDljMmNm
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250
YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRh
aW5lci5oCkBAIC0zNSw2ICszNSwxMiBAQCBjbGFzcyBSZW5kZXJTVkdDb250YWluZXIgOiBwdWJs
aWMgUmVuZGVyU1ZHTW9kZWxPYmplY3QgewogcHVibGljOgogICAgIHZpcnR1YWwgflJlbmRlclNW
R0NvbnRhaW5lcigpOwogCisgICAgUmVuZGVyT2JqZWN0KiBmaXJzdENoaWxkKCkgY29uc3QgeyBy
ZXR1cm4gbV9jaGlsZHJlbi5maXJzdENoaWxkKCk7IH0KKyAgICBSZW5kZXJPYmplY3QqIGxhc3RD
aGlsZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRyZW4ubGFzdENoaWxkKCk7IH0KKworICAgIHZp
cnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiBjaGlsZHJlbigpIGNvbnN0IE9WRVJS
SURFIEZJTkFMIHsgcmV0dXJuICZtX2NoaWxkcmVuOyB9CisgICAgdmlydHVhbCBSZW5kZXJPYmpl
Y3RDaGlsZExpc3QqIGNoaWxkcmVuKCkgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gJm1fY2hpbGRy
ZW47IH0KKwogICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQ
b2ludCYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0JvdW5kYXJpZXNVcGRh
dGUoKSBPVkVSUklERSBGSU5BTCB7IG1fbmVlZHNCb3VuZGFyaWVzVXBkYXRlID0gdHJ1ZTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBuZWVkc0JvdW5kYXJpZXNVcGRhdGUoKSBPVkVSUklERSBGSU5BTCB7
IHJldHVybiBtX25lZWRzQm91bmRhcmllc1VwZGF0ZTsgfQpAQCAtNDcsOCArNTMsNiBAQCBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIGlzU1ZHQ29udGFpbmVyKCkgY29uc3QgT1ZFUlJJREUg
RklOQUwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFt
ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuICJSZW5kZXJTVkdDb250YWluZXIiOyB9CiAKLSAg
ICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyBy
ZXR1cm4gdHJ1ZTsgfQotCiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpIE9WRVJSSURFOwogCiAg
ICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9iamVj
dCogYmVmb3JlQ2hpbGQgPSAwKSBPVkVSUklERSBGSU5BTDsKQEAgLTc1LDYgKzc5LDcgQEAgcHJv
dGVjdGVkOgogICAgIHZvaWQgdXBkYXRlQ2FjaGVkQm91bmRhcmllcygpOwogCiBwcml2YXRlOgor
ICAgIFJlbmRlck9iamVjdENoaWxkTGlzdCBtX2NoaWxkcmVuOwogICAgIEZsb2F0UmVjdCBtX29i
amVjdEJvdW5kaW5nQm94OwogICAgIGJvb2wgbV9vYmplY3RCb3VuZGluZ0JveFZhbGlkOwogICAg
IEZsb2F0UmVjdCBtX3N0cm9rZUJvdW5kaW5nQm94OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdHcmFkaWVudFN0b3AuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHR3JhZGllbnRTdG9wLmgKaW5kZXggNTdkMzM2Y2MyMjlj
YTY5MTdjODAyMGFmYzhhOWRjOWM3ZDMyZWJlNi4uM2JmMTU0ODU5Y2M0NzUwNDc2M2VjOWM2OTA2
NzhmZmZkMWQ5YTY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdHcmFkaWVudFN0b3AuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0dyYWRpZW50U3RvcC5oCkBAIC01Myw4ICs1Myw2IEBAIHByb3RlY3RlZDoKICAg
ICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5k
ZXJTdHlsZSogb2xkU3R5bGUpOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZl
Q2hpbGRyZW4oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQotCiAgICAgU1ZHR3Jh
ZGllbnRFbGVtZW50KiBncmFkaWVudEVsZW1lbnQoKSBjb25zdDsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuaAppbmRleCAzMTRmYTc0N2QwOTQ5
YTMyMzFjMzIwNTI3YWNlZTcxMGFmMTA3MTBkLi4zMTUxYmNlY2FmNTQ4YTQ5ZGNjM2Q3ZTAxYTk2
N2NkMDg4MzAyZWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdJbWFnZS5oCkBAIC01OSw3ICs1OSw2IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIGNvbnN0
IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyU1ZHSW1hZ2UiOyB9CiAg
ICAgdmlydHVhbCBib29sIGlzU1ZHSW1hZ2UoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVl
OyB9Ci0gICAgdmlydHVhbCBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbG9j
YWxUb1BhcmVudFRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxUcmFuc2Zvcm07IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2Rl
bE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVs
T2JqZWN0LmNwcAppbmRleCA0MDg2N2U4NzcwNmZmMWQxNzI5MjE2ODk5NTU1MmZiODFmMDU3MTAw
Li40YzFjNWZiODY3ZTljZTYxMDhlMzcxYTU5NTIyMjQyMDU1MjE5MTViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcApA
QCAtOTUsNyArOTUsNyBAQCB2b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0OjphYnNvbHV0ZVF1YWRz
KFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcywgYm9vbCogd2FzRml4ZQogdm9pZCBSZW5kZXJTVkdN
b2RlbE9iamVjdDo6d2lsbEJlRGVzdHJveWVkKCkKIHsKICAgICBTVkdSZXNvdXJjZXNDYWNoZTo6
Y2xpZW50RGVzdHJveWVkKHRoaXMpOwotICAgIFJlbmRlckVsZW1lbnQ6OndpbGxCZURlc3Ryb3ll
ZCgpOworICAgIFJlbmRlck9iamVjdDo6d2lsbEJlRGVzdHJveWVkKCk7CiB9CiAKIHZvaWQgUmVu
ZGVyU1ZHTW9kZWxPYmplY3Q6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwg
Y29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jvb3QuaAppbmRleCA3MzcyOWRiNGY3YTJmNzRjMDUxNmRmNDcwZjI0Mzcx
MmU0Nzg5NzljLi5jZDhlMWJmZDMxMzkwZGNjZjkzNGQ3NmU3ZDFiMmM4ZDJmYTJkYjgxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaApAQCAtNDYsNiAr
NDYsMTIgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVJbnRyaW5zaWNSYXRp
b0luZm9ybWF0aW9uKEZsb2F0U2l6ZSYgaW50cmluc2ljU2l6ZSwgZG91YmxlJiBpbnRyaW5zaWNS
YXRpbywgYm9vbCYgaXNQZXJjZW50YWdlSW50cmluc2ljU2l6ZSkgY29uc3QgT1ZFUlJJREU7CiAK
KyAgICBSZW5kZXJPYmplY3QqIGZpcnN0Q2hpbGQoKSBjb25zdCB7IHJldHVybiBtX2NoaWxkcmVu
LmZpcnN0Q2hpbGQoKTsgfQorICAgIFJlbmRlck9iamVjdCogbGFzdENoaWxkKCkgY29uc3QgeyBy
ZXR1cm4gbV9jaGlsZHJlbi5sYXN0Q2hpbGQoKTsgfQorCisgICAgdmlydHVhbCBjb25zdCBSZW5k
ZXJPYmplY3RDaGlsZExpc3QqIGNoaWxkcmVuKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gJm1f
Y2hpbGRyZW47IH0KKyAgICB2aXJ0dWFsIFJlbmRlck9iamVjdENoaWxkTGlzdCogY2hpbGRyZW4o
KSBPVkVSUklERSB7IHJldHVybiAmbV9jaGlsZHJlbjsgfQorCiAgICAgYm9vbCBpc0xheW91dFNp
emVDaGFuZ2VkKCkgY29uc3QgeyByZXR1cm4gbV9pc0xheW91dFNpemVDaGFuZ2VkOyB9CiAgICAg
dmlydHVhbCB2b2lkIHNldE5lZWRzQm91bmRhcmllc1VwZGF0ZSgpIE9WRVJSSURFIHsgbV9uZWVk
c0JvdW5kYXJpZXNPclRyYW5zZm9ybVVwZGF0ZSA9IHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wg
bmVlZHNCb3VuZGFyaWVzVXBkYXRlKCkgT1ZFUlJJREUgeyByZXR1cm4gbV9uZWVkc0JvdW5kYXJp
ZXNPclRyYW5zZm9ybVVwZGF0ZTsgfQpAQCAtMTA5LDYgKzExNSw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCB1cGRhdGVDYWNoZWRCb3VuZGFyaWVzKCk7CiAgICAgdm9pZCBidWlsZExvY2FsVG9Cb3Jk
ZXJCb3hUcmFuc2Zvcm0oKTsKIAorICAgIFJlbmRlck9iamVjdENoaWxkTGlzdCBtX2NoaWxkcmVu
OwogICAgIEludFNpemUgbV9jb250YWluZXJTaXplOwogICAgIEZsb2F0UmVjdCBtX29iamVjdEJv
dW5kaW5nQm94OwogICAgIGJvb2wgbV9vYmplY3RCb3VuZGluZ0JveFZhbGlkOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oCmluZGV4IDg5MWM0MmFkZGFj
ZjEzNzc2MDk5YmRkMzI4MDYzZGU5YmY4M2YyZmIuLmIxNTM3NWU4ZmM5Nzk1N2FhOTRjYzE5OThh
NDllNDY5MDVlMTNkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHU2hhcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1NoYXBlLmgKQEAgLTExNSw3ICsxMTUsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgQWZm
aW5lVHJhbnNmb3JtIGxvY2FsVHJhbnNmb3JtKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1
cm4gbV9sb2NhbFRyYW5zZm9ybTsgfQogCiAgICAgdmlydHVhbCBib29sIGlzU1ZHU2hhcGUoKSBj
b25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIGNh
bkhhdmVDaGlsZHJlbigpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRl
clNWR1NoYXBlIjsgfQogCiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpIE9WRVJSSURFIEZJTkFM
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>