<?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>121540</bug_id>
          
          <creation_ts>2013-09-18 00:08:34 -0700</creation_ts>
          <short_desc>REGRESSION(r156019): Broke tests (Requested by ap on #webkit).</short_desc>
          <delta_ts>2013-09-18 00:24:50 -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>121064</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>930545</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-18 00:08:34 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/156019 broke the build:
Broke 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>930546</commentid>
    <comment_count>1</comment_count>
      <attachid>211977</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-18 00:09:00 -0700</bug_when>
    <thetext>Created attachment 211977
ROLLOUT of r156019

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>930551</commentid>
    <comment_count>2</comment_count>
      <attachid>211977</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-18 00:24:47 -0700</bug_when>
    <thetext>Comment on attachment 211977
ROLLOUT of r156019

Clearing flags on attachment: 211977

Committed r156029: &lt;http://trac.webkit.org/changeset/156029&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930552</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-18 00:24:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211977</attachid>
            <date>2013-09-18 00:09:00 -0700</date>
            <delta_ts>2013-09-18 00:24:47 -0700</delta_ts>
            <desc>ROLLOUT of r156019</desc>
            <filename>bug-121540-20130918000900.patch</filename>
            <type>text/plain</type>
            <size>226605</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2MDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OTlhYTAwMzk1OTc1YzBlYTk3MzVkMGNlMDdiZTg3ZTYzMGZkOTgyLi5kZWRjYTkxYmJmZDFhOTJh
ZTcxYWQ1Y2U4ZGJmOWViNDVmYTI4YTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMjQgQEAKKzIwMTMtMDktMTggIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJr
aXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNTYwMTkgYW5kIHIx
NTYwMjAuCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE1NjAxOQor
ICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xNTYwMjAKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTU0MAorCisgICAgICAg
IEJyb2tlIHRlc3RzIChSZXF1ZXN0ZWQgYnkgYXAgb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBh
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaDoKKyAgICAgICAgKiBhc3NlbWJsZXIvWDg2
QXNzZW1ibGVyLmg6CisgICAgICAgICogYnl0ZWNvZGUvRGF0YUZvcm1hdC5oOgorICAgICAgICAo
SlNDOjpkYXRhRm9ybWF0VG9TdHJpbmcpOgorICAgICAgICAqIGJ5dGVjb2RlL0V4aXRLaW5kLmNw
cDoKKyAgICAgICAgKEpTQzo6ZXhpdEtpbmRUb1N0cmluZyk6CisgICAgICAgICogYnl0ZWNvZGUv
RXhpdEtpbmQuaDoKKyAgICAgICAgKiBieXRlY29kZS9PcGVyYW5kc0lubGluZXMuaDoKKyAgICAg
ICAgKEpTQzo6OjpkdW1wSW5Db250ZXh0KToKKyAgICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVk
VHlwZS5jcHA6CisgICAgICAgIChKU0M6OmR1bXBTcGVjdWxhdGlvbik6CisgICAgICAgIChKU0M6
OnNwZWN1bGF0aW9uVG9BYmJyZXZpYXRlZFN0cmluZyk6CisgICAgICAgIChKU0M6OnNwZWN1bGF0
aW9uRnJvbVZhbHVlKToKKyAgICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oOgorICAg
ICAgICAoSlNDOjppc0ludDMyU3BlY3VsYXRpb25Gb3JBcml0aG1ldGljKToKKyAgICAgICAgKEpT
Qzo6aXNJbnQ0OFNwZWN1bGF0aW9uKToKKyAgICAgICAgKEpTQzo6aXNNYWNoaW5lSW50U3BlY3Vs
YXRpb25Gb3JBcml0aG1ldGljKToKKyAgICAgICAgKEpTQzo6aXNJbnQ0OEFzRG91YmxlU3BlY3Vs
YXRpb24pOgorICAgICAgICAoSlNDOjppc1JlYWxOdW1iZXJTcGVjdWxhdGlvbik6CisgICAgICAg
IChKU0M6OmlzTnVtYmVyU3BlY3VsYXRpb24pOgorICAgICAgICAoSlNDOjppc051bWJlclNwZWN1
bGF0aW9uRXhwZWN0aW5nRGVmaW5lZCk6CisgICAgICAgICogYnl0ZWNvZGUvVmFsdWVSZWNvdmVy
eS5oOgorICAgICAgICAoSlNDOjpWYWx1ZVJlY292ZXJ5OjppbkdQUik6CisgICAgICAgIChKU0M6
OlZhbHVlUmVjb3Zlcnk6OmRpc3BsYWNlZEluSlNTdGFjayk6CisgICAgICAgIChKU0M6OlZhbHVl
UmVjb3Zlcnk6OmlzQWxyZWFkeUluSlNTdGFjayk6CisgICAgICAgIChKU0M6OlZhbHVlUmVjb3Zl
cnk6Omdwcik6CisgICAgICAgIChKU0M6OlZhbHVlUmVjb3Zlcnk6OnZpcnR1YWxSZWdpc3Rlcik6
CisgICAgICAgIChKU0M6OlZhbHVlUmVjb3Zlcnk6OmR1bXBJbkNvbnRleHQpOgorICAgICAgICAq
IGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVyLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJh
Y3RJbnRlcnByZXRlcjo6bmVlZHNUeXBlQ2hlY2spOgorICAgICAgICAoSlNDOjpERkc6OkFic3Ry
YWN0SW50ZXJwcmV0ZXI6OmZpbHRlckJ5VHlwZSk6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6OjpleGVjdXRlRWZmZWN0
cyk6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0VmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OkFic3RyYWN0VmFsdWU6OnNldCk6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RWYWx1
ZTo6Y2hlY2tDb25zaXN0ZW5jeSk6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0VmFsdWUuaDoK
KyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdFZhbHVlOjp2YWxpZGF0ZVR5cGUpOgorICAgICAg
ICAqIGRmZy9ERkdBcnJheU1vZGUuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkFycmF5TW9kZTo6
cmVmaW5lKToKKyAgICAgICAgKiBkZmcvREZHQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChK
U0M6OkRGRzo6QXNzZW1ibHlIZWxwZXJzOjp1bmJveERvdWJsZSk6CisgICAgICAgICogZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6
bWFrZVNhZmUpOgorICAgICAgICAqIGRmZy9ERkdDU0VQaGFzZS5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6Q1NFUGhhc2U6OmNhbm9uaWNhbGl6ZSk6CisgICAgICAgIChKU0M6OkRGRzo6Q1NFUGhh
c2U6OnB1cmVDU0UpOgorICAgICAgICAoSlNDOjpERkc6OkNTRVBoYXNlOjpnZXRCeVZhbExvYWRF
bGltaW5hdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6Q1NFUGhhc2U6OnBlcmZvcm1Ob2RlQ1NF
KToKKyAgICAgICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNs
b2JiZXJpemUpOgorICAgICAgICAqIGRmZy9ERkdDb21tb24uaDoKKyAgICAgICAgKiBkZmcvREZH
Rml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6cnVuKToKKyAg
ICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAoSlNDOjpE
Rkc6OkZpeHVwUGhhc2U6OmZpeHVwU2V0TG9jYWxzSW5CbG9jayk6CisgICAgICAgIChKU0M6OkRG
Rzo6Rml4dXBQaGFzZTo6b2JzZXJ2ZVVzZUtpbmRPbk5vZGUpOgorICAgICAgICAoSlNDOjpERkc6
OkZpeHVwUGhhc2U6OmZpeEVkZ2UpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6Omlu
amVjdEludDMyVG9Eb3VibGVOb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjph
dHRlbXB0VG9NYWtlSW50ZWdlckFkZCk6CisgICAgICAgICogZGZnL0RGR0ZsdXNoRm9ybWF0LmNw
cDoKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogZGZnL0RGR0ZsdXNo
Rm9ybWF0Lmg6CisgICAgICAgIChKU0M6OkRGRzo6cmVzdWx0Rm9yKToKKyAgICAgICAgKEpTQzo6
REZHOjp1c2VLaW5kRm9yKToKKyAgICAgICAgKiBkZmcvREZHR2VuZXJhdGlvbkluZm8uaDoKKyAg
ICAgICAgKEpTQzo6REZHOjpHZW5lcmF0aW9uSW5mbzo6aW5pdEludDMyKToKKyAgICAgICAgKEpT
Qzo6REZHOjpHZW5lcmF0aW9uSW5mbzo6ZmlsbEludDMyKToKKyAgICAgICAgKiBkZmcvREZHR3Jh
cGguY3BwOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjpkdW1wKToKKyAgICAgICAgKiBkZmcv
REZHR3JhcGguaDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6YWRkU2hvdWxkU3BlY3VsYXRl
TWFjaGluZUludCk6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6Om11bFNob3VsZFNwZWN1bGF0
ZU1hY2hpbmVJbnQpOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjpuZWdhdGVTaG91bGRTcGVj
dWxhdGVNYWNoaW5lSW50KToKKyAgICAgICAgKiBkZmcvREZHSW5QbGFjZUFic3RyYWN0U3RhdGUu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkluUGxhY2VBYnN0cmFjdFN0YXRlOjptZXJnZVN0YXRl
QXRUYWlsKToKKyAgICAgICAgKiBkZmcvREZHSklUQ29kZS5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6SklUQ29kZTo6cmVjb25zdHJ1Y3QpOgorICAgICAgICAqIGRmZy9ERkdNaW5pZmllZE5vZGUu
aDoKKyAgICAgICAgKEpTQzo6REZHOjpiZWxvbmdzSW5NaW5pZmllZEdyYXBoKToKKyAgICAgICAg
KEpTQzo6REZHOjpNaW5pZmllZE5vZGU6Omhhc0NoaWxkKToKKyAgICAgICAgKiBkZmcvREZHTm9k
ZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OnNob3VsZFNwZWN1bGF0ZU51bWJlcik6Cisg
ICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6c2hvdWxkU3BlY3VsYXRlTnVtYmVyRXhwZWN0aW5nRGVm
aW5lZCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6Y2FuU3BlY3VsYXRlSW50NDgpOgorICAg
ICAgICAqIGRmZy9ERkdOb2RlRmxhZ3MuaDoKKyAgICAgICAgKEpTQzo6REZHOjpub2RlQ2FuU3Bl
Y3VsYXRlSW50NDgpOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAoSlND
OjpERkc6OmZvcndhcmRSZXdpcmluZ1NlbGVjdGlvblNjb3JlKToKKyAgICAgICAgKiBkZmcvREZH
T1NSRXhpdENvbXBpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpzaG9ydE9wZXJhbmRzRHVt
cCk6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KToKKyAgICAgICAgKiBkZmcvREZH
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlByZWRp
Y3Rpb25Qcm9wYWdhdGlvblBoYXNlOjpzcGVjdWxhdGVkRG91YmxlVHlwZUZvclByZWRpY3Rpb24p
OgorICAgICAgICAoSlNDOjpERkc6OlByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlOjpwcm9wYWdh
dGUpOgorICAgICAgICAoSlNDOjpERkc6OlByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlOjpkb0Rv
dWJsZVZvdGluZyk6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAg
KEpTQzo6REZHOjpTYWZlVG9FeGVjdXRlRWRnZTo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6
OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR1NpbGVudFJlZ2lzdGVyU2F2
ZVBsYW4uaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzaWxlbnRTYXZlUGxhbkZvckdQUik6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVudEZpbGwpOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUGVlcEhvbGVCcmFuY2gpOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5saW5lU3RhcnQpOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRG91YmxlUHV0QnlWYWwpOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVUb0ludDMyKToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUludDMyVG9Eb3VibGUpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkludFR5cGVkQXJy
YXkpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxG
b3JJbnRUeXBlZEFycmF5KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUFkZCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0
aFN1Yik6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE5l
Z2F0ZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE11
bCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBhcmUpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaWN0RXEpOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVOdW1iZXIpOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVSZWFsTnVtYmVyKToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKToKKyAgICAgICAgKiBkZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FuUmV1
c2UpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjppc0ZpbGxlZCk6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmlzRmlsbGVkRG91YmxlKToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6dXNlKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Ym94RG91YmxlKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6aXNLbm93bkludGVnZXIpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpp
c0tub3duQ2VsbCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmlzS25vd25O
b3ROdW1iZXIpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjppbnQzMlJlc3Vs
dCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmluaXRDb25zdGFudEluZm8p
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjppc0ludGVnZXIpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpnZW5lcmF0aW9uSW5mb0Zyb21WaXJ0dWFsUmVn
aXN0ZXIpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZURvdWJsZSk6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6ZmlsbEpTVmFsdWUpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpmaWxs
U3BlY3VsYXRlSW50MzJJbnRlcm5hbCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmZpbGxTcGVjdWxhdGVEb3VibGUpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpmaWxsU3BlY3VsYXRlQ2VsbCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmZpbGxTcGVjdWxhdGVCb29sZWFuKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1VzZUtpbmQuY3BwOgorICAgICAgICAo
V1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiBkZmcvREZHVXNlS2luZC5oOgorICAgICAg
ICAoSlNDOjpERkc6OnR5cGVGaWx0ZXJGb3IpOgorICAgICAgICAoSlNDOjpERkc6OmlzTnVtZXJp
Y2FsKToKKyAgICAgICAgKiBkZmcvREZHVmFsdWVTb3VyY2UuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OlZhbHVlU291cmNlOjpkdW1wKToKKyAgICAgICAgKiBkZmcvREZHVmFsdWVTb3VyY2UuaDoK
KyAgICAgICAgKEpTQzo6REZHOjpkYXRhRm9ybWF0VG9WYWx1ZVNvdXJjZUtpbmQpOgorICAgICAg
ICAoSlNDOjpERkc6OnZhbHVlU291cmNlS2luZFRvRGF0YUZvcm1hdCk6CisgICAgICAgIChKU0M6
OkRGRzo6VmFsdWVTb3VyY2U6OmZvckZsdXNoRm9ybWF0KToKKyAgICAgICAgKEpTQzo6REZHOjpW
YWx1ZVNvdXJjZTo6dmFsdWVSZWNvdmVyeSk6CisgICAgICAgICogZGZnL0RGR1ZhcmlhYmxlQWNj
ZXNzRGF0YS5oOgorICAgICAgICAoSlNDOjpERkc6OlZhcmlhYmxlQWNjZXNzRGF0YTo6c2hvdWxk
VXNlRG91YmxlRm9ybWF0QWNjb3JkaW5nVG9Wb3RlKToKKyAgICAgICAgKEpTQzo6REZHOjpWYXJp
YWJsZUFjY2Vzc0RhdGE6OmZsdXNoRm9ybWF0KToKKyAgICAgICAgKiBmdGwvRlRMQ0FyZ3VtZW50
R2V0dGVyLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpDQXJndW1lbnRHZXR0ZXI6OmxvYWROZXh0
QW5kQm94KToKKyAgICAgICAgKiBmdGwvRlRMQ0FyZ3VtZW50R2V0dGVyLmg6CisgICAgICAgICog
ZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6
CisgICAgICAgICogZnRsL0ZUTEV4aXRWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6RXhp
dFZhbHVlOjpkdW1wSW5Db250ZXh0KToKKyAgICAgICAgKiBmdGwvRlRMRXhpdFZhbHVlLmg6Cisg
ICAgICAgICogZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRM
TG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpj
cmVhdGVQaGlWYXJpYWJsZXMpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpj
b21waWxlTm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVV
cHNpbG9uKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZVBoaSk6
CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVTZXRMb2NhbCk6Cisg
ICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVBZGQpOgorICAgICAgICAo
SlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQXJpdGhTdWIpOgorICAgICAgICAoSlND
OjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQXJpdGhNdWwpOgorICAgICAgICAoSlNDOjpG
VEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQXJpdGhOZWdhdGUpOgorICAgICAgICAoSlNDOjpG
VEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlUHV0QnlWYWwpOgorICAgICAgICAoSlNDOjpGVEw6
Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQ29tcGFyZUVxKToKKyAgICAgICAgKEpTQzo6RlRMOjpM
b3dlckRGR1RvTExWTTo6Y29tcGlsZUNvbXBhcmVTdHJpY3RFcSk6CisgICAgICAgIChKU0M6OkZU
TDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVDb21wYXJlTGVzcyk6CisgICAgICAgIChKU0M6OkZU
TDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVDb21wYXJlTGVzc0VxKToKKyAgICAgICAgKEpTQzo6
RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUNvbXBhcmVHcmVhdGVyKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUNvbXBhcmVHcmVhdGVyRXEpOgorICAgICAg
ICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpsb3dJbnQzMik6CisgICAgICAgIChKU0M6OkZU
TDo6TG93ZXJERkdUb0xMVk06Omxvd0NlbGwpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZH
VG9MTFZNOjpsb3dCb29sZWFuKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6
bG93RG91YmxlKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6bG93SlNWYWx1
ZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0ZVJlYWxOdW1i
ZXIpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjppbml0aWFsaXplT1NSRXhp
dFN0YXRlRm9yQmxvY2spOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjplbWl0
T1NSRXhpdENhbGwpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjphZGRFeGl0
QXJndW1lbnRGb3JOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6c2V0
SW50MzIpOgorICAgICAgICAqIGZ0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwOgorICAgICAgICAo
SlNDOjpGVEw6OmNvbXBpbGVTdHViKToKKyAgICAgICAgKiBmdGwvRlRMT3V0cHV0Lmg6CisgICAg
ICAgIChKU0M6OkZUTDo6T3V0cHV0OjptdWxXaXRoT3ZlcmZsb3czMik6CisgICAgICAgICogZnRs
L0ZUTFZhbHVlRm9ybWF0LmNwcDoKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAg
ICAgICogZnRsL0ZUTFZhbHVlRm9ybWF0Lmg6CisgICAgICAgICogZnRsL0ZUTFZhbHVlU291cmNl
LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpWYWx1ZVNvdXJjZTo6ZHVtcCk6CisgICAgICAgICog
ZnRsL0ZUTFZhbHVlU291cmNlLmg6CisgICAgICAgICogaW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaDoK
KyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5jcHA6CisgICAgICAgIChKU0M6OkFyZ3VtZW50
czo6dGVhck9mZkZvcklubGluZUNhbGxGcmFtZSk6CisgICAgICAgICogcnVudGltZS9JbmRleGlu
Z1R5cGUuY3BwOgorICAgICAgICAoSlNDOjpsZWFzdFVwcGVyQm91bmRPZkluZGV4aW5nVHlwZUFu
ZFR5cGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5oOgorICAgICAgICAqIHJ1bnRp
bWUvSlNDSlNWYWx1ZUlubGluZXMuaDoKKwogMjAxMy0wOS0xNyAgRmlsaXAgUGl6bG8gIDxmcGl6
bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCAzMi1iaXQgYnVpbGQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmlu
ZGV4IDE5MTYzMzcxNjk2Nzg0NDRiMmI1ZTcxMmQ1N2Q0OGYyNjdmZjc2YTkuLmNiMTc0ZjJjOTIy
ZmYyNDE0Zjg5NzA2NzNjZGU5YjY3N2E0MzAyNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMt
MDktMTggIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNTYwMTkgYW5kIHIxNTYwMjAuCisgICAgICAgIGh0
dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE1NjAxOQorICAgICAgICBodHRwOi8vdHJh
Yy53ZWJraXQub3JnL2NoYW5nZXNldC8xNTYwMjAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTU0MAorCisgICAgICAgIEJyb2tlIHRlc3RzIChSZXF1
ZXN0ZWQgYnkgYXAgb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiB3dGYvUHJpbnRTdHJlYW0uaDoK
KwogMjAxMy0wOS0xNiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAg
IERGRyBzaG91bGQgc3VwcG9ydCBJbnQ1MiBmb3IgbG9jYWwgdmFyaWFibGVzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgK
aW5kZXggMjlkMzRmMjcyYjgwZjhiM2Q4NDYxNjFmZGM1MDhiNTMxMzZjY2ZmMi4uYmVhOGE1MTJi
N2NiNDI4YjkyMWM4N2YzM2RkYmI1MWM2NzU4YjkzNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaApAQCAtMjMwLDE2
ICsyMzAsNiBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLnNobHFfaThyKGltbS5tX3Zh
bHVlLCBkZXN0KTsKICAgICB9CiAgICAgCi0gICAgdm9pZCByc2hpZnQ2NChUcnVzdGVkSW1tMzIg
aW1tLCBSZWdpc3RlcklEIGRlc3QpCi0gICAgewotICAgICAgICBtX2Fzc2VtYmxlci5zYXJxX2k4
cihpbW0ubV92YWx1ZSwgZGVzdCk7Ci0gICAgfQotICAgIAotICAgIHZvaWQgbXVsNjQoUmVnaXN0
ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKLSAgICB7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmlt
dWxxX3JyKHNyYywgZGVzdCk7Ci0gICAgfQotICAgIAogICAgIHZvaWQgbmVnNjQoUmVnaXN0ZXJJ
RCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubmVncV9yKGRlc3QpOwpAQCAtNTQw
LDE0ICs1MzAsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBKdW1wKG1fYXNzZW1ibGVyLmpD
Qyh4ODZDb25kaXRpb24oY29uZCkpKTsKICAgICB9CiAKLSAgICBKdW1wIGJyYW5jaE11bDY0KFJl
c3VsdENvbmRpdGlvbiBjb25kLCBSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQotICAg
IHsKLSAgICAgICAgbXVsNjQoc3JjLCBkZXN0KTsKLSAgICAgICAgaWYgKGNvbmQgIT0gT3ZlcmZs
b3cpCi0gICAgICAgICAgICBtX2Fzc2VtYmxlci50ZXN0cV9ycihkZXN0LCBkZXN0KTsKLSAgICAg
ICAgcmV0dXJuIEp1bXAobV9hc3NlbWJsZXIuakNDKHg4NkNvbmRpdGlvbihjb25kKSkpOwotICAg
IH0KLQogICAgIEp1bXAgYnJhbmNoU3ViNjQoUmVzdWx0Q29uZGl0aW9uIGNvbmQsIFRydXN0ZWRJ
bW0zMiBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIHN1YjY0KGltbSwgZGVz
dCk7CkBAIC01NjYsMTIgKzU0OCw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGJyYW5jaFN1
YjY0KGNvbmQsIHNyYzIsIGRlc3QpOwogICAgIH0KIAotICAgIEp1bXAgYnJhbmNoTmVnNjQoUmVz
dWx0Q29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQgc3JjRGVzdCkKLSAgICB7Ci0gICAgICAgIG5l
ZzY0KHNyY0Rlc3QpOwotICAgICAgICByZXR1cm4gSnVtcChtX2Fzc2VtYmxlci5qQ0MoeDg2Q29u
ZGl0aW9uKGNvbmQpKSk7Ci0gICAgfQotCiAgICAgQ29udmVydGlibGVMb2FkTGFiZWwgY29udmVy
dGlibGVMb2FkUHRyKEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAg
ICAgICAgQ29udmVydGlibGVMb2FkTGFiZWwgcmVzdWx0ID0gQ29udmVydGlibGVMb2FkTGFiZWwo
dGhpcyk7CkBAIC02MTksMTEgKzU5NSw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uOjpicmFuY2hUZXN0OChjb25kLCBBZGRyZXNzKHNjcmF0Y2hSZWdp
c3RlciksIG1hc2spOwogICAgIH0KIAotICAgIHZvaWQgY29udmVydEludDY0VG9Eb3VibGUoUmVn
aXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQotICAgIHsKLSAgICAgICAgbV9hc3NlbWJs
ZXIuY3Z0c2kyc2RxX3JyKHNyYywgZGVzdCk7Ci0gICAgfQotCiAgICAgc3RhdGljIGJvb2wgc3Vw
cG9ydHNGbG9hdGluZ1BvaW50KCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIC8vIFNlZSBjb21tZW50
IG9uIE1hY3JvQXNzZW1ibGVyQVJNdjc6OnN1cHBvcnRzRmxvYXRpbmdQb2ludFRydW5jYXRlKCkK
ICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpIHsgcmV0dXJu
IHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2
QXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxl
ci5oCmluZGV4IDNhODU5ZWE2NmJiNmUwMThhOWFjNjQ5ZTQyOThjMzc3MDQxODY2ZTUuLjc3MGY5
MGNiNmI4NDQzOThiMWJlMzNkM2U2MWZkYjE5YzRmMDJiNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaApAQCAtODI5LDIwICs4MjksMTMgQEAg
cHVibGljOgogICAgICAgICAgICAgbV9mb3JtYXR0ZXIuaW1tZWRpYXRlOChpbW0pOwogICAgICAg
ICB9CiAgICAgfQotI2VuZGlmIC8vIENQVShYODZfNjQpCisjZW5kaWYKIAogICAgIHZvaWQgaW11
bGxfcnIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZHN0KQogICAgIHsKICAgICAgICAgbV9m
b3JtYXR0ZXIudHdvQnl0ZU9wKE9QMl9JTVVMX0d2RXYsIGRzdCwgc3JjKTsKICAgICB9CiAKLSNp
ZiBDUFUoWDg2XzY0KQotICAgIHZvaWQgaW11bHFfcnIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVy
SUQgZHN0KQotICAgIHsKLSAgICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wNjQoT1AyX0lNVUxf
R3ZFdiwgZHN0LCBzcmMpOwotICAgIH0KLSNlbmRpZiAvLyBDUFUoWDg2XzY0KQotCiAgICAgdm9p
ZCBpbXVsbF9tcihpbnQgb2Zmc2V0LCBSZWdpc3RlcklEIGJhc2UsIFJlZ2lzdGVySUQgZHN0KQog
ICAgIHsKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wKE9QMl9JTVVMX0d2RXYsIGRzdCwg
YmFzZSwgb2Zmc2V0KTsKQEAgLTE2MTgsMTQgKzE2MTEsNiBAQCBwdWJsaWM6CiAgICAgICAgIG1f
Zm9ybWF0dGVyLnR3b0J5dGVPcChPUDJfQ1ZUU0kyU0RfVnNkRWQsIChSZWdpc3RlcklEKWRzdCwg
c3JjKTsKICAgICB9CiAKLSNpZiBDUFUoWDg2XzY0KQotICAgIHZvaWQgY3Z0c2kyc2RxX3JyKFJl
Z2lzdGVySUQgc3JjLCBYTU1SZWdpc3RlcklEIGRzdCkKLSAgICB7Ci0gICAgICAgIG1fZm9ybWF0
dGVyLnByZWZpeChQUkVfU1NFX0YyKTsKLSAgICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wNjQo
T1AyX0NWVFNJMlNEX1ZzZEVkLCAoUmVnaXN0ZXJJRClkc3QsIHNyYyk7Ci0gICAgfQotI2VuZGlm
Ci0KICAgICB2b2lkIGN2dHNpMnNkX21yKGludCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFzZSwgWE1N
UmVnaXN0ZXJJRCBkc3QpCiAgICAgewogICAgICAgICBtX2Zvcm1hdHRlci5wcmVmaXgoUFJFX1NT
RV9GMik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRGF0YUZv
cm1hdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RhdGFGb3JtYXQuaAppbmRl
eCBiYjlkYTRjNTc2YTAxNGI2NzAwODk4ZTEyNzIxOWQ5ZWEyNzM0YTVhLi5kNjA0ODA4M2EzNmQy
ZDJjMGVmOTY0ZjEwODZlM2VkODAxYzVmMzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvRGF0YUZvcm1hdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9EYXRhRm9ybWF0LmgKQEAgLTM5LDEyICszOSwxMCBAQCBuYW1lc3BhY2UgSlNDIHsK
IGVudW0gRGF0YUZvcm1hdCB7CiAgICAgRGF0YUZvcm1hdE5vbmUgPSAwLAogICAgIERhdGFGb3Jt
YXRJbnQzMiA9IDEsCi0gICAgRGF0YUZvcm1hdEludDUyID0gMiwgLy8gSW50NTIncyBhcmUgbGVm
dC1zaGlmdGVkIGJ5IDE2IGJ5IGRlZmF1bHQuCi0gICAgRGF0YUZvcm1hdFN0cmljdEludDUyID0g
MywgLy8gIlN0cmljdCIgSW50NTIgbWVhbnMgaXQncyBub3Qgc2hpZnRlZC4KLSAgICBEYXRhRm9y
bWF0RG91YmxlID0gNCwKLSAgICBEYXRhRm9ybWF0Qm9vbGVhbiA9IDUsCi0gICAgRGF0YUZvcm1h
dENlbGwgPSA2LAotICAgIERhdGFGb3JtYXRTdG9yYWdlID0gNywKKyAgICBEYXRhRm9ybWF0RG91
YmxlID0gMiwKKyAgICBEYXRhRm9ybWF0Qm9vbGVhbiA9IDMsCisgICAgRGF0YUZvcm1hdENlbGwg
PSA0LAorICAgIERhdGFGb3JtYXRTdG9yYWdlID0gNSwKICAgICBEYXRhRm9ybWF0SlMgPSA4LAog
ICAgIERhdGFGb3JtYXRKU0ludDMyID0gRGF0YUZvcm1hdEpTIHwgRGF0YUZvcm1hdEludDMyLAog
ICAgIERhdGFGb3JtYXRKU0RvdWJsZSA9IERhdGFGb3JtYXRKUyB8IERhdGFGb3JtYXREb3VibGUs
CkBAIC02NiwxMCArNjQsNiBAQCBpbmxpbmUgY29uc3QgY2hhciogZGF0YUZvcm1hdFRvU3RyaW5n
KERhdGFGb3JtYXQgZGF0YUZvcm1hdCkKICAgICAgICAgcmV0dXJuICJOb25lIjsKICAgICBjYXNl
IERhdGFGb3JtYXRJbnQzMjoKICAgICAgICAgcmV0dXJuICJJbnQzMiI7Ci0gICAgY2FzZSBEYXRh
Rm9ybWF0SW50NTI6Ci0gICAgICAgIHJldHVybiAiSW50NTIiOwotICAgIGNhc2UgRGF0YUZvcm1h
dFN0cmljdEludDUyOgotICAgICAgICByZXR1cm4gIlN0cmljdEludDUyIjsKICAgICBjYXNlIERh
dGFGb3JtYXREb3VibGU6CiAgICAgICAgIHJldHVybiAiRG91YmxlIjsKICAgICBjYXNlIERhdGFG
b3JtYXRDZWxsOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4
aXRLaW5kLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAK
aW5kZXggZGNiODFiZjU4NWYyODdiODU0MDY2MjY1ODAyM2Y3NDExZjQxZDliYi4uOGE0NTFkNmY3
ZWE0MGU4ZGVhZjgxNzBjZDk0OTRhNjM1NjIxNjQyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwCkBAIC01Miw4ICs1Miw4IEBAIGNvbnN0IGNoYXIqIGV4
aXRLaW5kVG9TdHJpbmcoRXhpdEtpbmQga2luZCkKICAgICAgICAgcmV0dXJuICJPdmVyZmxvdyI7
CiAgICAgY2FzZSBOZWdhdGl2ZVplcm86CiAgICAgICAgIHJldHVybiAiTmVnYXRpdmVaZXJvIjsK
LSAgICBjYXNlIEludDUyT3ZlcmZsb3c6Ci0gICAgICAgIHJldHVybiAiSW50NTJPdmVyZmxvdyI7
CisgICAgY2FzZSBJbnQ0OE92ZXJmbG93OgorICAgICAgICByZXR1cm4gIkludDQ4T3ZlcmZsb3ci
OwogICAgIGNhc2UgU3RvcmVUb0hvbGU6CiAgICAgICAgIHJldHVybiAiU3RvcmVUb0hvbGUiOwog
ICAgIGNhc2UgTG9hZEZyb21Ib2xlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0V4aXRLaW5kLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhp
dEtpbmQuaAppbmRleCBlYzVhMDBjNTVkN2I1ZTQzMWVmNGYzMzgwMjgzMzgzMzc3MDY0MjJiLi4w
YzAzYjY0YjYwOTMzYWU0NzRhY2MwYWE3MTUzOTgzMGI2NmMzN2M4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaApAQCAtMzgsNyArMzgsNyBAQCBlbnVtIEV4aXRL
aW5kIHsKICAgICBCYWRJbmRleGluZ1R5cGUsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIGFuIGluZGV4
aW5nIHR5cGUgd2FzIHdyb25nLgogICAgIE92ZXJmbG93LCAvLyBXZSBleGl0ZWQgYmVjYXVzZSBv
ZiBvdmVyZmxvdy4KICAgICBOZWdhdGl2ZVplcm8sIC8vIFdlIGV4aXRlZCBiZWNhdXNlIHdlIGVu
Y291bnRlcmVkIG5lZ2F0aXZlIHplcm8uCi0gICAgSW50NTJPdmVyZmxvdywgLy8gV2UgZXhpdGVk
IGJlY2F1c2Ugb2YgYW4gSW50NTIgb3ZlcmZsb3cuCisgICAgSW50NDhPdmVyZmxvdywgLy8gV2Ug
ZXhpdGVkIGJlY2F1c2Ugb2YgYW4gSW50NDggb3ZlcmZsb3cuCiAgICAgU3RvcmVUb0hvbGUsIC8v
IFdlIGhhZCBhIHN0b3JlIHRvIGEgaG9sZS4KICAgICBMb2FkRnJvbUhvbGUsIC8vIFdlIGhhZCBh
IGxvYWQgZnJvbSBhIGhvbGUuCiAgICAgT3V0T2ZCb3VuZHMsIC8vIFdlIGhhZCBhbiBvdXQtb2Yt
Ym91bmRzIGFjY2VzcyB0byBhbiBhcnJheS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9PcGVyYW5kc0lubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9PcGVyYW5kc0lubGluZXMuaAppbmRleCA3NGFkNjBiYzE4YTgwYzRiMjkyZjBiMDhh
YjFmMWU5ODc1NWJjYzkwLi4xNjA3NjNiYjZkMjYxMDkzNDI2Nzg0MGNjM2EzMDJiZDZmYTZlODZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3BlcmFuZHNJbmxp
bmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wZXJhbmRzSW5saW5l
cy5oCkBAIC00Myw3ICs0Myw3IEBAIHZvaWQgT3BlcmFuZHM8VCwgVHJhaXRzPjo6ZHVtcEluQ29u
dGV4dChQcmludFN0cmVhbSYgb3V0LCBEdW1wQ29udGV4dCogY29udGV4dCkKICAgICBmb3IgKHNp
emVfdCBsb2NhbEluZGV4ID0gMDsgbG9jYWxJbmRleCA8IG51bWJlck9mTG9jYWxzKCk7ICsrbG9j
YWxJbmRleCkgewogICAgICAgICBpZiAoVHJhaXRzOjppc0VtcHR5Rm9yRHVtcChsb2NhbChsb2Nh
bEluZGV4KSkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgb3V0LnByaW50KGNvbW1h
LCAibG9jIiwgbG9jYWxJbmRleCwgIjoiLCBpbkNvbnRleHQobG9jYWwobG9jYWxJbmRleCksIGNv
bnRleHQpKTsKKyAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiciIsIGxvY2FsSW5kZXgsICI6Iiwg
aW5Db250ZXh0KGxvY2FsKGxvY2FsSW5kZXgpLCBjb250ZXh0KSk7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAppbmRl
eCAzOTE3Y2NhMGZkNzAxZjJkNTM2OGE5MzFjMGUwOGVkM2E2MTg5MDEyLi4zNWQ2N2Y0ODIyMTli
NjIwNDA1ZDgwY2FkZTk1MTcyOTJhZDljYjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKQEAgLTE1NCwxOCArMTU0LDIwIEBAIHZv
aWQgZHVtcFNwZWN1bGF0aW9uKFByaW50U3RyZWFtJiBvdXQsIFNwZWN1bGF0ZWRUeXBlIHZhbHVl
KQogICAgIH0KICAgICAKICAgICBpZiAodmFsdWUgJiBTcGVjSW50MzIpCi0gICAgICAgIG15T3V0
LnByaW50KCJJbnQzMiIpOworICAgICAgICBteU91dC5wcmludCgiSW50Iik7CiAgICAgZWxzZQog
ICAgICAgICBpc1RvcCA9IGZhbHNlOwogICAgIAotICAgIGlmICh2YWx1ZSAmIFNwZWNJbnQ1MikK
LSAgICAgICAgbXlPdXQucHJpbnQoIkludDUyIik7Ci0gICAgICAgIAogICAgIGlmICgodmFsdWUg
JiBTcGVjRG91YmxlKSA9PSBTcGVjRG91YmxlKQogICAgICAgICBteU91dC5wcmludCgiRG91Ymxl
Iik7CiAgICAgZWxzZSB7Ci0gICAgICAgIGlmICh2YWx1ZSAmIFNwZWNJbnQ1MkFzRG91YmxlKQot
ICAgICAgICAgICAgbXlPdXQucHJpbnQoIkludDUyYXNkb3VibGUiKTsKKyAgICAgICAgaWYgKHZh
bHVlICYgU3BlY0ludDQ4QXNEb3VibGUpCisgICAgICAgICAgICBteU91dC5wcmludCgiSW50NDhh
c2RvdWJsZSIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpc1RvcCA9IGZhbHNlOworICAg
ICAgICAKKyAgICAgICAgaWYgKHZhbHVlICYgU3BlY0ludDQ4KQorICAgICAgICAgICAgbXlPdXQu
cHJpbnQoIkludDQ4Iik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGlzVG9wID0gZmFsc2U7
CiAgICAgICAgIApAQCAtMjQxLDE1ICsyNDMsMTMgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHNwZWN1
bGF0aW9uVG9BYmJyZXZpYXRlZFN0cmluZyhTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uKQogICAg
ICAgICByZXR1cm4gIjxDZWxsPiI7CiAgICAgaWYgKGlzSW50MzJTcGVjdWxhdGlvbihwcmVkaWN0
aW9uKSkKICAgICAgICAgcmV0dXJuICI8SW50MzI+IjsKLSAgICBpZiAoaXNJbnQ1MkFzRG91Ymxl
U3BlY3VsYXRpb24ocHJlZGljdGlvbikpCi0gICAgICAgIHJldHVybiAiPEludDUyQXNEb3VibGU+
IjsKLSAgICBpZiAoaXNJbnQ1MlNwZWN1bGF0aW9uKHByZWRpY3Rpb24pKQotICAgICAgICByZXR1
cm4gIjxJbnQ1Mj4iOwotICAgIGlmIChpc01hY2hpbmVJbnRTcGVjdWxhdGlvbihwcmVkaWN0aW9u
KSkKLSAgICAgICAgcmV0dXJuICI8TWFjaGluZUludD4iOworICAgIGlmIChpc0ludDQ4QXNEb3Vi
bGVTcGVjdWxhdGlvbihwcmVkaWN0aW9uKSkKKyAgICAgICAgcmV0dXJuICI8SW50NDhBc0RvdWJs
ZT4iOworICAgIGlmIChpc0ludDQ4U3BlY3VsYXRpb24ocHJlZGljdGlvbikpCisgICAgICAgIHJl
dHVybiAiPEludDQ4PiI7CiAgICAgaWYgKGlzRG91YmxlU3BlY3VsYXRpb24ocHJlZGljdGlvbikp
CiAgICAgICAgIHJldHVybiAiPERvdWJsZT4iOwotICAgIGlmIChpc0Z1bGxOdW1iZXJTcGVjdWxh
dGlvbihwcmVkaWN0aW9uKSkKKyAgICBpZiAoaXNOdW1iZXJTcGVjdWxhdGlvbihwcmVkaWN0aW9u
KSkKICAgICAgICAgcmV0dXJuICI8TnVtYmVyPiI7CiAgICAgaWYgKGlzQm9vbGVhblNwZWN1bGF0
aW9uKHByZWRpY3Rpb24pKQogICAgICAgICByZXR1cm4gIjxCb29sZWFuPiI7CkBAIC0zNDUsMTEg
KzM0NSwxNiBAQCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZyb21WYWx1ZShKU1ZhbHVlIHZh
bHVlKQogICAgICAgICByZXR1cm4gU3BlY0ludDMyOwogICAgIGlmICh2YWx1ZS5pc0RvdWJsZSgp
KSB7CiAgICAgICAgIGRvdWJsZSBudW1iZXIgPSB2YWx1ZS5hc051bWJlcigpOwotICAgICAgICBp
ZiAobnVtYmVyICE9IG51bWJlcikKLSAgICAgICAgICAgIHJldHVybiBTcGVjRG91YmxlTmFOOwot
ICAgICAgICBpZiAodmFsdWUuaXNNYWNoaW5lSW50KCkpCi0gICAgICAgICAgICByZXR1cm4gU3Bl
Y0ludDUyQXNEb3VibGU7Ci0gICAgICAgIHJldHVybiBTcGVjTm9uSW50QXNEb3VibGU7CisgICAg
ICAgIGlmIChudW1iZXIgPT0gbnVtYmVyKSB7CisgICAgICAgICAgICBpbnQ2NF90IGFzSW50NjQg
PSBzdGF0aWNfY2FzdDxpbnQ2NF90PihudW1iZXIpOworICAgICAgICAgICAgaWYgKGFzSW50NjQg
PT0gbnVtYmVyICYmIChhc0ludDY0IHx8ICFzdGQ6OnNpZ25iaXQobnVtYmVyKSkKKyAgICAgICAg
ICAgICAgICAmJiBhc0ludDY0IDwgKHN0YXRpY19jYXN0PGludDY0X3Q+KDEpIDw8IDQ3KQorICAg
ICAgICAgICAgICAgICYmIGFzSW50NjQgPj0gLShzdGF0aWNfY2FzdDxpbnQ2NF90PigxKSA8PCA0
NykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gU3BlY0ludDQ4QXNEb3VibGU7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICByZXR1cm4gU3BlY05vbkludEFzRG91YmxlOworICAgICAgICB9
CisgICAgICAgIHJldHVybiBTcGVjRG91YmxlTmFOOwogICAgIH0KICAgICBpZiAodmFsdWUuaXND
ZWxsKCkpCiAgICAgICAgIHJldHVybiBzcGVjdWxhdGlvbkZyb21DZWxsKHZhbHVlLmFzQ2VsbCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVk
VHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgK
aW5kZXggZWFmMGFmMzdhMzg0NjUyYjUzZjBhODNiMWJmMjYwNDNmY2FkNjdlNy4uNmM3YjRkMWJm
OGUzM2EwZTRiMTIwODAwYTAwMTk2M2U4YTM5MGM3OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKQEAgLTM4LDQ4ICszOCw0NiBAQCBuYW1l
c3BhY2UgSlNDIHsKIGNsYXNzIFN0cnVjdHVyZTsKIAogdHlwZWRlZiB1aW50MzJfdCBTcGVjdWxh
dGVkVHlwZTsKLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uZSAgICAgICAgICAg
ICAgID0gMHgwMDAwMDAwMDsgLy8gV2UgZG9uJ3Qga25vdyBhbnl0aGluZyB5ZXQuCi1zdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ZpbmFsT2JqZWN0ICAgICAgICA9IDB4MDAwMDAwMDE7
IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTRmluYWxPYmplY3QuCi1zdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY0FycmF5ICAgICAgICAgICAgICA9IDB4MDAwMDAwMDI7IC8vIEl0J3MgZGVm
aW5pdGVseSBhIEpTQXJyYXkuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Z1bmN0
aW9uICAgICAgICAgICA9IDB4MDAwMDAwMDg7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTRnVuY3Rp
b24gb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNJbnQ4QXJyYXkgICAgICAgICAgPSAweDAwMDAwMDEwOyAvLyBJdCdzIGRlZmluaXRlbHkg
YW4gSW50OEFycmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjSW50MTZBcnJheSAgICAgICAgID0gMHgwMDAwMDAyMDsgLy8gSXQncyBk
ZWZpbml0ZWx5IGFuIEludDE2QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQzMkFycmF5ICAgICAgICAgPSAweDAwMDAwMDQw
OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzJBcnJheSBvciBvbmUgb2YgaXRzIHN1YmNsYXNz
ZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1VpbnQ4QXJyYXkgICAgICAgICA9
IDB4MDAwMDAwODA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBVaW50OEFycmF5IG9yIG9uZSBvZiBp
dHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjVWludDhDbGFt
cGVkQXJyYXkgID0gMHgwMDAwMDEwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIFVpbnQ4Q2xhbXBl
ZEFycmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjVWludDE2QXJyYXkgICAgICAgID0gMHgwMDAwMDIwMDsgLy8gSXQncyBkZWZpbml0
ZWx5IGFuIFVpbnQxNkFycmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25z
dCBTcGVjdWxhdGVkVHlwZSBTcGVjVWludDMyQXJyYXkgICAgICAgID0gMHgwMDAwMDQwMDsgLy8g
SXQncyBkZWZpbml0ZWx5IGFuIFVpbnQzMkFycmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4K
LXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRmxvYXQzMkFycmF5ICAgICAgID0gMHgw
MDAwMDgwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIFVpbnQxNkFycmF5IG9yIG9uZSBvZiBpdHMg
c3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRmxvYXQ2NEFycmF5
ICAgICAgID0gMHgwMDAwMTAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIFVpbnQxNkFycmF5IG9y
IG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
VHlwZWRBcnJheVZpZXcgICAgID0gU3BlY0ludDhBcnJheSB8IFNwZWNJbnQxNkFycmF5IHwgU3Bl
Y0ludDMyQXJyYXkgfCBTcGVjVWludDhBcnJheSB8IFNwZWNVaW50OENsYW1wZWRBcnJheSB8IFNw
ZWNVaW50MTZBcnJheSB8IFNwZWNVaW50MzJBcnJheSB8IFNwZWNGbG9hdDMyQXJyYXkgfCBTcGVj
RmxvYXQ2NEFycmF5Owotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNBcmd1bWVudHMg
ICAgICAgICAgPSAweDAwMDAyMDAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gQXJndW1lbnRzIG9i
amVjdC4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nT2JqZWN0ICAgICAg
ID0gMHgwMDAwNDAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU3RyaW5nT2JqZWN0Lgotc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3RPdGhlciAgICAgICAgPSAweDAwMDA4MDAw
OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gb2JqZWN0IGJ1dCBub3QgSlNGaW5hbE9iamVjdCwgSlNB
cnJheSwgb3IgSlNGdW5jdGlvbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT2Jq
ZWN0ICAgICAgICAgICAgID0gMHgwMDAwZmZmZjsgLy8gQml0bWFzayB1c2VkIGZvciB0ZXN0aW5n
IGZvciBhbnkga2luZCBvZiBvYmplY3QgcHJlZGljdGlvbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxh
dGVkVHlwZSBTcGVjU3RyaW5nSWRlbnQgICAgICAgID0gMHgwMDAxMDAwMDsgLy8gSXQncyBkZWZp
bml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdzIGFuIGlkZW50aWZpZXIuCi1zdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ1ZhciAgICAgICAgICA9IDB4MDAwMjAwMDA7IC8vIEl0
J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQgaXQncyBub3QgYW4gaWRlbnRpZmllci4KLXN0
YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nICAgICAgICAgICAgID0gMHgwMDAz
MDAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcuCi1zdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY0NlbGxPdGhlciAgICAgICAgICA9IDB4MDAwNDAwMDA7IC8vIEl0J3MgZGVm
aW5pdGVseSBhIEpTQ2VsbCBidXQgbm90IGEgc3ViY2xhc3Mgb2YgSlNPYmplY3QgYW5kIGRlZmlu
aXRlbHkgbm90IGEgSlNTdHJpbmcuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Nl
bGwgICAgICAgICAgICAgICA9IDB4MDAwN2ZmZmY7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTQ2Vs
bC4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjSW50MzIgICAgICAgICAgICAgID0g
MHgwMDgwMDAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyLgotc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNJbnQ1MiAgICAgICAgICAgICAgPSAweDAxMDAwMDAwOyAvLyBJdCdz
IGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIHdlIGludGVuZCBpdCB0byB1bmJveCBpdC4KLXN0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTWFjaGluZUludCAgICAgICAgID0gMHgwMTgwMDAw
MDsgLy8gSXQncyBzb21ldGhpbmcgdGhhdCB3ZSBjYW4gZG8gbWFjaGluZSBpbnQgYXJpdGhtZXRp
YyBvbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjSW50NTJBc0RvdWJsZSAgICAg
ID0gMHgwMjAwMDAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDUyIGFuZCBpdCdzIGluc2lk
ZSBhIGRvdWJsZS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjSW50ZWdlciAgICAg
ICAgICAgID0gMHgwMzgwMDAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IHNvbWUga2luZCBvZiBpbnRl
Z2VyLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25JbnRBc0RvdWJsZSAgICAg
PSAweDA0MDAwMDAwOyAvLyBJdCdzIGRlZmluaXRlbHkgbm90IGFuIEludDUyIGJ1dCBpdCdzIGEg
cmVhbCBudW1iZXIgYW5kIGl0J3MgYSBkb3VibGUuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY0RvdWJsZVJlYWwgICAgICAgICA9IDB4MDYwMDAwMDA7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhIG5vbi1OYU4gZG91YmxlLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3Vi
bGVOYU4gICAgICAgICAgPSAweDA4MDAwMDAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBOYU4uCi1z
dGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZSAgICAgICAgICAgICA9IDB4MGUw
MDAwMDA7IC8vIEl0J3MgZWl0aGVyIGEgbm9uLU5hTiBvciBhIE5hTiBkb3VibGUuCi1zdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2RlUmVhbE51bWJlciA9IDB4MDY4MDAwMDA7
IC8vIEl0J3MgZWl0aGVyIGFuIEludDMyIG9yIGEgRG91YmxlUmVhbC4KLXN0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjRnVsbFJlYWxOdW1iZXIgICAgID0gMHgwNzgwMDAwMDsgLy8gSXQn
cyBlaXRoZXIgYW4gSW50MzIgb3IgYSBEb3VibGVSZWFsLCBvciBhIEludDUyLgotc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZU51bWJlciAgICAgPSAweDBlODAwMDAwOyAv
LyBJdCdzIGVpdGhlciBhbiBJbnQzMiBvciBhIERvdWJsZS4KLXN0YXRpYyBjb25zdCBTcGVjdWxh
dGVkVHlwZSBTcGVjRnVsbE51bWJlciAgICAgICAgID0gMHgwZjgwMDAwMDsgLy8gSXQncyBlaXRo
ZXIgYW4gSW50MzIsIEludDUyLCBvciBhIERvdWJsZS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjQm9vbGVhbiAgICAgICAgICAgID0gMHgxMDAwMDAwMDsgLy8gSXQncyBkZWZpbml0
ZWx5IGEgQm9vbGVhbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT3RoZXIgICAg
ICAgICAgICAgID0gMHgyMDAwMDAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IG5vbmUgb2YgdGhlIGFi
b3ZlLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNIZWFwVG9wICAgICAgICAgICAg
PSAweDNlZmZmZmZmOyAvLyBJdCBjYW4gYmUgYW55IG9mIHRoZSBhYm92ZSwgZXhjZXB0IGZvciBT
cGVjSW50NTIuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0VtcHR5ICAgICAgICAg
ICAgICA9IDB4NDAwMDAwMDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBlbXB0eSB2YWx1ZSBtYXJr
ZXIuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2RlVG9wICAgICAgICA9
IDB4N2VmZmZmZmY7IC8vIEl0IGNhbiBiZSBhbnkgb2YgdGhlIGFib3ZlLCBleGNlcHQgZm9yIFNw
ZWNJbnQ1Mi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRnVsbFRvcCAgICAgICAg
ICAgID0gMHg3ZmZmZmZmZjsgLy8gSXQgY2FuIGJlIGFueSBvZiB0aGUgYWJvdmUgcGx1cyBhbnl0
aGluZyB0aGUgREZHIGNob29zZXMuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY05v
bmUgICAgICAgICAgICAgID0gMHgwMDAwMDAwMDsgLy8gV2UgZG9uJ3Qga25vdyBhbnl0aGluZyB5
ZXQuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ZpbmFsT2JqZWN0ICAgICAgID0g
MHgwMDAwMDAwMTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNGaW5hbE9iamVjdC4KK3N0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQXJyYXkgICAgICAgICAgICAgPSAweDAwMDAwMDAyOyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBKU0FycmF5Lgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNGdW5jdGlvbiAgICAgICAgICA9IDB4MDAwMDAwMDg7IC8vIEl0J3MgZGVmaW5pdGVseSBh
IEpTRnVuY3Rpb24gb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNJbnQ4QXJyYXkgICAgICAgICA9IDB4MDAwMDAwMTA7IC8vIEl0J3MgZGVm
aW5pdGVseSBhbiBJbnQ4QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQxNkFycmF5ICAgICAgICA9IDB4MDAwMDAwMjA7IC8v
IEl0J3MgZGVmaW5pdGVseSBhbiBJbnQxNkFycmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4K
K3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjSW50MzJBcnJheSAgICAgICAgPSAweDAw
MDAwMDQwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzJBcnJheSBvciBvbmUgb2YgaXRzIHN1
YmNsYXNzZXMuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1VpbnQ4QXJyYXkgICAg
ICAgID0gMHgwMDAwMDA4MDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIFVpbnQ4QXJyYXkgb3Igb25l
IG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNVaW50
OENsYW1wZWRBcnJheSA9IDB4MDAwMDAxMDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBVaW50OENs
YW1wZWRBcnJheSBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY1VpbnQxNkFycmF5ICAgICAgID0gMHgwMDAwMDIwMDsgLy8gSXQncyBkZWZp
bml0ZWx5IGFuIFVpbnQxNkFycmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjVWludDMyQXJyYXkgICAgICAgPSAweDAwMDAwNDAwOyAv
LyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDMyQXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2Vz
Lgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGbG9hdDMyQXJyYXkgICAgICA9IDB4
MDAwMDA4MDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBVaW50MTZBcnJheSBvciBvbmUgb2YgaXRz
IHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Zsb2F0NjRBcnJh
eSAgICAgID0gMHgwMDAwMTAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIFVpbnQxNkFycmF5IG9y
IG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
VHlwZWRBcnJheVZpZXcgICAgPSBTcGVjSW50OEFycmF5IHwgU3BlY0ludDE2QXJyYXkgfCBTcGVj
SW50MzJBcnJheSB8IFNwZWNVaW50OEFycmF5IHwgU3BlY1VpbnQ4Q2xhbXBlZEFycmF5IHwgU3Bl
Y1VpbnQxNkFycmF5IHwgU3BlY1VpbnQzMkFycmF5IHwgU3BlY0Zsb2F0MzJBcnJheSB8IFNwZWNG
bG9hdDY0QXJyYXk7CitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0FyZ3VtZW50cyAg
ICAgICAgID0gMHgwMDAwMjAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEFyZ3VtZW50cyBvYmpl
Y3QuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ09iamVjdCAgICAgID0g
MHgwMDAwNDAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU3RyaW5nT2JqZWN0Lgorc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3RPdGhlciAgICAgICA9IDB4MDAwMDgwMDA7IC8v
IEl0J3MgZGVmaW5pdGVseSBhbiBvYmplY3QgYnV0IG5vdCBKU0ZpbmFsT2JqZWN0LCBKU0FycmF5
LCBvciBKU0Z1bmN0aW9uLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3Qg
ICAgICAgICAgICA9IDB4MDAwMGZmZmY7IC8vIEJpdG1hc2sgdXNlZCBmb3IgdGVzdGluZyBmb3Ig
YW55IGtpbmQgb2Ygb2JqZWN0IHByZWRpY3Rpb24uCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY1N0cmluZ0lkZW50ICAgICAgID0gMHgwMDAxMDAwMDsgLy8gSXQncyBkZWZpbml0ZWx5
IGEgSlNTdHJpbmcsIGFuZCBpdCdzIGFuIGlkZW50aWZpZXIuCitzdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY1N0cmluZ1ZhciAgICAgICAgID0gMHgwMDAyMDAwMDsgLy8gSXQncyBkZWZp
bml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdzIG5vdCBhbiBpZGVudGlmaWVyLgorc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmcgICAgICAgICAgICA9IDB4MDAwMzAwMDA7IC8v
IEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNDZWxsT3RoZXIgICAgICAgICA9IDB4MDAwNDAwMDA7IC8vIEl0J3MgZGVmaW5pdGVseSBh
IEpTQ2VsbCBidXQgbm90IGEgc3ViY2xhc3Mgb2YgSlNPYmplY3QgYW5kIGRlZmluaXRlbHkgbm90
IGEgSlNTdHJpbmcuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGwgICAgICAg
ICAgICAgID0gMHgwMDA3ZmZmZjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNDZWxsLgorc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQzMiAgICAgICAgICAgICA9IDB4MDA4MDAwMDA7
IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMi4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjSW50NDggICAgICAgICAgICAgPSAweDAxMDAwMDAwOyAvLyBJdCdzIGRlZmluaXRlbHkg
YW4gSW50NDgsIGl0J3MgaW5zaWRlIGEgZG91YmxlLCBidXQgaXQgZG9lc24ndCBuZWVkIHRvIGJl
Lgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNNYWNoaW5lSW50ICAgICAgICA9IDB4
MDE4MDAwMDA7IC8vIEl0J3Mgc29tZXRoaW5nIHRoYXQgd2UgY2FuIGRvIG1hY2hpbmUgaW50IGFy
aXRobWV0aWMgb24uCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDQ4QXNEb3Vi
bGUgICAgID0gMHgwMjAwMDAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDQ4IGFuZCBpdCdz
IGluc2lkZSBhIGRvdWJsZS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjSW50ZWdl
ciAgICAgICAgICAgPSAweDAzODAwMDAwOyAvLyBJdCdzIGRlZmluaXRlbHkgc29tZSBraW5kIG9m
IGludGVnZXIuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkludEFzRG91Ymxl
ICAgID0gMHgwNDAwMDAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IG5vdCBhbiBJbnQ0OCBidXQgaXQn
cyBhIHJlYWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91YmxlLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0
ZWRUeXBlIFNwZWNEb3VibGVSZWFsICAgICAgICA9IDB4MDcwMDAwMDA7IC8vIEl0J3MgZGVmaW5p
dGVseSBhIG5vbi1OYU4gZG91YmxlLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNE
b3VibGVOYU4gICAgICAgICA9IDB4MDgwMDAwMDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE5hTi4K
K3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlICAgICAgICAgICAgPSAweDBm
MDAwMDAwOyAvLyBJdCdzIGVpdGhlciBhIG5vbi1OYU4gb3IgYSBOYU4gZG91YmxlLgorc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNSZWFsTnVtYmVyICAgICAgICA9IDB4MDc4MDAwMDA7
IC8vIEl0J3MgZWl0aGVyIGFuIEludDMyIG9yIGEgRG91YmxlUmVhbC4KK3N0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjTnVtYmVyICAgICAgICAgICAgPSAweDBmODAwMDAwOyAvLyBJdCdz
IGVpdGhlciBhbiBJbnQzMiBvciBhIERvdWJsZS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjQm9vbGVhbiAgICAgICAgICAgPSAweDEwMDAwMDAwOyAvLyBJdCdzIGRlZmluaXRlbHkg
YSBCb29sZWFuLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPdGhlciAgICAgICAg
ICAgICA9IDB4MjAwMDAwMDA7IC8vIEl0J3MgZGVmaW5pdGVseSBub25lIG9mIHRoZSBhYm92ZS4K
K3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjSGVhcFRvcCAgICAgICAgICAgPSAweDNm
ZmZmZmZmOyAvLyBJdCBjYW4gYmUgYW55IG9mIHRoZSBhYm92ZS4KK3N0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjRW1wdHkgICAgICAgICAgICAgPSAweDQwMDAwMDAwOyAvLyBJdCdzIGRl
ZmluaXRlbHkgYW4gZW1wdHkgdmFsdWUgbWFya2VyLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNCeXRlY29kZVRvcCAgICAgICA9IDB4N2ZmZmZmZmY7IC8vIEl0IGNhbiBiZSBhbnkg
b2YgdGhlIGFib3ZlLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsVG9wICAg
ICAgICAgICA9IDB4N2ZmZmZmZmY7IC8vIEl0IGNhbiBiZSBhbnkgb2YgdGhlIGFib3ZlIHBsdXMg
YW55dGhpbmcgdGhlIERGRyBjaG9vc2VzLgogCiB0eXBlZGVmIGJvb2wgKCpTcGVjdWxhdGVkVHlw
ZUNoZWNrZXIpKFNwZWN1bGF0ZWRUeXBlKTsKIApAQCAtMjQyLDcgKzI0MCw3IEBAIGlubGluZSBi
b29sIGlzSW50MzJTcGVjdWxhdGlvbihTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKIAogaW5saW5lIGJv
b2wgaXNJbnQzMlNwZWN1bGF0aW9uRm9yQXJpdGhtZXRpYyhTcGVjdWxhdGVkVHlwZSB2YWx1ZSkK
IHsKLSAgICByZXR1cm4gISh2YWx1ZSAmIChTcGVjRG91YmxlIHwgU3BlY0ludDUyKSk7CisgICAg
cmV0dXJuICEodmFsdWUgJiBTcGVjRG91YmxlKTsKIH0KIAogaW5saW5lIGJvb2wgaXNJbnQzMlNw
ZWN1bGF0aW9uRXhwZWN0aW5nRGVmaW5lZChTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKQEAgLTI1MCw5
ICsyNDgsOSBAQCBpbmxpbmUgYm9vbCBpc0ludDMyU3BlY3VsYXRpb25FeHBlY3RpbmdEZWZpbmVk
KFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQogICAgIHJldHVybiBpc0ludDMyU3BlY3VsYXRpb24odmFs
dWUgJiB+U3BlY090aGVyKTsKIH0KIAotaW5saW5lIGJvb2wgaXNJbnQ1MlNwZWN1bGF0aW9uKFNw
ZWN1bGF0ZWRUeXBlIHZhbHVlKQoraW5saW5lIGJvb2wgaXNJbnQ0OFNwZWN1bGF0aW9uKFNwZWN1
bGF0ZWRUeXBlIHZhbHVlKQogewotICAgIHJldHVybiB2YWx1ZSA9PSBTcGVjSW50NTI7CisgICAg
cmV0dXJuIHZhbHVlID09IFNwZWNJbnQ0ODsKIH0KIAogaW5saW5lIGJvb2wgaXNNYWNoaW5lSW50
U3BlY3VsYXRpb24oU3BlY3VsYXRlZFR5cGUgdmFsdWUpCkBAIC0yNjcsMTIgKzI2NSwxMiBAQCBp
bmxpbmUgYm9vbCBpc01hY2hpbmVJbnRTcGVjdWxhdGlvbkV4cGVjdGluZ0RlZmluZWQoU3BlY3Vs
YXRlZFR5cGUgdmFsdWUpCiAKIGlubGluZSBib29sIGlzTWFjaGluZUludFNwZWN1bGF0aW9uRm9y
QXJpdGhtZXRpYyhTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKIHsKLSAgICByZXR1cm4gISh2YWx1ZSAm
IFNwZWNEb3VibGUpOworICAgIHJldHVybiAhKHZhbHVlICYgKFNwZWNEb3VibGUgJiB+U3BlY01h
Y2hpbmVJbnQpKTsKIH0KIAotaW5saW5lIGJvb2wgaXNJbnQ1MkFzRG91YmxlU3BlY3VsYXRpb24o
U3BlY3VsYXRlZFR5cGUgdmFsdWUpCitpbmxpbmUgYm9vbCBpc0ludDQ4QXNEb3VibGVTcGVjdWxh
dGlvbihTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKIHsKLSAgICByZXR1cm4gdmFsdWUgPT0gU3BlY0lu
dDUyQXNEb3VibGU7CisgICAgcmV0dXJuIHZhbHVlID09IFNwZWNJbnQ0OEFzRG91YmxlOwogfQog
CiBpbmxpbmUgYm9vbCBpc0ludGVnZXJTcGVjdWxhdGlvbihTcGVjdWxhdGVkVHlwZSB2YWx1ZSkK
QEAgLTI5NSwzNCArMjkzLDE5IEBAIGlubGluZSBib29sIGlzRG91YmxlU3BlY3VsYXRpb25Gb3JB
cml0aG1ldGljKFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQogICAgIHJldHVybiAhISh2YWx1ZSAmIFNw
ZWNEb3VibGUpOwogfQogCi1pbmxpbmUgYm9vbCBpc0J5dGVjb2RlUmVhbE51bWJlclNwZWN1bGF0
aW9uKFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQotewotICAgIHJldHVybiAhISh2YWx1ZSAmIFNwZWNC
eXRlY29kZVJlYWxOdW1iZXIpICYmICEodmFsdWUgJiB+U3BlY0J5dGVjb2RlUmVhbE51bWJlcik7
Ci19Ci0KLWlubGluZSBib29sIGlzRnVsbFJlYWxOdW1iZXJTcGVjdWxhdGlvbihTcGVjdWxhdGVk
VHlwZSB2YWx1ZSkKLXsKLSAgICByZXR1cm4gISEodmFsdWUgJiBTcGVjRnVsbFJlYWxOdW1iZXIp
ICYmICEodmFsdWUgJiB+U3BlY0Z1bGxSZWFsTnVtYmVyKTsKLX0KLQotaW5saW5lIGJvb2wgaXNC
eXRlY29kZU51bWJlclNwZWN1bGF0aW9uKFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQotewotICAgIHJl
dHVybiAhISh2YWx1ZSAmIFNwZWNCeXRlY29kZU51bWJlcikgJiYgISh2YWx1ZSAmIH5TcGVjQnl0
ZWNvZGVOdW1iZXIpOwotfQotCi1pbmxpbmUgYm9vbCBpc0Z1bGxOdW1iZXJTcGVjdWxhdGlvbihT
cGVjdWxhdGVkVHlwZSB2YWx1ZSkKK2lubGluZSBib29sIGlzUmVhbE51bWJlclNwZWN1bGF0aW9u
KFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQogewotICAgIHJldHVybiAhISh2YWx1ZSAmIFNwZWNGdWxs
TnVtYmVyKSAmJiAhKHZhbHVlICYgflNwZWNGdWxsTnVtYmVyKTsKKyAgICByZXR1cm4gISEodmFs
dWUgJiBTcGVjUmVhbE51bWJlcikgJiYgISh2YWx1ZSAmIH5TcGVjUmVhbE51bWJlcik7CiB9CiAK
LWlubGluZSBib29sIGlzQnl0ZWNvZGVOdW1iZXJTcGVjdWxhdGlvbkV4cGVjdGluZ0RlZmluZWQo
U3BlY3VsYXRlZFR5cGUgdmFsdWUpCitpbmxpbmUgYm9vbCBpc051bWJlclNwZWN1bGF0aW9uKFNw
ZWN1bGF0ZWRUeXBlIHZhbHVlKQogewotICAgIHJldHVybiBpc0J5dGVjb2RlTnVtYmVyU3BlY3Vs
YXRpb24odmFsdWUgJiB+U3BlY090aGVyKTsKKyAgICByZXR1cm4gISEodmFsdWUgJiBTcGVjTnVt
YmVyKSAmJiAhKHZhbHVlICYgflNwZWNOdW1iZXIpOwogfQogCi1pbmxpbmUgYm9vbCBpc0Z1bGxO
dW1iZXJTcGVjdWxhdGlvbkV4cGVjdGluZ0RlZmluZWQoU3BlY3VsYXRlZFR5cGUgdmFsdWUpCitp
bmxpbmUgYm9vbCBpc051bWJlclNwZWN1bGF0aW9uRXhwZWN0aW5nRGVmaW5lZChTcGVjdWxhdGVk
VHlwZSB2YWx1ZSkKIHsKLSAgICByZXR1cm4gaXNGdWxsTnVtYmVyU3BlY3VsYXRpb24odmFsdWUg
JiB+U3BlY090aGVyKTsKKyAgICByZXR1cm4gaXNOdW1iZXJTcGVjdWxhdGlvbih2YWx1ZSAmIH5T
cGVjT3RoZXIpOwogfQogCiBpbmxpbmUgYm9vbCBpc0Jvb2xlYW5TcGVjdWxhdGlvbihTcGVjdWxh
dGVkVHlwZSB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9WYWx1ZVJlY292ZXJ5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVS
ZWNvdmVyeS5oCmluZGV4IDQzOTc3MGU4MGYwNmFlMDY3M2I2M2YxZjE0NzJlNDdhYWI0ZDFhOGEu
LjYzMmUyMDYxOWMwNDJhYjI1YTZkYThiZWQ2ODU2NzQxZTI3YzA4MDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVJlY292ZXJ5LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaApAQCAtNDQsMTUgKzQ0LDEy
IEBAIGVudW0gVmFsdWVSZWNvdmVyeVRlY2huaXF1ZSB7CiAgICAgQWxyZWFkeUluSlNTdGFjaywK
ICAgICAvLyBJdCdzIGFscmVhZHkgaW4gdGhlIHN0YWNrIGJ1dCB1bmJveGVkLgogICAgIEFscmVh
ZHlJbkpTU3RhY2tBc1VuYm94ZWRJbnQzMiwKLSAgICBBbHJlYWR5SW5KU1N0YWNrQXNVbmJveGVk
SW50NTIsCiAgICAgQWxyZWFkeUluSlNTdGFja0FzVW5ib3hlZENlbGwsCiAgICAgQWxyZWFkeUlu
SlNTdGFja0FzVW5ib3hlZEJvb2xlYW4sCiAgICAgQWxyZWFkeUluSlNTdGFja0FzVW5ib3hlZERv
dWJsZSwKICAgICAvLyBJdCdzIGluIGEgcmVnaXN0ZXIuCiAgICAgSW5HUFIsCiAgICAgVW5ib3hl
ZEludDMySW5HUFIsCi0gICAgVW5ib3hlZEludDUySW5HUFIsCi0gICAgVW5ib3hlZFN0cmljdElu
dDUySW5HUFIsCiAgICAgVW5ib3hlZEJvb2xlYW5JbkdQUiwKICNpZiBVU0UoSlNWQUxVRTMyXzY0
KQogICAgIEluUGFpciwKQEAgLTYzLDggKzYwLDYgQEAgZW51bSBWYWx1ZVJlY292ZXJ5VGVjaG5p
cXVlIHsKICAgICBEaXNwbGFjZWRJbkpTU3RhY2ssCiAgICAgLy8gSXQncyBpbiB0aGUgc3RhY2ss
IGF0IGEgZGlmZmVyZW50IGxvY2F0aW9uLCBhbmQgaXQncyB1bmJveGVkLgogICAgIEludDMyRGlz
cGxhY2VkSW5KU1N0YWNrLAotICAgIEludDUyRGlzcGxhY2VkSW5KU1N0YWNrLAotICAgIFN0cmlj
dEludDUyRGlzcGxhY2VkSW5KU1N0YWNrLAogICAgIERvdWJsZURpc3BsYWNlZEluSlNTdGFjaywK
ICAgICBDZWxsRGlzcGxhY2VkSW5KU1N0YWNrLAogICAgIEJvb2xlYW5EaXNwbGFjZWRJbkpTU3Rh
Y2ssCkBAIC0xMDAsMTMgKzk1LDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gcmVzdWx0Owog
ICAgIH0KICAgICAKLSAgICBzdGF0aWMgVmFsdWVSZWNvdmVyeSBhbHJlYWR5SW5KU1N0YWNrQXNV
bmJveGVkSW50NTIoKQotICAgIHsKLSAgICAgICAgVmFsdWVSZWNvdmVyeSByZXN1bHQ7Ci0gICAg
ICAgIHJlc3VsdC5tX3RlY2huaXF1ZSA9IEFscmVhZHlJbkpTU3RhY2tBc1VuYm94ZWRJbnQ1MjsK
LSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCiAgICAgc3RhdGljIFZhbHVlUmVj
b3ZlcnkgYWxyZWFkeUluSlNTdGFja0FzVW5ib3hlZENlbGwoKQogICAgIHsKICAgICAgICAgVmFs
dWVSZWNvdmVyeSByZXN1bHQ7CkBAIC0xMzcsMTAgKzEyNSw2IEBAIHB1YmxpYzoKICAgICAgICAg
VmFsdWVSZWNvdmVyeSByZXN1bHQ7CiAgICAgICAgIGlmIChkYXRhRm9ybWF0ID09IERhdGFGb3Jt
YXRJbnQzMikKICAgICAgICAgICAgIHJlc3VsdC5tX3RlY2huaXF1ZSA9IFVuYm94ZWRJbnQzMklu
R1BSOwotICAgICAgICBlbHNlIGlmIChkYXRhRm9ybWF0ID09IERhdGFGb3JtYXRJbnQ1MikKLSAg
ICAgICAgICAgIHJlc3VsdC5tX3RlY2huaXF1ZSA9IFVuYm94ZWRJbnQ1MkluR1BSOwotICAgICAg
ICBlbHNlIGlmIChkYXRhRm9ybWF0ID09IERhdGFGb3JtYXRTdHJpY3RJbnQ1MikKLSAgICAgICAg
ICAgIHJlc3VsdC5tX3RlY2huaXF1ZSA9IFVuYm94ZWRTdHJpY3RJbnQ1MkluR1BSOwogICAgICAg
ICBlbHNlIGlmIChkYXRhRm9ybWF0ID09IERhdGFGb3JtYXRCb29sZWFuKQogICAgICAgICAgICAg
cmVzdWx0Lm1fdGVjaG5pcXVlID0gVW5ib3hlZEJvb2xlYW5JbkdQUjsKICAgICAgICAgZWxzZQpA
QCAtMTg0LDE0ICsxNjgsNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXN1bHQubV90ZWNobmlx
dWUgPSBJbnQzMkRpc3BsYWNlZEluSlNTdGFjazsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgCi0gICAgICAgIGNhc2UgRGF0YUZvcm1hdEludDUyOgotICAgICAgICAgICAgcmVzdWx0
Lm1fdGVjaG5pcXVlID0gSW50NTJEaXNwbGFjZWRJbkpTU3RhY2s7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIERhdGFGb3JtYXRTdHJpY3RJbnQ1MjoKLSAg
ICAgICAgICAgIHJlc3VsdC5tX3RlY2huaXF1ZSA9IFN0cmljdEludDUyRGlzcGxhY2VkSW5KU1N0
YWNrOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAKICAgICAgICAgY2FzZSBEYXRh
Rm9ybWF0RG91YmxlOgogICAgICAgICAgICAgcmVzdWx0Lm1fdGVjaG5pcXVlID0gRG91YmxlRGlz
cGxhY2VkSW5KU1N0YWNrOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yNTMsNyArMjI5LDYgQEAg
cHVibGljOgogICAgICAgICBzd2l0Y2ggKHRlY2huaXF1ZSgpKSB7CiAgICAgICAgIGNhc2UgQWxy
ZWFkeUluSlNTdGFjazoKICAgICAgICAgY2FzZSBBbHJlYWR5SW5KU1N0YWNrQXNVbmJveGVkSW50
MzI6Ci0gICAgICAgIGNhc2UgQWxyZWFkeUluSlNTdGFja0FzVW5ib3hlZEludDUyOgogICAgICAg
ICBjYXNlIEFscmVhZHlJbkpTU3RhY2tBc1VuYm94ZWRDZWxsOgogICAgICAgICBjYXNlIEFscmVh
ZHlJbkpTU3RhY2tBc1VuYm94ZWRCb29sZWFuOgogICAgICAgICBjYXNlIEFscmVhZHlJbkpTU3Rh
Y2tBc1VuYm94ZWREb3VibGU6CkBAIC0yNjUsNyArMjQwLDcgQEAgcHVibGljOgogICAgIAogICAg
IE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIGdwcigpIGNvbnN0CiAgICAgewotICAgICAgICBB
U1NFUlQobV90ZWNobmlxdWUgPT0gSW5HUFIgfHwgbV90ZWNobmlxdWUgPT0gVW5ib3hlZEludDMy
SW5HUFIgfHwgbV90ZWNobmlxdWUgPT0gVW5ib3hlZEJvb2xlYW5JbkdQUiB8fCBtX3RlY2huaXF1
ZSA9PSBVSW50MzJJbkdQUiB8fCBtX3RlY2huaXF1ZSA9PSBVbmJveGVkSW50NTJJbkdQUiB8fCBt
X3RlY2huaXF1ZSA9PSBVbmJveGVkU3RyaWN0SW50NTJJbkdQUik7CisgICAgICAgIEFTU0VSVCht
X3RlY2huaXF1ZSA9PSBJbkdQUiB8fCBtX3RlY2huaXF1ZSA9PSBVbmJveGVkSW50MzJJbkdQUiB8
fCBtX3RlY2huaXF1ZSA9PSBVbmJveGVkQm9vbGVhbkluR1BSIHx8IG1fdGVjaG5pcXVlID09IFVJ
bnQzMkluR1BSKTsKICAgICAgICAgcmV0dXJuIG1fc291cmNlLmdwcjsKICAgICB9CiAgICAgCkBA
IC0yOTEsNyArMjY2LDcgQEAgcHVibGljOgogICAgIAogICAgIFZpcnR1YWxSZWdpc3RlciB2aXJ0
dWFsUmVnaXN0ZXIoKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdGVjaG5pcXVlID09
IERpc3BsYWNlZEluSlNTdGFjayB8fCBtX3RlY2huaXF1ZSA9PSBJbnQzMkRpc3BsYWNlZEluSlNT
dGFjayB8fCBtX3RlY2huaXF1ZSA9PSBEb3VibGVEaXNwbGFjZWRJbkpTU3RhY2sgfHwgbV90ZWNo
bmlxdWUgPT0gQ2VsbERpc3BsYWNlZEluSlNTdGFjayB8fCBtX3RlY2huaXF1ZSA9PSBCb29sZWFu
RGlzcGxhY2VkSW5KU1N0YWNrIHx8IG1fdGVjaG5pcXVlID09IEludDUyRGlzcGxhY2VkSW5KU1N0
YWNrIHx8IG1fdGVjaG5pcXVlID09IFN0cmljdEludDUyRGlzcGxhY2VkSW5KU1N0YWNrKTsKKyAg
ICAgICAgQVNTRVJUKG1fdGVjaG5pcXVlID09IERpc3BsYWNlZEluSlNTdGFjayB8fCBtX3RlY2hu
aXF1ZSA9PSBJbnQzMkRpc3BsYWNlZEluSlNTdGFjayB8fCBtX3RlY2huaXF1ZSA9PSBEb3VibGVE
aXNwbGFjZWRJbkpTU3RhY2sgfHwgbV90ZWNobmlxdWUgPT0gQ2VsbERpc3BsYWNlZEluSlNTdGFj
ayB8fCBtX3RlY2huaXF1ZSA9PSBCb29sZWFuRGlzcGxhY2VkSW5KU1N0YWNrKTsKICAgICAgICAg
cmV0dXJuIG1fc291cmNlLnZpcnR1YWxSZWc7CiAgICAgfQogICAgIApAQCAtMzEwLDkgKzI4NSw2
IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBBbHJlYWR5SW5KU1N0YWNrQXNVbmJveGVkSW50MzI6
CiAgICAgICAgICAgICBvdXQucHJpbnRmKCIoaW50MzIpIik7CiAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIGNhc2UgQWxyZWFkeUluSlNTdGFja0FzVW5ib3hlZEludDUyOgotICAgICAgICAg
ICAgb3V0LnByaW50ZigiKGludDUyKSIpOwotICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBj
YXNlIEFscmVhZHlJbkpTU3RhY2tBc1VuYm94ZWRDZWxsOgogICAgICAgICAgICAgb3V0LnByaW50
ZigiKGNlbGwpIik7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0zMjgsMTIgKzMwMCw2IEBAIHB1
YmxpYzoKICAgICAgICAgY2FzZSBVbmJveGVkSW50MzJJbkdQUjoKICAgICAgICAgICAgIG91dC5w
cmludGYoImludDMyKCUlciVkKSIsIGdwcigpKTsKICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgY2FzZSBVbmJveGVkSW50NTJJbkdQUjoKLSAgICAgICAgICAgIG91dC5wcmludGYoImludDUy
KCUlciVkKSIsIGdwcigpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgY2FzZSBVbmJv
eGVkU3RyaWN0SW50NTJJbkdQUjoKLSAgICAgICAgICAgIG91dC5wcmludGYoInN0cmljdEludDUy
KCUlciVkKSIsIGdwcigpKTsKLSAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY2FzZSBVbmJv
eGVkQm9vbGVhbkluR1BSOgogICAgICAgICAgICAgb3V0LnByaW50ZigiYm9vbCglJXIlZCkiLCBn
cHIoKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0zNTQsMTIgKzMyMCw2IEBAIHB1YmxpYzoK
ICAgICAgICAgY2FzZSBJbnQzMkRpc3BsYWNlZEluSlNTdGFjazoKICAgICAgICAgICAgIG91dC5w
cmludGYoIippbnQzMiglZCkiLCB2aXJ0dWFsUmVnaXN0ZXIoKSk7CiAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIGNhc2UgSW50NTJEaXNwbGFjZWRJbkpTU3RhY2s6Ci0gICAgICAgICAgICBv
dXQucHJpbnRmKCIqaW50NTIoJWQpIiwgdmlydHVhbFJlZ2lzdGVyKCkpOwotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICBjYXNlIFN0cmljdEludDUyRGlzcGxhY2VkSW5KU1N0YWNrOgotICAg
ICAgICAgICAgb3V0LnByaW50ZigiKnN0cmljdEludDUyKCVkKSIsIHZpcnR1YWxSZWdpc3Rlcigp
KTsKLSAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY2FzZSBEb3VibGVEaXNwbGFjZWRJbkpT
U3RhY2s6CiAgICAgICAgICAgICBvdXQucHJpbnRmKCIqZG91YmxlKCVkKSIsIHZpcnR1YWxSZWdp
c3RlcigpKTsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVyLmgKaW5kZXggZWI0ZTUyMTlmY2VjZGQ3MGM0
NjRkOTBlOGRmYWQ0Yjc2N2RjN2I3My4uZjBlNWU0MmZlODA1NmVlMjM5MTJiNmM0NGM4NDY2OGI2
MjBlNDg2NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dEludGVycHJldGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dEludGVycHJldGVyLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAgIAogICAgIGJvb2wg
bmVlZHNUeXBlQ2hlY2soTm9kZSogbm9kZSwgU3BlY3VsYXRlZFR5cGUgdHlwZXNQYXNzZWRUaHJv
dWdoKQogICAgIHsKLSAgICAgICAgcmV0dXJuICFmb3JOb2RlKG5vZGUpLmlzVHlwZSh0eXBlc1Bh
c3NlZFRocm91Z2gpOworICAgICAgICByZXR1cm4gZm9yTm9kZShub2RlKS5tX3R5cGUgJiB+dHlw
ZXNQYXNzZWRUaHJvdWdoOwogICAgIH0KICAgICAKICAgICBib29sIG5lZWRzVHlwZUNoZWNrKEVk
Z2UgZWRnZSwgU3BlY3VsYXRlZFR5cGUgdHlwZXNQYXNzZWRUaHJvdWdoKQpAQCAtMTY4LDcgKzE2
OCw3IEBAIHByaXZhdGU6CiAgICAgQUxXQVlTX0lOTElORSB2b2lkIGZpbHRlckJ5VHlwZShOb2Rl
KiBub2RlLCBFZGdlJiBlZGdlLCBTcGVjdWxhdGVkVHlwZSB0eXBlKQogICAgIHsKICAgICAgICAg
QWJzdHJhY3RWYWx1ZSYgdmFsdWUgPSBmb3JOb2RlKGVkZ2UpOwotICAgICAgICBpZiAoIXZhbHVl
LmlzVHlwZSh0eXBlKSkgeworICAgICAgICBpZiAodmFsdWUubV90eXBlICYgfnR5cGUpIHsKICAg
ICAgICAgICAgIG5vZGUtPnNldENhbkV4aXQodHJ1ZSk7CiAgICAgICAgICAgICBlZGdlLnNldFBy
b29mU3RhdHVzKE5lZWRzQ2hlY2spOwogICAgICAgICB9IGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApp
bmRleCA2YmUzMTdiMDEyN2JmZmZjNDhhM2UxMzVkZjE0ZTZjNzg2MzY2Y2I1Li43Y2QwODRjYTg0
NDA2NTRmNGIwYTZjZDAyODZlMDU2NjdhNTRlOWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC0z
MTAsMjkgKzMxMCw2IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlw
ZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgIGJyZWFrOwog
ICAgIH0KICAgICAgICAgCi0gICAgY2FzZSBJbnQ1MlRvRG91YmxlOiB7Ci0gICAgICAgIEpTVmFs
dWUgY2hpbGQgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgpOwotICAgICAgICBpZiAo
Y2hpbGQgJiYgY2hpbGQuaXNOdW1iZXIoKSkgewotICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9k
ZSwgY2hpbGQpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgZm9yTm9k
ZShub2RlKS5zZXRUeXBlKFNwZWNEb3VibGUpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAg
ICAgIAotICAgIGNhc2UgSW50NTJUb1ZhbHVlOiB7Ci0gICAgICAgIEpTVmFsdWUgY2hpbGQgPSBm
b3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgpOwotICAgICAgICBpZiAoY2hpbGQgJiYgY2hp
bGQuaXNOdW1iZXIoKSkgewotICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwgY2hpbGQpOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgU3BlY3VsYXRlZFR5cGUgdHlw
ZSA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLm1fdHlwZTsKLSAgICAgICAgaWYgKHR5cGUgJiBT
cGVjSW50NTIpCi0gICAgICAgICAgICB0eXBlID0gKHR5cGUgfCBTcGVjSW50MzIgfCBTcGVjSW50
NTJBc0RvdWJsZSkgJiB+U3BlY0ludDUyOwotICAgICAgICBmb3JOb2RlKG5vZGUpLnNldFR5cGUo
dHlwZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICAgICAgCiAgICAgY2FzZSBWYWx1ZUFk
ZDoKICAgICBjYXNlIEFyaXRoQWRkOiB7CiAgICAgICAgIEpTVmFsdWUgbGVmdCA9IGZvck5vZGUo
bm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7CkBAIC0zNDcsMTUgKzMyNCw5IEBAIGJvb2wgQWJzdHJh
Y3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVk
IGNsb2JiZXJMaW1pCiAgICAgICAgICAgICBpZiAoIWJ5dGVjb2RlQ2FuVHJ1bmNhdGVJbnRlZ2Vy
KG5vZGUtPmFyaXRoTm9kZUZsYWdzKCkpKQogICAgICAgICAgICAgICAgIG5vZGUtPnNldENhbkV4
aXQodHJ1ZSk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNYWNoaW5lSW50VXNl
OgotICAgICAgICAgICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNJbnQ1Mik7Ci0gICAgICAg
ICAgICBpZiAoIWZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLmlzVHlwZShTcGVjSW50MzIpCi0gICAg
ICAgICAgICAgICAgfHwgIWZvck5vZGUobm9kZS0+Y2hpbGQyKCkpLmlzVHlwZShTcGVjSW50MzIp
KQotICAgICAgICAgICAgICAgIG5vZGUtPnNldENhbkV4aXQodHJ1ZSk7Ci0gICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBOdW1iZXJVc2U6Ci0gICAgICAgICAgICBpZiAoaXNGdWxsUmVh
bE51bWJlclNwZWN1bGF0aW9uKGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLm1fdHlwZSkKLSAgICAg
ICAgICAgICAgICAmJiBpc0Z1bGxSZWFsTnVtYmVyU3BlY3VsYXRpb24oZm9yTm9kZShub2RlLT5j
aGlsZDIoKSkubV90eXBlKSkKKyAgICAgICAgICAgIGlmIChpc1JlYWxOdW1iZXJTcGVjdWxhdGlv
bihmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5tX3R5cGUpCisgICAgICAgICAgICAgICAgJiYgaXNS
ZWFsTnVtYmVyU3BlY3VsYXRpb24oZm9yTm9kZShub2RlLT5jaGlsZDIoKSkubV90eXBlKSkKICAg
ICAgICAgICAgICAgICBmb3JOb2RlKG5vZGUpLnNldFR5cGUoU3BlY0RvdWJsZVJlYWwpOwogICAg
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGZvck5vZGUobm9kZSkuc2V0VHlwZShTcGVj
RG91YmxlKTsKQEAgLTM2Myw3ICszMzQsNyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJz
dHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAg
ICAgICBkZWZhdWx0OgogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobm9kZS0+b3AoKSA9PSBW
YWx1ZUFkZCk7CiAgICAgICAgICAgICBjbG9iYmVyV29ybGQobm9kZS0+Y29kZU9yaWdpbiwgY2xv
YmJlckxpbWl0KTsKLSAgICAgICAgICAgIGZvck5vZGUobm9kZSkuc2V0VHlwZShTcGVjU3RyaW5n
IHwgU3BlY0J5dGVjb2RlTnVtYmVyKTsKKyAgICAgICAgICAgIGZvck5vZGUobm9kZSkuc2V0VHlw
ZShTcGVjU3RyaW5nIHwgU3BlY0ludDMyIHwgU3BlY051bWJlcik7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICBicmVhazsKQEAgLTM4NywxMiArMzU4LDYgQEAgYm9vbCBB
YnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5z
aWduZWQgY2xvYmJlckxpbWkKICAgICAgICAgICAgIGlmICghYnl0ZWNvZGVDYW5UcnVuY2F0ZUlu
dGVnZXIobm9kZS0+YXJpdGhOb2RlRmxhZ3MoKSkpCiAgICAgICAgICAgICAgICAgbm9kZS0+c2V0
Q2FuRXhpdCh0cnVlKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1hY2hpbmVJ
bnRVc2U6Ci0gICAgICAgICAgICBmb3JOb2RlKG5vZGUpLnNldFR5cGUoU3BlY0ludDUyKTsKLSAg
ICAgICAgICAgIGlmICghZm9yTm9kZShub2RlLT5jaGlsZDEoKSkuaXNUeXBlKFNwZWNJbnQzMikK
LSAgICAgICAgICAgICAgICB8fCAhZm9yTm9kZShub2RlLT5jaGlsZDIoKSkuaXNUeXBlKFNwZWNJ
bnQzMikpCi0gICAgICAgICAgICAgICAgbm9kZS0+c2V0Q2FuRXhpdCh0cnVlKTsKLSAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIE51bWJlclVzZToKICAgICAgICAgICAgIGZvck5vZGUo
bm9kZSkuc2V0VHlwZShTcGVjRG91YmxlKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNDE1LDEz
ICszODAsNiBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+Ojpl
eGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICAgICAgaWYgKCFieXRl
Y29kZUNhblRydW5jYXRlSW50ZWdlcihub2RlLT5hcml0aE5vZGVGbGFncygpKSkKICAgICAgICAg
ICAgICAgICBub2RlLT5zZXRDYW5FeGl0KHRydWUpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgTWFjaGluZUludFVzZToKLSAgICAgICAgICAgIGZvck5vZGUobm9kZSkuc2V0VHlw
ZShTcGVjSW50NTIpOwotICAgICAgICAgICAgaWYgKG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGls
ZDEoKSkuY291bGRCZVR5cGUoU3BlY0ludDUyKSkKLSAgICAgICAgICAgICAgICBub2RlLT5zZXRD
YW5FeGl0KHRydWUpOwotICAgICAgICAgICAgaWYgKCFieXRlY29kZUNhbklnbm9yZU5lZ2F0aXZl
WmVybyhub2RlLT5hcml0aE5vZGVGbGFncygpKSkKLSAgICAgICAgICAgICAgICBub2RlLT5zZXRD
YW5FeGl0KHRydWUpOwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTnVtYmVyVXNl
OgogICAgICAgICAgICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNEb3VibGUpOwogICAgICAg
ICAgICAgYnJlYWs7CkBAIC00NDYsMTMgKzQwNCw5IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRl
cjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1p
CiAgICAgICAgICAgICAgICAgfHwgIWJ5dGVjb2RlQ2FuSWdub3JlTmVnYXRpdmVaZXJvKG5vZGUt
PmFyaXRoTm9kZUZsYWdzKCkpKQogICAgICAgICAgICAgICAgIG5vZGUtPnNldENhbkV4aXQodHJ1
ZSk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNYWNoaW5lSW50VXNlOgotICAg
ICAgICAgICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNJbnQ1Mik7Ci0gICAgICAgICAgICBu
b2RlLT5zZXRDYW5FeGl0KHRydWUpOwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
TnVtYmVyVXNlOgotICAgICAgICAgICAgaWYgKGlzRnVsbFJlYWxOdW1iZXJTcGVjdWxhdGlvbihm
b3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5tX3R5cGUpCi0gICAgICAgICAgICAgICAgfHwgaXNGdWxs
UmVhbE51bWJlclNwZWN1bGF0aW9uKGZvck5vZGUobm9kZS0+Y2hpbGQyKCkpLm1fdHlwZSkpCisg
ICAgICAgICAgICBpZiAoaXNSZWFsTnVtYmVyU3BlY3VsYXRpb24oZm9yTm9kZShub2RlLT5jaGls
ZDEoKSkubV90eXBlKQorICAgICAgICAgICAgICAgIHx8IGlzUmVhbE51bWJlclNwZWN1bGF0aW9u
KGZvck5vZGUobm9kZS0+Y2hpbGQyKCkpLm1fdHlwZSkpCiAgICAgICAgICAgICAgICAgZm9yTm9k
ZShub2RlKS5zZXRUeXBlKFNwZWNEb3VibGVSZWFsKTsKICAgICAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgICAgICBmb3JOb2RlKG5vZGUpLnNldFR5cGUoU3BlY0RvdWJsZSk7CkBAIC02MzIsNyAr
NTg2LDcgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhl
Y3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgICAgIAotICAgICAgICBpZiAoaXNGdWxsTnVtYmVyU3BlY3VsYXRpb24oYWJz
dHJhY3RDaGlsZC5tX3R5cGUpKSB7CisgICAgICAgIGlmIChpc051bWJlclNwZWN1bGF0aW9uKGFi
c3RyYWN0Q2hpbGQubV90eXBlKSkgewogICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwgdm0t
PnNtYWxsU3RyaW5ncy5udW1iZXJTdHJpbmcoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQpAQCAtODU3LDggKzgxMSw2IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFj
dFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAg
IGNhc2UgQXJyYXk6OlVpbnQzMkFycmF5OgogICAgICAgICAgICAgaWYgKG5vZGUtPnNob3VsZFNw
ZWN1bGF0ZUludDMyKCkpCiAgICAgICAgICAgICAgICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKFNw
ZWNJbnQzMik7Ci0gICAgICAgICAgICBlbHNlIGlmIChlbmFibGVJbnQ1MigpICYmIG5vZGUtPnNo
b3VsZFNwZWN1bGF0ZU1hY2hpbmVJbnQoKSkKLSAgICAgICAgICAgICAgICBmb3JOb2RlKG5vZGUp
LnNldFR5cGUoU3BlY0ludDUyKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBm
b3JOb2RlKG5vZGUpLnNldFR5cGUoU3BlY0RvdWJsZSk7CiAgICAgICAgICAgICBicmVhazsKQEAg
LTkxMSw3ICs4NjMsNyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5
cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgIGNhc2UgQXJyYXlQ
dXNoOgogICAgICAgICBub2RlLT5zZXRDYW5FeGl0KHRydWUpOwogICAgICAgICBjbG9iYmVyV29y
bGQobm9kZS0+Y29kZU9yaWdpbiwgY2xvYmJlckxpbWl0KTsKLSAgICAgICAgZm9yTm9kZShub2Rl
KS5zZXRUeXBlKFNwZWNCeXRlY29kZU51bWJlcik7CisgICAgICAgIGZvck5vZGUobm9kZSkuc2V0
VHlwZShTcGVjTnVtYmVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICBjYXNl
IEFycmF5UG9wOgpAQCAtOTgyLDggKzkzNCw4IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxB
YnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAg
ICAgICAgIC8vIE5CLiBUaGUgbW9yZSBjYW5vbmljYWwgd2F5IG9mIHdyaXRpbmcgdGhpcyB3b3Vs
ZCBoYXZlIGJlZW46CiAgICAgICAgIC8vCiAgICAgICAgIC8vIGRlc3RpbmF0aW9uID0gc291cmNl
OwotICAgICAgICAvLyBpZiAoZGVzdGluYXRpb24ubV90eXBlICYgIShTcGVjRnVsbE51bWJlciB8
IFNwZWNTdHJpbmcgfCBTcGVjQm9vbGVhbikpIHsKLSAgICAgICAgLy8gICAgIGRlc3RpbmF0aW9u
LmZpbHRlcihTcGVjRnVsbE51bWJlciB8IFNwZWNTdHJpbmcgfCBTcGVjQm9vbGVhbik7CisgICAg
ICAgIC8vIGlmIChkZXN0aW5hdGlvbi5tX3R5cGUgJiAhKFNwZWNOdW1iZXIgfCBTcGVjU3RyaW5n
IHwgU3BlY0Jvb2xlYW4pKSB7CisgICAgICAgIC8vICAgICBkZXN0aW5hdGlvbi5maWx0ZXIoU3Bl
Y051bWJlciB8IFNwZWNTdHJpbmcgfCBTcGVjQm9vbGVhbik7CiAgICAgICAgIC8vICAgICBBYnN0
cmFjdFZhbHVlIHN0cmluZzsKICAgICAgICAgLy8gICAgIHN0cmluZy5zZXQodm0tPnN0cmluZ1N0
cnVjdHVyZSk7CiAgICAgICAgIC8vICAgICBkZXN0aW5hdGlvbi5tZXJnZShzdHJpbmcpOwpAQCAt
MTAwMyw3ICs5NTUsNyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5
cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICBjbG9iYmVy
V29ybGQobm9kZS0+Y29kZU9yaWdpbiwgY2xvYmJlckxpbWl0KTsKICAgICAgICAgCiAgICAgICAg
IFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBzb3VyY2UubV90eXBlOwotICAgICAgICBpZiAodHlwZSAm
IH4oU3BlY0Z1bGxOdW1iZXIgfCBTcGVjU3RyaW5nIHwgU3BlY0Jvb2xlYW4pKQorICAgICAgICBp
ZiAodHlwZSAmIH4oU3BlY051bWJlciB8IFNwZWNTdHJpbmcgfCBTcGVjQm9vbGVhbikpCiAgICAg
ICAgICAgICB0eXBlID0gKFNwZWNIZWFwVG9wICYgflNwZWNDZWxsKSB8IFNwZWNTdHJpbmc7CiAK
ICAgICAgICAgZGVzdGluYXRpb24uc2V0VHlwZSh0eXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0VmFsdWUuY3BwCmluZGV4IDM3MjE1YjJhOTI4ZGVhNmM1NjVk
Y2Q2NTY4Mjg2OWRiOTU3YTcxY2QuLjlmNjM0YTUyMGYxY2ZhOTdhMzNhNDI1ZTEyNWJlYjg3YmY3
OTA3N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RW
YWx1ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFZhbHVl
LmNwcApAQCAtNjcsOCArNjcsNiBAQCB2b2lkIEFic3RyYWN0VmFsdWU6OnNldChHcmFwaCYgZ3Jh
cGgsIEpTVmFsdWUgdmFsdWUpCiAgICAgfQogICAgICAgICAKICAgICBtX3R5cGUgPSBzcGVjdWxh
dGlvbkZyb21WYWx1ZSh2YWx1ZSk7Ci0gICAgaWYgKG1fdHlwZSA9PSBTcGVjSW50NTJBc0RvdWJs
ZSkKLSAgICAgICAgbV90eXBlID0gU3BlY0ludDUyOwogICAgIG1fdmFsdWUgPSB2YWx1ZTsKICAg
ICAgICAgCiAgICAgY2hlY2tDb25zaXN0ZW5jeSgpOwpAQCAtMjI5LDcgKzIyNyw2IEBAIEZpbHRy
YXRpb25SZXN1bHQgQWJzdHJhY3RWYWx1ZTo6bm9ybWFsaXplQ2xhcml0eSgpCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotI2lmICFBU1NFUlRfRElTQUJMRUQKIHZvaWQgQWJzdHJhY3RWYWx1ZTo6
Y2hlY2tDb25zaXN0ZW5jeSgpIGNvbnN0CiB7CiAgICAgaWYgKCEobV90eXBlICYgU3BlY0NlbGwp
KSB7CkBAIC0yNDEsMTkgKzIzOCwxNCBAQCB2b2lkIEFic3RyYWN0VmFsdWU6OmNoZWNrQ29uc2lz
dGVuY3koKSBjb25zdAogICAgIGlmIChpc0NsZWFyKCkpCiAgICAgICAgIEFTU0VSVCghbV92YWx1
ZSk7CiAgICAgCi0gICAgaWYgKCEhbV92YWx1ZSkgewotICAgICAgICBTcGVjdWxhdGVkVHlwZSB0
eXBlID0gbV90eXBlOwotICAgICAgICBpZiAodHlwZSAmIFNwZWNJbnQ1MikKLSAgICAgICAgICAg
IHR5cGUgfD0gU3BlY0ludDUyQXNEb3VibGU7Ci0gICAgICAgIEFTU0VSVChtZXJnZVNwZWN1bGF0
aW9ucyh0eXBlLCBzcGVjdWxhdGlvbkZyb21WYWx1ZShtX3ZhbHVlKSkgPT0gdHlwZSk7Ci0gICAg
fQorICAgIGlmICghIW1fdmFsdWUpCisgICAgICAgIEFTU0VSVChtZXJnZVNwZWN1bGF0aW9ucyht
X3R5cGUsIHNwZWN1bGF0aW9uRnJvbVZhbHVlKG1fdmFsdWUpKSA9PSBtX3R5cGUpOwogICAgIAog
ICAgIC8vIE5vdGUgdGhhdCBpdCdzIHBvc3NpYmxlIGZvciBhIHByZWRpY3Rpb24gbGlrZSAoRmlu
YWwsIFtdKS4gVGhpcyByZWFsbHkgbWVhbnMgdGhhdAogICAgIC8vIHRoZSB2YWx1ZSBpcyBib3R0
b20gYW5kIHRoYXQgYW55IGNvZGUgdGhhdCB1c2VzIHRoZSB2YWx1ZSBpcyB1bnJlYWNoYWJsZS4g
QnV0CiAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0byBnZXQgcGVkYW50aWMgYWJvdXQgdGhpcyBhcyBp
dCB3b3VsZCBvbmx5IGluY3JlYXNlIHRoZSBjb21wdXRhdGlvbmFsCiAgICAgLy8gY29tcGxleGl0
eSBvZiB0aGUgY29kZS4KIH0KLSNlbmRpZgogCiB2b2lkIEFic3RyYWN0VmFsdWU6OmR1bXAoUHJp
bnRTdHJlYW0mIG91dCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQWJzdHJhY3RWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdB
YnN0cmFjdFZhbHVlLmgKaW5kZXggZGIzMTNkMjQyOGEzNDhiNjZmYmUzOGMwNTRkODk5Mzc4NDUy
ZmYxMS4uZWMyZDJmYTU0ODk2ODcyMDY5M2JiNjdjNjVjZmI1YjU5NDUxMDEwYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFZhbHVlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFZhbHVlLmgKQEAgLTE4NSwxNiArMTg1
LDYgQEAgc3RydWN0IEFic3RyYWN0VmFsdWUgewogICAgICAgICBjaGVja0NvbnNpc3RlbmN5KCk7
CiAgICAgfQogICAgIAotICAgIGJvb2wgY291bGRCZVR5cGUoU3BlY3VsYXRlZFR5cGUgZGVzaXJl
ZFR5cGUpCi0gICAgewotICAgICAgICByZXR1cm4gISEobV90eXBlICYgZGVzaXJlZFR5cGUpOwot
ICAgIH0KLSAgICAKLSAgICBib29sIGlzVHlwZShTcGVjdWxhdGVkVHlwZSBkZXNpcmVkVHlwZSkK
LSAgICB7Ci0gICAgICAgIHJldHVybiAhKG1fdHlwZSAmIH5kZXNpcmVkVHlwZSk7Ci0gICAgfQot
ICAgIAogICAgIEZpbHRyYXRpb25SZXN1bHQgZmlsdGVyKEdyYXBoJiwgY29uc3QgU3RydWN0dXJl
U2V0Jik7CiAgICAgCiAgICAgRmlsdHJhdGlvblJlc3VsdCBmaWx0ZXJBcnJheU1vZGVzKEFycmF5
TW9kZXMgYXJyYXlNb2Rlcyk7CkBAIC0yMDMsNiArMTkzLDIyIEBAIHN0cnVjdCBBYnN0cmFjdFZh
bHVlIHsKICAgICAKICAgICBGaWx0cmF0aW9uUmVzdWx0IGZpbHRlckJ5VmFsdWUoSlNWYWx1ZSB2
YWx1ZSk7CiAgICAgCisgICAgYm9vbCB2YWxpZGF0ZVR5cGUoSlNWYWx1ZSB2YWx1ZSkgY29uc3QK
KyAgICB7CisgICAgICAgIGlmIChpc0hlYXBUb3AoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICAKKyAgICAgICAgaWYgKG1lcmdlU3BlY3VsYXRpb25zKG1fdHlwZSwgc3BlY3Vs
YXRpb25Gcm9tVmFsdWUodmFsdWUpKSAhPSBtX3R5cGUpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIAorICAgICAgICBpZiAodmFsdWUuaXNFbXB0eSgpKSB7CisgICAgICAgICAg
ICBBU1NFUlQobV90eXBlICYgU3BlY0VtcHR5KTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCiAg
ICAgYm9vbCB2YWxpZGF0ZShKU1ZhbHVlIHZhbHVlKSBjb25zdAogICAgIHsKICAgICAgICAgaWYg
KGlzSGVhcFRvcCgpKQpAQCAtMjQ1LDExICsyNTEsNyBAQCBzdHJ1Y3QgQWJzdHJhY3RWYWx1ZSB7
CiAgICAgICAgICAgICB8fCAhYXJyYXlNb2Rlc0FyZUNsZWFyT3JUb3AobV9hcnJheU1vZGVzKTsK
ICAgICB9CiAgICAgCi0jaWYgQVNTRVJUX0RJU0FCTEVECi0gICAgdm9pZCBjaGVja0NvbnNpc3Rl
bmN5KCkgY29uc3QgeyB9Ci0jZWxzZQogICAgIHZvaWQgY2hlY2tDb25zaXN0ZW5jeSgpIGNvbnN0
OwotI2VuZGlmCiAgICAgCiAgICAgdm9pZCBkdW1wSW5Db250ZXh0KFByaW50U3RyZWFtJiwgRHVt
cENvbnRleHQqKSBjb25zdDsKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKQEAg
LTM2MSwyOSArMzYzLDYgQEAgcHJpdmF0ZToKICAgICAgICAgbV9hcnJheU1vZGVzID0gQUxMX0FS
UkFZX01PREVTOwogICAgIH0KICAgICAKLSAgICBib29sIHZhbGlkYXRlVHlwZShKU1ZhbHVlIHZh
bHVlKSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKGlzSGVhcFRvcCgpKQotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgIAotICAgICAgICAvLyBDb25zdGFudCBmb2xkaW5nIGFsd2F5
cyByZXByZXNlbnRzIEludDUyJ3MgaW4gYSBkb3VibGUgKGkuZS4gSW50NTJBc0RvdWJsZSkuCi0g
ICAgICAgIC8vIFNvIHNwZWN1bGF0aW9uRnJvbVZhbHVlKHZhbHVlKSBmb3IgYW4gSW50NTIgdmFs
dWUgd2lsbCByZXR1cm4gSW50NTJBc0RvdWJsZSwKLSAgICAgICAgLy8gYW5kIHRoYXQncyBmaW5l
IC0gdGhlIHR5cGUgdmFsaWRhdGVzIGp1c3QgZmluZS4KLSAgICAgICAgU3BlY3VsYXRlZFR5cGUg
dHlwZSA9IG1fdHlwZTsKLSAgICAgICAgaWYgKHR5cGUgJiBTcGVjSW50NTIpCi0gICAgICAgICAg
ICB0eXBlIHw9IFNwZWNJbnQ1MkFzRG91YmxlOwotICAgICAgICAKLSAgICAgICAgaWYgKG1lcmdl
U3BlY3VsYXRpb25zKHR5cGUsIHNwZWN1bGF0aW9uRnJvbVZhbHVlKHZhbHVlKSkgIT0gdHlwZSkK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgCi0gICAgICAgIGlmICh2YWx1ZS5p
c0VtcHR5KCkpIHsKLSAgICAgICAgICAgIEFTU0VSVChtX3R5cGUgJiBTcGVjRW1wdHkpOwotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHJldHVy
biB0cnVlOwotICAgIH0KLSAgICAKICAgICB2b2lkIG1ha2VUb3AoU3BlY3VsYXRlZFR5cGUgdG9w
KQogICAgIHsKICAgICAgICAgbV90eXBlIHw9IHRvcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQXJyYXlNb2RlLmNwcAppbmRleCAyNzg1Y2Y0N2VhNzVhYjYwZDEzZmUyMGI5N2FkMDY3
MjI1NWNjZjAyLi42NTIxODRkYjcwNTk1YTY0ODAwNTFjNGQzNjFjMDczODliZjc2YjU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwCkBAIC0xNjMsMjEgKzE2
MywyMSBAQCBBcnJheU1vZGUgQXJyYXlNb2RlOjpyZWZpbmUoU3BlY3VsYXRlZFR5cGUgYmFzZSwg
U3BlY3VsYXRlZFR5cGUgaW5kZXgsIFNwZWN1bGF0ZQogICAgICAgICAgICAgcmV0dXJuIHdpdGhU
eXBlKEFycmF5OjpGb3JjZUV4aXQpOwogICAgICAgICBpZiAoaXNJbnQzMlNwZWN1bGF0aW9uKHZh
bHVlKSkKICAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZUFuZENvbnZlcnNpb24oQXJyYXk6Oklu
dDMyLCBBcnJheTo6Q29udmVydCk7Ci0gICAgICAgIGlmIChpc0Z1bGxOdW1iZXJTcGVjdWxhdGlv
bih2YWx1ZSkpCisgICAgICAgIGlmIChpc051bWJlclNwZWN1bGF0aW9uKHZhbHVlKSkKICAgICAg
ICAgICAgIHJldHVybiB3aXRoVHlwZUFuZENvbnZlcnNpb24oQXJyYXk6OkRvdWJsZSwgQXJyYXk6
OkNvbnZlcnQpOwogICAgICAgICByZXR1cm4gd2l0aFR5cGVBbmRDb252ZXJzaW9uKEFycmF5OjpD
b250aWd1b3VzLCBBcnJheTo6Q29udmVydCk7CiAgICAgICAgIAogICAgIGNhc2UgQXJyYXk6Oklu
dDMyOgogICAgICAgICBpZiAoIXZhbHVlIHx8IGlzSW50MzJTcGVjdWxhdGlvbih2YWx1ZSkpCiAg
ICAgICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgICAgIGlmIChpc0Z1bGxOdW1iZXJTcGVjdWxh
dGlvbih2YWx1ZSkpCisgICAgICAgIGlmIChpc051bWJlclNwZWN1bGF0aW9uKHZhbHVlKSkKICAg
ICAgICAgICAgIHJldHVybiB3aXRoVHlwZUFuZENvbnZlcnNpb24oQXJyYXk6OkRvdWJsZSwgQXJy
YXk6OkNvbnZlcnQpOwogICAgICAgICByZXR1cm4gd2l0aFR5cGVBbmRDb252ZXJzaW9uKEFycmF5
OjpDb250aWd1b3VzLCBBcnJheTo6Q29udmVydCk7CiAgICAgICAgIAogICAgIGNhc2UgQXJyYXk6
OkRvdWJsZToKICAgICAgICAgaWYgKGZsYWdzICYgTm9kZUJ5dGVjb2RlVXNlc0FzSW50KQogICAg
ICAgICAgICAgcmV0dXJuIHdpdGhUeXBlQW5kQ29udmVyc2lvbihBcnJheTo6Q29udGlndW91cywg
QXJyYXk6OlJhZ2VDb252ZXJ0KTsKLSAgICAgICAgaWYgKCF2YWx1ZSB8fCBpc0Z1bGxOdW1iZXJT
cGVjdWxhdGlvbih2YWx1ZSkpCisgICAgICAgIGlmICghdmFsdWUgfHwgaXNOdW1iZXJTcGVjdWxh
dGlvbih2YWx1ZSkpCiAgICAgICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgICAgIHJldHVybiB3
aXRoVHlwZUFuZENvbnZlcnNpb24oQXJyYXk6OkNvbnRpZ3VvdXMsIEFycmF5OjpDb252ZXJ0KTsK
ICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fzc2Vt
Ymx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBc3NlbWJseUhlbHBl
cnMuaAppbmRleCBiZTYxNWFkZTAwM2M2MjY1ZmNjMDhiYTQzY2FmNGEzOGRhODE1NWY0Li43YjEx
MDAyYTA1NTM0OGJhZWM5ZDFkMTQ0ZjdkNTljNmQzNWI4NzU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fzc2VtYmx5SGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQXNzZW1ibHlIZWxwZXJzLmgKQEAgLTI5MywyNCArMjkzLDYgQEAg
cHVibGljOgogICAgICAgICBtb3ZlNjRUb0RvdWJsZShncHIsIGZwcik7CiAgICAgICAgIHJldHVy
biBmcHI7CiAgICAgfQotICAgIAotICAgIHZvaWQgYm94SW50NTIoR1BSUmVnIHNvdXJjZSwgR1BS
UmVnIHRhcmdldCwgR1BSUmVnIHNjcmF0Y2gsIEZQUlJlZyBmcFNjcmF0Y2gpCi0gICAgewotICAg
ICAgICAvLyBJcyBpdCBhbiBpbnQzMj8KLSAgICAgICAgc2lnbkV4dGVuZDMyVG9QdHIoc291cmNl
LCBzY3JhdGNoKTsKLSAgICAgICAgSnVtcCBpc0ludDMyID0gYnJhbmNoNjQoRXF1YWwsIHNvdXJj
ZSwgc2NyYXRjaCk7Ci0gICAgICAgIAotICAgICAgICAvLyBOb3BlLCBpdCdzIG5vdCwgYnV0IHJl
Z1QwIGNvbnRhaW5zIHRoZSBpbnQ2NCB2YWx1ZS4KLSAgICAgICAgY29udmVydEludDY0VG9Eb3Vi
bGUoc291cmNlLCBmcFNjcmF0Y2gpOwotICAgICAgICBib3hEb3VibGUoZnBTY3JhdGNoLCB0YXJn
ZXQpOwotICAgICAgICBKdW1wIGRvbmUgPSBqdW1wKCk7Ci0gICAgICAgIAotICAgICAgICBpc0lu
dDMyLmxpbmsodGhpcyk7Ci0gICAgICAgIHplcm9FeHRlbmQzMlRvUHRyKHNvdXJjZSwgdGFyZ2V0
KTsKLSAgICAgICAgb3I2NChHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIHRhcmdldCk7
Ci0gICAgICAgIAotICAgICAgICBkb25lLmxpbmsodGhpcyk7Ci0gICAgfQogI2VuZGlmCiAKICNp
ZiBVU0UoSlNWQUxVRTMyXzY0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAppbmRleCAxODUyMWJkYWZhOGI4MGRjYTZjNTM4ZTQ5NGRlNmY3YjBi
OTJhYWY0Li43MDliN2U3ZGY3OWZiNjJmNjlmMDk4NDBmYTI2MTk0NzhlMjlkYWE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtODc0
LDE5ICs4NzQsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBVSW50MzJUb051bWJlcjoKICAg
ICAgICAgY2FzZSBBcml0aEFkZDoKICAgICAgICAgY2FzZSBBcml0aFN1YjoKKyAgICAgICAgY2Fz
ZSBBcml0aE5lZ2F0ZToKICAgICAgICAgY2FzZSBWYWx1ZUFkZDoKICAgICAgICAgY2FzZSBBcml0
aE1vZDogLy8gZm9yIEFyaXRoTW9kICJNYXlPdmVyZmxvdyIgbWVhbnMgd2UgdHJpZWQgdG8gZGl2
aWRlIGJ5IHplcm8sIG9yIHdlIHNhdyBkb3VibGUuCiAgICAgICAgICAgICBub2RlLT5tZXJnZUZs
YWdzKE5vZGVNYXlPdmVyZmxvdyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAot
ICAgICAgICBjYXNlIEFyaXRoTmVnYXRlOgotICAgICAgICAgICAgLy8gQ3VycmVudGx5IHdlIGNh
bid0IHRlbGwgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhIG5lZ2F0aW9uIG92ZXJmbG93aW5nCi0g
ICAgICAgICAgICAvLyAoaS5lLiAtKDEgPDwgMzEpKSBvciBnZW5lcmF0aW5nIG5lZ2F0aXZlIHpl
cm8gKGkuZS4gLTApLiBJZiBpdCB0b29rIHNsb3cKLSAgICAgICAgICAgIC8vIHBhdGggdGhlbiB3
ZSBhc3N1bWUgdGhhdCBpdCBkaWQgYm90aCBvZiB0aG9zZSB0aGluZ3MuCi0gICAgICAgICAgICBu
b2RlLT5tZXJnZUZsYWdzKE5vZGVNYXlPdmVyZmxvdyk7Ci0gICAgICAgICAgICBub2RlLT5tZXJn
ZUZsYWdzKE5vZGVNYXlOZWdaZXJvKTsKLSAgICAgICAgICAgIGJyZWFrOwotCiAgICAgICAgIGNh
c2UgQXJpdGhNdWw6CiAgICAgICAgICAgICBpZiAobV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxl
ZEJsb2NrLT5saWtlbHlUb1Rha2VEZWVwZXN0U2xvd0Nhc2UobV9jdXJyZW50SW5kZXgpCiAgICAg
ICAgICAgICAgICAgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0
ZShtX2N1cnJlbnRJbmRleCwgT3ZlcmZsb3cpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NTRVBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ1NFUGhhc2UuY3BwCmluZGV4IGNhOWExMjFiOGM5YWQzNjE1YWM5Yzg1OGFjZjcxOTAxMDcy
YzRmY2YuLjNjZWQ1MjgyZjM2NGMzMzk2ZGVhZDVhZjgxYWU3MzVhYzBmNmE5NzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3BwCkBAIC02Myw2ICs2MywyMSBAQCBw
dWJsaWM6CiAgICAgCiBwcml2YXRlOgogICAgIAorICAgIE5vZGUqIGNhbm9uaWNhbGl6ZShOb2Rl
KiBub2RlKQorICAgIHsKKyAgICAgICAgaWYgKCFub2RlKQorICAgICAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIAorICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBWYWx1ZVRvSW50MzIpCisgICAg
ICAgICAgICBub2RlID0gbm9kZS0+Y2hpbGQxKCkubm9kZSgpOworICAgICAgICAKKyAgICAgICAg
cmV0dXJuIG5vZGU7CisgICAgfQorICAgIE5vZGUqIGNhbm9uaWNhbGl6ZShFZGdlIGVkZ2UpCisg
ICAgeworICAgICAgICByZXR1cm4gY2Fub25pY2FsaXplKGVkZ2Uubm9kZSgpKTsKKyAgICB9Cisg
ICAgCiAgICAgdW5zaWduZWQgZW5kSW5kZXhGb3JQdXJlQ1NFKCkKICAgICB7CiAgICAgICAgIHVu
c2lnbmVkIHJlc3VsdCA9IG1fbGFzdFNlZW5bbV9jdXJyZW50Tm9kZS0+b3AoKV07CkBAIC03OSw5
ICs5NCw5IEBAIHByaXZhdGU6CiAKICAgICBOb2RlKiBwdXJlQ1NFKE5vZGUqIG5vZGUpCiAgICAg
ewotICAgICAgICBFZGdlIGNoaWxkMSA9IG5vZGUtPmNoaWxkMSgpOwotICAgICAgICBFZGdlIGNo
aWxkMiA9IG5vZGUtPmNoaWxkMigpOwotICAgICAgICBFZGdlIGNoaWxkMyA9IG5vZGUtPmNoaWxk
MygpOworICAgICAgICBOb2RlKiBjaGlsZDEgPSBjYW5vbmljYWxpemUobm9kZS0+Y2hpbGQxKCkp
OworICAgICAgICBOb2RlKiBjaGlsZDIgPSBjYW5vbmljYWxpemUobm9kZS0+Y2hpbGQyKCkpOwor
ICAgICAgICBOb2RlKiBjaGlsZDMgPSBjYW5vbmljYWxpemUobm9kZS0+Y2hpbGQzKCkpOwogICAg
ICAgICAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gZW5kSW5kZXhGb3JQdXJlQ1NFKCk7IGkt
LTspIHsKICAgICAgICAgICAgIE5vZGUqIG90aGVyTm9kZSA9IG1fY3VycmVudEJsb2NrLT5hdChp
KTsKQEAgLTk0LDE5ICsxMDksMTkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGlmIChub2RlLT5h
cml0aE5vZGVGbGFncygpICE9IG90aGVyTm9kZS0+YXJpdGhOb2RlRmxhZ3MoKSkKICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgRWRnZSBvdGhlckNo
aWxkID0gb3RoZXJOb2RlLT5jaGlsZDEoKTsKKyAgICAgICAgICAgIE5vZGUqIG90aGVyQ2hpbGQg
PSBjYW5vbmljYWxpemUob3RoZXJOb2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBpZiAoIW90
aGVyQ2hpbGQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG90aGVyTm9kZTsKICAgICAgICAgICAg
IGlmIChvdGhlckNoaWxkICE9IGNoaWxkMSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICAgIAotICAgICAgICAgICAgb3RoZXJDaGlsZCA9IG90aGVyTm9kZS0+Y2hpbGQyKCk7
CisgICAgICAgICAgICBvdGhlckNoaWxkID0gY2Fub25pY2FsaXplKG90aGVyTm9kZS0+Y2hpbGQy
KCkpOwogICAgICAgICAgICAgaWYgKCFvdGhlckNoaWxkKQogICAgICAgICAgICAgICAgIHJldHVy
biBvdGhlck5vZGU7CiAgICAgICAgICAgICBpZiAob3RoZXJDaGlsZCAhPSBjaGlsZDIpCiAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIG90aGVyQ2hp
bGQgPSBvdGhlck5vZGUtPmNoaWxkMygpOworICAgICAgICAgICAgb3RoZXJDaGlsZCA9IGNhbm9u
aWNhbGl6ZShvdGhlck5vZGUtPmNoaWxkMygpKTsKICAgICAgICAgICAgIGlmICghb3RoZXJDaGls
ZCkKICAgICAgICAgICAgICAgICByZXR1cm4gb3RoZXJOb2RlOwogICAgICAgICAgICAgaWYgKG90
aGVyQ2hpbGQgIT0gY2hpbGQzKQpAQCAtMzYyLDIxICszNzcsMjEgQEAgcHJpdmF0ZToKICAgICB7
CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG1faW5kZXhJbkJsb2NrOyBpLS07KSB7CiAgICAg
ICAgICAgICBOb2RlKiBub2RlID0gbV9jdXJyZW50QmxvY2stPmF0KGkpOwotICAgICAgICAgICAg
aWYgKG5vZGUgPT0gY2hpbGQxIHx8IG5vZGUgPT0gY2hpbGQyKSAKKyAgICAgICAgICAgIGlmIChu
b2RlID09IGNoaWxkMSB8fCBub2RlID09IGNhbm9uaWNhbGl6ZShjaGlsZDIpKSAKICAgICAgICAg
ICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgc3dpdGNoIChub2RlLT5vcCgpKSB7CiAgICAg
ICAgICAgICBjYXNlIEdldEJ5VmFsOgogICAgICAgICAgICAgICAgIGlmICghbV9ncmFwaC5ieVZh
bElzUHVyZShub2RlKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAg
ICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpID09IGNoaWxkMSAmJiBub2RlLT5jaGlsZDIoKSA9PSBj
aGlsZDIpCisgICAgICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpID09IGNoaWxkMSAmJiBj
YW5vbmljYWxpemUobm9kZS0+Y2hpbGQyKCkpID09IGNhbm9uaWNhbGl6ZShjaGlsZDIpKQogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIGNhc2UgUHV0QnlWYWw6CiAgICAgICAgICAgICBjYXNlIFB1dEJ5VmFsQWxpYXM6
IHsKICAgICAgICAgICAgICAgICBpZiAoIW1fZ3JhcGguYnlWYWxJc1B1cmUobm9kZSkpCiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgICAgIGlmIChtX2dyYXBoLnZh
ckFyZ0NoaWxkKG5vZGUsIDApID09IGNoaWxkMSAmJiBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUs
IDEpID09IGNoaWxkMikKKyAgICAgICAgICAgICAgICBpZiAobV9ncmFwaC52YXJBcmdDaGlsZChu
b2RlLCAwKSA9PSBjaGlsZDEgJiYgY2Fub25pY2FsaXplKG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9k
ZSwgMSkpID09IGNhbm9uaWNhbGl6ZShjaGlsZDIpKQogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAyKS5ub2RlKCk7CiAgICAgICAgICAgICAgICAg
Ly8gV2UgbXVzdCBhc3N1bWUgdGhhdCB0aGUgUHV0QnlWYWwgd2lsbCBjbG9iYmVyIHRoZSBsb2Nh
dGlvbiB3ZSdyZSBnZXR0aW5nIGZyb20uCiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFdlIGNh
biBkbyBiZXR0ZXI7IGlmIHdlIGtub3cgdGhhdCB0aGUgUHV0QnlWYWwgaXMgYWNjZXNzaW5nIGFu
IGFycmF5IG9mIGEKQEAgLTEwNzUsOCArMTA5MCw2IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2Ug
Q29tcGFyZUVxQ29uc3RhbnQ6CiAgICAgICAgIGNhc2UgVmFsdWVUb0ludDMyOgogICAgICAgICBj
YXNlIE1ha2VSb3BlOgotICAgICAgICBjYXNlIEludDUyVG9Eb3VibGU6Ci0gICAgICAgIGNhc2Ug
SW50NTJUb1ZhbHVlOgogICAgICAgICAgICAgaWYgKGNzZU1vZGUgPT0gU3RvcmVFbGltaW5hdGlv
bikKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIHNldFJlcGxhY2VtZW50KHB1
cmVDU0Uobm9kZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
bG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApp
bmRleCA1ZjE0ZTI0N2I1N2JiNzBkOGE3MTM4NTZmMmVkYWRhZTcxNDhiMGVlLi5lODJmZDcxODU3
MzQ1OGY4OGEzMTZlMWEyZmM3YWI2YzAyZWE3YzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtMTEyLDggKzExMiw2IEBAIHZvaWQgY2xvYmJlcml6ZShH
cmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIFJlYWRGdW5jdG9yJiByZWFkLCBXcml0ZUZ1bmN0b3Im
IHdyaXRlCiAgICAgY2FzZSBMb2dpY2FsTm90OgogICAgIGNhc2UgSW50MzJUb0RvdWJsZToKICAg
ICBjYXNlIEV4dHJhY3RPU1JFbnRyeUxvY2FsOgotICAgIGNhc2UgSW50NTJUb0RvdWJsZToKLSAg
ICBjYXNlIEludDUyVG9WYWx1ZToKICAgICAgICAgcmV0dXJuOwogICAgICAgICAKICAgICBjYXNl
IE1vdkhpbnRBbmRDaGVjazoKQEAgLTE4Miw3ICsxODAsNiBAQCB2b2lkIGNsb2JiZXJpemUoR3Jh
cGgmIGdyYXBoLCBOb2RlKiBub2RlLCBSZWFkRnVuY3RvciYgcmVhZCwgV3JpdGVGdW5jdG9yJiB3
cml0ZQogICAgICAgICBzd2l0Y2ggKG5vZGUtPmJpbmFyeVVzZUtpbmQoKSkgewogICAgICAgICBj
YXNlIEludDMyVXNlOgogICAgICAgICBjYXNlIE51bWJlclVzZToKLSAgICAgICAgY2FzZSBNYWNo
aW5lSW50VXNlOgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBjYXNlIFVudHlwZWRVc2U6
CiAgICAgICAgICAgICByZWFkKFdvcmxkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ29tbW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1v
bi5oCmluZGV4IGEwMTBkMWQzNzk0M2ZmZDY5NjYyZWVkZmE0MzM5MmE1ZDVmNGMzZTYuLjY4MTk5
YTg4NTI2MzYwNDBlM2RlMTJlZDJhMmU1ZWM4ZjA0Njg2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDb21tb24uaApAQCAtMTQzLDE1ICsxNDMsNiBAQCBpbmxpbmUgYm9vbCBlbmFibGVD
b25jdXJyZW50SklUKCkKICNlbmRpZgogfQogCi1pbmxpbmUgYm9vbCBlbmFibGVJbnQ1MigpCi17
Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbHNlCi0gICAgcmV0dXJu
IGZhbHNlOwotI2VuZGlmCi19Ci0KIGVudW0gU3BpbGxSZWdpc3RlcnNNb2RlIHsgTmVlZFRvU3Bp
bGwsIERvbnRTcGlsbCB9OwogCiBlbnVtIE5vUmVzdWx0VGFnIHsgTm9SZXN1bHQgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IGU4NjJkNjM0M2Mw
NjBjZDYxZGMxNTAwMTJlMzg0M2Y4YmQ4NzRlYzMuLmQwM2Y2M2U0MjI4NjdlYjAzNzEyN2NjMWY0
MzE4ZmNhNDExMDJhM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Rml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBo
YXNlLmNwcApAQCAtNjQsOSArNjQsNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgZml4dXBT
ZXRMb2NhbHNJbkJsb2NrKG1fZ3JhcGguYmxvY2soYmxvY2tJbmRleCkpOwogICAgICAgICB9CiAg
ICAgICAgIAotICAgICAgICBmb3IgKEJsb2NrSW5kZXggYmxvY2tJbmRleCA9IDA7IGJsb2NrSW5k
ZXggPCBtX2dyYXBoLm51bUJsb2NrcygpOyArK2Jsb2NrSW5kZXgpCi0gICAgICAgICAgICBmaXh1
cFVudHlwZWRTZXRMb2NhbHNJbkJsb2NrKG1fZ3JhcGguYmxvY2soYmxvY2tJbmRleCkpOwotICAg
ICAgICAKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC05NSw3ICs5Miw3IEBAIHBy
aXZhdGU6CiAgICAgICAgIHN3aXRjaCAob3ApIHsKICAgICAgICAgY2FzZSBTZXRMb2NhbDogewog
ICAgICAgICAgICAgLy8gVGhpcyBnZXRzIGhhbmRsZWQgYnkgZml4dXBTZXRMb2NhbHNJbkJsb2Nr
KCkuCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQml0QW5kOgpAQCAtMTI3LDExICsxMjQsNiBAQCBw
cml2YXRlOgogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgCi0gICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZU1hY2hp
bmVJbnQoKSkgewotICAgICAgICAgICAgICAgIGZpeEVkZ2U8TWFjaGluZUludFVzZT4obm9kZS0+
Y2hpbGQxKCkpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgCiAgICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZU51
bWJlcigpKSB7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxOdW1iZXJVc2U+KG5vZGUtPmNoaWxk
MSgpKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTIwNSwxMCArMTk3LDYgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgICAgICBmaXhFZGdlPEludDMyVXNlPihub2RlLT5jaGlsZDEoKSk7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAobV9n
cmFwaC5uZWdhdGVTaG91bGRTcGVjdWxhdGVNYWNoaW5lSW50KG5vZGUpKSB7Ci0gICAgICAgICAg
ICAgICAgZml4RWRnZTxNYWNoaW5lSW50VXNlPihub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9CiAgICAgICAgICAgICBmaXhFZGdlPE51bWJlclVz
ZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTIx
OSwxMSArMjA3LDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBmaXhFZGdlPEludDMyVXNl
Pihub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICBpZiAobV9ncmFwaC5tdWxTaG91bGRTcGVjdWxhdGVNYWNoaW5lSW50KG5v
ZGUpKSB7Ci0gICAgICAgICAgICAgICAgZml4RWRnZTxNYWNoaW5lSW50VXNlPihub2RlLT5jaGls
ZDEoKSk7Ci0gICAgICAgICAgICAgICAgZml4RWRnZTxNYWNoaW5lSW50VXNlPihub2RlLT5jaGls
ZDIoKSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9CiAgICAgICAgICAg
ICBmaXhFZGdlPE51bWJlclVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgZml4RWRn
ZTxOdW1iZXJVc2U+KG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzE3
LDEyICszMDAsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGZpeEVkZ2U8SW50MzJVc2U+
KG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGlmIChlbmFibGVJbnQ1MigpCi0gICAgICAgICAgICAgICAgJiYgTm9kZTo6
c2hvdWxkU3BlY3VsYXRlTWFjaGluZUludChub2RlLT5jaGlsZDEoKS5ub2RlKCksIG5vZGUtPmNo
aWxkMigpLm5vZGUoKSkpIHsKLSAgICAgICAgICAgICAgICBmaXhFZGdlPE1hY2hpbmVJbnRVc2U+
KG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgICAgICBmaXhFZGdlPE1hY2hpbmVJbnRVc2U+
KG5vZGUtPmNoaWxkMigpKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGlmIChOb2RlOjpzaG91bGRTcGVjdWxhdGVOdW1iZXIobm9kZS0+Y2hpbGQx
KCkubm9kZSgpLCBub2RlLT5jaGlsZDIoKS5ub2RlKCkpKSB7CiAgICAgICAgICAgICAgICAgZml4
RWRnZTxOdW1iZXJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgICAgICBmaXhFZGdl
PE51bWJlclVzZT4obm9kZS0+Y2hpbGQyKCkpOwpAQCAtMzc4LDEyICszNTUsNiBAQCBwcml2YXRl
OgogICAgICAgICAgICAgICAgIGZpeEVkZ2U8SW50MzJVc2U+KG5vZGUtPmNoaWxkMigpKTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChlbmFi
bGVJbnQ1MigpCi0gICAgICAgICAgICAgICAgJiYgTm9kZTo6c2hvdWxkU3BlY3VsYXRlTWFjaGlu
ZUludChub2RlLT5jaGlsZDEoKS5ub2RlKCksIG5vZGUtPmNoaWxkMigpLm5vZGUoKSkpIHsKLSAg
ICAgICAgICAgICAgICBmaXhFZGdlPE1hY2hpbmVJbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsKLSAg
ICAgICAgICAgICAgICBmaXhFZGdlPE1hY2hpbmVJbnRVc2U+KG5vZGUtPmNoaWxkMigpKTsKLSAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChOb2Rl
OjpzaG91bGRTcGVjdWxhdGVOdW1iZXIobm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBub2RlLT5jaGls
ZDIoKS5ub2RlKCkpKSB7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxOdW1iZXJVc2U+KG5vZGUt
PmNoaWxkMSgpKTsKICAgICAgICAgICAgICAgICBmaXhFZGdlPE51bWJlclVzZT4obm9kZS0+Y2hp
bGQyKCkpOwpAQCAtNTA1LDEwICs0NzYsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGZp
eEVkZ2U8S25vd25DZWxsVXNlPihjaGlsZDEpOwogICAgICAgICAgICAgICAgIGZpeEVkZ2U8SW50
MzJVc2U+KGNoaWxkMik7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxJbnQzMlVzZT4oY2hpbGQz
KTsKLSAgICAgICAgICAgICAgICBpZiAoY2hpbGQzLT5wcmVkaWN0aW9uKCkgJiBTcGVjSW50NTIp
Ci0gICAgICAgICAgICAgICAgICAgIGZpeEVkZ2U8TWFjaGluZUludFVzZT4oY2hpbGQzKTsKLSAg
ICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGZpeEVkZ2U8SW50MzJVc2U+
KGNoaWxkMyk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEFycmF5
OjpEb3VibGU6CiAgICAgICAgICAgICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KGNoaWxkMSk7
CkBAIC01MjYsOCArNDkzLDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBmaXhFZGdlPElu
dDMyVXNlPihjaGlsZDIpOwogICAgICAgICAgICAgICAgIGlmIChjaGlsZDMtPnNob3VsZFNwZWN1
bGF0ZUludDMyKCkpCiAgICAgICAgICAgICAgICAgICAgIGZpeEVkZ2U8SW50MzJVc2U+KGNoaWxk
Myk7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoY2hpbGQzLT5zaG91bGRTcGVjdWxhdGVNYWNo
aW5lSW50KCkpCi0gICAgICAgICAgICAgICAgICAgIGZpeEVkZ2U8TWFjaGluZUludFVzZT4oY2hp
bGQzKTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIGZpeEVkZ2U8
TnVtYmVyVXNlPihjaGlsZDMpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtODgyLDggKzg0
Nyw2IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgQ2hlY2tUaWVyVXBJbkxvb3A6CiAgICAgICAg
IGNhc2UgQ2hlY2tUaWVyVXBBdFJldHVybjoKICAgICAgICAgY2FzZSBDaGVja1RpZXJVcEFuZE9T
UkVudGVyOgotICAgICAgICBjYXNlIEludDUyVG9Eb3VibGU6Ci0gICAgICAgIGNhc2UgSW50NTJU
b1ZhbHVlOgogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAKQEAgLTEyMjYsOSArMTE4OSw2IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICBjYXNlIEZsdXNoZWRJbnQzMjoKICAgICAgICAgICAgICAgICBmaXhFZGdlPElu
dDMyVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICBjYXNlIEZsdXNoZWRJbnQ1MjoKLSAgICAgICAgICAgICAgICBmaXhFZGdlPE1hY2hpbmVJ
bnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIGNhc2UgRmx1c2hlZENlbGw6CiAgICAgICAgICAgICAgICAgZml4RWRnZTxDZWxsVXNlPihu
b2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xMjQzLDIzICsxMjAz
LDYgQEAgcHJpdmF0ZToKICAgICAgICAgbV9pbnNlcnRpb25TZXQuZXhlY3V0ZShibG9jayk7CiAg
ICAgfQogICAgIAotICAgIHZvaWQgZml4dXBVbnR5cGVkU2V0TG9jYWxzSW5CbG9jayhCYXNpY0Js
b2NrKiBibG9jaykKLSAgICB7Ci0gICAgICAgIGlmICghYmxvY2spCi0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIEFTU0VSVChibG9jay0+aXNSZWFjaGFibGUpOwotICAgICAgICBtX2Jsb2Nr
ID0gYmxvY2s7Ci0gICAgICAgIGZvciAobV9pbmRleEluQmxvY2sgPSAwOyBtX2luZGV4SW5CbG9j
ayA8IGJsb2NrLT5zaXplKCk7ICsrbV9pbmRleEluQmxvY2spIHsKLSAgICAgICAgICAgIE5vZGUq
IG5vZGUgPSBtX2N1cnJlbnROb2RlID0gYmxvY2stPmF0KG1faW5kZXhJbkJsb2NrKTsKLSAgICAg
ICAgICAgIGlmIChub2RlLT5vcCgpICE9IFNldExvY2FsKQotICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2lu
ZCgpID09IFVudHlwZWRVc2UpCi0gICAgICAgICAgICAgICAgZml4RWRnZTxVbnR5cGVkVXNlPihu
b2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgIH0KLSAgICAgICAgbV9pbnNlcnRpb25TZXQuZXhlY3V0
ZShibG9jayk7Ci0gICAgfQotICAgIAogICAgIE5vZGUqIGNoZWNrQXJyYXkoQXJyYXlNb2RlIGFy
cmF5TW9kZSwgY29uc3QgQ29kZU9yaWdpbiYgY29kZU9yaWdpbiwgTm9kZSogYXJyYXksIE5vZGUq
IGluZGV4LCBib29sICgqc3RvcmFnZUNoZWNrKShjb25zdCBBcnJheU1vZGUmKSA9IGNhbkNTRVN0
b3JhZ2UpCiAgICAgewogICAgICAgICBBU1NFUlQoYXJyYXlNb2RlLmlzU3BlY2lmaWMoKSk7CkBA
IC0xMzYxLDkgKzEzMDQsNiBAQCBwcml2YXRlOgogICAgICAgICBpZiAobm9kZS0+b3AoKSAhPSBH
ZXRMb2NhbCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgCi0gICAgICAgIC8vIEZJWE1F
OiBUaGUgd2F5IHRoaXMgdXNlcyBhbHdheXNVbmJveFNpbXBsZVByaW1pdGl2ZXMoKSBpcyBzdXNw
aWNpb3VzLgotICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTIxNTE4Ci0gICAgICAgIAogICAgICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEqIHZhcmlhYmxl
ID0gbm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCk7CiAgICAgICAgIHN3aXRjaCAodXNlS2luZCkg
ewogICAgICAgICBjYXNlIEludDMyVXNlOgpAQCAtMTM4MSwxMCArMTMyMSw2IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICAgICAgfHwgaXNCb29sZWFuU3BlY3VsYXRpb24odmFyaWFibGUtPnByZWRp
Y3Rpb24oKSkpCiAgICAgICAgICAgICAgICAgbV9wcm9maXRhYmlsaXR5Q2hhbmdlZCB8PSB2YXJp
YWJsZS0+bWVyZ2VJc1Byb2ZpdGFibGVUb1VuYm94KHRydWUpOwogICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgTWFjaGluZUludFVzZToKLSAgICAgICAgICAgIGlmIChpc01hY2hpbmVJ
bnRTcGVjdWxhdGlvbih2YXJpYWJsZS0+cHJlZGljdGlvbigpKSkKLSAgICAgICAgICAgICAgICBt
X3Byb2ZpdGFiaWxpdHlDaGFuZ2VkIHw9IHZhcmlhYmxlLT5tZXJnZUlzUHJvZml0YWJsZVRvVW5i
b3godHJ1ZSk7Ci0gICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDZWxsVXNlOgogICAg
ICAgICBjYXNlIEtub3duQ2VsbFVzZToKICAgICAgICAgY2FzZSBPYmplY3RVc2U6CkBAIC0xNDEx
LDgwICsxMzQ3LDEyIEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8VXNlS2luZCB1c2VLaW5kPgog
ICAgIHZvaWQgZml4RWRnZShFZGdlJiBlZGdlLCBTcGVjdWxhdGlvbkRpcmVjdGlvbiBkaXJlY3Rp
b24gPSBCYWNrd2FyZFNwZWN1bGF0aW9uKQogICAgIHsKLSAgICAgICAgaWYgKGlzRG91YmxlKHVz
ZUtpbmQpKSB7Ci0gICAgICAgICAgICBpZiAoZWRnZS0+c2hvdWxkU3BlY3VsYXRlSW50MzJGb3JB
cml0aG1ldGljKCkpIHsKLSAgICAgICAgICAgICAgICBpbmplY3RJbnQzMlRvRG91YmxlTm9kZShl
ZGdlLCB1c2VLaW5kLCBkaXJlY3Rpb24pOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKGVuYWJsZUludDUyKCkgJiYg
ZWRnZS0+c2hvdWxkU3BlY3VsYXRlTWFjaGluZUludCgpKSB7Ci0gICAgICAgICAgICAgICAgLy8g
TWFrZSBhbGwgZG91YmxlIHVzZXMgb2YgaW50NTIgdmFsdWVzIGhhdmUgYW4gaW50ZXJtZWRpYXRl
IEludDUyVG9Eb3VibGUuCi0gICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBmb3IgdGhlIHNhbWUg
cmVhc29uIGFzIEludDUyVG9WYWx1ZSAoc2VlIGJlbG93KSBleGNlcHQgdGhhdAotICAgICAgICAg
ICAgICAgIC8vIEludDhUb0RvdWJsZSB3aWxsIGNvbnZlcnQgaW50NTIncyB0aGF0IGZpdCBpbiBh
biBpbnQzMiBpbnRvIGEgZG91YmxlCi0gICAgICAgICAgICAgICAgLy8gcmF0aGVyIHRoYW4gdHJ5
aW5nIHRvIGNyZWF0ZSBhIGJveGVkIGludDMyIGxpa2UgSW50NTJUb1ZhbHVlIGRvZXMuCi0gICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgTm9kZSogcmVzdWx0ID0gbV9pbnNlcnRpb25T
ZXQuaW5zZXJ0Tm9kZSgKLSAgICAgICAgICAgICAgICAgICAgbV9pbmRleEluQmxvY2ssIFNwZWNJ
bnQ1MkFzRG91YmxlLCBJbnQ1MlRvRG91YmxlLAotICAgICAgICAgICAgICAgICAgICBtX2N1cnJl
bnROb2RlLT5jb2RlT3JpZ2luLCBFZGdlKGVkZ2Uubm9kZSgpLCBOdW1iZXJVc2UpKTsKLSAgICAg
ICAgICAgICAgICBlZGdlID0gRWRnZShyZXN1bHQsIHVzZUtpbmQpOwotICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgaWYg
KGVuYWJsZUludDUyKCkgJiYgdXNlS2luZCAhPSBNYWNoaW5lSW50VXNlCi0gICAgICAgICAgICAm
JiBlZGdlLT5zaG91bGRTcGVjdWxhdGVNYWNoaW5lSW50KCkgJiYgIWVkZ2UtPnNob3VsZFNwZWN1
bGF0ZUludDMyKCkpIHsKLSAgICAgICAgICAgIC8vIFdlIG1ha2UgYWxsIG5vbi1pbnQ1MiB1c2Vz
IG9mIGludDUyIHZhbHVlcyBoYXZlIGFuIGludGVybWVkaWF0ZSBJbnQ1MlRvVmFsdWUKLSAgICAg
ICAgICAgIC8vIG5vZGUgdG8gZW5zdXJlIHRoYXQgd2UgaGFuZGxlIHRoaXMgcHJvcGVybHk6Ci0g
ICAgICAgICAgICAvLwotICAgICAgICAgICAgLy8gYTogU29tZUludDUyCi0gICAgICAgICAgICAv
LyBiOiBBcml0aEFkZChAYSwgLi4uKQotICAgICAgICAgICAgLy8gYzogQ2FsbCguLi4sIEBhKQot
ICAgICAgICAgICAgLy8gZDogQXJpdGhBZGQoQGEsIC4uLikKLSAgICAgICAgICAgIC8vCi0gICAg
ICAgICAgICAvLyBXaXRob3V0IGFuIGludGVybWVkaWF0ZSBub2RlIGFuZCBqdXN0IGxhYmVsaW5n
IHRoZSB1c2VzLCB3ZSB3aWxsIGdldDoKLSAgICAgICAgICAgIC8vCi0gICAgICAgICAgICAvLyBh
OiBTb21lSW50NTIKLSAgICAgICAgICAgIC8vIGI6IEFyaXRoQWRkKEludDUyOkBhLCAuLi4pCi0g
ICAgICAgICAgICAvLyBjOiBDYWxsKC4uLiwgVW50eXBlZDpAYSkKLSAgICAgICAgICAgIC8vIGQ6
IEFyaXRoQWRkKEludDUyOkBhLCAuLi4pCi0gICAgICAgICAgICAvLwotICAgICAgICAgICAgLy8g
QW5kIG5vdyB0aGUgYy0+VW50eXBlZDpAYSBlZGdlIHdpbGwgYm94IHRoZSB2YWx1ZSBvZiBAYSBp
bnRvIGEgZG91YmxlLiBUaGlzCi0gICAgICAgICAgICAvLyBpcyBiYWQsIGJlY2F1c2Ugbm93IHRo
ZSBkLT5JbnQ1MjpAYSBlZGdlIHdpbGwgZWl0aGVyIGhhdmUgdG8gZG8gZG91YmxlLXRvLWludAot
ICAgICAgICAgICAgLy8gY29udmVyc2lvbnMsIG9yIHdpbGwgaGF2ZSB0byBPU1IgZXhpdCB1bmNv
bmRpdGlvbmFsbHkuIEFsdGVybmF0aXZlbHkgd2UgY291bGQKLSAgICAgICAgICAgIC8vIGhhdmUg
dGhlIGMtPlVudHlwZWQ6QGEgZWRnZSBib3ggdGhlIHZhbHVlIGJ5IGNvcHlpbmcgcmF0aGVyIHRo
YW4gaW4tcGxhY2UuCi0gICAgICAgICAgICAvLyBCdXQgdGhlc2UgYm94aW5ncyBhcmUgYWxzbyBj
b3N0bHkgc28gdGhpcyB3b3VsZG4ndCBiZSBncmVhdC4KLSAgICAgICAgICAgIC8vCi0gICAgICAg
ICAgICAvLyBUaGUgc29sdXRpb24gd2UgdXNlIGlzIHRvIGFsd2F5cyBoYXZlIG5vbi1JbnQ1MiB1
c2VzIG9mIHByZWRpY3RlZCBJbnQ1MidzIHVzZQotICAgICAgICAgICAgLy8gYW4gaW50ZXJ2ZW5p
bmcgSW50NTJUb1ZhbHVlIG5vZGU6Ci0gICAgICAgICAgICAvLwotICAgICAgICAgICAgLy8gYTog
U29tZUludDUyCi0gICAgICAgICAgICAvLyBiOiBBcml0aEFkZChJbnQ1MjpAYSwgLi4uKQotICAg
ICAgICAgICAgLy8geDogSW50NTJUb1ZhbHVlKEludDUyOkBhKQotICAgICAgICAgICAgLy8gYzog
Q2FsbCguLi4sIFVudHlwZWQ6QHgpCi0gICAgICAgICAgICAvLyBkOiBBcml0aEFkZChJbnQ1MjpA
YSwgLi4uKQotICAgICAgICAgICAgLy8KLSAgICAgICAgICAgIC8vIE5vdGUgdGhhdCBldmVuIGlm
IHdlIGhhZCBtdWx0aXBsZSBub24taW50NTIgdXNlcyBvZiBAYSwgdGhlIG11bHRpcGxlCi0gICAg
ICAgICAgICAvLyBJbnQ1MlRvVmFsdWUncyB3b3VsZCBnZXQgQ1NFJ2QgdG9nZXRoZXIuIFNvIHRo
ZSBib3hpbmcgd291bGQgb25seSBoYXBwZW4gb25jZS4KLSAgICAgICAgICAgIC8vIEF0IHRoZSBz
YW1lIHRpbWUsIEBhIHdvdWxkIGNvbnRpbnVlIHRvIGJlIHJlcHJlc2VudGVkIGFzIGEgbmF0aXZl
IGludDUyLgotICAgICAgICAgICAgLy8KLSAgICAgICAgICAgIC8vIEFuIGFsdGVybmF0aXZlIHdv
dWxkIGhhdmUgYmVlbiB0byBpbnNlcnQgVG9OYXRpdmVJbnQ1MiBub2RlcyBvbiBpbnQ1MiB1c2Vz
IG9mCi0gICAgICAgICAgICAvLyBpbnQ1MidzLiBUaGlzIHdvdWxkIGhhdmUgaGFuZGxlZCB0aGUg
YWJvdmUgZXhhbXBsZSBidXQgd291bGQgZmFsbCBvdmVyIGZvcjoKLSAgICAgICAgICAgIC8vCi0g
ICAgICAgICAgICAvLyBhOiBTb21lSW50NTIKLSAgICAgICAgICAgIC8vIGI6IENhbGwoLi4uLCBA
YSkKLSAgICAgICAgICAgIC8vIGM6IEFyaXRoQWRkKEBhLCAuLi4pCi0gICAgICAgICAgICAvLwot
ICAgICAgICAgICAgLy8gQnV0IHRoZSBzb2x1dGlvbiB3ZSB1c2UgaGFuZGxlcyB0aGUgYWJvdmUg
Z3JhY2VmdWxseS4KLSAgICAgICAgICAgIAotICAgICAgICAgICAgTm9kZSogcmVzdWx0ID0gbV9p
bnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKLSAgICAgICAgICAgICAgICBtX2luZGV4SW5CbG9jaywg
U3BlY0ludDUyLCBJbnQ1MlRvVmFsdWUsCi0gICAgICAgICAgICAgICAgbV9jdXJyZW50Tm9kZS0+
Y29kZU9yaWdpbiwgRWRnZShlZGdlLm5vZGUoKSwgVW50eXBlZFVzZSkpOwotICAgICAgICAgICAg
ZWRnZSA9IEVkZ2UocmVzdWx0LCB1c2VLaW5kKTsKKyAgICAgICAgaWYgKGlzRG91YmxlKHVzZUtp
bmQpICYmIGVkZ2UtPnNob3VsZFNwZWN1bGF0ZUludDMyRm9yQXJpdGhtZXRpYygpKSB7CisgICAg
ICAgICAgICBpbmplY3RJbnQzMlRvRG91YmxlTm9kZShlZGdlLCB1c2VLaW5kLCBkaXJlY3Rpb24p
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBvYnNl
cnZlVXNlS2luZE9uTm9kZTx1c2VLaW5kPihlZGdlLm5vZGUoKSk7Ci0gICAgICAgIAogICAgICAg
ICBlZGdlLnNldFVzZUtpbmQodXNlS2luZCk7CiAgICAgfQogICAgIApAQCAtMTUxMCw3ICsxMzc4
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGluamVjdEludDMyVG9Eb3VibGVOb2RlKEVkZ2UmIGVk
Z2UsIFVzZUtpbmQgdXNlS2luZCA9IE51bWJlclVzZSwgU3BlY3VsYXRpb25EaXJlY3Rpb24gZGly
ZWN0aW9uID0gQmFja3dhcmRTcGVjdWxhdGlvbikKICAgICB7CiAgICAgICAgIE5vZGUqIHJlc3Vs
dCA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCi0gICAgICAgICAgICBtX2luZGV4SW5CbG9j
aywgU3BlY0ludDUyQXNEb3VibGUsIEludDMyVG9Eb3VibGUsCisgICAgICAgICAgICBtX2luZGV4
SW5CbG9jaywgU3BlY0ludDQ4LCBJbnQzMlRvRG91YmxlLAogICAgICAgICAgICAgbV9jdXJyZW50
Tm9kZS0+Y29kZU9yaWdpbiwgRWRnZShlZGdlLm5vZGUoKSwgTnVtYmVyVXNlKSk7CiAgICAgICAg
IGlmIChkaXJlY3Rpb24gPT0gRm9yd2FyZFNwZWN1bGF0aW9uKQogICAgICAgICAgICAgcmVzdWx0
LT5tZXJnZUZsYWdzKE5vZGVFeGl0c0ZvcndhcmQpOwpAQCAtMTU2NiwyMCArMTQzNCwxMyBAQCBw
cml2YXRlOgogICAgIGJvb2wgYXR0ZW1wdFRvTWFrZUludGVnZXJBZGQoTm9kZSogbm9kZSkKICAg
ICB7CiAgICAgICAgIEFkZFNwZWN1bGF0aW9uTW9kZSBtb2RlID0gbV9ncmFwaC5hZGRTcGVjdWxh
dGlvbk1vZGUobm9kZSk7Ci0gICAgICAgIGlmIChtb2RlICE9IERvbnRTcGVjdWxhdGVJbnQzMikg
ewotICAgICAgICAgICAgdHJ1bmNhdGVDb25zdGFudHNJZk5lY2Vzc2FyeShub2RlLCBtb2RlKTsK
LSAgICAgICAgICAgIGZpeEVkZ2U8SW50MzJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAg
ICAgIGZpeEVkZ2U8SW50MzJVc2U+KG5vZGUtPmNoaWxkMigpKTsKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZiAobV9ncmFwaC5hZGRTaG91
bGRTcGVjdWxhdGVNYWNoaW5lSW50KG5vZGUpKSB7Ci0gICAgICAgICAgICBmaXhFZGdlPE1hY2hp
bmVJbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgIGZpeEVkZ2U8TWFjaGluZUlu
dFVzZT4obm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAg
IH0KKyAgICAgICAgaWYgKG1vZGUgPT0gRG9udFNwZWN1bGF0ZUludDMyKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICAKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB0
cnVuY2F0ZUNvbnN0YW50c0lmTmVjZXNzYXJ5KG5vZGUsIG1vZGUpOworICAgICAgICBmaXhFZGdl
PEludDMyVXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIGZpeEVkZ2U8SW50MzJVc2U+KG5v
ZGUtPmNoaWxkMigpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIAogICAgIGJv
b2wgYXR0ZW1wdFRvTWFrZUdldEFycmF5TGVuZ3RoKE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZsdXNoRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRmx1c2hGb3JtYXQuY3BwCmluZGV4IDhlM2YyNmJlYjFjZjNmNThh
MWVjNzQwZGFlM2U0MDQ4NGZhNjAzZTUuLjU0ZDhlNmI4OWJjMDk0ZTUyOTFhNDRkNTFhY2U5MTFm
MGNhN2E3NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmx1c2hG
b3JtYXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmx1c2hGb3JtYXQu
Y3BwCkBAIC00MSw5ICs0MSw2IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0
LCBGbHVzaEZvcm1hdCBmb3JtYXQpCiAgICAgY2FzZSBGbHVzaGVkSW50MzI6CiAgICAgICAgIG91
dC5wcmludCgiRmx1c2hlZEludDMyIik7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIEZsdXNo
ZWRJbnQ1MjoKLSAgICAgICAgb3V0LnByaW50KCJGbHVzaGVkSW50NTIiKTsKLSAgICAgICAgcmV0
dXJuOwogICAgIGNhc2UgRmx1c2hlZERvdWJsZToKICAgICAgICAgb3V0LnByaW50KCJGbHVzaGVk
RG91YmxlIik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRmx1c2hGb3JtYXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Rmx1c2hGb3JtYXQuaAppbmRleCBjYmNlYThkZDBjNDE0MGQwZjU4OTUyZjE5ZDAyYjI2ZTNkNDRh
MTAwLi43Yzc1NDA2M2JjNjJkNTkxYTM4YWZjOTFkZmI1OWQ1MGY2MWVlZWRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZsdXNoRm9ybWF0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGbHVzaEZvcm1hdC5oCkBAIC00MCw3ICs0MCw2IEBAIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIGVudW0gRmx1c2hGb3JtYXQgewogICAgIERl
YWRGbHVzaCwKICAgICBGbHVzaGVkSW50MzIsCi0gICAgRmx1c2hlZEludDUyLAogICAgIEZsdXNo
ZWREb3VibGUsCiAgICAgRmx1c2hlZENlbGwsCiAgICAgRmx1c2hlZEJvb2xlYW4sCkBAIC01Niw4
ICs1NSw2IEBAIGlubGluZSBOb2RlRmxhZ3MgcmVzdWx0Rm9yKEZsdXNoRm9ybWF0IGZvcm1hdCkK
ICAgICAgICAgcmV0dXJuIE5vZGVSZXN1bHRKUzsKICAgICBjYXNlIEZsdXNoZWRJbnQzMjoKICAg
ICAgICAgcmV0dXJuIE5vZGVSZXN1bHRJbnQzMjsKLSAgICBjYXNlIEZsdXNoZWRJbnQ1MjoKLSAg
ICAgICAgcmV0dXJuIE5vZGVSZXN1bHRJbnQ1MjsKICAgICBjYXNlIEZsdXNoZWREb3VibGU6CiAg
ICAgICAgIHJldHVybiBOb2RlUmVzdWx0TnVtYmVyOwogICAgIGNhc2UgRmx1c2hlZEJvb2xlYW46
CkBAIC03Nyw4ICs3NCw2IEBAIGlubGluZSBVc2VLaW5kIHVzZUtpbmRGb3IoRmx1c2hGb3JtYXQg
Zm9ybWF0KQogICAgICAgICByZXR1cm4gQ2VsbFVzZTsKICAgICBjYXNlIEZsdXNoZWRJbnQzMjoK
ICAgICAgICAgcmV0dXJuIEludDMyVXNlOwotICAgIGNhc2UgRmx1c2hlZEludDUyOgotICAgICAg
ICByZXR1cm4gTWFjaGluZUludFVzZTsKICAgICBjYXNlIEZsdXNoZWREb3VibGU6CiAgICAgICAg
IHJldHVybiBOdW1iZXJVc2U7CiAgICAgY2FzZSBGbHVzaGVkQm9vbGVhbjoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR2VuZXJhdGlvbkluZm8uaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHR2VuZXJhdGlvbkluZm8uaAppbmRleCBlMzMzMGZhM2I0NTY3
Njc1ZjQ4YzQwMDdmNTg1MjE1N2EzOGUyNGVmLi42OGIyOTliMjU2MTg3NTVkMzAwOGYxMDk1NDBk
NDQxY2Q4MjFiNWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dl
bmVyYXRpb25JbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHZW5lcmF0
aW9uSW5mby5oCkBAIC04NiwxOSArODYsNiBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBpbml0
R1BSKG5vZGUsIHVzZUNvdW50LCBncHIsIERhdGFGb3JtYXRJbnQzMik7CiAgICAgfQotICAgIHZv
aWQgaW5pdEludDUyKE5vZGUqIG5vZGUsIHVpbnQzMl90IHVzZUNvdW50LCBHUFJSZWcgcmVnLCBE
YXRhRm9ybWF0IGZvcm1hdCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChmb3JtYXQgPT0gRGF0YUZv
cm1hdEludDUyIHx8IGZvcm1hdCA9PSBEYXRhRm9ybWF0U3RyaWN0SW50NTIpOwotICAgICAgICBp
bml0R1BSKG5vZGUsIHVzZUNvdW50LCByZWcsIGZvcm1hdCk7Ci0gICAgfQotICAgIHZvaWQgaW5p
dEludDUyKE5vZGUqIG5vZGUsIHVpbnQzMl90IHVzZUNvdW50LCBHUFJSZWcgcmVnKQotICAgIHsK
LSAgICAgICAgaW5pdEdQUihub2RlLCB1c2VDb3VudCwgcmVnLCBEYXRhRm9ybWF0SW50NTIpOwot
ICAgIH0KLSAgICB2b2lkIGluaXRTdHJpY3RJbnQ1MihOb2RlKiBub2RlLCB1aW50MzJfdCB1c2VD
b3VudCwgR1BSUmVnIHJlZykKLSAgICB7Ci0gICAgICAgIGluaXRHUFIobm9kZSwgdXNlQ291bnQs
IHJlZywgRGF0YUZvcm1hdFN0cmljdEludDUyKTsKLSAgICB9CiAjaWYgVVNFKEpTVkFMVUU2NCkK
ICAgICB2b2lkIGluaXRKU1ZhbHVlKE5vZGUqIG5vZGUsIHVpbnQzMl90IHVzZUNvdW50LCBHUFJS
ZWcgZ3ByLCBEYXRhRm9ybWF0IGZvcm1hdCA9IERhdGFGb3JtYXRKUykKICAgICB7CkBAIC0yMDAs
MTEgKzE4Nyw2IEBAIHB1YmxpYzoKICAgICAvLyBHZXQgdGhlIGZvcm1hdCBvZiB0aGUgdmFsdWUg
YXMgaXQgaXMgc3BpbGxlZCBpbiB0aGUgSlNTdGFjayAob3IgJ25vbmUnKS4KICAgICBEYXRhRm9y
bWF0IHNwaWxsRm9ybWF0KCkgeyByZXR1cm4gbV9zcGlsbEZvcm1hdDsgfQogICAgIAotICAgIGJv
b2wgaXNGb3JtYXQoRGF0YUZvcm1hdCBleHBlY3RlZEZvcm1hdCkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiByZWdpc3RlckZvcm1hdCgpID09IGV4cGVjdGVkRm9ybWF0IHx8IHNwaWxsRm9ybWF0KCkg
PT0gZXhwZWN0ZWRGb3JtYXQ7Ci0gICAgfQotICAgIAogICAgIGJvb2wgaXNKU0Zvcm1hdChEYXRh
Rm9ybWF0IGV4cGVjdGVkRm9ybWF0KQogICAgIHsKICAgICAgICAgcmV0dXJuIEpTQzo6aXNKU0Zv
cm1hdChyZWdpc3RlckZvcm1hdCgpLCBleHBlY3RlZEZvcm1hdCkgfHwgSlNDOjppc0pTRm9ybWF0
KHNwaWxsRm9ybWF0KCksIGV4cGVjdGVkRm9ybWF0KTsKQEAgLTIxNSwxNiArMTk3LDYgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gaXNKU0Zvcm1hdChEYXRhRm9ybWF0SlNJbnQzMik7CiAgICAg
fQogICAgIAotICAgIGJvb2wgaXNJbnQ1MigpCi0gICAgewotICAgICAgICByZXR1cm4gaXNGb3Jt
YXQoRGF0YUZvcm1hdEludDUyKTsKLSAgICB9Ci0gICAgCi0gICAgYm9vbCBpc1N0cmljdEludDUy
KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBpc0Zvcm1hdChEYXRhRm9ybWF0U3RyaWN0SW50NTIp
OwotICAgIH0KLSAgICAKICAgICBib29sIGlzSlNEb3VibGUoKQogICAgIHsKICAgICAgICAgcmV0
dXJuIGlzSlNGb3JtYXQoRGF0YUZvcm1hdEpTRG91YmxlKTsKQEAgLTM0MiwxOSArMzE0LDYgQEAg
cHVibGljOgogICAgIHsKICAgICAgICAgZmlsbEdQUihzdHJlYW0sIGdwciwgRGF0YUZvcm1hdElu
dDMyKTsKICAgICB9Ci0gICAgdm9pZCBmaWxsSW50NTIoVmFyaWFibGVFdmVudFN0cmVhbSYgc3Ry
ZWFtLCBHUFJSZWcgZ3ByLCBEYXRhRm9ybWF0IGZvcm1hdCkKLSAgICB7Ci0gICAgICAgIEFTU0VS
VChmb3JtYXQgPT0gRGF0YUZvcm1hdEludDUyIHx8IGZvcm1hdCA9PSBEYXRhRm9ybWF0U3RyaWN0
SW50NTIpOwotICAgICAgICBmaWxsR1BSKHN0cmVhbSwgZ3ByLCBmb3JtYXQpOwotICAgIH0KLSAg
ICB2b2lkIGZpbGxJbnQ1MihWYXJpYWJsZUV2ZW50U3RyZWFtJiBzdHJlYW0sIEdQUlJlZyBncHIp
Ci0gICAgewotICAgICAgICBmaWxsR1BSKHN0cmVhbSwgZ3ByLCBEYXRhRm9ybWF0SW50NTIpOwot
ICAgIH0KLSAgICB2b2lkIGZpbGxTdHJpY3RJbnQ1MihWYXJpYWJsZUV2ZW50U3RyZWFtJiBzdHJl
YW0sIEdQUlJlZyBncHIpCi0gICAgewotICAgICAgICBmaWxsR1BSKHN0cmVhbSwgZ3ByLCBEYXRh
Rm9ybWF0U3RyaWN0SW50NTIpOwotICAgIH0KICAgICB2b2lkIGZpbGxCb29sZWFuKFZhcmlhYmxl
RXZlbnRTdHJlYW0mIHN0cmVhbSwgR1BSUmVnIGdwcikKICAgICB7CiAgICAgICAgIGZpbGxHUFIo
c3RyZWFtLCBncHIsIERhdGFGb3JtYXRCb29sZWFuKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdHcmFwaC5jcHAKaW5kZXggZmQzOTA4YzM1ODdmNDhkZDdmZGQyNjRjMjkyMjYyNjU2MGU3NGYw
Yy4uZjA4YmJhMTlhMzQyMTQ1MzRiNzRjMmNmYjdjMmI3NzAxMTUwZTcwZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKQEAgLTIzNiwxNCArMjM2LDE0IEBAIHZvaWQgR3Jh
cGg6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCwgY29uc3QgY2hhciogcHJlZml4LCBOb2RlKiBub2Rl
LCBEdW1wQ29udGV4dCoKICAgICAgICAgaWYgKG9wZXJhbmRJc0FyZ3VtZW50KG9wZXJhbmQpKQog
ICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiYXJnIiwgb3BlcmFuZFRvQXJndW1lbnQob3Bl
cmFuZCksICIoIiwgVmFyaWFibGVBY2Nlc3NEYXRhRHVtcCgqdGhpcywgdmFyaWFibGVBY2Nlc3NE
YXRhKSwgIikiKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAi
bG9jIiwgb3BlcmFuZFRvTG9jYWwob3BlcmFuZCksICIoIiwgVmFyaWFibGVBY2Nlc3NEYXRhRHVt
cCgqdGhpcywgdmFyaWFibGVBY2Nlc3NEYXRhKSwgIikiKTsKKyAgICAgICAgICAgIG91dC5wcmlu
dChjb21tYSwgInIiLCBvcGVyYW5kLCAiKCIsIFZhcmlhYmxlQWNjZXNzRGF0YUR1bXAoKnRoaXMs
IHZhcmlhYmxlQWNjZXNzRGF0YSksICIpIik7CiAgICAgfQogICAgIGlmIChub2RlLT5oYXNVbmxp
bmtlZExvY2FsKCkpIHsKICAgICAgICAgaW50IG9wZXJhbmQgPSBub2RlLT51bmxpbmtlZExvY2Fs
KCk7CiAgICAgICAgIGlmIChvcGVyYW5kSXNBcmd1bWVudChvcGVyYW5kKSkKICAgICAgICAgICAg
IG91dC5wcmludChjb21tYSwgImFyZyIsIG9wZXJhbmRUb0FyZ3VtZW50KG9wZXJhbmQpKTsKICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAibG9jIiwgb3BlcmFuZFRv
TG9jYWwob3BlcmFuZCkpOworICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiciIsIG9wZXJh
bmQpOwogICAgIH0KICAgICBpZiAobm9kZS0+aGFzQ29uc3RhbnRCdWZmZXIoKSkgewogICAgICAg
ICBvdXQucHJpbnQoY29tbWEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdHcmFwaC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCmluZGV4
IGRiYzE3MjExNGEzYjZjMDY5YWY3Y2FiODNlYTIyZmRiODQxMTUwZjEuLjI0ODUzZjE4OTQxZWU2
YTE1MWI4MDBlMDNlOWIxOTI0OTg5Y2I0OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHR3JhcGguaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dy
YXBoLmgKQEAgLTIzMCwxOSArMjMwLDE2IEBAIHB1YmxpYzoKICAgICAKICAgICBib29sIGFkZFNo
b3VsZFNwZWN1bGF0ZU1hY2hpbmVJbnQoTm9kZSogYWRkKQogICAgIHsKLSAgICAgICAgaWYgKCFl
bmFibGVJbnQ1MigpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAKICAgICAg
ICAgTm9kZSogbGVmdCA9IGFkZC0+Y2hpbGQxKCkubm9kZSgpOwogICAgICAgICBOb2RlKiByaWdo
dCA9IGFkZC0+Y2hpbGQyKCkubm9kZSgpOwogCiAgICAgICAgIGJvb2wgc3BlY3VsYXRpb247CiAg
ICAgICAgIGlmIChhZGQtPm9wKCkgPT0gVmFsdWVBZGQpCi0gICAgICAgICAgICBzcGVjdWxhdGlv
biA9IE5vZGU6OnNob3VsZFNwZWN1bGF0ZU1hY2hpbmVJbnQobGVmdCwgcmlnaHQpOworICAgICAg
ICAgICAgc3BlY3VsYXRpb24gPSBOb2RlOjpzaG91bGRTcGVjdWxhdGVNYWNoaW5lSW50RXhwZWN0
aW5nRGVmaW5lZChsZWZ0LCByaWdodCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHNwZWN1
bGF0aW9uID0gTm9kZTo6c2hvdWxkU3BlY3VsYXRlTWFjaGluZUludChsZWZ0LCByaWdodCk7Cisg
ICAgICAgICAgICBzcGVjdWxhdGlvbiA9IE5vZGU6OnNob3VsZFNwZWN1bGF0ZU1hY2hpbmVJbnRG
b3JBcml0aG1ldGljKGxlZnQsIHJpZ2h0KTsKIAotICAgICAgICByZXR1cm4gc3BlY3VsYXRpb24g
JiYgIWhhc0V4aXRTaXRlKGFkZCwgSW50NTJPdmVyZmxvdyk7CisgICAgICAgIHJldHVybiBzcGVj
dWxhdGlvbiAmJiAhaGFzRXhpdFNpdGUoYWRkLCBJbnQ0OE92ZXJmbG93KTsKICAgICB9CiAgICAg
CiAgICAgYm9vbCBtdWxTaG91bGRTcGVjdWxhdGVJbnQzMihOb2RlKiBtdWwpCkBAIC0yNjAsMTUg
KzI1NywxMiBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQobXVsLT5vcCgpID09IEFy
aXRoTXVsKTsKICAgICAgICAgCi0gICAgICAgIGlmICghZW5hYmxlSW50NTIoKSkKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgCiAgICAgICAgIE5vZGUqIGxlZnQgPSBtdWwtPmNo
aWxkMSgpLm5vZGUoKTsKICAgICAgICAgTm9kZSogcmlnaHQgPSBtdWwtPmNoaWxkMigpLm5vZGUo
KTsKIAotICAgICAgICByZXR1cm4gTm9kZTo6c2hvdWxkU3BlY3VsYXRlTWFjaGluZUludChsZWZ0
LCByaWdodCkKLSAgICAgICAgICAgICYmIG11bC0+Y2FuU3BlY3VsYXRlSW50NTIoKQotICAgICAg
ICAgICAgJiYgIWhhc0V4aXRTaXRlKG11bCwgSW50NTJPdmVyZmxvdyk7CisgICAgICAgIHJldHVy
biBOb2RlOjpzaG91bGRTcGVjdWxhdGVNYWNoaW5lSW50Rm9yQXJpdGhtZXRpYyhsZWZ0LCByaWdo
dCkKKyAgICAgICAgICAgICYmIG11bC0+Y2FuU3BlY3VsYXRlSW50NDgoKQorICAgICAgICAgICAg
JiYgIWhhc0V4aXRTaXRlKG11bCwgSW50NDhPdmVyZmxvdyk7CiAgICAgfQogICAgIAogICAgIGJv
b2wgbmVnYXRlU2hvdWxkU3BlY3VsYXRlSW50MzIoTm9kZSogbmVnYXRlKQpAQCAtMjgwLDExICsy
NzQsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBuZWdhdGVTaG91bGRTcGVjdWxhdGVNYWNoaW5lSW50
KE5vZGUqIG5lZ2F0ZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChuZWdhdGUtPm9wKCkgPT0gQXJp
dGhOZWdhdGUpOwotICAgICAgICBpZiAoIWVuYWJsZUludDUyKCkpCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIHJldHVybiBuZWdhdGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxh
dGVNYWNoaW5lSW50KCkKLSAgICAgICAgICAgICYmICFoYXNFeGl0U2l0ZShuZWdhdGUsIEludDUy
T3ZlcmZsb3cpCi0gICAgICAgICAgICAmJiBuZWdhdGUtPmNhblNwZWN1bGF0ZUludDUyKCk7Cisg
ICAgICAgIHJldHVybiBuZWdhdGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVNYWNoaW5lSW50
Rm9yQXJpdGhtZXRpYygpCisgICAgICAgICAgICAmJiAhaGFzRXhpdFNpdGUobmVnYXRlLCBJbnQ0
OE92ZXJmbG93KQorICAgICAgICAgICAgJiYgbmVnYXRlLT5jYW5TcGVjdWxhdGVJbnQ0OCgpOwog
ICAgIH0KICAgICAKICAgICAvLyBIZWxwZXIgbWV0aG9kcyB0byBjaGVjayBub2RlcyBmb3IgY29u
c3RhbnRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNl
QWJzdHJhY3RTdGF0ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0luUGxhY2VB
YnN0cmFjdFN0YXRlLmNwcAppbmRleCBmOWY2Y2JlOTYzYTlkNzc0OTE1OGY5MGMxNWMzZWQ3NTI1
N2U2NTIxLi5hNWUzYWYyMzQwNzU1YzcwYWU1NjJmOTBiNGQwMjMxMWI5M2RmMzc0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRl
LmNwcApAQCAtMzEzLDEwICszMTMsMTAgQEAgYm9vbCBJblBsYWNlQWJzdHJhY3RTdGF0ZTo6bWVy
Z2VTdGF0ZUF0VGFpbChBYnN0cmFjdFZhbHVlJiBkZXN0aW5hdGlvbiwgQWJzdHJhY3QKICAgICAg
ICAgICAgIC8vIGJlZm9yZSBhbmQgYWZ0ZXIgc2V0dGluZyBpdC4KICAgICAgICAgICAgIHNvdXJj
ZSA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgaWYgKG5vZGUtPnZhcmlh
YmxlQWNjZXNzRGF0YSgpLT5mbHVzaEZvcm1hdCgpID09IEZsdXNoZWREb3VibGUpIHsKLSAgICAg
ICAgICAgICAgICBBU1NFUlQoIShzb3VyY2UubV90eXBlICYgflNwZWNGdWxsTnVtYmVyKSk7Ci0g
ICAgICAgICAgICAgICAgQVNTRVJUKCEhKHNvdXJjZS5tX3R5cGUgJiB+U3BlY0RvdWJsZSkgPT0g
ISEoc291cmNlLm1fdHlwZSAmIFNwZWNNYWNoaW5lSW50KSk7CisgICAgICAgICAgICAgICAgQVNT
RVJUKCEoc291cmNlLm1fdHlwZSAmIH5TcGVjTnVtYmVyKSk7CisgICAgICAgICAgICAgICAgQVNT
RVJUKCEhKHNvdXJjZS5tX3R5cGUgJiB+U3BlY0RvdWJsZSkgPT0gISEoc291cmNlLm1fdHlwZSAm
IFNwZWNJbnQzMikpOwogICAgICAgICAgICAgICAgIGlmICghKHNvdXJjZS5tX3R5cGUgJiB+U3Bl
Y0RvdWJsZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgc291cmNlLm1lcmdlKFNwZWNJbnQ1MkFz
RG91YmxlKTsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlLm1lcmdlKFNwZWNJbnQ0OEFzRG91
YmxlKTsKICAgICAgICAgICAgICAgICAgICAgc291cmNlLmZpbHRlcihTcGVjRG91YmxlKTsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0pJVENvZGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdKSVRDb2RlLmNwcAppbmRleCBhMGRiNWE0MTJlOTFhMDRhMjQwNWRjYTBiNmI4YmFmM2Q1ZmIy
MjYwLi5hM2YxZjM3N2MzZWU2MzlkOTY5MmZhNTJhMDI4MWU2ZjlhYmM0MTgyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5jcHAKQEAgLTEwMyw5ICsxMDMsNiBAQCB2b2lk
IEpJVENvZGU6OnJlY29uc3RydWN0KAogICAgICAgICBjYXNlIEFscmVhZHlJbkpTU3RhY2tBc1Vu
Ym94ZWRJbnQzMjoKICAgICAgICAgICAgIHZhbHVlID0ganNOdW1iZXIoZXhlYy0+cihvcGVyYW5k
KS51bmJveGVkSW50MzIoKSk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBBbHJl
YWR5SW5KU1N0YWNrQXNVbmJveGVkSW50NTI6Ci0gICAgICAgICAgICB2YWx1ZSA9IGpzTnVtYmVy
KGV4ZWMtPnIob3BlcmFuZCkudW5ib3hlZEludDUyKCkpOwotICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgQWxyZWFkeUluSlNTdGFja0FzVW5ib3hlZERvdWJsZToKICAgICAgICAgICAg
IHZhbHVlID0ganNEb3VibGVOdW1iZXIoZXhlYy0+cihvcGVyYW5kKS51bmJveGVkRG91YmxlKCkp
OwogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR01pbmlmaWVkTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNaW5p
ZmllZE5vZGUuaAppbmRleCAxNTcxMzcxMTFmYTQxMDA1MGRjMWNlNThjMzk3Yzc5NTRhMjY1OWFh
Li4xYTI0ZTM5MTkxZTM3Y2FkZjM4NmM2OWYzNDAwZDI4MjJmYWU5NWE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR01pbmlmaWVkTm9kZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTWluaWZpZWROb2RlLmgKQEAgLTQ4LDggKzQ4LDYgQEAgaW5s
aW5lIGJvb2wgYmVsb25nc0luTWluaWZpZWRHcmFwaChOb2RlVHlwZSB0eXBlKQogICAgIGNhc2Ug
VUludDMyVG9OdW1iZXI6CiAgICAgY2FzZSBEb3VibGVBc0ludDMyOgogICAgIGNhc2UgUGhhbnRv
bUFyZ3VtZW50czoKLSAgICBjYXNlIEludDUyVG9WYWx1ZToKLSAgICBjYXNlIEludDUyVG9Eb3Vi
bGU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVCgh
cGVybWl0c09TUkJhY2t3YXJkUmV3aXJpbmcodHlwZSkgJiYgIXBlcm1pdHNPU1JGb3J3YXJkUmV3
aXJpbmcodHlwZSkpOwpAQCAtMTA2LDggKzEwNCw2IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2Ug
SW50MzJUb0RvdWJsZToKICAgICAgICAgY2FzZSBVSW50MzJUb051bWJlcjoKICAgICAgICAgY2Fz
ZSBEb3VibGVBc0ludDMyOgotICAgICAgICBjYXNlIEludDUyVG9Eb3VibGU6Ci0gICAgICAgIGNh
c2UgSW50NTJUb1ZhbHVlOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1
bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR05vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZS5oCmluZGV4IGM4ZGJiMWVlOTE5ZmFlZDdiMGExMDQxOWZhNzY3OTBlNWFkOGViMTcuLjdlN2Qx
YTUyOWE5YmFjNjE0ZWExMjY3ZjA0MThlMzE1ZGQ3ZDY1NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZS5oCkBAIC0xMjQxLDEyICsxMjQxLDEyIEBAIHN0cnVjdCBOb2RlIHsKICAgICAK
ICAgICBib29sIHNob3VsZFNwZWN1bGF0ZU51bWJlcigpCiAgICAgewotICAgICAgICByZXR1cm4g
aXNGdWxsTnVtYmVyU3BlY3VsYXRpb24ocHJlZGljdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIGlz
TnVtYmVyU3BlY3VsYXRpb24ocHJlZGljdGlvbigpKTsKICAgICB9CiAgICAgCiAgICAgYm9vbCBz
aG91bGRTcGVjdWxhdGVOdW1iZXJFeHBlY3RpbmdEZWZpbmVkKCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBpc0Z1bGxOdW1iZXJTcGVjdWxhdGlvbkV4cGVjdGluZ0RlZmluZWQocHJlZGljdGlvbigp
KTsKKyAgICAgICAgcmV0dXJuIGlzTnVtYmVyU3BlY3VsYXRpb25FeHBlY3RpbmdEZWZpbmVkKHBy
ZWRpY3Rpb24oKSk7CiAgICAgfQogICAgIAogICAgIGJvb2wgc2hvdWxkU3BlY3VsYXRlQm9vbGVh
bigpCkBAIC0xNDI0LDkgKzE0MjQsOSBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIHJldHVybiBu
b2RlQ2FuU3BlY3VsYXRlSW50MzIoYXJpdGhOb2RlRmxhZ3MoKSk7CiAgICAgfQogICAgIAotICAg
IGJvb2wgY2FuU3BlY3VsYXRlSW50NTIoKQorICAgIGJvb2wgY2FuU3BlY3VsYXRlSW50NDgoKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIG5vZGVDYW5TcGVjdWxhdGVJbnQ1Mihhcml0aE5vZGVGbGFn
cygpKTsKKyAgICAgICAgcmV0dXJuIG5vZGVDYW5TcGVjdWxhdGVJbnQ0OChhcml0aE5vZGVGbGFn
cygpKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBkdW1wQ2hpbGRyZW4oUHJpbnRTdHJlYW0mIG91
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5oCmluZGV4IDlhNjZlZmI5
MGY3YWE5OTE3YTVmMTY4M2U5MDViNjI4MTljNDNhMDEuLjcyZThkNzdmNzVmMTE0YmMzNzg4NDM2
NTQ4MjZkNmU5M2FhYWRiNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTm9kZUZsYWdzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxh
Z3MuaApAQCAtNDEsOSArNDEsOCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAj
ZGVmaW5lIE5vZGVSZXN1bHRKUyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMQogI2RlZmluZSBO
b2RlUmVzdWx0TnVtYmVyICAgICAgICAgICAgICAgICAweDAwMDIKICNkZWZpbmUgTm9kZVJlc3Vs
dEludDMyICAgICAgICAgICAgICAgICAgMHgwMDAzCi0jZGVmaW5lIE5vZGVSZXN1bHRJbnQ1MiAg
ICAgICAgICAgICAgICAgIDB4MDAwNAotI2RlZmluZSBOb2RlUmVzdWx0Qm9vbGVhbiAgICAgICAg
ICAgICAgICAweDAwMDUKLSNkZWZpbmUgTm9kZVJlc3VsdFN0b3JhZ2UgICAgICAgICAgICAgICAg
MHgwMDA2CisjZGVmaW5lIE5vZGVSZXN1bHRCb29sZWFuICAgICAgICAgICAgICAgIDB4MDAwNAor
I2RlZmluZSBOb2RlUmVzdWx0U3RvcmFnZSAgICAgICAgICAgICAgICAweDAwMDUKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE5vZGVNdXN0R2VuZXJhdGUgICAgICAg
ICAgICAgICAgIDB4MDAwOCAvLyBzZXQgb24gbm9kZXMgdGhhdCBoYXZlIHNpZGUgZWZmZWN0cywg
YW5kIG1heSBub3QgdHJpdmlhbGx5IGJlIHJlbW92ZWQgYnkgRENFLgogI2RlZmluZSBOb2RlSGFz
VmFyQXJncyAgICAgICAgICAgICAgICAgICAweDAwMTAKQEAgLTEwOCw3ICsxMDcsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgbm9kZUNhblNwZWN1bGF0ZUludDMyKE5vZGVGbGFncyBmbGFncykKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIG5vZGVDYW5TcGVjdWxhdGVJ
bnQ1MihOb2RlRmxhZ3MgZmxhZ3MpCitzdGF0aWMgaW5saW5lIGJvb2wgbm9kZUNhblNwZWN1bGF0
ZUludDQ4KE5vZGVGbGFncyBmbGFncykKIHsKICAgICBpZiAobm9kZU1heU5lZ1plcm8oZmxhZ3Mp
KQogICAgICAgICByZXR1cm4gYnl0ZWNvZGVDYW5JZ25vcmVOZWdhdGl2ZVplcm8oZmxhZ3MpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDY0MWFlZmUxZDA4N2M3
NzJlYzg5YWQxYzIwNzkxZTE4MWE2ZDUxOWIuLjgyZDM3M2ZlMTNmODgxM2I2MjcyMjA1ZjAzYjMz
MDA4ZTk5YzJjMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAg
LTExNCwxMCArMTE0LDYgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1h
Y3JvKEludDMyVG9Eb3VibGUsIE5vZGVSZXN1bHROdW1iZXIpIFwKICAgICAvKiBVc2VkIHRvIHNw
ZWN1bGF0ZSB0aGF0IGEgZG91YmxlIHZhbHVlIGlzIGFjdHVhbGx5IGFuIGludGVnZXIuICovXAog
ICAgIG1hY3JvKERvdWJsZUFzSW50MzIsIE5vZGVSZXN1bHRJbnQzMiB8IE5vZGVFeGl0c0Zvcndh
cmQpIFwKLSAgICAvKiBVc2VkIHRvIHNlcGFyYXRlIHJlcHJlc2VudGF0aW9uIGFuZCByZWdpc3Rl
ciBhbGxvY2F0aW9uIG9mIEludDUyJ3MgcmVwcmVzZW50ZWQgKi9cCi0gICAgLyogYXMgdmFsdWVz
LiAqL1wKLSAgICBtYWNybyhJbnQ1MlRvVmFsdWUsIE5vZGVSZXN1bHRKUykgXAotICAgIG1hY3Jv
KEludDUyVG9Eb3VibGUsIE5vZGVSZXN1bHROdW1iZXIpIFwKICAgICBcCiAgICAgLyogTm9kZXMg
Zm9yIGFyaXRobWV0aWMgb3BlcmF0aW9ucy4gKi9cCiAgICAgbWFjcm8oQXJpdGhBZGQsIE5vZGVS
ZXN1bHROdW1iZXIgfCBOb2RlTXVzdEdlbmVyYXRlKSBcCkBAIC0zNjAsMTcgKzM1Niw2IEBAIGlu
bGluZSB1bnNpZ25lZCBmb3J3YXJkUmV3aXJpbmdTZWxlY3Rpb25TY29yZShOb2RlVHlwZSBvcCkK
ICAgICAgICAgLy8gVGhpcyBsb3NlcyBpbmZvcm1hdGlvbi4gT25seSB1c2UgaXQgaWYgdGhlcmUg
YXJlIG5vIGJldHRlciBhbHRlcm5hdGl2ZXMuCiAgICAgICAgIHJldHVybiAyNTsKICAgICAgICAg
Ci0gICAgY2FzZSBJbnQ1MlRvVmFsdWU6Ci0gICAgICAgIC8vIExvc2VzIG5vIGluZm9ybWF0aW9u
LiBJdCBqdXN0IGJveGVzIHRoZSB2YWx1ZSwgd2hpY2ggaXMgd2hhdCBPU1Igd2FudHMKLSAgICAg
ICAgLy8gdG8gZG8gYW55d2F5LgotICAgICAgICByZXR1cm4gMTAwOwotICAgICAgICAKLSAgICBj
YXNlIEludDUyVG9Eb3VibGU6Ci0gICAgICAgIC8vIFRoaXMgaXMgbGlrZSBJbnQzMlRvRG91Ymxl
OyB3ZSBjYW4gdXNlIGl0IGJlY2F1c2UgaXQgZ2l2ZXMgYSBzZW1hbnRpY2FsbHkKLSAgICAgICAg
Ly8gZXF1aXZhbGVudCB2YWx1ZSBidXQgdGhhdCB2YWx1ZSBtYXkgYmUgYW4gaW50MzIgaW4gYSBk
b3VibGUsIHNvIHdlJ2QKLSAgICAgICAgLy8gcmF0aGVyIG5vdCBpZiB3ZSBjYW4gYXZvaWQgaXQu
Ci0gICAgICAgIHJldHVybiA3NTsKLSAgICAgICAgCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0Q29tcGlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0
Q29tcGlsZXIuY3BwCmluZGV4IGQ3YzAwNzQ0NzdiYjUzZmFiZjNhZDVhMWEyODk3MTIxYTMyZmVh
NjAuLjA2M2MyODIzZjFlMzQ5MzJhNjE2ZmMzZDA1MzljMDg5ZDU2MTNjZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAKQEAgLTQwLDYg
KzQwLDE0IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAorc3RhdGljIENT
dHJpbmcgc2hvcnRPcGVyYW5kc0R1bXAoY29uc3QgT3BlcmFuZHM8VmFsdWVSZWNvdmVyeT4mIG9w
ZXJhbmRzKQoreworICAgIER1bXBDb250ZXh0IGNvbnRleHQ7CisgICAgU3RyaW5nUHJpbnRTdHJl
YW0gb3V0OworICAgIG91dC5wcmludChpbkNvbnRleHQob3BlcmFuZHMsICZjb250ZXh0KSk7Cisg
ICAgcmV0dXJuIG91dC50b0NTdHJpbmcoKTsKK30KKwogZXh0ZXJuICJDIiB7CiAKIHZvaWQgY29t
cGlsZU9TUkV4aXQoRXhlY1N0YXRlKiBleGVjKQpAQCAtMTA5LDcgKzExNyw3IEBAIHZvaWQgY29t
cGlsZU9TUkV4aXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgKCJERkcgT1NSIGV4aXQg
IyV1ICglcywgJXMpIGZyb20gJXMsIHdpdGggb3BlcmFuZHMgPSAlcyIsCiAgICAgICAgICAgICAg
ICAgZXhpdEluZGV4LCB0b0NTdHJpbmcoZXhpdC5tX2NvZGVPcmlnaW4pLmRhdGEoKSwKICAgICAg
ICAgICAgICAgICBleGl0S2luZFRvU3RyaW5nKGV4aXQubV9raW5kKSwgdG9DU3RyaW5nKCpjb2Rl
QmxvY2spLmRhdGEoKSwKLSAgICAgICAgICAgICAgICB0b0NTdHJpbmcoaWdub3JpbmdDb250ZXh0
PER1bXBDb250ZXh0PihvcGVyYW5kcykpLmRhdGEoKSkpOworICAgICAgICAgICAgICAgIHNob3J0
T3BlcmFuZHNEdW1wKG9wZXJhbmRzKS5kYXRhKCkpKTsKICAgICB9CiAgICAgCiAgICAgewpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcApp
bmRleCA1MjNhYzM4OTNiMWJiZjk3YWM0M2U3MWI0ZGY0ZTUyZmExNmE1ZTNjLi4zZTE0OGM5NzM5
NGY4NWY4YTA4NDg1ZTczMWE2YWE2NGYyOTY1OGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcApAQCAtMTk1LDggKzE5NSw2IEBA
IHZvaWQgT1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhpdChjb25zdCBPU1JFeGl0JiBleGl0LCBj
b25zdCBPcGVyYW5kczxWYWx1ZVJlY292CiAgICAgICAgIGNhc2UgSW5HUFI6CiAgICAgICAgIGNh
c2UgVW5ib3hlZEludDMySW5HUFI6CiAgICAgICAgIGNhc2UgVUludDMySW5HUFI6Ci0gICAgICAg
IGNhc2UgVW5ib3hlZEludDUySW5HUFI6Ci0gICAgICAgIGNhc2UgVW5ib3hlZFN0cmljdEludDUy
SW5HUFI6CiAgICAgICAgICAgICBtX2ppdC5zdG9yZTY0KHJlY292ZXJ5LmdwcigpLCBzY3JhdGNo
ICsgaW5kZXgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKQEAgLTIzNywxNSAr
MjM1LDEyIEBAIHZvaWQgT1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhpdChjb25zdCBPU1JFeGl0
JiBleGl0LCBjb25zdCBPcGVyYW5kczxWYWx1ZVJlY292CiAgICAgICAgIGNhc2UgRGlzcGxhY2Vk
SW5KU1N0YWNrOgogICAgICAgICBjYXNlIEludDMyRGlzcGxhY2VkSW5KU1N0YWNrOgogICAgICAg
ICBjYXNlIERvdWJsZURpc3BsYWNlZEluSlNTdGFjazoKLSAgICAgICAgY2FzZSBJbnQ1MkRpc3Bs
YWNlZEluSlNTdGFjazoKLSAgICAgICAgY2FzZSBTdHJpY3RJbnQ1MkRpc3BsYWNlZEluSlNTdGFj
azoKICAgICAgICAgICAgIG1faml0LmxvYWQ2NChBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3Io
cmVjb3ZlcnkudmlydHVhbFJlZ2lzdGVyKCkpLCBHUFJJbmZvOjpyZWdUMCk7CiAgICAgICAgICAg
ICBtX2ppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBzY3JhdGNoICsgaW5kZXgpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBBbHJlYWR5SW5KU1N0YWNr
QXNVbmJveGVkSW50MzI6CiAgICAgICAgIGNhc2UgQWxyZWFkeUluSlNTdGFja0FzVW5ib3hlZERv
dWJsZToKLSAgICAgICAgY2FzZSBBbHJlYWR5SW5KU1N0YWNrQXNVbmJveGVkSW50NTI6CiAgICAg
ICAgICAgICBtX2ppdC5sb2FkNjQoQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKG9wZXJhbmQp
LCBHUFJJbmZvOjpyZWdUMCk7CiAgICAgICAgICAgICBtX2ppdC5zdG9yZTY0KEdQUkluZm86OnJl
Z1QwLCBzY3JhdGNoICsgaW5kZXgpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yNzksMzAgKzI3
NCw2IEBAIHZvaWQgT1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhpdChjb25zdCBPU1JFeGl0JiBl
eGl0LCBjb25zdCBPcGVyYW5kczxWYWx1ZVJlY292CiAgICAgICAgICAgICBtX2ppdC5zdG9yZTY0
KEdQUkluZm86OnJlZ1QwLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3Iob3BlcmFuZCkpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKLSAgICAgICAgY2FzZSBBbHJlYWR5SW5K
U1N0YWNrQXNVbmJveGVkSW50NTI6Ci0gICAgICAgIGNhc2UgVW5ib3hlZEludDUySW5HUFI6Ci0g
ICAgICAgIGNhc2UgSW50NTJEaXNwbGFjZWRJbkpTU3RhY2s6Ci0gICAgICAgICAgICBtX2ppdC5s
b2FkNjQoc2NyYXRjaCArIGluZGV4LCBHUFJJbmZvOjpyZWdUMCk7Ci0gICAgICAgICAgICBtX2pp
dC5yc2hpZnQ2NCgKLSAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0z
MihKU1ZhbHVlOjppbnQ1MlNoaWZ0QW1vdW50KSwgR1BSSW5mbzo6cmVnVDApOwotICAgICAgICAg
ICAgbV9qaXQuYm94SW50NTIoR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QwLCBHUFJJbmZv
OjpyZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTY0KEdQ
UkluZm86OnJlZ1QwLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3Iob3BlcmFuZCkpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSBVbmJveGVkU3RyaWN0
SW50NTJJbkdQUjoKLSAgICAgICAgY2FzZSBTdHJpY3RJbnQ1MkRpc3BsYWNlZEluSlNTdGFjazoK
LSAgICAgICAgICAgIG1faml0LmxvYWQ2NChzY3JhdGNoICsgaW5kZXgsIEdQUkluZm86OnJlZ1Qw
KTsKLSAgICAgICAgICAgIG1faml0LmJveEludDUyKEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpy
ZWdUMCwgR1BSSW5mbzo6cmVnVDEsIEZQUkluZm86OmZwUmVnVDApOwotICAgICAgICAgICAgbV9q
aXQuc3RvcmU2NChHUFJJbmZvOjpyZWdUMCwgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKG9w
ZXJhbmQpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2Ug
VUludDMySW5HUFI6Ci0gICAgICAgICAgICBtX2ppdC5sb2FkNjQoc2NyYXRjaCArIGluZGV4LCBH
UFJJbmZvOjpyZWdUMCk7Ci0gICAgICAgICAgICBtX2ppdC56ZXJvRXh0ZW5kMzJUb1B0cihHUFJJ
bmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDApOwotICAgICAgICAgICAgbV9qaXQuYm94SW50NTIo
R1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSwgRlBSSW5mbzo6
ZnBSZWdUMCk7Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBBc3Nl
bWJseUhlbHBlcnM6OmFkZHJlc3NGb3Iob3BlcmFuZCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAKICAgICAgICAgY2FzZSBBbHJlYWR5SW5KU1N0YWNrQXNVbmJveGVkRG91Ymxl
OgogICAgICAgICBjYXNlIEluRlBSOgogICAgICAgICBjYXNlIERvdWJsZURpc3BsYWNlZEluSlNT
dGFjazoKQEAgLTMxMiw2ICsyODMsMjUgQEAgdm9pZCBPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVF
eGl0KGNvbnN0IE9TUkV4aXQmIGV4aXQsIGNvbnN0IE9wZXJhbmRzPFZhbHVlUmVjb3YKICAgICAg
ICAgICAgIG1faml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIEFzc2VtYmx5SGVscGVyczo6YWRk
cmVzc0ZvcihvcGVyYW5kKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAorICAg
ICAgICBjYXNlIFVJbnQzMkluR1BSOiB7CisgICAgICAgICAgICBtX2ppdC5sb2FkNjQoc2NyYXRj
aCArIGluZGV4LCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgICAgICBtX2ppdC56ZXJvRXh0ZW5k
MzJUb1B0cihHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDApOworICAgICAgICAgICAgQXNz
ZW1ibHlIZWxwZXJzOjpKdW1wIHBvc2l0aXZlID0gbV9qaXQuYnJhbmNoMzIoCisgICAgICAgICAg
ICAgICAgQXNzZW1ibHlIZWxwZXJzOjpHcmVhdGVyVGhhbk9yRXF1YWwsCisgICAgICAgICAgICAg
ICAgR1BSSW5mbzo6cmVnVDAsIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKDApKTsKKyAg
ICAgICAgICAgIG1faml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKEdQUkluZm86OnJlZ1QwLCBGUFJJ
bmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIG1faml0LmFkZERvdWJsZSgKKyAgICAgICAgICAg
ICAgICBBc3NlbWJseUhlbHBlcnM6OkFic29sdXRlQWRkcmVzcygmQXNzZW1ibHlIZWxwZXJzOjp0
d29Ub1RoZTMyKSwKKyAgICAgICAgICAgICAgICBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAg
ICAgIG1faml0LmJveERvdWJsZShGUFJJbmZvOjpmcFJlZ1QwLCBHUFJJbmZvOjpyZWdUMCk7Cisg
ICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6Okp1bXAgZG9uZSA9IG1faml0Lmp1bXAoKTsKKyAg
ICAgICAgICAgIHBvc2l0aXZlLmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIG1faml0Lm9yNjQo
R1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAg
ICAgICBkb25lLmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIG1faml0LnN0b3JlNjQoR1BSSW5m
bzo6cmVnVDAsIEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvcihvcGVyYW5kKSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQ29uc3Rh
bnQ6CiAgICAgICAgICAgICBtX2ppdC5zdG9yZTY0KAogICAgICAgICAgICAgICAgIEFzc2VtYmx5
SGVscGVyczo6VHJ1c3RlZEltbTY0KEpTVmFsdWU6OmVuY29kZShyZWNvdmVyeS5jb25zdGFudCgp
KSksCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Q
cm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGlj
dGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IDYxMjAxMGEwMzA1OTVlZGM1OWVhZGZjZWZk
ZWNlYTYwYzhhYTA1M2IuLmVjNTg0NTZjZDkwODc0YjhjOTViYTY4ZjJlZDk1Nzc5OTBiODgwYTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3Bh
Z2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGlj
dGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC0xMTYsNyArMTE2LDcgQEAgcHJpdmF0ZToKICAg
ICAKICAgICBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGVkRG91YmxlVHlwZUZvclByZWRpY3Rpb24o
U3BlY3VsYXRlZFR5cGUgdmFsdWUpCiAgICAgewotICAgICAgICBpZiAoIWlzRnVsbE51bWJlclNw
ZWN1bGF0aW9uKHZhbHVlKSkKKyAgICAgICAgaWYgKCFpc051bWJlclNwZWN1bGF0aW9uKHZhbHVl
KSkKICAgICAgICAgICAgIHJldHVybiBTcGVjRG91YmxlOwogICAgICAgICBpZiAodmFsdWUgJiBT
cGVjRG91YmxlTmFOKQogICAgICAgICAgICAgcmV0dXJuIFNwZWNEb3VibGU7CkBAIC0xNDIsMTcg
KzE0MiwxNSBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEpTQ29uc3RhbnQ6CiAgICAgICAgIGNh
c2UgV2Vha0pTQ29uc3RhbnQ6IHsKICAgICAgICAgICAgIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBz
cGVjdWxhdGlvbkZyb21WYWx1ZShtX2dyYXBoLnZhbHVlT2ZKU0NvbnN0YW50KG5vZGUpKTsKLSAg
ICAgICAgICAgIGlmICh0eXBlID09IFNwZWNJbnQ1MkFzRG91YmxlKQotICAgICAgICAgICAgICAg
IHR5cGUgPSBTcGVjSW50NTI7CisgICAgICAgICAgICBpZiAodHlwZSA9PSBTcGVjSW50NDhBc0Rv
dWJsZSkKKyAgICAgICAgICAgICAgICB0eXBlID0gU3BlY0ludDQ4OwogICAgICAgICAgICAgY2hh
bmdlZCB8PSBzZXRQcmVkaWN0aW9uKHR5cGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEdldExvY2FsOiB7Ci0gICAgICAgICAgICBW
YXJpYWJsZUFjY2Vzc0RhdGEqIHZhcmlhYmxlID0gbm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCk7
Ci0gICAgICAgICAgICBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uID0gdmFyaWFibGUtPnByZWRp
Y3Rpb24oKTsKLSAgICAgICAgICAgIGlmICh2YXJpYWJsZS0+c2hvdWxkTmV2ZXJVbmJveCgpICYm
IChwcmVkaWN0aW9uICYgU3BlY0ludDUyKSkKLSAgICAgICAgICAgICAgICBwcmVkaWN0aW9uID0g
KHByZWRpY3Rpb24gfCBTcGVjSW50NTJBc0RvdWJsZSkgJiB+U3BlY0ludDUyOworICAgICAgICAg
ICAgVmFyaWFibGVBY2Nlc3NEYXRhKiB2YXJpYWJsZUFjY2Vzc0RhdGEgPSBub2RlLT52YXJpYWJs
ZUFjY2Vzc0RhdGEoKTsKKyAgICAgICAgICAgIFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24gPSB2
YXJpYWJsZUFjY2Vzc0RhdGEtPnByZWRpY3Rpb24oKTsKICAgICAgICAgICAgIGlmIChwcmVkaWN0
aW9uKQogICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKHByZWRpY3Rp
b24pOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yMDUsNyArMjAzLDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIGlmIChub2RlQ2FuU3BlY3VsYXRlSW50MzIobm9kZS0+YXJpdGhOb2RlRmxhZ3Mo
KSkpCiAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMy
KTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJl
ZGljdGlvbihTcGVjQnl0ZWNvZGVOdW1iZXIpOworICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0g
bWVyZ2VQcmVkaWN0aW9uKFNwZWNOdW1iZXIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KIApAQCAtMjE0LDE0ICsyMTIsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIFNwZWN1bGF0
ZWRUeXBlIHJpZ2h0ID0gbm9kZS0+Y2hpbGQyKCktPnByZWRpY3Rpb24oKTsKICAgICAgICAgICAg
IAogICAgICAgICAgICAgaWYgKGxlZnQgJiYgcmlnaHQpIHsKLSAgICAgICAgICAgICAgICBpZiAo
aXNGdWxsTnVtYmVyU3BlY3VsYXRpb25FeHBlY3RpbmdEZWZpbmVkKGxlZnQpICYmIGlzRnVsbE51
bWJlclNwZWN1bGF0aW9uRXhwZWN0aW5nRGVmaW5lZChyaWdodCkpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoaXNOdW1iZXJTcGVjdWxhdGlvbkV4cGVjdGluZ0RlZmluZWQobGVmdCkgJiYgaXNOdW1i
ZXJTcGVjdWxhdGlvbkV4cGVjdGluZ0RlZmluZWQocmlnaHQpKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChtX2dyYXBoLmFkZFNwZWN1bGF0aW9uTW9kZShub2RlKSAhPSBEb250U3BlY3VsYXRl
SW50MzIpCiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlv
bihTcGVjSW50MzIpOwogICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChtX2dyYXBoLmFkZFNo
b3VsZFNwZWN1bGF0ZU1hY2hpbmVJbnQobm9kZSkpCi0gICAgICAgICAgICAgICAgICAgICAgICBj
aGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50NTIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDQ4KTsKICAgICAgICAgICAg
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVBy
ZWRpY3Rpb24oc3BlY3VsYXRlZERvdWJsZVR5cGVGb3JQcmVkaWN0aW9ucyhsZWZ0LCByaWdodCkp
OwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIShsZWZ0ICYgU3BlY0Z1bGxOdW1iZXIpIHx8
ICEocmlnaHQgJiBTcGVjRnVsbE51bWJlcikpIHsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYg
KCEobGVmdCAmIFNwZWNOdW1iZXIpIHx8ICEocmlnaHQgJiBTcGVjTnVtYmVyKSkgewogICAgICAg
ICAgICAgICAgICAgICAvLyBsZWZ0IG9yIHJpZ2h0IGlzIGRlZmluaXRlbHkgc29tZXRoaW5nIG90
aGVyIHRoYW4gYSBudW1iZXIuCiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQ
cmVkaWN0aW9uKFNwZWNTdHJpbmcpOwogICAgICAgICAgICAgICAgIH0gZWxzZQpAQCAtMjM4LDcg
KzIzNiw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgaWYgKG1fZ3JhcGguYWRkU3BlY3Vs
YXRpb25Nb2RlKG5vZGUpICE9IERvbnRTcGVjdWxhdGVJbnQzMikKICAgICAgICAgICAgICAgICAg
ICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDMyKTsKICAgICAgICAgICAgICAg
ICBlbHNlIGlmIChtX2dyYXBoLmFkZFNob3VsZFNwZWN1bGF0ZU1hY2hpbmVJbnQobm9kZSkpCi0g
ICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQ1Mik7
CisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQ0
OCk7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9
IG1lcmdlUHJlZGljdGlvbihzcGVjdWxhdGVkRG91YmxlVHlwZUZvclByZWRpY3Rpb25zKGxlZnQs
IHJpZ2h0KSk7CiAgICAgICAgICAgICB9CkBAIC0yNTMsNyArMjUxLDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgICAgICBpZiAobV9ncmFwaC5hZGRTcGVjdWxhdGlvbk1vZGUobm9kZSkgIT0gRG9u
dFNwZWN1bGF0ZUludDMyKQogICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJl
ZGljdGlvbihTcGVjSW50MzIpOwogICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1fZ3JhcGguYWRk
U2hvdWxkU3BlY3VsYXRlTWFjaGluZUludChub2RlKSkKLSAgICAgICAgICAgICAgICAgICAgY2hh
bmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDUyKTsKKyAgICAgICAgICAgICAgICAgICAg
Y2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDQ4KTsKICAgICAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKHNwZWN1
bGF0ZWREb3VibGVUeXBlRm9yUHJlZGljdGlvbnMobGVmdCwgcmlnaHQpKTsKICAgICAgICAgICAg
IH0KQEAgLTI2NSw3ICsyNjMsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGlmIChtX2dy
YXBoLm5lZ2F0ZVNob3VsZFNwZWN1bGF0ZUludDMyKG5vZGUpKQogICAgICAgICAgICAgICAgICAg
ICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzIpOwogICAgICAgICAgICAgICAg
IGVsc2UgaWYgKG1fZ3JhcGgubmVnYXRlU2hvdWxkU3BlY3VsYXRlTWFjaGluZUludChub2RlKSkK
LSAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0ludDUy
KTsKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24oU3BlY0lu
dDQ4KTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQg
fD0gbWVyZ2VQcmVkaWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBlRm9yUHJlZGljdGlvbihub2Rl
LT5jaGlsZDEoKS0+cHJlZGljdGlvbigpKSk7CiAgICAgICAgICAgICB9CkBAIC0yOTQsNyArMjky
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBpZiAobV9ncmFwaC5tdWxTaG91bGRTcGVj
dWxhdGVJbnQzMihub2RlKSkKICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVBy
ZWRpY3Rpb24oU3BlY0ludDMyKTsKICAgICAgICAgICAgICAgICBlbHNlIGlmIChtX2dyYXBoLm11
bFNob3VsZFNwZWN1bGF0ZU1hY2hpbmVJbnQobm9kZSkpCi0gICAgICAgICAgICAgICAgICAgIGNo
YW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQ1Mik7CisgICAgICAgICAgICAgICAgICAg
IGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQ0OCk7CiAgICAgICAgICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihzcGVj
dWxhdGVkRG91YmxlVHlwZUZvclByZWRpY3Rpb25zKGxlZnQsIHJpZ2h0KSk7CiAgICAgICAgICAg
ICB9CkBAIC0zNzAsMjAgKzM2OCwxMCBAQCBwcml2YXRlOgogICAgICAgICB9CiAKICAgICAgICAg
Y2FzZSBHZXRCeVZhbDogewotICAgICAgICAgICAgaWYgKCFub2RlLT5jaGlsZDEoKS0+cHJlZGlj
dGlvbigpKQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgaWYgKCFub2RlLT5n
ZXRIZWFwUHJlZGljdGlvbigpKQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
CiAgICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZUZsb2F0MzJB
cnJheSgpCiAgICAgICAgICAgICAgICAgfHwgbm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0
ZUZsb2F0NjRBcnJheSgpKQogICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0
aW9uKFNwZWNEb3VibGUpOwotICAgICAgICAgICAgZWxzZSBpZiAobm9kZS0+Y2hpbGQxKCktPnNo
b3VsZFNwZWN1bGF0ZVVpbnQzMkFycmF5KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoaXNJbnQz
MlNwZWN1bGF0aW9uKG5vZGUtPmdldEhlYXBQcmVkaWN0aW9uKCkpKQotICAgICAgICAgICAgICAg
ICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzIpOwotICAgICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRpY3Rpb24o
U3BlY0ludDUyKTsKLSAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKG5vZGUtPmdldEhlYXBQcmVkaWN0
aW9uKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTU3OCw4ICs1NjYsNiBA
QCBwcml2YXRlOgogICAgICAgICBjYXNlIENoZWNrV2F0Y2hkb2dUaW1lcjoKICAgICAgICAgY2Fz
ZSBVbnJlYWNoYWJsZToKICAgICAgICAgY2FzZSBMb29wSGludDoKLSAgICAgICAgY2FzZSBJbnQ1
MlRvVmFsdWU6Ci0gICAgICAgIGNhc2UgSW50NTJUb0RvdWJsZToKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgCiAgICAgICAgIC8vIFRoaXMgZ2V0cyBpZ25vcmVkIGJlY2F1c2UgaXQg
YWxyZWFkeSBoYXMgYSBwcmVkaWN0aW9uLgpAQCAtNjU0LDkgKzY0MCw4IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBEb3VibGVCYWxsb3QgYmFsbG90OwogICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgaWYgKGlzRnVsbE51bWJlclNwZWN1bGF0aW9uRXhwZWN0
aW5nRGVmaW5lZChsZWZ0KSAmJiBpc0Z1bGxOdW1iZXJTcGVjdWxhdGlvbkV4cGVjdGluZ0RlZmlu
ZWQocmlnaHQpCi0gICAgICAgICAgICAgICAgJiYgIW1fZ3JhcGguYWRkU2hvdWxkU3BlY3VsYXRl
SW50MzIobm9kZSkKLSAgICAgICAgICAgICAgICAmJiAhbV9ncmFwaC5hZGRTaG91bGRTcGVjdWxh
dGVNYWNoaW5lSW50KG5vZGUpKQorICAgICAgICAgICAgaWYgKGlzTnVtYmVyU3BlY3VsYXRpb25F
eHBlY3RpbmdEZWZpbmVkKGxlZnQpICYmIGlzTnVtYmVyU3BlY3VsYXRpb25FeHBlY3RpbmdEZWZp
bmVkKHJpZ2h0KQorICAgICAgICAgICAgICAgICYmICFtX2dyYXBoLmFkZFNob3VsZFNwZWN1bGF0
ZUludDMyKG5vZGUpKQogICAgICAgICAgICAgICAgIGJhbGxvdCA9IFZvdGVEb3VibGU7CiAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgYmFsbG90ID0gVm90ZVZhbHVlOwpAQCAtNjcy
LDkgKzY1Nyw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBEb3Vi
bGVCYWxsb3QgYmFsbG90OwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKGlzRnVs
bE51bWJlclNwZWN1bGF0aW9uKGxlZnQpICYmIGlzRnVsbE51bWJlclNwZWN1bGF0aW9uKHJpZ2h0
KQotICAgICAgICAgICAgICAgICYmICFtX2dyYXBoLm11bFNob3VsZFNwZWN1bGF0ZUludDMyKG5v
ZGUpCi0gICAgICAgICAgICAgICAgJiYgIW1fZ3JhcGgubXVsU2hvdWxkU3BlY3VsYXRlTWFjaGlu
ZUludChub2RlKSkKKyAgICAgICAgICAgIGlmIChpc051bWJlclNwZWN1bGF0aW9uKGxlZnQpICYm
IGlzTnVtYmVyU3BlY3VsYXRpb24ocmlnaHQpCisgICAgICAgICAgICAgICAgJiYgIW1fZ3JhcGgu
bXVsU2hvdWxkU3BlY3VsYXRlSW50MzIobm9kZSkpCiAgICAgICAgICAgICAgICAgYmFsbG90ID0g
Vm90ZURvdWJsZTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBiYWxsb3QgPSBW
b3RlVmFsdWU7CkBAIC02OTMsNyArNjc3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgIERvdWJsZUJhbGxvdCBiYWxsb3Q7CiAgICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICBpZiAoaXNGdWxsTnVtYmVyU3BlY3VsYXRpb24obGVmdCkgJiYgaXNGdWxsTnVtYmVy
U3BlY3VsYXRpb24ocmlnaHQpCisgICAgICAgICAgICBpZiAoaXNOdW1iZXJTcGVjdWxhdGlvbihs
ZWZ0KSAmJiBpc051bWJlclNwZWN1bGF0aW9uKHJpZ2h0KQogICAgICAgICAgICAgICAgICYmICEo
Tm9kZTo6c2hvdWxkU3BlY3VsYXRlSW50MzJGb3JBcml0aG1ldGljKG5vZGUtPmNoaWxkMSgpLm5v
ZGUoKSwgbm9kZS0+Y2hpbGQyKCkubm9kZSgpKSAmJiBub2RlLT5jYW5TcGVjdWxhdGVJbnQzMigp
KSkKICAgICAgICAgICAgICAgICBiYWxsb3QgPSBWb3RlRG91YmxlOwogICAgICAgICAgICAgZWxz
ZQpAQCAtNzIyLDkgKzcwNiw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBTcGVjdWxhdGVkVHlw
ZSBwcmVkaWN0aW9uID0gbm9kZS0+Y2hpbGQxKCktPnByZWRpY3Rpb24oKTsKICAgICAgICAgICAg
IGlmIChpc0RvdWJsZVNwZWN1bGF0aW9uKHByZWRpY3Rpb24pKQogICAgICAgICAgICAgICAgIG5v
ZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpLT52b3RlKFZvdGVEb3VibGUpOwotICAgICAgICAgICAg
ZWxzZSBpZiAoCi0gICAgICAgICAgICAgICAgIWlzRnVsbE51bWJlclNwZWN1bGF0aW9uKHByZWRp
Y3Rpb24pCi0gICAgICAgICAgICAgICAgfHwgaXNJbnQzMlNwZWN1bGF0aW9uKHByZWRpY3Rpb24p
IHx8IGlzTWFjaGluZUludFNwZWN1bGF0aW9uKHByZWRpY3Rpb24pKQorICAgICAgICAgICAgZWxz
ZSBpZiAoIWlzTnVtYmVyU3BlY3VsYXRpb24ocHJlZGljdGlvbikgfHwgaXNJbnQzMlNwZWN1bGF0
aW9uKHByZWRpY3Rpb24pKQogICAgICAgICAgICAgICAgIG5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0
YSgpLT52b3RlKFZvdGVWYWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRleCA5NzU1MmMw
MzQ1MmYwNDIwOTUxMDNmM2YyNGY2NDRmNDIwMzQ3MjM1Li4yNDkxYzM1NDIyZGFmZWY3YTA1NTZi
OGI5N2QxNjRjMTNhYmU4OTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NhZmVUb0V4ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nh
ZmVUb0V4ZWN1dGUuaApAQCAtNjEsNyArNjEsNiBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgU3Ry
aW5nT3JTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgIGNhc2UgTm90Q2VsbFVzZToKICAgICAgICAg
Y2FzZSBPdGhlclVzZToKLSAgICAgICAgY2FzZSBNYWNoaW5lSW50VXNlOgogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgS25vd25JbnQzMlVzZToKQEAgLTcw
LDcgKzY5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgCiAg
ICAgICAgIGNhc2UgS25vd25OdW1iZXJVc2U6Ci0gICAgICAgICAgICBpZiAobV9zdGF0ZS5mb3JO
b2RlKGVkZ2UpLm1fdHlwZSAmIH5TcGVjRnVsbE51bWJlcikKKyAgICAgICAgICAgIGlmIChtX3N0
YXRlLmZvck5vZGUoZWRnZSkubV90eXBlICYgflNwZWNOdW1iZXIpCiAgICAgICAgICAgICAgICAg
bV9yZXN1bHQgPSBmYWxzZTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIApAQCAt
MjQwLDggKzIzOSw2IEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3Rh
dGUsIEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIENoZWNrVGllclVwQXRSZXR1
cm46CiAgICAgY2FzZSBDaGVja1RpZXJVcEFuZE9TUkVudGVyOgogICAgIGNhc2UgTG9vcEhpbnQ6
Ci0gICAgY2FzZSBJbnQ1MlRvRG91YmxlOgotICAgIGNhc2UgSW50NTJUb1ZhbHVlOgogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgCiAgICAgY2FzZSBHZXRCeVZhbDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2lsZW50UmVnaXN0ZXJTYXZlUGxhbi5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTaWxlbnRSZWdpc3RlclNhdmVQbGFuLmgKaW5k
ZXggOGFjODAwZDEzMzI4Yjg5ZmM2NmQ5MjJlYWNmYzIxYWFmZmQ0ODU1Yy4uNmI5ZGYxOWQ3ZTNj
MjUyYmIxYTQ4OTE5NzhkMzZhYmZlODZmMTFjYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTaWxlbnRSZWdpc3RlclNhdmVQbGFuLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTaWxlbnRSZWdpc3RlclNhdmVQbGFuLmgKQEAgLTQ4LDggKzQ4LDYg
QEAgZW51bSBTaWxlbnRTcGlsbEFjdGlvbiB7CiBlbnVtIFNpbGVudEZpbGxBY3Rpb24gewogICAg
IERvTm90aGluZ0ZvckZpbGwsCiAgICAgU2V0SW50MzJDb25zdGFudCwKLSAgICBTZXRJbnQ1MkNv
bnN0YW50LAotICAgIFNldFN0cmljdEludDUyQ29uc3RhbnQsCiAgICAgU2V0Qm9vbGVhbkNvbnN0
YW50LAogICAgIFNldENlbGxDb25zdGFudCwKICAgICBTZXRUcnVzdGVkSlNDb25zdGFudCwKQEAg
LTYzLDEyICs2MSw4IEBAIGVudW0gU2lsZW50RmlsbEFjdGlvbiB7CiAgICAgTG9hZDMyVGFnLAog
ICAgIExvYWQzMlBheWxvYWQsCiAgICAgTG9hZDMyUGF5bG9hZEJveEludCwKLSAgICBMb2FkMzJQ
YXlsb2FkQ29udmVydFRvSW50NTIsCi0gICAgTG9hZDMyUGF5bG9hZFNpZ25FeHRlbmQsCiAgICAg
TG9hZFB0ciwKICAgICBMb2FkNjQsCi0gICAgTG9hZDY0U2hpZnRJbnQ1MlJpZ2h0LAotICAgIExv
YWQ2NFNoaWZ0SW50NTJMZWZ0LAogICAgIExvYWREb3VibGUsCiAgICAgTG9hZERvdWJsZUJveERv
dWJsZSwKICAgICBMb2FkSlNVbmJveERvdWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBmZTU0MWUyZDVlZDEyMGY0NWUyNDExM2Ez
MTZiMDE2MWM1OTFiOTFhLi5jNWY0ZTAxNjkxNTIwODA2NjM0OTE3NGE3YmUxZTE0ZTA0NWYwM2Yy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cApAQCAtMzM1LDggKzMzNSw2IEBAIFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4gU3BlY3VsYXRpdmVK
SVQ6OnNpbGVudFNhdmVQbGFuRm9yR1BSKFZpcnR1YWxSZWdpc3RlciBzcGlsCiAgICAgICAgICAg
ICBzcGlsbEFjdGlvbiA9IFN0b3JlMzJQYXlsb2FkOwogICAgICAgICBlbHNlIGlmIChyZWdpc3Rl
ckZvcm1hdCA9PSBEYXRhRm9ybWF0Q2VsbCB8fCByZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0
U3RvcmFnZSkKICAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmVQdHI7Ci0gICAgICAgIGVs
c2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRJbnQ1MiB8fCByZWdpc3RlckZvcm1h
dCA9PSBEYXRhRm9ybWF0U3RyaWN0SW50NTIpCi0gICAgICAgICAgICBzcGlsbEFjdGlvbiA9IFN0
b3JlNjQ7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9ybWF0
ICYgRGF0YUZvcm1hdEpTKTsKICAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmU2NDsKQEAg
LTM4OCw0MiArMzg2LDYgQEAgU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiBTcGVjdWxhdGl2ZUpJVDo6
c2lsZW50U2F2ZVBsYW5Gb3JHUFIoVmlydHVhbFJlZ2lzdGVyIHNwaWwKICAgICB9IGVsc2UgaWYg
KHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKSB7CiAgICAgICAgIEFTU0VSVChp
bmZvLmdwcigpID09IHNvdXJjZSk7CiAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkUHRyOwotICAg
IH0gZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEludDUyKSB7Ci0gICAgICAg
IGlmIChub2RlLT5oYXNDb25zdGFudCgpKQotICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNldElu
dDUyQ29uc3RhbnQ7Ci0gICAgICAgIGVsc2UgaWYgKGlzSlNJbnQzMihpbmZvLnNwaWxsRm9ybWF0
KCkpIHx8IGluZm8uc3BpbGxGb3JtYXQoKSA9PSBEYXRhRm9ybWF0SlMpCi0gICAgICAgICAgICBm
aWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZENvbnZlcnRUb0ludDUyOwotICAgICAgICBlbHNlIGlm
IChpbmZvLnNwaWxsRm9ybWF0KCkgPT0gRGF0YUZvcm1hdEludDUyKQotICAgICAgICAgICAgZmls
bEFjdGlvbiA9IExvYWQ2NDsKLSAgICAgICAgZWxzZSBpZiAoaW5mby5zcGlsbEZvcm1hdCgpID09
IERhdGFGb3JtYXRTdHJpY3RJbnQ1MikKLSAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkNjRT
aGlmdEludDUyTGVmdDsKLSAgICAgICAgZWxzZSBpZiAoaW5mby5zcGlsbEZvcm1hdCgpID09IERh
dGFGb3JtYXROb25lKQotICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQ2NDsKLSAgICAgICAg
ZWxzZSB7Ci0gICAgICAgICAgICAvLyBTaG91bGQgbmV2ZXIgaGFwcGVuLiBBbnl0aGluZyB0aGF0
IHF1YWxpZmllcyBhcyBhbiBpbnQzMiB3aWxsIG5ldmVyCi0gICAgICAgICAgICAvLyBiZSB0dXJu
ZWQgaW50byBhIGNlbGwgKGltbWVkaWF0ZSBzcGVjIGZhaWwpIG9yIGEgZG91YmxlICh0by1kb3Vi
bGUKLSAgICAgICAgICAgIC8vIGNvbnZlcnNpb25zIGludm9sdmUgYSBzZXBhcmF0ZSBub2RlKS4K
LSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICBm
aWxsQWN0aW9uID0gTG9hZDY0OyAvLyBNYWtlIEdDQyBoYXBweS4KLSAgICAgICAgfQotICAgIH0g
ZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdFN0cmljdEludDUyKSB7Ci0gICAg
ICAgIGlmIChub2RlLT5oYXNDb25zdGFudCgpKQotICAgICAgICAgICAgZmlsbEFjdGlvbiA9IFNl
dFN0cmljdEludDUyQ29uc3RhbnQ7Ci0gICAgICAgIGVsc2UgaWYgKGlzSlNJbnQzMihpbmZvLnNw
aWxsRm9ybWF0KCkpIHx8IGluZm8uc3BpbGxGb3JtYXQoKSA9PSBEYXRhRm9ybWF0SlMpCi0gICAg
ICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZFNpZ25FeHRlbmQ7Ci0gICAgICAgIGVs
c2UgaWYgKGluZm8uc3BpbGxGb3JtYXQoKSA9PSBEYXRhRm9ybWF0SW50NTIpCi0gICAgICAgICAg
ICBmaWxsQWN0aW9uID0gTG9hZDY0U2hpZnRJbnQ1MlJpZ2h0OwotICAgICAgICBlbHNlIGlmIChp
bmZvLnNwaWxsRm9ybWF0KCkgPT0gRGF0YUZvcm1hdFN0cmljdEludDUyKQotICAgICAgICAgICAg
ZmlsbEFjdGlvbiA9IExvYWQ2NDsKLSAgICAgICAgZWxzZSBpZiAoaW5mby5zcGlsbEZvcm1hdCgp
ID09IERhdGFGb3JtYXROb25lKQotICAgICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWQ2NDsKLSAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAvLyBTaG91bGQgbmV2ZXIgaGFwcGVuLiBBbnl0aGlu
ZyB0aGF0IHF1YWxpZmllcyBhcyBhbiBpbnQzMiB3aWxsIG5ldmVyCi0gICAgICAgICAgICAvLyBi
ZSB0dXJuZWQgaW50byBhIGNlbGwgKGltbWVkaWF0ZSBzcGVjIGZhaWwpIG9yIGEgZG91YmxlICh0
by1kb3VibGUKLSAgICAgICAgICAgIC8vIGNvbnZlcnNpb25zIGludm9sdmUgYSBzZXBhcmF0ZSBu
b2RlKS4KLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAg
ICAgICBmaWxsQWN0aW9uID0gTG9hZDY0OyAvLyBNYWtlIEdDQyBoYXBweS4KLSAgICAgICAgfQog
ICAgIH0gZWxzZSB7CiAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCAmIERhdGFGb3JtYXRK
Uyk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTQzMSw2ICszOTMsNyBAQCBTaWxlbnRSZWdpc3Rl
clNhdmVQbGFuIFNwZWN1bGF0aXZlSklUOjpzaWxlbnRTYXZlUGxhbkZvckdQUihWaXJ0dWFsUmVn
aXN0ZXIgc3BpbAogICAgICAgICBpZiAobm9kZS0+aGFzQ29uc3RhbnQoKSkgewogICAgICAgICAg
ICAgaWYgKHZhbHVlT2ZKU0NvbnN0YW50KG5vZGUpLmlzQ2VsbCgpKQogICAgICAgICAgICAgICAg
IGZpbGxBY3Rpb24gPSBTZXRUcnVzdGVkSlNDb25zdGFudDsKKyAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICBmaWxsQWN0aW9uID0gU2V0SlNDb25zdGFudDsKICAgICAgICAgfSBlbHNl
IGlmIChpbmZvLnNwaWxsRm9ybWF0KCkgPT0gRGF0YUZvcm1hdEludDMyKSB7CiAgICAgICAgICAg
ICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEpTSW50MzIpOwpAQCAtNTQ5LDE0
ICs1MTIsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpzaWxlbnRGaWxsKGNvbnN0IFNpbGVudFJl
Z2lzdGVyU2F2ZVBsYW4mIHBsYW4sIEdQUlJlZyBjYW5UcgogICAgIGNhc2UgU2V0SW50MzJDb25z
dGFudDoKICAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1ZU9mSW50MzJDb25zdGFudChwbGFu
Lm5vZGUoKSkpLCBwbGFuLmdwcigpKTsKICAgICAgICAgYnJlYWs7Ci0jaWYgVVNFKEpTVkFMVUU2
NCkKLSAgICBjYXNlIFNldEludDUyQ29uc3RhbnQ6Ci0gICAgICAgIG1faml0Lm1vdmUoSW1tNjQo
dmFsdWVPZkpTQ29uc3RhbnQocGxhbi5ub2RlKCkpLmFzTWFjaGluZUludCgpIDw8IEpTVmFsdWU6
OmludDUyU2hpZnRBbW91bnQpLCBwbGFuLmdwcigpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBTZXRTdHJpY3RJbnQ1MkNvbnN0YW50OgotICAgICAgICBtX2ppdC5tb3ZlKEltbTY0KHZhbHVl
T2ZKU0NvbnN0YW50KHBsYW4ubm9kZSgpKS5hc01hY2hpbmVJbnQoKSksIHBsYW4uZ3ByKCkpOwot
ICAgICAgICBicmVhazsKLSNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQogICAgIGNhc2UgU2V0Qm9v
bGVhbkNvbnN0YW50OgogICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMih2YWx1ZU9mQm9v
bGVhbkNvbnN0YW50KHBsYW4ubm9kZSgpKSksIHBsYW4uZ3ByKCkpOwogICAgICAgICBicmVhazsK
QEAgLTU3OCwxNSArNTMzLDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50RmlsbChjb25z
dCBTaWxlbnRSZWdpc3RlclNhdmVQbGFuJiBwbGFuLCBHUFJSZWcgY2FuVHIKICAgICAgICAgbV9q
aXQubG9hZDMyKEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKHBsYW4ubm9kZSgpLT52aXJ0dWFsUmVn
aXN0ZXIoKSksIHBsYW4uZ3ByKCkpOwogICAgICAgICBtX2ppdC5vcjY0KEdQUkluZm86OnRhZ1R5
cGVOdW1iZXJSZWdpc3RlciwgcGxhbi5ncHIoKSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
TG9hZDMyUGF5bG9hZENvbnZlcnRUb0ludDUyOgotICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29t
cGlsZXI6OnBheWxvYWRGb3IocGxhbi5ub2RlKCktPnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5n
cHIoKSk7Ci0gICAgICAgIG1faml0LnNpZ25FeHRlbmQzMlRvUHRyKHBsYW4uZ3ByKCksIHBsYW4u
Z3ByKCkpOwotICAgICAgICBtX2ppdC5sc2hpZnQ2NChUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6aW50
NTJTaGlmdEFtb3VudCksIHBsYW4uZ3ByKCkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIExv
YWQzMlBheWxvYWRTaWduRXh0ZW5kOgotICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6
OnBheWxvYWRGb3IocGxhbi5ub2RlKCktPnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIoKSk7
Ci0gICAgICAgIG1faml0LnNpZ25FeHRlbmQzMlRvUHRyKHBsYW4uZ3ByKCksIHBsYW4uZ3ByKCkp
OwotICAgICAgICBicmVhazsKICAgICBjYXNlIExvYWREb3VibGVCb3hEb3VibGU6CiAgICAgICAg
IG1faml0LmxvYWQ2NChKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihwbGFuLm5vZGUoKS0+dmlydHVh
bFJlZ2lzdGVyKCkpLCBwbGFuLmdwcigpKTsKICAgICAgICAgbV9qaXQuc3ViNjQoR1BSSW5mbzo6
dGFnVHlwZU51bWJlclJlZ2lzdGVyLCBwbGFuLmdwcigpKTsKQEAgLTYyOCwxNCArNTc0LDYgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50RmlsbChjb25zdCBTaWxlbnRSZWdpc3RlclNhdmVQ
bGFuJiBwbGFuLCBHUFJSZWcgY2FuVHIKICAgICBjYXNlIExvYWQ2NDoKICAgICAgICAgbV9qaXQu
bG9hZDY0KEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKHBsYW4ubm9kZSgpLT52aXJ0dWFsUmVnaXN0
ZXIoKSksIHBsYW4uZ3ByKCkpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIExvYWQ2NFNoaWZ0
SW50NTJSaWdodDoKLSAgICAgICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjphZGRyZXNzRm9y
KHBsYW4ubm9kZSgpLT52aXJ0dWFsUmVnaXN0ZXIoKSksIHBsYW4uZ3ByKCkpOwotICAgICAgICBt
X2ppdC5yc2hpZnQ2NChUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6aW50NTJTaGlmdEFtb3VudCksIHBs
YW4uZ3ByKCkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIExvYWQ2NFNoaWZ0SW50NTJMZWZ0
OgotICAgICAgICBtX2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IocGxhbi5ub2Rl
KCktPnZpcnR1YWxSZWdpc3RlcigpKSwgcGxhbi5ncHIoKSk7Ci0gICAgICAgIG1faml0LmxzaGlm
dDY0KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjppbnQ1MlNoaWZ0QW1vdW50KSwgcGxhbi5ncHIoKSk7
Ci0gICAgICAgIGJyZWFrOwogI2VuZGlmCiAgICAgY2FzZSBMb2FkRG91YmxlOgogICAgICAgICBt
X2ppdC5sb2FkRG91YmxlKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKHBsYW4ubm9kZSgpLT52aXJ0
dWFsUmVnaXN0ZXIoKSksIHBsYW4uZnByKCkpOwpAQCAtMTQ3OCwxMCArMTQxNiw2IEBAIGJvb2wg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQZWVwSG9sZUJyYW5jaChOb2RlKiBub2RlLCBNYWNyb0Fz
c2VtYmxlcjo6UmVsYXRpb25hCiAKICAgICAgICAgaWYgKG5vZGUtPmlzQmluYXJ5VXNlS2luZChJ
bnQzMlVzZSkpCiAgICAgICAgICAgICBjb21waWxlUGVlcEhvbGVJbnQzMkJyYW5jaChub2RlLCBi
cmFuY2hOb2RlLCBjb25kaXRpb24pOwotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgIGVsc2Ug
aWYgKG5vZGUtPmlzQmluYXJ5VXNlS2luZChNYWNoaW5lSW50VXNlKSkKLSAgICAgICAgICAgIGNv
bXBpbGVQZWVwSG9sZUludDUyQnJhbmNoKG5vZGUsIGJyYW5jaE5vZGUsIGNvbmRpdGlvbik7Ci0j
ZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKICAgICAgICAgZWxzZSBpZiAobm9kZS0+aXNCaW5hcnlV
c2VLaW5kKE51bWJlclVzZSkpCiAgICAgICAgICAgICBjb21waWxlUGVlcEhvbGVEb3VibGVCcmFu
Y2gobm9kZSwgYnJhbmNoTm9kZSwgZG91YmxlQ29uZGl0aW9uKTsKICAgICAgICAgZWxzZSBpZiAo
bm9kZS0+b3AoKSA9PSBDb21wYXJlRXEpIHsKQEAgLTE1NzMsOSArMTUwNyw2IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVJbmxpbmVTdGFydChOb2RlKiBub2RlKQogICAgICAgICAgICAg
Y2FzZSBGbHVzaGVkSW50MzI6CiAgICAgICAgICAgICAgICAgdmFsdWVTb3VyY2UgPSBWYWx1ZVNv
dXJjZShJbnQzMkluSlNTdGFjayk7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICBjYXNlIEZsdXNoZWRJbnQ1MjoKLSAgICAgICAgICAgICAgICB2YWx1ZVNvdXJjZSA9IFZhbHVl
U291cmNlKEludDUySW5KU1N0YWNrKTsKLSAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIGNhc2UgRmx1c2hlZENlbGw6CiAgICAgICAgICAgICAgICAgdmFsdWVTb3VyY2UgPSBWYWx1
ZVNvdXJjZShDZWxsSW5KU1N0YWNrKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTE5NDIs
NyArMTg3Myw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEb3VibGVQdXRCeVZhbChO
b2RlKiBub2RlLCBTcGVjdWxhdGVDZWxsT3BlcmFuZCYgYmFzCiAgICAgRlBSUmVnIHZhbHVlUmVn
ID0gdmFsdWUuZnByKCk7CiAgICAgCiAgICAgREZHX1RZUEVfQ0hFQ0soCi0gICAgICAgIEpTVmFs
dWVSZWdzKCksIGNoaWxkMywgU3BlY0Z1bGxSZWFsTnVtYmVyLAorICAgICAgICBKU1ZhbHVlUmVn
cygpLCBjaGlsZDMsIFNwZWNSZWFsTnVtYmVyLAogICAgICAgICBtX2ppdC5icmFuY2hEb3VibGUo
CiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6RG91YmxlTm90RXF1YWxPclVub3JkZXJlZCwg
dmFsdWVSZWcsIHZhbHVlUmVnKSk7CiAgICAgCkBAIC0yMjE4LDE4ICsyMTQ5LDYgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlVG9JbnQzMihOb2RlKiBub2RlKQogICAgICAgICBp
bnQzMlJlc3VsdChyZXN1bHQuZ3ByKCksIG5vZGUsIG9wMS5mb3JtYXQoKSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgICAgIAotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgY2FzZSBNYWNo
aW5lSW50VXNlOiB7Ci0gICAgICAgIFNwZWN1bGF0ZVN0cmljdEludDUyT3BlcmFuZCBvcDEodGhp
cywgbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJl
dXNlLCBvcDEpOwotICAgICAgICBHUFJSZWcgb3AxR1BSID0gb3AxLmdwcigpOwotICAgICAgICBH
UFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwotICAgICAgICBtX2ppdC56ZXJvRXh0ZW5k
MzJUb1B0cihvcDFHUFIsIHJlc3VsdEdQUik7Ci0gICAgICAgIGludDMyUmVzdWx0KHJlc3VsdEdQ
Uiwgbm9kZSwgRGF0YUZvcm1hdEludDMyKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRp
ZiAvLyBVU0UoSlNWQUxVRTY0KQogICAgIAogICAgIGNhc2UgTnVtYmVyVXNlOgogICAgIGNhc2Ug
Tm90Q2VsbFVzZTogewpAQCAtMjI2OCw3ICsyMTg3LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZVZhbHVlVG9JbnQzMihOb2RlKiBub2RlKQogCiAgICAgICAgICAgICBpZiAobm9kZS0+
Y2hpbGQxKCkudXNlS2luZCgpID09IE51bWJlclVzZSkgewogICAgICAgICAgICAgICAgIERGR19U
WVBFX0NIRUNLKAotICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyhncHIpLCBub2RlLT5j
aGlsZDEoKSwgU3BlY0Z1bGxOdW1iZXIsCisgICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdz
KGdwciksIG5vZGUtPmNoaWxkMSgpLCBTcGVjTnVtYmVyLAogICAgICAgICAgICAgICAgICAgICBt
X2ppdC5icmFuY2hUZXN0NjQoCiAgICAgICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6WmVybywgZ3ByLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKICAgICAgICAg
ICAgIH0gZWxzZSB7CkBAIC0yMzI0LDcgKzIyNDMsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlVmFsdWVUb0ludDMyKE5vZGUqIG5vZGUpCiAKICAgICAgICAgICAgICAgICBpZiAobm9k
ZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IE51bWJlclVzZSkgewogICAgICAgICAgICAgICAgICAg
ICBERkdfVFlQRV9DSEVDSygKLSAgICAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKHRh
Z0dQUiwgcGF5bG9hZEdQUiksIG5vZGUtPmNoaWxkMSgpLCBTcGVjRnVsbE51bWJlciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKHRhZ0dQUiwgcGF5bG9hZEdQUiksIG5vZGUt
PmNoaWxkMSgpLCBTcGVjTnVtYmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgbV9qaXQuYnJh
bmNoMzIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFib3Zl
T3JFcXVhbCwgdGFnR1BSLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRydXN0ZWRJbW0z
MihKU1ZhbHVlOjpMb3dlc3RUYWcpKSk7CkBAIC0yNDcwLDE1ICsyMzg5LDE1IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnQzMlRvRG91YmxlKE5vZGUqIG5vZGUpCiAgICAgSklUQ29t
cGlsZXI6Okp1bXAgaXNJbnRlZ2VyID0gbV9qaXQuYnJhbmNoNjQoCiAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpBYm92ZU9yRXF1YWwsIG9wMUdQUiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lz
dGVyKTsKICAgICAKLSAgICBpZiAobmVlZHNUeXBlQ2hlY2sobm9kZS0+Y2hpbGQxKCksIFNwZWNG
dWxsTnVtYmVyKSkgeworICAgIGlmIChuZWVkc1R5cGVDaGVjayhub2RlLT5jaGlsZDEoKSwgU3Bl
Y051bWJlcikpIHsKICAgICAgICAgaWYgKG5vZGUtPmZsYWdzKCkgJiBOb2RlRXhpdHNGb3J3YXJk
KSB7CiAgICAgICAgICAgICBmb3J3YXJkVHlwZUNoZWNrKAotICAgICAgICAgICAgICAgIEpTVmFs
dWVSZWdzKG9wMUdQUiksIG5vZGUtPmNoaWxkMSgpLCBTcGVjRnVsbE51bWJlciwKKyAgICAgICAg
ICAgICAgICBKU1ZhbHVlUmVncyhvcDFHUFIpLCBub2RlLT5jaGlsZDEoKSwgU3BlY051bWJlciwK
ICAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2hUZXN0NjQoTWFjcm9Bc3NlbWJsZXI6Olplcm8s
IG9wMUdQUiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSwKICAgICAgICAgICAgICAg
ICBWYWx1ZVJlY292ZXJ5OjppbkdQUihvcDFHUFIsIERhdGFGb3JtYXRKUykpOwogICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgYmFja3dhcmRUeXBlQ2hlY2soCi0gICAgICAgICAgICAgICAg
SlNWYWx1ZVJlZ3Mob3AxR1BSKSwgbm9kZS0+Y2hpbGQxKCksIFNwZWNGdWxsTnVtYmVyLAorICAg
ICAgICAgICAgICAgIEpTVmFsdWVSZWdzKG9wMUdQUiksIG5vZGUtPmNoaWxkMSgpLCBTcGVjTnVt
YmVyLAogICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaFRlc3Q2NChNYWNyb0Fzc2VtYmxlcjo6
WmVybywgb3AxR1BSLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKICAgICAgICAg
fQogICAgIH0KQEAgLTI1MDEsMTUgKzI0MjAsMTUgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUludDMyVG9Eb3VibGUoTm9kZSogbm9kZSkKICAgICBKSVRDb21waWxlcjo6SnVtcCBpc0lu
dGVnZXIgPSBtX2ppdC5icmFuY2gzMigKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCBv
cDFUYWdHUFIsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZykpOwogICAgIAotICAgIGlm
IChuZWVkc1R5cGVDaGVjayhub2RlLT5jaGlsZDEoKSwgU3BlY0Z1bGxOdW1iZXIpKSB7CisgICAg
aWYgKG5lZWRzVHlwZUNoZWNrKG5vZGUtPmNoaWxkMSgpLCBTcGVjTnVtYmVyKSkgewogICAgICAg
ICBpZiAobm9kZS0+ZmxhZ3MoKSAmIE5vZGVFeGl0c0ZvcndhcmQpIHsKICAgICAgICAgICAgIGZv
cndhcmRUeXBlQ2hlY2soCi0gICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3Mob3AxVGFnR1BSLCBv
cDFQYXlsb2FkR1BSKSwgbm9kZS0+Y2hpbGQxKCksIFNwZWNGdWxsTnVtYmVyLAorICAgICAgICAg
ICAgICAgIEpTVmFsdWVSZWdzKG9wMVRhZ0dQUiwgb3AxUGF5bG9hZEdQUiksIG5vZGUtPmNoaWxk
MSgpLCBTcGVjTnVtYmVyLAogICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaDMyKE1hY3JvQXNz
ZW1ibGVyOjpBYm92ZU9yRXF1YWwsIG9wMVRhZ0dQUiwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6Okxv
d2VzdFRhZykpLAogICAgICAgICAgICAgICAgIFZhbHVlUmVjb3Zlcnk6OmluUGFpcihvcDFUYWdH
UFIsIG9wMVBheWxvYWRHUFIpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGJhY2t3
YXJkVHlwZUNoZWNrKAotICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKG9wMVRhZ0dQUiwgb3Ax
UGF5bG9hZEdQUiksIG5vZGUtPmNoaWxkMSgpLCBTcGVjRnVsbE51bWJlciwKKyAgICAgICAgICAg
ICAgICBKU1ZhbHVlUmVncyhvcDFUYWdHUFIsIG9wMVBheWxvYWRHUFIpLCBub2RlLT5jaGlsZDEo
KSwgU3BlY051bWJlciwKICAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2Vt
Ymxlcjo6QWJvdmVPckVxdWFsLCBvcDFUYWdHUFIsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpMb3dl
c3RUYWcpKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC0yNjMwLDE0ICsyNTQ5LDYgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25JbnRUeXBlZEFycmF5KE5vZGUqIG5vZGUs
IFR5cGVkQXJyYXlUeXBlIHQKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSNpZiBVU0Uo
SlNWQUxVRTY0KQotICAgIGlmIChub2RlLT5zaG91bGRTcGVjdWxhdGVNYWNoaW5lSW50KCkpIHsK
LSAgICAgICAgbV9qaXQuemVyb0V4dGVuZDMyVG9QdHIocmVzdWx0UmVnLCByZXN1bHRSZWcpOwot
ICAgICAgICBzdHJpY3RJbnQ1MlJlc3VsdChyZXN1bHRSZWcsIG5vZGUpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotI2VuZGlmCi0gICAgCiAgICAgRlBSVGVtcG9yYXJ5IGZyZXN1bHQodGhpcyk7
CiAgICAgbV9qaXQuY29udmVydEludDMyVG9Eb3VibGUocmVzdWx0UmVnLCBmcmVzdWx0LmZwcigp
KTsKICAgICBKSVRDb21waWxlcjo6SnVtcCBwb3NpdGl2ZSA9IG1faml0LmJyYW5jaDMyKE1hY3Jv
QXNzZW1ibGVyOjpHcmVhdGVyVGhhbk9yRXF1YWwsIHJlc3VsdFJlZywgVHJ1c3RlZEltbTMyKDAp
KTsKQEAgLTI2OTEsMzEgKzI2MDIsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0
QnlWYWxGb3JJbnRUeXBlZEFycmF5KEdQUlJlZyBiYXNlLCBHUFJSZWcgcHJvcGVydAogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIAotI2lmIFVTRShKU1ZBTFVFNjQp
Ci0gICAgICAgIGNhc2UgTWFjaGluZUludFVzZTogewotICAgICAgICAgICAgU3BlY3VsYXRlU3Ry
aWN0SW50NTJPcGVyYW5kIHZhbHVlT3AodGhpcywgdmFsdWVVc2UpOwotICAgICAgICAgICAgR1BS
VGVtcG9yYXJ5IHNjcmF0Y2godGhpcyk7Ci0gICAgICAgICAgICBHUFJSZWcgc2NyYXRjaFJlZyA9
IHNjcmF0Y2guZ3ByKCk7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKHZhbHVlT3AuZ3ByKCksIHNj
cmF0Y2hSZWcpOwotICAgICAgICAgICAgaWYgKGlzQ2xhbXBlZCh0eXBlKSkgewotICAgICAgICAg
ICAgICAgIEFTU0VSVChlbGVtZW50U2l6ZSh0eXBlKSA9PSAxKTsKLSAgICAgICAgICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6SnVtcCBpbkJvdW5kcyA9IG1faml0LmJyYW5jaDY0KAotICAgICAgICAg
ICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QmVsb3dPckVxdWFsLCBzY3JhdGNoUmVnLCBKSVRD
b21waWxlcjo6VHJ1c3RlZEltbTY0KDB4ZmYpKTsKLSAgICAgICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcCB0b29CaWcgPSBtX2ppdC5icmFuY2g2NCgKLSAgICAgICAgICAgICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OkdyZWF0ZXJUaGFuLCBzY3JhdGNoUmVnLCBKSVRDb21waWxlcjo6VHJ1
c3RlZEltbTY0KDB4ZmYpKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0z
MigwKSwgc2NyYXRjaFJlZyk7Ci0gICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
Y2xhbXBlZCA9IG1faml0Lmp1bXAoKTsKLSAgICAgICAgICAgICAgICB0b29CaWcubGluaygmbV9q
aXQpOwotICAgICAgICAgICAgICAgIG1faml0Lm1vdmUoSklUQ29tcGlsZXI6OlRydXN0ZWRJbW0z
MigyNTUpLCBzY3JhdGNoUmVnKTsKLSAgICAgICAgICAgICAgICBjbGFtcGVkLmxpbmsoJm1faml0
KTsKLSAgICAgICAgICAgICAgICBpbkJvdW5kcy5saW5rKCZtX2ppdCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICB2YWx1ZS5hZG9wdChzY3JhdGNoKTsKLSAgICAgICAgICAgIHZhbHVlR1BS
ID0gc2NyYXRjaFJlZzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0jZW5kaWYgLy8g
VVNFKEpTVkFMVUU2NCkKLSAgICAgICAgICAgIAogICAgICAgICBjYXNlIE51bWJlclVzZTogewog
ICAgICAgICAgICAgaWYgKGlzQ2xhbXBlZCh0eXBlKSkgewogICAgICAgICAgICAgICAgIEFTU0VS
VChlbGVtZW50U2l6ZSh0eXBlKSA9PSAxKTsKQEAgLTI5ODQsNyArMjg3MCw3IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVBZGQoTm9kZSogbm9kZSkKICAgICAgICAgICAgIGludDMyUmVz
dWx0KHJlc3VsdC5ncHIoKSwgbm9kZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
LSAgICAgICAgCisgICAgICAgICAgICAgICAgCiAgICAgICAgIGlmIChpc051bWJlckNvbnN0YW50
KG5vZGUtPmNoaWxkMigpLm5vZGUoKSkpIHsKICAgICAgICAgICAgIFNwZWN1bGF0ZUludDMyT3Bl
cmFuZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgaW50MzJfdCBpbW0y
ID0gdmFsdWVPZkludDMyQ29uc3RhbnQobm9kZS0+Y2hpbGQyKCkubm9kZSgpKTsKQEAgLTMwMjks
MzMgKzI5MTUsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQWRkKE5vZGUqIG5vZGUp
CiAgICAgICAgIGludDMyUmVzdWx0KGdwclJlc3VsdCwgbm9kZSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9Ci0gICAgICAgIAotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgY2FzZSBNYWNoaW5lSW50
VXNlOiB7Ci0gICAgICAgIC8vIFdpbGwgd2UgbmVlZCBhbiBvdmVyZmxvdyBjaGVjaz8gSWYgd2Ug
Y2FuIHByb3ZlIHRoYXQgbmVpdGhlciBpbnB1dCBjYW4gYmUKLSAgICAgICAgLy8gSW50NTIgdGhl
biB0aGUgb3ZlcmZsb3cgY2hlY2sgd2lsbCBub3QgYmUgbmVjZXNzYXJ5LgotICAgICAgICBpZiAo
IW1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkuY291bGRCZVR5cGUoU3BlY0ludDUyKQot
ICAgICAgICAgICAgJiYgIW1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDIoKSkuY291bGRCZVR5
cGUoU3BlY0ludDUyKSkgewotICAgICAgICAgICAgU3BlY3VsYXRlV2hpY2hldmVySW50NTJPcGVy
YW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBTcGVjdWxhdGVXaGlj
aGV2ZXJJbnQ1Mk9wZXJhbmQgb3AyKHRoaXMsIG5vZGUtPmNoaWxkMigpLCBvcDEpOwotICAgICAg
ICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgb3AxKTsKLSAgICAgICAgICAg
IG1faml0Lm1vdmUob3AxLmdwcigpLCByZXN1bHQuZ3ByKCkpOwotICAgICAgICAgICAgbV9qaXQu
YWRkNjQob3AyLmdwcigpLCByZXN1bHQuZ3ByKCkpOwotICAgICAgICAgICAgaW50NTJSZXN1bHQo
cmVzdWx0LmdwcigpLCBub2RlLCBvcDEuZm9ybWF0KCkpOwotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBTcGVjdWxhdGVJbnQ1Mk9wZXJhbmQgb3AxKHRo
aXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgU3BlY3VsYXRlSW50NTJPcGVyYW5kIG9wMih0
aGlzLCBub2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywg
UmV1c2UsIG9wMSwgb3AyKTsKLSAgICAgICAgbV9qaXQubW92ZShvcDEuZ3ByKCksIHJlc3VsdC5n
cHIoKSk7Ci0gICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCi0gICAgICAgICAgICBJbnQ1Mk92ZXJm
bG93LCBKU1ZhbHVlUmVncygpLCAwLAotICAgICAgICAgICAgbV9qaXQuYnJhbmNoQWRkNjQoTWFj
cm9Bc3NlbWJsZXI6Ok92ZXJmbG93LCBvcDIuZ3ByKCksIHJlc3VsdC5ncHIoKSkpOwotICAgICAg
ICBpbnQ1MlJlc3VsdChyZXN1bHQuZ3ByKCksIG5vZGUpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCiAgICAgCiAgICAgY2FzZSBOdW1iZXJVc2U6IHsK
ICAgICAgICAgU3BlY3VsYXRlRG91YmxlT3BlcmFuZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkp
OwpAQCAtMzIwMSwzMyArMzA2MCw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0
aFN1YihOb2RlKiBub2RlKQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgICAgICAKLSNpZiBV
U0UoSlNWQUxVRTY0KQotICAgIGNhc2UgTWFjaGluZUludFVzZTogewotICAgICAgICAvLyBXaWxs
IHdlIG5lZWQgYW4gb3ZlcmZsb3cgY2hlY2s/IElmIHdlIGNhbiBwcm92ZSB0aGF0IG5laXRoZXIg
aW5wdXQgY2FuIGJlCi0gICAgICAgIC8vIEludDUyIHRoZW4gdGhlIG92ZXJmbG93IGNoZWNrIHdp
bGwgbm90IGJlIG5lY2Vzc2FyeS4KLSAgICAgICAgaWYgKCFtX3N0YXRlLmZvck5vZGUobm9kZS0+
Y2hpbGQxKCkpLmNvdWxkQmVUeXBlKFNwZWNJbnQ1MikKLSAgICAgICAgICAgICYmICFtX3N0YXRl
LmZvck5vZGUobm9kZS0+Y2hpbGQyKCkpLmNvdWxkQmVUeXBlKFNwZWNJbnQ1MikpIHsKLSAgICAg
ICAgICAgIFNwZWN1bGF0ZVdoaWNoZXZlckludDUyT3BlcmFuZCBvcDEodGhpcywgbm9kZS0+Y2hp
bGQxKCkpOwotICAgICAgICAgICAgU3BlY3VsYXRlV2hpY2hldmVySW50NTJPcGVyYW5kIG9wMih0
aGlzLCBub2RlLT5jaGlsZDIoKSwgb3AxKTsKLSAgICAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1
bHQodGhpcywgUmV1c2UsIG9wMSk7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKG9wMS5ncHIoKSwg
cmVzdWx0LmdwcigpKTsKLSAgICAgICAgICAgIG1faml0LnN1YjY0KG9wMi5ncHIoKSwgcmVzdWx0
LmdwcigpKTsKLSAgICAgICAgICAgIGludDUyUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9kZSwgb3Ax
LmZvcm1hdCgpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICAKLSAg
ICAgICAgU3BlY3VsYXRlSW50NTJPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0g
ICAgICAgIFNwZWN1bGF0ZUludDUyT3BlcmFuZCBvcDIodGhpcywgbm9kZS0+Y2hpbGQyKCkpOwot
ICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBvcDEsIG9wMik7Ci0gICAg
ICAgIG1faml0Lm1vdmUob3AxLmdwcigpLCByZXN1bHQuZ3ByKCkpOwotICAgICAgICBzcGVjdWxh
dGlvbkNoZWNrKAotICAgICAgICAgICAgSW50NTJPdmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgMCwK
LSAgICAgICAgICAgIG1faml0LmJyYW5jaFN1YjY0KE1hY3JvQXNzZW1ibGVyOjpPdmVyZmxvdywg
b3AyLmdwcigpLCByZXN1bHQuZ3ByKCkpKTsKLSAgICAgICAgaW50NTJSZXN1bHQocmVzdWx0Lmdw
cigpLCBub2RlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRpZiAvLyBVU0UoSlNWQUxV
RTY0KQotCiAgICAgY2FzZSBOdW1iZXJVc2U6IHsKICAgICAgICAgU3BlY3VsYXRlRG91YmxlT3Bl
cmFuZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBTcGVjdWxhdGVEb3VibGVP
cGVyYW5kIG9wMih0aGlzLCBub2RlLT5jaGlsZDIoKSk7CkBAIC0zMjU2LDkgKzMwODgsNiBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhOZWdhdGUoTm9kZSogbm9kZSkKIAogICAg
ICAgICBtX2ppdC5tb3ZlKG9wMS5ncHIoKSwgcmVzdWx0LmdwcigpKTsKIAotICAgICAgICAvLyBO
b3RlOiB0aGVyZSBpcyBubyBub3Rpb24gb2YgYmVpbmcgbm90IHVzZWQgYXMgYSBudW1iZXIsIGJ1
dCBzb21lb25lCi0gICAgICAgIC8vIGNhcmluZyBhYm91dCBuZWdhdGl2ZSB6ZXJvLgotICAgICAg
ICAKICAgICAgICAgaWYgKGJ5dGVjb2RlQ2FuVHJ1bmNhdGVJbnRlZ2VyKG5vZGUtPmFyaXRoTm9k
ZUZsYWdzKCkpKQogICAgICAgICAgICAgbV9qaXQubmVnMzIocmVzdWx0LmdwcigpKTsKICAgICAg
ICAgZWxzZSBpZiAoYnl0ZWNvZGVDYW5JZ25vcmVOZWdhdGl2ZVplcm8obm9kZS0+YXJpdGhOb2Rl
RmxhZ3MoKSkpCkBAIC0zMjcxLDQyICszMTAwLDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUFyaXRoTmVnYXRlKE5vZGUqIG5vZGUpCiAgICAgICAgIGludDMyUmVzdWx0KHJlc3VsdC5n
cHIoKSwgbm9kZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0KLSNpZiBVU0UoSlNWQUxVRTY0
KQotICAgIGNhc2UgTWFjaGluZUludFVzZTogewotICAgICAgICBpZiAoIW1fc3RhdGUuZm9yTm9k
ZShub2RlLT5jaGlsZDEoKSkuY291bGRCZVR5cGUoU3BlY0ludDUyKSkgewotICAgICAgICAgICAg
U3BlY3VsYXRlV2hpY2hldmVySW50NTJPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7
Ci0gICAgICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwotICAgICAgICAgICAgR1BS
UmVnIG9wMUdQUiA9IG9wMS5ncHIoKTsKLSAgICAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSBy
ZXN1bHQuZ3ByKCk7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKG9wMUdQUiwgcmVzdWx0R1BSKTsK
LSAgICAgICAgICAgIG1faml0Lm5lZzY0KHJlc3VsdEdQUik7Ci0gICAgICAgICAgICBpZiAoIWJ5
dGVjb2RlQ2FuSWdub3JlTmVnYXRpdmVaZXJvKG5vZGUtPmFyaXRoTm9kZUZsYWdzKCkpKSB7Ci0g
ICAgICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKLSAgICAgICAgICAgICAgICAgICAgTmVn
YXRpdmVaZXJvLCBKU1ZhbHVlUmVncygpLCAwLAotICAgICAgICAgICAgICAgICAgICBtX2ppdC5i
cmFuY2hUZXN0NjQoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIHJlc3VsdEdQUikpOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgaW50NTJSZXN1bHQocmVzdWx0R1BSLCBub2RlLCBvcDEuZm9ybWF0
KCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBT
cGVjdWxhdGVJbnQ1Mk9wZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAg
R1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKLSAgICAgICAgR1BSUmVnIG9wMUdQUiA9IG9wMS5n
cHIoKTsKLSAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKLSAgICAgICAg
bV9qaXQubW92ZShvcDFHUFIsIHJlc3VsdEdQUik7Ci0gICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
Ci0gICAgICAgICAgICBJbnQ1Mk92ZXJmbG93LCBKU1ZhbHVlUmVncygpLCAwLAotICAgICAgICAg
ICAgbV9qaXQuYnJhbmNoTmVnNjQoTWFjcm9Bc3NlbWJsZXI6Ok92ZXJmbG93LCByZXN1bHRHUFIp
KTsKLSAgICAgICAgaWYgKCFieXRlY29kZUNhbklnbm9yZU5lZ2F0aXZlWmVybyhub2RlLT5hcml0
aE5vZGVGbGFncygpKSkgewotICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKLSAgICAgICAg
ICAgICAgICBOZWdhdGl2ZVplcm8sIEpTVmFsdWVSZWdzKCksIDAsCi0gICAgICAgICAgICAgICAg
bV9qaXQuYnJhbmNoVGVzdDY0KE1hY3JvQXNzZW1ibGVyOjpaZXJvLCByZXN1bHRHUFIpKTsKLSAg
ICAgICAgfQotICAgICAgICBpbnQ1MlJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIAogICAgIGNh
c2UgTnVtYmVyVXNlOiB7CiAgICAgICAgIFNwZWN1bGF0ZURvdWJsZU9wZXJhbmQgb3AxKHRoaXMs
IG5vZGUtPmNoaWxkMSgpKTsKQEAgLTMzNzIsNjIgKzMxNjUsNiBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlQXJpdGhNdWwoTm9kZSogbm9kZSkKICAgICAgICAgaW50MzJSZXN1bHQocmVz
dWx0LmdwcigpLCBub2RlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAKLSNpZiBVU0Uo
SlNWQUxVRTY0KSAgIAotICAgIGNhc2UgTWFjaGluZUludFVzZTogewotICAgICAgICAvLyBUaGlz
IGlzIHN1cGVyIGNsZXZlci4gV2Ugd2FudCB0byBkbyBhbiBpbnQ1MiBtdWx0aXBsaWNhdGlvbiBh
bmQgY2hlY2sgdGhlCi0gICAgICAgIC8vIGludDUyIG92ZXJmbG93IGJpdC4gVGhlcmUgaXMgbm8g
ZGlyZWN0IGhhcmR3YXJlIHN1cHBvcnQgZm9yIHRoaXMsIGJ1dCB3ZSBkbwotICAgICAgICAvLyBo
YXZlIHRoZSBhYmlsaXR5IHRvIGRvIGFuIGludDY0IG11bHRpcGxpY2F0aW9uIGFuZCBjaGVjayB0
aGUgaW50NjQgb3ZlcmZsb3cKLSAgICAgICAgLy8gYml0LiBXZSBsZXZlcmFnZSB0aGF0LiBDb25z
aWRlciB0aGF0IGEsIGIgYXJlIGludDUyIG51bWJlcnMgaW5zaWRlIGludDY0Ci0gICAgICAgIC8v
IHJlZ2lzdGVycywgd2l0aCB0aGUgaGlnaCAxMiBiaXRzIGJlaW5nIHNpZ24tZXh0ZW5kZWQuIFdl
IGNhbiBkbzoKLSAgICAgICAgLy8KLSAgICAgICAgLy8gICAgIChhICogKGIgPDwgMTIpKQotICAg
ICAgICAvLwotICAgICAgICAvLyBUaGlzIHdpbGwgZ2l2ZSB1cyBhIGxlZnQtc2hpZnRlZCBpbnQ1
MiAodmFsdWUgaXMgaW4gaGlnaCA1MiBiaXRzLCBsb3cgMTYKLSAgICAgICAgLy8gYml0cyBhcmUg
emVybykgcGx1cyB0aGUgaW50NTIgb3ZlcmZsb3cgYml0LiBJLmUuIHdoZXRoZXIgdGhpcyA2NC1i
aXQKLSAgICAgICAgLy8gbXVsdGlwbGljYXRpb24gb3ZlcmZsb3dzIGlzIGlkZW50aWNhbCB0byB3
aGV0aGVyIHRoZSAnYSAqIGInIDUyLWJpdAotICAgICAgICAvLyBtdWx0aXBsaWNhdGlvbiBvdmVy
Zmxvd3MuCi0gICAgICAgIC8vCi0gICAgICAgIC8vIEluIG91ciBub21lbmNsYXR1cmUsIHRoaXMg
aXM6Ci0gICAgICAgIC8vCi0gICAgICAgIC8vICAgICBzdHJpY3RJbnQ1MihhKSAqIGludDUyKGIp
ID0+IGludDUyCi0gICAgICAgIC8vCi0gICAgICAgIC8vIFRoYXQgaXMgInN0cmljdEludDUyIiBt
ZWFucyB1bnNoaWZ0ZWQgYW5kICJpbnQ1MiIgbWVhbnMgbGVmdC1zaGlmdGVkIGJ5IDE2Ci0gICAg
ICAgIC8vIGJpdHMuCi0gICAgICAgIC8vCi0gICAgICAgIC8vIFdlIGRvbid0IGNhcmUgd2hpY2gg
b2Ygb3AxIG9yIG9wMiBzZXJ2ZXMgYXMgdGhlIGxlZnQtc2hpZnRlZCBvcGVyYW5kLCBzbwotICAg
ICAgICAvLyB3ZSBqdXN0IGRvIHdoYXRldmVyIGlzIG1vcmUgY29udmVuaWVudCBmb3Igb3AxIGFu
ZCBoYXZlIG9wMiBkbyB0aGUKLSAgICAgICAgLy8gb3Bwb3NpdGUuIFRoaXMgZW5zdXJlcyB0aGF0
IHdlIGRvIGF0IG1vc3Qgb25lIHNoaWZ0LgotCi0gICAgICAgIFNwZWN1bGF0ZVdoaWNoZXZlcklu
dDUyT3BlcmFuZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICBTcGVjdWxhdGVX
aGljaGV2ZXJJbnQ1Mk9wZXJhbmQgb3AyKHRoaXMsIG5vZGUtPmNoaWxkMigpLCBPcHBvc2l0ZVNo
aWZ0LCBvcDEpOwotICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwotICAgICAgICAK
LSAgICAgICAgR1BSUmVnIG9wMUdQUiA9IG9wMS5ncHIoKTsKLSAgICAgICAgR1BSUmVnIG9wMkdQ
UiA9IG9wMi5ncHIoKTsKLSAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsK
LSAgICAgICAgCi0gICAgICAgIG1faml0Lm1vdmUob3AxR1BSLCByZXN1bHRHUFIpOwotICAgICAg
ICBzcGVjdWxhdGlvbkNoZWNrKAotICAgICAgICAgICAgSW50NTJPdmVyZmxvdywgSlNWYWx1ZVJl
Z3MoKSwgMCwKLSAgICAgICAgICAgIG1faml0LmJyYW5jaE11bDY0KE1hY3JvQXNzZW1ibGVyOjpP
dmVyZmxvdywgb3AyR1BSLCByZXN1bHRHUFIpKTsKLSAgICAgICAgCi0gICAgICAgIGlmICghYnl0
ZWNvZGVDYW5JZ25vcmVOZWdhdGl2ZVplcm8obm9kZS0+YXJpdGhOb2RlRmxhZ3MoKSkpIHsKLSAg
ICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHJlc3VsdE5vblplcm8gPSBtX2ppdC5icmFu
Y2hUZXN0NjQoCi0gICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIHJlc3Vs
dEdQUik7Ci0gICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAotICAgICAgICAgICAgICAgIE5l
Z2F0aXZlWmVybywgSlNWYWx1ZVJlZ3MoKSwgMCwKLSAgICAgICAgICAgICAgICBtX2ppdC5icmFu
Y2g2NChNYWNyb0Fzc2VtYmxlcjo6TGVzc1RoYW4sIG9wMUdQUiwgVHJ1c3RlZEltbTY0KDApKSk7
Ci0gICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAotICAgICAgICAgICAgICAgIE5lZ2F0aXZl
WmVybywgSlNWYWx1ZVJlZ3MoKSwgMCwKLSAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2g2NChN
YWNyb0Fzc2VtYmxlcjo6TGVzc1RoYW4sIG9wMkdQUiwgVHJ1c3RlZEltbTY0KDApKSk7Ci0gICAg
ICAgICAgICByZXN1bHROb25aZXJvLmxpbmsoJm1faml0KTsKLSAgICAgICAgfQotICAgICAgICAK
LSAgICAgICAgaW50NTJSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLSNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQogICAgICAgICAKICAgICBjYXNlIE51bWJl
clVzZTogewogICAgICAgICBTcGVjdWxhdGVEb3VibGVPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5j
aGlsZDEoKSk7CkBAIC0zODUxLDE0ICszNTg4LDcgQEAgYm9vbCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGFyZShOb2RlKiBub2RlLCBNYWNyb0Fzc2VtYmxlcjo6UmVsYXRpb25hbENvbmRpdGlvbiBjb24K
ICAgICAgICAgY29tcGlsZUludDMyQ29tcGFyZShub2RlLCBjb25kaXRpb24pOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIAotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgaWYgKG5v
ZGUtPmlzQmluYXJ5VXNlS2luZChNYWNoaW5lSW50VXNlKSkgewotICAgICAgICBjb21waWxlSW50
NTJDb21wYXJlKG5vZGUsIGNvbmRpdGlvbik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9
Ci0jZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKLSAgICAKKwogICAgIGlmIChub2RlLT5pc0JpbmFy
eVVzZUtpbmQoTnVtYmVyVXNlKSkgewogICAgICAgICBjb21waWxlRG91YmxlQ29tcGFyZShub2Rl
LCBkb3VibGVDb25kaXRpb24pOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00MDA4LDIzICsz
NzM4LDYgQEAgYm9vbCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmljdEVxKE5vZGUqIG5vZGUp
CiAgICAgICAgIGNvbXBpbGVJbnQzMkNvbXBhcmUobm9kZSwgTWFjcm9Bc3NlbWJsZXI6OkVxdWFs
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICAKLSNpZiBVU0UoSlNWQUxVRTY0
KSAgIAotICAgIGNhc2UgTWFjaGluZUludFVzZTogewotICAgICAgICB1bnNpZ25lZCBicmFuY2hJ
bmRleEluQmxvY2sgPSBkZXRlY3RQZWVwSG9sZUJyYW5jaCgpOwotICAgICAgICBpZiAoYnJhbmNo
SW5kZXhJbkJsb2NrICE9IFVJTlRfTUFYKSB7Ci0gICAgICAgICAgICBOb2RlKiBicmFuY2hOb2Rl
ID0gbV9ibG9jay0+YXQoYnJhbmNoSW5kZXhJbkJsb2NrKTsKLSAgICAgICAgICAgIGNvbXBpbGVQ
ZWVwSG9sZUludDUyQnJhbmNoKG5vZGUsIGJyYW5jaE5vZGUsIE1hY3JvQXNzZW1ibGVyOjpFcXVh
bCk7Ci0gICAgICAgICAgICB1c2Uobm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgdXNlKG5v
ZGUtPmNoaWxkMigpKTsKLSAgICAgICAgICAgIG1faW5kZXhJbkJsb2NrID0gYnJhbmNoSW5kZXhJ
bkJsb2NrOwotICAgICAgICAgICAgbV9jdXJyZW50Tm9kZSA9IGJyYW5jaE5vZGU7Ci0gICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBjb21waWxlSW50NTJDb21wYXJl
KG5vZGUsIE1hY3JvQXNzZW1ibGVyOjpFcXVhbCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICB9Ci0jZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKICAgICAgICAgCiAgICAgY2FzZSBOdW1iZXJV
c2U6IHsKICAgICAgICAgdW5zaWduZWQgYnJhbmNoSW5kZXhJbkJsb2NrID0gZGV0ZWN0UGVlcEhv
bGVCcmFuY2goKTsKQEAgLTQ3ODAsMjIgKzQ0OTMsOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpz
cGVjdWxhdGVJbnQzMihFZGdlIGVkZ2UpCiAgICAgKFNwZWN1bGF0ZUludDMyT3BlcmFuZCh0aGlz
LCBlZGdlKSkuZ3ByKCk7CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU1hY2hp
bmVJbnQoRWRnZSBlZGdlKQotewotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgaWYgKCFuZWVkc1R5
cGVDaGVjayhlZGdlLCBTcGVjTWFjaGluZUludCkpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAg
ICAoU3BlY3VsYXRlV2hpY2hldmVySW50NTJPcGVyYW5kKHRoaXMsIGVkZ2UpKS5ncHIoKTsKLSNl
bHNlIC8vIFVTRShKU1ZBTFVFNjQpCi0gICAgVU5VU0VEX1BBUkFNKGVkZ2UpOwotICAgIFVOUkVB
Q0hBQkxFX0ZPUl9QTEFURk9STSgpOwotI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCi19Ci0KIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU51bWJlcihFZGdlIGVkZ2UpCiB7Ci0gICAgaWYg
KCFuZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjRnVsbE51bWJlcikpCisgICAgaWYgKCFuZWVkc1R5
cGVDaGVjayhlZGdlLCBTcGVjTnVtYmVyKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIChT
cGVjdWxhdGVEb3VibGVPcGVyYW5kKHRoaXMsIGVkZ2UpKS5mcHIoKTsKQEAgLTQ4MDMsMTMgKzQ1
MDMsMTMgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTnVtYmVyKEVkZ2UgZWRnZSkK
IAogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlUmVhbE51bWJlcihFZGdlIGVkZ2UpCiB7
Ci0gICAgaWYgKCFuZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjRnVsbFJlYWxOdW1iZXIpKQorICAg
IGlmICghbmVlZHNUeXBlQ2hlY2soZWRnZSwgU3BlY1JlYWxOdW1iZXIpKQogICAgICAgICByZXR1
cm47CiAgICAgCiAgICAgU3BlY3VsYXRlRG91YmxlT3BlcmFuZCBvcGVyYW5kKHRoaXMsIGVkZ2Up
OwogICAgIEZQUlJlZyBmcHIgPSBvcGVyYW5kLmZwcigpOwogICAgIERGR19UWVBFX0NIRUNLKAot
ICAgICAgICBKU1ZhbHVlUmVncygpLCBlZGdlLCBTcGVjRnVsbFJlYWxOdW1iZXIsCisgICAgICAg
IEpTVmFsdWVSZWdzKCksIGVkZ2UsIFNwZWNSZWFsTnVtYmVyLAogICAgICAgICBtX2ppdC5icmFu
Y2hEb3VibGUoCiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6RG91YmxlTm90RXF1YWxPclVu
b3JkZXJlZCwgZnByLCBmcHIpKTsKIH0KQEAgLTUwNzEsNyArNDc3MSw3IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OnNwZWN1bGF0ZShOb2RlKiwgRWRnZSBlZGdlKQogICAgICAgICBBU1NFUlQoIW5l
ZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNJbnQzMikpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEtub3duTnVtYmVyVXNlOgotICAgICAgICBBU1NFUlQoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNw
ZWNGdWxsTnVtYmVyKSk7CisgICAgICAgIEFTU0VSVCghbmVlZHNUeXBlQ2hlY2soZWRnZSwgU3Bl
Y051bWJlcikpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEtub3duQ2VsbFVzZToKICAgICAg
ICAgQVNTRVJUKCFuZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjQ2VsbCkpOwpAQCAtNTA4Miw5ICs0
NzgyLDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKE5vZGUqLCBFZGdlIGVkZ2Up
CiAgICAgY2FzZSBJbnQzMlVzZToKICAgICAgICAgc3BlY3VsYXRlSW50MzIoZWRnZSk7CiAgICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgTWFjaGluZUludFVzZToKLSAgICAgICAgc3BlY3VsYXRlTWFj
aGluZUludChlZGdlKTsKLSAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBSZWFsTnVtYmVyVXNlOgog
ICAgICAgICBzcGVjdWxhdGVSZWFsTnVtYmVyKGVkZ2UpOwogICAgICAgICBicmVhazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCBkZDI5Mzg1
YjgyYjQ2NWY2YThhZDk3ZDk2MjRhOWUxMTNlMmVkZmI5Li4wODA1MGE3MTA4YmZmZTFmNWM3ZWVi
NjI5Y2Q4Y2I3MTFiOGQ5MzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5oCkBAIC0xNTksNyArMTU5LDkgQEAgcHVibGljOgogICAgIC8vIGFuZCBp
dHMgbWFjaGluZSByZWdpc3RlcnMgbWF5IGJlIHJldXNlZC4KICAgICBib29sIGNhblJldXNlKE5v
ZGUqIG5vZGUpCiAgICAgewotICAgICAgICByZXR1cm4gZ2VuZXJhdGlvbkluZm8obm9kZSkuY2Fu
UmV1c2UoKTsKKyAgICAgICAgVmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdpc3RlciA9IG5vZGUt
PnZpcnR1YWxSZWdpc3RlcigpOworICAgICAgICBHZW5lcmF0aW9uSW5mbyYgaW5mbyA9IGdlbmVy
YXRpb25JbmZvRnJvbVZpcnR1YWxSZWdpc3Rlcih2aXJ0dWFsUmVnaXN0ZXIpOworICAgICAgICBy
ZXR1cm4gaW5mby5jYW5SZXVzZSgpOwogICAgIH0KICAgICBib29sIGNhblJldXNlKEVkZ2Ugbm9k
ZVVzZSkKICAgICB7CkBAIC0yMzUsMTEgKzIzNywxNSBAQCBwdWJsaWM6CiAgICAgLy8gYXZvaWQg
c3BpbGxpbmcgdmFsdWVzIHdlIHdpbGwgbmVlZCBpbW1lZGlhdGVseSkuCiAgICAgYm9vbCBpc0Zp
bGxlZChOb2RlKiBub2RlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGdlbmVyYXRpb25JbmZvKG5v
ZGUpLnJlZ2lzdGVyRm9ybWF0KCkgIT0gRGF0YUZvcm1hdE5vbmU7CisgICAgICAgIFZpcnR1YWxS
ZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIgPSBub2RlLT52aXJ0dWFsUmVnaXN0ZXIoKTsKKyAgICAg
ICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBnZW5lcmF0aW9uSW5mb0Zyb21WaXJ0dWFsUmVnaXN0
ZXIodmlydHVhbFJlZ2lzdGVyKTsKKyAgICAgICAgcmV0dXJuIGluZm8ucmVnaXN0ZXJGb3JtYXQo
KSAhPSBEYXRhRm9ybWF0Tm9uZTsKICAgICB9CiAgICAgYm9vbCBpc0ZpbGxlZERvdWJsZShOb2Rl
KiBub2RlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGdlbmVyYXRpb25JbmZvKG5vZGUpLnJlZ2lz
dGVyRm9ybWF0KCkgPT0gRGF0YUZvcm1hdERvdWJsZTsKKyAgICAgICAgVmlydHVhbFJlZ2lzdGVy
IHZpcnR1YWxSZWdpc3RlciA9IG5vZGUtPnZpcnR1YWxSZWdpc3RlcigpOworICAgICAgICBHZW5l
cmF0aW9uSW5mbyYgaW5mbyA9IGdlbmVyYXRpb25JbmZvRnJvbVZpcnR1YWxSZWdpc3Rlcih2aXJ0
dWFsUmVnaXN0ZXIpOworICAgICAgICByZXR1cm4gaW5mby5yZWdpc3RlckZvcm1hdCgpID09IERh
dGFGb3JtYXREb3VibGU7CiAgICAgfQogCiAgICAgLy8gQ2FsbGVkIG9uIGFuIG9wZXJhbmQgb25j
ZSBpdCBoYXMgYmVlbiBjb25zdW1lZCBieSBhIHBhcmVudCBub2RlLgpAQCAtMjQ3LDcgKzI1Myw4
IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGlmICghbm9kZS0+aGFzUmVzdWx0KCkpCiAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIEdlbmVyYXRpb25JbmZvJiBpbmZvID0gZ2VuZXJhdGlv
bkluZm8obm9kZSk7CisgICAgICAgIFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIgPSBu
b2RlLT52aXJ0dWFsUmVnaXN0ZXIoKTsKKyAgICAgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBn
ZW5lcmF0aW9uSW5mb0Zyb21WaXJ0dWFsUmVnaXN0ZXIodmlydHVhbFJlZ2lzdGVyKTsKIAogICAg
ICAgICAvLyB1c2UoKSByZXR1cm5zIHRydWUgd2hlbiB0aGUgdmFsdWUgYmVjb21lcyBkZWFkLCBh
bmQgYW55CiAgICAgICAgIC8vIGFzc29jaWF0ZWQgcmVzb3VyY2VzIG1heSBiZSBmcmVlZC4KQEAg
LTMyNiw3ICszMzMsNiBAQCBwdWJsaWM6CiAgICAgLy8gbWFjaGluZSByZWdpc3RlcnMsIGltcGxp
Y2l0bHkgZ2VuZXJhdGluZyBzcGVjdWxhdGlvbiBjaGVja3MgYXMgbmVlZGVkLgogICAgIEdQUlJl
ZyBmaWxsU3BlY3VsYXRlSW50MzIoRWRnZSwgRGF0YUZvcm1hdCYgcmV0dXJuRm9ybWF0KTsKICAg
ICBHUFJSZWcgZmlsbFNwZWN1bGF0ZUludDMyU3RyaWN0KEVkZ2UpOwotICAgIEdQUlJlZyBmaWxs
U3BlY3VsYXRlSW50NTIoRWRnZSwgRGF0YUZvcm1hdCBkZXNpcmVkRm9ybWF0KTsKICAgICBGUFJS
ZWcgZmlsbFNwZWN1bGF0ZURvdWJsZShFZGdlKTsKICAgICBHUFJSZWcgZmlsbFNwZWN1bGF0ZUNl
bGwoRWRnZSk7CiAgICAgR1BSUmVnIGZpbGxTcGVjdWxhdGVCb29sZWFuKEVkZ2UpOwpAQCAtNDYy
LDggKzQ2OCw2IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBib3hEb3VibGUoZnBy
LCBhbGxvY2F0ZSgpKTsKICAgICB9Ci0gICAgCi0gICAgdm9pZCBib3hJbnQ1MihHUFJSZWcgc291
cmNlR1BSLCBHUFJSZWcgdGFyZ2V0R1BSLCBEYXRhRm9ybWF0KTsKICNlbGlmIFVTRShKU1ZBTFVF
MzJfNjQpCiAgICAgdm9pZCBib3hEb3VibGUoRlBSUmVnIGZwciwgR1BSUmVnIHRhZ0dQUiwgR1BS
UmVnIHBheWxvYWRHUFIpCiAgICAgewpAQCAtNTU1LDExICs1NTksMTEgQEAgcHVibGljOgogICAg
ICAgICB9CiAgICAgfQogICAgIAotICAgIGJvb2wgaXNLbm93bkludGVnZXIoTm9kZSogbm9kZSkg
eyByZXR1cm4gbV9zdGF0ZS5mb3JOb2RlKG5vZGUpLmlzVHlwZShTcGVjSW50MzIpOyB9Ci0gICAg
Ym9vbCBpc0tub3duQ2VsbChOb2RlKiBub2RlKSB7IHJldHVybiBtX3N0YXRlLmZvck5vZGUobm9k
ZSkuaXNUeXBlKFNwZWNDZWxsKTsgfQorICAgIGJvb2wgaXNLbm93bkludGVnZXIoTm9kZSogbm9k
ZSkgeyByZXR1cm4gIShtX3N0YXRlLmZvck5vZGUobm9kZSkubV90eXBlICYgflNwZWNJbnQzMik7
IH0KKyAgICBib29sIGlzS25vd25DZWxsKE5vZGUqIG5vZGUpIHsgcmV0dXJuICEobV9zdGF0ZS5m
b3JOb2RlKG5vZGUpLm1fdHlwZSAmIH5TcGVjQ2VsbCk7IH0KICAgICAKICAgICBib29sIGlzS25v
d25Ob3RJbnRlZ2VyKE5vZGUqIG5vZGUpIHsgcmV0dXJuICEobV9zdGF0ZS5mb3JOb2RlKG5vZGUp
Lm1fdHlwZSAmIFNwZWNJbnQzMik7IH0KLSAgICBib29sIGlzS25vd25Ob3ROdW1iZXIoTm9kZSog
bm9kZSkgeyByZXR1cm4gIShtX3N0YXRlLmZvck5vZGUobm9kZSkubV90eXBlICYgU3BlY0Z1bGxO
dW1iZXIpOyB9CisgICAgYm9vbCBpc0tub3duTm90TnVtYmVyKE5vZGUqIG5vZGUpIHsgcmV0dXJu
ICEobV9zdGF0ZS5mb3JOb2RlKG5vZGUpLm1fdHlwZSAmIFNwZWNOdW1iZXIpOyB9CiAgICAgYm9v
bCBpc0tub3duTm90Q2VsbChOb2RlKiBub2RlKSB7IHJldHVybiAhKG1fc3RhdGUuZm9yTm9kZShu
b2RlKS5tX3R5cGUgJiBTcGVjQ2VsbCk7IH0KICAgICAKICAgICAvLyBDaGVja3MvYWNjZXNzb3Jz
IGZvciBjb25zdGFudCB2YWx1ZXMuCkBAIC04MTIsMjUgKzgxNiw2IEBAIHB1YmxpYzoKICAgICB7
CiAgICAgICAgIGludDMyUmVzdWx0KHJlZywgbm9kZSwgRGF0YUZvcm1hdEludDMyLCBtb2RlKTsK
ICAgICB9Ci0gICAgdm9pZCBpbnQ1MlJlc3VsdChHUFJSZWcgcmVnLCBOb2RlKiBub2RlLCBEYXRh
Rm9ybWF0IGZvcm1hdCwgVXNlQ2hpbGRyZW5Nb2RlIG1vZGUgPSBDYWxsVXNlQ2hpbGRyZW4pCi0g
ICAgewotICAgICAgICBpZiAobW9kZSA9PSBDYWxsVXNlQ2hpbGRyZW4pCi0gICAgICAgICAgICB1
c2VDaGlsZHJlbihub2RlKTsKLQotICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lz
dGVyID0gbm9kZS0+dmlydHVhbFJlZ2lzdGVyKCk7Ci0gICAgICAgIEdlbmVyYXRpb25JbmZvJiBp
bmZvID0gZ2VuZXJhdGlvbkluZm9Gcm9tVmlydHVhbFJlZ2lzdGVyKHZpcnR1YWxSZWdpc3Rlcik7
Ci0KLSAgICAgICAgbV9ncHJzLnJldGFpbihyZWcsIHZpcnR1YWxSZWdpc3RlciwgU3BpbGxPcmRl
ckpTKTsKLSAgICAgICAgaW5mby5pbml0SW50NTIobm9kZSwgbm9kZS0+cmVmQ291bnQoKSwgcmVn
LCBmb3JtYXQpOwotICAgIH0KLSAgICB2b2lkIGludDUyUmVzdWx0KEdQUlJlZyByZWcsIE5vZGUq
IG5vZGUsIFVzZUNoaWxkcmVuTW9kZSBtb2RlID0gQ2FsbFVzZUNoaWxkcmVuKQotICAgIHsKLSAg
ICAgICAgaW50NTJSZXN1bHQocmVnLCBub2RlLCBEYXRhRm9ybWF0SW50NTIsIG1vZGUpOwotICAg
IH0KLSAgICB2b2lkIHN0cmljdEludDUyUmVzdWx0KEdQUlJlZyByZWcsIE5vZGUqIG5vZGUsIFVz
ZUNoaWxkcmVuTW9kZSBtb2RlID0gQ2FsbFVzZUNoaWxkcmVuKQotICAgIHsKLSAgICAgICAgaW50
NTJSZXN1bHQocmVnLCBub2RlLCBEYXRhRm9ybWF0U3RyaWN0SW50NTIsIG1vZGUpOwotICAgIH0K
ICAgICB2b2lkIG5vUmVzdWx0KE5vZGUqIG5vZGUsIFVzZUNoaWxkcmVuTW9kZSBtb2RlID0gQ2Fs
bFVzZUNoaWxkcmVuKQogICAgIHsKICAgICAgICAgaWYgKG1vZGUgPT0gVXNlQ2hpbGRyZW5DYWxs
ZWRFeHBsaWNpdGx5KQpAQCAtOTE1LDcgKzkwMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGluaXRD
b25zdGFudEluZm8oTm9kZSogbm9kZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChpc0ludDMyQ29u
c3RhbnQobm9kZSkgfHwgaXNOdW1iZXJDb25zdGFudChub2RlKSB8fCBpc0pTQ29uc3RhbnQobm9k
ZSkpOwotICAgICAgICBnZW5lcmF0aW9uSW5mbyhub2RlKS5pbml0Q29uc3RhbnQobm9kZSwgbm9k
ZS0+cmVmQ291bnQoKSk7CisgICAgICAgIGdlbmVyYXRpb25JbmZvRnJvbVZpcnR1YWxSZWdpc3Rl
cihub2RlLT52aXJ0dWFsUmVnaXN0ZXIoKSkuaW5pdENvbnN0YW50KG5vZGUsIG5vZGUtPnJlZkNv
dW50KCkpOwogICAgIH0KICAgICAKICAgICAvLyBUaGVzZSBtZXRob2RzIGFkZCBjYWxscyB0byBD
KysgaGVscGVyIGZ1bmN0aW9ucy4KQEAgLTE5MDQsMjIgKzE4ODksMTUgQEAgcHVibGljOgogICAg
ICAgICBpZiAoaXNJbnQzMkNvbnN0YW50KG5vZGUpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAKLSAgICAgICAgcmV0dXJuIGdlbmVyYXRpb25JbmZvKG5vZGUpLmlzSlNJbnQzMigpOwotICAg
IH0KLSAgICAKLSAgICBib29sIGJldHRlclVzZVN0cmljdEludDUyKE5vZGUqIG5vZGUpCi0gICAg
ewotICAgICAgICByZXR1cm4gIWdlbmVyYXRpb25JbmZvKG5vZGUpLmlzSW50NTIoKTsKLSAgICB9
Ci0gICAgYm9vbCBiZXR0ZXJVc2VTdHJpY3RJbnQ1MihFZGdlIGVkZ2UpCi0gICAgewotICAgICAg
ICByZXR1cm4gYmV0dGVyVXNlU3RyaWN0SW50NTIoZWRnZS5ub2RlKCkpOworICAgICAgICBWaXJ0
dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyID0gbm9kZS0+dmlydHVhbFJlZ2lzdGVyKCk7Cisg
ICAgICAgIEdlbmVyYXRpb25JbmZvJiBpbmZvID0gZ2VuZXJhdGlvbkluZm9Gcm9tVmlydHVhbFJl
Z2lzdGVyKHZpcnR1YWxSZWdpc3Rlcik7CisgICAgICAgIAorICAgICAgICByZXR1cm4gaW5mby5p
c0pTSW50MzIoKTsKICAgICB9CiAgICAgCiAgICAgYm9vbCBjb21wYXJlKE5vZGUqLCBNYWNyb0Fz
c2VtYmxlcjo6UmVsYXRpb25hbENvbmRpdGlvbiwgTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUNvbmRp
dGlvbiwgU19ERkdPcGVyYXRpb25fRUpKKTsKICAgICBib29sIGNvbXBpbGVQZWVwSG9sZUJyYW5j
aChOb2RlKiwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0aW9uYWxDb25kaXRpb24sIE1hY3JvQXNzZW1i
bGVyOjpEb3VibGVDb25kaXRpb24sIFNfREZHT3BlcmF0aW9uX0VKSik7CiAgICAgdm9pZCBjb21w
aWxlUGVlcEhvbGVJbnQzMkJyYW5jaChOb2RlKiwgTm9kZSogYnJhbmNoTm9kZSwgSklUQ29tcGls
ZXI6OlJlbGF0aW9uYWxDb25kaXRpb24pOwotICAgIHZvaWQgY29tcGlsZVBlZXBIb2xlSW50NTJC
cmFuY2goTm9kZSosIE5vZGUqIGJyYW5jaE5vZGUsIEpJVENvbXBpbGVyOjpSZWxhdGlvbmFsQ29u
ZGl0aW9uKTsKICAgICB2b2lkIGNvbXBpbGVQZWVwSG9sZUJvb2xlYW5CcmFuY2goTm9kZSosIE5v
ZGUqIGJyYW5jaE5vZGUsIEpJVENvbXBpbGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uKTsKICAgICB2
b2lkIGNvbXBpbGVQZWVwSG9sZURvdWJsZUJyYW5jaChOb2RlKiwgTm9kZSogYnJhbmNoTm9kZSwg
SklUQ29tcGlsZXI6OkRvdWJsZUNvbmRpdGlvbik7CiAgICAgdm9pZCBjb21waWxlUGVlcEhvbGVP
YmplY3RFcXVhbGl0eShOb2RlKiwgTm9kZSogYnJhbmNoTm9kZSk7CkBAIC0xOTY3LDcgKzE5NDUs
NiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21waWxlTmV3VHlwZWRBcnJheShOb2RlKik7CiAgICAg
CiAgICAgdm9pZCBjb21waWxlSW50MzJDb21wYXJlKE5vZGUqLCBNYWNyb0Fzc2VtYmxlcjo6UmVs
YXRpb25hbENvbmRpdGlvbik7Ci0gICAgdm9pZCBjb21waWxlSW50NTJDb21wYXJlKE5vZGUqLCBN
YWNyb0Fzc2VtYmxlcjo6UmVsYXRpb25hbENvbmRpdGlvbik7CiAgICAgdm9pZCBjb21waWxlQm9v
bGVhbkNvbXBhcmUoTm9kZSosIE1hY3JvQXNzZW1ibGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uKTsK
ICAgICB2b2lkIGNvbXBpbGVEb3VibGVDb21wYXJlKE5vZGUqLCBNYWNyb0Fzc2VtYmxlcjo6RG91
YmxlQ29uZGl0aW9uKTsKICAgICAKQEAgLTIxNDEsNyArMjExOCw2IEBAIHB1YmxpYzoKICAgICB2
b2lkIGZvcndhcmRUeXBlQ2hlY2soSlNWYWx1ZVNvdXJjZSwgRWRnZSwgU3BlY3VsYXRlZFR5cGUg
dHlwZXNQYXNzZWRUaHJvdWdoLCBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBqdW1wVG9GYWlsLCBjb25z
dCBWYWx1ZVJlY292ZXJ5Jik7CiAKICAgICB2b2lkIHNwZWN1bGF0ZUludDMyKEVkZ2UpOwotICAg
IHZvaWQgc3BlY3VsYXRlTWFjaGluZUludChFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZU51bWJl
cihFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZVJlYWxOdW1iZXIoRWRnZSk7CiAgICAgdm9pZCBz
cGVjdWxhdGVCb29sZWFuKEVkZ2UpOwpAQCAtMjIxOSwxNiArMjE5NSw2IEBAIHB1YmxpYzoKICAg
ICB7CiAgICAgICAgIHJldHVybiBtX2dlbmVyYXRpb25JbmZvW29wZXJhbmRUb0xvY2FsKHZpcnR1
YWxSZWdpc3RlcildOwogICAgIH0KLSAgICAKLSAgICBHZW5lcmF0aW9uSW5mbyYgZ2VuZXJhdGlv
bkluZm8oTm9kZSogbm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBnZW5lcmF0aW9uSW5mb0Zy
b21WaXJ0dWFsUmVnaXN0ZXIobm9kZS0+dmlydHVhbFJlZ2lzdGVyKCkpOwotICAgIH0KLSAgICAK
LSAgICBHZW5lcmF0aW9uSW5mbyYgZ2VuZXJhdGlvbkluZm8oRWRnZSBlZGdlKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIGdlbmVyYXRpb25JbmZvKGVkZ2Uubm9kZSgpKTsKLSAgICB9CiAKICAgICAv
LyBUaGUgSklULCB3aGlsZSBhbHNvIHByb3ZpZGVzIE1hY3JvQXNzZW1ibGVyIGZ1bmN0aW9uYWxp
dHkuCiAgICAgSklUQ29tcGlsZXImIG1faml0OwpAQCAtMjcxMCwxNzkgKzI2NzYsNiBAQCBwcml2
YXRlOgogICAgIEdQUlJlZyBtX2dwck9ySW52YWxpZDsKIH07CiAKLS8vIEdpdmVzIHlvdSBhIGNh
bm9uaWNhbCBJbnQ1MiAoaS5lLiBpdCdzIGxlZnQtc2hpZnRlZCBieSAxNiwgbG93IGJpdHMgemVy
bykuCi1jbGFzcyBTcGVjdWxhdGVJbnQ1Mk9wZXJhbmQgewotcHVibGljOgotICAgIGV4cGxpY2l0
IFNwZWN1bGF0ZUludDUyT3BlcmFuZChTcGVjdWxhdGl2ZUpJVCogaml0LCBFZGdlIGVkZ2UsIE9w
ZXJhbmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxhdGlvbikK
LSAgICAgICAgOiBtX2ppdChqaXQpCi0gICAgICAgICwgbV9lZGdlKGVkZ2UpCi0gICAgICAgICwg
bV9ncHJPckludmFsaWQoSW52YWxpZEdQUlJlZykKLSAgICB7Ci0gICAgICAgIEFTU0VSVF9VTlVT
RUQobW9kZSwgbW9kZSA9PSBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24gfHwgZWRnZS51c2VLaW5k
KCkgPT0gTWFjaGluZUludFVzZSk7Ci0gICAgICAgIGlmIChqaXQtPmlzRmlsbGVkKG5vZGUoKSkp
Ci0gICAgICAgICAgICBncHIoKTsKLSAgICB9Ci0gICAgCi0gICAgflNwZWN1bGF0ZUludDUyT3Bl
cmFuZCgpCi0gICAgewotICAgICAgICBBU1NFUlQobV9ncHJPckludmFsaWQgIT0gSW52YWxpZEdQ
UlJlZyk7Ci0gICAgICAgIG1faml0LT51bmxvY2sobV9ncHJPckludmFsaWQpOwotICAgIH0KLSAg
ICAKLSAgICBFZGdlIGVkZ2UoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fZWRnZTsK
LSAgICB9Ci0gICAgCi0gICAgTm9kZSogbm9kZSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1
cm4gZWRnZSgpLm5vZGUoKTsKLSAgICB9Ci0gICAgCi0gICAgR1BSUmVnIGdwcigpCi0gICAgewot
ICAgICAgICBpZiAobV9ncHJPckludmFsaWQgPT0gSW52YWxpZEdQUlJlZykKLSAgICAgICAgICAg
IG1fZ3ByT3JJbnZhbGlkID0gbV9qaXQtPmZpbGxTcGVjdWxhdGVJbnQ1MihlZGdlKCksIERhdGFG
b3JtYXRJbnQ1Mik7Ci0gICAgICAgIHJldHVybiBtX2dwck9ySW52YWxpZDsKLSAgICB9Ci0gICAg
Ci0gICAgdm9pZCB1c2UoKQotICAgIHsKLSAgICAgICAgbV9qaXQtPnVzZShub2RlKCkpOwotICAg
IH0KLSAgICAKLXByaXZhdGU6Ci0gICAgU3BlY3VsYXRpdmVKSVQqIG1faml0OwotICAgIEVkZ2Ug
bV9lZGdlOwotICAgIEdQUlJlZyBtX2dwck9ySW52YWxpZDsKLX07Ci0KLS8vIEdpdmVzIHlvdSBh
IHN0cmljdCBJbnQ1MiAoaS5lLiB0aGUgcGF5bG9hZCBpcyBpbiB0aGUgbG93IDQ4IGJpdHMsIGhp
Z2ggMTYgYml0cyBhcmUgc2lnbi1leHRlbmRlZCkuCi1jbGFzcyBTcGVjdWxhdGVTdHJpY3RJbnQ1
Mk9wZXJhbmQgewotcHVibGljOgotICAgIGV4cGxpY2l0IFNwZWN1bGF0ZVN0cmljdEludDUyT3Bl
cmFuZChTcGVjdWxhdGl2ZUpJVCogaml0LCBFZGdlIGVkZ2UsIE9wZXJhbmRTcGVjdWxhdGlvbk1v
ZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxhdGlvbikKLSAgICAgICAgOiBtX2ppdChq
aXQpCi0gICAgICAgICwgbV9lZGdlKGVkZ2UpCi0gICAgICAgICwgbV9ncHJPckludmFsaWQoSW52
YWxpZEdQUlJlZykKLSAgICB7Ci0gICAgICAgIEFTU0VSVF9VTlVTRUQobW9kZSwgbW9kZSA9PSBN
YW51YWxPcGVyYW5kU3BlY3VsYXRpb24gfHwgZWRnZS51c2VLaW5kKCkgPT0gTWFjaGluZUludFVz
ZSk7Ci0gICAgICAgIGlmIChqaXQtPmlzRmlsbGVkKG5vZGUoKSkpCi0gICAgICAgICAgICBncHIo
KTsKLSAgICB9Ci0gICAgCi0gICAgflNwZWN1bGF0ZVN0cmljdEludDUyT3BlcmFuZCgpCi0gICAg
ewotICAgICAgICBBU1NFUlQobV9ncHJPckludmFsaWQgIT0gSW52YWxpZEdQUlJlZyk7Ci0gICAg
ICAgIG1faml0LT51bmxvY2sobV9ncHJPckludmFsaWQpOwotICAgIH0KLSAgICAKLSAgICBFZGdl
IGVkZ2UoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fZWRnZTsKLSAgICB9Ci0gICAg
Ci0gICAgTm9kZSogbm9kZSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gZWRnZSgpLm5v
ZGUoKTsKLSAgICB9Ci0gICAgCi0gICAgR1BSUmVnIGdwcigpCi0gICAgewotICAgICAgICBpZiAo
bV9ncHJPckludmFsaWQgPT0gSW52YWxpZEdQUlJlZykKLSAgICAgICAgICAgIG1fZ3ByT3JJbnZh
bGlkID0gbV9qaXQtPmZpbGxTcGVjdWxhdGVJbnQ1MihlZGdlKCksIERhdGFGb3JtYXRTdHJpY3RJ
bnQ1Mik7Ci0gICAgICAgIHJldHVybiBtX2dwck9ySW52YWxpZDsKLSAgICB9Ci0gICAgCi0gICAg
dm9pZCB1c2UoKQotICAgIHsKLSAgICAgICAgbV9qaXQtPnVzZShub2RlKCkpOwotICAgIH0KLSAg
ICAKLXByaXZhdGU6Ci0gICAgU3BlY3VsYXRpdmVKSVQqIG1faml0OwotICAgIEVkZ2UgbV9lZGdl
OwotICAgIEdQUlJlZyBtX2dwck9ySW52YWxpZDsKLX07Ci0KLWVudW0gT3Bwb3NpdGVTaGlmdFRh
ZyB7IE9wcG9zaXRlU2hpZnQgfTsKLQotY2xhc3MgU3BlY3VsYXRlV2hpY2hldmVySW50NTJPcGVy
YW5kIHsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBTcGVjdWxhdGVXaGljaGV2ZXJJbnQ1Mk9wZXJh
bmQoU3BlY3VsYXRpdmVKSVQqIGppdCwgRWRnZSBlZGdlLCBPcGVyYW5kU3BlY3VsYXRpb25Nb2Rl
IG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRpb24pCi0gICAgICAgIDogbV9qaXQoaml0
KQotICAgICAgICAsIG1fZWRnZShlZGdlKQotICAgICAgICAsIG1fZ3ByT3JJbnZhbGlkKEludmFs
aWRHUFJSZWcpCi0gICAgICAgICwgbV9zdHJpY3Qoaml0LT5iZXR0ZXJVc2VTdHJpY3RJbnQ1Mihl
ZGdlKSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVF9VTlVTRUQobW9kZSwgbW9kZSA9PSBNYW51YWxP
cGVyYW5kU3BlY3VsYXRpb24gfHwgZWRnZS51c2VLaW5kKCkgPT0gTWFjaGluZUludFVzZSk7Ci0g
ICAgICAgIGlmIChqaXQtPmlzRmlsbGVkKG5vZGUoKSkpCi0gICAgICAgICAgICBncHIoKTsKLSAg
ICB9Ci0gICAgCi0gICAgZXhwbGljaXQgU3BlY3VsYXRlV2hpY2hldmVySW50NTJPcGVyYW5kKFNw
ZWN1bGF0aXZlSklUKiBqaXQsIEVkZ2UgZWRnZSwgY29uc3QgU3BlY3VsYXRlV2hpY2hldmVySW50
NTJPcGVyYW5kJiBvdGhlciwgT3BlcmFuZFNwZWN1bGF0aW9uTW9kZSBtb2RlID0gQXV0b21hdGlj
T3BlcmFuZFNwZWN1bGF0aW9uKQotICAgICAgICA6IG1faml0KGppdCkKLSAgICAgICAgLCBtX2Vk
Z2UoZWRnZSkKLSAgICAgICAgLCBtX2dwck9ySW52YWxpZChJbnZhbGlkR1BSUmVnKQotICAgICAg
ICAsIG1fc3RyaWN0KG90aGVyLm1fc3RyaWN0KQotICAgIHsKLSAgICAgICAgQVNTRVJUX1VOVVNF
RChtb2RlLCBtb2RlID09IE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbiB8fCBlZGdlLnVzZUtpbmQo
KSA9PSBNYWNoaW5lSW50VXNlKTsKLSAgICAgICAgaWYgKGppdC0+aXNGaWxsZWQobm9kZSgpKSkK
LSAgICAgICAgICAgIGdwcigpOwotICAgIH0KLSAgICAKLSAgICBleHBsaWNpdCBTcGVjdWxhdGVX
aGljaGV2ZXJJbnQ1Mk9wZXJhbmQoU3BlY3VsYXRpdmVKSVQqIGppdCwgRWRnZSBlZGdlLCBPcHBv
c2l0ZVNoaWZ0VGFnLCBjb25zdCBTcGVjdWxhdGVXaGljaGV2ZXJJbnQ1Mk9wZXJhbmQmIG90aGVy
LCBPcGVyYW5kU3BlY3VsYXRpb25Nb2RlIG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRp
b24pCi0gICAgICAgIDogbV9qaXQoaml0KQotICAgICAgICAsIG1fZWRnZShlZGdlKQotICAgICAg
ICAsIG1fZ3ByT3JJbnZhbGlkKEludmFsaWRHUFJSZWcpCi0gICAgICAgICwgbV9zdHJpY3QoIW90
aGVyLm1fc3RyaWN0KQotICAgIHsKLSAgICAgICAgQVNTRVJUX1VOVVNFRChtb2RlLCBtb2RlID09
IE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbiB8fCBlZGdlLnVzZUtpbmQoKSA9PSBNYWNoaW5lSW50
VXNlKTsKLSAgICAgICAgaWYgKGppdC0+aXNGaWxsZWQobm9kZSgpKSkKLSAgICAgICAgICAgIGdw
cigpOwotICAgIH0KLSAgICAKLSAgICB+U3BlY3VsYXRlV2hpY2hldmVySW50NTJPcGVyYW5kKCkK
LSAgICB7Ci0gICAgICAgIEFTU0VSVChtX2dwck9ySW52YWxpZCAhPSBJbnZhbGlkR1BSUmVnKTsK
LSAgICAgICAgbV9qaXQtPnVubG9jayhtX2dwck9ySW52YWxpZCk7Ci0gICAgfQotICAgIAotICAg
IEVkZ2UgZWRnZSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gbV9lZGdlOwotICAgIH0K
LSAgICAKLSAgICBOb2RlKiBub2RlKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBlZGdl
KCkubm9kZSgpOwotICAgIH0KLSAgICAKLSAgICBHUFJSZWcgZ3ByKCkKLSAgICB7Ci0gICAgICAg
IGlmIChtX2dwck9ySW52YWxpZCA9PSBJbnZhbGlkR1BSUmVnKSB7Ci0gICAgICAgICAgICBtX2dw
ck9ySW52YWxpZCA9IG1faml0LT5maWxsU3BlY3VsYXRlSW50NTIoCi0gICAgICAgICAgICAgICAg
ZWRnZSgpLCBtX3N0cmljdCA/IERhdGFGb3JtYXRTdHJpY3RJbnQ1MiA6IERhdGFGb3JtYXRJbnQ1
Mik7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG1fZ3ByT3JJbnZhbGlkOwotICAgIH0KLSAg
ICAKLSAgICB2b2lkIHVzZSgpCi0gICAgewotICAgICAgICBtX2ppdC0+dXNlKG5vZGUoKSk7Ci0g
ICAgfQotICAgIAotICAgIERhdGFGb3JtYXQgZm9ybWF0KCkgY29uc3QKLSAgICB7Ci0gICAgICAg
IHJldHVybiBtX3N0cmljdCA/IERhdGFGb3JtYXRTdHJpY3RJbnQ1MiA6IERhdGFGb3JtYXRJbnQ1
MjsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgU3BlY3VsYXRpdmVKSVQqIG1faml0OwotICAgIEVk
Z2UgbV9lZGdlOwotICAgIEdQUlJlZyBtX2dwck9ySW52YWxpZDsKLSAgICBib29sIG1fc3RyaWN0
OwotfTsKLQogY2xhc3MgU3BlY3VsYXRlRG91YmxlT3BlcmFuZCB7CiBwdWJsaWM6CiAgICAgZXhw
bGljaXQgU3BlY3VsYXRlRG91YmxlT3BlcmFuZChTcGVjdWxhdGl2ZUpJVCogaml0LCBFZGdlIGVk
Z2UsIE9wZXJhbmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxh
dGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUMzJfNjQuY3BwCmluZGV4IGFlNjRkMmVmMWQwOWQ5MjY0YjdiMjFkMjg0ZmY1MmViMjIxMDZk
ZjguLjE4NDJjZjYxNjQ3Y2Q3NzViNWYzN2QwNDU3MDAwYTFmMzc1YjUwODQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApA
QCAtODg4LDggKzg4OCw4IEBAIEZQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZURv
dWJsZShFZGdlIGVkZ2UpCiAjZW5kaWYKICAgICBBYnN0cmFjdFZhbHVlJiB2YWx1ZSA9IG1fc3Rh
dGUuZm9yTm9kZShlZGdlKTsKICAgICBTcGVjdWxhdGVkVHlwZSB0eXBlID0gdmFsdWUubV90eXBl
OwotICAgIEFTU0VSVChlZGdlLnVzZUtpbmQoKSAhPSBLbm93bk51bWJlclVzZSB8fCAhKHZhbHVl
Lm1fdHlwZSAmIH5TcGVjRnVsbE51bWJlcikpOwotICAgIG1faW50ZXJwcmV0ZXIuZmlsdGVyKHZh
bHVlLCBTcGVjRnVsbE51bWJlcik7CisgICAgQVNTRVJUKGVkZ2UudXNlS2luZCgpICE9IEtub3du
TnVtYmVyVXNlIHx8ICEodmFsdWUubV90eXBlICYgflNwZWNOdW1iZXIpKTsKKyAgICBtX2ludGVy
cHJldGVyLmZpbHRlcih2YWx1ZSwgU3BlY051bWJlcik7CiAgICAgVmlydHVhbFJlZ2lzdGVyIHZp
cnR1YWxSZWdpc3RlciA9IGVkZ2UtPnZpcnR1YWxSZWdpc3RlcigpOwogICAgIEdlbmVyYXRpb25J
bmZvJiBpbmZvID0gZ2VuZXJhdGlvbkluZm9Gcm9tVmlydHVhbFJlZ2lzdGVyKHZpcnR1YWxSZWdp
c3Rlcik7CiAKQEAgLTkyOCw3ICs5MjgsNyBAQCBGUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxT
cGVjdWxhdGVEb3VibGUoRWRnZSBlZGdlKQogCiAgICAgICAgICAgICBpZiAoc3BpbGxGb3JtYXQg
IT0gRGF0YUZvcm1hdEpTSW50MzIgJiYgc3BpbGxGb3JtYXQgIT0gRGF0YUZvcm1hdEludDMyKSB7
CiAgICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgaXNJbnRlZ2VyID0gbV9qaXQuYnJh
bmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCBKSVRDb21waWxlcjo6dGFnRm9yKHZpcnR1YWxS
ZWdpc3RlciksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZykpOwotICAgICAgICAgICAg
ICAgIGlmICh0eXBlICYgflNwZWNGdWxsTnVtYmVyKQorICAgICAgICAgICAgICAgIGlmICh0eXBl
ICYgflNwZWNOdW1iZXIpCiAgICAgICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFk
VHlwZSwgSlNWYWx1ZVNvdXJjZShKSVRDb21waWxlcjo6YWRkcmVzc0Zvcih2aXJ0dWFsUmVnaXN0
ZXIpKSwgZWRnZSwgbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwg
SklUQ29tcGlsZXI6OnRhZ0Zvcih2aXJ0dWFsUmVnaXN0ZXIpLCBUcnVzdGVkSW1tMzIoSlNWYWx1
ZTo6TG93ZXN0VGFnKSkpOwogICAgICAgICAgICAgICAgIG1faml0LmxvYWREb3VibGUoSklUQ29t
cGlsZXI6OmFkZHJlc3NGb3IodmlydHVhbFJlZ2lzdGVyKSwgZnByKTsKICAgICAgICAgICAgICAg
ICBoYXNVbmJveGVkRG91YmxlID0gbV9qaXQuanVtcCgpOwpAQCAtOTYzLDcgKzk2Myw3IEBAIEZQ
UlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZURvdWJsZShFZGdlIGVkZ2UpCiAgICAg
ICAgIGlmIChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkgIT0gRGF0YUZvcm1hdEpTSW50MzIpIHsKICAg
ICAgICAgICAgIEZQUlRlbXBvcmFyeSBzY3JhdGNoKHRoaXMpOwogICAgICAgICAgICAgSklUQ29t
cGlsZXI6Okp1bXAgaXNJbnRlZ2VyID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkVx
dWFsLCB0YWdHUFIsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZykpOwotICAgICAgICAg
ICAgaWYgKHR5cGUgJiB+U3BlY0Z1bGxOdW1iZXIpCisgICAgICAgICAgICBpZiAodHlwZSAmIH5T
cGVjTnVtYmVyKQogICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgSlNW
YWx1ZVJlZ3ModGFnR1BSLCBwYXlsb2FkR1BSKSwgZWRnZSwgbV9qaXQuYnJhbmNoMzIoTWFjcm9B
c3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgdGFnR1BSLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6TG93
ZXN0VGFnKSkpOwogICAgICAgICAgICAgdW5ib3hEb3VibGUodGFnR1BSLCBwYXlsb2FkR1BSLCBm
cHIsIHNjcmF0Y2guZnByKCkpOwogICAgICAgICAgICAgaGFzVW5ib3hlZERvdWJsZSA9IG1faml0
Lmp1bXAoKTsKQEAgLTI5MjMsNyArMjkyMyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgIEZQUlJlZyB2YWx1ZUZQUiA9IHZhbHVlLmZwcigp
OwogCiAgICAgICAgICAgICBERkdfVFlQRV9DSEVDSygKLSAgICAgICAgICAgICAgICBKU1ZhbHVl
UmVncygpLCBub2RlLT5jaGlsZDIoKSwgU3BlY0Z1bGxSZWFsTnVtYmVyLAorICAgICAgICAgICAg
ICAgIEpTVmFsdWVSZWdzKCksIG5vZGUtPmNoaWxkMigpLCBTcGVjUmVhbE51bWJlciwKICAgICAg
ICAgICAgICAgICBtX2ppdC5icmFuY2hEb3VibGUoTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZU5vdEVx
dWFsT3JVbm9yZGVyZWQsIHZhbHVlRlBSLCB2YWx1ZUZQUikpOwogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBtX2ppdC5sb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZUdQUiwg
QnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSwgc3RvcmFnZUxlbmd0aEdQUik7CkBA
IC0zMTg3LDcgKzMxODcsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5v
ZGUpCiAgICAgICAgIAogICAgICAgICBvcDEudXNlKCk7CiAgICAgICAgIAotICAgICAgICBpZiAo
IShtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLm1fdHlwZSAmIH4oU3BlY0Z1bGxOdW1i
ZXIgfCBTcGVjQm9vbGVhbikpKSB7CisgICAgICAgIGlmICghKG1fc3RhdGUuZm9yTm9kZShub2Rl
LT5jaGlsZDEoKSkubV90eXBlICYgfihTcGVjTnVtYmVyIHwgU3BlY0Jvb2xlYW4pKSkgewogICAg
ICAgICAgICAgbV9qaXQubW92ZShvcDFUYWdHUFIsIHJlc3VsdFRhZ0dQUik7CiAgICAgICAgICAg
ICBtX2ppdC5tb3ZlKG9wMVBheWxvYWRHUFIsIHJlc3VsdFBheWxvYWRHUFIpOwogICAgICAgICB9
IGVsc2UgewpAQCAtMzI4OSw3ICszMjg5LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZShOb2RlKiBub2RlKQogICAgICAgICAgICAgICAgICAgICBTcGVjdWxhdGVEb3VibGVPcGVyYW5k
IG9wZXJhbmQodGhpcywgdXNlKTsKICAgICAgICAgICAgICAgICAgICAgRlBSUmVnIG9wRlBSID0g
b3BlcmFuZC5mcHIoKTsKICAgICAgICAgICAgICAgICAgICAgREZHX1RZUEVfQ0hFQ0soCi0gICAg
ICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncygpLCB1c2UsIFNwZWNGdWxsUmVhbE51bWJl
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKCksIHVzZSwgU3BlY1JlYWxO
dW1iZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2hEb3VibGUoTWFjcm9B
c3NlbWJsZXI6OkRvdWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQsIG9wRlBSLCBvcEZQUikpOwogICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUob3BGUFIsIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VHUFIsIHNpemVvZihkb3VibGUpICogb3BlcmFuZElk
eCkpOwpAQCAtMzM1NCw3ICszMzU0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShO
b2RlKiBub2RlKQogICAgICAgICAgICAgICAgIFNwZWN1bGF0ZURvdWJsZU9wZXJhbmQgb3BlcmFu
ZCh0aGlzLCB1c2UpOwogICAgICAgICAgICAgICAgIEZQUlJlZyBvcEZQUiA9IG9wZXJhbmQuZnBy
KCk7CiAgICAgICAgICAgICAgICAgREZHX1RZUEVfQ0hFQ0soCi0gICAgICAgICAgICAgICAgICAg
IEpTVmFsdWVSZWdzKCksIHVzZSwgU3BlY0Z1bGxSZWFsTnVtYmVyLAorICAgICAgICAgICAgICAg
ICAgICBKU1ZhbHVlUmVncygpLCB1c2UsIFNwZWNSZWFsTnVtYmVyLAogICAgICAgICAgICAgICAg
ICAgICBtX2ppdC5icmFuY2hEb3VibGUoTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZU5vdEVxdWFsT3JV
bm9yZGVyZWQsIG9wRlBSLCBvcEZQUikpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgIG1faml0LnN0b3JlRG91YmxlKG9wRlBSLCByZWludGVycHJldF9jYXN0PGNoYXIqPihidWZm
ZXIgKyBvcGVyYW5kSWR4KSk7CkBAIC00Nzk3LDggKzQ3OTcsNiBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVja1RpZXJVcEluTG9vcDoKICAg
ICBjYXNlIENoZWNrVGllclVwQXRSZXR1cm46CiAgICAgY2FzZSBDaGVja1RpZXJVcEFuZE9TUkVu
dGVyOgotICAgIGNhc2UgSW50NTJUb0RvdWJsZToKLSAgICBjYXNlIEludDUyVG9WYWx1ZToKICAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAKaW5kZXggZmZkZjEzNTYxODU4YjNjYjNhMTU1MDIxZTY1MDAwNzE4ZDVlNzcxYS4uZmI4MjEy
MzQ2OWJiNmRhZjhlZWNiNWU2ZTQ5YzdjZThiM2Y0Y2NjNSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC00MCwyOSArNDAsNiBA
QCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKICNpZiBVU0UoSlNWQUxVRTY0KQog
Ci12b2lkIFNwZWN1bGF0aXZlSklUOjpib3hJbnQ1MihHUFJSZWcgc291cmNlR1BSLCBHUFJSZWcg
dGFyZ2V0R1BSLCBEYXRhRm9ybWF0IGZvcm1hdCkKLXsKLSAgICBHUFJSZWcgdGVtcEdQUjsKLSAg
ICBpZiAoc291cmNlR1BSID09IHRhcmdldEdQUikKLSAgICAgICAgdGVtcEdQUiA9IGFsbG9jYXRl
KCk7Ci0gICAgZWxzZQotICAgICAgICB0ZW1wR1BSID0gdGFyZ2V0R1BSOwotICAgIAotICAgIEZQ
UlJlZyBmcHIgPSBmcHJBbGxvY2F0ZSgpOwotCi0gICAgaWYgKGZvcm1hdCA9PSBEYXRhRm9ybWF0
SW50NTIpCi0gICAgICAgIG1faml0LnJzaGlmdDY0KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjppbnQ1
MlNoaWZ0QW1vdW50KSwgc291cmNlR1BSKTsKLSAgICBlbHNlCi0gICAgICAgIEFTU0VSVChmb3Jt
YXQgPT0gRGF0YUZvcm1hdFN0cmljdEludDUyKTsKLSAgICAKLSAgICBtX2ppdC5ib3hJbnQ1Mihz
b3VyY2VHUFIsIHRhcmdldEdQUiwgdGVtcEdQUiwgZnByKTsKLSAgICAKLSAgICBpZiAodGVtcEdQ
UiAhPSB0YXJnZXRHUFIpCi0gICAgICAgIHVubG9jayh0ZW1wR1BSKTsKLSAgICAKLSAgICB1bmxv
Y2soZnByKTsKLX0KLQogR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsSlNWYWx1ZShFZGdlIGVk
Z2UpCiB7CiAgICAgVmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdpc3RlciA9IGVkZ2UtPnZpcnR1
YWxSZWdpc3RlcigpOwpAQCAtOTIsMjIgKzY5LDExIEBAIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6
ZmlsbEpTVmFsdWUoRWRnZSBlZGdlKQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgRGF0
YUZvcm1hdCBzcGlsbEZvcm1hdCA9IGluZm8uc3BpbGxGb3JtYXQoKTsKICAgICAgICAgICAgIG1f
Z3Bycy5yZXRhaW4oZ3ByLCB2aXJ0dWFsUmVnaXN0ZXIsIFNwaWxsT3JkZXJTcGlsbGVkKTsKLSAg
ICAgICAgICAgIHN3aXRjaCAoc3BpbGxGb3JtYXQpIHsKLSAgICAgICAgICAgIGNhc2UgRGF0YUZv
cm1hdEludDMyOiB7CisgICAgICAgICAgICBpZiAoc3BpbGxGb3JtYXQgPT0gRGF0YUZvcm1hdElu
dDMyKSB7CiAgICAgICAgICAgICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjphZGRyZXNz
Rm9yKHZpcnR1YWxSZWdpc3RlciksIGdwcik7CiAgICAgICAgICAgICAgICAgbV9qaXQub3I2NChH
UFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIGdwcik7CiAgICAgICAgICAgICAgICAgc3Bp
bGxGb3JtYXQgPSBEYXRhRm9ybWF0SlNJbnQzMjsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgRGF0YUZvcm1h
dEludDUyOgotICAgICAgICAgICAgY2FzZSBEYXRhRm9ybWF0U3RyaWN0SW50NTI6IHsKLSAgICAg
ICAgICAgICAgICBtX2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IodmlydHVhbFJl
Z2lzdGVyKSwgZ3ByKTsKLSAgICAgICAgICAgICAgICBib3hJbnQ1MihncHIsIGdwciwgc3BpbGxG
b3JtYXQpOwotICAgICAgICAgICAgICAgIHJldHVybiBncHI7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgICAgICBtX2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3Iodmly
dHVhbFJlZ2lzdGVyKSwgZ3ByKTsKICAgICAgICAgICAgICAgICBpZiAoc3BpbGxGb3JtYXQgPT0g
RGF0YUZvcm1hdERvdWJsZSkgewogICAgICAgICAgICAgICAgICAgICAvLyBOZWVkIHRvIGJveCB0
aGUgZG91YmxlLCBzaW5jZSB3ZSB3YW50IGEgSlNWYWx1ZS4KQEAgLTExNSw3ICs4MSw2IEBAIEdQ
UlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbEpTVmFsdWUoRWRnZSBlZGdlKQogICAgICAgICAgICAg
ICAgICAgICBzcGlsbEZvcm1hdCA9IERhdGFGb3JtYXRKU0RvdWJsZTsKICAgICAgICAgICAgICAg
ICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoc3BpbGxGb3JtYXQg
JiBEYXRhRm9ybWF0SlMpOwotICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgaW5mby5maWxsSlNWYWx1ZSgqbV9zdHJlYW0sIGdwciwgc3BpbGxGb3JtYXQp
OwogICAgICAgICB9CkBAIC0xNDgsMTYgKzExMyw2IEBAIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6
ZmlsbEpTVmFsdWUoRWRnZSBlZGdlKQogCiAgICAgICAgIHJldHVybiBncHI7CiAgICAgfQotICAg
ICAgICAKLSAgICBjYXNlIERhdGFGb3JtYXRJbnQ1MjoKLSAgICBjYXNlIERhdGFGb3JtYXRTdHJp
Y3RJbnQ1MjogewotICAgICAgICBHUFJSZWcgZ3ByID0gaW5mby5ncHIoKTsKLSAgICAgICAgbG9j
ayhncHIpOwotICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gYWxsb2NhdGUoKTsKLSAgICAgICAg
Ym94SW50NTIoZ3ByLCByZXN1bHRHUFIsIGluZm8ucmVnaXN0ZXJGb3JtYXQoKSk7Ci0gICAgICAg
IHVubG9jayhncHIpOwotICAgICAgICByZXR1cm4gcmVzdWx0R1BSOwotICAgIH0KIAogICAgIGNh
c2UgRGF0YUZvcm1hdENlbGw6CiAgICAgICAgIC8vIE5vIHJldGFnIHJlcXVpcmVkIG9uIEpTVkFM
VUU2NCEKQEAgLTgxMyw3ICs3NjgsNyBAQCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVj
dWxhdGVJbnQzMkludGVybmFsKEVkZ2UgZWRnZSwgRGF0YUZvcm1hdCYgcmV0dXJuRgogICAgICAg
ICAKICAgICAgICAgRGF0YUZvcm1hdCBzcGlsbEZvcm1hdCA9IGluZm8uc3BpbGxGb3JtYXQoKTsK
ICAgICAgICAgCi0gICAgICAgIFJFTEVBU0VfQVNTRVJUKChzcGlsbEZvcm1hdCAmIERhdGFGb3Jt
YXRKUykgfHwgc3BpbGxGb3JtYXQgPT0gRGF0YUZvcm1hdEludDMyIHx8IHNwaWxsRm9ybWF0ID09
IERhdGFGb3JtYXRJbnQ1MiB8fCBzcGlsbEZvcm1hdCA9PSBEYXRhRm9ybWF0U3RyaWN0SW50NTIp
OworICAgICAgICBSRUxFQVNFX0FTU0VSVCgoc3BpbGxGb3JtYXQgJiBEYXRhRm9ybWF0SlMpIHx8
IHNwaWxsRm9ybWF0ID09IERhdGFGb3JtYXRJbnQzMik7CiAgICAgICAgIAogICAgICAgICBtX2dw
cnMucmV0YWluKGdwciwgdmlydHVhbFJlZ2lzdGVyLCBTcGlsbE9yZGVyU3BpbGxlZCk7CiAgICAg
ICAgIApAQCAtODM0LDM2ICs3ODksNiBAQCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVj
dWxhdGVJbnQzMkludGVybmFsKEVkZ2UgZWRnZSwgRGF0YUZvcm1hdCYgcmV0dXJuRgogICAgICAg
ICAgICAgcmV0dXJuRm9ybWF0ID0gRGF0YUZvcm1hdEpTSW50MzI7CiAgICAgICAgICAgICByZXR1
cm4gZ3ByOwogICAgICAgICB9Ci0gICAgICAgIGlmIChzcGlsbEZvcm1hdCA9PSBEYXRhRm9ybWF0
SW50NTIgfHwgc3BpbGxGb3JtYXQgPT0gRGF0YUZvcm1hdFN0cmljdEludDUyKSB7Ci0gICAgICAg
ICAgICAvLyBHZW5lcmFsbHksIHRoaXMgY2FuIG9ubHkgaGFwcGVuIGlmIHdlJ3ZlIGFscmVhZHkg
cHJvdmVkIHRoYXQgdGhlCi0gICAgICAgICAgICAvLyB2YWx1ZSBpcyBhbiBpbnQzMi4gVGhhdCdz
IGJlY2F1c2UgaWYgYSB2YWx1ZSBvcmlnaW5hdGVkIGFzIGEgSlNWYWx1ZQotICAgICAgICAgICAg
Ly8gdGhlbiB3ZSB3b3VsZCBzcGVjdWxhdGUgdGhhdCBpdCdzIGFuIGludDMyIGJlZm9yZSByZXBy
ZXNlbnRpbmcgaXQgYXMKLSAgICAgICAgICAgIC8vIGFuIGludDUyLiBPdGhlcndpc2UsIGlmIHdl
IGtub3dpbmdseSBwcm9kdWNlZCBhbiBpbnQ1MiwgdGhlbiB3ZSB3b3VsZAotICAgICAgICAgICAg
Ly8gYmUgYm94aW5nIGl0IGludG8gYSB2YWx1ZSB1c2luZyBJbnQ1MlRvVmFsdWUuIFRoaXMgYXNz
ZXJ0aW9uIGlzIHZhbGlkCi0gICAgICAgICAgICAvLyBvbmx5IGJlY2F1c2UgSW50NTIgaXMgc29t
ZXRoaW5nIHRoYXQgd2UgaW50cm9kdWNlIGF0IHByZWRpY3Rpb24gdGltZS4KLSAgICAgICAgICAg
IC8vIEhvd2V2ZXI6IHdlIG1heSBoYXZlIGFuIGludDMyLXByb2R1Y2luZyBub2RlIHJlcGxhY2Vk
IGJ5IGFuCi0gICAgICAgICAgICAvLyBpbnQ1Mi1wcm9kdWNpbmcgbm9kZSBkdWUgdG8gQ1NFLiBT
byB3ZSBtdXN0IGRvIGEgY2hlY2suCi0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVCghKHR5cGUg
JiB+U3BlY01hY2hpbmVJbnQpKTsKLSAgICAgICAgICAgIGlmICh0eXBlICYgU3BlY0ludDUyKSB7
Ci0gICAgICAgICAgICAgICAgR1BSUmVnIHRlbXAgPSBhbGxvY2F0ZSgpOwotICAgICAgICAgICAg
ICAgIG1faml0LnNpZ25FeHRlbmQzMlRvUHRyKGdwciwgdGVtcCk7Ci0gICAgICAgICAgICAgICAg
Ly8gQ3VycmVudGx5LCB3ZSBjYW4ndCBzdXBwbHkgdmFsdWUgcHJvZmlsaW5nIGluZm9ybWF0aW9u
IGhlcmUuIDotLwotICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCi0gICAgICAgICAg
ICAgICAgICAgIEJhZFR5cGUsIEpTVmFsdWVSZWdzKCksIDAsCi0gICAgICAgICAgICAgICAgICAg
IG1faml0LmJyYW5jaDY0KE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgZ3ByLCB0ZW1wKSk7Ci0g
ICAgICAgICAgICAgICAgdW5sb2NrKHRlbXApOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
aWYgKHNwaWxsRm9ybWF0ID09IERhdGFGb3JtYXRTdHJpY3RJbnQ1MikKLSAgICAgICAgICAgICAg
ICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IodmlydHVhbFJlZ2lzdGVyKSwg
Z3ByKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIG1faml0LmxvYWQ2NChK
SVRDb21waWxlcjo6YWRkcmVzc0Zvcih2aXJ0dWFsUmVnaXN0ZXIpLCBncHIpOwotICAgICAgICAg
ICAgICAgIG1faml0LnJzaGlmdDY0KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjppbnQ1MlNoaWZ0QW1v
dW50KSwgZ3ByKTsKLSAgICAgICAgICAgICAgICBtX2ppdC56ZXJvRXh0ZW5kMzJUb1B0cihncHIs
IGdwcik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpbmZvLmZpbGxJbnQzMigqbV9zdHJl
YW0sIGdwcik7Ci0gICAgICAgICAgICByZXR1cm5Gb3JtYXQgPSBEYXRhRm9ybWF0SW50MzI7Ci0g
ICAgICAgICAgICByZXR1cm4gZ3ByOwotICAgICAgICB9CiAgICAgICAgIG1faml0LmxvYWQ2NChK
SVRDb21waWxlcjo6YWRkcmVzc0Zvcih2aXJ0dWFsUmVnaXN0ZXIpLCBncHIpOwogCiAgICAgICAg
IC8vIEZpbGwgYXMgSlNWYWx1ZSwgYW5kIGZhbGwgdGhyb3VnaC4KQEAgLTg3Miw3ICs3OTcsNiBA
QCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVJbnQzMkludGVybmFsKEVkZ2Ug
ZWRnZSwgRGF0YUZvcm1hdCYgcmV0dXJuRgogICAgIH0KIAogICAgIGNhc2UgRGF0YUZvcm1hdEpT
OiB7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKCEodHlwZSAmIFNwZWNJbnQ1MikpOwogICAgICAg
ICAvLyBDaGVjayB0aGUgdmFsdWUgaXMgYW4gaW50ZWdlci4KICAgICAgICAgR1BSUmVnIGdwciA9
IGluZm8uZ3ByKCk7CiAgICAgICAgIG1fZ3Bycy5sb2NrKGdwcik7CkBAIC05MTksMzUgKzg0Myw2
IEBAIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUludDMySW50ZXJuYWwoRWRn
ZSBlZGdlLCBEYXRhRm9ybWF0JiByZXR1cm5GCiAgICAgICAgIHJldHVybkZvcm1hdCA9IERhdGFG
b3JtYXRJbnQzMjsKICAgICAgICAgcmV0dXJuIGdwcjsKICAgICB9Ci0gICAgICAgIAotICAgIGNh
c2UgRGF0YUZvcm1hdFN0cmljdEludDUyOgotICAgIGNhc2UgRGF0YUZvcm1hdEludDUyOiB7Ci0g
ICAgICAgIEdQUlJlZyBncHIgPSBpbmZvLmdwcigpOwotICAgICAgICBHUFJSZWcgcmVzdWx0Owot
ICAgICAgICBpZiAobV9ncHJzLmlzTG9ja2VkKGdwcikpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9
IGFsbG9jYXRlKCk7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKGdwciwgcmVzdWx0KTsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGxvY2soZ3ByKTsKLSAgICAgICAgICAgIGluZm8uZmls
bEludDMyKCptX3N0cmVhbSwgZ3ByKTsKLSAgICAgICAgICAgIHJlc3VsdCA9IGdwcjsKLSAgICAg
ICAgfQotICAgICAgICBSRUxFQVNFX0FTU0VSVCghKHR5cGUgJiB+U3BlY01hY2hpbmVJbnQpKTsK
LSAgICAgICAgaWYgKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSA9PSBEYXRhRm9ybWF0SW50NTIpCi0g
ICAgICAgICAgICBtX2ppdC5yc2hpZnQ2NChUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6aW50NTJTaGlm
dEFtb3VudCksIHJlc3VsdCk7Ci0gICAgICAgIGlmICh0eXBlICYgU3BlY0ludDUyKSB7Ci0gICAg
ICAgICAgICBHUFJSZWcgdGVtcCA9IGFsbG9jYXRlKCk7Ci0gICAgICAgICAgICBtX2ppdC5zaWdu
RXh0ZW5kMzJUb1B0cihyZXN1bHQsIHRlbXApOwotICAgICAgICAgICAgLy8gQ3VycmVudGx5LCB3
ZSBjYW4ndCBzdXBwbHkgdmFsdWUgcHJvZmlsaW5nIGluZm9ybWF0aW9uIGhlcmUuIDotLwotICAg
ICAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKLSAgICAgICAgICAgICAgICBCYWRUeXBlLCBKU1Zh
bHVlUmVncygpLCAwLAotICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaDY0KE1hY3JvQXNzZW1i
bGVyOjpOb3RFcXVhbCwgcmVzdWx0LCB0ZW1wKSk7Ci0gICAgICAgICAgICB1bmxvY2sodGVtcCk7
Ci0gICAgICAgIH0KLSAgICAgICAgbV9qaXQuemVyb0V4dGVuZDMyVG9QdHIocmVzdWx0LCByZXN1
bHQpOwotICAgICAgICByZXR1cm5Gb3JtYXQgPSBEYXRhRm9ybWF0SW50MzI7Ci0gICAgICAgIHJl
dHVybiBncHI7Ci0gICAgfQogCiAgICAgY2FzZSBEYXRhRm9ybWF0RG91YmxlOgogICAgIGNhc2Ug
RGF0YUZvcm1hdEpTRG91YmxlOiB7CkBAIC05OTAsMTgwICs4ODUsNiBAQCBHUFJSZWcgU3BlY3Vs
YXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVJbnQzMlN0cmljdChFZGdlIGVkZ2UpCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlSW50NTIo
RWRnZSBlZGdlLCBEYXRhRm9ybWF0IGRlc2lyZWRGb3JtYXQpCi17Ci0gICAgQVNTRVJUKGRlc2ly
ZWRGb3JtYXQgPT0gRGF0YUZvcm1hdEludDUyIHx8IGRlc2lyZWRGb3JtYXQgPT0gRGF0YUZvcm1h
dFN0cmljdEludDUyKTsKLSAgICBBYnN0cmFjdFZhbHVlJiB2YWx1ZSA9IG1fc3RhdGUuZm9yTm9k
ZShlZGdlKTsKLSAgICBTcGVjdWxhdGVkVHlwZSB0eXBlID0gdmFsdWUubV90eXBlOwotICAgIG1f
aW50ZXJwcmV0ZXIuZmlsdGVyKHZhbHVlLCBTcGVjTWFjaGluZUludCk7Ci0gICAgVmlydHVhbFJl
Z2lzdGVyIHZpcnR1YWxSZWdpc3RlciA9IGVkZ2UtPnZpcnR1YWxSZWdpc3RlcigpOwotICAgIEdl
bmVyYXRpb25JbmZvJiBpbmZvID0gZ2VuZXJhdGlvbkluZm9Gcm9tVmlydHVhbFJlZ2lzdGVyKHZp
cnR1YWxSZWdpc3Rlcik7Ci0KLSAgICBzd2l0Y2ggKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSkgewot
ICAgIGNhc2UgRGF0YUZvcm1hdE5vbmU6IHsKLSAgICAgICAgaWYgKChlZGdlLT5oYXNDb25zdGFu
dCgpICYmICF2YWx1ZU9mSlNDb25zdGFudChlZGdlLm5vZGUoKSkuaXNNYWNoaW5lSW50KCkpIHx8
IGluZm8uc3BpbGxGb3JtYXQoKSA9PSBEYXRhRm9ybWF0RG91YmxlKSB7Ci0gICAgICAgICAgICB0
ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwg
MCk7Ci0gICAgICAgICAgICByZXR1cm4gYWxsb2NhdGUoKTsKLSAgICAgICAgfQotICAgICAgICAK
LSAgICAgICAgR1BSUmVnIGdwciA9IGFsbG9jYXRlKCk7Ci0KLSAgICAgICAgaWYgKGVkZ2UtPmhh
c0NvbnN0YW50KCkpIHsKLSAgICAgICAgICAgIEpTVmFsdWUganNWYWx1ZSA9IHZhbHVlT2ZKU0Nv
bnN0YW50KGVkZ2Uubm9kZSgpKTsKLSAgICAgICAgICAgIEFTU0VSVChqc1ZhbHVlLmlzTWFjaGlu
ZUludCgpKTsKLSAgICAgICAgICAgIG1fZ3Bycy5yZXRhaW4oZ3ByLCB2aXJ0dWFsUmVnaXN0ZXIs
IFNwaWxsT3JkZXJDb25zdGFudCk7Ci0gICAgICAgICAgICBpbnQ2NF90IHZhbHVlID0ganNWYWx1
ZS5hc01hY2hpbmVJbnQoKTsKLSAgICAgICAgICAgIGlmIChkZXNpcmVkRm9ybWF0ID09IERhdGFG
b3JtYXRJbnQ1MikKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlIDw8IEpTVmFsdWU6Omlu
dDUyU2hpZnRBbW91bnQ7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpJ
bW02NCh2YWx1ZSksIGdwcik7Ci0gICAgICAgICAgICBpbmZvLmZpbGxHUFIoKm1fc3RyZWFtLCBn
cHIsIGRlc2lyZWRGb3JtYXQpOwotICAgICAgICAgICAgcmV0dXJuIGdwcjsKLSAgICAgICAgfQot
ICAgICAgICAKLSAgICAgICAgRGF0YUZvcm1hdCBzcGlsbEZvcm1hdCA9IGluZm8uc3BpbGxGb3Jt
YXQoKTsKLSAgICAgICAgCi0gICAgICAgIFJFTEVBU0VfQVNTRVJUKChzcGlsbEZvcm1hdCAmIERh
dGFGb3JtYXRKUykgfHwgc3BpbGxGb3JtYXQgPT0gRGF0YUZvcm1hdEludDMyIHx8IHNwaWxsRm9y
bWF0ID09IERhdGFGb3JtYXRJbnQ1MiB8fCBzcGlsbEZvcm1hdCA9PSBEYXRhRm9ybWF0U3RyaWN0
SW50NTIpOwotICAgICAgICAKLSAgICAgICAgbV9ncHJzLnJldGFpbihncHIsIHZpcnR1YWxSZWdp
c3RlciwgU3BpbGxPcmRlclNwaWxsZWQpOwotICAgICAgICAKLSAgICAgICAgaWYgKHNwaWxsRm9y
bWF0ID09IERhdGFGb3JtYXRKU0ludDMyIHx8IHNwaWxsRm9ybWF0ID09IERhdGFGb3JtYXRJbnQz
MikgewotICAgICAgICAgICAgLy8gSWYgd2Uga25vdyB0aGlzIHdhcyBzcGlsbGVkIGFzIGFuIGlu
dGVnZXIgd2UgY2FuIGZpbGwgd2l0aG91dCBjaGVja2luZy4KLSAgICAgICAgICAgIG1faml0Lmxv
YWQzMihKSVRDb21waWxlcjo6YWRkcmVzc0Zvcih2aXJ0dWFsUmVnaXN0ZXIpLCBncHIpOwotICAg
ICAgICAgICAgbV9qaXQuc2lnbkV4dGVuZDMyVG9QdHIoZ3ByLCBncHIpOwotICAgICAgICAgICAg
aWYgKGRlc2lyZWRGb3JtYXQgPT0gRGF0YUZvcm1hdFN0cmljdEludDUyKSB7Ci0gICAgICAgICAg
ICAgICAgaW5mby5maWxsU3RyaWN0SW50NTIoKm1fc3RyZWFtLCBncHIpOwotICAgICAgICAgICAg
ICAgIHJldHVybiBncHI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBtX2ppdC5sc2hpZnQ2
NChUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6aW50NTJTaGlmdEFtb3VudCksIGdwcik7Ci0gICAgICAg
ICAgICBpbmZvLmZpbGxJbnQ1MigqbV9zdHJlYW0sIGdwcik7Ci0gICAgICAgICAgICByZXR1cm4g
Z3ByOwotICAgICAgICB9Ci0gICAgICAgIGlmIChzcGlsbEZvcm1hdCA9PSBEYXRhRm9ybWF0SW50
NTIgfHwgc3BpbGxGb3JtYXQgPT0gRGF0YUZvcm1hdFN0cmljdEludDUyKSB7Ci0gICAgICAgICAg
ICBtX2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IodmlydHVhbFJlZ2lzdGVyKSwg
Z3ByKTsKLSAgICAgICAgICAgIGlmIChkZXNpcmVkRm9ybWF0ID09IERhdGFGb3JtYXRTdHJpY3RJ
bnQ1MikgewotICAgICAgICAgICAgICAgIGlmIChzcGlsbEZvcm1hdCA9PSBEYXRhRm9ybWF0SW50
NTIpCi0gICAgICAgICAgICAgICAgICAgIG1faml0LnJzaGlmdDY0KFRydXN0ZWRJbW0zMihKU1Zh
bHVlOjppbnQ1MlNoaWZ0QW1vdW50KSwgZ3ByKTsKLSAgICAgICAgICAgICAgICBpbmZvLmZpbGxT
dHJpY3RJbnQ1MigqbV9zdHJlYW0sIGdwcik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGdwcjsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChzcGlsbEZvcm1hdCA9PSBEYXRhRm9ybWF0
U3RyaWN0SW50NTIpCi0gICAgICAgICAgICAgICAgbV9qaXQubHNoaWZ0NjQoVHJ1c3RlZEltbTMy
KEpTVmFsdWU6OmludDUyU2hpZnRBbW91bnQpLCBncHIpOwotICAgICAgICAgICAgaW5mby5maWxs
SW50NTIoKm1fc3RyZWFtLCBncHIpOwotICAgICAgICAgICAgcmV0dXJuIGdwcjsKLSAgICAgICAg
fQotICAgICAgICBtX2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IodmlydHVhbFJl
Z2lzdGVyKSwgZ3ByKTsKLQotICAgICAgICAvLyBGaWxsIGFzIEpTVmFsdWUsIGFuZCBmYWxsIHRo
cm91Z2guCi0gICAgICAgIGluZm8uZmlsbEpTVmFsdWUoKm1fc3RyZWFtLCBncHIsIERhdGFGb3Jt
YXRKU0ludDMyKTsKLSAgICAgICAgbV9ncHJzLnVubG9jayhncHIpOwotICAgIH0KLQotICAgIGNh
c2UgRGF0YUZvcm1hdEpTOiB7Ci0gICAgICAgIC8vIENoZWNrIHRoZSB2YWx1ZSBpcyBhbiBpbnRl
Z2VyLiBOb3RlIHRoYXQgd2Ugd291bGQgKmxpa2UqIHRvIHVuYm94IGFuIEludDUyCi0gICAgICAg
IC8vIGF0IHRoaXMgcG9pbnQgYnV0IHRoaXMgaXMgdG9vIGNvc3RseS4gV2Ugb25seSAqcHJvdmUq
IHRoYXQgdGhpcyBpcyBhbiBJbnQ1MgotICAgICAgICAvLyBldmVuIHRob3VnaCB3ZSBjaGVjayBp
ZiBpdCdzIGFuIGludDMyLgotICAgICAgICBHUFJSZWcgZ3ByID0gaW5mby5ncHIoKTsKLSAgICAg
ICAgR1BSUmVnIHJlc3VsdDsKLSAgICAgICAgaWYgKG1fZ3Bycy5pc0xvY2tlZChncHIpKSB7Ci0g
ICAgICAgICAgICByZXN1bHQgPSBhbGxvY2F0ZSgpOwotICAgICAgICAgICAgbV9qaXQubW92ZShn
cHIsIHJlc3VsdCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2dwcnMubG9jayhn
cHIpOwotICAgICAgICAgICAgcmVzdWx0ID0gZ3ByOwotICAgICAgICB9Ci0gICAgICAgIGlmICh0
eXBlICYgflNwZWNJbnQzMikKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwg
SlNWYWx1ZVJlZ3MocmVzdWx0KSwgZWRnZSwgbV9qaXQuYnJhbmNoNjQoTWFjcm9Bc3NlbWJsZXI6
OkJlbG93LCByZXN1bHQsIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlcikpOwotICAgICAg
ICBpZiAocmVzdWx0ID09IGdwcikgLy8gVGhlIG5vdC1hbHJlYWR5LWxvY2tlZCwgc28gZmlsbCBp
bi1wbGFjZSwgY2FzZS4KLSAgICAgICAgICAgIGluZm8uZmlsbEludDUyKCptX3N0cmVhbSwgZ3By
LCBkZXNpcmVkRm9ybWF0KTsKLSAgICAgICAgbV9qaXQuc2lnbkV4dGVuZDMyVG9QdHIocmVzdWx0
LCByZXN1bHQpOwotICAgICAgICBpZiAoZGVzaXJlZEZvcm1hdCA9PSBEYXRhRm9ybWF0SW50NTIp
Ci0gICAgICAgICAgICBtX2ppdC5sc2hpZnQ2NChUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6aW50NTJT
aGlmdEFtb3VudCksIHJlc3VsdCk7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0g
ICAgY2FzZSBEYXRhRm9ybWF0SW50MzI6Ci0gICAgY2FzZSBEYXRhRm9ybWF0SlNJbnQzMjogewot
ICAgICAgICBHUFJSZWcgZ3ByID0gaW5mby5ncHIoKTsKLSAgICAgICAgR1BSUmVnIHJlc3VsdDsK
LSAgICAgICAgaWYgKG1fZ3Bycy5pc0xvY2tlZChncHIpKSB7Ci0gICAgICAgICAgICByZXN1bHQg
PSBhbGxvY2F0ZSgpOwotICAgICAgICAgICAgbV9qaXQubW92ZShncHIsIHJlc3VsdCk7Ci0gICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2dwcnMubG9jayhncHIpOwotICAgICAgICAgICAg
aW5mby5maWxsSW50NTIoKm1fc3RyZWFtLCBncHIsIGRlc2lyZWRGb3JtYXQpOwotICAgICAgICAg
ICAgcmVzdWx0ID0gZ3ByOwotICAgICAgICB9Ci0gICAgICAgIG1faml0LnNpZ25FeHRlbmQzMlRv
UHRyKHJlc3VsdCwgcmVzdWx0KTsKLSAgICAgICAgaWYgKGRlc2lyZWRGb3JtYXQgPT0gRGF0YUZv
cm1hdEludDUyKQotICAgICAgICAgICAgbV9qaXQubHNoaWZ0NjQoVHJ1c3RlZEltbTMyKEpTVmFs
dWU6OmludDUyU2hpZnRBbW91bnQpLCByZXN1bHQpOwotICAgICAgICByZXR1cm4gcmVzdWx0Owot
ICAgIH0KLQotICAgIGNhc2UgRGF0YUZvcm1hdFN0cmljdEludDUyOiB7Ci0gICAgICAgIEdQUlJl
ZyBncHIgPSBpbmZvLmdwcigpOwotICAgICAgICBib29sIHdhc0xvY2tlZCA9IG1fZ3Bycy5pc0xv
Y2tlZChncHIpOwotICAgICAgICBsb2NrKGdwcik7Ci0gICAgICAgIGlmIChkZXNpcmVkRm9ybWF0
ID09IERhdGFGb3JtYXRTdHJpY3RJbnQ1MikKLSAgICAgICAgICAgIHJldHVybiBncHI7Ci0gICAg
ICAgIGlmICh3YXNMb2NrZWQpIHsKLSAgICAgICAgICAgIEdQUlJlZyByZXN1bHQgPSBhbGxvY2F0
ZSgpOwotICAgICAgICAgICAgbV9qaXQubW92ZShncHIsIHJlc3VsdCk7Ci0gICAgICAgICAgICB1
bmxvY2soZ3ByKTsKLSAgICAgICAgICAgIGdwciA9IHJlc3VsdDsKLSAgICAgICAgfSBlbHNlCi0g
ICAgICAgICAgICBpbmZvLmZpbGxTdHJpY3RJbnQ1MigqbV9zdHJlYW0sIGdwcik7Ci0gICAgICAg
IG1faml0LmxzaGlmdDY0KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjppbnQ1MlNoaWZ0QW1vdW50KSwg
Z3ByKTsKLSAgICAgICAgcmV0dXJuIGdwcjsKLSAgICB9Ci0gICAgICAgIAotICAgIGNhc2UgRGF0
YUZvcm1hdEludDUyOiB7Ci0gICAgICAgIEdQUlJlZyBncHIgPSBpbmZvLmdwcigpOwotICAgICAg
ICBib29sIHdhc0xvY2tlZCA9IG1fZ3Bycy5pc0xvY2tlZChncHIpOwotICAgICAgICBsb2NrKGdw
cik7Ci0gICAgICAgIGlmIChkZXNpcmVkRm9ybWF0ID09IERhdGFGb3JtYXRJbnQ1MikKLSAgICAg
ICAgICAgIHJldHVybiBncHI7Ci0gICAgICAgIGlmICh3YXNMb2NrZWQpIHsKLSAgICAgICAgICAg
IEdQUlJlZyByZXN1bHQgPSBhbGxvY2F0ZSgpOwotICAgICAgICAgICAgbV9qaXQubW92ZShncHIs
IHJlc3VsdCk7Ci0gICAgICAgICAgICB1bmxvY2soZ3ByKTsKLSAgICAgICAgICAgIGdwciA9IHJl
c3VsdDsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBpbmZvLmZpbGxJbnQ1MigqbV9zdHJl
YW0sIGdwcik7Ci0gICAgICAgIG1faml0LnJzaGlmdDY0KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpp
bnQ1MlNoaWZ0QW1vdW50KSwgZ3ByKTsKLSAgICAgICAgcmV0dXJuIGdwcjsKLSAgICB9Ci0KLSAg
ICBjYXNlIERhdGFGb3JtYXREb3VibGU6Ci0gICAgY2FzZSBEYXRhRm9ybWF0SlNEb3VibGU6Ci0g
ICAgICAgIGlmIChlZGdlLT5oYXNDb25zdGFudCgpKSB7Ci0gICAgICAgICAgICBKU1ZhbHVlIGpz
VmFsdWUgPSB2YWx1ZU9mSlNDb25zdGFudChlZGdlLm5vZGUoKSk7Ci0gICAgICAgICAgICBpZiAo
anNWYWx1ZS5pc01hY2hpbmVJbnQoKSkgewotICAgICAgICAgICAgICAgIGludDY0X3QgdmFsdWUg
PSBqc1ZhbHVlLmFzTWFjaGluZUludCgpOwotICAgICAgICAgICAgICAgIGlmIChkZXNpcmVkRm9y
bWF0ID09IERhdGFGb3JtYXRJbnQ1MikKLSAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1
ZSA8PCBKU1ZhbHVlOjppbnQ1MlNoaWZ0QW1vdW50OwotICAgICAgICAgICAgICAgIEdQUlJlZyBn
cHIgPSBhbGxvY2F0ZSgpOwotICAgICAgICAgICAgICAgIG1faml0Lm1vdmUoTWFjcm9Bc3NlbWJs
ZXI6OkltbTY0KHZhbHVlKSwgZ3ByKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gZ3ByOwotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIAotICAgIGNhc2UgRGF0YUZvcm1hdENlbGw6
Ci0gICAgY2FzZSBEYXRhRm9ybWF0Qm9vbGVhbjoKLSAgICBjYXNlIERhdGFGb3JtYXRKU0NlbGw6
Ci0gICAgY2FzZSBEYXRhRm9ybWF0SlNCb29sZWFuOiB7Ci0gICAgICAgIHRlcm1pbmF0ZVNwZWN1
bGF0aXZlRXhlY3V0aW9uKFVuY291bnRhYmxlLCBKU1ZhbHVlUmVncygpLCAwKTsKLSAgICAgICAg
cmV0dXJuIGFsbG9jYXRlKCk7Ci0gICAgfQotCi0gICAgY2FzZSBEYXRhRm9ybWF0U3RvcmFnZToK
LSAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgCi0gICAgZGVm
YXVsdDoKLSAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0
dXJuIEludmFsaWRHUFJSZWc7Ci0gICAgfQotfQotCiBGUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZp
bGxTcGVjdWxhdGVEb3VibGUoRWRnZSBlZGdlKQogewogI2lmIERGR19FTkFCTEUoREVCVUdfVkVS
Qk9TRSkKQEAgLTExNzEsOCArODkyLDggQEAgRlBSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsU3Bl
Y3VsYXRlRG91YmxlKEVkZ2UgZWRnZSkKICNlbmRpZgogICAgIEFic3RyYWN0VmFsdWUmIHZhbHVl
ID0gbV9zdGF0ZS5mb3JOb2RlKGVkZ2UpOwogICAgIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSB2YWx1
ZS5tX3R5cGU7Ci0gICAgQVNTRVJUKGVkZ2UudXNlS2luZCgpICE9IEtub3duTnVtYmVyVXNlIHx8
ICEodmFsdWUubV90eXBlICYgflNwZWNGdWxsTnVtYmVyKSk7Ci0gICAgbV9pbnRlcnByZXRlci5m
aWx0ZXIodmFsdWUsIFNwZWNGdWxsTnVtYmVyKTsKKyAgICBBU1NFUlQoZWRnZS51c2VLaW5kKCkg
IT0gS25vd25OdW1iZXJVc2UgfHwgISh2YWx1ZS5tX3R5cGUgJiB+U3BlY051bWJlcikpOworICAg
IG1faW50ZXJwcmV0ZXIuZmlsdGVyKHZhbHVlLCBTcGVjTnVtYmVyKTsKICAgICBWaXJ0dWFsUmVn
aXN0ZXIgdmlydHVhbFJlZ2lzdGVyID0gZWRnZS0+dmlydHVhbFJlZ2lzdGVyKCk7CiAgICAgR2Vu
ZXJhdGlvbkluZm8mIGluZm8gPSBnZW5lcmF0aW9uSW5mb0Zyb21WaXJ0dWFsUmVnaXN0ZXIodmly
dHVhbFJlZ2lzdGVyKTsKIApAQCAtMTIyNCwyNCArOTQ1LDYgQEAgRlBSUmVnIFNwZWN1bGF0aXZl
SklUOjpmaWxsU3BlY3VsYXRlRG91YmxlKEVkZ2UgZWRnZSkKICAgICAgICAgICAgIHVubG9jayhn
cHIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAg
ICBjYXNlIERhdGFGb3JtYXRJbnQ1MjogewotICAgICAgICAgICAgR1BSUmVnIGdwciA9IGFsbG9j
YXRlKCk7Ci0gICAgICAgICAgICBtX2dwcnMucmV0YWluKGdwciwgdmlydHVhbFJlZ2lzdGVyLCBT
cGlsbE9yZGVyU3BpbGxlZCk7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6
OmFkZHJlc3NGb3IodmlydHVhbFJlZ2lzdGVyKSwgZ3ByKTsKLSAgICAgICAgICAgIGluZm8uZmls
bEludDUyKCptX3N0cmVhbSwgZ3ByKTsKLSAgICAgICAgICAgIHVubG9jayhncHIpOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIERhdGFG
b3JtYXRTdHJpY3RJbnQ1MjogewotICAgICAgICAgICAgR1BSUmVnIGdwciA9IGFsbG9jYXRlKCk7
Ci0gICAgICAgICAgICBtX2dwcnMucmV0YWluKGdwciwgdmlydHVhbFJlZ2lzdGVyLCBTcGlsbE9y
ZGVyU3BpbGxlZCk7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6OmFkZHJl
c3NGb3IodmlydHVhbFJlZ2lzdGVyKSwgZ3ByKTsKLSAgICAgICAgICAgIGluZm8uZmlsbFN0cmlj
dEludDUyKCptX3N0cmVhbSwgZ3ByKTsKLSAgICAgICAgICAgIHVubG9jayhncHIpOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIH0KIAogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAg
R1BSUmVnIGdwciA9IGFsbG9jYXRlKCk7CkBAIC0xMjc1LDcgKzk3OCw3IEBAIEZQUlJlZyBTcGVj
dWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZURvdWJsZShFZGdlIGVkZ2UpCiAKICAgICAgICAgSklU
Q29tcGlsZXI6Okp1bXAgaXNJbnRlZ2VyID0gbV9qaXQuYnJhbmNoNjQoTWFjcm9Bc3NlbWJsZXI6
OkFib3ZlT3JFcXVhbCwganNWYWx1ZUdwciwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVy
KTsKIAotICAgICAgICBpZiAodHlwZSAmIH5TcGVjRnVsbE51bWJlcikKKyAgICAgICAgaWYgKHR5
cGUgJiB+U3BlY051bWJlcikKICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwg
SlNWYWx1ZVJlZ3MoanNWYWx1ZUdwciksIGVkZ2UsIG1faml0LmJyYW5jaFRlc3Q2NChNYWNyb0Fz
c2VtYmxlcjo6WmVybywganNWYWx1ZUdwciwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVy
KSk7CiAKICAgICAgICAgLy8gRmlyc3QsIGlmIHdlIGdldCBoZXJlIHdlIGhhdmUgYSBkb3VibGUg
ZW5jb2RlZCBhcyBhIEpTVmFsdWUKQEAgLTEzMDYsMjggKzEwMDksNiBAQCBGUFJSZWcgU3BlY3Vs
YXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVEb3VibGUoRWRnZSBlZGdlKQogICAgICAgICBtX2dwcnMu
dW5sb2NrKGdwcik7CiAgICAgICAgIHJldHVybiBmcHI7CiAgICAgfQotICAgICAgICAKLSAgICBj
YXNlIERhdGFGb3JtYXRJbnQ1MjogewotICAgICAgICBGUFJSZWcgZnByID0gZnByQWxsb2NhdGUo
KTsKLSAgICAgICAgR1BSUmVnIGdwciA9IGluZm8uZ3ByKCk7Ci0gICAgICAgIG1fZ3Bycy5sb2Nr
KGdwcik7Ci0gICAgICAgIEdQUlJlZyB0ZW1wID0gYWxsb2NhdGUoKTsKLSAgICAgICAgbV9qaXQu
bW92ZShncHIsIHRlbXApOwotICAgICAgICBtX2ppdC5yc2hpZnQ2NChUcnVzdGVkSW1tMzIoSlNW
YWx1ZTo6aW50NTJTaGlmdEFtb3VudCksIHRlbXApOwotICAgICAgICBtX2ppdC5jb252ZXJ0SW50
NjRUb0RvdWJsZSh0ZW1wLCBmcHIpOwotICAgICAgICB1bmxvY2sodGVtcCk7Ci0gICAgICAgIG1f
Z3Bycy51bmxvY2soZ3ByKTsKLSAgICAgICAgcmV0dXJuIGZwcjsKLSAgICB9Ci0gICAgICAgIAot
ICAgIGNhc2UgRGF0YUZvcm1hdFN0cmljdEludDUyOiB7Ci0gICAgICAgIEZQUlJlZyBmcHIgPSBm
cHJBbGxvY2F0ZSgpOwotICAgICAgICBHUFJSZWcgZ3ByID0gaW5mby5ncHIoKTsKLSAgICAgICAg
bV9ncHJzLmxvY2soZ3ByKTsKLSAgICAgICAgbV9qaXQuY29udmVydEludDY0VG9Eb3VibGUoZ3By
LCBmcHIpOwotICAgICAgICBtX2dwcnMudW5sb2NrKGdwcik7Ci0gICAgICAgIHJldHVybiBmcHI7
Ci0gICAgfQogCiAgICAgLy8gVW5ib3ggdGhlIGRvdWJsZQogICAgIGNhc2UgRGF0YUZvcm1hdEpT
RG91YmxlOiB7CkBAIC0xNDMwLDkgKzExMTEsNyBAQCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZp
bGxTcGVjdWxhdGVDZWxsKEVkZ2UgZWRnZSkKICAgICBjYXNlIERhdGFGb3JtYXRKU0RvdWJsZToK
ICAgICBjYXNlIERhdGFGb3JtYXREb3VibGU6CiAgICAgY2FzZSBEYXRhRm9ybWF0SlNCb29sZWFu
OgotICAgIGNhc2UgRGF0YUZvcm1hdEJvb2xlYW46Ci0gICAgY2FzZSBEYXRhRm9ybWF0SW50NTI6
Ci0gICAgY2FzZSBEYXRhRm9ybWF0U3RyaWN0SW50NTI6IHsKKyAgICBjYXNlIERhdGFGb3JtYXRC
b29sZWFuOiB7CiAgICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKFVuY291bnRh
YmxlLCBKU1ZhbHVlUmVncygpLCAwKTsKICAgICAgICAgcmV0dXJuIGFsbG9jYXRlKCk7CiAgICAg
fQpAQCAtMTUxNSw5ICsxMTk0LDcgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3Vs
YXRlQm9vbGVhbihFZGdlIGVkZ2UpCiAgICAgY2FzZSBEYXRhRm9ybWF0SlNEb3VibGU6CiAgICAg
Y2FzZSBEYXRhRm9ybWF0RG91YmxlOgogICAgIGNhc2UgRGF0YUZvcm1hdEpTQ2VsbDoKLSAgICBj
YXNlIERhdGFGb3JtYXRDZWxsOgotICAgIGNhc2UgRGF0YUZvcm1hdEludDUyOgotICAgIGNhc2Ug
RGF0YUZvcm1hdFN0cmljdEludDUyOiB7CisgICAgY2FzZSBEYXRhRm9ybWF0Q2VsbDogewogICAg
ICAgICB0ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihVbmNvdW50YWJsZSwgSlNWYWx1ZVJl
Z3MoKSwgMCk7CiAgICAgICAgIHJldHVybiBhbGxvY2F0ZSgpOwogICAgIH0KQEAgLTE4MjYsNDAg
KzE1MDMsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW50MzJDb21wYXJlKE5vZGUq
IG5vZGUsIE1hY3JvQXNzZW1ibGVyOjpSZWxhdGlvbmFsQwogICAgIGpzVmFsdWVSZXN1bHQocmVz
dWx0LmdwcigpLCBtX2N1cnJlbnROb2RlLCBEYXRhRm9ybWF0SlNCb29sZWFuKTsKIH0KIAotdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUludDUyQ29tcGFyZShOb2RlKiBub2RlLCBNYWNyb0Fz
c2VtYmxlcjo6UmVsYXRpb25hbENvbmRpdGlvbiBjb25kaXRpb24pCi17Ci0gICAgU3BlY3VsYXRl
V2hpY2hldmVySW50NTJPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAgU3Bl
Y3VsYXRlV2hpY2hldmVySW50NTJPcGVyYW5kIG9wMih0aGlzLCBub2RlLT5jaGlsZDIoKSwgb3Ax
KTsKLSAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBvcDEsIG9wMik7Ci0gICAg
Ci0gICAgbV9qaXQuY29tcGFyZTY0KGNvbmRpdGlvbiwgb3AxLmdwcigpLCBvcDIuZ3ByKCksIHJl
c3VsdC5ncHIoKSk7Ci0gICAgCi0gICAgLy8gSWYgd2UgYWRkIGEgRGF0YUZvcm1hdEJvb2wsIHdl
IHNob3VsZCB1c2UgaXQgaGVyZS4KLSAgICBtX2ppdC5vcjMyKFRydXN0ZWRJbW0zMihWYWx1ZUZh
bHNlKSwgcmVzdWx0LmdwcigpKTsKLSAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdC5ncHIoKSwgbV9j
dXJyZW50Tm9kZSwgRGF0YUZvcm1hdEpTQm9vbGVhbik7Ci19Ci0KLXZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVQZWVwSG9sZUludDUyQnJhbmNoKE5vZGUqIG5vZGUsIE5vZGUqIGJyYW5jaE5v
ZGUsIEpJVENvbXBpbGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmRpdGlvbikKLXsKLSAgICBC
YXNpY0Jsb2NrKiB0YWtlbiA9IGJyYW5jaE5vZGUtPnRha2VuQmxvY2soKTsKLSAgICBCYXNpY0Js
b2NrKiBub3RUYWtlbiA9IGJyYW5jaE5vZGUtPm5vdFRha2VuQmxvY2soKTsKLQotICAgIC8vIFRo
ZSBicmFuY2ggaW5zdHJ1Y3Rpb24gd2lsbCBicmFuY2ggdG8gdGhlIHRha2VuIGJsb2NrLgotICAg
IC8vIElmIHRha2VuIGlzIG5leHQsIHN3aXRjaCB0YWtlbiB3aXRoIG5vdFRha2VuICYgaW52ZXJ0
IHRoZSBicmFuY2ggY29uZGl0aW9uIHNvIHdlIGNhbiBmYWxsIHRocm91Z2guCi0gICAgaWYgKHRh
a2VuID09IG5leHRCbG9jaygpKSB7Ci0gICAgICAgIGNvbmRpdGlvbiA9IEpJVENvbXBpbGVyOjpp
bnZlcnQoY29uZGl0aW9uKTsKLSAgICAgICAgQmFzaWNCbG9jayogdG1wID0gdGFrZW47Ci0gICAg
ICAgIHRha2VuID0gbm90VGFrZW47Ci0gICAgICAgIG5vdFRha2VuID0gdG1wOwotICAgIH0KLSAg
ICAKLSAgICBTcGVjdWxhdGVXaGljaGV2ZXJJbnQ1Mk9wZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNo
aWxkMSgpKTsKLSAgICBTcGVjdWxhdGVXaGljaGV2ZXJJbnQ1Mk9wZXJhbmQgb3AyKHRoaXMsIG5v
ZGUtPmNoaWxkMigpLCBvcDEpOwotICAgIAotICAgIGJyYW5jaDY0KGNvbmRpdGlvbiwgb3AxLmdw
cigpLCBvcDIuZ3ByKCksIHRha2VuKTsKLSAgICBqdW1wKG5vdFRha2VuKTsKLX0KLQogdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZURvdWJsZUNvbXBhcmUoTm9kZSogbm9kZSwgTWFjcm9Bc3Nl
bWJsZXI6OkRvdWJsZUNvbmRpdGlvbiBjb25kaXRpb24pCiB7CiAgICAgU3BlY3VsYXRlRG91Ymxl
T3BlcmFuZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwpAQCAtMjI2MywxNiArMTkwNiw2IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgY2FzZSBGbHVzaGVkSW50NTI6
IHsKLSAgICAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7Ci0gICAgICAgICAgICBt
X2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3Iobm9kZS0+bG9jYWwoKSksIHJlc3Vs
dC5ncHIoKSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIFZpcnR1YWxSZWdpc3RlciB2aXJ0
dWFsUmVnaXN0ZXIgPSBub2RlLT52aXJ0dWFsUmVnaXN0ZXIoKTsKLSAgICAgICAgICAgIG1fZ3By
cy5yZXRhaW4ocmVzdWx0LmdwcigpLCB2aXJ0dWFsUmVnaXN0ZXIsIFNwaWxsT3JkZXJKUyk7Ci0g
ICAgICAgICAgICBnZW5lcmF0aW9uSW5mb0Zyb21WaXJ0dWFsUmVnaXN0ZXIodmlydHVhbFJlZ2lz
dGVyKS5pbml0SW50NTIobm9kZSwgbm9kZS0+cmVmQ291bnQoKSwgcmVzdWx0LmdwcigpKTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgICAgICAKICAgICAgICAgZGVmYXVs
dDoKICAgICAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CiAgICAgICAgICAgICBt
X2ppdC5sb2FkNjQoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3Iobm9kZS0+bG9jYWwoKSksIHJlc3Vs
dC5ncHIoKSk7CkBAIC0yMzQ4LDE0ICsxOTgxLDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
ICAgIAotICAgICAgICBjYXNlIEZsdXNoZWRJbnQ1MjogewotICAgICAgICAgICAgU3BlY3VsYXRl
SW50NTJPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgIG1f
aml0LnN0b3JlNjQodmFsdWUuZ3ByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKG5vZGUtPmxv
Y2FsKCkpKTsKLSAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUpOwotICAgICAgICAgICAgcmVjb3Jk
U2V0TG9jYWwobm9kZS0+bG9jYWwoKSwgVmFsdWVTb3VyY2UoSW50NTJJbkpTU3RhY2spKTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgICAgICAKICAgICAgICAgY2FzZSBG
bHVzaGVkQ2VsbDogewogICAgICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgY2VsbCh0aGlz
LCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBHUFJSZWcgY2VsbEdQUiA9IGNlbGwuZ3By
KCk7CkBAIC0yNDc5LDIyICsyMTA0LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShO
b2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAgICAgICAgIAotICAgIGNhc2UgSW50
NTJUb1ZhbHVlOiB7Ci0gICAgICAgIEpTVmFsdWVPcGVyYW5kIG9wZXJhbmQodGhpcywgbm9kZS0+
Y2hpbGQxKCkpOwotICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBvcGVy
YW5kKTsKLSAgICAgICAgbV9qaXQubW92ZShvcGVyYW5kLmdwcigpLCByZXN1bHQuZ3ByKCkpOwot
ICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9kZSk7Ci0gICAgICAgIGJyZWFr
OwotICAgIH0KLSAgICAgICAgCi0gICAgY2FzZSBJbnQ1MlRvRG91YmxlOiB7Ci0gICAgICAgIFNw
ZWN1bGF0ZURvdWJsZU9wZXJhbmQgb3BlcmFuZCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAg
ICAgIEZQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgb3BlcmFuZCk7Ci0gICAgICAgIG1faml0Lm1v
dmVEb3VibGUob3BlcmFuZC5mcHIoKSwgcmVzdWx0LmZwcigpKTsKLSAgICAgICAgZG91YmxlUmVz
dWx0KHJlc3VsdC5mcHIoKSwgbm9kZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICAgICAg
CiAgICAgY2FzZSBWYWx1ZUFkZDoKICAgICBjYXNlIEFyaXRoQWRkOgogICAgICAgICBjb21waWxl
QWRkKG5vZGUpOwpAQCAtMzI4MCw3ICsyODg5LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgRlBSUmVnIHZhbHVlRlBSID0gdmFsdWUuZnBy
KCk7CiAKICAgICAgICAgICAgIERGR19UWVBFX0NIRUNLKAotICAgICAgICAgICAgICAgIEpTVmFs
dWVSZWdzKCksIG5vZGUtPmNoaWxkMigpLCBTcGVjRnVsbFJlYWxOdW1iZXIsCisgICAgICAgICAg
ICAgICAgSlNWYWx1ZVJlZ3MoKSwgbm9kZS0+Y2hpbGQyKCksIFNwZWNSZWFsTnVtYmVyLAogICAg
ICAgICAgICAgICAgIG1faml0LmJyYW5jaERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6RG91YmxlTm90
RXF1YWxPclVub3JkZXJlZCwgdmFsdWVGUFIsIHZhbHVlRlBSKSk7CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIG1faml0LmxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlR1BS
LCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpLCBzdG9yYWdlTGVuZ3RoR1BSKTsK
QEAgLTM0OTYsNyArMzEwNSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSog
bm9kZSkKICAgICAgICAgCiAgICAgICAgIG9wMS51c2UoKTsKICAgICAgICAgCi0gICAgICAgIGlm
ICghKG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkubV90eXBlICYgfihTcGVjRnVsbE51
bWJlciB8IFNwZWNCb29sZWFuKSkpCisgICAgICAgIGlmICghKG1fc3RhdGUuZm9yTm9kZShub2Rl
LT5jaGlsZDEoKSkubV90eXBlICYgfihTcGVjTnVtYmVyIHwgU3BlY0Jvb2xlYW4pKSkKICAgICAg
ICAgICAgIG1faml0Lm1vdmUob3AxR1BSLCByZXN1bHRHUFIpOwogICAgICAgICBlbHNlIHsKICAg
ICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGFscmVhZHlQcmltaXRpdmUgPSBtX2ppdC5i
cmFuY2hUZXN0NjQoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIG9wMUdQUiwgR1BSSW5mbzo6dGFn
TWFza1JlZ2lzdGVyKTsKQEAgLTM1OTMsNyArMzIwMiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgICAgICAgICAgU3BlY3VsYXRlRG91Ymxl
T3BlcmFuZCBvcGVyYW5kKHRoaXMsIHVzZSk7CiAgICAgICAgICAgICAgICAgICAgIEZQUlJlZyBv
cEZQUiA9IG9wZXJhbmQuZnByKCk7CiAgICAgICAgICAgICAgICAgICAgIERGR19UWVBFX0NIRUNL
KAotICAgICAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3MoKSwgdXNlLCBTcGVjRnVsbFJl
YWxOdW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncygpLCB1c2UsIFNw
ZWNSZWFsTnVtYmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoRG91Ymxl
KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpEb3VibGVOb3RF
cXVhbE9yVW5vcmRlcmVkLCBvcEZQUiwgb3BGUFIpKTsKICAgICAgICAgICAgICAgICAgICAgbV9q
aXQuc3RvcmVEb3VibGUob3BGUFIsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VHUFIs
IHNpemVvZihkb3VibGUpICogb3BlcmFuZElkeCkpOwpAQCAtMzY1OCw3ICszMjY3LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgICAgIEZQ
UlJlZyBvcEZQUiA9IG9wZXJhbmQuZnByKCk7CiAgICAgICAgICAgICAgICAgR1BSUmVnIHNjcmF0
Y2hHUFIgPSBzY3JhdGNoLmdwcigpOwogICAgICAgICAgICAgICAgIERGR19UWVBFX0NIRUNLKAot
ICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncygpLCB1c2UsIFNwZWNGdWxsUmVhbE51bWJl
ciwKKyAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3MoKSwgdXNlLCBTcGVjUmVhbE51bWJl
ciwKICAgICAgICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoRG91YmxlKAogICAgICAgICAgICAg
ICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQsIG9w
RlBSLCBvcEZQUikpOwogICAgICAgICAgICAgICAgIG1faml0LmJveERvdWJsZShvcEZQUiwgc2Ny
YXRjaEdQUik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtp
bmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcAppbmRleCAw
NzNlYjBlNjY2ZWVjMmQ2MmIyM2ZmNmFmNmQ5MTM0OTY4ZDRlM2QyLi41NmFlNmFkZWM0ZTRkNjNj
NDhjNjc5ZDg0MTE2MjViZWRhZjM0M2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1VzZUtpbmQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
VXNlS2luZC5jcHAKQEAgLTQ0LDkgKzQ0LDYgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3Ry
ZWFtJiBvdXQsIFVzZUtpbmQgdXNlS2luZCkKICAgICBjYXNlIEtub3duSW50MzJVc2U6CiAgICAg
ICAgIG91dC5wcmludCgiS25vd25JbnQzMiIpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIE1h
Y2hpbmVJbnRVc2U6Ci0gICAgICAgIG91dC5wcmludCgiTWFjaGluZUludCIpOwotICAgICAgICBi
cmVhazsKICAgICBjYXNlIFJlYWxOdW1iZXJVc2U6CiAgICAgICAgIG91dC5wcmludCgiUmVhbE51
bWJlciIpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHVXNlS2luZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5k
LmgKaW5kZXggN2FkMzkwNTI0YWE5MTQ1ZGU4ZTZmNWY1MGY4NWYxNGI1MWM5NTYwZC4uZWNjNjNm
NjgwZTIzZTc2ODAyOWI5ZjgwOTM4Nzg1NTViOTA3YmI0YSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdVc2VLaW5kLmgKQEAgLTM5LDcgKzM5LDYgQEAgZW51bSBVc2VLaW5kIHsKICAgICBV
bnR5cGVkVXNlLAogICAgIEludDMyVXNlLAogICAgIEtub3duSW50MzJVc2UsCi0gICAgTWFjaGlu
ZUludFVzZSwKICAgICBSZWFsTnVtYmVyVXNlLAogICAgIE51bWJlclVzZSwKICAgICBLbm93bk51
bWJlclVzZSwKQEAgLTY3LDEzICs2NiwxMSBAQCBBTFdBWVNfSU5MSU5FIFNwZWN1bGF0ZWRUeXBl
IHR5cGVGaWx0ZXJGb3IoVXNlS2luZCB1c2VLaW5kKQogICAgIGNhc2UgSW50MzJVc2U6CiAgICAg
Y2FzZSBLbm93bkludDMyVXNlOgogICAgICAgICByZXR1cm4gU3BlY0ludDMyOwotICAgIGNhc2Ug
TWFjaGluZUludFVzZToKLSAgICAgICAgcmV0dXJuIFNwZWNNYWNoaW5lSW50OwogICAgIGNhc2Ug
UmVhbE51bWJlclVzZToKLSAgICAgICAgcmV0dXJuIFNwZWNGdWxsUmVhbE51bWJlcjsKKyAgICAg
ICAgcmV0dXJuIFNwZWNSZWFsTnVtYmVyOwogICAgIGNhc2UgTnVtYmVyVXNlOgogICAgIGNhc2Ug
S25vd25OdW1iZXJVc2U6Ci0gICAgICAgIHJldHVybiBTcGVjRnVsbE51bWJlcjsKKyAgICAgICAg
cmV0dXJuIFNwZWNOdW1iZXI7CiAgICAgY2FzZSBCb29sZWFuVXNlOgogICAgICAgICByZXR1cm4g
U3BlY0Jvb2xlYW47CiAgICAgY2FzZSBDZWxsVXNlOgpAQCAtMTI4LDcgKzEyNSw2IEBAIEFMV0FZ
U19JTkxJTkUgYm9vbCBpc051bWVyaWNhbChVc2VLaW5kIGtpbmQpCiAgICAgc3dpdGNoIChraW5k
KSB7CiAgICAgY2FzZSBJbnQzMlVzZToKICAgICBjYXNlIEtub3duSW50MzJVc2U6Ci0gICAgY2Fz
ZSBNYWNoaW5lSW50VXNlOgogICAgIGNhc2UgUmVhbE51bWJlclVzZToKICAgICBjYXNlIE51bWJl
clVzZToKICAgICBjYXNlIEtub3duTnVtYmVyVXNlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdWYWx1ZVNvdXJjZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1ZhbHVlU291cmNlLmNwcAppbmRleCBlZjcwMmU0ZDU0ZTcyZTM1NzVjYTBiZjY4YjVh
NWI3NThhZDc1MzljLi44NzlhYTMwMjU0YzFlNTg4NmRlNjA2NzczNWI5ODE0NzNkYzViZGQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbHVlU291cmNlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbHVlU291cmNlLmNwcApAQCAtNDUs
OSArNDUsNiBAQCB2b2lkIFZhbHVlU291cmNlOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0
CiAgICAgY2FzZSBJbnQzMkluSlNTdGFjazoKICAgICAgICAgb3V0LnByaW50KCJJbnQzMiIpOwog
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEludDUySW5KU1N0YWNrOgotICAgICAgICBvdXQucHJp
bnQoIkludDUyIik7Ci0gICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2VsbEluSlNTdGFjazoKICAg
ICAgICAgb3V0LnByaW50KCJDZWxsIik7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYWx1ZVNvdXJjZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdWYWx1ZVNvdXJjZS5oCmluZGV4IDE1OTQ1NmY5NDE4ZGQwNGQzZGQ0Mjlm
MDM2OWU2YjIzNjU2N2JhZTAuLmU2MzgxZGVjZGFiNGFlMGRhNmIyMzhmMDE0ZTFhZjYxZmFiNjQ1
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFsdWVTb3VyY2Uu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbHVlU291cmNlLmgKQEAgLTQz
LDcgKzQzLDYgQEAgZW51bSBWYWx1ZVNvdXJjZUtpbmQgewogICAgIFNvdXJjZU5vdFNldCwKICAg
ICBWYWx1ZUluSlNTdGFjaywKICAgICBJbnQzMkluSlNTdGFjaywKLSAgICBJbnQ1MkluSlNTdGFj
aywKICAgICBDZWxsSW5KU1N0YWNrLAogICAgIEJvb2xlYW5JbkpTU3RhY2ssCiAgICAgRG91Ymxl
SW5KU1N0YWNrLApAQCAtNTcsOCArNTYsNiBAQCBzdGF0aWMgaW5saW5lIFZhbHVlU291cmNlS2lu
ZCBkYXRhRm9ybWF0VG9WYWx1ZVNvdXJjZUtpbmQoRGF0YUZvcm1hdCBkYXRhRm9ybWF0KQogICAg
IHN3aXRjaCAoZGF0YUZvcm1hdCkgewogICAgIGNhc2UgRGF0YUZvcm1hdEludDMyOgogICAgICAg
ICByZXR1cm4gSW50MzJJbkpTU3RhY2s7Ci0gICAgY2FzZSBEYXRhRm9ybWF0SW50NTI6Ci0gICAg
ICAgIHJldHVybiBJbnQ1MkluSlNTdGFjazsKICAgICBjYXNlIERhdGFGb3JtYXREb3VibGU6CiAg
ICAgICAgIHJldHVybiBEb3VibGVJbkpTU3RhY2s7CiAgICAgY2FzZSBEYXRhRm9ybWF0Qm9vbGVh
bjoKQEAgLTgyLDggKzc5LDYgQEAgc3RhdGljIGlubGluZSBEYXRhRm9ybWF0IHZhbHVlU291cmNl
S2luZFRvRGF0YUZvcm1hdChWYWx1ZVNvdXJjZUtpbmQga2luZCkKICAgICAgICAgcmV0dXJuIERh
dGFGb3JtYXRKUzsKICAgICBjYXNlIEludDMySW5KU1N0YWNrOgogICAgICAgICByZXR1cm4gRGF0
YUZvcm1hdEludDMyOwotICAgIGNhc2UgSW50NTJJbkpTU3RhY2s6Ci0gICAgICAgIHJldHVybiBE
YXRhRm9ybWF0SW50NTI7CiAgICAgY2FzZSBDZWxsSW5KU1N0YWNrOgogICAgICAgICByZXR1cm4g
RGF0YUZvcm1hdENlbGw7CiAgICAgY2FzZSBCb29sZWFuSW5KU1N0YWNrOgpAQCAtMTQ0LDggKzEz
OSw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBWYWx1ZVNvdXJjZShEb3VibGVJbkpT
U3RhY2spOwogICAgICAgICBjYXNlIEZsdXNoZWRJbnQzMjoKICAgICAgICAgICAgIHJldHVybiBW
YWx1ZVNvdXJjZShJbnQzMkluSlNTdGFjayk7Ci0gICAgICAgIGNhc2UgRmx1c2hlZEludDUyOgot
ICAgICAgICAgICAgcmV0dXJuIFZhbHVlU291cmNlKEludDUySW5KU1N0YWNrKTsKICAgICAgICAg
Y2FzZSBGbHVzaGVkQ2VsbDoKICAgICAgICAgICAgIHJldHVybiBWYWx1ZVNvdXJjZShDZWxsSW5K
U1N0YWNrKTsKICAgICAgICAgY2FzZSBGbHVzaGVkQm9vbGVhbjoKQEAgLTE4OCw5ICsxODEsNiBA
QCBwdWJsaWM6CiAgICAgICAgIGNhc2UgSW50MzJJbkpTU3RhY2s6CiAgICAgICAgICAgICByZXR1
cm4gVmFsdWVSZWNvdmVyeTo6YWxyZWFkeUluSlNTdGFja0FzVW5ib3hlZEludDMyKCk7CiAgICAg
ICAgICAgICAKLSAgICAgICAgY2FzZSBJbnQ1MkluSlNTdGFjazoKLSAgICAgICAgICAgIHJldHVy
biBWYWx1ZVJlY292ZXJ5OjphbHJlYWR5SW5KU1N0YWNrQXNVbmJveGVkSW50NTIoKTsKLSAgICAg
ICAgICAgIAogICAgICAgICBjYXNlIENlbGxJbkpTU3RhY2s6CiAgICAgICAgICAgICByZXR1cm4g
VmFsdWVSZWNvdmVyeTo6YWxyZWFkeUluSlNTdGFja0FzVW5ib3hlZENlbGwoKTsKICAgICAgICAg
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYXJpYWJsZUFj
Y2Vzc0RhdGEuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVBY2Nlc3NE
YXRhLmgKaW5kZXggM2U2OGY0NDk4YWU1NDdjZWYxMTQyMDhjNzhlZWY2MGU3NmU3ZTE4Ni4uYTEz
ODM4YTQ2NTc3N2U2MzdmN2UzZmFhMjRkNWZiYWM0NTY5NjAwOSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYXJpYWJsZUFjY2Vzc0RhdGEuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlQWNjZXNzRGF0YS5oCkBAIC0yMzUsNyArMjM1
LDcgQEAgcHVibGljOgogICAgICAgICAKICAgICAgICAgLy8gSWYgdGhlIHZhcmlhYmxlIGlzIG5v
dCBhIG51bWJlciBwcmVkaWN0aW9uLCB0aGVuIHRoaXMgZG9lc24ndAogICAgICAgICAvLyBtYWtl
IGFueSBzZW5zZS4KLSAgICAgICAgaWYgKCFpc0Z1bGxOdW1iZXJTcGVjdWxhdGlvbihwcmVkaWN0
aW9uKCkpKSB7CisgICAgICAgIGlmICghaXNOdW1iZXJTcGVjdWxhdGlvbihwcmVkaWN0aW9uKCkp
KSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogd2UgbWF5IGVuZCB1cCBmb3JjaW5nIGEgbG9jYWwg
aW4gaW5saW5lZCBhcmd1bWVudCBwb3NpdGlvbiB0byBiZSBhIGRvdWJsZSBldmVuCiAgICAgICAg
ICAgICAvLyBpZiBpdCBpcyBzb21ldGltZXMgbm90IGV2ZW4gbnVtZXJpYywgc2luY2UgdGhpcyBu
ZXZlciBzaWduYWxzIHRoZSBmYWN0IHRoYXQgaXQgZG9lc24ndAogICAgICAgICAgICAgLy8gd2Fu
dCBkb3VibGVzLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NTEx
CkBAIC0zMzMsOSArMzMzLDYgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNJbnQzMlNwZWN1bGF0
aW9uKHByZWRpY3Rpb24pKQogICAgICAgICAgICAgcmV0dXJuIEZsdXNoZWRJbnQzMjsKICAgICAg
ICAgCi0gICAgICAgIGlmIChlbmFibGVJbnQ1MigpICYmICFvcGVyYW5kSXNBcmd1bWVudChtX2xv
Y2FsKSAmJiBpc01hY2hpbmVJbnRTcGVjdWxhdGlvbihwcmVkaWN0aW9uKSkKLSAgICAgICAgICAg
IHJldHVybiBGbHVzaGVkSW50NTI7Ci0gICAgICAgIAogICAgICAgICBpZiAoaXNDZWxsU3BlY3Vs
YXRpb24ocHJlZGljdGlvbikpCiAgICAgICAgICAgICByZXR1cm4gRmx1c2hlZENlbGw7CiAgICAg
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDQXJndW1lbnRH
ZXR0ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDQXJndW1lbnRHZXR0ZXIu
Y3BwCmluZGV4IGFjNTg1OGExMjQyYzJjYjhjYWFmNTAzNmExNjRhMTZkNTg2MjhhYjAuLjU0MDNl
YjNkOWY0NjhjOTIwNjNhYjUzMTg5MDIxYzdkM2YxMWI5NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQ0FyZ3VtZW50R2V0dGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTENBcmd1bWVudEdldHRlci5jcHAKQEAgLTMyLDIzICszMiwxMyBA
QCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBERkc7
CiAKLXZvaWQgQ0FyZ3VtZW50R2V0dGVyOjpsb2FkTmV4dEFuZEJveCgKLSAgICBWYWx1ZUZvcm1h
dCBmb3JtYXQsIEdQUlJlZyBkZXN0aW5hdGlvbiwgR1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcgc2Ny
YXRjaDIpCit2b2lkIENBcmd1bWVudEdldHRlcjo6bG9hZE5leHRBbmRCb3goVmFsdWVGb3JtYXQg
Zm9ybWF0LCBHUFJSZWcgZGVzdGluYXRpb24sIEdQUlJlZyBzY3JhdGNoKQogewotICAgIGlmIChz
Y3JhdGNoMSA9PSBJbnZhbGlkR1BSUmVnKSB7Ci0gICAgICAgIEFTU0VSVChzY3JhdGNoMiA9PSBJ
bnZhbGlkR1BSUmVnKTsKKyAgICBpZiAoc2NyYXRjaCA9PSBJbnZhbGlkR1BSUmVnKSB7CiAgICAg
ICAgIGlmIChkZXN0aW5hdGlvbiA9PSBHUFJJbmZvOjpub25BcmdHUFIwKQotICAgICAgICAgICAg
c2NyYXRjaDEgPSBHUFJJbmZvOjpub25BcmdHUFIxOworICAgICAgICAgICAgc2NyYXRjaCA9IEdQ
UkluZm86Om5vbkFyZ0dQUjE7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHNjcmF0Y2gxID0g
R1BSSW5mbzo6bm9uQXJnR1BSMDsKLSAgICB9Ci0gICAgaWYgKHNjcmF0Y2gyID09IEludmFsaWRH
UFJSZWcpIHsKLSAgICAgICAgaWYgKGRlc3RpbmF0aW9uICE9IEdQUkluZm86Om5vbkFyZ0dQUjAg
JiYgc2NyYXRjaDEgIT0gR1BSSW5mbzo6bm9uQXJnR1BSMCkKLSAgICAgICAgICAgIHNjcmF0Y2gy
ID0gR1BSSW5mbzo6bm9uQXJnR1BSMDsKLSAgICAgICAgZWxzZSBpZiAoZGVzdGluYXRpb24gIT0g
R1BSSW5mbzo6bm9uQXJnR1BSMSAmJiBzY3JhdGNoMSAhPSBHUFJJbmZvOjpub25BcmdHUFIxKQot
ICAgICAgICAgICAgc2NyYXRjaDIgPSBHUFJJbmZvOjpub25BcmdHUFIxOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBzY3JhdGNoMiA9IEdQUkluZm86Om5vbkFyZ0dQUjI7CisgICAgICAgICAg
ICBzY3JhdGNoID0gR1BSSW5mbzo6bm9uQXJnR1BSMDsKICAgICB9CiAgICAgCiAgICAgc3dpdGNo
IChmb3JtYXQpIHsKQEAgLTYwLDI2ICs1MCwyMSBAQCB2b2lkIENBcmd1bWVudEdldHRlcjo6bG9h
ZE5leHRBbmRCb3goCiAgICAgICAgICAgICAKICAgICBjYXNlIFZhbHVlRm9ybWF0VUludDMyOiB7
CiAgICAgICAgIGxvYWROZXh0MzIoZGVzdGluYXRpb24pOwotICAgICAgICBtX2ppdC5tb3ZlRG91
YmxlVG82NChGUFJJbmZvOjpmcFJlZ1QwLCBzY3JhdGNoMik7Ci0gICAgICAgIG1faml0LmJveElu
dDUyKGRlc3RpbmF0aW9uLCBkZXN0aW5hdGlvbiwgc2NyYXRjaDEsIEZQUkluZm86OmZwUmVnVDAp
OwotICAgICAgICBtX2ppdC5tb3ZlNjRUb0RvdWJsZShzY3JhdGNoMiwgRlBSSW5mbzo6ZnBSZWdU
MCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICAgICAgCi0gICAgY2FzZSBWYWx1ZUZvcm1h
dEludDUyOiB7Ci0gICAgICAgIGxvYWROZXh0NjQoZGVzdGluYXRpb24pOwotICAgICAgICBtX2pp
dC5yc2hpZnQ2NChBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjppbnQ1MlNo
aWZ0QW1vdW50KSwgZGVzdGluYXRpb24pOwotICAgICAgICBtX2ppdC5tb3ZlRG91YmxlVG82NChG
UFJJbmZvOjpmcFJlZ1QwLCBzY3JhdGNoMik7Ci0gICAgICAgIG1faml0LmJveEludDUyKGRlc3Rp
bmF0aW9uLCBkZXN0aW5hdGlvbiwgc2NyYXRjaDEsIEZQUkluZm86OmZwUmVnVDApOwotICAgICAg
ICBtX2ppdC5tb3ZlNjRUb0RvdWJsZShzY3JhdGNoMiwgRlBSSW5mbzo6ZnBSZWdUMCk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIH0KKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgaXNJbnQgPSBt
X2ppdC5icmFuY2gzMigKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpHcmVhdGVyVGhhbk9y
RXF1YWwsCisgICAgICAgICAgICBkZXN0aW5hdGlvbiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW0zMigwKSk7CiAgICAgICAgICAgICAKLSAgICBjYXNlIFZhbHVlRm9ybWF0U3RyaWN0SW50NTI6
IHsKLSAgICAgICAgbG9hZE5leHQ2NChkZXN0aW5hdGlvbik7Ci0gICAgICAgIG1faml0Lm1vdmVE
b3VibGVUbzY0KEZQUkluZm86OmZwUmVnVDAsIHNjcmF0Y2gyKTsKLSAgICAgICAgbV9qaXQuYm94
SW50NTIoZGVzdGluYXRpb24sIGRlc3RpbmF0aW9uLCBzY3JhdGNoMSwgRlBSSW5mbzo6ZnBSZWdU
MCk7Ci0gICAgICAgIG1faml0Lm1vdmU2NFRvRG91YmxlKHNjcmF0Y2gyLCBGUFJJbmZvOjpmcFJl
Z1QwKTsKKyAgICAgICAgbV9qaXQubW92ZURvdWJsZVRvNjQoRlBSSW5mbzo6ZnBSZWdUMCwgc2Ny
YXRjaCk7CisgICAgICAgIG1faml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKGRlc3RpbmF0aW9uLCBG
UFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgbV9qaXQuYm94RG91YmxlKEZQUkluZm86OmZwUmVn
VDAsIGRlc3RpbmF0aW9uKTsKKyAgICAgICAgbV9qaXQubW92ZTY0VG9Eb3VibGUoc2NyYXRjaCwg
RlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICAKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
Okp1bXAgZG9uZSA9IG1faml0Lmp1bXAoKTsKKyAgICAgICAgICAgIAorICAgICAgICBpc0ludC5s
aW5rKCZtX2ppdCk7CisgICAgICAgIG1faml0Lm9yNjQoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJl
Z2lzdGVyLCBkZXN0aW5hdGlvbik7CisgICAgICAgICAgICAKKyAgICAgICAgZG9uZS5saW5rKCZt
X2ppdCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgICAgIApAQCAtOTUsMTAgKzgw
LDEwIEBAIHZvaWQgQ0FyZ3VtZW50R2V0dGVyOjpsb2FkTmV4dEFuZEJveCgKICAgICB9CiAgICAg
ICAgICAgICAKICAgICBjYXNlIFZhbHVlRm9ybWF0RG91YmxlOiB7Ci0gICAgICAgIG1faml0Lm1v
dmVEb3VibGVUbzY0KEZQUkluZm86OmZwUmVnVDAsIHNjcmF0Y2gxKTsKKyAgICAgICAgbV9qaXQu
bW92ZURvdWJsZVRvNjQoRlBSSW5mbzo6ZnBSZWdUMCwgc2NyYXRjaCk7CiAgICAgICAgIGxvYWRO
ZXh0RG91YmxlKEZQUkluZm86OmZwUmVnVDApOwogICAgICAgICBtX2ppdC5ib3hEb3VibGUoRlBS
SW5mbzo6ZnBSZWdUMCwgZGVzdGluYXRpb24pOwotICAgICAgICBtX2ppdC5tb3ZlNjRUb0RvdWJs
ZShzY3JhdGNoMSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgIG1faml0Lm1vdmU2NFRvRG91
YmxlKHNjcmF0Y2gsIEZQUkluZm86OmZwUmVnVDApOwogICAgICAgICBicmVhazsKICAgICB9CiAg
ICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ0Fy
Z3VtZW50R2V0dGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENBcmd1bWVudEdl
dHRlci5oCmluZGV4IGY4MGZmY2M4N2YwN2U2MDk0NjczMzM5MmY4ZTkwOWE2NmFmN2JiYjcuLjE4
ZmJiMDIxZjhiMWNiODBiYjcxOTkxNTBmYzA0ODYwMDQxYzRjYjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ0FyZ3VtZW50R2V0dGVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExDQXJndW1lbnRHZXR0ZXIuaApAQCAtMTE1LDggKzExNSw3IEBA
IHB1YmxpYzoKICAgICB9CiAgICAgCiAgICAgdm9pZCBsb2FkTmV4dEFuZEJveCgKLSAgICAgICAg
VmFsdWVGb3JtYXQsIERGRzo6R1BSUmVnIGRlc3RpbmF0aW9uLAotICAgICAgICBERkc6OkdQUlJl
ZyBzY3JhdGNoMSA9IEludmFsaWRHUFJSZWcsIERGRzo6R1BSUmVnIHNjcmF0Y2gyID0gSW52YWxp
ZEdQUlJlZyk7CisgICAgICAgIFZhbHVlRm9ybWF0IGZvcm1hdCwgREZHOjpHUFJSZWcgZGVzdGlu
YXRpb24sIERGRzo6R1BSUmVnIHNjcmF0Y2ggPSBJbnZhbGlkR1BSUmVnKTsKIAogcHJpdmF0ZToK
ICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBuZXh0QWRkcmVzcygpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggNGFkMjc1YTRjMWRiMzVm
YjgyNmFkM2YzNGYxMTExYTMyZTk0ZjNhYS4uNzk2MDY2NzQ4MWE5ZDVhNmVmZTkyODkyOTRiYmI4
NjNkZmY4ODNlNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBh
YmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0
aWVzLmNwcApAQCAtMTY0LDggKzE2NCw2IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29t
cGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgQ29tcGFyZVN0cmljdEVxOgogICAgICAgICBpZiAo
bm9kZS0+aXNCaW5hcnlVc2VLaW5kKEludDMyVXNlKSkKICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKE1hY2hpbmVJbnRVc2UpKQotICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGlmIChub2RlLT5pc0JpbmFyeVVzZUtpbmQoTnVtYmVyVXNlKSkK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKE9i
amVjdFVzZSkpCkBAIC0xNzcsOCArMTc1LDYgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5D
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDb21wYXJlR3JlYXRlckVxOgogICAgICAgICBp
ZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKEludDMyVXNlKSkKICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKE1hY2hpbmVJbnRVc2UpKQotICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGlmIChub2RlLT5pc0JpbmFyeVVzZUtpbmQoTnVtYmVyVXNl
KSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKQEAg
LTI0MCw3ICsyMzYsNiBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShHcmFwaCYgZ3JhcGgp
CiAgICAgICAgICAgICAgICAgY2FzZSBVbnR5cGVkVXNlOgogICAgICAgICAgICAgICAgIGNhc2Ug
SW50MzJVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBLbm93bkludDMyVXNlOgotICAgICAgICAg
ICAgICAgIGNhc2UgTWFjaGluZUludFVzZToKICAgICAgICAgICAgICAgICBjYXNlIE51bWJlclVz
ZToKICAgICAgICAgICAgICAgICBjYXNlIEtub3duTnVtYmVyVXNlOgogICAgICAgICAgICAgICAg
IGNhc2UgUmVhbE51bWJlclVzZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMRXhpdFZhbHVlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhpdFZh
bHVlLmNwcAppbmRleCA5NWRjODJjYjk0YjBiYjFiMDlmMDIyNDMwMTY1NDdhMmI3N2NhMWE2Li5i
OTBjNWNmNGE4ZGZmM2I5MzNhZDk0YzFhY2ZiMmVmYzg2MDZkZWViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEV4aXRWYWx1ZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExFeGl0VmFsdWUuY3BwCkBAIC01Myw5ICs1Myw2IEBAIHZvaWQgRXhp
dFZhbHVlOjpkdW1wSW5Db250ZXh0KFByaW50U3RyZWFtJiBvdXQsIER1bXBDb250ZXh0KiBjb250
ZXh0KSBjb25zdAogICAgIGNhc2UgRXhpdFZhbHVlSW5KU1N0YWNrQXNJbnQzMjoKICAgICAgICAg
b3V0LnByaW50KCJJbkpTU3RhY2tBc0ludDMyIik7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNl
IEV4aXRWYWx1ZUluSlNTdGFja0FzSW50NTI6Ci0gICAgICAgIG91dC5wcmludCgiSW5KU1N0YWNr
QXNJbnQ1MiIpOwotICAgICAgICByZXR1cm47CiAgICAgY2FzZSBFeGl0VmFsdWVJbkpTU3RhY2tB
c0RvdWJsZToKICAgICAgICAgb3V0LnByaW50KCJJbkpTU3RhY2tBc0RvdWJsZSIpOwogICAgICAg
ICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEV4aXRW
YWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGl0VmFsdWUuaAppbmRleCAw
YWJhZTJjYTY1NmYwMTE2ODYyYjUxZGEwZjVlOWE3YzZkMzc4NTY2Li41ODE0ZmM5YTgyMzA3MTlm
N2RjZDRjNmJjYzY4NjM2MzVjNDY4NTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTEV4aXRWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
RXhpdFZhbHVlLmgKQEAgLTQ5LDcgKzQ5LDYgQEAgZW51bSBFeGl0VmFsdWVLaW5kIHsKICAgICBF
eGl0VmFsdWVDb25zdGFudCwKICAgICBFeGl0VmFsdWVJbkpTU3RhY2ssCiAgICAgRXhpdFZhbHVl
SW5KU1N0YWNrQXNJbnQzMiwKLSAgICBFeGl0VmFsdWVJbkpTU3RhY2tBc0ludDUyLAogICAgIEV4
aXRWYWx1ZUluSlNTdGFja0FzRG91YmxlCiB9OwogCkBAIC04MywxMyArODIsNiBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIAotICAgIHN0YXRpYyBFeGl0VmFs
dWUgaW5KU1N0YWNrQXNJbnQ1MigpCi0gICAgewotICAgICAgICBFeGl0VmFsdWUgcmVzdWx0Owot
ICAgICAgICByZXN1bHQubV9raW5kID0gRXhpdFZhbHVlSW5KU1N0YWNrQXNJbnQ1MjsKLSAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCiAgICAgc3RhdGljIEV4aXRWYWx1ZSBpbkpT
U3RhY2tBc0RvdWJsZSgpCiAgICAgewogICAgICAgICBFeGl0VmFsdWUgcmVzdWx0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaAppbmRl
eCAyM2QxNTQxZjk3ZWE5NjcyMjU4MzcxNTBjMmE2MjA4YjAwNzc4NTk4Li5jNjQ2YWY0NWFlYjYx
YTc3Zjk5YmFlNTU4NDhlMmU2MjdlMzlhYzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaApAQCAtMzgsMTIgKzM4LDkgQEAgbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogCiAjZGVmaW5lIEZPUl9FQUNIX0ZUTF9JTlRS
SU5TSUMobWFjcm8pIFwKICAgICBtYWNybyhhZGRXaXRoT3ZlcmZsb3czMiwgImxsdm0uc2FkZC53
aXRoLm92ZXJmbG93LmkzMiIsIGZ1bmN0aW9uVHlwZShzdHJ1Y3RUeXBlKG1fY29udGV4dCwgaW50
MzIsIGJvb2xlYW4pLCBpbnQzMiwgaW50MzIpKSBcCi0gICAgbWFjcm8oYWRkV2l0aE92ZXJmbG93
NjQsICJsbHZtLnNhZGQud2l0aC5vdmVyZmxvdy5pNjQiLCBmdW5jdGlvblR5cGUoc3RydWN0VHlw
ZShtX2NvbnRleHQsIGludDY0LCBib29sZWFuKSwgaW50NjQsIGludDY0KSkgXAogICAgIG1hY3Jv
KGRvdWJsZUFicywgImxsdm0uZmFicy5mNjQiLCBmdW5jdGlvblR5cGUoZG91YmxlVHlwZSwgZG91
YmxlVHlwZSkpIFwKICAgICBtYWNybyhtdWxXaXRoT3ZlcmZsb3czMiwgImxsdm0uc211bC53aXRo
Lm92ZXJmbG93LmkzMiIsIGZ1bmN0aW9uVHlwZShzdHJ1Y3RUeXBlKG1fY29udGV4dCwgaW50MzIs
IGJvb2xlYW4pLCBpbnQzMiwgaW50MzIpKSBcCi0gICAgbWFjcm8obXVsV2l0aE92ZXJmbG93NjQs
ICJsbHZtLnNtdWwud2l0aC5vdmVyZmxvdy5pNjQiLCBmdW5jdGlvblR5cGUoc3RydWN0VHlwZSht
X2NvbnRleHQsIGludDY0LCBib29sZWFuKSwgaW50NjQsIGludDY0KSkgXAogICAgIG1hY3JvKHN1
YldpdGhPdmVyZmxvdzMyLCAibGx2bS5zc3ViLndpdGgub3ZlcmZsb3cuaTMyIiwgZnVuY3Rpb25U
eXBlKHN0cnVjdFR5cGUobV9jb250ZXh0LCBpbnQzMiwgYm9vbGVhbiksIGludDMyLCBpbnQzMikp
IFwKLSAgICBtYWNybyhzdWJXaXRoT3ZlcmZsb3c2NCwgImxsdm0uc3N1Yi53aXRoLm92ZXJmbG93
Lmk2NCIsIGZ1bmN0aW9uVHlwZShzdHJ1Y3RUeXBlKG1fY29udGV4dCwgaW50NjQsIGJvb2xlYW4p
LCBpbnQ2NCwgaW50NjQpKSBcCiAgICAgbWFjcm8odHJhcCwgImxsdm0udHJhcCIsIGZ1bmN0aW9u
VHlwZSh2b2lkVHlwZSkpIFwKICAgICBtYWNybyhvc3JFeGl0LCAid2Via2l0X29zcl9leGl0Iiwg
ZnVuY3Rpb25UeXBlKHZvaWRUeXBlLCBib29sZWFuLCBpbnQzMiwgVmFyaWFkaWMpKQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCmluZGV4IDg5
NjE0Y2FiMWVkNDc2ZGU3OTU1OTkxNzU4NTIyM2Y3M2RlYmU3MDEuLjNiYzA4NzU3NGFjNGNmNmYz
Y2I0OGM0NzJmNDNiMDEwZmMwZjdkZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCkBAIC0xNTEsOSArMTUxLDYgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgICAgICBjYXNlIE5vZGVSZXN1bHRJbnQzMjoKICAgICAgICAgICAgICAgICAgICAg
dHlwZSA9IG1fb3V0LmludDMyOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICBjYXNlIE5vZGVSZXN1bHRJbnQ1MjoKLSAgICAgICAgICAgICAgICAgICAgdHlwZSA9
IG1fb3V0LmludDY0OwotICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
ICBjYXNlIE5vZGVSZXN1bHRCb29sZWFuOgogICAgICAgICAgICAgICAgICAgICB0eXBlID0gbV9v
dXQuYm9vbGVhbjsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0yNDIsNiArMjM5LDcg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIGNvbXBpbGVQaGkoKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIEpTQ29uc3RhbnQ6CisgICAgICAgICAgICBjb21waWxlSlNDb25zdGFu
dCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2Vha0pTQ29uc3RhbnQ6CiAg
ICAgICAgICAgICBjb21waWxlV2Vha0pTQ29uc3RhbnQoKTsKQEAgLTQ2Myw5ICs0NjEsNiBAQCBw
cml2YXRlOgogICAgICAgICBjYXNlIEludDMyVXNlOgogICAgICAgICAgICAgbV9vdXQuc2V0KGxv
d0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpLCBkZXN0aW5hdGlvbik7CiAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBNYWNoaW5lSW50VXNlOgotICAgICAgICAgICAgbV9vdXQuc2V0KGxv
d0ludDUyKG1fbm9kZS0+Y2hpbGQxKCkpLCBkZXN0aW5hdGlvbik7Ci0gICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBCb29sZWFuVXNlOgogICAgICAgICAgICAgbV9vdXQuc2V0KGxvd0Jv
b2xlYW4obV9ub2RlLT5jaGlsZDEoKSksIGRlc3RpbmF0aW9uKTsKICAgICAgICAgICAgIGJyZWFr
OwpAQCAtNDkyLDkgKzQ4Nyw2IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgTm9kZVJlc3VsdElu
dDMyOgogICAgICAgICAgICAgc2V0SW50MzIobV9vdXQuZ2V0KHNvdXJjZSkpOwogICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTm9kZVJlc3VsdEludDUyOgotICAgICAgICAgICAgc2V0
SW50NTIobV9vdXQuZ2V0KHNvdXJjZSkpOwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgTm9kZVJlc3VsdEJvb2xlYW46CiAgICAgICAgICAgICBzZXRCb29sZWFuKG1fb3V0LmdldChz
b3VyY2UpKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTk5LDEzICs1OTEsNiBAQCBwcml2YXRl
OgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAg
Y2FzZSBGbHVzaGVkSW50NTI6IHsKLSAgICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0ludDUy
KG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgbV9vdXQuc3RvcmU2NCh2YWx1ZSwgYWRk
cmVzc0Zvcih2YXJpYWJsZS0+bG9jYWwoKSkpOwotICAgICAgICAgICAgbV92YWx1ZVNvdXJjZXMu
b3BlcmFuZCh2YXJpYWJsZS0+bG9jYWwoKSkgPSBWYWx1ZVNvdXJjZShJbnQ1MkluSlNTdGFjayk7
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgICAgIAogICAgICAgICBj
YXNlIEZsdXNoZWRDZWxsOiB7CiAgICAgICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dDZWxsKG1f
bm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgbV9vdXQuc3RvcmU2NCh2YWx1ZSwgYWRkcmVz
c0Zvcih2YXJpYWJsZS0+bG9jYWwoKSkpOwpAQCAtNjcwLDI0ICs2NTUsNiBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAgICBjYXNl
IE1hY2hpbmVJbnRVc2U6IHsKLSAgICAgICAgICAgIGlmICghbV9zdGF0ZS5mb3JOb2RlKG1fbm9k
ZS0+Y2hpbGQxKCkpLmNvdWxkQmVUeXBlKFNwZWNJbnQ1MikKLSAgICAgICAgICAgICAgICAmJiAh
bV9zdGF0ZS5mb3JOb2RlKG1fbm9kZS0+Y2hpbGQyKCkpLmNvdWxkQmVUeXBlKFNwZWNJbnQ1Mikp
IHsKLSAgICAgICAgICAgICAgICBJbnQ1MktpbmQga2luZDsKLSAgICAgICAgICAgICAgICBMVmFs
dWUgbGVmdCA9IGxvd1doaWNoZXZlckludDUyKG1fbm9kZS0+Y2hpbGQxKCksIGtpbmQpOwotICAg
ICAgICAgICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0ludDUyKG1fbm9kZS0+Y2hpbGQyKCksIGtp
bmQpOwotICAgICAgICAgICAgICAgIHNldEludDUyKG1fb3V0LmFkZChsZWZ0LCByaWdodCksIGtp
bmQpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
Ci0gICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd0ludDUyKG1fbm9kZS0+Y2hpbGQxKCkpOwot
ICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93SW50NTIobV9ub2RlLT5jaGlsZDIoKSk7Ci0g
ICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQuYWRkV2l0aE92ZXJmbG93NjQobGVmdCwg
cmlnaHQpOwotICAgICAgICAgICAgc3BlY3VsYXRlKEludDUyT3ZlcmZsb3csIG5vVmFsdWUoKSwg
MCwgbV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMSkpOwotICAgICAgICAgICAgc2V0SW50NTIo
bV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIH0KLSAgICAgICAgICAgIAogICAgICAgICBjYXNlIE51bWJlclVzZTogewogICAgICAgICAg
ICAgc2V0RG91YmxlKAogICAgICAgICAgICAgICAgIG1fb3V0LmRvdWJsZUFkZChsb3dEb3VibGUo
bV9ub2RlLT5jaGlsZDEoKSksIGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMigpKSkpOwpAQCAtNzE4
LDI0ICs2ODUsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICAgICAgICAgIAotICAgICAgICBjYXNlIE1hY2hpbmVJbnRVc2U6IHsKLSAgICAgICAgICAgIGlm
ICghbV9zdGF0ZS5mb3JOb2RlKG1fbm9kZS0+Y2hpbGQxKCkpLmNvdWxkQmVUeXBlKFNwZWNJbnQ1
MikKLSAgICAgICAgICAgICAgICAmJiAhbV9zdGF0ZS5mb3JOb2RlKG1fbm9kZS0+Y2hpbGQyKCkp
LmNvdWxkQmVUeXBlKFNwZWNJbnQ1MikpIHsKLSAgICAgICAgICAgICAgICBJbnQ1MktpbmQga2lu
ZDsKLSAgICAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd1doaWNoZXZlckludDUyKG1fbm9k
ZS0+Y2hpbGQxKCksIGtpbmQpOwotICAgICAgICAgICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0lu
dDUyKG1fbm9kZS0+Y2hpbGQyKCksIGtpbmQpOwotICAgICAgICAgICAgICAgIHNldEludDUyKG1f
b3V0LnN1YihsZWZ0LCByaWdodCksIGtpbmQpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd0lu
dDUyKG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93SW50
NTIobV9ub2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQu
c3ViV2l0aE92ZXJmbG93NjQobGVmdCwgcmlnaHQpOwotICAgICAgICAgICAgc3BlY3VsYXRlKElu
dDUyT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwgbV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMSkp
OwotICAgICAgICAgICAgc2V0SW50NTIobV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMCkpOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgICAgIAogICAgICAgICBjYXNl
IE51bWJlclVzZTogewogICAgICAgICAgICAgc2V0RG91YmxlKAogICAgICAgICAgICAgICAgIG1f
b3V0LmRvdWJsZVN1Yihsb3dEb3VibGUobV9ub2RlLT5jaGlsZDEoKSksIGxvd0RvdWJsZShtX25v
ZGUtPmNoaWxkMigpKSkpOwpAQCAtNzgxLDMyICs3MzAsNiBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAgICBjYXNlIE1hY2hpbmVJ
bnRVc2U6IHsKLSAgICAgICAgICAgIEludDUyS2luZCBraW5kOwotICAgICAgICAgICAgTFZhbHVl
IGxlZnQgPSBsb3dXaGljaGV2ZXJJbnQ1MihtX25vZGUtPmNoaWxkMSgpLCBraW5kKTsKLSAgICAg
ICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0ludDUyKG1fbm9kZS0+Y2hpbGQyKCksIG9wcG9zaXRl
KGtpbmQpKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgTFZhbHVlIG92ZXJmbG93UmVzdWx0
ID0gbV9vdXQubXVsV2l0aE92ZXJmbG93NjQobGVmdCwgcmlnaHQpOwotICAgICAgICAgICAgc3Bl
Y3VsYXRlKEludDUyT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwgbV9vdXQuZXh0cmFjdFZhbHVlKG92
ZXJmbG93UmVzdWx0LCAxKSk7Ci0gICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQuZXh0
cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAwKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAg
aWYgKCFieXRlY29kZUNhbklnbm9yZU5lZ2F0aXZlWmVybyhtX25vZGUtPmFyaXRoTm9kZUZsYWdz
KCkpKSB7Ci0gICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgc2xvd0Nhc2UgPSBGVExfTkVXX0JM
T0NLKG1fb3V0LCAoIkFyaXRoTXVsIHNsb3cgY2FzZSIpKTsKLSAgICAgICAgICAgICAgICBMQmFz
aWNCbG9jayBjb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTXVsIGNv
bnRpbnVhdGlvbiIpKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBtX291dC5i
cmFuY2gobV9vdXQubm90WmVybzY0KHJlc3VsdCksIGNvbnRpbnVhdGlvbiwgc2xvd0Nhc2UpOwot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0g
bV9vdXQuYXBwZW5kVG8oc2xvd0Nhc2UsIGNvbnRpbnVhdGlvbik7Ci0gICAgICAgICAgICAgICAg
c3BlY3VsYXRlKE5lZ2F0aXZlWmVybywgbm9WYWx1ZSgpLCAwLCBtX291dC5sZXNzVGhhbihsZWZ0
LCBtX291dC5pbnQ2NFplcm8pKTsKLSAgICAgICAgICAgICAgICBzcGVjdWxhdGUoTmVnYXRpdmVa
ZXJvLCBub1ZhbHVlKCksIDAsIG1fb3V0Lmxlc3NUaGFuKHJpZ2h0LCBtX291dC5pbnQ2NFplcm8p
KTsKLSAgICAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7Ci0gICAgICAgICAg
ICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHNldEludDUyKHJlc3VsdCk7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgTnVtYmVy
VXNlOiB7CiAgICAgICAgICAgICBzZXREb3VibGUoCiAgICAgICAgICAgICAgICAgbV9vdXQuZG91
YmxlTXVsKGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMSgpKSwgbG93RG91YmxlKG1fbm9kZS0+Y2hp
bGQyKCkpKSk7CkBAIC0xMTA5LDI2ICsxMDMyLDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgY2FzZSBNYWNoaW5lSW50VXNl
OiB7Ci0gICAgICAgICAgICBpZiAoIW1fc3RhdGUuZm9yTm9kZShtX25vZGUtPmNoaWxkMSgpKS5j
b3VsZEJlVHlwZShTcGVjSW50NTIpKSB7Ci0gICAgICAgICAgICAgICAgSW50NTJLaW5kIGtpbmQ7
Ci0gICAgICAgICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93V2hpY2hldmVySW50NTIobV9ub2Rl
LT5jaGlsZDEoKSwga2luZCk7Ci0gICAgICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0
Lm5lZyh2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFieXRlY29kZUNhbklnbm9yZU5lZ2F0
aXZlWmVybyhtX25vZGUtPmFyaXRoTm9kZUZsYWdzKCkpKQotICAgICAgICAgICAgICAgICAgICBz
cGVjdWxhdGUoTmVnYXRpdmVaZXJvLCBub1ZhbHVlKCksIDAsIG1fb3V0LmlzWmVybzY0KHJlc3Vs
dCkpOwotICAgICAgICAgICAgICAgIHNldEludDUyKHJlc3VsdCwga2luZCk7Ci0gICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIExW
YWx1ZSB2YWx1ZSA9IGxvd0ludDUyKG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgTFZh
bHVlIG92ZXJmbG93UmVzdWx0ID0gbV9vdXQuc3ViV2l0aE92ZXJmbG93NjQobV9vdXQuaW50NjRa
ZXJvLCB2YWx1ZSk7Ci0gICAgICAgICAgICBzcGVjdWxhdGUoSW50NTJPdmVyZmxvdywgbm9WYWx1
ZSgpLCAwLCBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDEpKTsKLSAgICAgICAg
ICAgIExWYWx1ZSByZXN1bHQgPSBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDAp
OwotICAgICAgICAgICAgc3BlY3VsYXRlKE5lZ2F0aXZlWmVybywgbm9WYWx1ZSgpLCAwLCBtX291
dC5pc1plcm82NChyZXN1bHQpKTsKLSAgICAgICAgICAgIHNldEludDUyKHJlc3VsdCk7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgTnVt
YmVyVXNlOiB7CiAgICAgICAgICAgICBzZXREb3VibGUobV9vdXQuZG91YmxlTmVnKGxvd0RvdWJs
ZShtX25vZGUtPmNoaWxkMSgpKSkpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0xNTcwLDcgKzE0
NzMsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0RvdWJs
ZShjaGlsZDMpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIEZUTF9UWVBFX0NI
RUNLKAotICAgICAgICAgICAgICAgICAgICBkb3VibGVWYWx1ZSh2YWx1ZSksIGNoaWxkMywgU3Bl
Y0Z1bGxSZWFsTnVtYmVyLAorICAgICAgICAgICAgICAgICAgICBkb3VibGVWYWx1ZSh2YWx1ZSks
IGNoaWxkMywgU3BlY1JlYWxOdW1iZXIsCiAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmRvdWJs
ZU5vdEVxdWFsT3JVbm9yZGVyZWQodmFsdWUsIHZhbHVlKSk7CiAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgVHlwZWRQb2ludGVyIGVsZW1lbnRQb2ludGVyID0gbV9vdXQuYmFzZUlu
ZGV4KApAQCAtMTgwNSw3ICsxNzA4LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbXBpbGVDb21w
YXJlRXEoKQogICAgIHsKICAgICAgICAgaWYgKG1fbm9kZS0+aXNCaW5hcnlVc2VLaW5kKEludDMy
VXNlKQotICAgICAgICAgICAgfHwgbV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQoTWFjaGluZUludFVz
ZSkKICAgICAgICAgICAgIHx8IG1fbm9kZS0+aXNCaW5hcnlVc2VLaW5kKE51bWJlclVzZSkKICAg
ICAgICAgICAgIHx8IG1fbm9kZS0+aXNCaW5hcnlVc2VLaW5kKE9iamVjdFVzZSkpIHsKICAgICAg
ICAgICAgIGNvbXBpbGVDb21wYXJlU3RyaWN0RXEoKTsKQEAgLTE4MzIsMTQgKzE3MzQsNiBAQCBw
cml2YXRlOgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAg
ICBpZiAobV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQoTWFjaGluZUludFVzZSkpIHsKLSAgICAgICAg
ICAgIEludDUyS2luZCBraW5kOwotICAgICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dXaGljaGV2
ZXJJbnQ1MihtX25vZGUtPmNoaWxkMSgpLCBraW5kKTsKLSAgICAgICAgICAgIExWYWx1ZSByaWdo
dCA9IGxvd0ludDUyKG1fbm9kZS0+Y2hpbGQyKCksIGtpbmQpOwotICAgICAgICAgICAgc2V0Qm9v
bGVhbihtX291dC5lcXVhbChsZWZ0LCByaWdodCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0gICAgICAgIAogICAgICAgICBpZiAobV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQoTnVt
YmVyVXNlKSkgewogICAgICAgICAgICAgc2V0Qm9vbGVhbigKICAgICAgICAgICAgICAgICBtX291
dC5kb3VibGVFcXVhbChsb3dEb3VibGUobV9ub2RlLT5jaGlsZDEoKSksIGxvd0RvdWJsZShtX25v
ZGUtPmNoaWxkMigpKSkpOwpAQCAtMTg4OCwxNCArMTc4Miw2IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGlmIChtX25vZGUtPmlz
QmluYXJ5VXNlS2luZChNYWNoaW5lSW50VXNlKSkgewotICAgICAgICAgICAgSW50NTJLaW5kIGtp
bmQ7Ci0gICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd1doaWNoZXZlckludDUyKG1fbm9kZS0+
Y2hpbGQxKCksIGtpbmQpOwotICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93SW50NTIobV9u
b2RlLT5jaGlsZDIoKSwga2luZCk7Ci0gICAgICAgICAgICBzZXRCb29sZWFuKG1fb3V0Lmxlc3NU
aGFuKGxlZnQsIHJpZ2h0KSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAg
ICAgCiAgICAgICAgIGlmIChtX25vZGUtPmlzQmluYXJ5VXNlS2luZChOdW1iZXJVc2UpKSB7CiAg
ICAgICAgICAgICBzZXRCb29sZWFuKAogICAgICAgICAgICAgICAgIG1fb3V0LmRvdWJsZUxlc3NU
aGFuKGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMSgpKSwgbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQy
KCkpKSk7CkBAIC0xOTEzLDE0ICsxNzk5LDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgaWYgKG1fbm9kZS0+aXNCaW5hcnlVc2VL
aW5kKE1hY2hpbmVJbnRVc2UpKSB7Ci0gICAgICAgICAgICBJbnQ1MktpbmQga2luZDsKLSAgICAg
ICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93V2hpY2hldmVySW50NTIobV9ub2RlLT5jaGlsZDEoKSwg
a2luZCk7Ci0gICAgICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dJbnQ1MihtX25vZGUtPmNoaWxk
MigpLCBraW5kKTsKLSAgICAgICAgICAgIHNldEJvb2xlYW4obV9vdXQubGVzc1RoYW5PckVxdWFs
KGxlZnQsIHJpZ2h0KSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAg
CiAgICAgICAgIGlmIChtX25vZGUtPmlzQmluYXJ5VXNlS2luZChOdW1iZXJVc2UpKSB7CiAgICAg
ICAgICAgICBzZXRCb29sZWFuKAogICAgICAgICAgICAgICAgIG1fb3V0LmRvdWJsZUxlc3NUaGFu
T3JFcXVhbCgKQEAgLTE5MzksMTQgKzE4MTcsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBpZiAobV9ub2RlLT5pc0JpbmFyeVVz
ZUtpbmQoTWFjaGluZUludFVzZSkpIHsKLSAgICAgICAgICAgIEludDUyS2luZCBraW5kOwotICAg
ICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dXaGljaGV2ZXJJbnQ1MihtX25vZGUtPmNoaWxkMSgp
LCBraW5kKTsKLSAgICAgICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0ludDUyKG1fbm9kZS0+Y2hp
bGQyKCksIGtpbmQpOwotICAgICAgICAgICAgc2V0Qm9vbGVhbihtX291dC5ncmVhdGVyVGhhbihs
ZWZ0LCByaWdodCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIAog
ICAgICAgICBpZiAobV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQoTnVtYmVyVXNlKSkgewogICAgICAg
ICAgICAgc2V0Qm9vbGVhbigKICAgICAgICAgICAgICAgICBtX291dC5kb3VibGVHcmVhdGVyVGhh
bigKQEAgLTE5NjYsMTQgKzE4MzYsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBpZiAobV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQo
TWFjaGluZUludFVzZSkpIHsKLSAgICAgICAgICAgIEludDUyS2luZCBraW5kOwotICAgICAgICAg
ICAgTFZhbHVlIGxlZnQgPSBsb3dXaGljaGV2ZXJJbnQ1MihtX25vZGUtPmNoaWxkMSgpLCBraW5k
KTsKLSAgICAgICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0ludDUyKG1fbm9kZS0+Y2hpbGQyKCks
IGtpbmQpOwotICAgICAgICAgICAgc2V0Qm9vbGVhbihtX291dC5ncmVhdGVyVGhhbk9yRXF1YWwo
bGVmdCwgcmlnaHQpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICAK
ICAgICAgICAgaWYgKG1fbm9kZS0+aXNCaW5hcnlVc2VLaW5kKE51bWJlclVzZSkpIHsKICAgICAg
ICAgICAgIHNldEJvb2xlYW4oCiAgICAgICAgICAgICAgICAgbV9vdXQuZG91YmxlR3JlYXRlclRo
YW5PckVxdWFsKApAQCAtMjQ5MCwyNyArMjM1MiwxMCBAQCBwcml2YXRlOgogICAgIHsKICAgICAg
ICAgQVNTRVJUX1VOVVNFRChtb2RlLCBtb2RlID09IE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbiB8
fCAoZWRnZS51c2VLaW5kKCkgPT0gSW50MzJVc2UgfHwgZWRnZS51c2VLaW5kKCkgPT0gS25vd25J
bnQzMlVzZSkpOwogICAgICAgICAKLSAgICAgICAgaWYgKGVkZ2UtPmhhc0NvbnN0YW50KCkpIHsK
LSAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBtX2dyYXBoLnZhbHVlT2ZKU0NvbnN0YW50KGVk
Z2Uubm9kZSgpKTsKLSAgICAgICAgICAgIGlmICghdmFsdWUuaXNJbnQzMigpKSB7Ci0gICAgICAg
ICAgICAgICAgdGVybWluYXRlKFVuY291bnRhYmxlKTsKLSAgICAgICAgICAgICAgICByZXR1cm4g
bV9vdXQuaW50MzJaZXJvOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIG1fb3V0
LmNvbnN0SW50MzIodmFsdWUuYXNJbnQzMigpKTsKLSAgICAgICAgfQotICAgICAgICAKICAgICAg
ICAgTG93ZXJlZE5vZGVWYWx1ZSB2YWx1ZSA9IG1faW50MzJWYWx1ZXMuZ2V0KGVkZ2Uubm9kZSgp
KTsKICAgICAgICAgaWYgKGlzVmFsaWQodmFsdWUpKQogICAgICAgICAgICAgcmV0dXJuIHZhbHVl
LnZhbHVlKCk7CiAgICAgICAgIAotICAgICAgICB2YWx1ZSA9IG1fc3RyaWN0SW50NTJWYWx1ZXMu
Z2V0KGVkZ2Uubm9kZSgpKTsKLSAgICAgICAgaWYgKGlzVmFsaWQodmFsdWUpKQotICAgICAgICAg
ICAgcmV0dXJuIHN0cmljdEludDUyVG9JbnQzMihlZGdlLCB2YWx1ZS52YWx1ZSgpKTsKLSAgICAg
ICAgCi0gICAgICAgIHZhbHVlID0gbV9pbnQ1MlZhbHVlcy5nZXQoZWRnZS5ub2RlKCkpOwotICAg
ICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkpCi0gICAgICAgICAgICByZXR1cm4gc3RyaWN0SW50NTJU
b0ludDMyKGVkZ2UsIGludDUyVG9TdHJpY3RJbnQ1Mih2YWx1ZS52YWx1ZSgpKSk7Ci0gICAgICAg
IAogICAgICAgICB2YWx1ZSA9IG1fanNWYWx1ZVZhbHVlcy5nZXQoZWRnZS5ub2RlKCkpOwogICAg
ICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkpIHsKICAgICAgICAgICAgIExWYWx1ZSBib3hlZFJlc3Vs
dCA9IHZhbHVlLnZhbHVlKCk7CkBAIC0yNTI2LDEyMiArMjM3MSwxMCBAQCBwcml2YXRlOgogICAg
ICAgICByZXR1cm4gbV9vdXQuaW50MzJaZXJvOwogICAgIH0KICAgICAKLSAgICBlbnVtIEludDUy
S2luZCB7IFN0cmljdEludDUyLCBJbnQ1MiB9OwotICAgIExWYWx1ZSBsb3dJbnQ1MihFZGdlIGVk
Z2UsIEludDUyS2luZCBraW5kLCBPcGVyYW5kU3BlY3VsYXRpb25Nb2RlIG1vZGUgPSBBdXRvbWF0
aWNPcGVyYW5kU3BlY3VsYXRpb24pCi0gICAgewotICAgICAgICBBU1NFUlRfVU5VU0VEKG1vZGUs
IG1vZGUgPT0gTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uIHx8IGVkZ2UudXNlS2luZCgpID09IE1h
Y2hpbmVJbnRVc2UpOwotICAgICAgICAKLSAgICAgICAgaWYgKGVkZ2UtPmhhc0NvbnN0YW50KCkp
IHsKLSAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBtX2dyYXBoLnZhbHVlT2ZKU0NvbnN0YW50
KGVkZ2Uubm9kZSgpKTsKLSAgICAgICAgICAgIGlmICghdmFsdWUuaXNNYWNoaW5lSW50KCkpIHsK
LSAgICAgICAgICAgICAgICB0ZXJtaW5hdGUoVW5jb3VudGFibGUpOwotICAgICAgICAgICAgICAg
IHJldHVybiBtX291dC5pbnQ2NFplcm87Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpbnQ2
NF90IHJlc3VsdCA9IHZhbHVlLmFzTWFjaGluZUludCgpOwotICAgICAgICAgICAgaWYgKGtpbmQg
PT0gSW50NTIpCi0gICAgICAgICAgICAgICAgcmVzdWx0IDw8PSBKU1ZhbHVlOjppbnQ1MlNoaWZ0
QW1vdW50OwotICAgICAgICAgICAgcmV0dXJuIG1fb3V0LmNvbnN0SW50NjQocmVzdWx0KTsKLSAg
ICAgICAgfQotICAgICAgICAKLSAgICAgICAgTG93ZXJlZE5vZGVWYWx1ZSB2YWx1ZTsKLSAgICAg
ICAgCi0gICAgICAgIHN3aXRjaCAoa2luZCkgewotICAgICAgICBjYXNlIEludDUyOgotICAgICAg
ICAgICAgdmFsdWUgPSBtX2ludDUyVmFsdWVzLmdldChlZGdlLm5vZGUoKSk7Ci0gICAgICAgICAg
ICBpZiAoaXNWYWxpZCh2YWx1ZSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnZhbHVl
KCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHZhbHVlID0gbV9zdHJpY3RJbnQ1MlZhbHVl
cy5nZXQoZWRnZS5ub2RlKCkpOwotICAgICAgICAgICAgaWYgKGlzVmFsaWQodmFsdWUpKQotICAg
ICAgICAgICAgICAgIHJldHVybiBzdHJpY3RJbnQ1MlRvSW50NTIodmFsdWUudmFsdWUoKSk7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIFN0cmljdEludDUy
OgotICAgICAgICAgICAgdmFsdWUgPSBtX3N0cmljdEludDUyVmFsdWVzLmdldChlZGdlLm5vZGUo
KSk7Ci0gICAgICAgICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIHZhbHVlLnZhbHVlKCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHZhbHVlID0gbV9p
bnQ1MlZhbHVlcy5nZXQoZWRnZS5ub2RlKCkpOwotICAgICAgICAgICAgaWYgKGlzVmFsaWQodmFs
dWUpKQotICAgICAgICAgICAgICAgIHJldHVybiBpbnQ1MlRvU3RyaWN0SW50NTIodmFsdWUudmFs
dWUoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAg
dmFsdWUgPSBtX2ludDMyVmFsdWVzLmdldChlZGdlLm5vZGUoKSk7Ci0gICAgICAgIGlmIChpc1Zh
bGlkKHZhbHVlKSkgewotICAgICAgICAgICAgcmV0dXJuIHNldEludDUyV2l0aFN0cmljdFZhbHVl
KAotICAgICAgICAgICAgICAgIGVkZ2Uubm9kZSgpLCBtX291dC5zaWduRXh0KHZhbHVlLnZhbHVl
KCksIG1fb3V0LmludDY0KSwga2luZCk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIFJF
TEVBU0VfQVNTRVJUKCEobV9zdGF0ZS5mb3JOb2RlKGVkZ2UpLm1fdHlwZSAmIFNwZWNJbnQ1Mikp
OwotICAgICAgICAKLSAgICAgICAgdmFsdWUgPSBtX2pzVmFsdWVWYWx1ZXMuZ2V0KGVkZ2Uubm9k
ZSgpKTsKLSAgICAgICAgaWYgKGlzVmFsaWQodmFsdWUpKSB7Ci0gICAgICAgICAgICBMVmFsdWUg
Ym94ZWRSZXN1bHQgPSB2YWx1ZS52YWx1ZSgpOwotICAgICAgICAgICAgRlRMX1RZUEVfQ0hFQ0so
Ci0gICAgICAgICAgICAgICAganNWYWx1ZVZhbHVlKGJveGVkUmVzdWx0KSwgZWRnZSwgU3BlY01h
Y2hpbmVJbnQsIGlzTm90SW50MzIoYm94ZWRSZXN1bHQpKTsKLSAgICAgICAgICAgIHJldHVybiBz
ZXRJbnQ1MldpdGhTdHJpY3RWYWx1ZSgKLSAgICAgICAgICAgICAgICBlZGdlLm5vZGUoKSwgbV9v
dXQuc2lnbkV4dCh1bmJveEludDMyKGJveGVkUmVzdWx0KSwgbV9vdXQuaW50NjQpLCBraW5kKTsK
LSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoIShtX3N0YXRlLmZv
ck5vZGUoZWRnZSkubV90eXBlICYgU3BlY01hY2hpbmVJbnQpKTsKLSAgICAgICAgdGVybWluYXRl
KFVuY291bnRhYmxlKTsKLSAgICAgICAgcmV0dXJuIG1fb3V0LmludDY0WmVybzsKLSAgICB9Ci0g
ICAgCi0gICAgTFZhbHVlIGxvd0ludDUyKEVkZ2UgZWRnZSwgT3BlcmFuZFNwZWN1bGF0aW9uTW9k
ZSBtb2RlID0gQXV0b21hdGljT3BlcmFuZFNwZWN1bGF0aW9uKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIGxvd0ludDUyKGVkZ2UsIEludDUyLCBtb2RlKTsKLSAgICB9Ci0gICAgCi0gICAgTFZhbHVl
IGxvd1N0cmljdEludDUyKEVkZ2UgZWRnZSwgT3BlcmFuZFNwZWN1bGF0aW9uTW9kZSBtb2RlID0g
QXV0b21hdGljT3BlcmFuZFNwZWN1bGF0aW9uKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGxvd0lu
dDUyKGVkZ2UsIFN0cmljdEludDUyLCBtb2RlKTsKLSAgICB9Ci0gICAgCi0gICAgYm9vbCBiZXR0
ZXJVc2VTdHJpY3RJbnQ1MihOb2RlKiBub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuICFpc1Zh
bGlkKG1faW50NTJWYWx1ZXMuZ2V0KG5vZGUpKTsKLSAgICB9Ci0gICAgYm9vbCBiZXR0ZXJVc2VT
dHJpY3RJbnQ1MihFZGdlIGVkZ2UpCi0gICAgewotICAgICAgICByZXR1cm4gYmV0dGVyVXNlU3Ry
aWN0SW50NTIoZWRnZS5ub2RlKCkpOwotICAgIH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgot
ICAgIEludDUyS2luZCBiZXN0SW50NTJLaW5kKFQgbm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBiZXR0ZXJVc2VTdHJpY3RJbnQ1Mihub2RlKSA/IFN0cmljdEludDUyIDogSW50NTI7Ci0gICAg
fQotICAgIEludDUyS2luZCBvcHBvc2l0ZShJbnQ1MktpbmQga2luZCkKLSAgICB7Ci0gICAgICAg
IHN3aXRjaCAoa2luZCkgewotICAgICAgICBjYXNlIEludDUyOgotICAgICAgICAgICAgcmV0dXJu
IFN0cmljdEludDUyOwotICAgICAgICBjYXNlIFN0cmljdEludDUyOgotICAgICAgICAgICAgcmV0
dXJuIEludDUyOwotICAgICAgICB9Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgfQotICAgIAotICAgIExWYWx1ZSBsb3dXaGljaGV2ZXJJbnQ1MihFZGdlIGVkZ2Us
IEludDUyS2luZCYga2luZCwgT3BlcmFuZFNwZWN1bGF0aW9uTW9kZSBtb2RlID0gQXV0b21hdGlj
T3BlcmFuZFNwZWN1bGF0aW9uKQotICAgIHsKLSAgICAgICAga2luZCA9IGJlc3RJbnQ1MktpbmQo
ZWRnZSk7Ci0gICAgICAgIHJldHVybiBsb3dJbnQ1MihlZGdlLCBraW5kLCBtb2RlKTsKLSAgICB9
Ci0gICAgCiAgICAgTFZhbHVlIGxvd0NlbGwoRWRnZSBlZGdlLCBPcGVyYW5kU3BlY3VsYXRpb25N
b2RlIG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRpb24pCiAgICAgewogICAgICAgICBB
U1NFUlRfVU5VU0VEKG1vZGUsIG1vZGUgPT0gTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uIHx8IGlz
Q2VsbChlZGdlLnVzZUtpbmQoKSkpOwogICAgICAgICAKLSAgICAgICAgaWYgKGVkZ2UtPm9wKCkg
PT0gSlNDb25zdGFudCkgewotICAgICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IG1fZ3JhcGgudmFs
dWVPZkpTQ29uc3RhbnQoZWRnZS5ub2RlKCkpOwotICAgICAgICAgICAgaWYgKCF2YWx1ZS5pc0Nl
bGwoKSkgewotICAgICAgICAgICAgICAgIHRlcm1pbmF0ZShVbmNvdW50YWJsZSk7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIG1fb3V0LmludFB0clplcm87Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICByZXR1cm4gbV9vdXQuY29uc3RJbnRQdHIodmFsdWUuYXNDZWxsKCkpOwotICAgICAgICB9
Ci0gICAgICAgIAogICAgICAgICBMb3dlcmVkTm9kZVZhbHVlIHZhbHVlID0gbV9qc1ZhbHVlVmFs
dWVzLmdldChlZGdlLm5vZGUoKSk7CiAgICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkgewogICAg
ICAgICAgICAgTFZhbHVlIHVuY2hlY2tlZFZhbHVlID0gdmFsdWUudmFsdWUoKTsKQEAgLTI2ODYs
MTUgKzI0MTksNiBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChtb2Rl
LCBtb2RlID09IE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbiB8fCBlZGdlLnVzZUtpbmQoKSA9PSBC
b29sZWFuVXNlKTsKICAgICAgICAgCi0gICAgICAgIGlmIChlZGdlLT5oYXNDb25zdGFudCgpKSB7
Ci0gICAgICAgICAgICBKU1ZhbHVlIHZhbHVlID0gbV9ncmFwaC52YWx1ZU9mSlNDb25zdGFudChl
ZGdlLm5vZGUoKSk7Ci0gICAgICAgICAgICBpZiAoIXZhbHVlLmlzQm9vbGVhbigpKSB7Ci0gICAg
ICAgICAgICAgICAgdGVybWluYXRlKFVuY291bnRhYmxlKTsKLSAgICAgICAgICAgICAgICByZXR1
cm4gbV9vdXQuYm9vbGVhbkZhbHNlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJu
IG1fb3V0LmNvbnN0Qm9vbCh2YWx1ZS5hc0Jvb2xlYW4oKSk7Ci0gICAgICAgIH0KLSAgICAgICAg
CiAgICAgICAgIExvd2VyZWROb2RlVmFsdWUgdmFsdWUgPSBtX2Jvb2xlYW5WYWx1ZXMuZ2V0KGVk
Z2Uubm9kZSgpKTsKICAgICAgICAgaWYgKGlzVmFsaWQodmFsdWUpKQogICAgICAgICAgICAgcmV0
dXJuIHZhbHVlLnZhbHVlKCk7CkBAIC0yNzE4LDE1ICsyNDQyLDYgQEAgcHJpdmF0ZToKICAgICB7
CiAgICAgICAgIEFTU0VSVF9VTlVTRUQobW9kZSwgbW9kZSA9PSBNYW51YWxPcGVyYW5kU3BlY3Vs
YXRpb24gfHwgaXNEb3VibGUoZWRnZS51c2VLaW5kKCkpKTsKICAgICAgICAgCi0gICAgICAgIGlm
IChlZGdlLT5oYXNDb25zdGFudCgpKSB7Ci0gICAgICAgICAgICBKU1ZhbHVlIHZhbHVlID0gbV9n
cmFwaC52YWx1ZU9mSlNDb25zdGFudChlZGdlLm5vZGUoKSk7Ci0gICAgICAgICAgICBpZiAoIXZh
bHVlLmlzTnVtYmVyKCkpIHsKLSAgICAgICAgICAgICAgICB0ZXJtaW5hdGUoVW5jb3VudGFibGUp
OwotICAgICAgICAgICAgICAgIHJldHVybiBtX291dC5kb3VibGVaZXJvOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgcmV0dXJuIG1fb3V0LmNvbnN0RG91YmxlKHZhbHVlLmFzTnVtYmVyKCkp
OwotICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICBMb3dlcmVkTm9kZVZhbHVlIHZhbHVlID0g
bV9kb3VibGVWYWx1ZXMuZ2V0KGVkZ2Uubm9kZSgpKTsKICAgICAgICAgaWYgKGlzVmFsaWQodmFs
dWUpKQogICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnZhbHVlKCk7CkBAIC0yNzM4LDE0ICsyNDUz
LDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KICAg
ICAgICAgCi0gICAgICAgIHZhbHVlID0gbV9zdHJpY3RJbnQ1MlZhbHVlcy5nZXQoZWRnZS5ub2Rl
KCkpOwotICAgICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkpCi0gICAgICAgICAgICByZXR1cm4gc3Ry
aWN0SW50NTJUb0RvdWJsZShlZGdlLCB2YWx1ZS52YWx1ZSgpKTsKLSAgICAgICAgCi0gICAgICAg
IHZhbHVlID0gbV9pbnQ1MlZhbHVlcy5nZXQoZWRnZS5ub2RlKCkpOwotICAgICAgICBpZiAoaXNW
YWxpZCh2YWx1ZSkpCi0gICAgICAgICAgICByZXR1cm4gc3RyaWN0SW50NTJUb0RvdWJsZShlZGdl
LCBpbnQ1MlRvU3RyaWN0SW50NTIodmFsdWUudmFsdWUoKSkpOwotICAgICAgICAKICAgICAgICAg
dmFsdWUgPSBtX2pzVmFsdWVWYWx1ZXMuZ2V0KGVkZ2Uubm9kZSgpKTsKICAgICAgICAgaWYgKGlz
VmFsaWQodmFsdWUpKSB7CiAgICAgICAgICAgICBMVmFsdWUgYm94ZWRSZXN1bHQgPSB2YWx1ZS52
YWx1ZSgpOwpAQCAtMjc2NSw3ICsyNDcyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKGRvdWJsZUNhc2UsIGNvbnRpbnVhdGlvbik7CiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIEZUTF9UWVBFX0NIRUNLKAotICAgICAgICAgICAgICAgIGpzVmFsdWVWYWx1ZShib3hl
ZFJlc3VsdCksIGVkZ2UsIFNwZWNGdWxsTnVtYmVyLCBpc0NlbGxPck1pc2MoYm94ZWRSZXN1bHQp
KTsKKyAgICAgICAgICAgICAgICBqc1ZhbHVlVmFsdWUoYm94ZWRSZXN1bHQpLCBlZGdlLCBTcGVj
TnVtYmVyLCBpc0NlbGxPck1pc2MoYm94ZWRSZXN1bHQpKTsKICAgICAgICAgICAgIAogICAgICAg
ICAgICAgVmFsdWVGcm9tQmxvY2sgdW5ib3hlZERvdWJsZSA9IG1fb3V0LmFuY2hvcih1bmJveERv
dWJsZShib3hlZFJlc3VsdCkpOwogICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24p
OwpAQCAtMjc3OCw3ICsyNDg1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIFJFTEVBU0VfQVNTRVJUKCEobV9zdGF0
ZS5mb3JOb2RlKGVkZ2UpLm1fdHlwZSAmIFNwZWNGdWxsTnVtYmVyKSk7CisgICAgICAgIFJFTEVB
U0VfQVNTRVJUKCEobV9zdGF0ZS5mb3JOb2RlKGVkZ2UpLm1fdHlwZSAmIFNwZWNOdW1iZXIpKTsK
ICAgICAgICAgdGVybWluYXRlKFVuY291bnRhYmxlKTsKICAgICAgICAgcmV0dXJuIG1fb3V0LmRv
dWJsZVplcm87CiAgICAgfQpAQCAtMjc4Nyw5ICsyNDk0LDYgQEAgcHJpdmF0ZToKICAgICB7CiAg
ICAgICAgIEFTU0VSVF9VTlVTRUQobW9kZSwgbW9kZSA9PSBNYW51YWxPcGVyYW5kU3BlY3VsYXRp
b24gfHwgZWRnZS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSk7CiAgICAgICAgIAotICAgICAgICBp
ZiAoZWRnZS0+aGFzQ29uc3RhbnQoKSkKLSAgICAgICAgICAgIHJldHVybiBtX291dC5jb25zdElu
dDY0KEpTVmFsdWU6OmVuY29kZShtX2dyYXBoLnZhbHVlT2ZKU0NvbnN0YW50KGVkZ2Uubm9kZSgp
KSkpOwotICAgICAgICAKICAgICAgICAgTG93ZXJlZE5vZGVWYWx1ZSB2YWx1ZSA9IG1fanNWYWx1
ZVZhbHVlcy5nZXQoZWRnZS5ub2RlKCkpOwogICAgICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkpCiAg
ICAgICAgICAgICByZXR1cm4gdmFsdWUudmFsdWUoKTsKQEAgLTI4MDEsMTQgKzI1MDUsNiBAQCBw
cml2YXRlOgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgICAgICAK
LSAgICAgICAgdmFsdWUgPSBtX3N0cmljdEludDUyVmFsdWVzLmdldChlZGdlLm5vZGUoKSk7Ci0g
ICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkKLSAgICAgICAgICAgIHJldHVybiBzdHJpY3RJbnQ1
MlRvSlNWYWx1ZSh2YWx1ZS52YWx1ZSgpKTsKLSAgICAgICAgCi0gICAgICAgIHZhbHVlID0gbV9p
bnQ1MlZhbHVlcy5nZXQoZWRnZS5ub2RlKCkpOwotICAgICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkp
Ci0gICAgICAgICAgICByZXR1cm4gc3RyaWN0SW50NTJUb0pTVmFsdWUoaW50NTJUb1N0cmljdElu
dDUyKHZhbHVlLnZhbHVlKCkpKTsKLSAgICAgICAgCiAgICAgICAgIHZhbHVlID0gbV9ib29sZWFu
VmFsdWVzLmdldChlZGdlLm5vZGUoKSk7CiAgICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkgewog
ICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IGJveEJvb2xlYW4odmFsdWUudmFsdWUoKSk7CkBA
IC0yODM4LDc3ICsyNTM0LDYgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAg
ICB9CiAgICAgCi0gICAgTFZhbHVlIHN0cmljdEludDUyVG9JbnQzMihFZGdlIGVkZ2UsIExWYWx1
ZSB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIExWYWx1ZSByZXN1bHQgPSBtX291dC5jYXN0VG9JbnQz
Mih2YWx1ZSk7Ci0gICAgICAgIEZUTF9UWVBFX0NIRUNLKAotICAgICAgICAgICAgbm9WYWx1ZSgp
LCBlZGdlLCBTcGVjSW50MzIsCi0gICAgICAgICAgICBtX291dC5ub3RFcXVhbChtX291dC5zaWdu
RXh0KHJlc3VsdCwgbV9vdXQuaW50NjQpLCB2YWx1ZSkpOwotICAgICAgICBzZXRJbnQzMihlZGdl
Lm5vZGUoKSwgcmVzdWx0KTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0g
ICAgTFZhbHVlIHN0cmljdEludDUyVG9Eb3VibGUoRWRnZSBlZGdlLCBMVmFsdWUgdmFsdWUpCi0g
ICAgewotICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQuaW50VG9Eb3VibGUodmFsdWUpOwot
ICAgICAgICBzZXREb3VibGUoZWRnZS5ub2RlKCksIHJlc3VsdCk7Ci0gICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIExWYWx1ZSBzdHJpY3RJbnQ1MlRvSlNWYWx1ZShMVmFs
dWUgdmFsdWUpCi0gICAgewotICAgICAgICBMQmFzaWNCbG9jayBpc0ludDMyID0gRlRMX05FV19C
TE9DSyhtX291dCwgKCJzdHJpY3RJbnQ1MlRvSlNWYWx1ZSBpc0ludDMyIGNhc2UiKSk7Ci0gICAg
ICAgIExCYXNpY0Jsb2NrIGlzRG91YmxlID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJzdHJpY3RJ
bnQ1MlRvSlNWYWx1ZSBpc0RvdWJsZSBjYXNlIikpOwotICAgICAgICBMQmFzaWNCbG9jayBjb250
aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoInN0cmljdEludDUyVG9KU1ZhbHVlIGNv
bnRpbnVhdGlvbiIpKTsKLSAgICAgICAgCi0gICAgICAgIFZlY3RvcjxWYWx1ZUZyb21CbG9jaywg
Mj4gcmVzdWx0czsKLSAgICAgICAgICAgIAotICAgICAgICBMVmFsdWUgaW50MzJWYWx1ZSA9IG1f
b3V0LmNhc3RUb0ludDMyKHZhbHVlKTsKLSAgICAgICAgbV9vdXQuYnJhbmNoKAotICAgICAgICAg
ICAgbV9vdXQuZXF1YWwobV9vdXQuc2lnbkV4dChpbnQzMlZhbHVlLCBtX291dC5pbnQ2NCksIHZh
bHVlKSwKLSAgICAgICAgICAgIGlzSW50MzIsIGlzRG91YmxlKTsKLSAgICAgICAgCi0gICAgICAg
IExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oaXNJbnQzMiwgaXNEb3VibGUp
OwotICAgICAgICAKLSAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKGJveEludDMy
KGludDMyVmFsdWUpKSk7Ci0gICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKLSAgICAg
ICAgCi0gICAgICAgIG1fb3V0LmFwcGVuZFRvKGlzRG91YmxlLCBjb250aW51YXRpb24pOwotICAg
ICAgICAKLSAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKGJveERvdWJsZShtX291
dC5pbnRUb0RvdWJsZSh2YWx1ZSkpKSk7Ci0gICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9u
KTsKLSAgICAgICAgCi0gICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5l
eHQpOwotICAgICAgICByZXR1cm4gbV9vdXQucGhpKG1fb3V0LmludDY0LCByZXN1bHRzKTsKLSAg
ICB9Ci0gICAgCi0gICAgTFZhbHVlIHNldEludDUyV2l0aFN0cmljdFZhbHVlKE5vZGUqIG5vZGUs
IExWYWx1ZSB2YWx1ZSwgSW50NTJLaW5kIGtpbmQpCi0gICAgewotICAgICAgICBzd2l0Y2ggKGtp
bmQpIHsKLSAgICAgICAgY2FzZSBTdHJpY3RJbnQ1MjoKLSAgICAgICAgICAgIHNldFN0cmljdElu
dDUyKG5vZGUsIHZhbHVlKTsKLSAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKLSAgICAgICAgICAg
IAotICAgICAgICBjYXNlIEludDUyOgotICAgICAgICAgICAgdmFsdWUgPSBzdHJpY3RJbnQ1MlRv
SW50NTIodmFsdWUpOwotICAgICAgICAgICAgc2V0SW50NTIobm9kZSwgdmFsdWUpOwotICAgICAg
ICAgICAgcmV0dXJuIHZhbHVlOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBM
VmFsdWUgc3RyaWN0SW50NTJUb0ludDUyKExWYWx1ZSB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBtX291dC5zaGwodmFsdWUsIG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6aW50NTJTaGlm
dEFtb3VudCkpOwotICAgIH0KLSAgICAKLSAgICBMVmFsdWUgaW50NTJUb1N0cmljdEludDUyKExW
YWx1ZSB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX291dC5hU2hyKHZhbHVlLCBtX291
dC5jb25zdEludDY0KEpTVmFsdWU6OmludDUyU2hpZnRBbW91bnQpKTsKLSAgICB9Ci0gICAgCiAg
ICAgTFZhbHVlIGlzTm90SW50MzIoTFZhbHVlIGpzVmFsdWUpCiAgICAgewogICAgICAgICByZXR1
cm4gbV9vdXQuYmVsb3coanNWYWx1ZSwgbV90YWdUeXBlTnVtYmVyKTsKQEAgLTMxNjksNyArMjc5
NCw3IEBAIHByaXZhdGU6CiAgICAgICAgIAogICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dEb3Vi
bGUoZWRnZSk7CiAgICAgICAgIEZUTF9UWVBFX0NIRUNLKAotICAgICAgICAgICAgZG91YmxlVmFs
dWUodmFsdWUpLCBlZGdlLCBTcGVjRnVsbFJlYWxOdW1iZXIsCisgICAgICAgICAgICBkb3VibGVW
YWx1ZSh2YWx1ZSksIGVkZ2UsIFNwZWNSZWFsTnVtYmVyLAogICAgICAgICAgICAgbV9vdXQuZG91
YmxlTm90RXF1YWxPclVub3JkZXJlZCh2YWx1ZSwgdmFsdWUpKTsKICAgICB9CiAgICAgCkBAIC0z
MTc3LDcgKzI4MDIsNyBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgbG93Qm9vbGVhbihlZGdl
KTsKICAgICB9Ci0gICAgCisKICAgICBib29sIG1hc3F1ZXJhZGVzQXNVbmRlZmluZWRXYXRjaHBv
aW50SXNTdGlsbFZhbGlkKCkKICAgICB7CiAgICAgICAgIHJldHVybiBtX2dyYXBoLm1hc3F1ZXJh
ZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50SXNTdGlsbFZhbGlkKG1fbm9kZS0+Y29kZU9yaWdpbik7
CkBAIC0zMzA4LDEwICsyOTMzLDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBtX3ZhbHVl
U291cmNlc1tpXSA9IFZhbHVlU291cmNlKEludDMySW5KU1N0YWNrKTsKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgRmx1c2hlZEludDUy
OgotICAgICAgICAgICAgICAgIG1fdmFsdWVTb3VyY2VzW2ldID0gVmFsdWVTb3VyY2UoSW50NTJJ
bkpTU3RhY2spOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgY2FzZSBGbHVzaGVkRG91YmxlOgogICAgICAgICAgICAgICAgIG1fdmFsdWVTb3Vy
Y2VzW2ldID0gVmFsdWVTb3VyY2UoRG91YmxlSW5KU1N0YWNrKTsKICAgICAgICAgICAgICAgICBi
cmVhazsKQEAgLTM0MTUsOSArMzAzNiw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBjYXNlIElu
dDMySW5KU1N0YWNrOgogICAgICAgICAgICAgICAgIGV4aXQubV92YWx1ZXNbaV0gPSBFeGl0VmFs
dWU6OmluSlNTdGFja0FzSW50MzIoKTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgIGNhc2UgSW50NTJJbkpTU3RhY2s6Ci0gICAgICAgICAgICAgICAgZXhpdC5tX3ZhbHVlc1tp
XSA9IEV4aXRWYWx1ZTo6aW5KU1N0YWNrQXNJbnQ1MigpOwotICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgY2FzZSBEb3VibGVJbkpTU3RhY2s6CiAgICAgICAgICAgICAgICAgZXhp
dC5tX3ZhbHVlc1tpXSA9IEV4aXRWYWx1ZTo6aW5KU1N0YWNrQXNEb3VibGUoKTsKICAgICAgICAg
ICAgICAgICBicmVhazsKQEAgLTM1MjEsMTggKzMxMzksNiBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICB2YWx1ZSA9IG1faW50NTJW
YWx1ZXMuZ2V0KG5vZGUpOwotICAgICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkpIHsKLSAgICAgICAg
ICAgIGFkZEV4aXRBcmd1bWVudChleGl0LCBhcmd1bWVudHMsIGluZGV4LCBWYWx1ZUZvcm1hdElu
dDUyLCB2YWx1ZS52YWx1ZSgpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAg
ICAgICAKLSAgICAgICAgdmFsdWUgPSBtX3N0cmljdEludDUyVmFsdWVzLmdldChub2RlKTsKLSAg
ICAgICAgaWYgKGlzVmFsaWQodmFsdWUpKSB7Ci0gICAgICAgICAgICBhZGRFeGl0QXJndW1lbnQo
ZXhpdCwgYXJndW1lbnRzLCBpbmRleCwgVmFsdWVGb3JtYXRTdHJpY3RJbnQ1MiwgdmFsdWUudmFs
dWUoKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgCiAgICAgICAg
IHZhbHVlID0gbV9ib29sZWFuVmFsdWVzLmdldChub2RlKTsKICAgICAgICAgaWYgKGlzVmFsaWQo
dmFsdWUpKSB7CiAgICAgICAgICAgICBhZGRFeGl0QXJndW1lbnQoZXhpdCwgYXJndW1lbnRzLCBp
bmRleCwgVmFsdWVGb3JtYXRCb29sZWFuLCB2YWx1ZS52YWx1ZSgpKTsKQEAgLTM2MzYsMjggKzMy
NDIsNiBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgbV9pbnQzMlZhbHVlcy5zZXQobm9kZSwg
TG93ZXJlZE5vZGVWYWx1ZSh2YWx1ZSwgbV9oaWdoQmxvY2spKTsKICAgICB9Ci0gICAgdm9pZCBz
ZXRJbnQ1MihOb2RlKiBub2RlLCBMVmFsdWUgdmFsdWUpCi0gICAgewotICAgICAgICBtX2ludDUy
VmFsdWVzLnNldChub2RlLCBMb3dlcmVkTm9kZVZhbHVlKHZhbHVlLCBtX2hpZ2hCbG9jaykpOwot
ICAgIH0KLSAgICB2b2lkIHNldFN0cmljdEludDUyKE5vZGUqIG5vZGUsIExWYWx1ZSB2YWx1ZSkK
LSAgICB7Ci0gICAgICAgIG1fc3RyaWN0SW50NTJWYWx1ZXMuc2V0KG5vZGUsIExvd2VyZWROb2Rl
VmFsdWUodmFsdWUsIG1faGlnaEJsb2NrKSk7Ci0gICAgfQotICAgIHZvaWQgc2V0SW50NTIoTm9k
ZSogbm9kZSwgTFZhbHVlIHZhbHVlLCBJbnQ1MktpbmQga2luZCkKLSAgICB7Ci0gICAgICAgIHN3
aXRjaCAoa2luZCkgewotICAgICAgICBjYXNlIEludDUyOgotICAgICAgICAgICAgc2V0SW50NTIo
bm9kZSwgdmFsdWUpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgCi0gICAgICAg
IGNhc2UgU3RyaWN0SW50NTI6Ci0gICAgICAgICAgICBzZXRTdHJpY3RJbnQ1Mihub2RlLCB2YWx1
ZSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgfQogICAgIHZvaWQgc2V0SlNWYWx1ZShO
b2RlKiBub2RlLCBMVmFsdWUgdmFsdWUpCiAgICAgewogICAgICAgICBtX2pzVmFsdWVWYWx1ZXMu
c2V0KG5vZGUsIExvd2VyZWROb2RlVmFsdWUodmFsdWUsIG1faGlnaEJsb2NrKSk7CkBAIC0zNjc5
LDE4ICszMjYzLDYgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAgIHNldEludDMyKG1fbm9kZSwg
dmFsdWUpOwogICAgIH0KLSAgICB2b2lkIHNldEludDUyKExWYWx1ZSB2YWx1ZSkKLSAgICB7Ci0g
ICAgICAgIHNldEludDUyKG1fbm9kZSwgdmFsdWUpOwotICAgIH0KLSAgICB2b2lkIHNldFN0cmlj
dEludDUyKExWYWx1ZSB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHNldFN0cmljdEludDUyKG1fbm9k
ZSwgdmFsdWUpOwotICAgIH0KLSAgICB2b2lkIHNldEludDUyKExWYWx1ZSB2YWx1ZSwgSW50NTJL
aW5kIGtpbmQpCi0gICAgewotICAgICAgICBzZXRJbnQ1MihtX25vZGUsIHZhbHVlLCBraW5kKTsK
LSAgICB9CiAgICAgdm9pZCBzZXRKU1ZhbHVlKExWYWx1ZSB2YWx1ZSkKICAgICB7CiAgICAgICAg
IHNldEpTVmFsdWUobV9ub2RlLCB2YWx1ZSk7CkBAIC0zNzcwLDggKzMzNDIsNiBAQCBwcml2YXRl
OgogICAgIExWYWx1ZSBtX3RhZ01hc2s7CiAgICAgCiAgICAgSGFzaE1hcDxOb2RlKiwgTG93ZXJl
ZE5vZGVWYWx1ZT4gbV9pbnQzMlZhbHVlczsKLSAgICBIYXNoTWFwPE5vZGUqLCBMb3dlcmVkTm9k
ZVZhbHVlPiBtX3N0cmljdEludDUyVmFsdWVzOwotICAgIEhhc2hNYXA8Tm9kZSosIExvd2VyZWRO
b2RlVmFsdWU+IG1faW50NTJWYWx1ZXM7CiAgICAgSGFzaE1hcDxOb2RlKiwgTG93ZXJlZE5vZGVW
YWx1ZT4gbV9qc1ZhbHVlVmFsdWVzOwogICAgIEhhc2hNYXA8Tm9kZSosIExvd2VyZWROb2RlVmFs
dWU+IG1fYm9vbGVhblZhbHVlczsKICAgICBIYXNoTWFwPE5vZGUqLCBMb3dlcmVkTm9kZVZhbHVl
PiBtX3N0b3JhZ2VWYWx1ZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTE9TUkV4aXRDb21waWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9T
UkV4aXRDb21waWxlci5jcHAKaW5kZXggY2YwNjA1YTZhYmNkZjQxN2EzNzMyMmUwMmQ1MzFmYzI1
NDc2YjRlNy4uOGZkMTViYjc2Mzc0MTlkZGNkMDZlOTM5NWI0NGJhY2NiODYzZTY3YiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcApAQCAt
MTA0LDggKzEwNCw2IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVTdHViKAogICAgICAgICBqaXQuc3Rv
cmU2NChHUFJJbmZvOjpub25BcmdHUFIwLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3IoYXJn
dW1lbnQub3BlcmFuZCgpKSk7CiAgICAgfQogICAgIAotICAgIC8vIEFsbCB0ZW1wIHJlZ2lzdGVy
cyBhcmUgZnJlZSBhdCB0aGlzIHBvaW50LgotICAgIAogICAgIC8vIEJveCBhbnl0aGluZyB0aGF0
IGlzIGFscmVhZHkgb24gdGhlIHN0YWNrLCBvciB0aGF0IGlzIGEgY29uc3RhbnQuCiAgICAgCiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gZXhpdC5tX3ZhbHVlcy5zaXplKCk7IGktLTspIHsKQEAgLTEz
MCwxMyArMTI4LDYgQEAgc3RhdGljIHZvaWQgY29tcGlsZVN0dWIoCiAgICAgICAgICAgICBqaXQu
b3I2NChHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIEdQUkluZm86OnJlZ1QwKTsKICAg
ICAgICAgICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBhZGRyZXNzKTsKICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIEV4aXRWYWx1ZUluSlNTdGFja0FzSW50NTI6Ci0gICAg
ICAgICAgICBqaXQubG9hZDY0KGFkZHJlc3MsIEdQUkluZm86OnJlZ1QwKTsKLSAgICAgICAgICAg
IGppdC5yc2hpZnQ2NCgKLSAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJ
bW0zMihKU1ZhbHVlOjppbnQ1MlNoaWZ0QW1vdW50KSwgR1BSSW5mbzo6cmVnVDApOwotICAgICAg
ICAgICAgaml0LmJveEludDUyKEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMCwgR1BSSW5m
bzo6cmVnVDEsIEZQUkluZm86OmZwUmVnVDApOwotICAgICAgICAgICAgaml0LnN0b3JlNjQoR1BS
SW5mbzo6cmVnVDAsIGFkZHJlc3MpOwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
RXhpdFZhbHVlSW5KU1N0YWNrQXNEb3VibGU6CiAgICAgICAgICAgICBqaXQubG9hZERvdWJsZShh
ZGRyZXNzLCBGUFJJbmZvOjpmcFJlZ1QwKTsKICAgICAgICAgICAgIGppdC5ib3hEb3VibGUoRlBS
SW5mbzo6ZnBSZWdUMCwgR1BSSW5mbzo6cmVnVDApOwpAQCAtMTY5LDEwICsxNjAsOSBAQCBzdGF0
aWMgdm9pZCBjb21waWxlU3R1YigKICAgICBleGl0Lm1fY29kZSA9IEZJTkFMSVpFX0NPREVfSUYo
CiAgICAgICAgIHNob3VsZFNob3dEaXNhc3NlbWJseSgpLAogICAgICAgICBwYXRjaEJ1ZmZlciwK
LSAgICAgICAgKCJGVEwgT1NSIGV4aXQgIyV1IChiYyMldSwgJXMpIGZyb20gJXMsIHdpdGggb3Bl
cmFuZHMgPSAlcyIsCisgICAgICAgICgiRlRMIE9TUiBleGl0ICMldSAoYmMjJXUsICVzKSBmcm9t
ICVzIiwKICAgICAgICAgICAgIGV4aXRJRCwgZXhpdC5tX2NvZGVPcmlnaW4uYnl0ZWNvZGVJbmRl
eCwKLSAgICAgICAgICAgIGV4aXRLaW5kVG9TdHJpbmcoZXhpdC5tX2tpbmQpLCB0b0NTdHJpbmco
KmNvZGVCbG9jaykuZGF0YSgpLAotICAgICAgICAgICAgdG9DU3RyaW5nKGlnbm9yaW5nQ29udGV4
dDxEdW1wQ29udGV4dD4oZXhpdC5tX3ZhbHVlcykpLmRhdGEoKSkpOworICAgICAgICAgICAgZXhp
dEtpbmRUb1N0cmluZyhleGl0Lm1fa2luZCksIHRvQ1N0cmluZygqY29kZUJsb2NrKS5kYXRhKCkp
KTsKIH0KIAogZXh0ZXJuICJDIiB2b2lkKiBjb21waWxlRlRMT1NSRXhpdChFeGVjU3RhdGUqIGV4
ZWMsIHVuc2lnbmVkIGV4aXRJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMT3V0cHV0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCmlu
ZGV4IGFmNjhkZDNiYjkzZTE4NWFmNWM3Njk1MTQ1MWFkOTFkZDgzNmRlZGIuLmRiYzJkMzI4OTky
NTRlMTQ2NGFiZjE1MTlkM2EzMzJkMjBhNTFkNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExPdXRwdXQuaApAQCAtMTY2LDE4ICsxNjYsNiBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBy
ZXR1cm4gY2FsbChtdWxXaXRoT3ZlcmZsb3czMkludHJpbnNpYygpLCBsZWZ0LCByaWdodCk7CiAg
ICAgfQotICAgIExWYWx1ZSBhZGRXaXRoT3ZlcmZsb3c2NChMVmFsdWUgbGVmdCwgTFZhbHVlIHJp
Z2h0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGNhbGwoYWRkV2l0aE92ZXJmbG93NjRJbnRyaW5z
aWMoKSwgbGVmdCwgcmlnaHQpOwotICAgIH0KLSAgICBMVmFsdWUgc3ViV2l0aE92ZXJmbG93NjQo
TFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBjYWxsKHN1
YldpdGhPdmVyZmxvdzY0SW50cmluc2ljKCksIGxlZnQsIHJpZ2h0KTsKLSAgICB9Ci0gICAgTFZh
bHVlIG11bFdpdGhPdmVyZmxvdzY0KExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQpCi0gICAgewot
ICAgICAgICByZXR1cm4gY2FsbChtdWxXaXRoT3ZlcmZsb3c2NEludHJpbnNpYygpLCBsZWZ0LCBy
aWdodCk7Ci0gICAgfQogICAgIExWYWx1ZSBkb3VibGVBYnMoTFZhbHVlIHZhbHVlKQogICAgIHsK
ICAgICAgICAgcmV0dXJuIGNhbGwoZG91YmxlQWJzSW50cmluc2ljKCksIHZhbHVlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVmFsdWVGb3JtYXQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExWYWx1ZUZvcm1hdC5jcHAKaW5kZXggZmEyMDBkNzg5
NTQzZTM3YTIzY2M5ZGE1ZmZjZWQ3MzYyNDJiNjhjNi4uOTJmOTcwOTU1OGI2NjUwZmY3YzU5YmZl
ZDNmMGUyMjNkZWYzNTJkZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExWYWx1ZUZvcm1hdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExWYWx1
ZUZvcm1hdC5jcHAKQEAgLTQ0LDEyICs0NCw2IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0
cmVhbSYgb3V0LCBWYWx1ZUZvcm1hdCBmb3JtYXQpCiAgICAgY2FzZSBWYWx1ZUZvcm1hdFVJbnQz
MjoKICAgICAgICAgb3V0LnByaW50KCJVSW50MzIiKTsKICAgICAgICAgcmV0dXJuOwotICAgIGNh
c2UgVmFsdWVGb3JtYXRJbnQ1MjoKLSAgICAgICAgb3V0LnByaW50KCJJbnQ1MiIpOwotICAgICAg
ICByZXR1cm47Ci0gICAgY2FzZSBWYWx1ZUZvcm1hdFN0cmljdEludDUyOgotICAgICAgICBvdXQu
cHJpbnQoIlN0cmljdEludDUyIik7Ci0gICAgICAgIHJldHVybjsKICAgICBjYXNlIFZhbHVlRm9y
bWF0Qm9vbGVhbjoKICAgICAgICAgb3V0LnByaW50KCJCb29sZWFuIik7CiAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVmFsdWVGb3JtYXQu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVmFsdWVGb3JtYXQuaAppbmRleCBmMTRl
OGM3Njc5MjA3MmY4ZjU4NzBmZmZkMGJiNzgwMGU4NjI4Yjc0Li4zNTdhZjUwYzljODY4ODYxZjYz
ZWJjMjU2NzE4NTU1ODI4N2QwN2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTFZhbHVlRm9ybWF0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExW
YWx1ZUZvcm1hdC5oCkBAIC00MSw4ICs0MSw2IEBAIGVudW0gVmFsdWVGb3JtYXQgewogICAgIElu
dmFsaWRWYWx1ZUZvcm1hdCwKICAgICBWYWx1ZUZvcm1hdEludDMyLAogICAgIFZhbHVlRm9ybWF0
VUludDMyLAotICAgIFZhbHVlRm9ybWF0SW50NTIsCi0gICAgVmFsdWVGb3JtYXRTdHJpY3RJbnQ1
MiwKICAgICBWYWx1ZUZvcm1hdEJvb2xlYW4sCiAgICAgVmFsdWVGb3JtYXRKU1ZhbHVlLAogICAg
IFZhbHVlRm9ybWF0RG91YmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTFZhbHVlU291cmNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVmFsdWVT
b3VyY2UuY3BwCmluZGV4IGM2ZDllOGY1NmE4ZmQ3MjY0ODU3Zjk1MTc2M2U5MWM4ZmIxYjkwZDAu
LmE1NTk1MjExMmVmYWU5NGFmOTMzOGQyYzQ1NGYzMjhmN2M3OGEzYTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVmFsdWVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMVmFsdWVTb3VyY2UuY3BwCkBAIC00Miw5ICs0Miw2IEBAIHZv
aWQgVmFsdWVTb3VyY2U6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICBjYXNlIElu
dDMySW5KU1N0YWNrOgogICAgICAgICBvdXQucHJpbnQoIkludDMySW5KU1N0YWNrIik7CiAgICAg
ICAgIHJldHVybjsKLSAgICBjYXNlIEludDUySW5KU1N0YWNrOgotICAgICAgICBvdXQucHJpbnQo
IkludDUySW5KU1N0YWNrIik7Ci0gICAgICAgIHJldHVybjsKICAgICBjYXNlIERvdWJsZUluSlNT
dGFjazoKICAgICAgICAgb3V0LnByaW50KCJEb3VibGVJbkpTU3RhY2siKTsKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExWYWx1ZVNvdXJj
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExWYWx1ZVNvdXJjZS5oCmluZGV4IDUz
YTI5ZGI2ODNjZGZiZWM5MmZmNzBjNmY1MzQyODRkMDJjZTgwMmIuLjE2NzE5ZmZiODI0OWU5NTY2
ZGQ5MjIxNjUxYWI2MjIwNWU0YmZmYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMVmFsdWVTb3VyY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TFZhbHVlU291cmNlLmgKQEAgLTQwLDcgKzQwLDYgQEAgZW51bSBWYWx1ZVNvdXJjZUtpbmQgewog
ICAgIFNvdXJjZU5vdFNldCwKICAgICBWYWx1ZUluSlNTdGFjaywKICAgICBJbnQzMkluSlNTdGFj
aywKLSAgICBJbnQ1MkluSlNTdGFjaywKICAgICBEb3VibGVJbkpTU3RhY2ssCiAgICAgU291cmNl
SXNEZWFkLAogICAgIEhhdmVOb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9SZWdpc3Rlci5oCmluZGV4IGFlZjU2ZjFjNTNmOWQzNDE2YmUzZmY1Y2M5ZmM3MGY0MjFlOTY5
MGIuLjUyZDZhNjI5ZjE3NzQ1Mzk4OGZlYTJjODRlY2ViMjJhODAxMmZiOTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oCkBAIC03Myw3ICs3Myw2IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBJbnN0cnVjdGlvbiogdlBDKCkgY29uc3Q7CiAgICAg
ICAgIElubGluZUNhbGxGcmFtZSogYXNJbmxpbmVDYWxsRnJhbWUoKSBjb25zdDsKICAgICAgICAg
aW50MzJfdCB1bmJveGVkSW50MzIoKSBjb25zdDsKLSAgICAgICAgaW50NjRfdCB1bmJveGVkSW50
NTIoKSBjb25zdDsKICAgICAgICAgYm9vbCB1bmJveGVkQm9vbGVhbigpIGNvbnN0OwogICAgICAg
ICBkb3VibGUgdW5ib3hlZERvdWJsZSgpIGNvbnN0OwogICAgICAgICBKU0NlbGwqIHVuYm94ZWRD
ZWxsKCkgY29uc3Q7CkBAIC05OSw3ICs5OCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAg
ICAgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWU7CiAgICAgICAgICAgICBFbmNvZGVk
VmFsdWVEZXNjcmlwdG9yIGVuY29kZWRWYWx1ZTsKICAgICAgICAgICAgIGRvdWJsZSBudW1iZXI7
Ci0gICAgICAgICAgICBpbnQ2NF90IGludGVnZXI7CiAgICAgICAgIH0gdTsKICAgICB9OwogCkBA
IC0xODcsMTEgKzE4NSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICByZXR1cm4gcGF5bG9h
ZCgpOwogICAgIH0KIAotICAgIEFMV0FZU19JTkxJTkUgaW50NjRfdCBSZWdpc3Rlcjo6dW5ib3hl
ZEludDUyKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiB1LmludGVnZXIgPj4gSlNWYWx1
ZTo6aW50NTJTaGlmdEFtb3VudDsKLSAgICB9Ci0KICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgUmVn
aXN0ZXI6OnVuYm94ZWRCb29sZWFuKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiAhIXBh
eWxvYWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3Vt
ZW50cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCmlu
ZGV4IDViNTM2NDU4YTJjYWM2NDJlNDE1ZTY3MDdkOTlmMTNlZmZmMjE5ZWIuLmJmMjJjNTcwMGRl
OTkyMTkxZmNjNmY4NmMxYjIzN2E1Y2IwY2FhYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJndW1lbnRzLmNwcApAQCAtMzgzLDkgKzM4Myw2IEBAIHZvaWQgQXJndW1lbnRz
Ojp0ZWFyT2ZmRm9ySW5saW5lQ2FsbEZyYW1lKFZNJiB2bSwgUmVnaXN0ZXIqIHJlZ2lzdGVycywg
SW5saW5lQ2FsCiAgICAgICAgIGNhc2UgQWxyZWFkeUluSlNTdGFja0FzVW5ib3hlZEludDMyOgog
ICAgICAgICAgICAgdmFsdWUgPSBqc051bWJlcihsb2NhdGlvbi0+dW5ib3hlZEludDMyKCkpOwog
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQWxyZWFkeUluSlNTdGFja0FzVW5ib3hl
ZEludDUyOgotICAgICAgICAgICAgdmFsdWUgPSBqc051bWJlcihsb2NhdGlvbi0+dW5ib3hlZElu
dDUyKCkpOwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQWxyZWFkeUluSlNTdGFj
a0FzVW5ib3hlZENlbGw6CiAgICAgICAgICAgICB2YWx1ZSA9IGxvY2F0aW9uLT51bmJveGVkQ2Vs
bCgpOwogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbmRleGluZ1R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW5kZXhpbmdUeXBlLmNwcAppbmRleCA0MDRmNmIzYmJhMjA4NGE4ZDQ5Nzk4YWM1ZGE4ZTJj
MmI2MzhjNmI0Li4wNDBhNzgyOGEyNDNmYWZiMTZkODBmZmVlM2ZhYWE0ZjMwOGI4YzZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbmRleGluZ1R5cGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luZGV4aW5nVHlwZS5jcHAKQEAgLTUw
LDExICs1MCwxMSBAQCBJbmRleGluZ1R5cGUgbGVhc3RVcHBlckJvdW5kT2ZJbmRleGluZ1R5cGVB
bmRUeXBlKEluZGV4aW5nVHlwZSBpbmRleGluZ1R5cGUsIFNwZQogICAgIGNhc2UgQUxMX0lOVDMy
X0lOREVYSU5HX1RZUEVTOgogICAgICAgICBpZiAoaXNJbnQzMlNwZWN1bGF0aW9uKHR5cGUpKQog
ICAgICAgICAgICAgcmV0dXJuIChpbmRleGluZ1R5cGUgJiB+SW5kZXhpbmdTaGFwZU1hc2spIHwg
SW50MzJTaGFwZTsKLSAgICAgICAgaWYgKGlzRnVsbE51bWJlclNwZWN1bGF0aW9uKHR5cGUpKQor
ICAgICAgICBpZiAoaXNOdW1iZXJTcGVjdWxhdGlvbih0eXBlKSkKICAgICAgICAgICAgIHJldHVy
biAoaW5kZXhpbmdUeXBlICYgfkluZGV4aW5nU2hhcGVNYXNrKSB8IERvdWJsZVNoYXBlOwogICAg
ICAgICByZXR1cm4gKGluZGV4aW5nVHlwZSAmIH5JbmRleGluZ1NoYXBlTWFzaykgfCBDb250aWd1
b3VzU2hhcGU7CiAgICAgY2FzZSBBTExfRE9VQkxFX0lOREVYSU5HX1RZUEVTOgotICAgICAgICBp
ZiAoaXNGdWxsTnVtYmVyU3BlY3VsYXRpb24odHlwZSkpCisgICAgICAgIGlmIChpc051bWJlclNw
ZWN1bGF0aW9uKHR5cGUpKQogICAgICAgICAgICAgcmV0dXJuIGluZGV4aW5nVHlwZTsKICAgICAg
ICAgcmV0dXJuIChpbmRleGluZ1R5cGUgJiB+SW5kZXhpbmdTaGFwZU1hc2spIHwgQ29udGlndW91
c1NoYXBlOwogICAgIGNhc2UgQUxMX0NPTlRJR1VPVVNfSU5ERVhJTkdfVFlQRVM6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKaW5kZXggZmY1NTcwNzMyYzUzNjgz
MzUzMWUxMDM5ZWYwM2RhZTI2ZDIyZTQ0OS4uYjBkZWU4OTRmYjQ3ZDc3N2ZkYzUyNmYwOWZkNWQ2
ZDNjNmM4YTNhMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
SlNWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUu
aApAQCAtMTkxLDcgKzE5MSw2IEBAIHB1YmxpYzoKIAogICAgIGludDMyX3QgYXNJbnQzMigpIGNv
bnN0OwogICAgIHVpbnQzMl90IGFzVUludDMyKCkgY29uc3Q7Ci0gICAgaW50NjRfdCBhc01hY2hp
bmVJbnQoKSBjb25zdDsKICAgICBkb3VibGUgYXNEb3VibGUoKSBjb25zdDsKICAgICBib29sIGFz
Qm9vbGVhbigpIGNvbnN0OwogICAgIGRvdWJsZSBhc051bWJlcigpIGNvbnN0OwpAQCAtMjAzLDcg
KzIwMiw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzTnVsbCgpIGNvbnN0OwogICAgIGJvb2wgaXNV
bmRlZmluZWRPck51bGwoKSBjb25zdDsKICAgICBib29sIGlzQm9vbGVhbigpIGNvbnN0OwotICAg
IGJvb2wgaXNNYWNoaW5lSW50KCkgY29uc3Q7CiAgICAgYm9vbCBpc051bWJlcigpIGNvbnN0Owog
ICAgIGJvb2wgaXNTdHJpbmcoKSBjb25zdDsKICAgICBib29sIGlzUHJpbWl0aXZlKCkgY29uc3Q7
CkBAIC0yNzYsMTEgKzI3NCw2IEBAIHB1YmxpYzoKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIEpT
T2JqZWN0KiBzeW50aGVzaXplUHJvdG90eXBlKEV4ZWNTdGF0ZSopIGNvbnN0OwogCi0gICAgLy8g
Q29uc3RhbnRzIHVzZWQgZm9yIEludDUyLiBJbnQ1MiBpc24ndCBwYXJ0IG9mIEpTVmFsdWUgcmln
aHQgbm93LCBidXQgSlNWYWx1ZXMgbWF5IGJlCi0gICAgLy8gY29udmVydGVkIHRvIEludDUycyBh
bmQgYmFjayBhZ2Fpbi4KLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZJbnQ1MkJp
dHMgPSA1MjsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50NTJTaGlmdEFtb3VudCA9IDEy
OwotCiBwcml2YXRlOgogICAgIHRlbXBsYXRlIDxjbGFzcyBUPiBKU1ZhbHVlKFdyaXRlQmFycmll
ckJhc2U8VD4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NKU1ZhbHVlSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNW
YWx1ZUlubGluZXMuaAppbmRleCBiMzRhZGY4MDk4MTNhNWE4MzRkMDEwNTA5M2MyNGEwYTUzY2Vi
OTc2Li4yNGRhZDEyMmZiMzlhNWM3ZjIxMWRmNzBmOWYxYTgxMjQwMGYzNGNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKQEAgLTQ5
NCwzNSArNDk0LDYgQEAgQUxXQVlTX0lOTElORSBKU0NlbGwqIEpTVmFsdWU6OmFzQ2VsbCgpIGNv
bnN0CiAKICNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQogCi1pbmxpbmUgYm9vbCBKU1ZhbHVlOjpp
c01hY2hpbmVJbnQoKSBjb25zdAotewotICAgIGlmIChpc0ludDMyKCkpCi0gICAgICAgIHJldHVy
biB0cnVlOwotICAgIGlmICghaXNOdW1iZXIoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGRvdWJsZSBudW1iZXIgPSBhc0RvdWJsZSgpOwotICAgIGlmIChudW1iZXIgIT0gbnVtYmVyKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaW50NjRfdCBhc0ludDY0ID0gc3RhdGljX2Nhc3Q8
aW50NjRfdD4obnVtYmVyKTsKLSAgICBpZiAoYXNJbnQ2NCAhPSBudW1iZXIpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBpZiAoIWFzSW50NjQgJiYgc3RkOjpzaWduYml0KG51bWJlcikpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoYXNJbnQ2NCA+PSAoc3RhdGljX2Nhc3Q8aW50
NjRfdD4oMSkgPDwgKG51bWJlck9mSW50NTJCaXRzIC0gMSkpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgaWYgKGFzSW50NjQgPCAtKHN0YXRpY19jYXN0PGludDY0X3Q+KDEpIDw8IChudW1i
ZXJPZkludDUyQml0cyAtIDEpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiB0
cnVlOwotfQotCi1pbmxpbmUgaW50NjRfdCBKU1ZhbHVlOjphc01hY2hpbmVJbnQoKSBjb25zdAot
ewotICAgIEFTU0VSVChpc01hY2hpbmVJbnQoKSk7Ci0gICAgaWYgKGlzSW50MzIoKSkKLSAgICAg
ICAgcmV0dXJuIGFzSW50MzIoKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50NjRfdD4oYXNE
b3VibGUoKSk7Ci19Ci0KIGlubGluZSBib29sIEpTVmFsdWU6OmlzU3RyaW5nKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gaXNDZWxsKCkgJiYgYXNDZWxsKCktPmlzU3RyaW5nKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9QcmludFN0cmVhbS5oIGIvU291cmNlL1dURi93dGYvUHJpbnRTdHJl
YW0uaAppbmRleCAzZWFmNzc1ZGI0YmE1ZDg5ZWFmNzE2YWQxODYxMzVkYTdlNjdjYWZkLi43OGU2
ODljMjY5NTcwN2JhNDQxYTI5ZTljMTQ1ZDI3OTIzZmJjNTEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9QcmludFN0cmVhbS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1ByaW50U3RyZWFtLmgK
QEAgLTM2MCwzNiArMzYwLDExIEBAIFZhbHVlSW5Db250ZXh0PFQsIFU+IGluQ29udGV4dChjb25z
dCBUJiB2YWx1ZSwgVSogY29udGV4dCkKICAgICByZXR1cm4gVmFsdWVJbkNvbnRleHQ8VCwgVT4o
dmFsdWUsIGNvbnRleHQpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgot
Y2xhc3MgVmFsdWVJZ25vcmluZ0NvbnRleHQgewotcHVibGljOgotICAgIFZhbHVlSWdub3JpbmdD
b250ZXh0KGNvbnN0IFUmIHZhbHVlKQotICAgICAgICA6IG1fdmFsdWUoJnZhbHVlKQotICAgIHsK
LSAgICB9Ci0gICAgCi0gICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0Ci0gICAg
ewotICAgICAgICBUIGNvbnRleHQ7Ci0gICAgICAgIG1fdmFsdWUtPmR1bXBJbkNvbnRleHQob3V0
LCAmY29udGV4dCk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIGNvbnN0IFUqIG1fdmFsdWU7Ci19
OwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgotVmFsdWVJZ25vcmluZ0NvbnRl
eHQ8VCwgVT4gaWdub3JpbmdDb250ZXh0KGNvbnN0IFUmIHZhbHVlKQotewotICAgIHJldHVybiBW
YWx1ZUlnbm9yaW5nQ29udGV4dDxULCBVPih2YWx1ZSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdU
RgogCiB1c2luZyBXVEY6OkNoYXJhY3RlckR1bXA7CiB1c2luZyBXVEY6OlBvaW50ZXJEdW1wOwog
dXNpbmcgV1RGOjpQcmludFN0cmVhbTsKLXVzaW5nIFdURjo6aWdub3JpbmdDb250ZXh0OwogdXNp
bmcgV1RGOjppbkNvbnRleHQ7CiB1c2luZyBXVEY6OnBvaW50ZXJEdW1wOwogCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWNhZThjZTc3OWYyNjU0
MjM5ZTQzNWIzN2JhMDZjYjRjMGY2NTVjOS4uZDIxMjM1NGQzMjExOGNmOTEyOTA3YzM3ZDYwZWY1
Yjg4Mzk3MmY0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTA5LTE4ICBDb21taXQgUXVldWUgIDxjb21taXQt
cXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTU2
MDE5IGFuZCByMTU2MDIwLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNl
dC8xNTYwMTkKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTU2MDIw
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjE1NDAK
KworICAgICAgICBCcm9rZSB0ZXN0cyAoUmVxdWVzdGVkIGJ5IGFwIG9uICN3ZWJraXQpLgorCisg
ICAgICAgICogU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0czoKKwogMjAxMy0wOS0xNyAgR3dh
bmcgWW9vbiBId2FuZyAgPHJ5dW1pZWxAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgVW5yZXZp
ZXdlZC4gQWRkIG15c2VsZiBhcyBhIGNvbW1pdHRlci4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMgYi9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRl
c3RzCmluZGV4IDJjM2I4MTM3NWMzMGQxZjRhMmZkNmExOGZlMjg1N2I4OGQ2OGE0NDIuLjVkOTQ2
NGU5YmVjYmE4ZTk0NDhhNmUwNmViNWRjOWZiMDJmMTI4NTUgMTAwNzU1Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0
cmVzcy10ZXN0cwpAQCAtMjE0LDExICsyMTQsMTIgQEAgZGVmIGRlZmF1bHRSdW4KICAgICBydW5E
ZWZhdWx0CiAgICAgcnVuQWx3YXlzVHJpZ2dlckNvcHlQaGFzZQogICAgIHJ1bk5vQ0pJVAotICAg
IHJ1bkRGR0VhZ2VyCiAgICAgaWYgJGVuYWJsZUZUTAogICAgICAgICBydW5EZWZhdWx0RlRMCiAg
ICAgICAgIHJ1bkZUTE5vQ0pJVAogICAgICAgICBydW5GVExFYWdlcgorICAgIGVsc2UKKyAgICAg
ICAgcnVuREZHRWFnZXIKICAgICBlbmQKIGVuZAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTQwYjc2MjIzNTk1OTA0Yjhj
MmM0MjRjYmRmMDRjZmQwNGJlZWQ5YS4uYjdhNWIzYTgxMDRiMmU0Y2VmNmZkY2E4MTBkNDRjNjBi
MDllMTYxOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTA5LTE4ICBDb21taXQgUXVldWUg
IDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMTU2MDE5IGFuZCByMTU2MDIwLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xNTYwMTkKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2Vz
ZXQvMTU2MDIwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjE1NDAKKworICAgICAgICBCcm9rZSB0ZXN0cyAoUmVxdWVzdGVkIGJ5IGFwIG9uICN3ZWJr
aXQpLgorCisgICAgICAgICoganMvcmVncmVzcy9sYXJnZS1pbnQtY2FwdHVyZWQtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvbGFyZ2UtaW50LWNhcHR1cmVkLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9sYXJnZS1pbnQtZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvbGFyZ2UtaW50LW5lZy1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9sYXJnZS1pbnQtbmVnLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9sYXJnZS1pbnQuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBqcy9yZWdyZXNzL21hcnNhZ2xpYS1sYXJnZXItaW50cy1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9tYXJzYWdsaWEtbGFyZ2VyLWludHMuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9sYXJnZS1pbnQtY2Fw
dHVyZWQuanM6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbGFy
Z2UtaW50LW5lZy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9sYXJnZS1pbnQuanM6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvbWFyc2FnbGlhLWxhcmdlci1pbnRzLmpzOiBSZW1vdmVkLgorCiAyMDEzLTA5LTE3ICBab2x0
YW4gSG9ydmF0aCAgPHpvbHRhbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFtDU1MgU2hhcGVzXSBV
c2UgdGhlIGZsb2F0IGhlaWdodCB0byBkZXRlcm1pbmUgcG9zaXRpb24gaW4gc2hhcGUtaW5zaWRl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2xhcmdlLWludC1jYXB0dXJlZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2xhcmdlLWludC1jYXB0dXJlZC1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2NDAzMmViYzI3MmUw
NWZjOTY1ZDYzNDFiMzUyYjBlOWNkMzM2NzYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9sYXJnZS1pbnQtY2FwdHVy
ZWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNz
L2xhcmdlLWludC1jYXB0dXJlZAotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFT
UyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0K
LVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9sYXJn
ZS1pbnQtY2FwdHVyZWQuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbGFyZ2UtaW50LWNh
cHR1cmVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2ZTkwOTZiNmVhODU2
NjQ1MDYxYTUxMGMzYzJhMTY0YzhhYTY5N2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9sYXJnZS1pbnQtY2FwdHVy
ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2xhcmdlLWludC1jYXB0dXJlZC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2xhcmdlLWlu
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2xhcmdlLWludC1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVmN2MyZWE5ZTVkMDBjZGI0ZjUw
YWY5YmViZTk1MDQzZGQxYjdlNjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9sYXJnZS1pbnQtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNzL2xhcmdlLWludAotCi1P
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBubyBleGNlcHRpb24gdGhyb3duCi1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9sYXJnZS1pbnQtbmVnLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbGFyZ2UtaW50LW5lZy1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2NWMwYzM5MjRlZTc3MjYzM2ExZjQyMDc1NDE3MmM5
NzNiYTMyNTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9sYXJnZS1pbnQtbmVnLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy9sYXJnZS1pbnQtbmVnCi0KLU9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2xhcmdlLWludC1uZWcuaHRtbCBiL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvbGFyZ2UtaW50LW5lZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA5ZWUzNDhjMTYyYjhiOWVkOWE2MzllZjFiN2JmNDI3ODRiZTczMjZmLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvbGFyZ2UtaW50LW5lZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvbGFyZ2UtaW50LW5lZy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2xhcmdlLWludC5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9sYXJnZS1pbnQuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzAyNTU1OTcxOTI5NzNkMzBkYjlhNWVkNzRh
MDY4MDNhMzZmZmI4OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2xhcmdlLWludC5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvbGFyZ2UtaW50LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVz
cy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvbWFyc2FnbGlhLWxhcmdlci1pbnRzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvbWFyc2FnbGlhLWxhcmdlci1pbnRzLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWMxYmIwODQ5NTMzYTkwNGE0YWIxODVmMzc2
MDk2NWIxMDk0N2IxYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL21hcnNhZ2xpYS1sYXJnZXItaW50cy1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jlc3MvbWFyc2FnbGlh
LWxhcmdlci1pbnRzCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4
Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBD
T01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL21hcnNhZ2xpYS1s
YXJnZXItaW50cy5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9tYXJzYWdsaWEtbGFyZ2Vy
LWludHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZThlZGRlZDcyNzcyNzU2
MmU3Y2FkMzI3YjVjNGMzMzZiNjYxZjYyMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL21hcnNhZ2xpYS1sYXJnZXIt
aW50cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvbWFyc2FnbGlhLWxhcmdlci1pbnRzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2Ny
aXB0LXRlc3RzL2xhcmdlLWludC1jYXB0dXJlZC5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL2xhcmdlLWludC1jYXB0dXJlZC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggOGY0OWExZTM2YjdkNTMwNzEyYTk4NDE4NDk5MDgyMjNkNTYwZTBmNC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9sYXJnZS1pbnQtY2FwdHVyZWQuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwxOSArMCwwIEBACi1mdW5jdGlvbiBmb28oeCwgeSkgewotICAgIHZhciB6ID0geDsKLSAg
ICBmdW5jdGlvbiBiYXIoKSB7Ci0gICAgICAgIHJldHVybiB6OwotICAgIH0KLSAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDM7ICsraSkKLSAgICAgICAgeiArPSB5OwotICAgIHJldHVybiBiYXIoKTsK
LX0KLQotZXZhbCgiLy8gRG9uJ3QgY29tcGlsZSBtZSIpOwotCi12YXIgcmVzdWx0ID0gMDsKLQot
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkKLSAgICByZXN1bHQgKz0gZm9vKDEwMDAw
MDAwMDAsIDEwMDAwMDAwMDApOwotCi1pZiAocmVzdWx0ICE9IDQwMDAwMDAwMDAwMDAwMCkKLSAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9sYXJnZS1pbnQtbmVnLmpzIGIvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbGFyZ2UtaW50LW5lZy5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOGY0Y2QyM2JjZGMzOTEzNzExNzBhNmYyNDdlMWE1NGQ4YTFj
ZDYxNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9sYXJnZS1pbnQtbmVnLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsMTkgKzAsMCBAQAotZnVuY3Rpb24gZm9vKHgsIHkpIHsKLSAgICB2YXIgeiA9
IHg7Ci0gICAgdmFyIHcgPSAwOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMzsgKytpKSB7Ci0g
ICAgICAgIHogKz0geTsKLSAgICAgICAgdyA9IC16OwotICAgIH0KLSAgICByZXR1cm4gdyArIDE7
Ci19Ci0KLWV2YWwoIi8vIERvbid0IGNvbXBpbGUgbWUiKTsKLQotdmFyIHJlc3VsdCA9IDA7Ci0K
LWZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDsgKytpKQotICAgIHJlc3VsdCArPSBmb28oMTAw
MDAwMDAwMCwgMTAwMDAwMDAwMCk7Ci0KLWlmIChyZXN1bHQgIT0gLTM5OTk5OTk5OTkwMDAwMDAp
Ci0gICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbGFyZ2UtaW50LmpzIGIvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbGFyZ2UtaW50LmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyMmQwY2FlMDg1NTk2YzI0OWRhZTcwYjI5MjE3OGQxNGE3NjMwYTVh
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2xhcmdlLWludC5qcworKysgL2Rldi9udWxsCkBA
IC0xLDE2ICswLDAgQEAKLWZ1bmN0aW9uIGZvbyh4LCB5KSB7Ci0gICAgdmFyIHogPSB4OwotICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgMzsgKytpKQotICAgICAgICB6ICs9IHk7Ci0gICAgcmV0dXJu
IHo7Ci19Ci0KLWV2YWwoIi8vIERvbid0IGNvbXBpbGUgbWUiKTsKLQotdmFyIHJlc3VsdCA9IDA7
Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDsgKytpKQotICAgIHJlc3VsdCArPSBmb28o
MTAwMDAwMDAwMCwgMTAwMDAwMDAwMCk7Ci0KLWlmIChyZXN1bHQgIT0gNDAwMDAwMDAwMDAwMDAw
MCkKLSAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9tYXJzYWdsaWEtbGFyZ2VyLWlu
dHMuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9tYXJzYWdsaWEtbGFy
Z2VyLWludHMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFkNzEyMWY3YTg4NjIz
Zjg1NjIxZDRlNDA1NWViMWQ4MjBmNDdjMWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbWFy
c2FnbGlhLWxhcmdlci1pbnRzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotZnVu
Y3Rpb24gdWludCh4KSB7Ci0gICAgaWYgKHggPCAwKQotICAgICAgICByZXR1cm4geCArIDQyOTQ5
NjcyOTY7Ci0gICAgcmV0dXJuIHg7Ci19Ci0KLWZ1bmN0aW9uIG1hcnNhZ2xpYShtX3osIG1fdywg
bikgewotICAgIHZhciByZXN1bHQ7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyArK2kpIHsK
LSAgICAgICAgbV96ID0gKDM2OTY5ICogdWludChtX3ogJiA2NTUzNSkgKyAobV96ID4+IDE2KSkg
fCAwOwotICAgICAgICBtX3cgPSAoMTgwMDAgKiB1aW50KG1fdyAmIDY1NTM1KSArIChtX3cgPj4g
MTYpKSB8IDA7Ci0gICAgICAgIHJlc3VsdCA9ICgobV96IDw8IDE2KSArIG1fdykgfCAwOwotICAg
IH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi12YXIgcmVzdWx0ID0gbWFyc2FnbGlhKDUsIDcs
IDEwMDAwMDAwKTsKLQotaWYgKHJlc3VsdCAhPSAtMTA0NzM2NDA1NikKLSAgICB0aHJvdyAiRXJy
b3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Ci0K
</data>

          </attachment>
      

    </bug>

</bugzilla>