<?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>140775</bug_id>
          
          <creation_ts>2015-01-22 11:29:43 -0800</creation_ts>
          <short_desc>REGRESSION(r178894): Broke JSC and bindings tests (Requested by ap_ on #webkit).</short_desc>
          <delta_ts>2015-01-22 11:34:33 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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>140426</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ggaren</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1063405</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-22 11:29:43 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/178894 broke the build:
Broke JSC and bindings 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>1063407</commentid>
    <comment_count>1</comment_count>
      <attachid>245150</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-22 11:30:11 -0800</bug_when>
    <thetext>Created attachment 245150
ROLLOUT of r178894

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>1063410</commentid>
    <comment_count>2</comment_count>
      <attachid>245150</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-22 11:34:31 -0800</bug_when>
    <thetext>Comment on attachment 245150
ROLLOUT of r178894

Clearing flags on attachment: 245150

Committed r178928: &lt;http://trac.webkit.org/changeset/178928&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063411</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-22 11:34:33 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245150</attachid>
            <date>2015-01-22 11:30:11 -0800</date>
            <delta_ts>2015-01-22 11:34:31 -0800</delta_ts>
            <desc>ROLLOUT of r178894</desc>
            <filename>bug-140775-20150122113019.patch</filename>
            <type>text/plain</type>
            <size>61791</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4OTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
NDU0YTYzY2EwYzlmYTIzNDNiZDJiZjVlMjgzOTg2ZjhjMWZmN2FjLi42NTBhZThiODE5YjEyNzRh
YTlmNGZjMjU5OTVjMzE2NmU4NjQ1YTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNS0wMS0yMiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE3ODg5NC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDc3NQorCisgICAg
ICAgIEJyb2tlIEpTQyBhbmQgYmluZGluZ3MgdGVzdHMgKFJlcXVlc3RlZCBieSBhcF8gb24gI3dl
YmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJwdXRfYnlf
dmFsX2RpcmVjdCBuZWVkIHRvIGNoZWNrIHRoZSBwcm9wZXJ0eSBpcyBpbmRleCBvciBub3QKKyAg
ICAgICAgZm9yIHVzaW5nIHB1dERpcmVjdCAvIHB1dERpcmVjdEluZGV4IgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwNDI2CisgICAgICAgIGh0dHA6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE3ODg5NAorCiAyMDE1LTAxLTIyICBNYXJrIExh
bSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBCeXRlY29kZUdlbmVyYXRvcjo6aW5p
dGlhbGl6ZUNhcHR1cmVkVmFyaWFibGUoKSBzZXRzIGEgbWlzbGVhZGluZyB2YWx1ZSBmb3IgdGhl
IDV0aCBvcGVyYW5kIG9mIG9wX3B1dF90b19zY29wZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NWRiNzQ4Mjhm
NzQwZDMwOGU2MjMyYzI4MDFhYzQyZWJmMmZkNTQ3Li41Y2ViZjlhMjQ4YmYxZmIwZTI5MDRjZWI4
M2ZiZmZjYTAyZWEwMzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMDEtMjIg
IENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNzg4OTQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDA3NzUKKworICAgICAgICBCcm9rZSBKU0MgYW5kIGJpbmRp
bmdzIHRlc3RzIChSZXF1ZXN0ZWQgYnkgYXBfIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVy
dGVkIGNoYW5nZXNldDoKKworICAgICAgICAicHV0X2J5X3ZhbF9kaXJlY3QgbmVlZCB0byBjaGVj
ayB0aGUgcHJvcGVydHkgaXMgaW5kZXggb3Igbm90CisgICAgICAgIGZvciB1c2luZyBwdXREaXJl
Y3QgLyBwdXREaXJlY3RJbmRleCIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0MDQyNgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5n
ZXNldC8xNzg4OTQKKwogMjAxNS0wMS0yMiAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtpT1NdIEZpeCBpcGhvbmVvcyBTREsgYnVpbGRzIGZvciBpb3MtZXdz
IHF1ZXVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJ
ZFN0YXR1cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1
cy5jcHAKaW5kZXggNWIwZmVkMjM5ZDk1OWJiYjc0NzlmNzI1NjIyZTA5MjgzMmE5Zjg5Mi4uYTlh
NDdlMDgxM2EyMTRiMTIxOTZmZTYyYzIyZTE0ZTNjYzZlNTM3YyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcApAQCAtMjcwLDcgKzI3MCw3
IEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcihjb25zdCBTdHJ1Y3R1
cmVTZXQmIHNldCwgQXRvbWljU3RyaW5nSW1wCiAgICAgaWYgKHNldC5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKCk7CiAKLSAgICBpZiAodG9VSW50MzJGcm9tU3RyaW5n
SW1wbCh1aWQpKQorICAgIGlmICh0b1VJbnQzMkZyb21TdHJpbmdJbXBsKHVpZCkgIT0gUHJvcGVy
dHlOYW1lOjpOb3RBbkluZGV4KQogICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhUYWtlc1Ns
b3dQYXRoKTsKICAgICAKICAgICBHZXRCeUlkU3RhdHVzIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVzLmNwcAppbmRleCA5ZTk4ZmNjOTY5
MTVmYzFhNjNhMDBkYzJkODVhZTgzYWViOTNiZmJhLi40YTgyYmE3YzRmN2ZkYmI3MDcyMTg2ZGY2
Y2I5ZmIwYmQwNmI1NjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvUHV0QnlJZFN0YXR1cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1B1dEJ5SWRTdGF0dXMuY3BwCkBAIC0zMTAsNyArMzEwLDcgQEAgUHV0QnlJZFN0YXR1cyBQdXRC
eUlkU3RhdHVzOjpjb21wdXRlRm9yKENvZGVCbG9jayogYmFzZWxpbmVCbG9jaywgQ29kZUJsb2Nr
KiBkZmcKIAogUHV0QnlJZFN0YXR1cyBQdXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cnVjdHVyZVNldCYgc2V0LCBBdG9taWNTdHJp
bmdJbXBsKiB1aWQsIGJvb2wgaXNEaXJlY3QpCiB7Ci0gICAgaWYgKHRvVUludDMyRnJvbVN0cmlu
Z0ltcGwodWlkKSkKKyAgICBpZiAodG9VSW50MzJGcm9tU3RyaW5nSW1wbCh1aWQpICE9IFByb3Bl
cnR5TmFtZTo6Tm90QW5JbmRleCkKICAgICAgICAgcmV0dXJuIFB1dEJ5SWRTdGF0dXMoVGFrZXNT
bG93UGF0aCk7CiAKICAgICBpZiAoc2V0LmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKaW5kZXgg
NjU5ZTNlMzViNDQ3ZmFiMDhiZWUwNWYwZTQ3OTRlNTEwYjUyNjkyOC4uYzExNjU2NWQzZDE2YmFh
M2M1NzY3MjVjYzAzNzZiMTJkYzc1MTA2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKQEAgLTE1MDEsNyAr
MTUwMSw5IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0RGlyZWN0UHV0QnlJ
ZChSZWdpc3RlcklEKiBiYXNlLCBjb25zdCBJZGVudGlmCiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBw
ZW5kKDApOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCgwKTsKICAgICBpbnN0cnVjdGlvbnMo
KS5hcHBlbmQoMCk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHByb3BlcnR5ICE9IG1fdm0t
PnByb3BlcnR5TmFtZXMtPnVuZGVyc2NvcmVQcm90byAmJiAhUHJvcGVydHlOYW1lKHByb3BlcnR5
KS5hc0luZGV4KCkpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCgKKyAgICAgICAgcHJvcGVy
dHkgIT0gbV92bS0+cHJvcGVydHlOYW1lcy0+dW5kZXJzY29yZVByb3RvCisgICAgICAgICYmIFBy
b3BlcnR5TmFtZShwcm9wZXJ0eSkuYXNJbmRleCgpID09IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRl
eCk7CiAgICAgcmV0dXJuIHZhbHVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmNwcAppbmRleCBjNTAzODM4NWEwYTgxOWNjNzYxNjAxODdlMDA3ODhkYjEz
OWEwNTAzLi43OTVlNjA1ODM1MjZjMzc2MDNjMzE4NzI4Nzc1MjJiOGZkOGI3ODkyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTk3LDE2ICs5Nywx
NCBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0
QnlWYWxJbnRlcm5hbChFeGVjU3RhdGUqIGV4ZQogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKIAogICAgIGlmIChMSUtFTFkocHJvcGVydHkuaXNVSW50
MzIoKSkpIHsKLSAgICAgICAgdWludDMyX3QgaW5kZXggPSBwcm9wZXJ0eS5hc1VJbnQzMigpOwot
ICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKGluZGV4ICE9IFByb3BlcnR5TmFtZTo6Tm90QW5J
bmRleCwgIlNpbmNlIEpTVmFsdWU6OmlzVUludDMyIHJldHVybnMgdHJ1ZSBvbmx5IHdoZW4gdGhl
IGJveGVkIHZhbHVlIGlzIGludDMyX3QgYW5kIHBvc2l0aXZlLCBpdCBkb2Vzbid0IHJldHVybiB0
cnVlIGZvciB1aW50MzJfdCBtYXggdmFsdWUgdGhhdCBpcyBQcm9wZXJ0eU5hbWU6Ok5vdEFuSW5k
ZXguIik7Ci0gICAgICAgIHB1dEJ5VmFsPHN0cmljdCwgZGlyZWN0PihleGVjLCBiYXNlVmFsdWUs
IGluZGV4LCB2YWx1ZSk7CisgICAgICAgIHB1dEJ5VmFsPHN0cmljdCwgZGlyZWN0PihleGVjLCBi
YXNlVmFsdWUsIHByb3BlcnR5LmFzVUludDMyKCksIHZhbHVlKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAogICAgIGlmIChwcm9wZXJ0eS5pc0RvdWJsZSgpKSB7CiAgICAgICAgIGRvdWJsZSBw
cm9wZXJ0eUFzRG91YmxlID0gcHJvcGVydHkuYXNEb3VibGUoKTsKICAgICAgICAgdWludDMyX3Qg
cHJvcGVydHlBc1VJbnQzMiA9IHN0YXRpY19jYXN0PHVpbnQzMl90Pihwcm9wZXJ0eUFzRG91Ymxl
KTsKLSAgICAgICAgaWYgKHByb3BlcnR5QXNEb3VibGUgPT0gcHJvcGVydHlBc1VJbnQzMiAmJiBw
cm9wZXJ0eUFzVUludDMyICE9IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRleCkgeworICAgICAgICBp
ZiAocHJvcGVydHlBc0RvdWJsZSA9PSBwcm9wZXJ0eUFzVUludDMyKSB7CiAgICAgICAgICAgICBw
dXRCeVZhbDxzdHJpY3QsIGRpcmVjdD4oZXhlYywgYmFzZVZhbHVlLCBwcm9wZXJ0eUFzVUludDMy
LCB2YWx1ZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTEyNCwxOSArMTIy
LDE0IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Q
dXRCeVZhbEludGVybmFsKEV4ZWNTdGF0ZSogZXhlCiAKICAgICAvLyBEb24ndCBwdXQgdG8gYW4g
b2JqZWN0IGlmIHRvU3RyaW5nIHRocm93cyBhbiBleGNlcHRpb24uCiAgICAgSWRlbnRpZmllciBp
ZGVudCA9IHByb3BlcnR5LnRvU3RyaW5nKGV4ZWMpLT50b0lkZW50aWZpZXIoZXhlYyk7Ci0gICAg
aWYgKHZtLT5leGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUHV0UHJvcGVydHlT
bG90IHNsb3QoYmFzZVZhbHVlLCBzdHJpY3QpOwotICAgIGlmIChkaXJlY3QpIHsKLSAgICAgICAg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZShpZGVudCk7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJU
KGJhc2VWYWx1ZS5pc09iamVjdCgpKTsKLSAgICAgICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90PiBp
bmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCkpCi0gICAgICAgICAgICBhc09iamVjdChiYXNl
VmFsdWUpLT5wdXREaXJlY3RJbmRleChleGVjLCBpbmRleC52YWx1ZSgpLCB2YWx1ZSwgMCwgc3Ry
aWN0ID8gUHV0RGlyZWN0SW5kZXhTaG91bGRUaHJvdyA6IFB1dERpcmVjdEluZGV4U2hvdWxkTm90
VGhyb3cpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBhc09iamVjdChiYXNlVmFsdWUpLT5w
dXREaXJlY3QoKnZtLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKLSAgICB9IGVsc2UKLSAg
ICAgICAgYmFzZVZhbHVlLnB1dChleGVjLCBpZGVudCwgdmFsdWUsIHNsb3QpOworICAgIGlmICgh
dm0tPmV4Y2VwdGlvbigpKSB7CisgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KGJhc2VWYWx1
ZSwgc3RyaWN0KTsKKyAgICAgICAgaWYgKGRpcmVjdCkgeworICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlQoYmFzZVZhbHVlLmlzT2JqZWN0KCkpOworICAgICAgICAgICAgYXNPYmplY3QoYmFzZVZh
bHVlKS0+cHV0RGlyZWN0KCp2bSwgaWRlbnQsIHZhbHVlLCBzbG90KTsKKyAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICBiYXNlVmFsdWUucHV0KGV4ZWMsIGlkZW50LCB2YWx1ZSwgc2xvdCk7Cisg
ICAgfQogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAppbmRleCBmZTJjYmU0MDExZjNlM2ExNWQ5NmY2
MjBlMThjMzBhYWVkYWZhMzRhLi4zN2FhNDVkNTM2MzkxMWE1OTYzZjBjOTBjMGQxY2VkZmJiZTMy
MmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKQEAg
LTUxLDcgKzUxLDYgQEAKICNpbmNsdWRlICJKU1dpdGhTY29wZS5oIgogI2luY2x1ZGUgIkxlZ2Fj
eVByb2ZpbGVyLmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKLSNpbmNsdWRlICJQ
cm9wZXJ0eU5hbWUuaCIKICNpbmNsdWRlICJSZXBhdGNoLmgiCiAjaW5jbHVkZSAiUmVwYXRjaEJ1
ZmZlci5oIgogI2luY2x1ZGUgIlRlc3RSdW5uZXJVdGlscy5oIgpAQCAtNDgxLDQwICs0ODAsMTgg
QEAgc3RhdGljIHZvaWQgcHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgYmFz
ZVZhbHVlLCBKU1ZhbHVlIHN1YnNjcmlwdCwKIAogc3RhdGljIHZvaWQgZGlyZWN0UHV0QnlWYWwo
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBKU1ZhbHVlIHN1YnNj
cmlwdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBib29sIGlzU3RyaWN0TW9kZSA9IGNhbGxGcmFt
ZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpOwogICAgIGlmIChMSUtFTFkoc3Vic2NyaXB0
LmlzVUludDMyKCkpKSB7Ci0gICAgICAgIHVpbnQzMl90IGluZGV4ID0gc3Vic2NyaXB0LmFzVUlu
dDMyKCk7Ci0gICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoaW5kZXggIT0gUHJvcGVydHlOYW1l
OjpOb3RBbkluZGV4LCAiU2luY2UgSlNWYWx1ZTo6aXNVSW50MzIgcmV0dXJucyB0cnVlIG9ubHkg
d2hlbiB0aGUgYm94ZWQgdmFsdWUgaXMgaW50MzJfdCBhbmQgcG9zaXRpdmUsIGl0IGRvZXNuJ3Qg
cmV0dXJuIHRydWUgZm9yIHVpbnQzMl90IG1heCB2YWx1ZSB0aGF0IGlzIFByb3BlcnR5TmFtZTo6
Tm90QW5JbmRleC4iKTsKLSAgICAgICAgYmFzZU9iamVjdC0+cHV0RGlyZWN0SW5kZXgoY2FsbEZy
YW1lLCBpbmRleCwgdmFsdWUsIDAsIGlzU3RyaWN0TW9kZSA/IFB1dERpcmVjdEluZGV4U2hvdWxk
VGhyb3cgOiBQdXREaXJlY3RJbmRleFNob3VsZE5vdFRocm93KTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQotICAgIGlmIChzdWJzY3JpcHQuaXNEb3VibGUoKSkgewotICAgICAgICBkb3VibGUg
c3Vic2NyaXB0QXNEb3VibGUgPSBzdWJzY3JpcHQuYXNEb3VibGUoKTsKLSAgICAgICAgdWludDMy
X3Qgc3Vic2NyaXB0QXNVSW50MzIgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oc3Vic2NyaXB0QXNE
b3VibGUpOwotICAgICAgICBpZiAoc3Vic2NyaXB0QXNEb3VibGUgPT0gc3Vic2NyaXB0QXNVSW50
MzIgJiYgc3Vic2NyaXB0QXNVSW50MzIgIT0gUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4KSB7Ci0g
ICAgICAgICAgICBiYXNlT2JqZWN0LT5wdXREaXJlY3RJbmRleChjYWxsRnJhbWUsIHN1YnNjcmlw
dEFzVUludDMyLCB2YWx1ZSwgMCwgaXNTdHJpY3RNb2RlID8gUHV0RGlyZWN0SW5kZXhTaG91bGRU
aHJvdyA6IFB1dERpcmVjdEluZGV4U2hvdWxkTm90VGhyb3cpOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKGlzTmFtZShzdWJzY3JpcHQpKSB7Ci0gICAg
ICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KGJhc2VPYmplY3QsIGlzU3RyaWN0TW9kZSk7CisgICAg
ICAgIHVpbnQzMl90IGkgPSBzdWJzY3JpcHQuYXNVSW50MzIoKTsKKyAgICAgICAgYmFzZU9iamVj
dC0+cHV0RGlyZWN0SW5kZXgoY2FsbEZyYW1lLCBpLCB2YWx1ZSk7CisgICAgfSBlbHNlIGlmIChp
c05hbWUoc3Vic2NyaXB0KSkgeworICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChiYXNlT2Jq
ZWN0LCBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5pc1N0cmljdE1vZGUoKSk7CiAgICAgICAgIGJh
c2VPYmplY3QtPnB1dERpcmVjdChjYWxsRnJhbWUtPnZtKCksIGpzQ2FzdDxOYW1lSW5zdGFuY2Uq
PihzdWJzY3JpcHQuYXNDZWxsKCkpLT5wcml2YXRlTmFtZSgpLCB2YWx1ZSwgc2xvdCk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBEb24ndCBwdXQgdG8gYW4gb2JqZWN0IGlmIHRv
U3RyaW5nIHRocm93cyBhbiBleGNlcHRpb24uCi0gICAgSWRlbnRpZmllciBwcm9wZXJ0eSA9IHN1
YnNjcmlwdC50b1N0cmluZyhjYWxsRnJhbWUpLT50b0lkZW50aWZpZXIoY2FsbEZyYW1lKTsKLSAg
ICBpZiAoY2FsbEZyYW1lLT52bSgpLmV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKHByb3BlcnR5KTsKLSAgICBpZiAoT3B0aW9uYWw8
dWludDMyX3Q+IGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKSkKLSAgICAgICAgYmFzZU9i
amVjdC0+cHV0RGlyZWN0SW5kZXgoY2FsbEZyYW1lLCBpbmRleC52YWx1ZSgpLCB2YWx1ZSwgMCwg
aXNTdHJpY3RNb2RlID8gUHV0RGlyZWN0SW5kZXhTaG91bGRUaHJvdyA6IFB1dERpcmVjdEluZGV4
U2hvdWxkTm90VGhyb3cpOwotICAgIGVsc2UgewotICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xv
dChiYXNlT2JqZWN0LCBpc1N0cmljdE1vZGUpOwotICAgICAgICBiYXNlT2JqZWN0LT5wdXREaXJl
Y3QoY2FsbEZyYW1lLT52bSgpLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICB9IGVs
c2UgeworICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5ID0gc3Vic2NyaXB0LnRvU3RyaW5nKGNh
bGxGcmFtZSktPnRvSWRlbnRpZmllcihjYWxsRnJhbWUpOworICAgICAgICBpZiAoIWNhbGxGcmFt
ZS0+dm0oKS5leGNlcHRpb24oKSkgeyAvLyBEb24ndCBwdXQgdG8gYW4gb2JqZWN0IGlmIHRvU3Ry
aW5nIHRocmV3IGFuIGV4Y2VwdGlvbi4KKyAgICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90
KGJhc2VPYmplY3QsIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpKTsKKyAg
ICAgICAgICAgIGJhc2VPYmplY3QtPnB1dERpcmVjdChjYWxsRnJhbWUtPnZtKCksIHByb3BlcnR5
LCB2YWx1ZSwgc2xvdCk7CisgICAgICAgIH0KICAgICB9CiB9CiB2b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHV0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Jl
cGF0Y2guY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAppbmRleCBj
ZTEwMjhlNjNkMDA1YTY5ZWVlMDgwNTFhYzRhYjQ2OGJlYjUwZTIyLi5kOTRiOWUzYWMzYTE0Yzk1
MmI0NjU1NmVlMTZjMDgzNTExNWQxYTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1JlcGF0Y2guY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRj
aC5jcHAKQEAgLTk4Miw3ICs5ODIsNyBAQCBzdGF0aWMgU3RydWN0dXJlKiBlbWl0UHV0VHJhbnNp
dGlvblN0dWJBbmRHZXRPbGRTdHJ1Y3R1cmUoRXhlY1N0YXRlKiBleGVjLCBWTSogdgogewogICAg
IFByb3BlcnR5TmFtZSBwbmFtZShpZGVudCk7CiAgICAgU3RydWN0dXJlKiBvbGRTdHJ1Y3R1cmUg
PSBzdHJ1Y3R1cmU7Ci0gICAgaWYgKCFvbGRTdHJ1Y3R1cmUtPmlzT2JqZWN0KCkgfHwgb2xkU3Ry
dWN0dXJlLT5pc0RpY3Rpb25hcnkoKSB8fCBwbmFtZS5hc0luZGV4KCkpCisgICAgaWYgKCFvbGRT
dHJ1Y3R1cmUtPmlzT2JqZWN0KCkgfHwgb2xkU3RydWN0dXJlLT5pc0RpY3Rpb25hcnkoKSB8fCBw
bmFtZS5hc0luZGV4KCkgIT0gUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4KQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAogICAgIFByb3BlcnR5T2Zmc2V0IHByb3BlcnR5T2Zmc2V0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvanNjLmNwcAppbmRleCAyNGRiMjQ1M2RhZGQ5ZWNmOGM3YWJkMjA1NDJkODhjMjI0YTk1NmE0
Li41MDZiZDBjYjY1YWM0OTNhNGNjY2IxMTI5MjNiN2FkOTRiMTJkZmQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
anNjLmNwcApAQCAtMzM0LDkgKzMzNCwxMCBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgfQogCi0gICAgICAgIE9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHBy
b3BlcnR5TmFtZS5hc0luZGV4KCk7Ci0gICAgICAgIGlmIChpbmRleCAmJiBpbmRleC52YWx1ZSgp
IDwgdGhpc09iamVjdC0+Z2V0TGVuZ3RoKCkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUo
dGhpc09iamVjdCwgRG9udERlbGV0ZSB8IERvbnRFbnVtLCBqc051bWJlcih0aGlzT2JqZWN0LT5t
X3ZlY3RvcltpbmRleC52YWx1ZSgpXSkpOworICAgICAgICB1bnNpZ25lZCBpbmRleCA9IHByb3Bl
cnR5TmFtZS5hc0luZGV4KCk7CisgICAgICAgIGlmIChpbmRleCA8IHRoaXNPYmplY3QtPmdldExl
bmd0aCgpKSB7CisgICAgICAgICAgICBBU1NFUlQoaW5kZXggIT0gUHJvcGVydHlOYW1lOjpOb3RB
bkluZGV4KTsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgRG9udERlbGV0
ZSB8IERvbnRFbnVtLCBqc051bWJlcih0aGlzT2JqZWN0LT5tX3ZlY3RvcltpbmRleF0pKTsKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCmluZGV4IGRlZTllMmZlZWIzOTkwOWM2ZDBj
ZjlhMWEwN2E5NTljNmUxNTFhZDMuLjg1YmFjMjYwM2E3YjIxNTdiOTU1OWIyZmUxODVhNjc3NjUy
ZDJkNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQ
YXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhz
LmNwcApAQCAtODE5LDQxICs4MTksMTggQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRo
X3B1dF9ieV92YWxfZGlyZWN0KQogICAgIEpTVmFsdWUgdmFsdWUgPSBMTElOVF9PUF9DKDMpLmpz
VmFsdWUoKTsKICAgICBSRUxFQVNFX0FTU0VSVChiYXNlVmFsdWUuaXNPYmplY3QoKSk7CiAgICAg
SlNPYmplY3QqIGJhc2VPYmplY3QgPSBhc09iamVjdChiYXNlVmFsdWUpOwotICAgIGJvb2wgaXNT
dHJpY3RNb2RlID0gZXhlYy0+Y29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpOwogICAgIGlmIChM
SUtFTFkoc3Vic2NyaXB0LmlzVUludDMyKCkpKSB7Ci0gICAgICAgIHVpbnQzMl90IGluZGV4ID0g
c3Vic2NyaXB0LmFzVUludDMyKCk7Ci0gICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoaW5kZXgg
IT0gUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4LCAiU2luY2UgSlNWYWx1ZTo6aXNVSW50MzIgcmV0
dXJucyB0cnVlIG9ubHkgd2hlbiB0aGUgYm94ZWQgdmFsdWUgaXMgaW50MzJfdCBhbmQgcG9zaXRp
dmUsIGl0IGRvZXNuJ3QgcmV0dXJuIHRydWUgZm9yIHVpbnQzMl90IG1heCB2YWx1ZSB0aGF0IGlz
IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRleC4iKTsKLSAgICAgICAgYmFzZU9iamVjdC0+cHV0RGly
ZWN0SW5kZXgoZXhlYywgaW5kZXgsIHZhbHVlLCAwLCBpc1N0cmljdE1vZGUgPyBQdXREaXJlY3RJ
bmRleFNob3VsZFRocm93IDogUHV0RGlyZWN0SW5kZXhTaG91bGROb3RUaHJvdyk7Ci0gICAgICAg
IExMSU5UX0VORCgpOwotICAgIH0KLQotCi0gICAgaWYgKHN1YnNjcmlwdC5pc0RvdWJsZSgpKSB7
Ci0gICAgICAgIGRvdWJsZSBzdWJzY3JpcHRBc0RvdWJsZSA9IHN1YnNjcmlwdC5hc0RvdWJsZSgp
OwotICAgICAgICB1aW50MzJfdCBzdWJzY3JpcHRBc1VJbnQzMiA9IHN0YXRpY19jYXN0PHVpbnQz
Ml90PihzdWJzY3JpcHRBc0RvdWJsZSk7Ci0gICAgICAgIGlmIChzdWJzY3JpcHRBc0RvdWJsZSA9
PSBzdWJzY3JpcHRBc1VJbnQzMiAmJiBzdWJzY3JpcHRBc1VJbnQzMiAhPSBQcm9wZXJ0eU5hbWU6
Ok5vdEFuSW5kZXgpIHsKLSAgICAgICAgICAgIGJhc2VPYmplY3QtPnB1dERpcmVjdEluZGV4KGV4
ZWMsIHN1YnNjcmlwdEFzVUludDMyLCB2YWx1ZSwgMCwgaXNTdHJpY3RNb2RlID8gUHV0RGlyZWN0
SW5kZXhTaG91bGRUaHJvdyA6IFB1dERpcmVjdEluZGV4U2hvdWxkTm90VGhyb3cpOwotICAgICAg
ICAgICAgTExJTlRfRU5EKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoaXNOYW1lKHN1
YnNjcmlwdCkpIHsKLSAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3QoYmFzZU9iamVjdCwgaXNT
dHJpY3RNb2RlKTsKKyAgICAgICAgdWludDMyX3QgaSA9IHN1YnNjcmlwdC5hc1VJbnQzMigpOwor
ICAgICAgICBiYXNlT2JqZWN0LT5wdXREaXJlY3RJbmRleChleGVjLCBpLCB2YWx1ZSk7CisgICAg
fSBlbHNlIGlmIChpc05hbWUoc3Vic2NyaXB0KSkgeworICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qg
c2xvdChiYXNlT2JqZWN0LCBleGVjLT5jb2RlQmxvY2soKS0+aXNTdHJpY3RNb2RlKCkpOwogICAg
ICAgICBiYXNlT2JqZWN0LT5wdXREaXJlY3QoZXhlYy0+dm0oKSwganNDYXN0PE5hbWVJbnN0YW5j
ZSo+KHN1YnNjcmlwdC5hc0NlbGwoKSktPnByaXZhdGVOYW1lKCksIHZhbHVlLCBzbG90KTsKLSAg
ICAgICAgTExJTlRfRU5EKCk7Ci0gICAgfQotCi0gICAgLy8gRG9uJ3QgcHV0IHRvIGFuIG9iamVj
dCBpZiB0b1N0cmluZyB0aHJvd3MgYW4gZXhjZXB0aW9uLgotICAgIElkZW50aWZpZXIgcHJvcGVy
dHkgPSBzdWJzY3JpcHQudG9TdHJpbmcoZXhlYyktPnRvSWRlbnRpZmllcihleGVjKTsKLSAgICBp
ZiAoZXhlYy0+dm0oKS5leGNlcHRpb24oKSkKLSAgICAgICAgTExJTlRfRU5EKCk7Ci0KLSAgICBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKHByb3BlcnR5KTsKLSAgICBpZiAoT3B0aW9uYWw8dWlu
dDMyX3Q+IGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKSkKLSAgICAgICAgYmFzZU9iamVj
dC0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaW5kZXgudmFsdWUoKSwgdmFsdWUsIDAsIGlzU3RyaWN0
TW9kZSA/IFB1dERpcmVjdEluZGV4U2hvdWxkVGhyb3cgOiBQdXREaXJlY3RJbmRleFNob3VsZE5v
dFRocm93KTsKLSAgICBlbHNlIHsKLSAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3QoYmFzZU9i
amVjdCwgaXNTdHJpY3RNb2RlKTsKLSAgICAgICAgYmFzZU9iamVjdC0+cHV0RGlyZWN0KGV4ZWMt
PnZtKCksIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAgIH0gZWxzZSB7CisgICAgICAg
IElkZW50aWZpZXIgcHJvcGVydHkgPSBzdWJzY3JpcHQudG9TdHJpbmcoZXhlYyktPnRvSWRlbnRp
ZmllcihleGVjKTsKKyAgICAgICAgaWYgKCFleGVjLT52bSgpLmV4Y2VwdGlvbigpKSB7IC8vIERv
bid0IHB1dCB0byBhbiBvYmplY3QgaWYgdG9TdHJpbmcgdGhyZXcgYW4gZXhjZXB0aW9uLgorICAg
ICAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3QoYmFzZU9iamVjdCwgZXhlYy0+Y29kZUJsb2Nr
KCktPmlzU3RyaWN0TW9kZSgpKTsKKyAgICAgICAgICAgIGJhc2VPYmplY3QtPnB1dERpcmVjdChl
eGVjLT52bSgpLCBwcm9wZXJ0eSwgdmFsdWUsIHNsb3QpOworICAgICAgICB9CiAgICAgfQogICAg
IExMSU5UX0VORCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJndW1lbnRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50
cy5jcHAKaW5kZXggMmNhODNmZWZlYzY1MDJhMjRjYjI4ZjAxM2Q1MjA0M2Q4MDRhOWQxYy4uNmI2
YmVhY2IwNGIzOWQxZmEzMDE0MzY2MTQ3ZDM0OTRjN2JmY2RjYyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCkBAIC0xNjEsMTEgKzE2MSwxMSBAQCB2b2lk
IEFyZ3VtZW50czo6Y3JlYXRlU3RyaWN0TW9kZUNhbGxlZUlmTmVjZXNzYXJ5KEV4ZWNTdGF0ZSog
ZXhlYykKIGJvb2wgQXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVj
dCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmIHNsb3QpCiB7CiAgICAgQXJndW1lbnRzKiB0aGlzT2JqZWN0ID0ganNDYXN0PEFyZ3VtZW50
cyo+KG9iamVjdCk7Ci0gICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHByb3BlcnR5
TmFtZS5hc0luZGV4KCkpIHsKLSAgICAgICAgaWYgKEpTVmFsdWUgdmFsdWUgPSB0aGlzT2JqZWN0
LT50cnlHZXRBcmd1bWVudChpbmRleC52YWx1ZSgpKSkgewotICAgICAgICAgICAgc2xvdC5zZXRW
YWx1ZSh0aGlzT2JqZWN0LCBOb25lLCB2YWx1ZSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICAgICAgfQorICAgIHVuc2lnbmVkIGkgPSBwcm9wZXJ0eU5hbWUuYXNJbmRleCgpOworICAg
IGlmIChKU1ZhbHVlIHZhbHVlID0gdGhpc09iamVjdC0+dHJ5R2V0QXJndW1lbnQoaSkpIHsKKyAg
ICAgICAgUkVMRUFTRV9BU1NFUlQoaSA8IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRleCk7CisgICAg
ICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgTm9uZSwgdmFsdWUpOworICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5
TmFtZXMoKS5sZW5ndGggJiYgTElLRUxZKCF0aGlzT2JqZWN0LT5tX292ZXJyb2RlTGVuZ3RoKSkg
ewpAQCAtMjI0LDggKzIyNCw4IEBAIHZvaWQgQXJndW1lbnRzOjpwdXRCeUluZGV4KEpTQ2VsbCog
Y2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBKU1ZhbHVlIHZhCiB2b2lkIEFyZ3Vt
ZW50czo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAg
QXJndW1lbnRzKiB0aGlzT2JqZWN0ID0ganNDYXN0PEFyZ3VtZW50cyo+KGNlbGwpOwotICAgIE9w
dGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7Ci0gICAgaWYg
KGluZGV4ICYmIHRoaXNPYmplY3QtPnRyeVNldEFyZ3VtZW50KGV4ZWMtPnZtKCksIGluZGV4LnZh
bHVlKCksIHZhbHVlKSkKKyAgICB1bnNpZ25lZCBpID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKTsK
KyAgICBpZiAodGhpc09iamVjdC0+dHJ5U2V0QXJndW1lbnQoZXhlYy0+dm0oKSwgaSwgdmFsdWUp
KQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS5sZW5ndGggJiYgIXRoaXNPYmplY3QtPm1fb3ZlcnJvZGVMZW5ndGgpIHsKQEAg
LTI2NywxMSArMjY3LDEyIEBAIGJvb2wgQXJndW1lbnRzOjpkZWxldGVQcm9wZXJ0eShKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlCiAgICAgICAgIHJldHVy
biBCYXNlOjpkZWxldGVQcm9wZXJ0eShjZWxsLCBleGVjLCBwcm9wZXJ0eU5hbWUpOwogCiAgICAg
QXJndW1lbnRzKiB0aGlzT2JqZWN0ID0ganNDYXN0PEFyZ3VtZW50cyo+KGNlbGwpOwotICAgIE9w
dGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7Ci0gICAgaWYg
KGluZGV4ICYmIGluZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT5tX251bUFyZ3VtZW50cykgewor
ICAgIHVuc2lnbmVkIGkgPSBwcm9wZXJ0eU5hbWUuYXNJbmRleCgpOworICAgIGlmIChpIDwgdGhp
c09iamVjdC0+bV9udW1Bcmd1bWVudHMpIHsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoaSA8IFBy
b3BlcnR5TmFtZTo6Tm90QW5JbmRleCk7CiAgICAgICAgIGlmICghQmFzZTo6ZGVsZXRlUHJvcGVy
dHkoY2VsbCwgZXhlYywgcHJvcGVydHlOYW1lKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgaWYgKHRoaXNPYmplY3QtPnRyeURlbGV0ZUFyZ3VtZW50KGV4ZWMtPnZtKCksIGlu
ZGV4LnZhbHVlKCkpKQorICAgICAgICBpZiAodGhpc09iamVjdC0+dHJ5RGVsZXRlQXJndW1lbnQo
ZXhlYy0+dm0oKSwgaSkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTI5
NywxMyArMjk4LDEzIEBAIGJvb2wgQXJndW1lbnRzOjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlCiBib29sIEFyZ3VtZW50czo6
ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0
b3IsIGJvb2wgc2hvdWxkVGhyb3cpCiB7CiAgICAgQXJndW1lbnRzKiB0aGlzT2JqZWN0ID0ganND
YXN0PEFyZ3VtZW50cyo+KG9iamVjdCk7Ci0gICAgT3B0aW9uYWw8dWludDMyX3Q+IG9wdGlvbmFs
SW5kZXggPSBwcm9wZXJ0eU5hbWUuYXNJbmRleCgpOwotICAgIGlmIChvcHRpb25hbEluZGV4ICYm
IG9wdGlvbmFsSW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPm1fbnVtQXJndW1lbnRzKSB7Cisg
ICAgdW5zaWduZWQgaSA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7CisgICAgaWYgKGkgPCB0aGlz
T2JqZWN0LT5tX251bUFyZ3VtZW50cykgeworICAgICAgICBSRUxFQVNFX0FTU0VSVChpIDwgUHJv
cGVydHlOYW1lOjpOb3RBbkluZGV4KTsKICAgICAgICAgLy8gSWYgdGhlIHByb3BlcnR5IGlzIG5v
dCB5ZXQgcHJlc2VudCBvbiB0aGUgb2JqZWN0LCBhbmQgaXMgbm90IHlldCBtYXJrZWQgYXMgZGVs
ZXRlZCwgdGhlbiBhZGQgaXQgbm93LgotICAgICAgICB1aW50MzJfdCBpbmRleCA9IG9wdGlvbmFs
SW5kZXgudmFsdWUoKTsKICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QodGhpc09iamVjdCk7Ci0g
ICAgICAgIGlmICghdGhpc09iamVjdC0+aXNEZWxldGVkQXJndW1lbnQoaW5kZXgpICYmICFKU09i
amVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCkpIHsKLSAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSB0aGlzT2JqZWN0LT50cnlHZXRB
cmd1bWVudChpbmRleCk7CisgICAgICAgIGlmICghdGhpc09iamVjdC0+aXNEZWxldGVkQXJndW1l
bnQoaSkgJiYgIUpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KSkgeworICAgICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IHRoaXNP
YmplY3QtPnRyeUdldEFyZ3VtZW50KGkpOwogICAgICAgICAgICAgQVNTRVJUKHZhbHVlKTsKICAg
ICAgICAgICAgIG9iamVjdC0+cHV0RGlyZWN0TWF5QmVJbmRleChleGVjLCBwcm9wZXJ0eU5hbWUs
IHZhbHVlKTsKICAgICAgICAgfQpAQCAtMzEyLDIwICszMTMsMjAgQEAgYm9vbCBBcmd1bWVudHM6
OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJv
cGVydHlOYW0KIAogICAgICAgICAvLyBGcm9tIEVTIDUuMSwgMTAuNiBBcmd1bWVudHMgT2JqZWN0
CiAgICAgICAgIC8vIDUuIElmIHRoZSB2YWx1ZSBvZiBpc01hcHBlZCBpcyBub3QgdW5kZWZpbmVk
LCB0aGVuCi0gICAgICAgIGlmICh0aGlzT2JqZWN0LT5pc0FyZ3VtZW50KGluZGV4KSkgeworICAg
ICAgICBpZiAodGhpc09iamVjdC0+aXNBcmd1bWVudChpKSkgewogICAgICAgICAgICAgLy8gYS4g
SWYgSXNBY2Nlc3NvckRlc2NyaXB0b3IoRGVzYykgaXMgdHJ1ZSwgdGhlbgogICAgICAgICAgICAg
aWYgKGRlc2NyaXB0b3IuaXNBY2Nlc3NvckRlc2NyaXB0b3IoKSkgewogICAgICAgICAgICAgICAg
IC8vIGkuIENhbGwgdGhlIFtbRGVsZXRlXV0gaW50ZXJuYWwgbWV0aG9kIG9mIG1hcCBwYXNzaW5n
IFAsIGFuZCBmYWxzZSBhcyB0aGUgYXJndW1lbnRzLgotICAgICAgICAgICAgICAgIHRoaXNPYmpl
Y3QtPnRyeURlbGV0ZUFyZ3VtZW50KGV4ZWMtPnZtKCksIGluZGV4KTsKKyAgICAgICAgICAgICAg
ICB0aGlzT2JqZWN0LT50cnlEZWxldGVBcmd1bWVudChleGVjLT52bSgpLCBpKTsKICAgICAgICAg
ICAgIH0gZWxzZSB7IC8vIGIuIEVsc2UKICAgICAgICAgICAgICAgICAvLyBpLiBJZiBEZXNjLltb
VmFsdWVdXSBpcyBwcmVzZW50LCB0aGVuCiAgICAgICAgICAgICAgICAgLy8gMS4gQ2FsbCB0aGUg
W1tQdXRdXSBpbnRlcm5hbCBtZXRob2Qgb2YgbWFwIHBhc3NpbmcgUCwgRGVzYy5bW1ZhbHVlXV0s
IGFuZCBUaHJvdyBhcyB0aGUgYXJndW1lbnRzLgogICAgICAgICAgICAgICAgIGlmIChkZXNjcmlw
dG9yLnZhbHVlKCkpCi0gICAgICAgICAgICAgICAgICAgIHRoaXNPYmplY3QtPnRyeVNldEFyZ3Vt
ZW50KGV4ZWMtPnZtKCksIGluZGV4LCBkZXNjcmlwdG9yLnZhbHVlKCkpOworICAgICAgICAgICAg
ICAgICAgICB0aGlzT2JqZWN0LT50cnlTZXRBcmd1bWVudChleGVjLT52bSgpLCBpLCBkZXNjcmlw
dG9yLnZhbHVlKCkpOwogICAgICAgICAgICAgICAgIC8vIGlpLiBJZiBEZXNjLltbV3JpdGFibGVd
XSBpcyBwcmVzZW50IGFuZCBpdHMgdmFsdWUgaXMgZmFsc2UsIHRoZW4KICAgICAgICAgICAgICAg
ICAvLyAxLiBDYWxsIHRoZSBbW0RlbGV0ZV1dIGludGVybmFsIG1ldGhvZCBvZiBtYXAgcGFzc2lu
ZyBQIGFuZCBmYWxzZSBhcyBhcmd1bWVudHMuCiAgICAgICAgICAgICAgICAgaWYgKGRlc2NyaXB0
b3Iud3JpdGFibGVQcmVzZW50KCkgJiYgIWRlc2NyaXB0b3Iud3JpdGFibGUoKSkKLSAgICAgICAg
ICAgICAgICAgICAgdGhpc09iamVjdC0+dHJ5RGVsZXRlQXJndW1lbnQoZXhlYy0+dm0oKSwgaW5k
ZXgpOworICAgICAgICAgICAgICAgICAgICB0aGlzT2JqZWN0LT50cnlEZWxldGVBcmd1bWVudChl
eGVjLT52bSgpLCBpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICByZXR1cm4g
dHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJv
dG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBl
LmNwcAppbmRleCBkODc2OWM1YmY3MTA0YzAzMWFjYTE0MzQ1NDdiNDIxZWE2M2U3MDk5Li5jNzk5
Y2MzMWUxYmYxMDY2NmI5ZTRiN2Y1ZjUxYmY4NDE4Y2RjYTdlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCkBAIC03NDIsMTEgKzc0Miwx
MCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU29ydChFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgVmVjdG9yPHVpbnQzMl90LCAwLCBVbnNhZmVWZWN0b3JPdmVyZmxv
dz4ga2V5czsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG5hbWVBcnJheS5zaXplKCk7ICsr
aSkgewogICAgICAgICBQcm9wZXJ0eU5hbWUgbmFtZSA9IG5hbWVBcnJheVtpXTsKLSAgICAgICAg
T3B0aW9uYWw8dWludDMyX3Q+IG9wdGlvbmFsSW5kZXggPSBuYW1lLmFzSW5kZXgoKTsKLSAgICAg
ICAgaWYgKCFvcHRpb25hbEluZGV4KQorICAgICAgICB1aW50MzJfdCBpbmRleCA9IG5hbWUuYXNJ
bmRleCgpOworICAgICAgICBpZiAoaW5kZXggPT0gUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4KQog
ICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgdWludDMyX3QgaW5kZXggPSBvcHRpb25h
bEluZGV4LnZhbHVlKCk7CisgICAgICAgIAogICAgICAgICBKU1ZhbHVlIHZhbHVlID0gZ2V0T3JI
b2xlKHRoaXNPYmosIGV4ZWMsIGluZGV4KTsKICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKaW5kZXggNzMwN2IzMWRj
MTRjYmRhNmQ4NDVjZjdkNjdmZjFhNTEyZDZkZmFhMC4uNTE3NzIxZTk4NDQ5ZTFlZDNlYTA1ZTUw
OTZhNDNjMzE0ODI4ODg5MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJh
eS5jcHAKQEAgLTE1OCw5ICsxNTgsOSBAQCBib29sIEpTQXJyYXk6OmRlZmluZU93blByb3BlcnR5
KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lCiAKICAgICAv
LyA0LiBFbHNlIGlmIFAgaXMgYW4gYXJyYXkgaW5kZXggKDE1LjQpLCB0aGVuCiAgICAgLy8gYS4g
TGV0IGluZGV4IGJlIFRvVWludDMyKFApLgotICAgIGlmIChPcHRpb25hbDx1aW50MzJfdD4gb3B0
aW9uYWxJbmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCkpIHsKKyAgICB1bnNpZ25lZCBpbmRl
eCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7CisgICAgaWYgKGluZGV4ICE9IFByb3BlcnR5TmFt
ZTo6Tm90QW5JbmRleCkgewogICAgICAgICAvLyBiLiBSZWplY3QgaWYgaW5kZXggPj0gb2xkTGVu
IGFuZCBvbGRMZW5EZXNjLltbV3JpdGFibGVdXSBpcyBmYWxzZS4KLSAgICAgICAgdWludDMyX3Qg
aW5kZXggPSBvcHRpb25hbEluZGV4LnZhbHVlKCk7CiAgICAgICAgIGlmIChpbmRleCA+PSBhcnJh
eS0+bGVuZ3RoKCkgJiYgIWFycmF5LT5pc0xlbmd0aFdyaXRhYmxlKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gcmVqZWN0KGV4ZWMsIHRocm93RXhjZXB0aW9uLCAiQXR0ZW1wdGluZyB0byBkZWZpbmUg
bnVtZXJpYyBwcm9wZXJ0eSBvbiBhcnJheSB3aXRoIG5vbi13cml0YWJsZSBsZW5ndGggcHJvcGVy
dHkuIik7CiAgICAgICAgIC8vIGMuIExldCBzdWNjZWVkZWQgYmUgdGhlIHJlc3VsdCBvZiBjYWxs
aW5nIHRoZSBkZWZhdWx0IFtbRGVmaW5lT3duUHJvcGVydHldXSBpbnRlcm5hbCBtZXRob2QgKDgu
MTIuOSkgb24gQSBwYXNzaW5nIFAsIERlc2MsIGFuZCBmYWxzZSBhcyBhcmd1bWVudHMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuY3BwCmluZGV4IDc2ODYwNTVm
NTU1NWMxMjg2ZWQxMmUwNDAzODNkNTExMTUzZjM3NmUuLmMyMzNmNGM3MDAyMWNkNzg1MzI4NTll
MTViMGNiNjMwNzZjOWU5NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ0pTVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q0pTVmFsdWUuY3BwCkBAIC0xMTksOCArMTE5LDkgQEAgdm9pZCBKU1ZhbHVlOjpwdXRUb1ByaW1p
dGl2ZShFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUK
IHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogCi0gICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90
PiBpbmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCkpIHsKLSAgICAgICAgcHV0VG9QcmltaXRp
dmVCeUluZGV4KGV4ZWMsIGluZGV4LnZhbHVlKCksIHZhbHVlLCBzbG90LmlzU3RyaWN0TW9kZSgp
KTsKKyAgICB1bnNpZ25lZCBpbmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7CisgICAgaWYg
KGluZGV4ICE9IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRleCkgeworICAgICAgICBwdXRUb1ByaW1p
dGl2ZUJ5SW5kZXgoZXhlYywgaW5kZXgsIHZhbHVlLCBzbG90LmlzU3RyaWN0TW9kZSgpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaAppbmRleCBh
ZDA3MTZjODcwYmE5OWJhOWI3MDE0MzgzOGU4ZjQ0ZmVlNTA4MDRiLi42ZDBkMjFmYTYxZjM5ODlm
OWQ5YjQxOTlkYWE4ODhlOWY2NjQ0ZWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaApA
QCAtMzAyLDkgKzMwMiw5IEBAIGJvb2wgSlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46
OmdldE93blByb3BlcnR5U2xvdCgKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIAot
ICAgIE9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7Ci0g
ICAgaWYgKGluZGV4ICYmIHRoaXNPYmplY3QtPmNhbkdldEluZGV4UXVpY2tseShpbmRleC52YWx1
ZSgpKSkgewotICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIERvbnREZWxldGUgfCBS
ZWFkT25seSwgdGhpc09iamVjdC0+Z2V0SW5kZXhRdWlja2x5KGluZGV4LnZhbHVlKCkpKTsKKyAg
ICB1bnNpZ25lZCBpbmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7CisgICAgaWYgKGluZGV4
ICE9IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRleCAmJiB0aGlzT2JqZWN0LT5jYW5HZXRJbmRleFF1
aWNrbHkoaW5kZXgpKSB7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5LCB0aGlzT2JqZWN0LT5nZXRJbmRleFF1aWNrbHkoaW5kZXgpKTsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIApAQCAtMzI0LDggKzMyNCw5IEBAIHZvaWQg
SlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OnB1dCgKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICAKLSAgICBpZiAoT3B0aW9uYWw8dWludDMyX3Q+IGluZGV4ID0gcHJvcGVydHlO
YW1lLmFzSW5kZXgoKSkgewotICAgICAgICBwdXRCeUluZGV4KHRoaXNPYmplY3QsIGV4ZWMsIGlu
ZGV4LnZhbHVlKCksIHZhbHVlLCBzbG90LmlzU3RyaWN0TW9kZSgpKTsKKyAgICB1bnNpZ25lZCBp
bmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7CisgICAgaWYgKGluZGV4ICE9IFByb3BlcnR5
TmFtZTo6Tm90QW5JbmRleCkgeworICAgICAgICBwdXRCeUluZGV4KHRoaXNPYmplY3QsIGV4ZWMs
IGluZGV4LCB2YWx1ZSwgc2xvdC5pc1N0cmljdE1vZGUoKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgCkBAIC0zNDIsNyArMzQzLDggQEAgYm9vbCBKU0dlbmVyaWNUeXBlZEFycmF5Vmll
dzxBZGFwdG9yPjo6ZGVmaW5lT3duUHJvcGVydHkoCiAgICAgLy8gVGhpcyBpcyBtYXRjaGluZyBG
aXJlZm94IGJlaGF2aW9yLiBJbiBwYXJ0aWN1bGFyLCBpdCByZWplY3RzIGFsbCBhdHRlbXB0cyB0
bwogICAgIC8vIGRlZmluZU93blByb3BlcnR5IGZvciBpbmRleGVkIHByb3BlcnRpZXMgb24gdHlw
ZWQgYXJyYXlzLCBldmVuIGlmIHRoZXkncmUgb3V0CiAgICAgLy8gb2YgYm91bmRzLgotICAgIGlm
IChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCB8fCBwcm9wZXJ0
eU5hbWUuYXNJbmRleCgpKQorICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlO
YW1lcygpLmxlbmd0aAorICAgICAgICB8fCBwcm9wZXJ0eU5hbWUuYXNJbmRleCgpICE9IFByb3Bl
cnR5TmFtZTo6Tm90QW5JbmRleCkKICAgICAgICAgcmV0dXJuIHJlamVjdChleGVjLCBzaG91bGRU
aHJvdywgIkF0dGVtcHRpbmcgdG8gd3JpdGUgdG8gYSByZWFkLW9ubHkgdHlwZWQgYXJyYXkgcHJv
cGVydHkuIik7CiAgICAgCiAgICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5KHRoaXNP
YmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwpAQCAt
MzU0LDcgKzM1Niw4IEBAIGJvb2wgSlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OmRl
bGV0ZVByb3BlcnR5KAogewogICAgIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3KiB0aGlzT2JqZWN0
ID0ganNDYXN0PEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Kj4oY2VsbCk7CiAgICAgCi0gICAgaWYg
KHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoIHx8IHByb3BlcnR5
TmFtZS5hc0luZGV4KCkpCisgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5h
bWVzKCkubGVuZ3RoCisgICAgICAgIHx8IHByb3BlcnR5TmFtZS5hc0luZGV4KCkgIT0gUHJvcGVy
dHlOYW1lOjpOb3RBbkluZGV4KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCiAgICAgcmV0
dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKaW5kZXggNGMxOGQz
NjU4ZjgwY2Y3ZjVlYjI4ZTIxYjg5NGQ4OTNkOTRjMjQ3NC4uODdjMTkxOTQ3MjljNTI1NDk2ZDEx
MzNhMjFlOTg5MjhiMWVkZWU0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0LmNwcApAQCAtMzM5LDggKzMzOSw5IEBAIHZvaWQgSlNPYmplY3Q6OnB1dChKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWCiAg
ICAgCiAgICAgLy8gVHJ5IGluZGV4ZWQgcHV0IGZpcnN0LiBUaGlzIGlzIHJlcXVpcmVkIGZvciBj
b3JyZWN0bmVzcywgc2luY2UgbG9hZHMgb24gcHJvcGVydHkgbmFtZXMgdGhhdCBhcHBlYXIgbGlr
ZQogICAgIC8vIHZhbGlkIGluZGljZXMgd2lsbCBuZXZlciBsb29rIGluIHRoZSBuYW1lZCBwcm9w
ZXJ0eSBzdG9yYWdlLgotICAgIGlmIChPcHRpb25hbDx1aW50MzJfdD4gaW5kZXggPSBwcm9wZXJ0
eU5hbWUuYXNJbmRleCgpKSB7Ci0gICAgICAgIHB1dEJ5SW5kZXgodGhpc09iamVjdCwgZXhlYywg
aW5kZXgudmFsdWUoKSwgdmFsdWUsIHNsb3QuaXNTdHJpY3RNb2RlKCkpOworICAgIHVuc2lnbmVk
IGkgPSBwcm9wZXJ0eU5hbWUuYXNJbmRleCgpOworICAgIGlmIChpICE9IFByb3BlcnR5TmFtZTo6
Tm90QW5JbmRleCkgeworICAgICAgICBwdXRCeUluZGV4KHRoaXNPYmplY3QsIGV4ZWMsIGksIHZh
bHVlLCBzbG90LmlzU3RyaWN0TW9kZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAK
QEAgLTExOTcsOCArMTE5OCw5IEBAIHZvaWQgSlNPYmplY3Q6OnB1dERpcmVjdEFjY2Vzc29yKEV4
ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWCiB7CiAgICAgQVNT
RVJUKHZhbHVlLmlzR2V0dGVyU2V0dGVyKCkgJiYgKGF0dHJpYnV0ZXMgJiBBY2Nlc3NvcikpOwog
Ci0gICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4
KCkpIHsKLSAgICAgICAgcHV0RGlyZWN0SW5kZXgoZXhlYywgaW5kZXgudmFsdWUoKSwgdmFsdWUs
IGF0dHJpYnV0ZXMsIFB1dERpcmVjdEluZGV4TGlrZVB1dERpcmVjdCk7CisgICAgdW5zaWduZWQg
aW5kZXggPSBwcm9wZXJ0eU5hbWUuYXNJbmRleCgpOworICAgIGlmIChpbmRleCAhPSBQcm9wZXJ0
eU5hbWU6Ok5vdEFuSW5kZXgpIHsKKyAgICAgICAgcHV0RGlyZWN0SW5kZXgoZXhlYywgaW5kZXgs
IHZhbHVlLCBhdHRyaWJ1dGVzLCBQdXREaXJlY3RJbmRleExpa2VQdXREaXJlY3QpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC0xMjA3LDcgKzEyMDksNyBAQCB2b2lkIEpTT2JqZWN0Ojpw
dXREaXJlY3RBY2Nlc3NvcihFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUsIEpTVgogCiB2b2lkIEpTT2JqZWN0OjpwdXREaXJlY3RDdXN0b21BY2Nlc3NvcihWTSYgdm0s
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJp
YnV0ZXMpCiB7Ci0gICAgQVNTRVJUKCFwcm9wZXJ0eU5hbWUuYXNJbmRleCgpKTsKKyAgICBBU1NF
UlQocHJvcGVydHlOYW1lLmFzSW5kZXgoKSA9PSBQcm9wZXJ0eU5hbWU6Ok5vdEFuSW5kZXgpOwog
CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3QodGhpcyk7CiAgICAgcHV0RGlyZWN0SW50ZXJuYWw8
UHV0TW9kZURlZmluZU93blByb3BlcnR5Pih2bSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgYXR0cmli
dXRlcywgc2xvdCk7CkBAIC0xMjU1LDggKzEyNTcsOSBAQCBib29sIEpTT2JqZWN0OjpkZWxldGVQ
cm9wZXJ0eShKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3Bl
cgogewogICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTT2JqZWN0Kj4oY2VsbCk7
CiAgICAgCi0gICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHByb3BlcnR5TmFtZS5h
c0luZGV4KCkpCi0gICAgICAgIHJldHVybiB0aGlzT2JqZWN0LT5tZXRob2RUYWJsZShleGVjLT52
bSgpKS0+ZGVsZXRlUHJvcGVydHlCeUluZGV4KHRoaXNPYmplY3QsIGV4ZWMsIGluZGV4LnZhbHVl
KCkpOworICAgIHVuc2lnbmVkIGkgPSBwcm9wZXJ0eU5hbWUuYXNJbmRleCgpOworICAgIGlmIChp
ICE9IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRleCkKKyAgICAgICAgcmV0dXJuIHRoaXNPYmplY3Qt
Pm1ldGhvZFRhYmxlKGV4ZWMtPnZtKCkpLT5kZWxldGVQcm9wZXJ0eUJ5SW5kZXgodGhpc09iamVj
dCwgZXhlYywgaSk7CiAKICAgICBpZiAoIXRoaXNPYmplY3QtPnN0YXRpY0Z1bmN0aW9uc1JlaWZp
ZWQoKSkKICAgICAgICAgdGhpc09iamVjdC0+cmVpZnlTdGF0aWNGdW5jdGlvbnNGb3JEZWxldGUo
ZXhlYyk7CkBAIC0yNDk5LDEwICsyNTAyLDExIEBAIHN0YXRpYyBib29sIHB1dERlc2NyaXB0b3Io
RXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGFyZ2V0LCBQcm9wZXJ0eU5hbWUgcHJvcGVyCiAK
IHZvaWQgSlNPYmplY3Q6OnB1dERpcmVjdE1heUJlSW5kZXgoRXhlY1N0YXRlKiBleGVjLCBQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChPcHRpb25h
bDx1aW50MzJfdD4gaW5kZXggPSBwcm9wZXJ0eU5hbWUuYXNJbmRleCgpKQotICAgICAgICBwdXRE
aXJlY3RJbmRleChleGVjLCBpbmRleC52YWx1ZSgpLCB2YWx1ZSk7Ci0gICAgZWxzZQorICAgIHVu
c2lnbmVkIGFzSW5kZXggPSBwcm9wZXJ0eU5hbWUuYXNJbmRleCgpOworICAgIGlmIChhc0luZGV4
ID09IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRleCkKICAgICAgICAgcHV0RGlyZWN0KGV4ZWMtPnZt
KCksIHByb3BlcnR5TmFtZSwgdmFsdWUpOworICAgIGVsc2UKKyAgICAgICAgcHV0RGlyZWN0SW5k
ZXgoZXhlYywgYXNJbmRleCwgdmFsdWUpOwogfQogCiBjbGFzcyBEZWZpbmVPd25Qcm9wZXJ0eVNj
b3BlIHsKQEAgLTI2NTUsMTQgKzI2NTksMTUgQEAgYm9vbCBKU09iamVjdDo6ZGVmaW5lT3duTm9u
SW5kZXhQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU4KIGJv
b2wgSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0
ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlEZXNjcmlw
dG9yJiBkZXNjcmlwdG9yLCBib29sIHRocm93RXhjZXB0aW9uKQogewogICAgIC8vIElmIGl0J3Mg
YW4gYXJyYXkgaW5kZXgsIHRoZW4gdXNlIHRoZSBpbmRleGVkIHByb3BlcnR5IHN0b3JhZ2UuCi0g
ICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCkp
IHsKKyAgICB1bnNpZ25lZCBpbmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7CisgICAgaWYg
KGluZGV4ICE9IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRleCkgewogICAgICAgICAvLyBjLiBMZXQg
c3VjY2VlZGVkIGJlIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0aGUgZGVmYXVsdCBbW0RlZmluZU93
blByb3BlcnR5XV0gaW50ZXJuYWwgbWV0aG9kICg4LjEyLjkpIG9uIEEgcGFzc2luZyBQLCBEZXNj
LCBhbmQgZmFsc2UgYXMgYXJndW1lbnRzLgogICAgICAgICAvLyBkLiBSZWplY3QgaWYgc3VjY2Vl
ZGVkIGlzIGZhbHNlLgogICAgICAgICAvLyBlLiBJZiBpbmRleCA+PSBvbGRMZW4KICAgICAgICAg
Ly8gZS5pLiBTZXQgb2xkTGVuRGVzYy5bW1ZhbHVlXV0gdG8gaW5kZXggKyAxLgogICAgICAgICAv
LyBlLmlpLiBDYWxsIHRoZSBkZWZhdWx0IFtbRGVmaW5lT3duUHJvcGVydHldXSBpbnRlcm5hbCBt
ZXRob2QgKDguMTIuOSkgb24gQSBwYXNzaW5nICJsZW5ndGgiLCBvbGRMZW5EZXNjLCBhbmQgZmFs
c2UgYXMgYXJndW1lbnRzLiBUaGlzIGNhbGwgd2lsbCBhbHdheXMgcmV0dXJuIHRydWUuCiAgICAg
ICAgIC8vIGYuIFJldHVybiB0cnVlLgotICAgICAgICByZXR1cm4gb2JqZWN0LT5kZWZpbmVPd25J
bmRleGVkUHJvcGVydHkoZXhlYywgaW5kZXgudmFsdWUoKSwgZGVzY3JpcHRvciwgdGhyb3dFeGNl
cHRpb24pOworICAgICAgICByZXR1cm4gb2JqZWN0LT5kZWZpbmVPd25JbmRleGVkUHJvcGVydHko
ZXhlYywgaW5kZXgsIGRlc2NyaXB0b3IsIHRocm93RXhjZXB0aW9uKTsKICAgICB9CiAgICAgCiAg
ICAgcmV0dXJuIG9iamVjdC0+ZGVmaW5lT3duTm9uSW5kZXhQcm9wZXJ0eShleGVjLCBwcm9wZXJ0
eU5hbWUsIGRlc2NyaXB0b3IsIHRocm93RXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09iamVjdC5oCmluZGV4IGIwODczZGM1YmI5MDgxMDJkZjY4MmFlZDgyOGZlYmU2
MGRmYTg2NmQuLmM5NzIxMzk0YjRhOGYwMjY1NmU5NTZmNDc3OWQ4ZDAzNzA0OWRmYzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtMTI0NCw4ICsxMjQ0LDkg
QEAgQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmpl
Y3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGUKICAgICBTdHJ1Y3R1cmUmIHN0cnVjdHVyZSA9ICpv
YmplY3QtPnN0cnVjdHVyZSh2bSk7CiAgICAgaWYgKG9iamVjdC0+aW5saW5lR2V0T3duUHJvcGVy
dHlTbG90KHZtLCBzdHJ1Y3R1cmUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCiAgICAgICAgIHJldHVy
biB0cnVlOwotICAgIGlmIChPcHRpb25hbDx1aW50MzJfdD4gaW5kZXggPSBwcm9wZXJ0eU5hbWUu
YXNJbmRleCgpKQotICAgICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmpl
Y3QsIGV4ZWMsIGluZGV4LnZhbHVlKCksIHNsb3QpOworICAgIHVuc2lnbmVkIGluZGV4ID0gcHJv
cGVydHlOYW1lLmFzSW5kZXgoKTsKKyAgICBpZiAoaW5kZXggIT0gUHJvcGVydHlOYW1lOjpOb3RB
bkluZGV4KQorICAgICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3Qs
IGV4ZWMsIGluZGV4LCBzbG90KTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTEyNzMsOCAr
MTI3NCw5IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBKU09iamVjdDo6Z2V0UHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlCiAgICAgICAgIG9iamVjdCA9IGFzT2Jq
ZWN0KHByb3RvdHlwZSk7CiAgICAgfQogCi0gICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90PiBpbmRl
eCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCkpCi0gICAgICAgIHJldHVybiBnZXRQcm9wZXJ0eVNs
b3QoZXhlYywgaW5kZXgudmFsdWUoKSwgc2xvdCk7CisgICAgdW5zaWduZWQgaW5kZXggPSBwcm9w
ZXJ0eU5hbWUuYXNJbmRleCgpOworICAgIGlmIChpbmRleCAhPSBQcm9wZXJ0eU5hbWU6Ok5vdEFu
SW5kZXgpCisgICAgICAgIHJldHVybiBnZXRQcm9wZXJ0eVNsb3QoZXhlYywgaW5kZXgsIHNsb3Qp
OwogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMTMxOCw3ICsxMzIwLDcgQEAgaW5saW5lIGJv
b2wgSlNPYmplY3Q6OnB1dERpcmVjdEludGVybmFsKFZNJiB2bSwgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSwgSlNWYWwKICAgICBBU1NFUlQodmFsdWUpOwogICAgIEFTU0VSVCh2YWx1ZS5pc0dl
dHRlclNldHRlcigpID09ICEhKGF0dHJpYnV0ZXMgJiBBY2Nlc3NvcikpOwogICAgIEFTU0VSVCgh
SGVhcDo6aGVhcCh2YWx1ZSkgfHwgSGVhcDo6aGVhcCh2YWx1ZSkgPT0gSGVhcDo6aGVhcCh0aGlz
KSk7Ci0gICAgQVNTRVJUKCFwcm9wZXJ0eU5hbWUuYXNJbmRleCgpKTsKKyAgICBBU1NFUlQocHJv
cGVydHlOYW1lLmFzSW5kZXgoKSA9PSBQcm9wZXJ0eU5hbWU6Ok5vdEFuSW5kZXgpOwogCiAgICAg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSB0aGlzLT5zdHJ1Y3R1cmUodm0pOwogICAgIGlmIChzdHJ1
Y3R1cmUtPmlzRGljdGlvbmFyeSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1N0cmluZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1N0cmluZy5jcHAKaW5kZXggMDA3ODU5NGQ2MTc2NWVmOTVlMWZjNzUzODAxNzBkZjRjZDBmYTJj
MC4uM2VhMmI3ZTFkNTc3MzRiNmVjMTBjMzlkZmQwZDQ4ZTI5MmY4MWMyNCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcApAQCAtNDI1LDkgKzQyNSwxMCBAQCBi
b29sIEpTU3RyaW5nOjpnZXRTdHJpbmdQcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVj
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAg
Ci0gICAgT3B0aW9uYWw8dWludDMyX3Q+IGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKTsK
LSAgICBpZiAoaW5kZXggJiYgaW5kZXgudmFsdWUoKSA8IG1fbGVuZ3RoKSB7Ci0gICAgICAgIGRl
c2NyaXB0b3Iuc2V0RGVzY3JpcHRvcihnZXRJbmRleChleGVjLCBpbmRleC52YWx1ZSgpKSwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KTsKKyAgICB1bnNpZ25lZCBpID0gcHJvcGVydHlOYW1lLmFzSW5k
ZXgoKTsKKyAgICBpZiAoaSA8IG1fbGVuZ3RoKSB7CisgICAgICAgIEFTU0VSVChpICE9IFByb3Bl
cnR5TmFtZTo6Tm90QW5JbmRleCk7IC8vIE5vIG5lZWQgZm9yIGFuIGV4cGxpY2l0IGNoZWNrLCB0
aGUgYWJvdmUgdGVzdCB3b3VsZCBhbHdheXMgZmFpbCEKKyAgICAgICAgZGVzY3JpcHRvci5zZXRE
ZXNjcmlwdG9yKGdldEluZGV4KGV4ZWMsIGkpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNTdHJpbmcuaAppbmRleCA2NjVjMDllYTYyN2RlMmMxYzQxNGNiY2Y2ODExNTJjODUyZjYy
ZDBjLi4wNTc1NDQ3NmZkMTU0YWQ1NjNhODkwMjQ0ZGVkYzJmOTZmM2UyZDEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKQEAgLTYyNiw5ICs2MjYsMTAgQEAgQUxX
QVlTX0lOTElORSBib29sIEpTU3RyaW5nOjpnZXRTdHJpbmdQcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWUKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAg
T3B0aW9uYWw8dWludDMyX3Q+IGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKTsKLSAgICBp
ZiAoaW5kZXggJiYgaW5kZXgudmFsdWUoKSA8IG1fbGVuZ3RoKSB7Ci0gICAgICAgIHNsb3Quc2V0
VmFsdWUodGhpcywgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCBnZXRJbmRleChleGVjLCBpbmRleC52
YWx1ZSgpKSk7CisgICAgdW5zaWduZWQgaSA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7CisgICAg
aWYgKGkgPCBtX2xlbmd0aCkgeworICAgICAgICBBU1NFUlQoaSAhPSBQcm9wZXJ0eU5hbWU6Ok5v
dEFuSW5kZXgpOyAvLyBObyBuZWVkIGZvciBhbiBleHBsaWNpdCBjaGVjaywgdGhlIGFib3ZlIHRl
c3Qgd291bGQgYWx3YXlzIGZhaWwhCisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpcywgRG9udERl
bGV0ZSB8IFJlYWRPbmx5LCBnZXRJbmRleChleGVjLCBpKSk7CiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0
ZXJhbFBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFy
c2VyLmNwcAppbmRleCBhYWYxNGRkZDA3Mjc1NjUyMDNjMzFjZjg4NjgxNzJjNGFkMTg5NTBmLi5m
NmY1ZmUxNzNjNzA0ZWRlMGY2NTNiNjgzOGUwOTgwNmNhNDQyZWI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmNwcApAQCAtNjQ5LDggKzY0OSw5
IEBAIEpTVmFsdWUgTGl0ZXJhbFBhcnNlcjxDaGFyVHlwZT46OnBhcnNlKFBhcnNlclN0YXRlIGlu
aXRpYWxTdGF0ZSkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBKU09iamVjdCogb2Jq
ZWN0ID0gYXNPYmplY3Qob2JqZWN0U3RhY2subGFzdCgpKTsKICAgICAgICAgICAgICAgICBQcm9w
ZXJ0eU5hbWUgaWRlbnQgPSBpZGVudGlmaWVyU3RhY2subGFzdCgpOwotICAgICAgICAgICAgICAg
IGlmIChPcHRpb25hbDx1aW50MzJfdD4gaW5kZXggPSBpZGVudC5hc0luZGV4KCkpCi0gICAgICAg
ICAgICAgICAgICAgIG9iamVjdC0+cHV0RGlyZWN0SW5kZXgobV9leGVjLCBpbmRleC52YWx1ZSgp
LCBsYXN0VmFsdWUpOworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGkgPSBpZGVudC5hc0luZGV4
KCk7CisgICAgICAgICAgICAgICAgaWYgKGkgIT0gUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4KQor
ICAgICAgICAgICAgICAgICAgICBvYmplY3QtPnB1dERpcmVjdEluZGV4KG1fZXhlYywgaSwgbGFz
dFZhbHVlKTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIG9iamVj
dC0+cHV0RGlyZWN0KG1fZXhlYy0+dm0oKSwgaWRlbnQsIGxhc3RWYWx1ZSk7CiAgICAgICAgICAg
ICAgICAgaWRlbnRpZmllclN0YWNrLnJlbW92ZUxhc3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lLmgKaW5kZXggMzVlYzU5NTVhMzc3NGQwYjRlN2FmOWI0
MWFmOTAyMmI1YzVkYTJmYS4uMjJhOGZmODUwZmUwNGI2ZWQ0MDBhMWVkZmRiZTJiYmZkZGFkMmU1
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1l
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lLmgKQEAg
LTI4LDUxICsyOCw0OCBAQAogCiAjaW5jbHVkZSAiSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlBy
aXZhdGVOYW1lLmgiCi0jaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAKIG5hbWVzcGFjZSBKU0Mg
ewogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci1BTFdBWVNfSU5MSU5FIE9wdGlvbmFs
PHVpbnQzMl90PiB0b1VJbnQzMkZyb21DaGFyYWN0ZXJzKGNvbnN0IENoYXJUeXBlKiBjaGFyYWN0
ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCitBTFdBWVNfSU5MSU5FIHVpbnQzMl90IHRvVUludDMyRnJv
bUNoYXJhY3RlcnMoY29uc3QgQ2hhclR5cGUqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkK
IHsKICAgICAvLyBBbiBlbXB0eSBzdHJpbmcgaXMgbm90IGEgbnVtYmVyLgogICAgIGlmICghbGVu
Z3RoKQotICAgICAgICByZXR1cm4gTnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIFVJTlRfTUFYOwog
CiAgICAgLy8gR2V0IHRoZSBmaXJzdCBjaGFyYWN0ZXIsIHR1cm5pbmcgaXQgaW50byBhIGRpZ2l0
LgogICAgIHVpbnQzMl90IHZhbHVlID0gY2hhcmFjdGVyc1swXSAtICcwJzsKICAgICBpZiAodmFs
dWUgPiA5KQotICAgICAgICByZXR1cm4gTnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIFVJTlRfTUFY
OwogICAgIAogICAgIC8vIENoZWNrIGZvciBsZWFkaW5nIHplcm9zLiBJZiB0aGUgZmlyc3QgY2hh
cmFjaGVyIGlzIDAsIHRoZW4gdGhlCiAgICAgLy8gbGVuZ3RoIG9mIHRoZSBzdHJpbmcgbXVzdCBi
ZSBvbmUgLSBlLmcuICIwNDIiIGlzIG5vdCBlcXVhbCB0byAiNDIiLgogICAgIGlmICghdmFsdWUg
JiYgbGVuZ3RoID4gMSkKLSAgICAgICAgcmV0dXJuIE51bGxvcHQ7CisgICAgICAgIHJldHVybiBV
SU5UX01BWDsKICAgICAKICAgICB3aGlsZSAoLS1sZW5ndGgpIHsKICAgICAgICAgLy8gTXVsdGlw
bHkgdmFsdWUgYnkgMTAsIGNoZWNraW5nIGZvciBvdmVyZmxvdyBvdXQgb2YgMzIgYml0cy4KICAg
ICAgICAgaWYgKHZhbHVlID4gMHhGRkZGRkZGRlUgLyAxMCkKLSAgICAgICAgICAgIHJldHVybiBO
dWxsb3B0OworICAgICAgICAgICAgcmV0dXJuIFVJTlRfTUFYOwogICAgICAgICB2YWx1ZSAqPSAx
MDsKICAgICAgICAgCiAgICAgICAgIC8vIEdldCB0aGUgbmV4dCBjaGFyYWN0ZXIsIHR1cm5pbmcg
aXQgaW50byBhIGRpZ2l0LgogICAgICAgICB1aW50MzJfdCBuZXdWYWx1ZSA9ICooKytjaGFyYWN0
ZXJzKSAtICcwJzsKICAgICAgICAgaWYgKG5ld1ZhbHVlID4gOSkKLSAgICAgICAgICAgIHJldHVy
biBOdWxsb3B0OworICAgICAgICAgICAgcmV0dXJuIFVJTlRfTUFYOwogICAgICAgICAKICAgICAg
ICAgLy8gQWRkIGluIHRoZSBvbGQgdmFsdWUsIGNoZWNraW5nIGZvciBvdmVyZmxvdyBvdXQgb2Yg
MzIgYml0cy4KICAgICAgICAgbmV3VmFsdWUgKz0gdmFsdWU7CiAgICAgICAgIGlmIChuZXdWYWx1
ZSA8IHZhbHVlKQotICAgICAgICAgICAgcmV0dXJuIE51bGxvcHQ7CisgICAgICAgICAgICByZXR1
cm4gVUlOVF9NQVg7CiAgICAgICAgIHZhbHVlID0gbmV3VmFsdWU7CiAgICAgfQotCi0gICAgaWYg
KHZhbHVlID09IFVJTlRfTUFYKQotICAgICAgICByZXR1cm4gTnVsbG9wdDsKKyAgICAKICAgICBy
ZXR1cm4gdmFsdWU7CiB9CiAKLUFMV0FZU19JTkxJTkUgT3B0aW9uYWw8dWludDMyX3Q+IHRvVUlu
dDMyRnJvbVN0cmluZ0ltcGwoU3RyaW5nSW1wbCogaW1wbCkKK0FMV0FZU19JTkxJTkUgdWludDMy
X3QgdG9VSW50MzJGcm9tU3RyaW5nSW1wbChTdHJpbmdJbXBsKiBpbXBsKQogewogICAgIGlmIChp
bXBsLT5pczhCaXQoKSkKICAgICAgICAgcmV0dXJuIHRvVUludDMyRnJvbUNoYXJhY3RlcnMoaW1w
bC0+Y2hhcmFjdGVyczgoKSwgaW1wbC0+bGVuZ3RoKCkpOwpAQCAtMTEyLDExICsxMDksMTEgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IE5vdEFuSW5kZXggPSBVSU5UX01B
WDsKIAotICAgIE9wdGlvbmFsPHVpbnQzMl90PiBhc0luZGV4KCkKKyAgICB1aW50MzJfdCBhc0lu
ZGV4KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBtX2ltcGwgPyB0b1VJbnQzMkZyb21TdHJpbmdJ
bXBsKG1faW1wbCkgOiBOdWxsb3B0OworICAgICAgICByZXR1cm4gbV9pbXBsID8gdG9VSW50MzJG
cm9tU3RyaW5nSW1wbChtX2ltcGwpIDogTm90QW5JbmRleDsKICAgICB9Ci0KKyAgICAKICAgICB2
b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICB7CiAgICAgICAgIGlmIChtX2lt
cGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU5h
bWVBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU5hbWVB
cnJheS5jcHAKaW5kZXggYzI0MjE3YTg4MDYxYWNkMzIwN2ZjZjIzOTJlODA4NGRkZWFmYWU0YS4u
NDQ3NWI4OThhOTc0OTc3Y2U2OGU0NzU5ZGNhZDA2YmQ2YTA0ODM3MyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TmFtZUFycmF5LmNwcApAQCAtMzMs
OCArMzMsOCBAQCB2b2lkIFByb3BlcnR5TmFtZUFycmF5OjphZGQoU3RyaW5nSW1wbCogaWRlbnRp
ZmllcikKIHsKICAgICBBU1NFUlQoIWlkZW50aWZpZXIgfHwgaWRlbnRpZmllciA9PSBTdHJpbmdJ
bXBsOjplbXB0eSgpIHx8IGlkZW50aWZpZXItPmlzQXRvbWljKCkpOwogICAgIGlmICghQVNTRVJU
X0RJU0FCTEVEKSB7Ci0gICAgICAgIE9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IFByb3BlcnR5
TmFtZShJZGVudGlmaWVyKG1fdm0sIGlkZW50aWZpZXIpKS5hc0luZGV4KCk7Ci0gICAgICAgIEFT
U0VSVF9VTlVTRUQoaW5kZXgsICFpbmRleCB8fCBpbmRleC52YWx1ZSgpID49IG1fcHJldmlvdXNs
eUVudW1lcmF0ZWRMZW5ndGgpOworICAgICAgICB1aW50MzJfdCBpbmRleCA9IFByb3BlcnR5TmFt
ZShJZGVudGlmaWVyKG1fdm0sIGlkZW50aWZpZXIpKS5hc0luZGV4KCk7CisgICAgICAgIEFTU0VS
VF9VTlVTRUQoaW5kZXgsIGluZGV4ID09IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRleCB8fCBpbmRl
eCA+PSBtX3ByZXZpb3VzbHlFbnVtZXJhdGVkTGVuZ3RoKTsKICAgICB9CiAKICAgICBpZiAobV9h
bHRlcm5hdGVTZXQgJiYgbV9hbHRlcm5hdGVTZXQtPmNvbnRhaW5zKGlkZW50aWZpZXIpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKaW5kZXggNTU4
NDc5MjY5M2NiZDM1NDE1NDAwNzYzYTlmY2M3ODY4N2JjOTQ3OS4uNTAwMWJjYzRlMWI3ZTM3OTNl
ZDI2ZTE0MjBhODBhNjA0NjhlMTNjNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdPYmplY3QuY3BwCkBAIC0xMjgsOCArMTI4LDkgQEAgYm9vbCBTdHJpbmdPYmpl
Y3Q6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0
eU5hbWUgcHIKICAgICBTdHJpbmdPYmplY3QqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8U3RyaW5nT2Jq
ZWN0Kj4oY2VsbCk7CiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVz
KCkubGVuZ3RoKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgT3B0aW9uYWw8dWludDMyX3Q+
IGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKTsKLSAgICBpZiAoaW5kZXggJiYgdGhpc09i
amVjdC0+aW50ZXJuYWxWYWx1ZSgpLT5jYW5HZXRJbmRleChpbmRleC52YWx1ZSgpKSkgeworICAg
IHVuc2lnbmVkIGkgPSBwcm9wZXJ0eU5hbWUuYXNJbmRleCgpOworICAgIGlmICh0aGlzT2JqZWN0
LT5pbnRlcm5hbFZhbHVlKCktPmNhbkdldEluZGV4KGkpKSB7CisgICAgICAgIEFTU0VSVChpICE9
IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRleCk7IC8vIE5vIG5lZWQgZm9yIGFuIGV4cGxpY2l0IGNo
ZWNrLCB0aGUgYWJvdmUgdGVzdCB3b3VsZCBhbHdheXMgZmFpbCEKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KICAgICByZXR1cm4gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXNPYmpl
Y3QsIGV4ZWMsIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlLmNwcAppbmRleCAxMWRhNGFkZWI5MmU1YzIzMDEyMmZhMGY2OTc4ZTdlNWM3ZTI5
NzA1Li44NmQwYjZmYmRhZWNlMzgzMmNjMzYyZmI4MzQwOThkYmNlZTA4M2E0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKQEAgLTEwMTAsNyArMTAxMCw4
IEBAIHZvaWQgU3RydWN0dXJlOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0
b3ImIHZpc2l0b3IpCiAKIGJvb2wgU3RydWN0dXJlOjpwcm90b3R5cGVDaGFpbk1heUludGVyY2Vw
dFN0b3JlVG8oVk0mIHZtLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewotICAgIGlmIChw
cm9wZXJ0eU5hbWUuYXNJbmRleCgpKQorICAgIHVuc2lnbmVkIGkgPSBwcm9wZXJ0eU5hbWUuYXNJ
bmRleCgpOworICAgIGlmIChpICE9IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRleCkKICAgICAgICAg
cmV0dXJuIGFueU9iamVjdEluQ2hhaW5NYXlJbnRlcmNlcHRJbmRleGVkQWNjZXNzZXMoKTsKICAg
ICAKICAgICBmb3IgKFN0cnVjdHVyZSogY3VycmVudCA9IHRoaXM7IDspIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCBmM2E0Mjky
N2Y4YjlkZGY0NDAxMzc4NzBhZjRmNzEwOTI2MTU1ZmMzLi4wMjYwOGZhNmU0ZTJmNTcxZTRiMzcx
ZTY4MTlmODkzMjNhODkyYTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC0yMTQsMTAgKzIxNCwxMSBAQCBib29sIEpTRE9NV2lu
ZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVj
LCBQcm9wZXJ0eQogICAgIC8vIFdlIG5lZWQgdG8gdGVzdCB0aGUgY29ycmVjdCBwcmlvcml0eSBv
cmRlci4KIAogICAgIC8vIGFsbG93IHdpbmRvd1sxXSBvciBwYXJlbnRbMV0gZXRjLiAoIzU2OTgz
KQotICAgIE9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7
Ci0gICAgaWYgKGluZGV4ICYmIGluZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT5pbXBsKCkuZnJh
bWUoKS0+dHJlZSgpLnNjb3BlZENoaWxkQ291bnQoKSkgeworICAgIHVuc2lnbmVkIGkgPSBwcm9w
ZXJ0eU5hbWUuYXNJbmRleCgpOworICAgIGlmIChpIDwgdGhpc09iamVjdC0+aW1wbCgpLmZyYW1l
KCktPnRyZWUoKS5zY29wZWRDaGlsZENvdW50KCkpIHsKKyAgICAgICAgQVNTRVJUKGkgIT0gUHJv
cGVydHlOYW1lOjpOb3RBbkluZGV4KTsKICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0
LCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSwKLSAgICAgICAgICAgIHRvSlMoZXhl
YywgdGhpc09iamVjdC0+aW1wbCgpLmZyYW1lKCktPnRyZWUoKS5zY29wZWRDaGlsZChpbmRleC52
YWx1ZSgpKS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKTsKKyAgICAgICAgICAgIHRvSlMoZXhl
YywgdGhpc09iamVjdC0+aW1wbCgpLmZyYW1lKCktPnRyZWUoKS5zY29wZWRDaGlsZChpKS0+ZG9j
dW1lbnQoKS0+ZG9tV2luZG93KCkpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9u
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEFsbENvbGxlY3Rp
b25DdXN0b20uY3BwCmluZGV4IDE3M2VjMmZkMzgyY2VjODRiN2M2YjdmN2RjOTBjYTE2OTA5NTc1
YWIuLjgxMjI1MDdiNGZiYzY4ZTEyM2Y2NzJmYTMxMDg4YTUyY2E3MGU5NjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEFsbENvbGxlY3Rpb25DdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEFsbENvbGxlY3Rpb25DdXN0
b20uY3BwCkBAIC02NSw4ICs2NSw5IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxIVE1MQWxsQ29sbGVjdGlvbihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKGV4ZWMt
PmFyZ3VtZW50Q291bnQoKSA9PSAxKSB7CiAgICAgICAgIC8vIFN1cHBvcnQgZm9yIGRvY3VtZW50
LmFsbCg8aW5kZXg+KSBldGMuCiAgICAgICAgIFN0cmluZyBzdHJpbmcgPSBleGVjLT5hcmd1bWVu
dCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7Ci0gICAgICAgIGlmIChPcHRpb25hbDx1
aW50MzJfdD4gaW5kZXggPSB0b1VJbnQzMkZyb21TdHJpbmdJbXBsKHN0cmluZy5pbXBsKCkpKQot
ICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0b0pTKGV4ZWMsIGpzQ29sbGVjdGlv
bi0+Z2xvYmFsT2JqZWN0KCksIGNvbGxlY3Rpb24uaXRlbShpbmRleC52YWx1ZSgpKSkpOworICAg
ICAgICB1bnNpZ25lZCBpbmRleCA9IHRvVUludDMyRnJvbVN0cmluZ0ltcGwoc3RyaW5nLmltcGwo
KSk7CisgICAgICAgIGlmIChpbmRleCAhPSBQcm9wZXJ0eU5hbWU6Ok5vdEFuSW5kZXgpCisgICAg
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRvSlMoZXhlYywganNDb2xsZWN0aW9uLT5n
bG9iYWxPYmplY3QoKSwgY29sbGVjdGlvbi5pdGVtKGluZGV4KSkpOwogCiAgICAgICAgIC8vIFN1
cHBvcnQgZm9yIGRvY3VtZW50LmltYWdlcygnPG5hbWU+JykgZXRjLgogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKG5hbWVkSXRlbXMoZXhlYywganNDb2xsZWN0aW9uLCBJZGVudGlmaWVy
KGV4ZWMsIHN0cmluZykpKTsKQEAgLTc0LDggKzc1LDkgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY2FsbEhUTUxBbGxDb2xsZWN0aW9uKEV4ZWNTdGF0ZSogZXhlYykKIAog
ICAgIC8vIFRoZSBzZWNvbmQgYXJnLCBpZiBzZXQsIGlzIHRoZSBpbmRleCBvZiB0aGUgaXRlbSB3
ZSB3YW50CiAgICAgU3RyaW5nIHN0cmluZyA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4
ZWMpLT52YWx1ZShleGVjKTsKLSAgICBpZiAoT3B0aW9uYWw8dWludDMyX3Q+IGluZGV4ID0gdG9V
SW50MzJGcm9tU3RyaW5nSW1wbChleGVjLT5hcmd1bWVudCgxKS50b1dURlN0cmluZyhleGVjKS5p
bXBsKCkpKSB7Ci0gICAgICAgIGlmIChhdXRvKiBpdGVtID0gY29sbGVjdGlvbi5uYW1lZEl0ZW1X
aXRoSW5kZXgoc3RyaW5nLCBpbmRleC52YWx1ZSgpKSkKKyAgICB1bnNpZ25lZCBpbmRleCA9IHRv
VUludDMyRnJvbVN0cmluZ0ltcGwoZXhlYy0+YXJndW1lbnQoMSkudG9XVEZTdHJpbmcoZXhlYyku
aW1wbCgpKTsKKyAgICBpZiAoaW5kZXggIT0gUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4KSB7Cisg
ICAgICAgIGlmIChhdXRvKiBpdGVtID0gY29sbGVjdGlvbi5uYW1lZEl0ZW1XaXRoSW5kZXgoc3Ry
aW5nLCBpbmRleCkpCiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRvSlMoZXhl
YywganNDb2xsZWN0aW9uLT5nbG9iYWxPYmplY3QoKSwgaXRlbSkpOwogICAgIH0KIApAQCAtMTAx
LDggKzEwMyw5IEBAIEVuY29kZWRKU1ZhbHVlIEpTSFRNTEFsbENvbGxlY3Rpb246Om5hbWVHZXR0
ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhCiAKIEpTVmFsdWUgSlNIVE1MQWxs
Q29sbGVjdGlvbjo6aXRlbShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgaWYgKE9wdGlvbmFsPHVp
bnQzMl90PiBpbmRleCA9IHRvVUludDMyRnJvbVN0cmluZ0ltcGwoZXhlYy0+YXJndW1lbnQoMCku
dG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpLmltcGwoKSkpCi0gICAgICAgIHJldHVybiB0b0pT
KGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBpbXBsKCkuaXRlbShpbmRleC52YWx1ZSgpKSk7CisgICAg
dWludDMyX3QgaW5kZXggPSB0b1VJbnQzMkZyb21TdHJpbmdJbXBsKGV4ZWMtPmFyZ3VtZW50KDAp
LnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKS5pbXBsKCkpOworICAgIGlmIChpbmRleCAhPSBQ
cm9wZXJ0eU5hbWU6Ok5vdEFuSW5kZXgpCisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2Jh
bE9iamVjdCgpLCBpbXBsKCkuaXRlbShpbmRleCkpOwogICAgIHJldHVybiBuYW1lZEl0ZW1zKGV4
ZWMsIHRoaXMsIElkZW50aWZpZXIoZXhlYywgZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhl
YyktPnZhbHVlKGV4ZWMpKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMmFkZDM2Y2NhZDQ5MDIxNmUxZWIwMDM5
YmQ2YTE4NGQyMjdlMGIwOS4uZDYxOTJhMDcxZjkwYmNmZDRiNGU1MzBkYzMwNmM3MDFiYWM5YmY3
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KQEAgLTM2MCwxNiArMzYwLDE1IEBAIHN1YiBHZW5lcmF0ZUdldE93blByb3BlcnR5
U2xvdEJvZHkKICAgICB9CiAKICAgICBpZiAoJGluZGV4ZWRHZXR0ZXJGdW5jdGlvbikgewotICAg
ICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIE9wdGlvbmFsPHVpbnQzMl90
PiBvcHRpb25hbEluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKTtcbiIpOworICAgICAgICBw
dXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIHVuc2lnbmVkIGluZGV4ID0gcHJvcGVy
dHlOYW1lLmFzSW5kZXgoKTtcbiIpOwogCiAgICAgICAgICMgSWYgdGhlIGl0ZW0gZnVuY3Rpb24g
cmV0dXJucyBhIHN0cmluZyB0aGVuIHdlIGxldCB0aGUgVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdB
cyBoYW5kbGUgdGhlIGNhc2VzCiAgICAgICAgICMgd2hlcmUgdGhlIGluZGV4IGlzIG91dCBvZiBy
YW5nZS4KICAgICAgICAgaWYgKCRpbmRleGVkR2V0dGVyRnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlw
ZSBlcSAiRE9NU3RyaW5nIikgewotICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90
SW1wbCwgIiAgICBpZiAob3B0aW9uYWxJbmRleCkge1xuIik7CisgICAgICAgICAgICBwdXNoKEBn
ZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChpbmRleCAhPSBQcm9wZXJ0eU5hbWU6Ok5v
dEFuSW5kZXgpIHtcbiIpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHVzaChAZ2V0
T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICBpZiAob3B0aW9uYWxJbmRleCAmJiBvcHRpb25hbElu
ZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT5pbXBsKCkubGVuZ3RoKCkpIHtcbiIpOworICAgICAg
ICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICBpZiAoaW5kZXggIT0gUHJv
cGVydHlOYW1lOjpOb3RBbkluZGV4ICYmIGluZGV4IDwgdGhpc09iamVjdC0+aW1wbCgpLmxlbmd0
aCgpKSB7XG4iKTsKICAgICAgICAgfQotICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJ
bXBsLCAiICAgICAgICB1bnNpZ25lZCBpbmRleCA9IG9wdGlvbmFsSW5kZXgudmFsdWUoKTtcbiIp
OwogICAgICAgICAjIEFzc3VtZSB0aGF0IGlmIHRoZXJlJ3MgYSBzZXR0ZXIsIHRoZSBpbmRleCB3
aWxsIGJlIHdyaXRhYmxlCiAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ3VzdG9tSW5kZXhlZFNldHRlciJ9KSB7CiAgICAgICAgICAgICBwdXNoKEBnZXRPd25Q
cm9wZXJ0eVNsb3RJbXBsLCAiICAgICAgICB1bnNpZ25lZCBhdHRyaWJ1dGVzID0gJHtuYW1lc3Bh
Y2VNYXliZX1Eb250RGVsZXRlO1xuIik7CkBAIC0yNDQ5LDggKzI0NDgsOSBAQCBzdWIgR2VuZXJh
dGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtj
bGFzc05hbWV9KiB0aGlzT2JqZWN0ID0ganNDYXN0PCR7Y2xhc3NOYW1lfSo+KGNlbGwpO1xuIik7
CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7XG4iKTsKICAgICAgICAgICAgIGlmICgkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tSW5kZXhlZFNldHRlciJ9KSB7Ci0gICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90
PiBpbmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCkpIHtcbiIpOwotICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICB0aGlzT2JqZWN0LT5pbmRleFNldHRlcihleGVj
LCBpbmRleC52YWx1ZSgpLCB2YWx1ZSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICB1bnNpZ25lZCBpbmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7XG4i
KTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoaW5kZXggIT0g
UHJvcGVydHlOYW1lOjpOb3RBbkluZGV4KSB7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAgICAgdGhpc09iamVjdC0+aW5kZXhTZXR0ZXIoZXhlYywgaW5kZXgs
IHZhbHVlKTtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAg
ICByZXR1cm47XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9
XG4iKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU0Zsb2F0NjRBcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNGbG9hdDY0QXJyYXkuY3BwCmluZGV4IDQxN2YxNjVkZjdl
NzgzZTgwMDg5Y2YyMjA2NTgzMzUxMTZkMmJmZDEuLjFkNTkxODliNDcyMDUxMTcxNzljNjM5YTYw
NWIzMDg2ZWRkYmY2ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU0Zsb2F0NjRBcnJheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTRmxvYXQ2NEFycmF5LmNwcApAQCAtMTc0LDkgKzE3NCw5IEBA
IGJvb2wgSlNGbG9hdDY0QXJyYXk6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0
LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlCiB7CiAgICAgSlNGbG9hdDY0QXJyYXkqIHRoaXNPYmpl
Y3QgPSBqc0Nhc3Q8SlNGbG9hdDY0QXJyYXkqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBPcHRpb25hbDx1aW50MzJfdD4g
aW5kZXggPSBwcm9wZXJ0eU5hbWUuYXNJbmRleCgpOwotICAgIGlmIChpbmRleCAmJiBpbmRleC52
YWx1ZSgpIDwgc3RhdGljX2Nhc3Q8RmxvYXQ2NEFycmF5Kj4odGhpc09iamVjdC0+aW1wbCgpKS0+
bGVuZ3RoKCkpIHsKLSAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCB0aGlzT2JqZWN0
LT5nZXRCeUluZGV4KGV4ZWMsIGluZGV4LnZhbHVlKCkpKTsKKyAgICB1bnNpZ25lZCBpbmRleCA9
IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7CisgICAgaWYgKGluZGV4ICE9IFByb3BlcnR5TmFtZTo6
Tm90QW5JbmRleCAmJiBpbmRleCA8IHN0YXRpY19jYXN0PEZsb2F0NjRBcnJheSo+KHRoaXNPYmpl
Y3QtPmltcGwoKSktPmxlbmd0aCgpKSB7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVj
dCwgdGhpc09iamVjdC0+Z2V0QnlJbmRleChleGVjLCBpbmRleCkpOwogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU0Zsb2F0NjRBcnJh
eSwgQmFzZT4oZXhlYywgZ2V0SlNGbG9hdDY0QXJyYXlUYWJsZShleGVjKSwgdGhpc09iamVjdCwg
cHJvcGVydHlOYW1lLCBzbG90KTsKQEAgLTE4Niw5ICsxODYsOSBAQCBib29sIEpTRmxvYXQ2NEFy
cmF5OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBleGVjLAogewogICAgIEpTRmxvYXQ2NEFycmF5KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTRmxv
YXQ2NEFycmF5Kj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNP
YmplY3QsIGluZm8oKSk7Ci0gICAgT3B0aW9uYWw8dWludDMyX3Q+IGluZGV4ID0gcHJvcGVydHlO
YW1lLmFzSW5kZXgoKTsKLSAgICBpZiAoaW5kZXggJiYgaW5kZXgudmFsdWUoKSA8IHN0YXRpY19j
YXN0PEZsb2F0NjRBcnJheSo+KHRoaXNPYmplY3QtPmltcGwoKSktPmxlbmd0aCgpKSB7Ci0gICAg
ICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcih0aGlzT2JqZWN0LT5nZXRCeUluZGV4KGV4ZWMs
IGluZGV4LnZhbHVlKCkpLCBEb250RGVsZXRlKTsKKyAgICB1bnNpZ25lZCBpbmRleCA9IHByb3Bl
cnR5TmFtZS5hc0luZGV4KCk7CisgICAgaWYgKGluZGV4ICE9IFByb3BlcnR5TmFtZTo6Tm90QW5J
bmRleCAmJiBpbmRleCA8IHN0YXRpY19jYXN0PEZsb2F0NjRBcnJheSo+KHRoaXNPYmplY3QtPmlt
cGwoKSktPmxlbmd0aCgpKSB7CisgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcih0aGlz
T2JqZWN0LT5nZXRCeUluZGV4KGV4ZWMsIGluZGV4KSwgRG9udERlbGV0ZSk7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVEZXNjcmlwdG9yPEpT
RmxvYXQ2NEFycmF5LCBCYXNlPihleGVjLCBnZXRKU0Zsb2F0NjRBcnJheVRhYmxlKGV4ZWMpLCB0
aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwpAQCAtMjE1LDggKzIxNSw5IEBA
IHZvaWQgSlNGbG9hdDY0QXJyYXk6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtCiB7CiAgICAgSlNGbG9hdDY0QXJyYXkqIHRoaXNPYmpl
Y3QgPSBqc0Nhc3Q8SlNGbG9hdDY0QXJyYXkqPihjZWxsKTsKICAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90
PiBpbmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCkpIHsKLSAgICAgICAgdGhpc09iamVjdC0+
aW5kZXhTZXR0ZXIoZXhlYywgaW5kZXgudmFsdWUoKSwgdmFsdWUpOworICAgIHVuc2lnbmVkIGlu
ZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKTsKKyAgICBpZiAoaW5kZXggIT0gUHJvcGVydHlO
YW1lOjpOb3RBbkluZGV4KSB7CisgICAgICAgIHRoaXNPYmplY3QtPmluZGV4U2V0dGVyKGV4ZWMs
IGluZGV4LCB2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgQmFzZTo6cHV0KHRo
aXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVu
dFRhcmdldC5jcHAKaW5kZXggOWU4ZDM2ODBmZWMyOThkMDhhZGI0YTIzODM2MjM1MGI0NTA1NmRh
ZS4uZTJjMDQ3ODU1ZTFjMTM0NzI3MmU4ZmRiZjljN2Q5YTRkNzhhNWQxZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RXZlbnRUYXJnZXQuY3BwCkBAIC0xODAsMTAgKzE4MCwxMCBAQCBib29sIEpTVGVzdEV2ZW50VGFy
Z2V0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVj
LCBQcgogICAgICAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqZWN0LCBlbnRyeS0+
YXR0cmlidXRlcygpLCBlbnRyeS0+cHJvcGVydHlHZXR0ZXIoKSk7CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KLSAgICBPcHRpb25hbDx1aW50MzJfdD4gaW5kZXggPSBwcm9wZXJ0eU5hbWUu
YXNJbmRleCgpOwotICAgIGlmIChpbmRleCAmJiBpbmRleC52YWx1ZSgpIDwgdGhpc09iamVjdC0+
aW1wbCgpLmxlbmd0aCgpKSB7CisgICAgdW5zaWduZWQgaW5kZXggPSBwcm9wZXJ0eU5hbWUuYXNJ
bmRleCgpOworICAgIGlmIChpbmRleCAhPSBQcm9wZXJ0eU5hbWU6Ok5vdEFuSW5kZXggJiYgaW5k
ZXggPCB0aGlzT2JqZWN0LT5pbXBsKCkubGVuZ3RoKCkpIHsKICAgICAgICAgdW5zaWduZWQgYXR0
cmlidXRlcyA9IERvbnREZWxldGUgfCBSZWFkT25seTsKLSAgICAgICAgc2xvdC5zZXRWYWx1ZSh0
aGlzT2JqZWN0LCBhdHRyaWJ1dGVzLCB0b0pTKGV4ZWMsIHRoaXNPYmplY3QtPmdsb2JhbE9iamVj
dCgpLCB0aGlzT2JqZWN0LT5pbXBsKCkuaXRlbShpbmRleC52YWx1ZSgpKSkpOworICAgICAgICBz
bG90LnNldFZhbHVlKHRoaXNPYmplY3QsIGF0dHJpYnV0ZXMsIHRvSlMoZXhlYywgdGhpc09iamVj
dC0+Z2xvYmFsT2JqZWN0KCksIHRoaXNPYmplY3QtPmltcGwoKS5pdGVtKGluZGV4KSkpOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgaWYgKGNhbkdldEl0ZW1zRm9yTmFtZShleGVj
LCAmdGhpc09iamVjdC0+aW1wbCgpLCBwcm9wZXJ0eU5hbWUpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9hcnJheS5jcHAKaW5kZXggNDk4YjM3ZTMzZGIxOTY3ZWExZmVmNTQ0YmU2Njk0
OGVjMjRkM2JiNC4uMDIyMjE5MDVjNDBlNmVkZmVkNTc5OTllYjIzNWY1ODkxYTdhMmUwOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcApAQCAtODksMTAgKzg5LDExIEBA
IGJvb2wgUnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwg
RXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAg
ICAKLSAgICBPcHRpb25hbDx1aW50MzJfdD4gaW5kZXggPSBwcm9wZXJ0eU5hbWUuYXNJbmRleCgp
OwotICAgIGlmIChpbmRleCAmJiBpbmRleC52YWx1ZSgpIDwgdGhpc09iamVjdC0+Z2V0TGVuZ3Ro
KCkpIHsKKyAgICB1bnNpZ25lZCBpbmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7CisgICAg
aWYgKGluZGV4IDwgdGhpc09iamVjdC0+Z2V0TGVuZ3RoKCkpIHsKKyAgICAgICAgQVNTRVJUKGlu
ZGV4ICE9IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRleCk7CiAgICAgICAgIHNsb3Quc2V0VmFsdWUo
dGhpc09iamVjdCwgRG9udERlbGV0ZSB8IERvbnRFbnVtLAotICAgICAgICAgICAgdGhpc09iamVj
dC0+Z2V0Q29uY3JldGVBcnJheSgpLT52YWx1ZUF0KGV4ZWMsIGluZGV4LnZhbHVlKCkpKTsKKyAg
ICAgICAgICAgIHRoaXNPYmplY3QtPmdldENvbmNyZXRlQXJyYXkoKS0+dmFsdWVBdChleGVjLCBp
bmRleCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCkBAIC0xMTksOCArMTIw
LDkgQEAgdm9pZCBSdW50aW1lQXJyYXk6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhl
YywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICAKLSAgICBpZiAoT3B0aW9uYWw8dWludDMyX3Q+IGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5k
ZXgoKSkgewotICAgICAgICB0aGlzT2JqZWN0LT5nZXRDb25jcmV0ZUFycmF5KCktPnNldFZhbHVl
QXQoZXhlYywgaW5kZXgudmFsdWUoKSwgdmFsdWUpOworICAgIHVuc2lnbmVkIGluZGV4ID0gcHJv
cGVydHlOYW1lLmFzSW5kZXgoKTsKKyAgICBpZiAoaW5kZXggIT0gUHJvcGVydHlOYW1lOjpOb3RB
bkluZGV4KSB7CisgICAgICAgIHRoaXNPYmplY3QtPmdldENvbmNyZXRlQXJyYXkoKS0+c2V0VmFs
dWVBdChleGVjLCBpbmRleCwgdmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDJjNTdhMDlhZTIwN2EyNWE5M2MyNTE3OWIzNTJmNTU0ODg5MDBiNWIuLmYxZGIyZWEy
NDBmNjk1Y2IwM2FhY2FjNDA4Mzc5YjQwYzNhNmFmMjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAxNS0wMS0yMiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE3ODg5NC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDc3NQorCisgICAgICAgIEJyb2tlIEpT
QyBhbmQgYmluZGluZ3MgdGVzdHMgKFJlcXVlc3RlZCBieSBhcF8gb24gI3dlYmtpdCkuCisKKyAg
ICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJwdXRfYnlfdmFsX2RpcmVjdCBu
ZWVkIHRvIGNoZWNrIHRoZSBwcm9wZXJ0eSBpcyBpbmRleCBvciBub3QKKyAgICAgICAgZm9yIHVz
aW5nIHB1dERpcmVjdCAvIHB1dERpcmVjdEluZGV4IgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwNDI2CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0LzE3ODg5NAorCiAyMDE1LTAxLTIyICBNYXJrIExhbSAgPG1hcmsubGFt
QGFwcGxlLmNvbT4KIAogICAgICAgICBCeXRlY29kZUdlbmVyYXRvcjo6aW5pdGlhbGl6ZUNhcHR1
cmVkVmFyaWFibGUoKSBzZXRzIGEgbWlzbGVhZGluZyB2YWx1ZSBmb3IgdGhlIDV0aCBvcGVyYW5k
IG9mIG9wX3B1dF90b19zY29wZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RmZy1wdXQt
YnktdmFsLWRpcmVjdC13aXRoLWVkZ2UtbnVtYmVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9qcy9kZmctcHV0LWJ5LXZhbC1kaXJlY3Qtd2l0aC1lZGdlLW51bWJlcnMtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMTY1OTZkY2IzM2Y1NjI2MjJiODljYjU1
MmYwYjgyMjUyMGNiMzRmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2pzL2RmZy1wdXQtYnktdmFsLWRpcmVjdC13aXRoLWVkZ2UtbnVt
YmVycy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi1UZXN0IHRo
YXQgYSBvYmplY3QgYWNjZXB0cyBERkcgUHV0QnlWYWx1ZURpcmVjdCBvcGVyYXRpb24gd2l0aCBl
ZGdlIG51bWJlcnMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGxvb2t1
cFdpdGhLZXkoLTB4ODAwMDAwMDEpIGlzIDQyIG9uIGFsbCBpdGVyYXRpb25zIGluY2x1ZGluZyBh
ZnRlciBERkcgdGllci11cC4KLVBBU1MgbG9va3VwV2l0aEtleSgtMHg4MDAwMDAwMCkgaXMgNDIg
b24gYWxsIGl0ZXJhdGlvbnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVyLXVwLgotUEFTUyBsb29r
dXBXaXRoS2V5KC0xKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZH
IHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoMCkgaXMgNDIgb24gYWxsIGl0ZXJhdGlvbnMg
aW5jbHVkaW5nIGFmdGVyIERGRyB0aWVyLXVwLgotUEFTUyBsb29rdXBXaXRoS2V5KDEpIGlzIDQy
IG9uIGFsbCBpdGVyYXRpb25zIGluY2x1ZGluZyBhZnRlciBERkcgdGllci11cC4KLVBBU1MgbG9v
a3VwV2l0aEtleSgweDdmZmZmZmZmKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcg
YWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoMHg4MDAwMDAwMCkgaXMgNDIg
b24gYWxsIGl0ZXJhdGlvbnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVyLXVwLgotUEFTUyBsb29r
dXBXaXRoS2V5KDB4ZmZmZmZmZmQpIGlzIDQyIG9uIGFsbCBpdGVyYXRpb25zIGluY2x1ZGluZyBh
ZnRlciBERkcgdGllci11cC4KLVBBU1MgbG9va3VwV2l0aEtleSgweGZmZmZmZmZlKSBpcyA0MiBv
biBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1
cFdpdGhLZXkoMHhmZmZmZmZmZikgaXMgNDIgb24gYWxsIGl0ZXJhdGlvbnMgaW5jbHVkaW5nIGFm
dGVyIERGRyB0aWVyLXVwLgotUEFTUyBsb29rdXBXaXRoS2V5KDB4MTAwMDAwMDAwKSBpcyA0MiBv
biBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1
cFdpdGhLZXkoIi0yMTQ3NDgzNjQ5IikgaXMgNDIgb24gYWxsIGl0ZXJhdGlvbnMgaW5jbHVkaW5n
IGFmdGVyIERGRyB0aWVyLXVwLgotUEFTUyBsb29rdXBXaXRoS2V5KCItMjE0NzQ4MzY0OCIpIGlz
IDQyIG9uIGFsbCBpdGVyYXRpb25zIGluY2x1ZGluZyBhZnRlciBERkcgdGllci11cC4KLVBBU1Mg
bG9va3VwV2l0aEtleSgiLTEiKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0
ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoIjAiKSBpcyA0MiBvbiBhbGwgaXRl
cmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXko
IjEiKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAu
Ci1QQVNTIGxvb2t1cFdpdGhLZXkoIjIxNDc0ODM2NDciKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9u
cyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoIjIxNDc0
ODM2NDgiKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXIt
dXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoIjQyOTQ5NjcyOTMiKSBpcyA0MiBvbiBhbGwgaXRlcmF0
aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoIjQy
OTQ5NjcyOTQiKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRp
ZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoIjQyOTQ5NjcyOTUiKSBpcyA0MiBvbiBhbGwgaXRl
cmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXko
IjQyOTQ5NjcyOTYiKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZH
IHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoTnVtYmVyLk1JTl9WQUxVRSkgaXMgNDIgb24g
YWxsIGl0ZXJhdGlvbnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVyLXVwLgotUEFTUyBsb29rdXBX
aXRoS2V5KE51bWJlci5NQVhfVkFMVUUpIGlzIDQyIG9uIGFsbCBpdGVyYXRpb25zIGluY2x1ZGlu
ZyBhZnRlciBERkcgdGllci11cC4KLVBBU1MgbG9va3VwV2l0aEtleShOdW1iZXIuTUlOX1NBRkVf
SU5URUdFUikgaXMgNDIgb24gYWxsIGl0ZXJhdGlvbnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVy
LXVwLgotUEFTUyBsb29rdXBXaXRoS2V5KE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSBpcyA0MiBv
biBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1
cFdpdGhLZXkoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9u
cyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoTnVtYmVy
Lk5FR0FUSVZFX0lORklOSVRZKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0
ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoTnVtYmVyLk5hTikgaXMgNDIgb24g
YWxsIGl0ZXJhdGlvbnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVyLXVwLgotUEFTUyBsb29rdXBX
aXRoS2V5KE51bWJlci5FUFNJTE9OKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcg
YWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoKzAuMCkgaXMgNDIgb24gYWxs
IGl0ZXJhdGlvbnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVyLXVwLgotUEFTUyBsb29rdXBXaXRo
S2V5KC0wLjApIGlzIDQyIG9uIGFsbCBpdGVyYXRpb25zIGluY2x1ZGluZyBhZnRlciBERkcgdGll
ci11cC4KLVBBU1MgbG9va3VwV2l0aEtleSgwLjEpIGlzIDQyIG9uIGFsbCBpdGVyYXRpb25zIGlu
Y2x1ZGluZyBhZnRlciBERkcgdGllci11cC4KLVBBU1MgbG9va3VwV2l0aEtleSgtMC4xKSBpcyA0
MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxv
b2t1cFdpdGhLZXkoNC4yKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIg
REZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoLTQuMikgaXMgNDIgb24gYWxsIGl0ZXJh
dGlvbnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVyLXVwLgotUEFTUyBsb29rdXBXaXRoS2V5KCI1
ZS0zMjQiKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXIt
dXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoIjEuNzk3NjkzMTM0ODYyMzE1N2UrMzA4IikgaXMgNDIg
b24gYWxsIGl0ZXJhdGlvbnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVyLXVwLgotUEFTUyBsb29r
dXBXaXRoS2V5KCItOTAwNzE5OTI1NDc0MDk5MSIpIGlzIDQyIG9uIGFsbCBpdGVyYXRpb25zIGlu
Y2x1ZGluZyBhZnRlciBERkcgdGllci11cC4KLVBBU1MgbG9va3VwV2l0aEtleSgiOTAwNzE5OTI1
NDc0MDk5MSIpIGlzIDQyIG9uIGFsbCBpdGVyYXRpb25zIGluY2x1ZGluZyBhZnRlciBERkcgdGll
ci11cC4KLVBBU1MgbG9va3VwV2l0aEtleSgiSW5maW5pdHkiKSBpcyA0MiBvbiBhbGwgaXRlcmF0
aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoIi1J
bmZpbml0eSIpIGlzIDQyIG9uIGFsbCBpdGVyYXRpb25zIGluY2x1ZGluZyBhZnRlciBERkcgdGll
ci11cC4KLVBBU1MgbG9va3VwV2l0aEtleSgiTmFOIikgaXMgNDIgb24gYWxsIGl0ZXJhdGlvbnMg
aW5jbHVkaW5nIGFmdGVyIERGRyB0aWVyLXVwLgotUEFTUyBsb29rdXBXaXRoS2V5KCIyLjIyMDQ0
NjA0OTI1MDMxM2UtMTYiKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIg
REZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoIiswLjAiKSBpcyA0MiBvbiBhbGwgaXRl
cmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXko
Ii0wLjAiKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXIt
dXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoIjAuMSIpIGlzIDQyIG9uIGFsbCBpdGVyYXRpb25zIGlu
Y2x1ZGluZyBhZnRlciBERkcgdGllci11cC4KLVBBU1MgbG9va3VwV2l0aEtleSgiLTAuMSIpIGlz
IDQyIG9uIGFsbCBpdGVyYXRpb25zIGluY2x1ZGluZyBhZnRlciBERkcgdGllci11cC4KLVBBU1Mg
bG9va3VwV2l0aEtleSgiNC4yIikgaXMgNDIgb24gYWxsIGl0ZXJhdGlvbnMgaW5jbHVkaW5nIGFm
dGVyIERGRyB0aWVyLXVwLgotUEFTUyBsb29rdXBXaXRoS2V5KCItNC4yIikgaXMgNDIgb24gYWxs
IGl0ZXJhdGlvbnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVyLXVwLgotUEFTUyBsb29rdXBXaXRo
S2V5Mih0b1N0cmluZ1Rocm93c0Vycm9yKSB0aHJldyBleGNlcHRpb24gJ0Vycm9yOiBuZycgb24g
YWxsIGl0ZXJhdGlvbnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVyLXVwLgotUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL2RmZy1wdXQtYnktdmFsLWRpcmVjdC13aXRoLWVkZ2UtbnVtYmVycy5odG1sIGIv
TGF5b3V0VGVzdHMvanMvZGZnLXB1dC1ieS12YWwtZGlyZWN0LXdpdGgtZWRnZS1udW1iZXJzLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3YjRmNTRhNjNlMzNmNGFjNTYwMzNj
YmVjZmFiZTJhNmM5NWE2NTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvZGZnLXB1dC1ieS12YWwtZGlyZWN0LXdpdGgtZWRnZS1u
dW1iZXJzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi08IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keT4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZGZnLXB1dC1ieS12YWwtZGlyZWN0LXdp
dGgtZWRnZS1udW1iZXJzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9kZmctcHV0LWJ5LXZhbC1kaXJlY3Qtd2l0aC1l
ZGdlLW51bWJlcnMuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvZGZnLXB1dC1ieS12
YWwtZGlyZWN0LXdpdGgtZWRnZS1udW1iZXJzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4NDRkNjgzMWYyODkyZDE4ZTk5ZTg3MDE3YmFhYWU3OTBmYTBiMzA0Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3Njcmlw
dC10ZXN0cy9kZmctcHV0LWJ5LXZhbC1kaXJlY3Qtd2l0aC1lZGdlLW51bWJlcnMuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMzQgKzAsMCBAQAotZGVzY3JpcHRpb24oCi0iVGVzdCB0aGF0IGEgb2Jq
ZWN0IGFjY2VwdHMgREZHIFB1dEJ5VmFsdWVEaXJlY3Qgb3BlcmF0aW9uIHdpdGggZWRnZSBudW1i
ZXJzLiIKLSk7Ci0KLWZ1bmN0aW9uIGxvb2t1cFdpdGhLZXkoa2V5KSB7Ci0gICAgdmFyIG9iamVj
dCA9IHsKLSAgICAgICAgW2tleV06IDQyCi0gICAgfTsKLSAgICByZXR1cm4gb2JqZWN0W2tleV07
Ci19Ci0KLVsKLSAgICAvLyBpbnRlZ2VycwotICAgICctMHg4MDAwMDAwMScsICAvLyBvdXQgb2Yg
aW50MzJfdAotICAgICctMHg4MDAwMDAwMCcsICAvLyBpbnQzMl90IG1pbgotICAgICctMScsICAg
ICAgICAgICAvLyBuZWdhdGl2ZQotICAgICcwJywgICAgICAgICAgICAvLyB6ZXJvCi0gICAgJzEn
LCAgICAgICAgICAgIC8vIHBvc2l0aXZlCi0gICAgJzB4N2ZmZmZmZmYnLCAgIC8vIGludDMyX3Qg
bWF4Ci0gICAgJzB4ODAwMDAwMDAnLCAgIC8vIG91dCBvZiBpbnQzMl90Ci0gICAgJzB4ZmZmZmZm
ZmQnLCAgIC8vIGxlc3MgdGhhbiBhcnJheSBtYXggaW4gSlNPYmplY3QKLSAgICAnMHhmZmZmZmZm
ZScsICAgLy8gYXJyYXkgbWF4IGluIEpTT2JqZWN0Ci0gICAgJzB4ZmZmZmZmZmYnLCAgIC8vIHVp
bnQzMl90IG1heCwgUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4Ci0gICAgJzB4MTAwMDAwMDAwJywg
IC8vIG91dCBvZiB1aW50MzJfdAotCi0gICAgLy8gc3RyaW5naWZpZWQgaW50ZWdlcnMKLSAgICAn
IicgKyAoLTB4ODAwMDAwMDEpLnRvU3RyaW5nKCkgKyAnIicsICAvLyBvdXQgb2YgaW50MzJfdAot
ICAgICciJyArICgtMHg4MDAwMDAwMCkudG9TdHJpbmcoKSArICciJywgIC8vIGludDMyX3QgbWlu
Ci0gICAgJyInICsgKC0xKS50b1N0cmluZygpICsgJyInLCAgICAgICAgICAgLy8gbmVnYXRpdmUK
LSAgICAnIicgKyAoMCkudG9TdHJpbmcoKSArICciJywgICAgICAgICAgICAvLyB6ZXJvCi0gICAg
JyInICsgKDEpLnRvU3RyaW5nKCkgKyAnIicsICAgICAgICAgICAgLy8gcG9zaXRpdmUKLSAgICAn
IicgKyAoMHg3ZmZmZmZmZikudG9TdHJpbmcoKSArICciJywgICAvLyBpbnQzMl90IG1heAotICAg
ICciJyArICgweDgwMDAwMDAwKS50b1N0cmluZygpICsgJyInLCAgIC8vIG91dCBvZiBpbnQzMl90
Ci0gICAgJyInICsgKDB4ZmZmZmZmZmQpLnRvU3RyaW5nKCkgKyAnIicsICAgLy8gbGVzcyB0aGFu
IGFycmF5IG1heCBpbiBKU09iamVjdAotICAgICciJyArICgweGZmZmZmZmZlKS50b1N0cmluZygp
ICsgJyInLCAgIC8vIGFycmF5IG1heCBpbiBKU09iamVjdAotICAgICciJyArICgweGZmZmZmZmZm
KS50b1N0cmluZygpICsgJyInLCAgIC8vIHVpbnQzMl90IG1heCkudG9TdHJpbmcoKSBQcm9wZXJ0
eU5hbWU6Ok5vdEFuSW5kZXgKLSAgICAnIicgKyAoMHgxMDAwMDAwMDApLnRvU3RyaW5nKCkgKyAn
IicsICAvLyBvdXQgb2YgdWludDMyX3QKLQotICAgIC8vIGRvdWJsZXMKLSAgICAnTnVtYmVyLk1J
Tl9WQUxVRScsCi0gICAgJ051bWJlci5NQVhfVkFMVUUnLAotICAgICdOdW1iZXIuTUlOX1NBRkVf
SU5URUdFUicsCi0gICAgJ051bWJlci5NQVhfU0FGRV9JTlRFR0VSJywKLSAgICAnTnVtYmVyLlBP
U0lUSVZFX0lORklOSVRZJywKLSAgICAnTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZJywKLSAgICAn
TnVtYmVyLk5hTicsCi0gICAgJ051bWJlci5FUFNJTE9OJywKLSAgICAnKzAuMCcsCi0gICAgJy0w
LjAnLAotICAgICcwLjEnLAotICAgICctMC4xJywKLSAgICAnNC4yJywKLSAgICAnLTQuMicsCi0K
LSAgICAvLyBzdHJpbmdpZmllZCBkb3VsZXMKLSAgICAnIicgKyAoTnVtYmVyLk1JTl9WQUxVRSku
dG9TdHJpbmcoKSArICciJywKLSAgICAnIicgKyAoTnVtYmVyLk1BWF9WQUxVRSkudG9TdHJpbmco
KSArICciJywKLSAgICAnIicgKyAoTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIpLnRvU3RyaW5nKCkg
KyAnIicsCi0gICAgJyInICsgKE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygpICsg
JyInLAotICAgICciJyArIChOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLnRvU3RyaW5nKCkgKyAn
IicsCi0gICAgJyInICsgKE51bWJlci5ORUdBVElWRV9JTkZJTklUWSkudG9TdHJpbmcoKSArICci
JywKLSAgICAnIk5hTiInLAotICAgICciJyArIChOdW1iZXIuRVBTSUxPTikudG9TdHJpbmcoKSAr
ICciJywKLSAgICAnIiswLjAiJywKLSAgICAnIi0wLjAiJywKLSAgICAnIjAuMSInLAotICAgICci
LTAuMSInLAotICAgICciNC4yIicsCi0gICAgJyItNC4yIicsCi1dLmZvckVhY2goZnVuY3Rpb24g
KGtleSkgewotICAgIGRmZ1Nob3VsZEJlKGxvb2t1cFdpdGhLZXksICJsb29rdXBXaXRoS2V5KCIr
IGtleSArICIpIiwgIjQyIik7Ci19KTsKLQotZnVuY3Rpb24gZGZnU2hvdWxkVGhyb3codGhlRnVu
Y3Rpb24sIF9hLCBfZSkKLXsKLSAgaWYgKHR5cGVvZiB0aGVGdW5jdGlvbiAhPSAiZnVuY3Rpb24i
IHx8IHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2UgIT0gInN0cmluZyIpCi0gICAg
ZGVidWcoIldBUk46IGRmZ1Nob3VsZFRocm93KCkgZXhwZWN0cyBhIGZ1bmN0aW9uIGFuZCB0d28g
c3RyaW5ncyIpOwotICBub0lubGluZSh0aGVGdW5jdGlvbik7Ci0gIHZhciB2YWx1ZXMgPSBbXSwg
X2F2ID0gdW5kZWZpbmVkLCBub3RUaHJvdyA9IGZhbHNlOwotCi0gIC8vIERlZmVuZCBhZ2FpbnN0
IHRlc3RzIHRoYXQgbXVjayB3aXRoIG51bWVyaWMgcHJvcGVydGllcyBvbiBhcnJheS5wcm90b3R5
cGUuCi0gIHZhbHVlcy5fX3Byb3RvX18gPSBudWxsOwotICB2YWx1ZXMucHVzaCA9IEFycmF5LnBy
b3RvdHlwZS5wdXNoOwotCi0gIHdoaWxlICghZGZnQ29tcGlsZWQoe2Y6dGhlRnVuY3Rpb259KSkg
ewotICAgIHRyeSB7Ci0gICAgICAgIF9hdiA9IGV2YWwoX2EpOwotICAgICAgICBub3RUaHJvdyA9
IHRydWU7Ci0gICAgfSBjYXRjaCAoZXhjZXB0aW9uKSB7Ci0gICAgICAgIHZhbHVlcy5wdXNoKGV4
Y2VwdGlvbik7Ci0gICAgfQotICB9Ci0gIHRyeSB7Ci0gICAgX2F2ID0gZXZhbChfYSk7Ci0gICAg
bm90VGhyb3cgPSB0cnVlOwotICB9IGNhdGNoIChleGNlcHRpb24pIHsKLSAgICB2YWx1ZXMucHVz
aChleGNlcHRpb24pOwotICB9Ci0KLSAgdmFyIF9ldiA9IGV2YWwoX2UpOwotICBpZiAobm90VGhy
b3cpIHsKLSAgICBpZiAodHlwZW9mIF9hdiA9PSAidW5kZWZpbmVkIikKLSAgICAgIHRlc3RGYWls
ZWQoX2EgKyAiIHNob3VsZCB0aHJvdyAiICsgKHR5cGVvZiBfZSA9PSAidW5kZWZpbmVkIiA/ICJh
biBleGNlcHRpb24iIDogX2V2KSArICIuIFdhcyB1bmRlZmluZWQuIik7Ci0gICAgZWxzZQotICAg
ICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09ICJ1bmRl
ZmluZWQiID8gImFuIGV4Y2VwdGlvbiIgOiBfZXYpICsgIi4gV2FzICIgKyBfYXYgKyAiLiIpOwot
ICB9IGVsc2UgewotICAgIHZhciBhbGxQYXNzZWQgPSB0cnVlOwotICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgdmFsdWVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICB2YXIgX2F2ID0gdmFsdWVzW2ldOwot
ICAgICAgaWYgKHR5cGVvZiBfZSA9PSAidW5kZWZpbmVkIiB8fCBfYXYgPT0gX2V2KQotICAgICAg
ICBjb250aW51ZTsKLSAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCB0aHJvdyAiICsgKHR5
cGVvZiBfZSA9PSAidW5kZWZpbmVkIiA/ICJhbiBleGNlcHRpb24iIDogX2V2KSArICIuIFRocmV3
IGV4Y2VwdGlvbiAiICsgX2F2ICsgIi4iKTsKLSAgICAgIGFsbFBhc3NlZCA9IGZhbHNlOwotICAg
IH0KLSAgICBpZiAoYWxsUGFzc2VkKQotICAgICAgdGVzdFBhc3NlZChfYSArICIgdGhyZXcgZXhj
ZXB0aW9uICIgKyBfZSArICIgb24gYWxsIGl0ZXJhdGlvbnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0
aWVyLXVwLiIpOwotICB9Ci0KLSAgcmV0dXJuIHZhbHVlcy5sZW5ndGg7Ci19Ci0KLWZ1bmN0aW9u
IGxvb2t1cFdpdGhLZXkyKGtleSkgewotICAgIHZhciBvYmplY3QgPSB7Ci0gICAgICAgIFtrZXld
OiA0MgotICAgIH07Ci0gICAgcmV0dXJuIG9iamVjdFtrZXldOwotfQotCi12YXIgdG9TdHJpbmdU
aHJvd3NFcnJvciA9IHsKLSAgICB0b1N0cmluZzogZnVuY3Rpb24gKCkgewotICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoJ25nJyk7Ci0gICAgfQotfTsKLWRmZ1Nob3VsZFRocm93KGxvb2t1cFdpdGhL
ZXkyLCAibG9va3VwV2l0aEtleTIodG9TdHJpbmdUaHJvd3NFcnJvcikiLCAiJ0Vycm9yOiBuZyci
KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>