<?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>140694</bug_id>
          
          <creation_ts>2015-01-20 14:33:59 -0800</creation_ts>
          <short_desc>REGRESSION(r178751): Caused 32-bit JSC test failures (Requested by JoePeck on #webkit).</short_desc>
          <delta_ts>2015-01-20 14:45:45 -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>1062883</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-20 14:33:59 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/178751 broke the build:
Caused 32-bit JSC test failures (Requested by JoePeck 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>1062885</commentid>
    <comment_count>1</comment_count>
      <attachid>245018</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-20 14:34:29 -0800</bug_when>
    <thetext>Created attachment 245018
ROLLOUT of r178751

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>1062890</commentid>
    <comment_count>2</comment_count>
      <attachid>245018</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-20 14:43:03 -0800</bug_when>
    <thetext>Comment on attachment 245018
ROLLOUT of r178751

Clearing flags on attachment: 245018

Committed r178756: &lt;http://trac.webkit.org/changeset/178756&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062891</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-20 14:43:06 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062894</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-01-20 14:45:45 -0800</bug_when>
    <thetext>Thank you for rolling out it!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245018</attachid>
            <date>2015-01-20 14:34:29 -0800</date>
            <delta_ts>2015-01-20 14:43:03 -0800</delta_ts>
            <desc>ROLLOUT of r178751</desc>
            <filename>bug-140694-20150120143436.patch</filename>
            <type>text/plain</type>
            <size>62366</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4NzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MmE5ODJmZWYzZDQxZGI0MDdiNTkxMDU2NGQyYTYyODlhODYyNDhjLi4zNTk2NWQ0YWJiZTdkMWRi
Y2IwMmE2MTBiMjFlZmEyOWJiMThmOGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxNS0wMS0yMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE3ODc1MS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDY5NAorCisgICAg
ICAgIENhdXNlZCAzMi1iaXQgSlNDIHRlc3QgZmFpbHVyZXMgKFJlcXVlc3RlZCBieSBKb2VQZWNr
IG9uCisgICAgICAgICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKwor
ICAgICAgICAicHV0X2J5X3ZhbF9kaXJlY3QgbmVlZCB0byBjaGVjayB0aGUgcHJvcGVydHkgaXMg
aW5kZXggb3Igbm90CisgICAgICAgIGZvciB1c2luZyBwdXREaXJlY3QgLyBwdXREaXJlY3RJbmRl
eCIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDQy
NgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xNzg3NTEKKwogMjAx
NS0wMS0yMCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAg
ICBwdXRfYnlfdmFsX2RpcmVjdCBuZWVkIHRvIGNoZWNrIHRoZSBwcm9wZXJ0eSBpcyBpbmRleCBv
ciBub3QgZm9yIHVzaW5nIHB1dERpcmVjdCAvIHB1dERpcmVjdEluZGV4CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjY0ZDAxZTQ4ZWI3YTE0ZWE3OWYzOWJhMmZhOTZiYzI3MmZlMjFiNi4uMmI5MmRkNjJiZWE3ZjY3
ODRlY2U3ZjMxM2YwMjJjYjJmOGI1MmYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisy
MDE1LTAxLTIwICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTc4NzUxLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwNjk0CisKKyAgICAgICAgQ2F1c2VkIDMy
LWJpdCBKU0MgdGVzdCBmYWlsdXJlcyAoUmVxdWVzdGVkIGJ5IEpvZVBlY2sgb24KKyAgICAgICAg
I3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJwdXRf
YnlfdmFsX2RpcmVjdCBuZWVkIHRvIGNoZWNrIHRoZSBwcm9wZXJ0eSBpcyBpbmRleCBvciBub3QK
KyAgICAgICAgZm9yIHVzaW5nIHB1dERpcmVjdCAvIHB1dERpcmVjdEluZGV4IgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwNDI2CisgICAgICAgIGh0
dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE3ODc1MQorCiAyMDE1LTAxLTIwICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxlIGxpbmUgbGF5b3V0
OiBVc2UgRmxvd0NvbnRlbnRzOjpTZWdtZW50Ojp0ZXh0IGluc3RlYWQgb2YgcmVuZGVyZXIgd2hl
biBwb3NzaWJsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9H
ZXRCeUlkU3RhdHVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlk
U3RhdHVzLmNwcAppbmRleCA1YjBmZWQyMzlkOTU5YmJiNzQ3OWY3MjU2MjJlMDkyODMyYTlmODky
Li5hOWE0N2UwODEzYTIxNGIxMjE5NmZlNjJjMjJlMTRlM2NjNmU1MzdjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCkBAIC0yNzAsNyAr
MjcwLDcgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKGNvbnN0IFN0
cnVjdHVyZVNldCYgc2V0LCBBdG9taWNTdHJpbmdJbXAKICAgICBpZiAoc2V0LmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoKTsKIAotICAgIGlmICh0b1VJbnQzMkZyb21T
dHJpbmdJbXBsKHVpZCkpCisgICAgaWYgKHRvVUludDMyRnJvbVN0cmluZ0ltcGwodWlkKSAhPSBQ
cm9wZXJ0eU5hbWU6Ok5vdEFuSW5kZXgpCiAgICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKFRh
a2VzU2xvd1BhdGgpOwogICAgIAogICAgIEdldEJ5SWRTdGF0dXMgcmVzdWx0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuY3BwCmluZGV4IDllOThm
Y2M5NjkxNWZjMWE2M2EwMGRjMmQ4NWFlODNhZWI5M2JmYmEuLjRhODJiYTdjNGY3ZmRiYjcwNzIx
ODZkZjZjYjlmYjBiZDA2YjU2NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9QdXRCeUlkU3RhdHVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHAKQEAgLTMxMCw3ICszMTAsNyBAQCBQdXRCeUlkU3RhdHVz
IFB1dEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoQ29kZUJsb2NrKiBiYXNlbGluZUJsb2NrLCBDb2Rl
QmxvY2sqIGRmZwogCiBQdXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RydWN0dXJlU2V0JiBzZXQsIEF0b21p
Y1N0cmluZ0ltcGwqIHVpZCwgYm9vbCBpc0RpcmVjdCkKIHsKLSAgICBpZiAodG9VSW50MzJGcm9t
U3RyaW5nSW1wbCh1aWQpKQorICAgIGlmICh0b1VJbnQzMkZyb21TdHJpbmdJbXBsKHVpZCkgIT0g
UHJvcGVydHlOYW1lOjpOb3RBbkluZGV4KQogICAgICAgICByZXR1cm4gUHV0QnlJZFN0YXR1cyhU
YWtlc1Nsb3dQYXRoKTsKIAogICAgIGlmIChzZXQuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApp
bmRleCBmYTIyZGM4NmI3MzUyZmVjYWE3ZTIwZWIxNDQyYmEyMGJlODRiM2Q2Li5jNDkyM2U5NjIz
NjBhODEyZjRlZDg0YjM2N2NkMDkzNjkyZjY5ODgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAtMTQ5
MSw3ICsxNDkxLDkgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXREaXJlY3RQ
dXRCeUlkKFJlZ2lzdGVySUQqIGJhc2UsIGNvbnN0IElkZW50aWYKICAgICBpbnN0cnVjdGlvbnMo
KS5hcHBlbmQoMCk7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKDApOwogICAgIGluc3RydWN0
aW9ucygpLmFwcGVuZCgwKTsKLSAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQocHJvcGVydHkgIT0g
bV92bS0+cHJvcGVydHlOYW1lcy0+dW5kZXJzY29yZVByb3RvICYmICFQcm9wZXJ0eU5hbWUocHJv
cGVydHkpLmFzSW5kZXgoKSk7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKAorICAgICAgICBw
cm9wZXJ0eSAhPSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT51bmRlcnNjb3JlUHJvdG8KKyAgICAgICAg
JiYgUHJvcGVydHlOYW1lKHByb3BlcnR5KS5hc0luZGV4KCkgPT0gUHJvcGVydHlOYW1lOjpOb3RB
bkluZGV4KTsKICAgICByZXR1cm4gdmFsdWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IGM1MDM4Mzg1YTBhODE5Y2M3NjE2MDE4N2UwMDc4
OGRiMTM5YTA1MDMuLjc5NWU2MDU4MzUyNmMzNzYwM2MzMTg3Mjg3NzUyMmI4ZmQ4Yjc4OTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtOTcsMTYg
Kzk3LDE0IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRCeVZhbEludGVybmFsKEV4ZWNTdGF0ZSogZXhlCiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwogCiAgICAgaWYgKExJS0VMWShwcm9wZXJ0eS5p
c1VJbnQzMigpKSkgewotICAgICAgICB1aW50MzJfdCBpbmRleCA9IHByb3BlcnR5LmFzVUludDMy
KCk7Ci0gICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoaW5kZXggIT0gUHJvcGVydHlOYW1lOjpO
b3RBbkluZGV4LCAiU2luY2UgSlNWYWx1ZTo6aXNVSW50MzIgcmV0dXJucyB0cnVlIG9ubHkgd2hl
biB0aGUgYm94ZWQgdmFsdWUgaXMgaW50MzJfdCBhbmQgcG9zaXRpdmUsIGl0IGRvZXNuJ3QgcmV0
dXJuIHRydWUgZm9yIHVpbnQzMl90IG1heCB2YWx1ZSB0aGF0IGlzIFByb3BlcnR5TmFtZTo6Tm90
QW5JbmRleC4iKTsKLSAgICAgICAgcHV0QnlWYWw8c3RyaWN0LCBkaXJlY3Q+KGV4ZWMsIGJhc2VW
YWx1ZSwgaW5kZXgsIHZhbHVlKTsKKyAgICAgICAgcHV0QnlWYWw8c3RyaWN0LCBkaXJlY3Q+KGV4
ZWMsIGJhc2VWYWx1ZSwgcHJvcGVydHkuYXNVSW50MzIoKSwgdmFsdWUpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCiAgICAgaWYgKHByb3BlcnR5LmlzRG91YmxlKCkpIHsKICAgICAgICAgZG91
YmxlIHByb3BlcnR5QXNEb3VibGUgPSBwcm9wZXJ0eS5hc0RvdWJsZSgpOwogICAgICAgICB1aW50
MzJfdCBwcm9wZXJ0eUFzVUludDMyID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHByb3BlcnR5QXNE
b3VibGUpOwotICAgICAgICBpZiAocHJvcGVydHlBc0RvdWJsZSA9PSBwcm9wZXJ0eUFzVUludDMy
ICYmIHByb3BlcnR5QXNVSW50MzIgIT0gUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4KSB7CisgICAg
ICAgIGlmIChwcm9wZXJ0eUFzRG91YmxlID09IHByb3BlcnR5QXNVSW50MzIpIHsKICAgICAgICAg
ICAgIHB1dEJ5VmFsPHN0cmljdCwgZGlyZWN0PihleGVjLCBiYXNlVmFsdWUsIHByb3BlcnR5QXNV
SW50MzIsIHZhbHVlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTI0LDE5
ICsxMjIsMTQgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblB1dEJ5VmFsSW50ZXJuYWwoRXhlY1N0YXRlKiBleGUKIAogICAgIC8vIERvbid0IHB1dCB0
byBhbiBvYmplY3QgaWYgdG9TdHJpbmcgdGhyb3dzIGFuIGV4Y2VwdGlvbi4KICAgICBJZGVudGlm
aWVyIGlkZW50ID0gcHJvcGVydHkudG9TdHJpbmcoZXhlYyktPnRvSWRlbnRpZmllcihleGVjKTsK
LSAgICBpZiAodm0tPmV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBQdXRQcm9w
ZXJ0eVNsb3Qgc2xvdChiYXNlVmFsdWUsIHN0cmljdCk7Ci0gICAgaWYgKGRpcmVjdCkgewotICAg
ICAgICBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKGlkZW50KTsKLSAgICAgICAgUkVMRUFTRV9B
U1NFUlQoYmFzZVZhbHVlLmlzT2JqZWN0KCkpOwotICAgICAgICBpZiAoT3B0aW9uYWw8dWludDMy
X3Q+IGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKSkKLSAgICAgICAgICAgIGFzT2JqZWN0
KGJhc2VWYWx1ZSktPnB1dERpcmVjdEluZGV4KGV4ZWMsIGluZGV4LnZhbHVlKCksIHZhbHVlLCAw
LCBzdHJpY3QgPyBQdXREaXJlY3RJbmRleFNob3VsZFRocm93IDogUHV0RGlyZWN0SW5kZXhTaG91
bGROb3RUaHJvdyk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGFzT2JqZWN0KGJhc2VWYWx1
ZSktPnB1dERpcmVjdCgqdm0sIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotICAgIH0gZWxz
ZQotICAgICAgICBiYXNlVmFsdWUucHV0KGV4ZWMsIGlkZW50LCB2YWx1ZSwgc2xvdCk7CisgICAg
aWYgKCF2bS0+ZXhjZXB0aW9uKCkpIHsKKyAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3QoYmFz
ZVZhbHVlLCBzdHJpY3QpOworICAgICAgICBpZiAoZGlyZWN0KSB7CisgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVChiYXNlVmFsdWUuaXNPYmplY3QoKSk7CisgICAgICAgICAgICBhc09iamVjdChi
YXNlVmFsdWUpLT5wdXREaXJlY3QoKnZtLCBpZGVudCwgdmFsdWUsIHNsb3QpOworICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIGJhc2VWYWx1ZS5wdXQoZXhlYywgaWRlbnQsIHZhbHVlLCBzbG90
KTsKKyAgICB9CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IGZlMmNiZTQwMTFmM2UzYTE1
ZDk2ZjYyMGUxOGMzMGFhZWRhZmEzNGEuLjM3YWE0NWQ1MzYzOTExYTU5NjNmMGM5MGMwZDFjZWRm
YmJlMzIyZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0
aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNw
cApAQCAtNTEsNyArNTEsNiBAQAogI2luY2x1ZGUgIkpTV2l0aFNjb3BlLmgiCiAjaW5jbHVkZSAi
TGVnYWN5UHJvZmlsZXIuaCIKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgotI2luY2x1
ZGUgIlByb3BlcnR5TmFtZS5oIgogI2luY2x1ZGUgIlJlcGF0Y2guaCIKICNpbmNsdWRlICJSZXBh
dGNoQnVmZmVyLmgiCiAjaW5jbHVkZSAiVGVzdFJ1bm5lclV0aWxzLmgiCkBAIC00ODEsNDAgKzQ4
MCwxOCBAQCBzdGF0aWMgdm9pZCBwdXRCeVZhbChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1
ZSBiYXNlVmFsdWUsIEpTVmFsdWUgc3Vic2NyaXB0LAogCiBzdGF0aWMgdm9pZCBkaXJlY3RQdXRC
eVZhbChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEpTVmFsdWUg
c3Vic2NyaXB0LCBKU1ZhbHVlIHZhbHVlKQogewotICAgIGJvb2wgaXNTdHJpY3RNb2RlID0gY2Fs
bEZyYW1lLT5jb2RlQmxvY2soKS0+aXNTdHJpY3RNb2RlKCk7CiAgICAgaWYgKExJS0VMWShzdWJz
Y3JpcHQuaXNVSW50MzIoKSkpIHsKLSAgICAgICAgdWludDMyX3QgaW5kZXggPSBzdWJzY3JpcHQu
YXNVSW50MzIoKTsKLSAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShpbmRleCAhPSBQcm9wZXJ0
eU5hbWU6Ok5vdEFuSW5kZXgsICJTaW5jZSBKU1ZhbHVlOjppc1VJbnQzMiByZXR1cm5zIHRydWUg
b25seSB3aGVuIHRoZSBib3hlZCB2YWx1ZSBpcyBpbnQzMl90IGFuZCBwb3NpdGl2ZSwgaXQgZG9l
c24ndCByZXR1cm4gdHJ1ZSBmb3IgdWludDMyX3QgbWF4IHZhbHVlIHRoYXQgaXMgUHJvcGVydHlO
YW1lOjpOb3RBbkluZGV4LiIpOwotICAgICAgICBiYXNlT2JqZWN0LT5wdXREaXJlY3RJbmRleChj
YWxsRnJhbWUsIGluZGV4LCB2YWx1ZSwgMCwgaXNTdHJpY3RNb2RlID8gUHV0RGlyZWN0SW5kZXhT
aG91bGRUaHJvdyA6IFB1dERpcmVjdEluZGV4U2hvdWxkTm90VGhyb3cpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgaWYgKHN1YnNjcmlwdC5pc0RvdWJsZSgpKSB7Ci0gICAgICAgIGRv
dWJsZSBzdWJzY3JpcHRBc0RvdWJsZSA9IHN1YnNjcmlwdC5hc0RvdWJsZSgpOwotICAgICAgICB1
aW50MzJfdCBzdWJzY3JpcHRBc1VJbnQzMiA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihzdWJzY3Jp
cHRBc0RvdWJsZSk7Ci0gICAgICAgIGlmIChzdWJzY3JpcHRBc0RvdWJsZSA9PSBzdWJzY3JpcHRB
c1VJbnQzMiAmJiBzdWJzY3JpcHRBc1VJbnQzMiAhPSBQcm9wZXJ0eU5hbWU6Ok5vdEFuSW5kZXgp
IHsKLSAgICAgICAgICAgIGJhc2VPYmplY3QtPnB1dERpcmVjdEluZGV4KGNhbGxGcmFtZSwgc3Vi
c2NyaXB0QXNVSW50MzIsIHZhbHVlLCAwLCBpc1N0cmljdE1vZGUgPyBQdXREaXJlY3RJbmRleFNo
b3VsZFRocm93IDogUHV0RGlyZWN0SW5kZXhTaG91bGROb3RUaHJvdyk7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoaXNOYW1lKHN1YnNjcmlwdCkpIHsK
LSAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3QoYmFzZU9iamVjdCwgaXNTdHJpY3RNb2RlKTsK
KyAgICAgICAgdWludDMyX3QgaSA9IHN1YnNjcmlwdC5hc1VJbnQzMigpOworICAgICAgICBiYXNl
T2JqZWN0LT5wdXREaXJlY3RJbmRleChjYWxsRnJhbWUsIGksIHZhbHVlKTsKKyAgICB9IGVsc2Ug
aWYgKGlzTmFtZShzdWJzY3JpcHQpKSB7CisgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KGJh
c2VPYmplY3QsIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpKTsKICAgICAg
ICAgYmFzZU9iamVjdC0+cHV0RGlyZWN0KGNhbGxGcmFtZS0+dm0oKSwganNDYXN0PE5hbWVJbnN0
YW5jZSo+KHN1YnNjcmlwdC5hc0NlbGwoKSktPnByaXZhdGVOYW1lKCksIHZhbHVlLCBzbG90KTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIC8vIERvbid0IHB1dCB0byBhbiBvYmplY3Qg
aWYgdG9TdHJpbmcgdGhyb3dzIGFuIGV4Y2VwdGlvbi4KLSAgICBJZGVudGlmaWVyIHByb3BlcnR5
ID0gc3Vic2NyaXB0LnRvU3RyaW5nKGNhbGxGcmFtZSktPnRvSWRlbnRpZmllcihjYWxsRnJhbWUp
OwotICAgIGlmIChjYWxsRnJhbWUtPnZtKCkuZXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybjsK
LQotICAgIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUocHJvcGVydHkpOwotICAgIGlmIChPcHRp
b25hbDx1aW50MzJfdD4gaW5kZXggPSBwcm9wZXJ0eU5hbWUuYXNJbmRleCgpKQotICAgICAgICBi
YXNlT2JqZWN0LT5wdXREaXJlY3RJbmRleChjYWxsRnJhbWUsIGluZGV4LnZhbHVlKCksIHZhbHVl
LCAwLCBpc1N0cmljdE1vZGUgPyBQdXREaXJlY3RJbmRleFNob3VsZFRocm93IDogUHV0RGlyZWN0
SW5kZXhTaG91bGROb3RUaHJvdyk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIFB1dFByb3BlcnR5U2xv
dCBzbG90KGJhc2VPYmplY3QsIGlzU3RyaWN0TW9kZSk7Ci0gICAgICAgIGJhc2VPYmplY3QtPnB1
dERpcmVjdChjYWxsRnJhbWUtPnZtKCksIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAg
IH0gZWxzZSB7CisgICAgICAgIElkZW50aWZpZXIgcHJvcGVydHkgPSBzdWJzY3JpcHQudG9TdHJp
bmcoY2FsbEZyYW1lKS0+dG9JZGVudGlmaWVyKGNhbGxGcmFtZSk7CisgICAgICAgIGlmICghY2Fs
bEZyYW1lLT52bSgpLmV4Y2VwdGlvbigpKSB7IC8vIERvbid0IHB1dCB0byBhbiBvYmplY3QgaWYg
dG9TdHJpbmcgdGhyZXcgYW4gZXhjZXB0aW9uLgorICAgICAgICAgICAgUHV0UHJvcGVydHlTbG90
IHNsb3QoYmFzZU9iamVjdCwgY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+aXNTdHJpY3RNb2RlKCkp
OworICAgICAgICAgICAgYmFzZU9iamVjdC0+cHV0RGlyZWN0KGNhbGxGcmFtZS0+dm0oKSwgcHJv
cGVydHksIHZhbHVlLCBzbG90KTsKKyAgICAgICAgfQogICAgIH0KIH0KIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25QdXRCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvUmVwYXRjaC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCmlu
ZGV4IGFkZTYyZDBhNWMwNDZlZDQxYTc5ZDRiMzM3OTJmOGY0NWJjZjQxZWMuLmU4NDllZGM4YjEw
ZDFjMzQzZGQ0NTUzNDM5ZmNhODZmYzBhN2U4Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9S
ZXBhdGNoLmNwcApAQCAtOTg5LDcgKzk4OSw3IEBAIHN0YXRpYyBTdHJ1Y3R1cmUqIGVtaXRQdXRU
cmFuc2l0aW9uU3R1YkFuZEdldE9sZFN0cnVjdHVyZShFeGVjU3RhdGUqIGV4ZWMsIFZNKiB2CiB7
CiAgICAgUHJvcGVydHlOYW1lIHBuYW1lKGlkZW50KTsKICAgICBTdHJ1Y3R1cmUqIG9sZFN0cnVj
dHVyZSA9IHN0cnVjdHVyZTsKLSAgICBpZiAoIW9sZFN0cnVjdHVyZS0+aXNPYmplY3QoKSB8fCBv
bGRTdHJ1Y3R1cmUtPmlzRGljdGlvbmFyeSgpIHx8IHBuYW1lLmFzSW5kZXgoKSkKKyAgICBpZiAo
IW9sZFN0cnVjdHVyZS0+aXNPYmplY3QoKSB8fCBvbGRTdHJ1Y3R1cmUtPmlzRGljdGlvbmFyeSgp
IHx8IHBuYW1lLmFzSW5kZXgoKSAhPSBQcm9wZXJ0eU5hbWU6Ok5vdEFuSW5kZXgpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCiAgICAgUHJvcGVydHlPZmZzZXQgcHJvcGVydHlPZmZzZXQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qc2MuY3BwCmluZGV4IDI0ZGIyNDUzZGFkZDllY2Y4YzdhYmQyMDU0MmQ4OGMyMjRh
OTU2YTQuLjUwNmJkMGNiNjVhYzQ5M2E0Y2NjYjExMjkyM2I3YWQ5NGIxMmRmZDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qc2MuY3BwCkBAIC0zMzQsOSArMzM0LDEwIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICB9CiAKLSAgICAgICAgT3B0aW9uYWw8dWludDMyX3Q+IGluZGV4
ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKTsKLSAgICAgICAgaWYgKGluZGV4ICYmIGluZGV4LnZh
bHVlKCkgPCB0aGlzT2JqZWN0LT5nZXRMZW5ndGgoKSkgewotICAgICAgICAgICAgc2xvdC5zZXRW
YWx1ZSh0aGlzT2JqZWN0LCBEb250RGVsZXRlIHwgRG9udEVudW0sIGpzTnVtYmVyKHRoaXNPYmpl
Y3QtPm1fdmVjdG9yW2luZGV4LnZhbHVlKCldKSk7CisgICAgICAgIHVuc2lnbmVkIGluZGV4ID0g
cHJvcGVydHlOYW1lLmFzSW5kZXgoKTsKKyAgICAgICAgaWYgKGluZGV4IDwgdGhpc09iamVjdC0+
Z2V0TGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChpbmRleCAhPSBQcm9wZXJ0eU5hbWU6
Ok5vdEFuSW5kZXgpOworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBEb250
RGVsZXRlIHwgRG9udEVudW0sIGpzTnVtYmVyKHRoaXNPYmplY3QtPm1fdmVjdG9yW2luZGV4XSkp
OwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXggZGVlOWUyZmVlYjM5OTA5
YzZkMGNmOWExYTA3YTk1OWM2ZTE1MWFkMy4uODViYWMyNjAzYTdiMjE1N2I5NTU5YjJmZTE4NWE2
Nzc2NTJkMmQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuY3BwCkBAIC04MTksNDEgKzgxOSwxOCBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93
X3BhdGhfcHV0X2J5X3ZhbF9kaXJlY3QpCiAgICAgSlNWYWx1ZSB2YWx1ZSA9IExMSU5UX09QX0Mo
MykuanNWYWx1ZSgpOwogICAgIFJFTEVBU0VfQVNTRVJUKGJhc2VWYWx1ZS5pc09iamVjdCgpKTsK
ICAgICBKU09iamVjdCogYmFzZU9iamVjdCA9IGFzT2JqZWN0KGJhc2VWYWx1ZSk7Ci0gICAgYm9v
bCBpc1N0cmljdE1vZGUgPSBleGVjLT5jb2RlQmxvY2soKS0+aXNTdHJpY3RNb2RlKCk7CiAgICAg
aWYgKExJS0VMWShzdWJzY3JpcHQuaXNVSW50MzIoKSkpIHsKLSAgICAgICAgdWludDMyX3QgaW5k
ZXggPSBzdWJzY3JpcHQuYXNVSW50MzIoKTsKLSAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShp
bmRleCAhPSBQcm9wZXJ0eU5hbWU6Ok5vdEFuSW5kZXgsICJTaW5jZSBKU1ZhbHVlOjppc1VJbnQz
MiByZXR1cm5zIHRydWUgb25seSB3aGVuIHRoZSBib3hlZCB2YWx1ZSBpcyBpbnQzMl90IGFuZCBw
b3NpdGl2ZSwgaXQgZG9lc24ndCByZXR1cm4gdHJ1ZSBmb3IgdWludDMyX3QgbWF4IHZhbHVlIHRo
YXQgaXMgUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4LiIpOwotICAgICAgICBiYXNlT2JqZWN0LT5w
dXREaXJlY3RJbmRleChleGVjLCBpbmRleCwgdmFsdWUsIDAsIGlzU3RyaWN0TW9kZSA/IFB1dERp
cmVjdEluZGV4U2hvdWxkVGhyb3cgOiBQdXREaXJlY3RJbmRleFNob3VsZE5vdFRocm93KTsKLSAg
ICAgICAgTExJTlRfRU5EKCk7Ci0gICAgfQotCi0KLSAgICBpZiAoc3Vic2NyaXB0LmlzRG91Ymxl
KCkpIHsKLSAgICAgICAgZG91YmxlIHN1YnNjcmlwdEFzRG91YmxlID0gc3Vic2NyaXB0LmFzRG91
YmxlKCk7Ci0gICAgICAgIHVpbnQzMl90IHN1YnNjcmlwdEFzVUludDMyID0gc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KHN1YnNjcmlwdEFzRG91YmxlKTsKLSAgICAgICAgaWYgKHN1YnNjcmlwdEFzRG91
YmxlID09IHN1YnNjcmlwdEFzVUludDMyICYmIHN1YnNjcmlwdEFzVUludDMyICE9IFByb3BlcnR5
TmFtZTo6Tm90QW5JbmRleCkgewotICAgICAgICAgICAgYmFzZU9iamVjdC0+cHV0RGlyZWN0SW5k
ZXgoZXhlYywgc3Vic2NyaXB0QXNVSW50MzIsIHZhbHVlLCAwLCBpc1N0cmljdE1vZGUgPyBQdXRE
aXJlY3RJbmRleFNob3VsZFRocm93IDogUHV0RGlyZWN0SW5kZXhTaG91bGROb3RUaHJvdyk7Ci0g
ICAgICAgICAgICBMTElOVF9FTkQoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChpc05h
bWUoc3Vic2NyaXB0KSkgewotICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChiYXNlT2JqZWN0
LCBpc1N0cmljdE1vZGUpOworICAgICAgICB1aW50MzJfdCBpID0gc3Vic2NyaXB0LmFzVUludDMy
KCk7CisgICAgICAgIGJhc2VPYmplY3QtPnB1dERpcmVjdEluZGV4KGV4ZWMsIGksIHZhbHVlKTsK
KyAgICB9IGVsc2UgaWYgKGlzTmFtZShzdWJzY3JpcHQpKSB7CisgICAgICAgIFB1dFByb3BlcnR5
U2xvdCBzbG90KGJhc2VPYmplY3QsIGV4ZWMtPmNvZGVCbG9jaygpLT5pc1N0cmljdE1vZGUoKSk7
CiAgICAgICAgIGJhc2VPYmplY3QtPnB1dERpcmVjdChleGVjLT52bSgpLCBqc0Nhc3Q8TmFtZUlu
c3RhbmNlKj4oc3Vic2NyaXB0LmFzQ2VsbCgpKS0+cHJpdmF0ZU5hbWUoKSwgdmFsdWUsIHNsb3Qp
OwotICAgICAgICBMTElOVF9FTkQoKTsKLSAgICB9Ci0KLSAgICAvLyBEb24ndCBwdXQgdG8gYW4g
b2JqZWN0IGlmIHRvU3RyaW5nIHRocm93cyBhbiBleGNlcHRpb24uCi0gICAgSWRlbnRpZmllciBw
cm9wZXJ0eSA9IHN1YnNjcmlwdC50b1N0cmluZyhleGVjKS0+dG9JZGVudGlmaWVyKGV4ZWMpOwot
ICAgIGlmIChleGVjLT52bSgpLmV4Y2VwdGlvbigpKQotICAgICAgICBMTElOVF9FTkQoKTsKLQot
ICAgIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUocHJvcGVydHkpOwotICAgIGlmIChPcHRpb25h
bDx1aW50MzJfdD4gaW5kZXggPSBwcm9wZXJ0eU5hbWUuYXNJbmRleCgpKQotICAgICAgICBiYXNl
T2JqZWN0LT5wdXREaXJlY3RJbmRleChleGVjLCBpbmRleC52YWx1ZSgpLCB2YWx1ZSwgMCwgaXNT
dHJpY3RNb2RlID8gUHV0RGlyZWN0SW5kZXhTaG91bGRUaHJvdyA6IFB1dERpcmVjdEluZGV4U2hv
dWxkTm90VGhyb3cpOwotICAgIGVsc2UgewotICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChi
YXNlT2JqZWN0LCBpc1N0cmljdE1vZGUpOwotICAgICAgICBiYXNlT2JqZWN0LT5wdXREaXJlY3Qo
ZXhlYy0+dm0oKSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eSA9IHN1YnNjcmlwdC50b1N0cmluZyhleGVjKS0+dG9J
ZGVudGlmaWVyKGV4ZWMpOworICAgICAgICBpZiAoIWV4ZWMtPnZtKCkuZXhjZXB0aW9uKCkpIHsg
Ly8gRG9uJ3QgcHV0IHRvIGFuIG9iamVjdCBpZiB0b1N0cmluZyB0aHJldyBhbiBleGNlcHRpb24u
CisgICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChiYXNlT2JqZWN0LCBleGVjLT5jb2Rl
QmxvY2soKS0+aXNTdHJpY3RNb2RlKCkpOworICAgICAgICAgICAgYmFzZU9iamVjdC0+cHV0RGly
ZWN0KGV4ZWMtPnZtKCksIHByb3BlcnR5LCB2YWx1ZSwgc2xvdCk7CisgICAgICAgIH0KICAgICB9
CiAgICAgTExJTlRfRU5EKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Bcmd1bWVudHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJn
dW1lbnRzLmNwcAppbmRleCAyY2E4M2ZlZmVjNjUwMmEyNGNiMjhmMDEzZDUyMDQzZDgwNGE5ZDFj
Li42YjZiZWFjYjA0YjM5ZDFmYTMwMTQzNjYxNDdkMzQ5NGM3YmZjZGNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKQEAgLTE2MSwxMSArMTYxLDExIEBA
IHZvaWQgQXJndW1lbnRzOjpjcmVhdGVTdHJpY3RNb2RlQ2FsbGVlSWZOZWNlc3NhcnkoRXhlY1N0
YXRlKiBleGVjKQogYm9vbCBBcmd1bWVudHM6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCog
b2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKIHsKICAgICBBcmd1bWVudHMqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8QXJn
dW1lbnRzKj4ob2JqZWN0KTsKLSAgICBpZiAoT3B0aW9uYWw8dWludDMyX3Q+IGluZGV4ID0gcHJv
cGVydHlOYW1lLmFzSW5kZXgoKSkgewotICAgICAgICBpZiAoSlNWYWx1ZSB2YWx1ZSA9IHRoaXNP
YmplY3QtPnRyeUdldEFyZ3VtZW50KGluZGV4LnZhbHVlKCkpKSB7Ci0gICAgICAgICAgICBzbG90
LnNldFZhbHVlKHRoaXNPYmplY3QsIE5vbmUsIHZhbHVlKTsKLSAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgICAgICB9CisgICAgdW5zaWduZWQgaSA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7
CisgICAgaWYgKEpTVmFsdWUgdmFsdWUgPSB0aGlzT2JqZWN0LT50cnlHZXRBcmd1bWVudChpKSkg
eworICAgICAgICBSRUxFQVNFX0FTU0VSVChpIDwgUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4KTsK
KyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBOb25lLCB2YWx1ZSk7CisgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJv
cGVydHlOYW1lcygpLmxlbmd0aCAmJiBMSUtFTFkoIXRoaXNPYmplY3QtPm1fb3ZlcnJvZGVMZW5n
dGgpKSB7CkBAIC0yMjQsOCArMjI0LDggQEAgdm9pZCBBcmd1bWVudHM6OnB1dEJ5SW5kZXgoSlND
ZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmEKIHZvaWQg
QXJndW1lbnRzOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
ICAgICBBcmd1bWVudHMqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8QXJndW1lbnRzKj4oY2VsbCk7Ci0g
ICAgT3B0aW9uYWw8dWludDMyX3Q+IGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKTsKLSAg
ICBpZiAoaW5kZXggJiYgdGhpc09iamVjdC0+dHJ5U2V0QXJndW1lbnQoZXhlYy0+dm0oKSwgaW5k
ZXgudmFsdWUoKSwgdmFsdWUpKQorICAgIHVuc2lnbmVkIGkgPSBwcm9wZXJ0eU5hbWUuYXNJbmRl
eCgpOworICAgIGlmICh0aGlzT2JqZWN0LT50cnlTZXRBcmd1bWVudChleGVjLT52bSgpLCBpLCB2
YWx1ZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+
cHJvcGVydHlOYW1lcygpLmxlbmd0aCAmJiAhdGhpc09iamVjdC0+bV9vdmVycm9kZUxlbmd0aCkg
ewpAQCAtMjY3LDExICsyNjcsMTIgQEAgYm9vbCBBcmd1bWVudHM6OmRlbGV0ZVByb3BlcnR5KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGUKICAgICAgICAg
cmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5KGNlbGwsIGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAK
ICAgICBBcmd1bWVudHMqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8QXJndW1lbnRzKj4oY2VsbCk7Ci0g
ICAgT3B0aW9uYWw8dWludDMyX3Q+IGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKTsKLSAg
ICBpZiAoaW5kZXggJiYgaW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPm1fbnVtQXJndW1lbnRz
KSB7CisgICAgdW5zaWduZWQgaSA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7CisgICAgaWYgKGkg
PCB0aGlzT2JqZWN0LT5tX251bUFyZ3VtZW50cykgeworICAgICAgICBSRUxFQVNFX0FTU0VSVChp
IDwgUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4KTsKICAgICAgICAgaWYgKCFCYXNlOjpkZWxldGVQ
cm9wZXJ0eShjZWxsLCBleGVjLCBwcm9wZXJ0eU5hbWUpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICBpZiAodGhpc09iamVjdC0+dHJ5RGVsZXRlQXJndW1lbnQoZXhlYy0+dm0o
KSwgaW5kZXgudmFsdWUoKSkpCisgICAgICAgIGlmICh0aGlzT2JqZWN0LT50cnlEZWxldGVBcmd1
bWVudChleGVjLT52bSgpLCBpKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApA
QCAtMjk3LDEzICsyOTgsMTMgQEAgYm9vbCBBcmd1bWVudHM6OmRlbGV0ZVByb3BlcnR5KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGUKIGJvb2wgQXJndW1l
bnRzOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMs
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgZGVz
Y3JpcHRvciwgYm9vbCBzaG91bGRUaHJvdykKIHsKICAgICBBcmd1bWVudHMqIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8QXJndW1lbnRzKj4ob2JqZWN0KTsKLSAgICBPcHRpb25hbDx1aW50MzJfdD4gb3B0
aW9uYWxJbmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7Ci0gICAgaWYgKG9wdGlvbmFsSW5k
ZXggJiYgb3B0aW9uYWxJbmRleC52YWx1ZSgpIDwgdGhpc09iamVjdC0+bV9udW1Bcmd1bWVudHMp
IHsKKyAgICB1bnNpZ25lZCBpID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKTsKKyAgICBpZiAoaSA8
IHRoaXNPYmplY3QtPm1fbnVtQXJndW1lbnRzKSB7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGkg
PCBQcm9wZXJ0eU5hbWU6Ok5vdEFuSW5kZXgpOwogICAgICAgICAvLyBJZiB0aGUgcHJvcGVydHkg
aXMgbm90IHlldCBwcmVzZW50IG9uIHRoZSBvYmplY3QsIGFuZCBpcyBub3QgeWV0IG1hcmtlZCBh
cyBkZWxldGVkLCB0aGVuIGFkZCBpdCBub3cuCi0gICAgICAgIHVpbnQzMl90IGluZGV4ID0gb3B0
aW9uYWxJbmRleC52YWx1ZSgpOwogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCh0aGlzT2JqZWN0
KTsKLSAgICAgICAgaWYgKCF0aGlzT2JqZWN0LT5pc0RlbGV0ZWRBcmd1bWVudChpbmRleCkgJiYg
IUpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KSkgewotICAgICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IHRoaXNPYmplY3QtPnRy
eUdldEFyZ3VtZW50KGluZGV4KTsKKyAgICAgICAgaWYgKCF0aGlzT2JqZWN0LT5pc0RlbGV0ZWRB
cmd1bWVudChpKSAmJiAhSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBl
eGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CisgICAgICAgICAgICBKU1ZhbHVlIHZhbHVlID0g
dGhpc09iamVjdC0+dHJ5R2V0QXJndW1lbnQoaSk7CiAgICAgICAgICAgICBBU1NFUlQodmFsdWUp
OwogICAgICAgICAgICAgb2JqZWN0LT5wdXREaXJlY3RNYXlCZUluZGV4KGV4ZWMsIHByb3BlcnR5
TmFtZSwgdmFsdWUpOwogICAgICAgICB9CkBAIC0zMTIsMjAgKzMxMywyMCBAQCBib29sIEFyZ3Vt
ZW50czo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVj
LCBQcm9wZXJ0eU5hbQogCiAgICAgICAgIC8vIEZyb20gRVMgNS4xLCAxMC42IEFyZ3VtZW50cyBP
YmplY3QKICAgICAgICAgLy8gNS4gSWYgdGhlIHZhbHVlIG9mIGlzTWFwcGVkIGlzIG5vdCB1bmRl
ZmluZWQsIHRoZW4KLSAgICAgICAgaWYgKHRoaXNPYmplY3QtPmlzQXJndW1lbnQoaW5kZXgpKSB7
CisgICAgICAgIGlmICh0aGlzT2JqZWN0LT5pc0FyZ3VtZW50KGkpKSB7CiAgICAgICAgICAgICAv
LyBhLiBJZiBJc0FjY2Vzc29yRGVzY3JpcHRvcihEZXNjKSBpcyB0cnVlLCB0aGVuCiAgICAgICAg
ICAgICBpZiAoZGVzY3JpcHRvci5pc0FjY2Vzc29yRGVzY3JpcHRvcigpKSB7CiAgICAgICAgICAg
ICAgICAgLy8gaS4gQ2FsbCB0aGUgW1tEZWxldGVdXSBpbnRlcm5hbCBtZXRob2Qgb2YgbWFwIHBh
c3NpbmcgUCwgYW5kIGZhbHNlIGFzIHRoZSBhcmd1bWVudHMuCi0gICAgICAgICAgICAgICAgdGhp
c09iamVjdC0+dHJ5RGVsZXRlQXJndW1lbnQoZXhlYy0+dm0oKSwgaW5kZXgpOworICAgICAgICAg
ICAgICAgIHRoaXNPYmplY3QtPnRyeURlbGV0ZUFyZ3VtZW50KGV4ZWMtPnZtKCksIGkpOwogICAg
ICAgICAgICAgfSBlbHNlIHsgLy8gYi4gRWxzZQogICAgICAgICAgICAgICAgIC8vIGkuIElmIERl
c2MuW1tWYWx1ZV1dIGlzIHByZXNlbnQsIHRoZW4KICAgICAgICAgICAgICAgICAvLyAxLiBDYWxs
IHRoZSBbW1B1dF1dIGludGVybmFsIG1ldGhvZCBvZiBtYXAgcGFzc2luZyBQLCBEZXNjLltbVmFs
dWVdXSwgYW5kIFRocm93IGFzIHRoZSBhcmd1bWVudHMuCiAgICAgICAgICAgICAgICAgaWYgKGRl
c2NyaXB0b3IudmFsdWUoKSkKLSAgICAgICAgICAgICAgICAgICAgdGhpc09iamVjdC0+dHJ5U2V0
QXJndW1lbnQoZXhlYy0+dm0oKSwgaW5kZXgsIGRlc2NyaXB0b3IudmFsdWUoKSk7CisgICAgICAg
ICAgICAgICAgICAgIHRoaXNPYmplY3QtPnRyeVNldEFyZ3VtZW50KGV4ZWMtPnZtKCksIGksIGRl
c2NyaXB0b3IudmFsdWUoKSk7CiAgICAgICAgICAgICAgICAgLy8gaWkuIElmIERlc2MuW1tXcml0
YWJsZV1dIGlzIHByZXNlbnQgYW5kIGl0cyB2YWx1ZSBpcyBmYWxzZSwgdGhlbgogICAgICAgICAg
ICAgICAgIC8vIDEuIENhbGwgdGhlIFtbRGVsZXRlXV0gaW50ZXJuYWwgbWV0aG9kIG9mIG1hcCBw
YXNzaW5nIFAgYW5kIGZhbHNlIGFzIGFyZ3VtZW50cy4KICAgICAgICAgICAgICAgICBpZiAoZGVz
Y3JpcHRvci53cml0YWJsZVByZXNlbnQoKSAmJiAhZGVzY3JpcHRvci53cml0YWJsZSgpKQotICAg
ICAgICAgICAgICAgICAgICB0aGlzT2JqZWN0LT50cnlEZWxldGVBcmd1bWVudChleGVjLT52bSgp
LCBpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIHRoaXNPYmplY3QtPnRyeURlbGV0ZUFyZ3Vt
ZW50KGV4ZWMtPnZtKCksIGkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIHJl
dHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90
b3R5cGUuY3BwCmluZGV4IGQ4NzY5YzViZjcxMDRjMDMxYWNhMTQzNDU0N2I0MjFlYTYzZTcwOTku
LmM3OTljYzMxZTFiZjEwNjY2YjllNGI3ZjVmNTFiZjg0MThjZGNhN2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTc0MiwxMSAr
NzQyLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTb3J0
KEV4ZWNTdGF0ZSogZXhlYykKICAgICBWZWN0b3I8dWludDMyX3QsIDAsIFVuc2FmZVZlY3Rvck92
ZXJmbG93PiBrZXlzOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbmFtZUFycmF5LnNpemUo
KTsgKytpKSB7CiAgICAgICAgIFByb3BlcnR5TmFtZSBuYW1lID0gbmFtZUFycmF5W2ldOwotICAg
ICAgICBPcHRpb25hbDx1aW50MzJfdD4gb3B0aW9uYWxJbmRleCA9IG5hbWUuYXNJbmRleCgpOwot
ICAgICAgICBpZiAoIW9wdGlvbmFsSW5kZXgpCisgICAgICAgIHVpbnQzMl90IGluZGV4ID0gbmFt
ZS5hc0luZGV4KCk7CisgICAgICAgIGlmIChpbmRleCA9PSBQcm9wZXJ0eU5hbWU6Ok5vdEFuSW5k
ZXgpCiAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICB1aW50MzJfdCBpbmRleCA9IG9w
dGlvbmFsSW5kZXgudmFsdWUoKTsKKyAgICAgICAgCiAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBn
ZXRPckhvbGUodGhpc09iaiwgZXhlYywgaW5kZXgpOwogICAgICAgICBpZiAoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAppbmRleCA3MzA3
YjMxZGMxNGNiZGE2ZDg0NWNmN2Q2N2ZmMWE1MTJkNmRmYWEwLi41MTc3MjFlOTg0NDllMWVkM2Vh
MDVlNTA5NmE0M2MzMTQ4Mjg4ODkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0FycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FycmF5LmNwcApAQCAtMTU4LDkgKzE1OCw5IEBAIGJvb2wgSlNBcnJheTo6ZGVmaW5lT3duUHJv
cGVydHkoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUKIAog
ICAgIC8vIDQuIEVsc2UgaWYgUCBpcyBhbiBhcnJheSBpbmRleCAoMTUuNCksIHRoZW4KICAgICAv
LyBhLiBMZXQgaW5kZXggYmUgVG9VaW50MzIoUCkuCi0gICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90
PiBvcHRpb25hbEluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKSkgeworICAgIHVuc2lnbmVk
IGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKTsKKyAgICBpZiAoaW5kZXggIT0gUHJvcGVy
dHlOYW1lOjpOb3RBbkluZGV4KSB7CiAgICAgICAgIC8vIGIuIFJlamVjdCBpZiBpbmRleCA+PSBv
bGRMZW4gYW5kIG9sZExlbkRlc2MuW1tXcml0YWJsZV1dIGlzIGZhbHNlLgotICAgICAgICB1aW50
MzJfdCBpbmRleCA9IG9wdGlvbmFsSW5kZXgudmFsdWUoKTsKICAgICAgICAgaWYgKGluZGV4ID49
IGFycmF5LT5sZW5ndGgoKSAmJiAhYXJyYXktPmlzTGVuZ3RoV3JpdGFibGUoKSkKICAgICAgICAg
ICAgIHJldHVybiByZWplY3QoZXhlYywgdGhyb3dFeGNlcHRpb24sICJBdHRlbXB0aW5nIHRvIGRl
ZmluZSBudW1lcmljIHByb3BlcnR5IG9uIGFycmF5IHdpdGggbm9uLXdyaXRhYmxlIGxlbmd0aCBw
cm9wZXJ0eS4iKTsKICAgICAgICAgLy8gYy4gTGV0IHN1Y2NlZWRlZCBiZSB0aGUgcmVzdWx0IG9m
IGNhbGxpbmcgdGhlIGRlZmF1bHQgW1tEZWZpbmVPd25Qcm9wZXJ0eV1dIGludGVybmFsIG1ldGhv
ZCAoOC4xMi45KSBvbiBBIHBhc3NpbmcgUCwgRGVzYywgYW5kIGZhbHNlIGFzIGFyZ3VtZW50cy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5jcHAKaW5kZXggNzY4
NjA1NWY1NTU1YzEyODZlZDEyZTA0MDM4M2Q1MTExNTNmMzc2ZS4uYzIzM2Y0YzcwMDIxY2Q3ODUz
Mjg1OWUxNWIwY2I2MzA3NmM5ZTk1YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDSlNWYWx1ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDSlNWYWx1ZS5jcHAKQEAgLTExOSw4ICsxMTksOSBAQCB2b2lkIEpTVmFsdWU6OnB1dFRv
UHJpbWl0aXZlKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAKLSAgICBpZiAoT3B0aW9uYWw8dWlu
dDMyX3Q+IGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKSkgewotICAgICAgICBwdXRUb1By
aW1pdGl2ZUJ5SW5kZXgoZXhlYywgaW5kZXgudmFsdWUoKSwgdmFsdWUsIHNsb3QuaXNTdHJpY3RN
b2RlKCkpOworICAgIHVuc2lnbmVkIGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKTsKKyAg
ICBpZiAoaW5kZXggIT0gUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4KSB7CisgICAgICAgIHB1dFRv
UHJpbWl0aXZlQnlJbmRleChleGVjLCBpbmRleCwgdmFsdWUsIHNsb3QuaXNTdHJpY3RNb2RlKCkp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oCmlu
ZGV4IGFkMDcxNmM4NzBiYTk5YmE5YjcwMTQzODM4ZThmNDRmZWU1MDgwNGIuLjZkMGQyMWZhNjFm
Mzk4OWY5ZDliNDE5OWRhYTg4OGU5ZjY2NDRlY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5l
cy5oCkBAIC0zMDIsOSArMzAyLDkgQEAgYm9vbCBKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFw
dG9yPjo6Z2V0T3duUHJvcGVydHlTbG90KAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAg
ICAgCi0gICAgT3B0aW9uYWw8dWludDMyX3Q+IGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgo
KTsKLSAgICBpZiAoaW5kZXggJiYgdGhpc09iamVjdC0+Y2FuR2V0SW5kZXhRdWlja2x5KGluZGV4
LnZhbHVlKCkpKSB7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5LCB0aGlzT2JqZWN0LT5nZXRJbmRleFF1aWNrbHkoaW5kZXgudmFsdWUoKSkp
OworICAgIHVuc2lnbmVkIGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKTsKKyAgICBpZiAo
aW5kZXggIT0gUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4ICYmIHRoaXNPYmplY3QtPmNhbkdldElu
ZGV4UXVpY2tseShpbmRleCkpIHsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBE
b250RGVsZXRlIHwgUmVhZE9ubHksIHRoaXNPYmplY3QtPmdldEluZGV4UXVpY2tseShpbmRleCkp
OwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCkBAIC0zMjQsOCArMzI0LDkgQEAg
dm9pZCBKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6cHV0KAogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIAotICAgIGlmIChPcHRpb25hbDx1aW50MzJfdD4gaW5kZXggPSBwcm9w
ZXJ0eU5hbWUuYXNJbmRleCgpKSB7Ci0gICAgICAgIHB1dEJ5SW5kZXgodGhpc09iamVjdCwgZXhl
YywgaW5kZXgudmFsdWUoKSwgdmFsdWUsIHNsb3QuaXNTdHJpY3RNb2RlKCkpOworICAgIHVuc2ln
bmVkIGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKTsKKyAgICBpZiAoaW5kZXggIT0gUHJv
cGVydHlOYW1lOjpOb3RBbkluZGV4KSB7CisgICAgICAgIHB1dEJ5SW5kZXgodGhpc09iamVjdCwg
ZXhlYywgaW5kZXgsIHZhbHVlLCBzbG90LmlzU3RyaWN0TW9kZSgpKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICAKQEAgLTM0Miw3ICszNDMsOCBAQCBib29sIEpTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3PEFkYXB0b3I+OjpkZWZpbmVPd25Qcm9wZXJ0eSgKICAgICAvLyBUaGlzIGlzIG1hdGNo
aW5nIEZpcmVmb3ggYmVoYXZpb3IuIEluIHBhcnRpY3VsYXIsIGl0IHJlamVjdHMgYWxsIGF0dGVt
cHRzIHRvCiAgICAgLy8gZGVmaW5lT3duUHJvcGVydHkgZm9yIGluZGV4ZWQgcHJvcGVydGllcyBv
biB0eXBlZCBhcnJheXMsIGV2ZW4gaWYgdGhleSdyZSBvdXQKICAgICAvLyBvZiBib3VuZHMuCi0g
ICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoIHx8IHBy
b3BlcnR5TmFtZS5hc0luZGV4KCkpCisgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkubGVuZ3RoCisgICAgICAgIHx8IHByb3BlcnR5TmFtZS5hc0luZGV4KCkgIT0g
UHJvcGVydHlOYW1lOjpOb3RBbkluZGV4KQogICAgICAgICByZXR1cm4gcmVqZWN0KGV4ZWMsIHNo
b3VsZFRocm93LCAiQXR0ZW1wdGluZyB0byB3cml0ZSB0byBhIHJlYWQtb25seSB0eXBlZCBhcnJh
eSBwcm9wZXJ0eS4iKTsKICAgICAKICAgICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJvcGVydHko
dGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7
CkBAIC0zNTQsNyArMzU2LDggQEAgYm9vbCBKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9y
Pjo6ZGVsZXRlUHJvcGVydHkoCiB7CiAgICAgSlNHZW5lcmljVHlwZWRBcnJheVZpZXcqIHRoaXNP
YmplY3QgPSBqc0Nhc3Q8SlNHZW5lcmljVHlwZWRBcnJheVZpZXcqPihjZWxsKTsKICAgICAKLSAg
ICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGggfHwgcHJv
cGVydHlOYW1lLmFzSW5kZXgoKSkKKyAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS5sZW5ndGgKKyAgICAgICAgfHwgcHJvcGVydHlOYW1lLmFzSW5kZXgoKSAhPSBQ
cm9wZXJ0eU5hbWU6Ok5vdEFuSW5kZXgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAg
ICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHkodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlO
YW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRleCA0
YzE4ZDM2NThmODBjZjdmNWViMjhlMjFiODk0ZDg5M2Q5NGMyNDc0Li44N2MxOTE5NDcyOWM1MjU0
OTZkMTEzM2EyMWU5ODkyOGIxZWRlZTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuY3BwCkBAIC0zMzksOCArMzM5LDkgQEAgdm9pZCBKU09iamVjdDo6cHV0KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBK
U1YKICAgICAKICAgICAvLyBUcnkgaW5kZXhlZCBwdXQgZmlyc3QuIFRoaXMgaXMgcmVxdWlyZWQg
Zm9yIGNvcnJlY3RuZXNzLCBzaW5jZSBsb2FkcyBvbiBwcm9wZXJ0eSBuYW1lcyB0aGF0IGFwcGVh
ciBsaWtlCiAgICAgLy8gdmFsaWQgaW5kaWNlcyB3aWxsIG5ldmVyIGxvb2sgaW4gdGhlIG5hbWVk
IHByb3BlcnR5IHN0b3JhZ2UuCi0gICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHBy
b3BlcnR5TmFtZS5hc0luZGV4KCkpIHsKLSAgICAgICAgcHV0QnlJbmRleCh0aGlzT2JqZWN0LCBl
eGVjLCBpbmRleC52YWx1ZSgpLCB2YWx1ZSwgc2xvdC5pc1N0cmljdE1vZGUoKSk7CisgICAgdW5z
aWduZWQgaSA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7CisgICAgaWYgKGkgIT0gUHJvcGVydHlO
YW1lOjpOb3RBbkluZGV4KSB7CisgICAgICAgIHB1dEJ5SW5kZXgodGhpc09iamVjdCwgZXhlYywg
aSwgdmFsdWUsIHNsb3QuaXNTdHJpY3RNb2RlKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIApAQCAtMTE5Nyw4ICsxMTk4LDkgQEAgdm9pZCBKU09iamVjdDo6cHV0RGlyZWN0QWNjZXNz
b3IoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1YKIHsKICAg
ICBBU1NFUlQodmFsdWUuaXNHZXR0ZXJTZXR0ZXIoKSAmJiAoYXR0cmlidXRlcyAmIEFjY2Vzc29y
KSk7CiAKLSAgICBpZiAoT3B0aW9uYWw8dWludDMyX3Q+IGluZGV4ID0gcHJvcGVydHlOYW1lLmFz
SW5kZXgoKSkgewotICAgICAgICBwdXREaXJlY3RJbmRleChleGVjLCBpbmRleC52YWx1ZSgpLCB2
YWx1ZSwgYXR0cmlidXRlcywgUHV0RGlyZWN0SW5kZXhMaWtlUHV0RGlyZWN0KTsKKyAgICB1bnNp
Z25lZCBpbmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7CisgICAgaWYgKGluZGV4ICE9IFBy
b3BlcnR5TmFtZTo6Tm90QW5JbmRleCkgeworICAgICAgICBwdXREaXJlY3RJbmRleChleGVjLCBp
bmRleCwgdmFsdWUsIGF0dHJpYnV0ZXMsIFB1dERpcmVjdEluZGV4TGlrZVB1dERpcmVjdCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEyMDcsNyArMTIwOSw3IEBAIHZvaWQgSlNPYmpl
Y3Q6OnB1dERpcmVjdEFjY2Vzc29yKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSwgSlNWCiAKIHZvaWQgSlNPYmplY3Q6OnB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKFZN
JiB2bSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQg
YXR0cmlidXRlcykKIHsKLSAgICBBU1NFUlQoIXByb3BlcnR5TmFtZS5hc0luZGV4KCkpOworICAg
IEFTU0VSVChwcm9wZXJ0eU5hbWUuYXNJbmRleCgpID09IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRl
eCk7CiAKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdCh0aGlzKTsKICAgICBwdXREaXJlY3RJbnRl
cm5hbDxQdXRNb2RlRGVmaW5lT3duUHJvcGVydHk+KHZtLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBh
dHRyaWJ1dGVzLCBzbG90KTsKQEAgLTEyNTUsOCArMTI1Nyw5IEBAIGJvb2wgSlNPYmplY3Q6OmRl
bGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUg
cHJvcGVyCiB7CiAgICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNPYmplY3QqPihj
ZWxsKTsKICAgICAKLSAgICBpZiAoT3B0aW9uYWw8dWludDMyX3Q+IGluZGV4ID0gcHJvcGVydHlO
YW1lLmFzSW5kZXgoKSkKLSAgICAgICAgcmV0dXJuIHRoaXNPYmplY3QtPm1ldGhvZFRhYmxlKGV4
ZWMtPnZtKCkpLT5kZWxldGVQcm9wZXJ0eUJ5SW5kZXgodGhpc09iamVjdCwgZXhlYywgaW5kZXgu
dmFsdWUoKSk7CisgICAgdW5zaWduZWQgaSA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7CisgICAg
aWYgKGkgIT0gUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4KQorICAgICAgICByZXR1cm4gdGhpc09i
amVjdC0+bWV0aG9kVGFibGUoZXhlYy0+dm0oKSktPmRlbGV0ZVByb3BlcnR5QnlJbmRleCh0aGlz
T2JqZWN0LCBleGVjLCBpKTsKIAogICAgIGlmICghdGhpc09iamVjdC0+c3RhdGljRnVuY3Rpb25z
UmVpZmllZCgpKQogICAgICAgICB0aGlzT2JqZWN0LT5yZWlmeVN0YXRpY0Z1bmN0aW9uc0ZvckRl
bGV0ZShleGVjKTsKQEAgLTI0OTksMTAgKzI1MDIsMTEgQEAgc3RhdGljIGJvb2wgcHV0RGVzY3Jp
cHRvcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0YXJnZXQsIFByb3BlcnR5TmFtZSBwcm9w
ZXIKIAogdm9pZCBKU09iamVjdDo6cHV0RGlyZWN0TWF5QmVJbmRleChFeGVjU3RhdGUqIGV4ZWMs
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKE9w
dGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCkpCi0gICAgICAg
IHB1dERpcmVjdEluZGV4KGV4ZWMsIGluZGV4LnZhbHVlKCksIHZhbHVlKTsKLSAgICBlbHNlCisg
ICAgdW5zaWduZWQgYXNJbmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7CisgICAgaWYgKGFz
SW5kZXggPT0gUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4KQogICAgICAgICBwdXREaXJlY3QoZXhl
Yy0+dm0oKSwgcHJvcGVydHlOYW1lLCB2YWx1ZSk7CisgICAgZWxzZQorICAgICAgICBwdXREaXJl
Y3RJbmRleChleGVjLCBhc0luZGV4LCB2YWx1ZSk7CiB9CiAKIGNsYXNzIERlZmluZU93blByb3Bl
cnR5U2NvcGUgewpAQCAtMjY1NSwxNCArMjY1OSwxNSBAQCBib29sIEpTT2JqZWN0OjpkZWZpbmVP
d25Ob25JbmRleFByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5
TgogYm9vbCBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgRXhl
Y1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eURl
c2NyaXB0b3ImIGRlc2NyaXB0b3IsIGJvb2wgdGhyb3dFeGNlcHRpb24pCiB7CiAgICAgLy8gSWYg
aXQncyBhbiBhcnJheSBpbmRleCwgdGhlbiB1c2UgdGhlIGluZGV4ZWQgcHJvcGVydHkgc3RvcmFn
ZS4KLSAgICBpZiAoT3B0aW9uYWw8dWludDMyX3Q+IGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5k
ZXgoKSkgeworICAgIHVuc2lnbmVkIGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKTsKKyAg
ICBpZiAoaW5kZXggIT0gUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4KSB7CiAgICAgICAgIC8vIGMu
IExldCBzdWNjZWVkZWQgYmUgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBkZWZhdWx0IFtbRGVm
aW5lT3duUHJvcGVydHldXSBpbnRlcm5hbCBtZXRob2QgKDguMTIuOSkgb24gQSBwYXNzaW5nIFAs
IERlc2MsIGFuZCBmYWxzZSBhcyBhcmd1bWVudHMuCiAgICAgICAgIC8vIGQuIFJlamVjdCBpZiBz
dWNjZWVkZWQgaXMgZmFsc2UuCiAgICAgICAgIC8vIGUuIElmIGluZGV4ID49IG9sZExlbgogICAg
ICAgICAvLyBlLmkuIFNldCBvbGRMZW5EZXNjLltbVmFsdWVdXSB0byBpbmRleCArIDEuCiAgICAg
ICAgIC8vIGUuaWkuIENhbGwgdGhlIGRlZmF1bHQgW1tEZWZpbmVPd25Qcm9wZXJ0eV1dIGludGVy
bmFsIG1ldGhvZCAoOC4xMi45KSBvbiBBIHBhc3NpbmcgImxlbmd0aCIsIG9sZExlbkRlc2MsIGFu
ZCBmYWxzZSBhcyBhcmd1bWVudHMuIFRoaXMgY2FsbCB3aWxsIGFsd2F5cyByZXR1cm4gdHJ1ZS4K
ICAgICAgICAgLy8gZi4gUmV0dXJuIHRydWUuCi0gICAgICAgIHJldHVybiBvYmplY3QtPmRlZmlu
ZU93bkluZGV4ZWRQcm9wZXJ0eShleGVjLCBpbmRleC52YWx1ZSgpLCBkZXNjcmlwdG9yLCB0aHJv
d0V4Y2VwdGlvbik7CisgICAgICAgIHJldHVybiBvYmplY3QtPmRlZmluZU93bkluZGV4ZWRQcm9w
ZXJ0eShleGVjLCBpbmRleCwgZGVzY3JpcHRvciwgdGhyb3dFeGNlcHRpb24pOwogICAgIH0KICAg
ICAKICAgICByZXR1cm4gb2JqZWN0LT5kZWZpbmVPd25Ob25JbmRleFByb3BlcnR5KGV4ZWMsIHBy
b3BlcnR5TmFtZSwgZGVzY3JpcHRvciwgdGhyb3dFeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggYjA4NzNkYzViYjkwODEwMmRmNjgyYWVkODI4
ZmViZTYwZGZhODY2ZC4uYzk3MjEzOTRiNGE4ZjAyNjU2ZTk1NmY0Nzc5ZDhkMDM3MDQ5ZGZjMiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xMjQ0LDggKzEy
NDQsOSBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChK
U09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZQogICAgIFN0cnVjdHVyZSYgc3RydWN0dXJl
ID0gKm9iamVjdC0+c3RydWN0dXJlKHZtKTsKICAgICBpZiAob2JqZWN0LT5pbmxpbmVHZXRPd25Q
cm9wZXJ0eVNsb3Qodm0sIHN0cnVjdHVyZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHByb3BlcnR5
TmFtZS5hc0luZGV4KCkpCi0gICAgICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4
KG9iamVjdCwgZXhlYywgaW5kZXgudmFsdWUoKSwgc2xvdCk7CisgICAgdW5zaWduZWQgaW5kZXgg
PSBwcm9wZXJ0eU5hbWUuYXNJbmRleCgpOworICAgIGlmIChpbmRleCAhPSBQcm9wZXJ0eU5hbWU6
Ok5vdEFuSW5kZXgpCisgICAgICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9i
amVjdCwgZXhlYywgaW5kZXgsIHNsb3QpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMTI3
Myw4ICsxMjc0LDkgQEAgQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpnZXRQcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGUKICAgICAgICAgb2JqZWN0ID0g
YXNPYmplY3QocHJvdG90eXBlKTsKICAgICB9CiAKLSAgICBpZiAoT3B0aW9uYWw8dWludDMyX3Q+
IGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKSkKLSAgICAgICAgcmV0dXJuIGdldFByb3Bl
cnR5U2xvdChleGVjLCBpbmRleC52YWx1ZSgpLCBzbG90KTsKKyAgICB1bnNpZ25lZCBpbmRleCA9
IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7CisgICAgaWYgKGluZGV4ICE9IFByb3BlcnR5TmFtZTo6
Tm90QW5JbmRleCkKKyAgICAgICAgcmV0dXJuIGdldFByb3BlcnR5U2xvdChleGVjLCBpbmRleCwg
c2xvdCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC0xMzE4LDcgKzEzMjAsNyBAQCBpbmxp
bmUgYm9vbCBKU09iamVjdDo6cHV0RGlyZWN0SW50ZXJuYWwoVk0mIHZtLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lLCBKU1ZhbAogICAgIEFTU0VSVCh2YWx1ZSk7CiAgICAgQVNTRVJUKHZhbHVl
LmlzR2V0dGVyU2V0dGVyKCkgPT0gISEoYXR0cmlidXRlcyAmIEFjY2Vzc29yKSk7CiAgICAgQVNT
RVJUKCFIZWFwOjpoZWFwKHZhbHVlKSB8fCBIZWFwOjpoZWFwKHZhbHVlKSA9PSBIZWFwOjpoZWFw
KHRoaXMpKTsKLSAgICBBU1NFUlQoIXByb3BlcnR5TmFtZS5hc0luZGV4KCkpOworICAgIEFTU0VS
VChwcm9wZXJ0eU5hbWUuYXNJbmRleCgpID09IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRleCk7CiAK
ICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IHRoaXMtPnN0cnVjdHVyZSh2bSk7CiAgICAgaWYg
KHN0cnVjdHVyZS0+aXNEaWN0aW9uYXJ5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTU3RyaW5nLmNwcAppbmRleCAwMDc4NTk0ZDYxNzY1ZWY5NWUxZmM3NTM4MDE3MGRmNGNk
MGZhMmMwLi4zZWEyYjdlMWQ1NzczNGI2ZWMxMGMzOWRmZDBkNDhlMjkyZjgxYzI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCkBAIC00MjUsOSArNDI1LDEw
IEBAIGJvb2wgSlNTdHJpbmc6OmdldFN0cmluZ1Byb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUq
IGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
ICAgICAKLSAgICBPcHRpb25hbDx1aW50MzJfdD4gaW5kZXggPSBwcm9wZXJ0eU5hbWUuYXNJbmRl
eCgpOwotICAgIGlmIChpbmRleCAmJiBpbmRleC52YWx1ZSgpIDwgbV9sZW5ndGgpIHsKLSAgICAg
ICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKGdldEluZGV4KGV4ZWMsIGluZGV4LnZhbHVlKCkp
LCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHVuc2lnbmVkIGkgPSBwcm9wZXJ0eU5hbWUu
YXNJbmRleCgpOworICAgIGlmIChpIDwgbV9sZW5ndGgpIHsKKyAgICAgICAgQVNTRVJUKGkgIT0g
UHJvcGVydHlOYW1lOjpOb3RBbkluZGV4KTsgLy8gTm8gbmVlZCBmb3IgYW4gZXhwbGljaXQgY2hl
Y2ssIHRoZSBhYm92ZSB0ZXN0IHdvdWxkIGFsd2F5cyBmYWlsIQorICAgICAgICBkZXNjcmlwdG9y
LnNldERlc2NyaXB0b3IoZ2V0SW5kZXgoZXhlYywgaSksIERvbnREZWxldGUgfCBSZWFkT25seSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1N0cmluZy5oCmluZGV4IDY2NWMwOWVhNjI3ZGUyYzFjNDE0Y2JjZjY4MTE1MmM4
NTJmNjJkMGMuLjA1NzU0NDc2ZmQxNTRhZDU2M2E4OTAyNDRkZWRjMmY5NmYzZTJkMTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaApAQCAtNjI2LDkgKzYyNiwxMCBA
QCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNTdHJpbmc6OmdldFN0cmluZ1Byb3BlcnR5U2xvdChFeGVj
U3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
LSAgICBPcHRpb25hbDx1aW50MzJfdD4gaW5kZXggPSBwcm9wZXJ0eU5hbWUuYXNJbmRleCgpOwot
ICAgIGlmIChpbmRleCAmJiBpbmRleC52YWx1ZSgpIDwgbV9sZW5ndGgpIHsKLSAgICAgICAgc2xv
dC5zZXRWYWx1ZSh0aGlzLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIGdldEluZGV4KGV4ZWMsIGlu
ZGV4LnZhbHVlKCkpKTsKKyAgICB1bnNpZ25lZCBpID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKTsK
KyAgICBpZiAoaSA8IG1fbGVuZ3RoKSB7CisgICAgICAgIEFTU0VSVChpICE9IFByb3BlcnR5TmFt
ZTo6Tm90QW5JbmRleCk7IC8vIE5vIG5lZWQgZm9yIGFuIGV4cGxpY2l0IGNoZWNrLCB0aGUgYWJv
dmUgdGVzdCB3b3VsZCBhbHdheXMgZmFpbCEKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzLCBE
b250RGVsZXRlIHwgUmVhZE9ubHksIGdldEluZGV4KGV4ZWMsIGkpKTsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9MaXRlcmFsUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVy
YWxQYXJzZXIuY3BwCmluZGV4IGFhZjE0ZGRkMDcyNzU2NTIwM2MzMWNmODg2ODE3MmM0YWQxODk1
MGYuLmY2ZjVmZTE3M2M3MDRlZGUwZjY1M2I2ODM4ZTA5ODA2Y2E0NDJlYjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3BwCkBAIC02NDksOCAr
NjQ5LDkgQEAgSlNWYWx1ZSBMaXRlcmFsUGFyc2VyPENoYXJUeXBlPjo6cGFyc2UoUGFyc2VyU3Rh
dGUgaW5pdGlhbFN0YXRlKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIEpTT2JqZWN0
KiBvYmplY3QgPSBhc09iamVjdChvYmplY3RTdGFjay5sYXN0KCkpOwogICAgICAgICAgICAgICAg
IFByb3BlcnR5TmFtZSBpZGVudCA9IGlkZW50aWZpZXJTdGFjay5sYXN0KCk7Ci0gICAgICAgICAg
ICAgICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IGlkZW50LmFzSW5kZXgoKSkKLSAg
ICAgICAgICAgICAgICAgICAgb2JqZWN0LT5wdXREaXJlY3RJbmRleChtX2V4ZWMsIGluZGV4LnZh
bHVlKCksIGxhc3RWYWx1ZSk7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgaSA9IGlkZW50LmFz
SW5kZXgoKTsKKyAgICAgICAgICAgICAgICBpZiAoaSAhPSBQcm9wZXJ0eU5hbWU6Ok5vdEFuSW5k
ZXgpCisgICAgICAgICAgICAgICAgICAgIG9iamVjdC0+cHV0RGlyZWN0SW5kZXgobV9leGVjLCBp
LCBsYXN0VmFsdWUpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAg
b2JqZWN0LT5wdXREaXJlY3QobV9leGVjLT52bSgpLCBpZGVudCwgbGFzdFZhbHVlKTsKICAgICAg
ICAgICAgICAgICBpZGVudGlmaWVyU3RhY2sucmVtb3ZlTGFzdCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU5hbWUuaAppbmRleCAzNWVjNTk1NWEzNzc0ZDBiNGU3
YWY5YjQxYWY5MDIyYjVjNWRhMmZhLi4yMmE4ZmY4NTBmZTA0YjZlZDQwMGExZWRmZGJlMmJiZmRk
YWQyZTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0
eU5hbWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU5hbWUu
aApAQCAtMjgsNTEgKzI4LDQ4IEBACiAKICNpbmNsdWRlICJJZGVudGlmaWVyLmgiCiAjaW5jbHVk
ZSAiUHJpdmF0ZU5hbWUuaCIKLSNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KIAogbmFtZXNwYWNl
IEpTQyB7CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KLUFMV0FZU19JTkxJTkUgT3B0
aW9uYWw8dWludDMyX3Q+IHRvVUludDMyRnJvbUNoYXJhY3RlcnMoY29uc3QgQ2hhclR5cGUqIGNo
YXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKK0FMV0FZU19JTkxJTkUgdWludDMyX3QgdG9VSW50
MzJGcm9tQ2hhcmFjdGVycyhjb25zdCBDaGFyVHlwZSogY2hhcmFjdGVycywgdW5zaWduZWQgbGVu
Z3RoKQogewogICAgIC8vIEFuIGVtcHR5IHN0cmluZyBpcyBub3QgYSBudW1iZXIuCiAgICAgaWYg
KCFsZW5ndGgpCi0gICAgICAgIHJldHVybiBOdWxsb3B0OworICAgICAgICByZXR1cm4gVUlOVF9N
QVg7CiAKICAgICAvLyBHZXQgdGhlIGZpcnN0IGNoYXJhY3RlciwgdHVybmluZyBpdCBpbnRvIGEg
ZGlnaXQuCiAgICAgdWludDMyX3QgdmFsdWUgPSBjaGFyYWN0ZXJzWzBdIC0gJzAnOwogICAgIGlm
ICh2YWx1ZSA+IDkpCi0gICAgICAgIHJldHVybiBOdWxsb3B0OworICAgICAgICByZXR1cm4gVUlO
VF9NQVg7CiAgICAgCiAgICAgLy8gQ2hlY2sgZm9yIGxlYWRpbmcgemVyb3MuIElmIHRoZSBmaXJz
dCBjaGFyYWNoZXIgaXMgMCwgdGhlbiB0aGUKICAgICAvLyBsZW5ndGggb2YgdGhlIHN0cmluZyBt
dXN0IGJlIG9uZSAtIGUuZy4gIjA0MiIgaXMgbm90IGVxdWFsIHRvICI0MiIuCiAgICAgaWYgKCF2
YWx1ZSAmJiBsZW5ndGggPiAxKQotICAgICAgICByZXR1cm4gTnVsbG9wdDsKKyAgICAgICAgcmV0
dXJuIFVJTlRfTUFYOwogICAgIAogICAgIHdoaWxlICgtLWxlbmd0aCkgewogICAgICAgICAvLyBN
dWx0aXBseSB2YWx1ZSBieSAxMCwgY2hlY2tpbmcgZm9yIG92ZXJmbG93IG91dCBvZiAzMiBiaXRz
LgogICAgICAgICBpZiAodmFsdWUgPiAweEZGRkZGRkZGVSAvIDEwKQotICAgICAgICAgICAgcmV0
dXJuIE51bGxvcHQ7CisgICAgICAgICAgICByZXR1cm4gVUlOVF9NQVg7CiAgICAgICAgIHZhbHVl
ICo9IDEwOwogICAgICAgICAKICAgICAgICAgLy8gR2V0IHRoZSBuZXh0IGNoYXJhY3RlciwgdHVy
bmluZyBpdCBpbnRvIGEgZGlnaXQuCiAgICAgICAgIHVpbnQzMl90IG5ld1ZhbHVlID0gKigrK2No
YXJhY3RlcnMpIC0gJzAnOwogICAgICAgICBpZiAobmV3VmFsdWUgPiA5KQotICAgICAgICAgICAg
cmV0dXJuIE51bGxvcHQ7CisgICAgICAgICAgICByZXR1cm4gVUlOVF9NQVg7CiAgICAgICAgIAog
ICAgICAgICAvLyBBZGQgaW4gdGhlIG9sZCB2YWx1ZSwgY2hlY2tpbmcgZm9yIG92ZXJmbG93IG91
dCBvZiAzMiBiaXRzLgogICAgICAgICBuZXdWYWx1ZSArPSB2YWx1ZTsKICAgICAgICAgaWYgKG5l
d1ZhbHVlIDwgdmFsdWUpCi0gICAgICAgICAgICByZXR1cm4gTnVsbG9wdDsKKyAgICAgICAgICAg
IHJldHVybiBVSU5UX01BWDsKICAgICAgICAgdmFsdWUgPSBuZXdWYWx1ZTsKICAgICB9Ci0KLSAg
ICBpZiAodmFsdWUgPT0gVUlOVF9NQVgpCi0gICAgICAgIHJldHVybiBOdWxsb3B0OworICAgIAog
ICAgIHJldHVybiB2YWx1ZTsKIH0KIAotQUxXQVlTX0lOTElORSBPcHRpb25hbDx1aW50MzJfdD4g
dG9VSW50MzJGcm9tU3RyaW5nSW1wbChTdHJpbmdJbXBsKiBpbXBsKQorQUxXQVlTX0lOTElORSB1
aW50MzJfdCB0b1VJbnQzMkZyb21TdHJpbmdJbXBsKFN0cmluZ0ltcGwqIGltcGwpCiB7CiAgICAg
aWYgKGltcGwtPmlzOEJpdCgpKQogICAgICAgICByZXR1cm4gdG9VSW50MzJGcm9tQ2hhcmFjdGVy
cyhpbXBsLT5jaGFyYWN0ZXJzOCgpLCBpbXBsLT5sZW5ndGgoKSk7CkBAIC0xMTIsMTEgKzEwOSwx
MSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgTm90QW5JbmRleCA9IFVJ
TlRfTUFYOwogCi0gICAgT3B0aW9uYWw8dWludDMyX3Q+IGFzSW5kZXgoKQorICAgIHVpbnQzMl90
IGFzSW5kZXgoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG1faW1wbCA/IHRvVUludDMyRnJvbVN0
cmluZ0ltcGwobV9pbXBsKSA6IE51bGxvcHQ7CisgICAgICAgIHJldHVybiBtX2ltcGwgPyB0b1VJ
bnQzMkZyb21TdHJpbmdJbXBsKG1faW1wbCkgOiBOb3RBbkluZGV4OwogICAgIH0KLQorICAgIAog
ICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogICAgIHsKICAgICAgICAgaWYg
KG1faW1wbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3Bl
cnR5TmFtZUFycmF5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5
TmFtZUFycmF5LmNwcAppbmRleCBjMjQyMTdhODgwNjFhY2QzMjA3ZmNmMjM5MmU4MDg0ZGRlYWZh
ZTRhLi40NDc1Yjg5OGE5NzQ5NzdjZTY4ZTQ3NTlkY2FkMDZiZDZhMDQ4MzczIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuY3BwCkBA
IC0zMyw4ICszMyw4IEBAIHZvaWQgUHJvcGVydHlOYW1lQXJyYXk6OmFkZChTdHJpbmdJbXBsKiBp
ZGVudGlmaWVyKQogewogICAgIEFTU0VSVCghaWRlbnRpZmllciB8fCBpZGVudGlmaWVyID09IFN0
cmluZ0ltcGw6OmVtcHR5KCkgfHwgaWRlbnRpZmllci0+aXNBdG9taWMoKSk7CiAgICAgaWYgKCFB
U1NFUlRfRElTQUJMRUQpIHsKLSAgICAgICAgT3B0aW9uYWw8dWludDMyX3Q+IGluZGV4ID0gUHJv
cGVydHlOYW1lKElkZW50aWZpZXIobV92bSwgaWRlbnRpZmllcikpLmFzSW5kZXgoKTsKLSAgICAg
ICAgQVNTRVJUX1VOVVNFRChpbmRleCwgIWluZGV4IHx8IGluZGV4LnZhbHVlKCkgPj0gbV9wcmV2
aW91c2x5RW51bWVyYXRlZExlbmd0aCk7CisgICAgICAgIHVpbnQzMl90IGluZGV4ID0gUHJvcGVy
dHlOYW1lKElkZW50aWZpZXIobV92bSwgaWRlbnRpZmllcikpLmFzSW5kZXgoKTsKKyAgICAgICAg
QVNTRVJUX1VOVVNFRChpbmRleCwgaW5kZXggPT0gUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4IHx8
IGluZGV4ID49IG1fcHJldmlvdXNseUVudW1lcmF0ZWRMZW5ndGgpOwogICAgIH0KIAogICAgIGlm
IChtX2FsdGVybmF0ZVNldCAmJiBtX2FsdGVybmF0ZVNldC0+Y29udGFpbnMoaWRlbnRpZmllcikp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3Qu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAppbmRl
eCA1NTg0NzkyNjkzY2JkMzU0MTU0MDA3NjNhOWZjYzc4Njg3YmM5NDc5Li41MDAxYmNjNGUxYjdl
Mzc5M2VkMjZlMTQyMGE4MGE2MDQ2OGUxM2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKQEAgLTEyOCw4ICsxMjgsOSBAQCBib29sIFN0cmlu
Z09iamVjdDo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFBy
b3BlcnR5TmFtZSBwcgogICAgIFN0cmluZ09iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxTdHJp
bmdPYmplY3QqPihjZWxsKTsKICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5
TmFtZXMoKS5sZW5ndGgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBPcHRpb25hbDx1aW50
MzJfdD4gaW5kZXggPSBwcm9wZXJ0eU5hbWUuYXNJbmRleCgpOwotICAgIGlmIChpbmRleCAmJiB0
aGlzT2JqZWN0LT5pbnRlcm5hbFZhbHVlKCktPmNhbkdldEluZGV4KGluZGV4LnZhbHVlKCkpKSB7
CisgICAgdW5zaWduZWQgaSA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7CisgICAgaWYgKHRoaXNP
YmplY3QtPmludGVybmFsVmFsdWUoKS0+Y2FuR2V0SW5kZXgoaSkpIHsKKyAgICAgICAgQVNTRVJU
KGkgIT0gUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4KTsgLy8gTm8gbmVlZCBmb3IgYW4gZXhwbGlj
aXQgY2hlY2ssIHRoZSBhYm92ZSB0ZXN0IHdvdWxkIGFsd2F5cyBmYWlsIQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogICAgIHJldHVybiBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhp
c09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJ1Y3R1cmUuY3BwCmluZGV4IDExZGE0YWRlYjkyZTVjMjMwMTIyZmEwZjY5NzhlN2U1
YzdlMjk3MDUuLjg2ZDBiNmZiZGFlY2UzODMyY2MzNjJmYjgzNDA5OGRiY2VlMDgzYTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcApAQCAtMTAxMCw3ICsx
MDEwLDggQEAgdm9pZCBTdHJ1Y3R1cmU6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90
VmlzaXRvciYgdmlzaXRvcikKIAogYm9vbCBTdHJ1Y3R1cmU6OnByb3RvdHlwZUNoYWluTWF5SW50
ZXJjZXB0U3RvcmVUbyhWTSYgdm0sIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAg
aWYgKHByb3BlcnR5TmFtZS5hc0luZGV4KCkpCisgICAgdW5zaWduZWQgaSA9IHByb3BlcnR5TmFt
ZS5hc0luZGV4KCk7CisgICAgaWYgKGkgIT0gUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4KQogICAg
ICAgICByZXR1cm4gYW55T2JqZWN0SW5DaGFpbk1heUludGVyY2VwdEluZGV4ZWRBY2Nlc3Nlcygp
OwogICAgIAogICAgIGZvciAoU3RydWN0dXJlKiBjdXJyZW50ID0gdGhpczsgOykgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCmluZGV4IGYz
YTQyOTI3ZjhiOWRkZjQ0MDEzNzg3MGFmNGY3MTA5MjYxNTVmYzMuLjAyNjA4ZmE2ZTRlMmY1NzFl
NGIzNzFlNjgxOWY4OTMyM2E4OTJhOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTIxNCwxMCArMjE0LDExIEBAIGJvb2wgSlNE
T01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUq
IGV4ZWMsIFByb3BlcnR5CiAgICAgLy8gV2UgbmVlZCB0byB0ZXN0IHRoZSBjb3JyZWN0IHByaW9y
aXR5IG9yZGVyLgogCiAgICAgLy8gYWxsb3cgd2luZG93WzFdIG9yIHBhcmVudFsxXSBldGMuICgj
NTY5ODMpCi0gICAgT3B0aW9uYWw8dWludDMyX3Q+IGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5k
ZXgoKTsKLSAgICBpZiAoaW5kZXggJiYgaW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPmltcGwo
KS5mcmFtZSgpLT50cmVlKCkuc2NvcGVkQ2hpbGRDb3VudCgpKSB7CisgICAgdW5zaWduZWQgaSA9
IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7CisgICAgaWYgKGkgPCB0aGlzT2JqZWN0LT5pbXBsKCku
ZnJhbWUoKS0+dHJlZSgpLnNjb3BlZENoaWxkQ291bnQoKSkgeworICAgICAgICBBU1NFUlQoaSAh
PSBQcm9wZXJ0eU5hbWU6Ok5vdEFuSW5kZXgpOwogICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNP
YmplY3QsIFJlYWRPbmx5IHwgRG9udERlbGV0ZSB8IERvbnRFbnVtLAotICAgICAgICAgICAgdG9K
UyhleGVjLCB0aGlzT2JqZWN0LT5pbXBsKCkuZnJhbWUoKS0+dHJlZSgpLnNjb3BlZENoaWxkKGlu
ZGV4LnZhbHVlKCkpLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpOworICAgICAgICAgICAgdG9K
UyhleGVjLCB0aGlzT2JqZWN0LT5pbXBsKCkuZnJhbWUoKS0+dHJlZSgpLnNjb3BlZENoaWxkKGkp
LT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEFsbENvbGxl
Y3Rpb25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQWxsQ29s
bGVjdGlvbkN1c3RvbS5jcHAKaW5kZXggMTczZWMyZmQzODJjZWM4NGI3YzZiN2Y3ZGM5MGNhMTY5
MDk1NzVhYi4uODEyMjUwN2I0ZmJjNjhlMTIzZjY3MmZhMzEwODhhNTJjYTcwZTk2NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQWxsQ29sbGVjdGlvbkN1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQWxsQ29sbGVjdGlv
bkN1c3RvbS5jcHAKQEAgLTY1LDggKzY1LDkgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbEhUTUxBbGxDb2xsZWN0aW9uKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAo
ZXhlYy0+YXJndW1lbnRDb3VudCgpID09IDEpIHsKICAgICAgICAgLy8gU3VwcG9ydCBmb3IgZG9j
dW1lbnQuYWxsKDxpbmRleD4pIGV0Yy4KICAgICAgICAgU3RyaW5nIHN0cmluZyA9IGV4ZWMtPmFy
Z3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKLSAgICAgICAgaWYgKE9wdGlv
bmFsPHVpbnQzMl90PiBpbmRleCA9IHRvVUludDMyRnJvbVN0cmluZ0ltcGwoc3RyaW5nLmltcGwo
KSkpCi0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRvSlMoZXhlYywganNDb2xs
ZWN0aW9uLT5nbG9iYWxPYmplY3QoKSwgY29sbGVjdGlvbi5pdGVtKGluZGV4LnZhbHVlKCkpKSk7
CisgICAgICAgIHVuc2lnbmVkIGluZGV4ID0gdG9VSW50MzJGcm9tU3RyaW5nSW1wbChzdHJpbmcu
aW1wbCgpKTsKKyAgICAgICAgaWYgKGluZGV4ICE9IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRleCkK
KyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodG9KUyhleGVjLCBqc0NvbGxlY3Rp
b24tPmdsb2JhbE9iamVjdCgpLCBjb2xsZWN0aW9uLml0ZW0oaW5kZXgpKSk7CiAKICAgICAgICAg
Ly8gU3VwcG9ydCBmb3IgZG9jdW1lbnQuaW1hZ2VzKCc8bmFtZT4nKSBldGMuCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUobmFtZWRJdGVtcyhleGVjLCBqc0NvbGxlY3Rpb24sIElkZW50
aWZpZXIoZXhlYywgc3RyaW5nKSkpOwpAQCAtNzQsOCArNzUsOSBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSFRNTEFsbENvbGxlY3Rpb24oRXhlY1N0YXRlKiBleGVj
KQogCiAgICAgLy8gVGhlIHNlY29uZCBhcmcsIGlmIHNldCwgaXMgdGhlIGluZGV4IG9mIHRoZSBp
dGVtIHdlIHdhbnQKICAgICBTdHJpbmcgc3RyaW5nID0gZXhlYy0+YXJndW1lbnQoMCkudG9TdHJp
bmcoZXhlYyktPnZhbHVlKGV4ZWMpOwotICAgIGlmIChPcHRpb25hbDx1aW50MzJfdD4gaW5kZXgg
PSB0b1VJbnQzMkZyb21TdHJpbmdJbXBsKGV4ZWMtPmFyZ3VtZW50KDEpLnRvV1RGU3RyaW5nKGV4
ZWMpLmltcGwoKSkpIHsKLSAgICAgICAgaWYgKGF1dG8qIGl0ZW0gPSBjb2xsZWN0aW9uLm5hbWVk
SXRlbVdpdGhJbmRleChzdHJpbmcsIGluZGV4LnZhbHVlKCkpKQorICAgIHVuc2lnbmVkIGluZGV4
ID0gdG9VSW50MzJGcm9tU3RyaW5nSW1wbChleGVjLT5hcmd1bWVudCgxKS50b1dURlN0cmluZyhl
eGVjKS5pbXBsKCkpOworICAgIGlmIChpbmRleCAhPSBQcm9wZXJ0eU5hbWU6Ok5vdEFuSW5kZXgp
IHsKKyAgICAgICAgaWYgKGF1dG8qIGl0ZW0gPSBjb2xsZWN0aW9uLm5hbWVkSXRlbVdpdGhJbmRl
eChzdHJpbmcsIGluZGV4KSkKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodG9K
UyhleGVjLCBqc0NvbGxlY3Rpb24tPmdsb2JhbE9iamVjdCgpLCBpdGVtKSk7CiAgICAgfQogCkBA
IC0xMDEsOCArMTAzLDkgQEAgRW5jb2RlZEpTVmFsdWUgSlNIVE1MQWxsQ29sbGVjdGlvbjo6bmFt
ZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmEKIAogSlNWYWx1ZSBKU0hU
TUxBbGxDb2xsZWN0aW9uOjppdGVtKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBpZiAoT3B0aW9u
YWw8dWludDMyX3Q+IGluZGV4ID0gdG9VSW50MzJGcm9tU3RyaW5nSW1wbChleGVjLT5hcmd1bWVu
dCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykuaW1wbCgpKSkKLSAgICAgICAgcmV0dXJu
IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIGltcGwoKS5pdGVtKGluZGV4LnZhbHVlKCkpKTsK
KyAgICB1aW50MzJfdCBpbmRleCA9IHRvVUludDMyRnJvbVN0cmluZ0ltcGwoZXhlYy0+YXJndW1l
bnQoMCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpLmltcGwoKSk7CisgICAgaWYgKGluZGV4
ICE9IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRleCkKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0KCksIGltcGwoKS5pdGVtKGluZGV4KSk7CiAgICAgcmV0dXJuIG5hbWVkSXRl
bXMoZXhlYywgdGhpcywgSWRlbnRpZmllcihleGVjLCBleGVjLT5hcmd1bWVudCgwKS50b1N0cmlu
ZyhleGVjKS0+dmFsdWUoZXhlYykpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBmNzBkNmMxNzhiZTJjM2RiNTQ1
MDk3Mjc4YmRjMzVkYTdiZWY4NWM2Li5lMzA0ZGE5YWU3ZDljZDQ3MWU4YzdmYjU4ZDkwY2VmMmVh
OGNhNWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQpAQCAtMzYwLDE2ICszNjAsMTUgQEAgc3ViIEdlbmVyYXRlR2V0T3duUHJv
cGVydHlTbG90Qm9keQogICAgIH0KIAogICAgIGlmICgkaW5kZXhlZEdldHRlckZ1bmN0aW9uKSB7
Ci0gICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgT3B0aW9uYWw8dWlu
dDMyX3Q+IG9wdGlvbmFsSW5kZXggPSBwcm9wZXJ0eU5hbWUuYXNJbmRleCgpO1xuIik7CisgICAg
ICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgdW5zaWduZWQgaW5kZXggPSBw
cm9wZXJ0eU5hbWUuYXNJbmRleCgpO1xuIik7CiAKICAgICAgICAgIyBJZiB0aGUgaXRlbSBmdW5j
dGlvbiByZXR1cm5zIGEgc3RyaW5nIHRoZW4gd2UgbGV0IHRoZSBUcmVhdFJldHVybmVkTnVsbFN0
cmluZ0FzIGhhbmRsZSB0aGUgY2FzZXMKICAgICAgICAgIyB3aGVyZSB0aGUgaW5kZXggaXMgb3V0
IG9mIHJhbmdlLgogICAgICAgICBpZiAoJGluZGV4ZWRHZXR0ZXJGdW5jdGlvbi0+c2lnbmF0dXJl
LT50eXBlIGVxICJET01TdHJpbmciKSB7Ci0gICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0
eVNsb3RJbXBsLCAiICAgIGlmIChvcHRpb25hbEluZGV4KSB7XG4iKTsKKyAgICAgICAgICAgIHB1
c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgaWYgKGluZGV4ICE9IFByb3BlcnR5TmFt
ZTo6Tm90QW5JbmRleCkge1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNo
KEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChvcHRpb25hbEluZGV4ICYmIG9wdGlv
bmFsSW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPmltcGwoKS5sZW5ndGgoKSkge1xuIik7Cisg
ICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChpbmRleCAh
PSBQcm9wZXJ0eU5hbWU6Ok5vdEFuSW5kZXggJiYgaW5kZXggPCB0aGlzT2JqZWN0LT5pbXBsKCku
bGVuZ3RoKCkpIHtcbiIpOwogICAgICAgICB9Ci0gICAgICAgIHB1c2goQGdldE93blByb3BlcnR5
U2xvdEltcGwsICIgICAgICAgIHVuc2lnbmVkIGluZGV4ID0gb3B0aW9uYWxJbmRleC52YWx1ZSgp
O1xuIik7CiAgICAgICAgICMgQXNzdW1lIHRoYXQgaWYgdGhlcmUncyBhIHNldHRlciwgdGhlIGlu
ZGV4IHdpbGwgYmUgd3JpdGFibGUKICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDdXN0b21JbmRleGVkU2V0dGVyIn0pIHsKICAgICAgICAgICAgIHB1c2goQGdl
dE93blByb3BlcnR5U2xvdEltcGwsICIgICAgICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXMgPSAke25h
bWVzcGFjZU1heWJlfURvbnREZWxldGU7XG4iKTsKQEAgLTI0NTcsOCArMjQ1Niw5IEBAIHN1YiBH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICAke2NsYXNzTmFtZX0qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8JHtjbGFzc05hbWV9Kj4oY2VsbCk7
XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTtcbiIpOwogICAgICAgICAgICAgaWYgKCRp
bnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21JbmRleGVkU2V0dGVyIn0pIHsK
LSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoT3B0aW9uYWw8dWlu
dDMyX3Q+IGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKSkge1xuIik7Ci0gICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHRoaXNPYmplY3QtPmluZGV4U2V0dGVy
KGV4ZWMsIGluZGV4LnZhbHVlKCksIHZhbHVlKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIHVuc2lnbmVkIGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgo
KTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChpbmRl
eCAhPSBQcm9wZXJ0eU5hbWU6Ok5vdEFuSW5kZXgpIHtcbiIpOworICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICAgICB0aGlzT2JqZWN0LT5pbmRleFNldHRlcihleGVjLCBp
bmRleCwgdmFsdWUpO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIHJldHVybjtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIH1cbiIpOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRmxvYXQ2NEFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0Zsb2F0NjRBcnJheS5jcHAKaW5kZXggNDE3ZjE2
NWRmN2U3ODNlODAwODljZjIyMDY1ODMzNTExNmQyYmZkMS4uMWQ1OTE4OWI0NzIwNTExNzE3OWM2
MzlhNjA1YjMwODZlZGRiZjZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTRmxvYXQ2NEFycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNGbG9hdDY0QXJyYXkuY3BwCkBAIC0xNzQsOSArMTc0
LDkgQEAgYm9vbCBKU0Zsb2F0NjRBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBv
YmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGUKIHsKICAgICBKU0Zsb2F0NjRBcnJheSogdGhp
c09iamVjdCA9IGpzQ2FzdDxKU0Zsb2F0NjRBcnJheSo+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIE9wdGlvbmFsPHVpbnQz
Ml90PiBpbmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7Ci0gICAgaWYgKGluZGV4ICYmIGlu
ZGV4LnZhbHVlKCkgPCBzdGF0aWNfY2FzdDxGbG9hdDY0QXJyYXkqPih0aGlzT2JqZWN0LT5pbXBs
KCkpLT5sZW5ndGgoKSkgewotICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIHRoaXNP
YmplY3QtPmdldEJ5SW5kZXgoZXhlYywgaW5kZXgudmFsdWUoKSkpOworICAgIHVuc2lnbmVkIGlu
ZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKTsKKyAgICBpZiAoaW5kZXggIT0gUHJvcGVydHlO
YW1lOjpOb3RBbkluZGV4ICYmIGluZGV4IDwgc3RhdGljX2Nhc3Q8RmxvYXQ2NEFycmF5Kj4odGhp
c09iamVjdC0+aW1wbCgpKS0+bGVuZ3RoKCkpIHsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlz
T2JqZWN0LCB0aGlzT2JqZWN0LT5nZXRCeUluZGV4KGV4ZWMsIGluZGV4KSk7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTRmxvYXQ2
NEFycmF5LCBCYXNlPihleGVjLCBnZXRKU0Zsb2F0NjRBcnJheVRhYmxlKGV4ZWMpLCB0aGlzT2Jq
ZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwpAQCAtMTg2LDkgKzE4Niw5IEBAIGJvb2wgSlNGbG9h
dDY0QXJyYXk6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0LCBFeGVj
U3RhdGUqIGV4ZWMsCiB7CiAgICAgSlNGbG9hdDY0QXJyYXkqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
SlNGbG9hdDY0QXJyYXkqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
dGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBPcHRpb25hbDx1aW50MzJfdD4gaW5kZXggPSBwcm9w
ZXJ0eU5hbWUuYXNJbmRleCgpOwotICAgIGlmIChpbmRleCAmJiBpbmRleC52YWx1ZSgpIDwgc3Rh
dGljX2Nhc3Q8RmxvYXQ2NEFycmF5Kj4odGhpc09iamVjdC0+aW1wbCgpKS0+bGVuZ3RoKCkpIHsK
LSAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKHRoaXNPYmplY3QtPmdldEJ5SW5kZXgo
ZXhlYywgaW5kZXgudmFsdWUoKSksIERvbnREZWxldGUpOworICAgIHVuc2lnbmVkIGluZGV4ID0g
cHJvcGVydHlOYW1lLmFzSW5kZXgoKTsKKyAgICBpZiAoaW5kZXggIT0gUHJvcGVydHlOYW1lOjpO
b3RBbkluZGV4ICYmIGluZGV4IDwgc3RhdGljX2Nhc3Q8RmxvYXQ2NEFycmF5Kj4odGhpc09iamVj
dC0+aW1wbCgpKS0+bGVuZ3RoKCkpIHsKKyAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9y
KHRoaXNPYmplY3QtPmdldEJ5SW5kZXgoZXhlYywgaW5kZXgpLCBEb250RGVsZXRlKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZURlc2NyaXB0
b3I8SlNGbG9hdDY0QXJyYXksIEJhc2U+KGV4ZWMsIGdldEpTRmxvYXQ2NEFycmF5VGFibGUoZXhl
YyksIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CkBAIC0yMTUsOCArMjE1
LDkgQEAgdm9pZCBKU0Zsb2F0NjRBcnJheTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBl
eGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW0KIHsKICAgICBKU0Zsb2F0NjRBcnJheSogdGhp
c09iamVjdCA9IGpzQ2FzdDxKU0Zsb2F0NjRBcnJheSo+KGNlbGwpOwogICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBpZiAoT3B0aW9uYWw8dWlu
dDMyX3Q+IGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKSkgewotICAgICAgICB0aGlzT2Jq
ZWN0LT5pbmRleFNldHRlcihleGVjLCBpbmRleC52YWx1ZSgpLCB2YWx1ZSk7CisgICAgdW5zaWdu
ZWQgaW5kZXggPSBwcm9wZXJ0eU5hbWUuYXNJbmRleCgpOworICAgIGlmIChpbmRleCAhPSBQcm9w
ZXJ0eU5hbWU6Ok5vdEFuSW5kZXgpIHsKKyAgICAgICAgdGhpc09iamVjdC0+aW5kZXhTZXR0ZXIo
ZXhlYywgaW5kZXgsIHZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBCYXNlOjpw
dXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRU
YXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEV2ZW50VGFyZ2V0LmNwcAppbmRleCA5ZThkMzY4MGZlYzI5OGQwOGFkYjRhMjM4MzYyMzUwYjQ1
MDU2ZGFlLi5lMmMwNDc4NTVlMWMxMzQ3MjcyZThmZGJmOWM3ZDlhNGQ3OGE1ZDFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRU
YXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFdmVudFRhcmdldC5jcHAKQEAgLTE4MCwxMCArMTgwLDEwIEBAIGJvb2wgSlNUZXN0RXZl
bnRUYXJnZXQ6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUq
IGV4ZWMsIFByCiAgICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmplY3QsIGVu
dHJ5LT5hdHRyaWJ1dGVzKCksIGVudHJ5LT5wcm9wZXJ0eUdldHRlcigpKTsKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQotICAgIE9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHByb3BlcnR5
TmFtZS5hc0luZGV4KCk7Ci0gICAgaWYgKGluZGV4ICYmIGluZGV4LnZhbHVlKCkgPCB0aGlzT2Jq
ZWN0LT5pbXBsKCkubGVuZ3RoKCkpIHsKKyAgICB1bnNpZ25lZCBpbmRleCA9IHByb3BlcnR5TmFt
ZS5hc0luZGV4KCk7CisgICAgaWYgKGluZGV4ICE9IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRleCAm
JiBpbmRleCA8IHRoaXNPYmplY3QtPmltcGwoKS5sZW5ndGgoKSkgewogICAgICAgICB1bnNpZ25l
ZCBhdHRyaWJ1dGVzID0gRG9udERlbGV0ZSB8IFJlYWRPbmx5OwotICAgICAgICBzbG90LnNldFZh
bHVlKHRoaXNPYmplY3QsIGF0dHJpYnV0ZXMsIHRvSlMoZXhlYywgdGhpc09iamVjdC0+Z2xvYmFs
T2JqZWN0KCksIHRoaXNPYmplY3QtPmltcGwoKS5pdGVtKGluZGV4LnZhbHVlKCkpKSk7CisgICAg
ICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgYXR0cmlidXRlcywgdG9KUyhleGVjLCB0aGlz
T2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgdGhpc09iamVjdC0+aW1wbCgpLml0ZW0oaW5kZXgpKSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBpZiAoY2FuR2V0SXRlbXNGb3JOYW1l
KGV4ZWMsICZ0aGlzT2JqZWN0LT5pbXBsKCksIHByb3BlcnR5TmFtZSkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAppbmRleCA0OThiMzdlMzNkYjE5NjdlYTFmZWY1NDRi
ZTY2OTQ4ZWMyNGQzYmI0Li4wMjIyMTkwNWM0MGU2ZWRmZWQ1Nzk5OWViMjM1ZjU4OTFhN2EyZTA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC04OSwxMCArODks
MTEgQEAgYm9vbCBSdW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2Jq
ZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnQKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogICAgIAotICAgIE9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHByb3BlcnR5TmFtZS5hc0lu
ZGV4KCk7Ci0gICAgaWYgKGluZGV4ICYmIGluZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT5nZXRM
ZW5ndGgoKSkgeworICAgIHVuc2lnbmVkIGluZGV4ID0gcHJvcGVydHlOYW1lLmFzSW5kZXgoKTsK
KyAgICBpZiAoaW5kZXggPCB0aGlzT2JqZWN0LT5nZXRMZW5ndGgoKSkgeworICAgICAgICBBU1NF
UlQoaW5kZXggIT0gUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4KTsKICAgICAgICAgc2xvdC5zZXRW
YWx1ZSh0aGlzT2JqZWN0LCBEb250RGVsZXRlIHwgRG9udEVudW0sCi0gICAgICAgICAgICB0aGlz
T2JqZWN0LT5nZXRDb25jcmV0ZUFycmF5KCktPnZhbHVlQXQoZXhlYywgaW5kZXgudmFsdWUoKSkp
OworICAgICAgICAgICAgdGhpc09iamVjdC0+Z2V0Q29uY3JldGVBcnJheSgpLT52YWx1ZUF0KGV4
ZWMsIGluZGV4KSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKQEAgLTExOSw4
ICsxMjAsOSBAQCB2b2lkIFJ1bnRpbWVBcnJheTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLAogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIAotICAgIGlmIChPcHRpb25hbDx1aW50MzJfdD4gaW5kZXggPSBwcm9wZXJ0eU5hbWUu
YXNJbmRleCgpKSB7Ci0gICAgICAgIHRoaXNPYmplY3QtPmdldENvbmNyZXRlQXJyYXkoKS0+c2V0
VmFsdWVBdChleGVjLCBpbmRleC52YWx1ZSgpLCB2YWx1ZSk7CisgICAgdW5zaWduZWQgaW5kZXgg
PSBwcm9wZXJ0eU5hbWUuYXNJbmRleCgpOworICAgIGlmIChpbmRleCAhPSBQcm9wZXJ0eU5hbWU6
Ok5vdEFuSW5kZXgpIHsKKyAgICAgICAgdGhpc09iamVjdC0+Z2V0Q29uY3JldGVBcnJheSgpLT5z
ZXRWYWx1ZUF0KGV4ZWMsIGluZGV4LCB2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAg
ICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggNGVmNDYwZTIxZjE2ZTM1YjU2YjQxNWMwNDUyNjZhODRlYjBlOTcwNS4uMGQ2
MTdhZDZkMmZhZGExZGRkMDM0Zjk5NDg3ZTViM2QxZDAxMzQwMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDE1LTAxLTIwICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4K
KworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTc4NzUxLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwNjk0CisKKyAgICAgICAgQ2F1
c2VkIDMyLWJpdCBKU0MgdGVzdCBmYWlsdXJlcyAoUmVxdWVzdGVkIGJ5IEpvZVBlY2sgb24KKyAg
ICAgICAgI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAg
ICJwdXRfYnlfdmFsX2RpcmVjdCBuZWVkIHRvIGNoZWNrIHRoZSBwcm9wZXJ0eSBpcyBpbmRleCBv
ciBub3QKKyAgICAgICAgZm9yIHVzaW5nIHB1dERpcmVjdCAvIHB1dERpcmVjdEluZGV4IgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwNDI2CisgICAg
ICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE3ODc1MQorCiAyMDE1LTAxLTIw
ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIHB1dF9i
eV92YWxfZGlyZWN0IG5lZWQgdG8gY2hlY2sgdGhlIHByb3BlcnR5IGlzIGluZGV4IG9yIG5vdCBm
b3IgdXNpbmcgcHV0RGlyZWN0IC8gcHV0RGlyZWN0SW5kZXgKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL2RmZy1wdXQtYnktdmFsLWRpcmVjdC13aXRoLWVkZ2UtbnVtYmVycy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9qcy9kZmctcHV0LWJ5LXZhbC1kaXJlY3Qtd2l0aC1lZGdlLW51bWJl
cnMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMTY1OTZkY2Iz
M2Y1NjI2MjJiODljYjU1MmYwYjgyMjUyMGNiMzRmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL2RmZy1wdXQtYnktdmFsLWRpcmVj
dC13aXRoLWVkZ2UtbnVtYmVycy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2MCAr
MCwwIEBACi1UZXN0IHRoYXQgYSBvYmplY3QgYWNjZXB0cyBERkcgUHV0QnlWYWx1ZURpcmVjdCBv
cGVyYXRpb24gd2l0aCBlZGdlIG51bWJlcnMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
LQotCi1QQVNTIGxvb2t1cFdpdGhLZXkoLTB4ODAwMDAwMDEpIGlzIDQyIG9uIGFsbCBpdGVyYXRp
b25zIGluY2x1ZGluZyBhZnRlciBERkcgdGllci11cC4KLVBBU1MgbG9va3VwV2l0aEtleSgtMHg4
MDAwMDAwMCkgaXMgNDIgb24gYWxsIGl0ZXJhdGlvbnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVy
LXVwLgotUEFTUyBsb29rdXBXaXRoS2V5KC0xKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNs
dWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoMCkgaXMgNDIgb24g
YWxsIGl0ZXJhdGlvbnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVyLXVwLgotUEFTUyBsb29rdXBX
aXRoS2V5KDEpIGlzIDQyIG9uIGFsbCBpdGVyYXRpb25zIGluY2x1ZGluZyBhZnRlciBERkcgdGll
ci11cC4KLVBBU1MgbG9va3VwV2l0aEtleSgweDdmZmZmZmZmKSBpcyA0MiBvbiBhbGwgaXRlcmF0
aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoMHg4
MDAwMDAwMCkgaXMgNDIgb24gYWxsIGl0ZXJhdGlvbnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVy
LXVwLgotUEFTUyBsb29rdXBXaXRoS2V5KDB4ZmZmZmZmZmQpIGlzIDQyIG9uIGFsbCBpdGVyYXRp
b25zIGluY2x1ZGluZyBhZnRlciBERkcgdGllci11cC4KLVBBU1MgbG9va3VwV2l0aEtleSgweGZm
ZmZmZmZlKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXIt
dXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoMHhmZmZmZmZmZikgaXMgNDIgb24gYWxsIGl0ZXJhdGlv
bnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVyLXVwLgotUEFTUyBsb29rdXBXaXRoS2V5KDB4MTAw
MDAwMDAwKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXIt
dXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoIi0yMTQ3NDgzNjQ5IikgaXMgNDIgb24gYWxsIGl0ZXJh
dGlvbnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVyLXVwLgotUEFTUyBsb29rdXBXaXRoS2V5KCIt
MjE0NzQ4MzY0OCIpIGlzIDQyIG9uIGFsbCBpdGVyYXRpb25zIGluY2x1ZGluZyBhZnRlciBERkcg
dGllci11cC4KLVBBU1MgbG9va3VwV2l0aEtleSgiLTEiKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9u
cyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoIjAiKSBp
cyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNT
IGxvb2t1cFdpdGhLZXkoIjEiKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0
ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoIjIxNDc0ODM2NDciKSBpcyA0MiBv
biBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1
cFdpdGhLZXkoIjIxNDc0ODM2NDgiKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcg
YWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoIjQyOTQ5NjcyOTMiKSBpcyA0
MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxv
b2t1cFdpdGhLZXkoIjQyOTQ5NjcyOTQiKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRp
bmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoIjQyOTQ5NjcyOTUiKSBp
cyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNT
IGxvb2t1cFdpdGhLZXkoIjQyOTQ5NjcyOTYiKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNs
dWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoTnVtYmVyLk1JTl9W
QUxVRSkgaXMgNDIgb24gYWxsIGl0ZXJhdGlvbnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVyLXVw
LgotUEFTUyBsb29rdXBXaXRoS2V5KE51bWJlci5NQVhfVkFMVUUpIGlzIDQyIG9uIGFsbCBpdGVy
YXRpb25zIGluY2x1ZGluZyBhZnRlciBERkcgdGllci11cC4KLVBBU1MgbG9va3VwV2l0aEtleShO
dW1iZXIuTUlOX1NBRkVfSU5URUdFUikgaXMgNDIgb24gYWxsIGl0ZXJhdGlvbnMgaW5jbHVkaW5n
IGFmdGVyIERGRyB0aWVyLXVwLgotUEFTUyBsb29rdXBXaXRoS2V5KE51bWJlci5NQVhfU0FGRV9J
TlRFR0VSKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXIt
dXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSBpcyA0MiBv
biBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1
cFdpdGhLZXkoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9u
cyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoTnVtYmVy
Lk5hTikgaXMgNDIgb24gYWxsIGl0ZXJhdGlvbnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVyLXVw
LgotUEFTUyBsb29rdXBXaXRoS2V5KE51bWJlci5FUFNJTE9OKSBpcyA0MiBvbiBhbGwgaXRlcmF0
aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoKzAu
MCkgaXMgNDIgb24gYWxsIGl0ZXJhdGlvbnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVyLXVwLgot
UEFTUyBsb29rdXBXaXRoS2V5KC0wLjApIGlzIDQyIG9uIGFsbCBpdGVyYXRpb25zIGluY2x1ZGlu
ZyBhZnRlciBERkcgdGllci11cC4KLVBBU1MgbG9va3VwV2l0aEtleSgwLjEpIGlzIDQyIG9uIGFs
bCBpdGVyYXRpb25zIGluY2x1ZGluZyBhZnRlciBERkcgdGllci11cC4KLVBBU1MgbG9va3VwV2l0
aEtleSgtMC4xKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRp
ZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoNC4yKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBp
bmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoLTQuMikgaXMg
NDIgb24gYWxsIGl0ZXJhdGlvbnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVyLXVwLgotUEFTUyBs
b29rdXBXaXRoS2V5KCI1ZS0zMjQiKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcg
YWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoIjEuNzk3NjkzMTM0ODYyMzE1
N2UrMzA4IikgaXMgNDIgb24gYWxsIGl0ZXJhdGlvbnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVy
LXVwLgotUEFTUyBsb29rdXBXaXRoS2V5KCItOTAwNzE5OTI1NDc0MDk5MSIpIGlzIDQyIG9uIGFs
bCBpdGVyYXRpb25zIGluY2x1ZGluZyBhZnRlciBERkcgdGllci11cC4KLVBBU1MgbG9va3VwV2l0
aEtleSgiOTAwNzE5OTI1NDc0MDk5MSIpIGlzIDQyIG9uIGFsbCBpdGVyYXRpb25zIGluY2x1ZGlu
ZyBhZnRlciBERkcgdGllci11cC4KLVBBU1MgbG9va3VwV2l0aEtleSgiSW5maW5pdHkiKSBpcyA0
MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxv
b2t1cFdpdGhLZXkoIi1JbmZpbml0eSIpIGlzIDQyIG9uIGFsbCBpdGVyYXRpb25zIGluY2x1ZGlu
ZyBhZnRlciBERkcgdGllci11cC4KLVBBU1MgbG9va3VwV2l0aEtleSgiTmFOIikgaXMgNDIgb24g
YWxsIGl0ZXJhdGlvbnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVyLXVwLgotUEFTUyBsb29rdXBX
aXRoS2V5KCIyLjIyMDQ0NjA0OTI1MDMxM2UtMTYiKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBp
bmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoIiswLjAiKSBp
cyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNT
IGxvb2t1cFdpdGhLZXkoIi0wLjAiKSBpcyA0MiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcg
YWZ0ZXIgREZHIHRpZXItdXAuCi1QQVNTIGxvb2t1cFdpdGhLZXkoIjAuMSIpIGlzIDQyIG9uIGFs
bCBpdGVyYXRpb25zIGluY2x1ZGluZyBhZnRlciBERkcgdGllci11cC4KLVBBU1MgbG9va3VwV2l0
aEtleSgiLTAuMSIpIGlzIDQyIG9uIGFsbCBpdGVyYXRpb25zIGluY2x1ZGluZyBhZnRlciBERkcg
dGllci11cC4KLVBBU1MgbG9va3VwV2l0aEtleSgiNC4yIikgaXMgNDIgb24gYWxsIGl0ZXJhdGlv
bnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVyLXVwLgotUEFTUyBsb29rdXBXaXRoS2V5KCItNC4y
IikgaXMgNDIgb24gYWxsIGl0ZXJhdGlvbnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVyLXVwLgot
UEFTUyBsb29rdXBXaXRoS2V5Mih0b1N0cmluZ1Rocm93c0Vycm9yKSB0aHJldyBleGNlcHRpb24g
J0Vycm9yOiBuZycgb24gYWxsIGl0ZXJhdGlvbnMgaW5jbHVkaW5nIGFmdGVyIERGRyB0aWVyLXVw
LgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RmZy1wdXQtYnktdmFsLWRpcmVjdC13aXRoLWVkZ2Ut
bnVtYmVycy5odG1sIGIvTGF5b3V0VGVzdHMvanMvZGZnLXB1dC1ieS12YWwtZGlyZWN0LXdpdGgt
ZWRnZS1udW1iZXJzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3YjRmNTRh
NjNlMzNmNGFjNTYwMzNjYmVjZmFiZTJhNmM5NWE2NTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvZGZnLXB1dC1ieS12YWwtZGly
ZWN0LXdpdGgtZWRnZS1udW1iZXJzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBA
Ci08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZGZnLXB1dC1i
eS12YWwtZGlyZWN0LXdpdGgtZWRnZS1udW1iZXJzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9kZmctcHV0LWJ5LXZh
bC1kaXJlY3Qtd2l0aC1lZGdlLW51bWJlcnMuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVz
dHMvZGZnLXB1dC1ieS12YWwtZGlyZWN0LXdpdGgtZWRnZS1udW1iZXJzLmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAxYTljNDQ2ZGFhZmI0MzNhYzc2MmJhNWFlOWE1OWUzZTkwYjlk
NDU4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9kZmctcHV0LWJ5LXZhbC1kaXJlY3Qtd2l0aC1lZGdlLW51
bWJlcnMuanMKKysrIC9kZXYvbnVsbApAQCAtMSw4NiArMCwwIEBACi1kZXNjcmlwdGlvbigKLSJU
ZXN0IHRoYXQgYSBvYmplY3QgYWNjZXB0cyBERkcgUHV0QnlWYWx1ZURpcmVjdCBvcGVyYXRpb24g
d2l0aCBlZGdlIG51bWJlcnMuIgotKTsKLQotZnVuY3Rpb24gbG9va3VwV2l0aEtleShrZXkpIHsK
LSAgICB2YXIgb2JqZWN0ID0gewotICAgICAgICBba2V5XTogNDIKLSAgICB9OwotICAgIHJldHVy
biBvYmplY3Rba2V5XTsKLX0KLQotWwotICAgIC8vIGludGVnZXJzCi0gICAgJy0weDgwMDAwMDAx
JywgIC8vIG91dCBvZiBpbnQzMl90Ci0gICAgJy0weDgwMDAwMDAwJywgIC8vIGludDMyX3QgbWlu
Ci0gICAgJy0xJywgICAgICAgICAgIC8vIG5lZ2F0aXZlCi0gICAgJzAnLCAgICAgICAgICAgIC8v
IHplcm8KLSAgICAnMScsICAgICAgICAgICAgLy8gcG9zaXRpdmUKLSAgICAnMHg3ZmZmZmZmZics
ICAgLy8gaW50MzJfdCBtYXgKLSAgICAnMHg4MDAwMDAwMCcsICAgLy8gb3V0IG9mIGludDMyX3QK
LSAgICAnMHhmZmZmZmZmZCcsICAgLy8gbGVzcyB0aGFuIGFycmF5IG1heCBpbiBKU09iamVjdAot
ICAgICcweGZmZmZmZmZlJywgICAvLyBhcnJheSBtYXggaW4gSlNPYmplY3QKLSAgICAnMHhmZmZm
ZmZmZicsICAgLy8gdWludDMyX3QgbWF4LCBQcm9wZXJ0eU5hbWU6Ok5vdEFuSW5kZXgKLSAgICAn
MHgxMDAwMDAwMDAnLCAgLy8gb3V0IG9mIHVpbnQzMl90Ci0KLSAgICAvLyBzdHJpbmdpZmllZCBp
bnRlZ2VycwotICAgICciJyArICgtMHg4MDAwMDAwMSkudG9TdHJpbmcoKSArICciJywgIC8vIG91
dCBvZiBpbnQzMl90Ci0gICAgJyInICsgKC0weDgwMDAwMDAwKS50b1N0cmluZygpICsgJyInLCAg
Ly8gaW50MzJfdCBtaW4KLSAgICAnIicgKyAoLTEpLnRvU3RyaW5nKCkgKyAnIicsICAgICAgICAg
ICAvLyBuZWdhdGl2ZQotICAgICciJyArICgwKS50b1N0cmluZygpICsgJyInLCAgICAgICAgICAg
IC8vIHplcm8KLSAgICAnIicgKyAoMSkudG9TdHJpbmcoKSArICciJywgICAgICAgICAgICAvLyBw
b3NpdGl2ZQotICAgICciJyArICgweDdmZmZmZmZmKS50b1N0cmluZygpICsgJyInLCAgIC8vIGlu
dDMyX3QgbWF4Ci0gICAgJyInICsgKDB4ODAwMDAwMDApLnRvU3RyaW5nKCkgKyAnIicsICAgLy8g
b3V0IG9mIGludDMyX3QKLSAgICAnIicgKyAoMHhmZmZmZmZmZCkudG9TdHJpbmcoKSArICciJywg
ICAvLyBsZXNzIHRoYW4gYXJyYXkgbWF4IGluIEpTT2JqZWN0Ci0gICAgJyInICsgKDB4ZmZmZmZm
ZmUpLnRvU3RyaW5nKCkgKyAnIicsICAgLy8gYXJyYXkgbWF4IGluIEpTT2JqZWN0Ci0gICAgJyIn
ICsgKDB4ZmZmZmZmZmYpLnRvU3RyaW5nKCkgKyAnIicsICAgLy8gdWludDMyX3QgbWF4KS50b1N0
cmluZygpIFByb3BlcnR5TmFtZTo6Tm90QW5JbmRleAotICAgICciJyArICgweDEwMDAwMDAwMCku
dG9TdHJpbmcoKSArICciJywgIC8vIG91dCBvZiB1aW50MzJfdAotCi0gICAgLy8gZG91Ymxlcwot
ICAgICdOdW1iZXIuTUlOX1ZBTFVFJywKLSAgICAnTnVtYmVyLk1BWF9WQUxVRScsCi0gICAgJ051
bWJlci5NSU5fU0FGRV9JTlRFR0VSJywKLSAgICAnTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVInLAot
ICAgICdOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFknLAotICAgICdOdW1iZXIuTkVHQVRJVkVfSU5G
SU5JVFknLAotICAgICdOdW1iZXIuTmFOJywKLSAgICAnTnVtYmVyLkVQU0lMT04nLAotICAgICcr
MC4wJywKLSAgICAnLTAuMCcsCi0gICAgJzAuMScsCi0gICAgJy0wLjEnLAotICAgICc0LjInLAot
ICAgICctNC4yJywKLQotICAgIC8vIHN0cmluZ2lmaWVkIGRvdWxlcwotICAgICciJyArIChOdW1i
ZXIuTUlOX1ZBTFVFKS50b1N0cmluZygpICsgJyInLAotICAgICciJyArIChOdW1iZXIuTUFYX1ZB
TFVFKS50b1N0cmluZygpICsgJyInLAotICAgICciJyArIChOdW1iZXIuTUlOX1NBRkVfSU5URUdF
UikudG9TdHJpbmcoKSArICciJywKLSAgICAnIicgKyAoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIp
LnRvU3RyaW5nKCkgKyAnIicsCi0gICAgJyInICsgKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSku
dG9TdHJpbmcoKSArICciJywKLSAgICAnIicgKyAoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZKS50
b1N0cmluZygpICsgJyInLAotICAgICciTmFOIicsCi0gICAgJyInICsgKE51bWJlci5FUFNJTE9O
KS50b1N0cmluZygpICsgJyInLAotICAgICciKzAuMCInLAotICAgICciLTAuMCInLAotICAgICci
MC4xIicsCi0gICAgJyItMC4xIicsCi0gICAgJyI0LjIiJywKLSAgICAnIi00LjIiJywKLV0uZm9y
RWFjaChmdW5jdGlvbiAoa2V5KSB7Ci0gICAgZGZnU2hvdWxkQmUobG9va3VwV2l0aEtleSwgImxv
b2t1cFdpdGhLZXkoIisga2V5ICsgIikiLCAiNDIiKTsKLX0pOwotCi1mdW5jdGlvbiBsb29rdXBX
aXRoS2V5MihrZXkpIHsKLSAgICB2YXIgb2JqZWN0ID0gewotICAgICAgICBba2V5XTogNDIKLSAg
ICB9OwotICAgIHJldHVybiBvYmplY3Rba2V5XTsKLX0KLQotdmFyIHRvU3RyaW5nVGhyb3dzRXJy
b3IgPSB7Ci0gICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCduZycpOwotICAgIH0KLX07Ci1kZmdTaG91bGRUaHJvdyhsb29rdXBXaXRoS2V5MiwgImxv
b2t1cFdpdGhLZXkyKHRvU3RyaW5nVGhyb3dzRXJyb3IpIiwgIidFcnJvcjogbmcnIik7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMgYi9MYXlvdXRUZXN0
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMKaW5kZXggZmY0NTU5ZjIzYmFkM2U5NGNkNzQ3NTA1
NzA2NDk5ZjdiM2ZhZDU1OS4uZjExYjRiNTUxMTU5NzE2YjE3ZDgwMzNiNjQ0MzQ3YjUzMjhjMzcw
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzCisrKyBi
L0xheW91dFRlc3RzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcwpAQCAtNjE3LDU0ICs2MTcsNiBA
QCBmdW5jdGlvbiBzaG91bGRUaHJvdyhfYSwgX2UpCiAgICAgdGVzdEZhaWxlZChfYSArICIgc2hv
dWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiID8gImFuIGV4Y2VwdGlvbiIg
OiBfZXYpICsgIi4gV2FzICIgKyBfYXYgKyAiLiIpOwogfQogCi1mdW5jdGlvbiBkZmdTaG91bGRU
aHJvdyh0aGVGdW5jdGlvbiwgX2EsIF9lKQotewotICBpZiAodHlwZW9mIHRoZUZ1bmN0aW9uICE9
ICJmdW5jdGlvbiIgfHwgdHlwZW9mIF9hICE9ICJzdHJpbmciIHx8IHR5cGVvZiBfZSAhPSAic3Ry
aW5nIikKLSAgICBkZWJ1ZygiV0FSTjogZGZnU2hvdWxkQmUoKSBleHBlY3RzIGEgZnVuY3Rpb24g
YW5kIHR3byBzdHJpbmdzIik7Ci0gIG5vSW5saW5lKHRoZUZ1bmN0aW9uKTsKLSAgdmFyIHZhbHVl
cyA9IFtdLCBfYXYgPSB1bmRlZmluZWQsIG5vdFRocm93ID0gZmFsc2U7Ci0KLSAgLy8gRGVmZW5k
IGFnYWluc3QgdGVzdHMgdGhhdCBtdWNrIHdpdGggbnVtZXJpYyBwcm9wZXJ0aWVzIG9uIGFycmF5
LnByb3RvdHlwZS4KLSAgdmFsdWVzLl9fcHJvdG9fXyA9IG51bGw7Ci0gIHZhbHVlcy5wdXNoID0g
QXJyYXkucHJvdG90eXBlLnB1c2g7Ci0KLSAgd2hpbGUgKCFkZmdDb21waWxlZCh7Zjp0aGVGdW5j
dGlvbn0pKSB7Ci0gICAgdHJ5IHsKLSAgICAgICAgX2F2ID0gZXZhbChfYSk7Ci0gICAgICAgIG5v
dFRocm93ID0gdHJ1ZTsKLSAgICB9IGNhdGNoIChleGNlcHRpb24pIHsKLSAgICAgICAgdmFsdWVz
LnB1c2goZXhjZXB0aW9uKTsKLSAgICB9Ci0gIH0KLSAgdHJ5IHsKLSAgICBfYXYgPSBldmFsKF9h
KTsKLSAgICBub3RUaHJvdyA9IHRydWU7Ci0gIH0gY2F0Y2ggKGV4Y2VwdGlvbikgewotICAgIHZh
bHVlcy5wdXNoKGV4Y2VwdGlvbik7Ci0gIH0KLQotICB2YXIgX2V2ID0gZXZhbChfZSk7Ci0gIGlm
IChub3RUaHJvdykgewotICAgIGlmICh0eXBlb2YgX2F2ID09ICJ1bmRlZmluZWQiKQotICAgICAg
dGVzdEZhaWxlZChfYSArICIgc2hvdWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09ICJ1bmRlZmlu
ZWQiID8gImFuIGV4Y2VwdGlvbiIgOiBfZXYpICsgIi4gV2FzIHVuZGVmaW5lZC4iKTsKLSAgICBl
bHNlCi0gICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgdGhyb3cgIiArICh0eXBlb2YgX2Ug
PT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9uIiA6IF9ldikgKyAiLiBXYXMgIiArIF9hdiAr
ICIuIik7Ci0gIH0gZWxzZSB7Ci0gICAgdmFyIGFsbFBhc3NlZCA9IHRydWU7Ci0gICAgZm9yICh2
YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgIHZhciBfYXYgPSB2YWx1
ZXNbaV07Ci0gICAgICBpZiAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiIHx8IF9hdiA9PSBfZXYp
Ci0gICAgICAgIGNvbnRpbnVlOwotICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIHRocm93
ICIgKyAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiID8gImFuIGV4Y2VwdGlvbiIgOiBfZXYpICsg
Ii4gVGhyZXcgZXhjZXB0aW9uICIgKyBfYXYgKyAiLiIpOwotICAgICAgYWxsUGFzc2VkID0gZmFs
c2U7Ci0gICAgfQotICAgIGlmIChhbGxQYXNzZWQpCi0gICAgICB0ZXN0UGFzc2VkKF9hICsgIiB0
aHJldyBleGNlcHRpb24gIiArIF9lICsgIiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0
ZXIgREZHIHRpZXItdXAuIik7Ci0gIH0KLQotICByZXR1cm4gdmFsdWVzLmxlbmd0aDsKLX0KLQog
ZnVuY3Rpb24gc2hvdWxkSGF2ZUhhZEVycm9yKG1lc3NhZ2UpCiB7CiAgICAgaWYgKGVycm9yTWVz
c2FnZSkgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>