<?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>102981</bug_id>
          
          <creation_ts>2012-11-21 14:49:27 -0800</creation_ts>
          <short_desc>REGRESSION(r135338): Likely caused a 10% regression in dromaeo_domcoreattr/dom_attr_getAttribute (Requested by abarth on #webkit).</short_desc>
          <delta_ts>2012-11-21 14:54:25 -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>102805</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>abarth</cc>
    
    <cc>haraken</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>773314</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-21 14:49:27 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/135338 broke the build:
Likely caused a 10% regression in dromaeo_domcoreattr/dom_attr_getAttribute (Requested by abarth on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773316</commentid>
    <comment_count>1</comment_count>
      <attachid>175527</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-21 14:50:08 -0800</bug_when>
    <thetext>Created attachment 175527
ROLLOUT of r135338

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>773320</commentid>
    <comment_count>2</comment_count>
      <attachid>175527</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-21 14:54:21 -0800</bug_when>
    <thetext>Comment on attachment 175527
ROLLOUT of r135338

Clearing flags on attachment: 175527

Committed r135440: &lt;http://trac.webkit.org/changeset/135440&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773321</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-21 14:54:25 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175527</attachid>
            <date>2012-11-21 14:50:08 -0800</date>
            <delta_ts>2012-11-21 14:54:21 -0800</delta_ts>
            <desc>ROLLOUT of r135338</desc>
            <filename>bug-102981-20121121225625.patch</filename>
            <type>text/plain</type>
            <size>42452</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQyYjNjNTY5NGRiZjVh
MDFlODdhOTNmNzcwMGFiYWQxOTFmNDdmOC4uMDRlMzBlZmM2Mjg3MWE1ZTdjOGEyODBlYzA4YzMx
YmVkNWI1YTAxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg0IEBACisyMDEyLTExLTIxICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTM1MzM4LCByMTM1MzU5LCBhbmQgcjEzNTM3OC4KKyAgICAgICAg
aHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTM1MzM4CisgICAgICAgIGh0dHA6Ly90
cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEzNTM1OQorICAgICAgICBodHRwOi8vdHJhYy53ZWJr
aXQub3JnL2NoYW5nZXNldC8xMzUzNzgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwMjk4MQorCisgICAgICAgIExpa2VseSBjYXVzZWQgYSAxMCUgcmVn
cmVzc2lvbiBpbgorICAgICAgICBkcm9tYWVvX2RvbWNvcmVhdHRyL2RvbV9hdHRyX2dldEF0dHJp
YnV0ZSAoUmVxdWVzdGVkIGJ5IGFiYXJ0aAorICAgICAgICBvbiAjd2Via2l0KS4KKworICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJh
dGVFdmVudENvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAoQ29udmVydFRvVjhQYXJhbWV0
ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01P
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGVzdEFjdGl2ZURPTU9iamVjdFY4SW50ZXJu
YWw6OnBvc3RNZXNzYWdlQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXJWOEludGVybmFsOjphbm90aGVyRnVuY3Rpb25DYWxsYmFjayk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0
b3JDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdElu
dGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXN0SW50ZXJmYWNlVjhJbnRlcm5hbDo6
c3VwcGxlbWVudGFsU3RhdGljQXR0ckF0dHJTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVz
dEludGVyZmFjZVY4SW50ZXJuYWw6OnN1cHBsZW1lbnRhbFN0cjJBdHRyU2V0dGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRlc3RJbnRlcmZhY2VWOEludGVybmFsOjpzdXBwbGVtZW50YWxNZXRob2Qy
Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0SW50ZXJmYWNlOjpjb25zdHJ1Y3Rv
ckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFt
ZWRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3ROYW1lZENvbnN0cnVj
dG9yQ29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6
c3RhdGljU3RyaW5nQXR0ckF0dHJTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4
SW50ZXJuYWw6OnN0cmluZ0F0dHJBdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RP
YmpWOEludGVybmFsOjpyZWZsZWN0ZWRTdHJpbmdBdHRyQXR0clNldHRlcik6CisgICAgICAgIChX
ZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6cmVmbGVjdGVkVVJMQXR0ckF0dHJTZXR0ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnJlZmxlY3RlZEN1c3RvbVVSTEF0
dHJBdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpzdHJp
bmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
VGVzdE9ialY4SW50ZXJuYWw6OnN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uQXR0clNldHRl
cik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6dm9pZE1ldGhvZFdpdGhB
cmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmxvbmdN
ZXRob2RXaXRoQXJnc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVy
bmFsOjpvYmpNZXRob2RXaXRoQXJnc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RP
YmpWOEludGVybmFsOjptZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzQ2FsbGJhY2sp
OgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhPcHRpb25h
bFN0cmluZ0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpt
ZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc1VuZGVmaW5lZENhbGxiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjptZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc051bGxT
dHJpbmdDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6b3Zl
cmxvYWRlZE1ldGhvZDFDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRl
cm5hbDo6b3ZlcmxvYWRlZE1ldGhvZDNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0
T2JqVjhJbnRlcm5hbDo6b3ZlcmxvYWRlZE1ldGhvZDExQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRNZXRob2QxMkNhbGxiYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpzdHJpY3RGdW5jdGlvbkNhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjp2YXJpYWRpY1N0cmluZ01l
dGhvZENhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzOjpjb25zdHJ1Y3RvcjRDYWxsYmFjayk6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2U6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4Qmlu
ZGluZ01hY3Jvcy5oOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4U3RyaW5nUmVzb3VyY2UuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlY4UGFyYW1ldGVyOjpWOFBhcmFtZXRlcik6CisgICAgICAgIChW
OFBhcmFtZXRlcik6CisgICAgICAgIChXZWJDb3JlOjpWOFBhcmFtZXRlcjo6cHJlcGFyZUJhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6VjhQYXJhbWV0ZXI6Om9iamVjdCk6CisgICAgICAgIChXZWJD
b3JlOjo6OnByZXBhcmUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENvbnNvbGVD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhDb25zb2xlOjpwcm9maWxlQ2FsbGJhY2sp
OgorICAgICAgICAoV2ViQ29yZTo6VjhDb25zb2xlOjpwcm9maWxlRW5kQ2FsbGJhY2spOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpoYW5kbGVQb3N0TWVzc2FnZUNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5n
cy92OC9jdXN0b20vVjhEZXZpY2VNb3Rpb25FdmVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpWOERldmljZU1vdGlvbkV2ZW50Ojppbml0RGV2aWNlTW90aW9uRXZlbnRDYWxsYmFjayk6
CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGV2aWNlT3JpZW50YXRpb25FdmVudEN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOERldmljZU9yaWVudGF0aW9uRXZlbnQ6Omlu
aXREZXZpY2VPcmllbnRhdGlvbkV2ZW50Q2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4
L2N1c3RvbS9WOEhpc3RvcnlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhIaXN0b3J5
OjpwdXNoU3RhdGVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOEhpc3Rvcnk6OnJlcGxh
Y2VTdGF0ZUNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhJbnRlbnRD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhJbnRlbnQ6OmNvbnN0cnVjdG9yQ2FsbGJh
Y2tDdXN0b20pOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFNRTFRyYW5zYWN0aW9u
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4U1FMVHJhbnNhY3Rpb246OmV4ZWN1dGVT
cWxDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1FMVHJhbnNhY3Rp
b25TeW5jQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4U1FMVHJhbnNhY3Rpb25TeW5j
OjpleGVjdXRlU3FsQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdl
YkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uQ2FsbGJhY2spOgorCiAyMDEyLTExLTIxICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFlldCBhbm90aGVyIEVG
TCAmIEdUSysgYnVpbGQgZml4IGFmdGVyIHIxMzU0MjkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IDNmODEzNzkwM2E3ODE3
NmFkNTEzYTk5ODVjM2EyZGM4MWRlNDJkNTYuLjE5YzkwYmUwNTc2MzYxMjI2YTA3MzI3NDg0Njhh
N2RlMWZiNmNhY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvclY4LnBtCkBAIC0yMDI5LDcgKzIwMjksNyBAQCBFTkQKICAgICBpZiAoYXJn
cy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAotICAgIEVYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRl
cjw+LCB0eXBlLCBhcmdzWzBdKTsKKyAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9O
X0JMT0NLKFY4UGFyYW1ldGVyPD4sIHR5cGUsIGFyZ3NbMF0pOwogICAgICR7aW50ZXJmYWNlTmFt
ZX1Jbml0IGV2ZW50SW5pdDsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA+PSAyKSB7CiAgICAgICAg
IEVYQ0VQVElPTl9CTE9DSyhEaWN0aW9uYXJ5LCBvcHRpb25zLCBEaWN0aW9uYXJ5KGFyZ3NbMV0s
IGFyZ3MuR2V0SXNvbGF0ZSgpKSk7CkBAIC00MjA1LDcgKzQyMDUsNyBAQCBzdWIgQ29udmVydFRv
VjhQYXJhbWV0ZXIKIAogICAgIGRpZSAiV3JvbmcgbmF0aXZlIHR5cGUgcGFzc2VkOiAkbmF0aXZl
VHlwZSIgdW5sZXNzICRuYXRpdmVUeXBlID1+IC9eVjhQYXJhbWV0ZXIvOwogICAgIGlmICgkc2ln
bmF0dXJlLT50eXBlIGVxICJET01TdHJpbmciKSB7Ci0gICAgICAgIG15ICRtYWNybyA9ICJFWENF
UFRJT05fQkxPQ0siOworICAgICAgICBteSAkbWFjcm8gPSAiU1RSSU5HX1RPX1Y4UEFSQU1FVEVS
X0VYQ0VQVElPTl9CTE9DSyI7CiAgICAgICAgICRtYWNybyAuPSAiXyRzdWZmaXgiIGlmICRzdWZm
aXg7CiAgICAgICAgIHJldHVybiAiJG1hY3JvKCRuYXRpdmVUeXBlLCAkdmFyaWFibGVOYW1lLCAk
dmFsdWUpOyIKICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcApp
bmRleCBlYjFjMDU1YmMxMTgwNjhlMzcxOTZiZWMzYWRiYjNhYTJmMGI1Nzg2Li40MWI1NzZkZTk0
ZTVhMDY1ZmI2YjljOWIwNjRiYTJmY2IxZmQ4NTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9N
T2JqZWN0LmNwcApAQCAtNjUsNyArNjUsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHBvc3RNZXNzYWdlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICBpZiAo
YXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0QWN0aXZlRE9NT2JqZWN0KiBpbXAg
PSBWOFRlc3RBY3RpdmVET01PYmplY3Q6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEVY
Q0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBtZXNzYWdlLCBNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKKyAgICBTVFJJTkdfVE9fVjhQQVJB
TUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIG1lc3NhZ2UsIE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwogICAgIGltcC0+cG9z
dE1lc3NhZ2UobWVzc2FnZSk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAppbmRleCBiZmM5Mzg5MDlhYzVjYjdhNjU4NjVk
MjRmZjNkMDg0MzU2NTRiNWMxLi5mZTI5MmUyZWI4ZDgwZGUyZTBlMjA5NTcyZTM4NjY1NzU4YmQx
NWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKQEAgLTQ0LDcgKzQ0
LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhbm90aGVyRnVuY3Rpb25DYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkK
ICAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29s
YXRlKCkpOwogICAgIFRlc3RDdXN0b21OYW1lZEdldHRlciogaW1wID0gVjhUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXI6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhW
OFBhcmFtZXRlcjw+LCBzdHIsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1
bHRJc1VuZGVmaW5lZCkpOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxP
Q0soVjhQYXJhbWV0ZXI8Piwgc3RyLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBE
ZWZhdWx0SXNVbmRlZmluZWQpKTsKICAgICBpbXAtPmFub3RoZXJGdW5jdGlvbihzdHIpOwogICAg
IHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3Iu
Y3BwCmluZGV4IDRlZWE3MTIwNzkxOGMzZDU2NDg4YzI4ODVlNmE2YzliODU0ZjRjNzcuLjI2YTdm
Yzc1MzRhYjJhZTEyYWRlMmJkZTllYzI2N2RkMDM2ZWIwZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZl
bnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IFY4VGVzdEV2ZW50Q29uc3RydWN0b3I6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3UKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd05vdEVu
b3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAotICAgIEVYQ0VQVElPTl9C
TE9DSyhWOFBhcmFtZXRlcjw+LCB0eXBlLCBhcmdzWzBdKTsKKyAgICBTVFJJTkdfVE9fVjhQQVJB
TUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHR5cGUsIGFyZ3NbMF0pOwogICAg
IFRlc3RFdmVudENvbnN0cnVjdG9ySW5pdCBldmVudEluaXQ7CiAgICAgaWYgKGFyZ3MuTGVuZ3Ro
KCkgPj0gMikgewogICAgICAgICBFWENFUFRJT05fQkxPQ0soRGljdGlvbmFyeSwgb3B0aW9ucywg
RGljdGlvbmFyeShhcmdzWzFdLCBhcmdzLkdldElzb2xhdGUoKSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNl
LmNwcAppbmRleCBhMzg5ZTYzYTg2YzZmMGZkMTUzNTVlNTFjNmIyZmY5M2RkMDM3ZTg1Li41YjZi
N2MwNDc5YmJhMmUwZjExNTA1ZjQ5ZDRmMThhZDZjNDkyY2UyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNl
LmNwcApAQCAtNzEsNyArNzEsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHN1cHBs
ZW1lbnRhbFN0YXRpY0F0dHJBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaQogc3RhdGljIHZv
aWQgc3VwcGxlbWVudGFsU3RhdGljQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+
IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZv
JiBpbmZvKQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RJbnRlcmZhY2Uuc3VwcGxlbWVudGFs
U3RhdGljQXR0ci5fc2V0Iik7Ci0gICAgRVhDRVBUSU9OX0JMT0NLX1ZPSUQoVjhQYXJhbWV0ZXI8
PiwgdiwgdmFsdWUpOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0tf
Vk9JRChWOFBhcmFtZXRlcjw+LCB2LCB2YWx1ZSk7CiAgICAgVGVzdFN1cHBsZW1lbnRhbDo6c2V0
U3VwcGxlbWVudGFsU3RhdGljQXR0cih2KTsKICAgICByZXR1cm47CiB9CkBAIC0xMDYsNyArMTA2
LDcgQEAgc3RhdGljIHZvaWQgc3VwcGxlbWVudGFsU3RyMkF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4
OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODoKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0
SW50ZXJmYWNlLnN1cHBsZW1lbnRhbFN0cjIuX3NldCIpOwogICAgIFRlc3RJbnRlcmZhY2UqIGlt
cCA9IFY4VGVzdEludGVyZmFjZTo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBU
SU9OX0JMT0NLX1ZPSUQoVjhQYXJhbWV0ZXI8PiwgdiwgdmFsdWUpOworICAgIFNUUklOR19UT19W
OFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0tfVk9JRChWOFBhcmFtZXRlcjw+LCB2LCB2YWx1ZSk7
CiAgICAgVGVzdFN1cHBsZW1lbnRhbDo6c2V0U3VwcGxlbWVudGFsU3RyMihpbXAsIHYpOwogICAg
IHJldHVybjsKIH0KQEAgLTE1OSw3ICsxNTksNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IHN1cHBsZW1lbnRhbE1ldGhvZDJDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcgog
ICAgIFRlc3RJbnRlcmZhY2UqIGltcCA9IFY4VGVzdEludGVyZmFjZTo6dG9OYXRpdmUoYXJncy5I
b2xkZXIoKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgewotICAgIEVYQ0VQVElP
Tl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFy
Z3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9F
WENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyQXJnLCBNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAgICBFWENFUFRJT05fQkxPQ0so
VGVzdE9iaiosIG9iakFyZywgVjhUZXN0T2JqOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4VGVzdE9iajo6dG9OYXRp
dmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihh
cmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKICAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBzY3JpcHRDb250ZXh0ID0gZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAg
IFJlZlB0cjxUZXN0T2JqPiByZXN1bHQgPSBUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxN
ZXRob2QyKHNjcmlwdENvbnRleHQsIGltcCwgc3RyQXJnLCBvYmpBcmcsIGVjKTsKQEAgLTI1Miw4
ICsyNTIsOCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhUZXN0SW50ZXJmYWNlOjpjb25zdHJ1
Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmCiAgICAgICAgIHJldHVybiB0aHJvd05v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAogICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwotICAgIEVYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHIxLCBN
QVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKLSAg
ICBFWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyMiwgTUFZQkVfTUlTU0lOR19QQVJB
TUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CisgICAgU1RSSU5HX1RPX1Y4UEFS
QU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHIxLCBNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKKyAgICBTVFJJTkdfVE9f
VjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0cjIsIE1BWUJFX01J
U1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwogCiAgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCmluZGV4IDdmOGU3ZDFlZmJm
ZTMxYjkzMDBiODhhODBkNWVkOGUzNDI0NzQ4MTEuLmFiMGJiNmI2MjIxODFhOTYzZmE0ZDcxNDgx
NGY4MjM2MDJmMjAzODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKQEAg
LTYxLDkgKzYxLDkgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFRlc3ROYW1lZENv
bnN0cnVjdG9yQ29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODoKICAgICAgICAgcmV0dXJuIHRo
cm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgRXhj
ZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0
cjEsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkp
OwotICAgIEVYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHIyLCBNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKLSAgICBFWENFUFRJT05f
QkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyMywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywg
MiwgRGVmYXVsdElzTnVsbFN0cmluZykpOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENF
UFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyMSwgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIo
YXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVS
X0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHIyLCBNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKKyAgICBTVFJJTkdfVE9fVjhQQVJB
TUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0cjMsIE1BWUJFX01JU1NJTkdf
UEFSQU1FVEVSKGFyZ3MsIDIsIERlZmF1bHRJc051bGxTdHJpbmcpKTsKIAogICAgIFJlZlB0cjxU
ZXN0TmFtZWRDb25zdHJ1Y3Rvcj4gaW1wbCA9IFRlc3ROYW1lZENvbnN0cnVjdG9yOjpjcmVhdGVG
b3JKU0NvbnN0cnVjdG9yKGRvY3VtZW50LCBzdHIxLCBzdHIyLCBzdHIzLCBlYyk7CiAgICAgdjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gYXJncy5Ib2xkZXIoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKaW5k
ZXggNWRhMTMwODM3MTI5MDBiODA0MjQ5ZDc5MmFiOTBkYjBmNTFiZjJiZi4uNGMwY2QzYTBkZjBj
MDU1YjlkOGQwNDdjMmZiMzI2NTMzNzg1NDgwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKQEAgLTEyNCw3ICsxMjQs
NyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHN0YXRpY1N0cmluZ0F0dHJBdHRyR2V0
dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYQogc3RhdGljIHZvaWQgc3RhdGljU3RyaW5nQXR0
ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFs
dWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIElOQ19TVEFU
UygiRE9NLlRlc3RPYmouc3RhdGljU3RyaW5nQXR0ci5fc2V0Iik7Ci0gICAgRVhDRVBUSU9OX0JM
T0NLX1ZPSUQoVjhQYXJhbWV0ZXI8PiwgdiwgdmFsdWUpOworICAgIFNUUklOR19UT19WOFBBUkFN
RVRFUl9FWENFUFRJT05fQkxPQ0tfVk9JRChWOFBhcmFtZXRlcjw+LCB2LCB2YWx1ZSk7CiAgICAg
VGVzdE9iajo6c2V0U3RhdGljU3RyaW5nQXR0cih2KTsKICAgICByZXR1cm47CiB9CkBAIC0yMjAs
NyArMjIwLDcgQEAgc3RhdGljIHZvaWQgc3RyaW5nQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4
OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWUKIHsKICAgICBJTkNfU1RBVFMoIkRP
TS5UZXN0T2JqLnN0cmluZ0F0dHIuX3NldCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9i
ajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLX1ZPSUQoVjhQ
YXJhbWV0ZXI8PiwgdiwgdmFsdWUpOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJ
T05fQkxPQ0tfVk9JRChWOFBhcmFtZXRlcjw+LCB2LCB2YWx1ZSk7CiAgICAgaW1wLT5zZXRTdHJp
bmdBdHRyKHYpOwogICAgIHJldHVybjsKIH0KQEAgLTI4Niw3ICsyODYsNyBAQCBzdGF0aWMgdm9p
ZCByZWZsZWN0ZWRTdHJpbmdBdHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFt
ZSwgdjg6OkxvY2FsPAogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoucmVmbGVjdGVkU3Ry
aW5nQXR0ci5fc2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShp
bmZvLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0tfVk9JRChWOFBhcmFtZXRlcjxXaXRo
TnVsbENoZWNrPiwgdiwgdmFsdWUpOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJ
T05fQkxPQ0tfVk9JRChWOFBhcmFtZXRlcjxXaXRoTnVsbENoZWNrPiwgdiwgdmFsdWUpOwogICAg
IGltcC0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkc3RyaW5nYXR0
ckF0dHIsIHYpOwogICAgIHJldHVybjsKIH0KQEAgLTM1MCw3ICszNTAsNyBAQCBzdGF0aWMgdm9p
ZCByZWZsZWN0ZWRVUkxBdHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwg
djg6OkxvY2FsPHY4OgogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoucmVmbGVjdGVkVVJM
QXR0ci5fc2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZv
LkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0tfVk9JRChWOFBhcmFtZXRlcjxXaXRoTnVs
bENoZWNrPiwgdiwgdmFsdWUpOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05f
QkxPQ0tfVk9JRChWOFBhcmFtZXRlcjxXaXRoTnVsbENoZWNrPiwgdiwgdmFsdWUpOwogICAgIGlt
cC0+c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkdXJsYXR0ckF0dHIs
IHYpOwogICAgIHJldHVybjsKIH0KQEAgLTM2Niw3ICszNjYsNyBAQCBzdGF0aWMgdm9pZCByZWZs
ZWN0ZWRTdHJpbmdBdHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6
OkxvY2FsPAogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoucmVmbGVjdGVkU3RyaW5nQXR0
ci5fc2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhv
bGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0tfVk9JRChWOFBhcmFtZXRlcjxXaXRoTnVsbENo
ZWNrPiwgdiwgdmFsdWUpOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxP
Q0tfVk9JRChWOFBhcmFtZXRlcjxXaXRoTnVsbENoZWNrPiwgdiwgdmFsdWUpOwogICAgIGltcC0+
c2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudFN0cmluZ0F0dHJB
dHRyLCB2KTsKICAgICByZXR1cm47CiB9CkBAIC00MTQsNyArNDE0LDcgQEAgc3RhdGljIHZvaWQg
cmVmbGVjdGVkQ3VzdG9tVVJMQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5h
bWUsIHY4OjpMb2MKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLnJlZmxlY3RlZEN1c3Rv
bVVSTEF0dHIuX3NldCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUo
aW5mby5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLX1ZPSUQoVjhQYXJhbWV0ZXI8V2l0
aE51bGxDaGVjaz4sIHYsIHZhbHVlKTsKKyAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBU
SU9OX0JMT0NLX1ZPSUQoVjhQYXJhbWV0ZXI8V2l0aE51bGxDaGVjaz4sIHYsIHZhbHVlKTsKICAg
ICBpbXAtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRVUkxB
dHRyQXR0ciwgdik7CiAgICAgcmV0dXJuOwogfQpAQCAtNDg5LDcgKzQ4OSw3IEBAIHN0YXRpYyB2
b2lkIHN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0clNldHRlcih2ODo6TG9jYWw8djg6
OlN0cmluZz4gbmFtZSwKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLnN0cmluZ0F0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uLl9zZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6
OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DS19WT0lEKFY4UGFy
YW1ldGVyPD4sIHYsIHZhbHVlKTsKKyAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9O
X0JMT0NLX1ZPSUQoVjhQYXJhbWV0ZXI8PiwgdiwgdmFsdWUpOwogICAgIGltcC0+c2V0U3RyaW5n
QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odik7CiAgICAgcmV0dXJuOwogfQpAQCAtNTA1LDcgKzUw
NSw3IEBAIHN0YXRpYyB2b2lkIHN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uQXR0clNldHRl
cih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0
T2JqLnN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uLl9zZXQiKTsKICAgICBUZXN0T2JqKiBp
bXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9C
TE9DS19WT0lEKFY4UGFyYW1ldGVyPD4sIHYsIHZhbHVlKTsKKyAgICBTVFJJTkdfVE9fVjhQQVJB
TUVURVJfRVhDRVBUSU9OX0JMT0NLX1ZPSUQoVjhQYXJhbWV0ZXI8PiwgdiwgdmFsdWUpOwogICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIGltcC0+c2V0U3RyaW5nQXR0cldpdGhTZXR0ZXJF
eGNlcHRpb24odiwgZWMpOwogICAgIGlmIChVTkxJS0VMWShlYykpCkBAIC0xMDU3LDcgKzEwNTcs
NyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZvaWRNZXRob2RXaXRoQXJnc0NhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZwogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91
Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0g
VjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBFWENFUFRJT05fQkxPQ0so
aW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwg
c3RyQXJnLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmlu
ZWQpKTsKKyAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1l
dGVyPD4sIHN0ckFyZywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElz
VW5kZWZpbmVkKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKFRlc3RPYmoqLCBvYmpBcmcsIFY4VGVz
dE9iajo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMiwgRGVmYXVs
dElzVW5kZWZpbmVkKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVj
dD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMiwgRGVmYXVsdElzVW5kZWZp
bmVkKSkpIDogMCk7CiAgICAgaW1wLT52b2lkTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJn
LCBvYmpBcmcpOwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwpAQCAtMTA3Nyw3ICsxMDc3LDcg
QEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBsb25nTWV0aG9kV2l0aEFyZ3NDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmcKICAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdo
QXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4
VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKGlu
dCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZh
dWx0SXNVbmRlZmluZWQpKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0
ckFyZywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVk
KSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRl
cjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERlZmF1bHRJc1Vu
ZGVmaW5lZCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhUZXN0T2JqKiwgb2JqQXJnLCBWOFRlc3RP
Ymo6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDIsIERlZmF1bHRJ
c1VuZGVmaW5lZCkpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDIsIERlZmF1bHRJc1VuZGVmaW5l
ZCkpKSA6IDApOwogICAgIHJldHVybiB2OEludGVnZXIoaW1wLT5sb25nTWV0aG9kV2l0aEFyZ3Mo
bG9uZ0FyZywgc3RyQXJnLCBvYmpBcmcpLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9CkBAIC0xMDk3
LDcgKzEwOTcsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG9iak1ldGhvZFdpdGhB
cmdzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncwogICAgICAgICByZXR1cm4gdGhy
b3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9i
aiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBFWENFUFRJ
T05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFy
Z3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soVjhQYXJh
bWV0ZXI8Piwgc3RyQXJnLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0
SXNVbmRlZmluZWQpKTsKKyAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NL
KFY4UGFyYW1ldGVyPD4sIHN0ckFyZywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwg
RGVmYXVsdElzVW5kZWZpbmVkKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKFRlc3RPYmoqLCBvYmpB
cmcsIFY4VGVzdE9iajo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywg
MiwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8
djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMiwgRGVmYXVs
dElzVW5kZWZpbmVkKSkpIDogMCk7CiAgICAgcmV0dXJuIHRvVjgoaW1wLT5vYmpNZXRob2RXaXRo
QXJncyhsb25nQXJnLCBzdHJBcmcsIG9iakFyZyksIGFyZ3MuSG9sZGVyKCksIGFyZ3MuR2V0SXNv
bGF0ZSgpKTsKIH0KQEAgLTExMzEsNyArMTEzMSw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93c0NhbGxiYWNrKGNvbnN0IHY4
CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsK
ICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICB7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKFY4
UGFyYW1ldGVyPD4sIHN0ckFyZywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVm
YXVsdElzVW5kZWZpbmVkKSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9C
TE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3Ms
IDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhUZXN0T2JqKiwg
b2JqQXJnLCBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFy
Z3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwogICAgIFJlZlB0cjxUZXN0T2JqPiByZXN1bHQgPSBp
bXAtPm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3Moc3RyQXJnLCBvYmpBcmcsIGVj
KTsKICAgICBpZiAoVU5MSUtFTFkoZWMpKQpAQCAtMTQzOSw3ICsxNDM5LDcgQEAgc3RhdGljIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBtZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdDYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnQKICAgICAgICAgaW1wLT5tZXRob2RXaXRoT3B0aW9uYWxTdHJpbmcoKTsK
ICAgICAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiAgICAgfQotICAgIEVYQ0VQVElPTl9CTE9D
SyhWOFBhcmFtZXRlcjw+LCBzdHIsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05f
QkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAw
LCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAgICBpbXAtPm1ldGhvZFdpdGhPcHRpb25hbFN0cmlu
ZyhzdHIpOwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQpAQCAtMTQ0OCw3ICsxNDQ4LDcg
QEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBtZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJ
c1VuZGVmaW5lZENhbGxiYWNrKGNvbnN0IHYKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2Jq
Lm1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzVW5kZWZpbmVkIik7CiAgICAgVGVzdE9iaiogaW1w
ID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxP
Q0soVjhQYXJhbWV0ZXI8Piwgc3RyLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBE
ZWZhdWx0SXNVbmRlZmluZWQpKTsKKyAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9O
X0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0ciwgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywg
MCwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CiAgICAgaW1wLT5tZXRob2RXaXRoT3B0aW9uYWxTdHJp
bmdJc1VuZGVmaW5lZChzdHIpOwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQpAQCAtMTQ1
Nyw3ICsxNDU3LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBtZXRob2RXaXRoT3B0
aW9uYWxTdHJpbmdJc051bGxTdHJpbmdDYWxsYmFjayhjb25zdAogewogICAgIElOQ19TVEFUUygi
RE9NLlRlc3RPYmoubWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNOdWxsU3RyaW5nIik7CiAgICAg
VGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBF
WENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihhcmdzLCAwLCBEZWZhdWx0SXNOdWxsU3RyaW5nKSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1F
VEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHIsIE1BWUJFX01JU1NJTkdfUEFS
QU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc051bGxTdHJpbmcpKTsKICAgICBpbXAtPm1ldGhvZFdp
dGhPcHRpb25hbFN0cmluZ0lzTnVsbFN0cmluZyhzdHIpOwogICAgIHJldHVybiB2OFVuZGVmaW5l
ZCgpOwogfQpAQCAtMTU0NSw3ICsxNTQ1LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBvdmVybG9hZGVkTWV0aG9kMUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MKICAg
ICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRl
KCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIo
KSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKFRlc3RPYmoqLCBvYmpBcmcsIFY4VGVzdE9iajo6SGFz
SW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZp
bmVkKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3Qo
TUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpIDog
MCk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0ckFyZywgTUFZQkVfTUlT
U0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CisgICAgU1RSSU5H
X1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwogICAg
IGltcC0+b3ZlcmxvYWRlZE1ldGhvZChvYmpBcmcsIHN0ckFyZyk7CiAgICAgcmV0dXJuIHY4VW5k
ZWZpbmVkKCk7CiB9CkBAIC0xNTcyLDcgKzE1NzIsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IG92ZXJsb2FkZWRNZXRob2QzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Tm90RW5v
dWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9
IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NL
KFY4UGFyYW1ldGVyPD4sIHN0ckFyZywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwg
RGVmYXVsdElzVW5kZWZpbmVkKSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElP
Tl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFy
Z3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwogICAgIGltcC0+b3ZlcmxvYWRlZE1ldGhvZChz
dHJBcmcpOwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQpAQCAtMTY2Miw3ICsxNjYyLDcg
QEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvdmVybG9hZGVkTWV0aG9kMTFDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmcKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCiAg
ICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0
ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVy
KCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01J
U1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOworICAgIFNUUklO
R19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyQXJnLCBN
QVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAg
ICBpbXAtPm92ZXJsb2FkZWRNZXRob2Qoc3RyQXJnKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQo
KTsKIH0KQEAgLTE3MzUsNyArMTczNSw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
b3ZlcmxvYWRlZE1ldGhvZDEyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJnCiAgICAg
SU5DX1NUQVRTKCJET00uVGVzdE9iai5vdmVybG9hZGVkTWV0aG9kMTIiKTsKICAgICBpZiAoYXJn
cy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8
PiwgdHlwZSwgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZp
bmVkKSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFt
ZXRlcjw+LCB0eXBlLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNV
bmRlZmluZWQpKTsKICAgICBUZXN0T2JqOjpvdmVybG9hZGVkTWV0aG9kMSh0eXBlKTsKICAgICBy
ZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KQEAgLTE5MjksNyArMTkyOSw3IEBAIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gc3RyaWN0RnVuY3Rpb25DYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5I
b2xkZXIoKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgewotICAgIEVYQ0VQVElP
Tl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHIsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3Ms
IDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENF
UFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihh
cmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAgICBFWENFUFRJT05fQkxPQ0soZmxvYXQs
IGEsIHN0YXRpY19jYXN0PGZsb2F0PihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBE
ZWZhdWx0SXNVbmRlZmluZWQpLT5OdW1iZXJWYWx1ZSgpKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NL
KGludCwgYiwgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0
SXNVbmRlZmluZWQpKSk7CiAgICAgUmVmUHRyPGJvb2w+IHJlc3VsdCA9IGltcC0+c3RyaWN0RnVu
Y3Rpb24oc3RyLCBhLCBiLCBlYyk7CkBAIC0xOTQ3LDcgKzE5NDcsNyBAQCBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IHZhcmlhZGljU3RyaW5nTWV0aG9kQ2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYQogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRo
cm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RP
YmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBU
SU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIGhlYWQsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFy
Z3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9F
WENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8PiwgaGVhZCwgTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKFZl
Y3RvcjxTdHJpbmc+LCB0YWlsLCB0b05hdGl2ZUFyZ3VtZW50czxTdHJpbmc+KGFyZ3MsIDEpKTsK
ICAgICBpbXAtPnZhcmlhZGljU3RyaW5nTWV0aG9kKGhlYWQsIHRhaWwpOwogICAgIHJldHVybiB2
OFVuZGVmaW5lZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMu
Y3BwCmluZGV4IDhhNTVkZGI0MDJkNDgzNWJjZDg1Y2RmNGQ0MTg4ZmI2OWM0MmY4NTUuLmIwZmVk
OWNkN2U3MDQ5ZDY5MGVjMDg3MGUwMjhhMzVmOGMwMGE0ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OmNvbnN0cnVjdG9yNENh
bGxiYWNrKGNvbnN0IHYKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9ycy5Db25zdHJ1Y3RvcjQiKTsKICAgICAKLSAgICBFWENFUFRJT05fQkxPQ0soVjhQYXJh
bWV0ZXI8Piwgc3RyaW5nLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0
SXNVbmRlZmluZWQpKTsKKyAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NL
KFY4UGFyYW1ldGVyPD4sIHN0cmluZywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwg
RGVmYXVsdElzVW5kZWZpbmVkKSk7CiAKICAgICBSZWZQdHI8VGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnM+IGltcGwgPSBUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6Y3JlYXRlKHN0cmluZyk7
CiAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gYXJncy5Ib2xkZXIoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5j
cHAKaW5kZXggZGU2NTI0OTM4ZmM4Nzg5MTNkYTY2ZTYyYThkYTNhOWYzYzVjMDU2ZS4uMjUzMmYx
ZTY4MTQ5NjhlZTM2YTE3OWI5YjA3YTUwNGE0ZjVkZTEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKQEAgLTIxOCw3ICsy
MTgsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlOjpjb25zdHJ1Y3RvckNhbGxiYWNrKAogICAgICAgICByZXR1cm4gYXJncy5Ib2xk
ZXIoKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDIpCiAgICAgICAgIHJldHVybiB0aHJvd05v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLSAgICBFWENFUFRJT05f
QkxPQ0soVjhQYXJhbWV0ZXI8PiwgaGVsbG8sIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3Ms
IDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENF
UFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8PiwgaGVsbG8sIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwogICAgIE1lc3NhZ2VQb3J0QXJyYXkgbWVz
c2FnZVBvcnRBcnJheVRyYW5zZmVyTGlzdDsKICAgICBBcnJheUJ1ZmZlckFycmF5IGFycmF5QnVm
ZmVyQXJyYXlUcmFuc2Zlckxpc3Q7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAyKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmdNYWNyb3MuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZ01hY3Jvcy5oCmluZGV4IDUzODQ1ZTJk
NmVjYTdiMDBlMTk4MGJlZDcyOWE1Mzc2NmZiNjFhMzYuLmY0Y2FiOGI4NTkxYjdmZWYzMDRjYTBm
OThmMDM5YmI1Nzg3Y2ExY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4QmluZGluZ01hY3Jvcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Qmlu
ZGluZ01hY3Jvcy5oCkBAIC01MywxNiArNTMsMTUgQEAgZW51bSBQYXJhbWV0ZXJEZWZhdWx0UG9s
aWN5IHsKICAgICAgICAgICAgIHJldHVybiBibG9jay5SZVRocm93KCk7ICAgICAgIFwKICAgICB9
CiAKLSNkZWZpbmUgRVhDRVBUSU9OX0JMT0NLX1ZPSUQodHlwZSwgdmFyLCB2YWx1ZSkgXAotICAg
IHR5cGUgdmFyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgdjg6OlRyeUNh
dGNoIGJsb2NrOyAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICB2YXIgPSAodmFsdWUpOyAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGlmIChibG9jay5IYXNDYXVnaHQoKSkg
eyAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIGJsb2NrLlJlVGhyb3coKTsgICAgICAgICAg
ICAgICAgICAgXAotICAgICAgICAgICAgcmV0dXJuOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICB9CisjZGVmaW5lIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0sodHlwZSwg
dmFyLCB2YWx1ZSkgXAorICAgIHR5cGUgdmFyKHZhbHVlKTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoIXZhci5wcmVwYXJlKCkpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiB2ODo6VW5k
ZWZpbmVkKCk7CisKKyNkZWZpbmUgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9D
S19WT0lEKHR5cGUsIHZhciwgdmFsdWUpIFwKKyAgICB0eXBlIHZhcih2YWx1ZSk7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoIXZhci5w
cmVwYXJlKCkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgcmV0dXJuOwogCiAjZGVmaW5lIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3Ms
IGluZGV4LCBwb2xpY3kpIFwKICAgICAoKChwb2xpY3kpID09IERlZmF1bHRJc051bGxTdHJpbmcg
JiYgKGluZGV4KSA+PSAoYXJncykuTGVuZ3RoKCkpID8gKHY4OjpMb2NhbDx2ODo6VmFsdWU+KCkp
IDogKChhcmdzKVsoaW5kZXgpXSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOFN0cmluZ1Jlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFN0
cmluZ1Jlc291cmNlLmgKaW5kZXggZjg2NGNhOThjNjIyZDBhOWU0OWFmZjdhODYxZjkyOTVjYWQ3
ZTZiOS4uMWE3MDdkYjYyODc4OGQyM2VjOWJmMmM1NTM1NjM1NTgyZDg0MWNkNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhTdHJpbmdSZXNvdXJjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4U3RyaW5nUmVzb3VyY2UuaApAQCAtNTIsMzYgKzUy
LDQ0IEBAIGVudW0gVjhQYXJhbWV0ZXJNb2RlIHsKIHRlbXBsYXRlIDxWOFBhcmFtZXRlck1vZGUg
TW9kZSA9IERlZmF1bHRNb2RlPgogY2xhc3MgVjhQYXJhbWV0ZXIgewogcHVibGljOgotICAgIFY4
UGFyYW1ldGVyKCkKLSAgICAgICAgOiBtX21vZGUoRXh0ZXJuYWxpemUpCisgICAgVjhQYXJhbWV0
ZXIodjg6OkxvY2FsPHY4OjpWYWx1ZT4gb2JqZWN0KQorICAgICAgICA6IG1fdjhPYmplY3Qob2Jq
ZWN0KQorICAgICAgICAsIG1fbW9kZShFeHRlcm5hbGl6ZSkKICAgICAgICAgLCBtX3N0cmluZygp
CiAgICAgewogICAgIH0KIAotICAgIC8vIFRoaXMgY2FuIHRocm93LiBZb3UgbXVzdCB1c2UgdGhp
cyB0aHJvdWdoIHRoZQotICAgIC8vIEVYQ0VQVElPTl9CTE9DSygpIG1hY3JvLgotICAgIFY4UGFy
YW1ldGVyJiBvcGVyYXRvcj0odjg6OkxvY2FsPHY4OjpWYWx1ZT4pOworICAgIGJvb2wgcHJlcGFy
ZSgpOwogICAgIG9wZXJhdG9yIFN0cmluZygpIHsgcmV0dXJuIHRvU3RyaW5nPFN0cmluZz4oKTsg
fQogICAgIG9wZXJhdG9yIEF0b21pY1N0cmluZygpIHsgcmV0dXJuIHRvU3RyaW5nPEF0b21pY1N0
cmluZz4oKTsgfQogCiBwcml2YXRlOgotICAgIHZvaWQgcHJlcGFyZUJhc2UoKQorICAgIGJvb2wg
cHJlcGFyZUJhc2UoKQogICAgIHsKICAgICAgICAgaWYgKG1fdjhPYmplY3QuSXNFbXB0eSgpKQot
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAgICAg
aWYgKExJS0VMWShtX3Y4T2JqZWN0LT5Jc1N0cmluZygpKSkKLSAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgICAgIGlmIChMSUtFTFkobV92OE9iamVj
dC0+SXNJbnQzMigpKSkgewogICAgICAgICAgICAgc2V0U3RyaW5nKGludDMyVG9XZWJDb3JlU3Ry
aW5nKG1fdjhPYmplY3QtPkludDMyVmFsdWUoKSkpOwotICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAogICAgICAgICBtX21vZGUgPSBEb05v
dEV4dGVybmFsaXplOworICAgICAgICB2ODo6VHJ5Q2F0Y2ggYmxvY2s7CiAgICAgICAgIG1fdjhP
YmplY3QgPSBtX3Y4T2JqZWN0LT5Ub1N0cmluZygpOworICAgICAgICAvLyBIYW5kbGUgdGhlIGNh
c2Ugd2hlcmUgYW4gZXhjZXB0aW9uIGlzIHRocm93biBhcyBwYXJ0IG9mIGludm9raW5nIHRvU3Ry
aW5nIG9uIHRoZSBvYmplY3QuCisgICAgICAgIGlmIChibG9jay5IYXNDYXVnaHQoKSkgeworICAg
ICAgICAgICAgYmxvY2suUmVUaHJvdygpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHY4OjpMb2NhbDx2ODo6
VmFsdWU+IG9iamVjdCgpIHsgcmV0dXJuIG1fdjhPYmplY3Q7IH0KKwogICAgIHZvaWQgc2V0U3Ry
aW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgIHsKICAgICAgICAgbV9zdHJpbmcgPSBzdHJp
bmc7CkBAIC0xMDIsMzEgKzExMCwyNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3N0cmluZzsK
IH07CiAKLXRlbXBsYXRlPD4gaW5saW5lIFY4UGFyYW1ldGVyPERlZmF1bHRNb2RlPiYgVjhQYXJh
bWV0ZXI8RGVmYXVsdE1vZGU+OjpvcGVyYXRvcj0odjg6OkxvY2FsPHY4OjpWYWx1ZT4gb2JqZWN0
KQordGVtcGxhdGU8PiBpbmxpbmUgYm9vbCBWOFBhcmFtZXRlcjxEZWZhdWx0TW9kZT46OnByZXBh
cmUoKQogewotICAgIG1fdjhPYmplY3QgPSBvYmplY3Q7Ci0gICAgcHJlcGFyZUJhc2UoKTsKLSAg
ICByZXR1cm4gKnRoaXM7CisgICAgcmV0dXJuIHByZXBhcmVCYXNlKCk7CiB9CiAKLXRlbXBsYXRl
PD4gaW5saW5lIFY4UGFyYW1ldGVyPFdpdGhOdWxsQ2hlY2s+JiBWOFBhcmFtZXRlcjxXaXRoTnVs
bENoZWNrPjo6b3BlcmF0b3I9KHY4OjpMb2NhbDx2ODo6VmFsdWU+IG9iamVjdCkKK3RlbXBsYXRl
PD4gaW5saW5lIGJvb2wgVjhQYXJhbWV0ZXI8V2l0aE51bGxDaGVjaz46OnByZXBhcmUoKQogewot
ICAgIG1fdjhPYmplY3QgPSBvYmplY3Q7Ci0gICAgaWYgKG1fdjhPYmplY3QuSXNFbXB0eSgpIHx8
IG1fdjhPYmplY3QtPklzTnVsbCgpKQorICAgIGlmIChvYmplY3QoKS5Jc0VtcHR5KCkgfHwgb2Jq
ZWN0KCktPklzTnVsbCgpKSB7CiAgICAgICAgIHNldFN0cmluZyhTdHJpbmcoKSk7Ci0gICAgZWxz
ZQotICAgICAgICBwcmVwYXJlQmFzZSgpOwotICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBwcmVwYXJlQmFzZSgpOwogfQogCi10ZW1wbGF0
ZTw+IGlubGluZSBWOFBhcmFtZXRlcjxXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2s+JiBWOFBhcmFt
ZXRlcjxXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2s+OjpvcGVyYXRvcj0odjg6OkxvY2FsPHY4OjpW
YWx1ZT4gb2JqZWN0KQordGVtcGxhdGU8PiBpbmxpbmUgYm9vbCBWOFBhcmFtZXRlcjxXaXRoVW5k
ZWZpbmVkT3JOdWxsQ2hlY2s+OjpwcmVwYXJlKCkKIHsKLSAgICBtX3Y4T2JqZWN0ID0gb2JqZWN0
OwotICAgIGlmIChtX3Y4T2JqZWN0LklzRW1wdHkoKSB8fCBtX3Y4T2JqZWN0LT5Jc051bGwoKSB8
fCBtX3Y4T2JqZWN0LT5Jc1VuZGVmaW5lZCgpKQorICAgIGlmIChvYmplY3QoKS5Jc0VtcHR5KCkg
fHwgb2JqZWN0KCktPklzTnVsbCgpIHx8IG9iamVjdCgpLT5Jc1VuZGVmaW5lZCgpKSB7CiAgICAg
ICAgIHNldFN0cmluZyhTdHJpbmcoKSk7Ci0gICAgZWxzZQotICAgICAgICBwcmVwYXJlQmFzZSgp
OwotICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJl
dHVybiBwcmVwYXJlQmFzZSgpOwogfQogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q29uc29sZUN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDb25zb2xlQ3VzdG9t
LmNwcAppbmRleCAxOWVmZTc5YzI3MzRjZDc1ZGFkNDNkMDhhNTY1NDhkMjkyZmZjNzM2Li4xOWU2
ZTc4NWFhY2VlZTFhNmMwMTk5OWFhZmI1MmU3NmExOTc0YmRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDb25zb2xlQ3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDb25zb2xlQ3VzdG9tLmNwcApAQCAtNjQs
NyArNjQsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDb25zb2xlOjpwcm9maWxlQ2FsbGJh
Y2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5Db25z
b2xlLnByb2ZpbGUiKTsKICAgICBDb25zb2xlKiBpbXAgPSBWOENvbnNvbGU6OnRvTmF0aXZlKGFy
Z3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjxXaXRoVW5kZWZp
bmVkT3JOdWxsQ2hlY2s+LCB0aXRsZSwgYXJnc1swXSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1F
VEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjxXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2s+
LCB0aXRsZSwgYXJnc1swXSk7CiAgICAgaW1wLT5wcm9maWxlKHRpdGxlLCBTY3JpcHRTdGF0ZTo6
Y3VycmVudCgpKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KQEAgLTczLDcgKzczLDcg
QEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q29uc29sZTo6cHJvZmlsZUVuZENhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uQ29uc29sZS5w
cm9maWxlRW5kIik7CiAgICAgQ29uc29sZSogaW1wID0gVjhDb25zb2xlOjp0b05hdGl2ZShhcmdz
LkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8V2l0aFVuZGVmaW5l
ZE9yTnVsbENoZWNrPiwgdGl0bGUsIGFyZ3NbMF0pOworICAgIFNUUklOR19UT19WOFBBUkFNRVRF
Ul9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrPiwg
dGl0bGUsIGFyZ3NbMF0pOwogICAgIGltcC0+cHJvZmlsZUVuZCh0aXRsZSwgU2NyaXB0U3RhdGU6
OmN1cnJlbnQoKSk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcApp
bmRleCA1ZTQ1NTY0MDNmYTNjOWQ2NGRjY2VhNTg0YWQyMTcwZjJmODAzZjU2Li5kZTI1YTY0MGM2
OTdhYzQ1MTM1ZWU4YjFmMDMwNTg0MGFlYzVkZDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTMyNCw3
ICszMjQsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGhhbmRsZVBvc3RNZXNzYWdl
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncwogICAgICAgICBpZiAoIWV4dHJhY3RU
cmFuc2ZlcmFibGVzKGFyZ3NbdHJhbnNmZXJhYmxlc0FyZ0luZGV4XSwgcG9ydEFycmF5LCBhcnJh
eUJ1ZmZlckFycmF5LCBhcmdzLkdldElzb2xhdGUoKSkpCiAgICAgICAgICAgICByZXR1cm4gdjg6
OlVuZGVmaW5lZCgpOwogICAgIH0KLSAgICBFWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8V2l0
aFVuZGVmaW5lZE9yTnVsbENoZWNrPiwgdGFyZ2V0T3JpZ2luLCBhcmdzW3RhcmdldE9yaWdpbkFy
Z0luZGV4XSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBh
cmFtZXRlcjxXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2s+LCB0YXJnZXRPcmlnaW4sIGFyZ3NbdGFy
Z2V0T3JpZ2luQXJnSW5kZXhdKTsKIAogICAgIGJvb2wgZGlkVGhyb3cgPSBmYWxzZTsKICAgICBS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlID0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERldmljZU1vdGlvbkV2ZW50Q3VzdG9tLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERldmljZU1vdGlvbkV2ZW50
Q3VzdG9tLmNwcAppbmRleCBkOTM2ZGJlZTA4N2U5NWMyMGY5YjM5ZjViMDAzZDI0NTA0YmNiMmFh
Li44M2ZmNzczYjcxMDNjNGUxNjU1NTNkNTU0MmMxYjM5MWQ5NmU2MmYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEZXZpY2VNb3Rpb25FdmVudEN1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGV2aWNlTW90
aW9uRXZlbnRDdXN0b20uY3BwCkBAIC0xNjQsNyArMTY0LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4RGV2aWNlTW90aW9uRXZlbnQ6OmludGVydmFsQWNjZXNzb3JHZXR0ZXIodjg6OkxvY2Fs
PHY4OjoKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERldmljZU1vdGlvbkV2ZW50Ojppbml0RGV2
aWNlTW90aW9uRXZlbnRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAg
IERldmljZU1vdGlvbkV2ZW50KiBpbXAgPSBWOERldmljZU1vdGlvbkV2ZW50Ojp0b05hdGl2ZShh
cmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8PiwgdHlwZSwg
YXJnc1swXSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBh
cmFtZXRlcjw+LCB0eXBlLCBhcmdzWzBdKTsKICAgICBib29sIGJ1YmJsZXMgPSBhcmdzWzFdLT5C
b29sZWFuVmFsdWUoKTsKICAgICBib29sIGNhbmNlbGFibGUgPSBhcmdzWzJdLT5Cb29sZWFuVmFs
dWUoKTsKICAgICBSZWZQdHI8RGV2aWNlTW90aW9uRGF0YTo6QWNjZWxlcmF0aW9uPiBhY2NlbGVy
YXRpb24gPSByZWFkQWNjZWxlcmF0aW9uQXJndW1lbnQoYXJnc1szXSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEZXZpY2VPcmllbnRhdGlvbkV2ZW50
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERldmljZU9y
aWVudGF0aW9uRXZlbnRDdXN0b20uY3BwCmluZGV4IDM5MTQ2MTYxMzRiZTc5NDc3M2YxODcyYmEy
N2JkYzFmOWYzMDgxNjYuLmM2ODYxYmFlOTdhZmFhOWZiNjI0ZTU4NmJhMWE1ZWNiOTI4ODhlMDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERldmljZU9y
aWVudGF0aW9uRXZlbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOERldmljZU9yaWVudGF0aW9uRXZlbnRDdXN0b20uY3BwCkBAIC03OCw3ICs3OCw3
IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERldmljZU9yaWVudGF0aW9uRXZlbnQ6OmFic29s
dXRlQWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhEZXZp
Y2VPcmllbnRhdGlvbkV2ZW50Ojppbml0RGV2aWNlT3JpZW50YXRpb25FdmVudENhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgRGV2aWNlT3JpZW50YXRpb25FdmVudCog
aW1wID0gVjhEZXZpY2VPcmllbnRhdGlvbkV2ZW50Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsK
LSAgICBFWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8PiwgdHlwZSwgYXJnc1swXSk7CisgICAg
U1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCB0eXBl
LCBhcmdzWzBdKTsKICAgICBib29sIGJ1YmJsZXMgPSBhcmdzWzFdLT5Cb29sZWFuVmFsdWUoKTsK
ICAgICBib29sIGNhbmNlbGFibGUgPSBhcmdzWzJdLT5Cb29sZWFuVmFsdWUoKTsKICAgICAvLyBJ
ZiBhbHBoYSwgYmV0YSwgZ2FtbWEgb3IgYWJzb2x1dGUgYXJlIG51bGwgb3IgdW5kZWZpbmVkLCBt
YXJrIHRoZW0gYXMgbm90IHByb3ZpZGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4SGlzdG9yeUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhIaXN0b3J5Q3VzdG9tLmNwcAppbmRleCAzNzk5N2YxZTZlZDc2ZTA5
OTQzYTRmYTU0Y2QxMTAwMTdlMWQ1ZmIyLi4zY2Q2NjZkZTMxNjg2ZGZkYmJlNmMwMDBjOTE5YWRj
MDdiYTI1ZjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhIaXN0b3J5Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhIaXN0b3J5Q3VzdG9tLmNwcApAQCAtNjUsOCArNjUsOCBAQCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhIaXN0b3J5OjpwdXNoU3RhdGVDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzKQogICAgIGlmIChkaWRUaHJvdykKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsK
IAotICAgIEVYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjxXaXRoVW5kZWZpbmVkT3JOdWxsQ2hl
Y2s+LCB0aXRsZSwgYXJnc1sxXSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPFdp
dGhVbmRlZmluZWRPck51bGxDaGVjaz4sIHVybCwgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJn
cywgMiwgRGVmYXVsdElzTnVsbFN0cmluZykpOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9F
WENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrPiwgdGl0
bGUsIGFyZ3NbMV0pOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0so
VjhQYXJhbWV0ZXI8V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrPiwgdXJsLCBNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNOdWxsU3RyaW5nKSk7CiAKICAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKICAgICBIaXN0b3J5KiBoaXN0b3J5ID0gVjhIaXN0b3J5Ojp0b05hdGl2
ZShhcmdzLkhvbGRlcigpKTsKQEAgLTgyLDggKzgyLDggQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IFY4SGlzdG9yeTo6cmVwbGFjZVN0YXRlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cykKICAgICBpZiAoZGlkVGhyb3cpCiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAK
LSAgICBFWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNr
PiwgdGl0bGUsIGFyZ3NbMV0pOwotICAgIEVYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjxXaXRo
VW5kZWZpbmVkT3JOdWxsQ2hlY2s+LCB1cmwsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3Ms
IDIsIERlZmF1bHRJc051bGxTdHJpbmcpKTsKKyAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhD
RVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPFdpdGhVbmRlZmluZWRPck51bGxDaGVjaz4sIHRpdGxl
LCBhcmdzWzFdKTsKKyAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4
UGFyYW1ldGVyPFdpdGhVbmRlZmluZWRPck51bGxDaGVjaz4sIHVybCwgTUFZQkVfTUlTU0lOR19Q
QVJBTUVURVIoYXJncywgMiwgRGVmYXVsdElzTnVsbFN0cmluZykpOwogCiAgICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7CiAgICAgSGlzdG9yeSogaGlzdG9yeSA9IFY4SGlzdG9yeTo6dG9OYXRpdmUo
YXJncy5Ib2xkZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhJbnRlbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4SW50ZW50Q3VzdG9tLmNwcAppbmRleCBlMjVkMTE3YTlhYjA1Y2FkOWQ1ZWJhYTcwNzdm
OTNjMzdlNDk5MDZhLi4xMGRhNzhkODI0ZGEzNDk5YzIwNjM4YTU4NDFlNGE3YTQ3Mjg3MDFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnRlbnRDdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludGVudEN1
c3RvbS5jcHAKQEAgLTYwLDggKzYwLDggQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SW50ZW50
Ojpjb25zdHJ1Y3RvckNhbGxiYWNrQ3VzdG9tKGNvbnN0IHY4OjpBcmd1bWVudHMmIGEKICAgICB9
CiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBFWENFUFRJT05fQkxPQ0soVjhQYXJh
bWV0ZXI8PiwgYWN0aW9uLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0
SXNVbmRlZmluZWQpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8PiwgdHlwZSwg
TUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKSk7Cisg
ICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBh
Y3Rpb24sIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5l
ZCkpOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0
ZXI8PiwgdHlwZSwgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5k
ZWZpbmVkKSk7CiAgICAgTWVzc2FnZVBvcnRBcnJheSBtZXNzYWdlUG9ydEFycmF5VHJhbnNmZXJM
aXN0OwogICAgIEFycmF5QnVmZmVyQXJyYXkgYXJyYXlCdWZmZXJBcnJheVRyYW5zZmVyTGlzdDsK
ICAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFNRTFRyYW5zYWN0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFNRTFRyYW5zYWN0aW9uQ3VzdG9tLmNwcAppbmRl
eCA2MGZiZTM2ZWI4Y2EwZDk4YmE5YmZmODAxMmJiODY0NjgwNmE1ZDc3Li41OTNhY2JiOTRmM2Iw
NmIzZTY0M2RjZDkxNTNhMWE0Yjk1OGE4MGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhTUUxUcmFuc2FjdGlvbkN1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1FMVHJhbnNhY3Rpb25DdXN0b20uY3BwCkBA
IC01Myw3ICs1Myw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFNRTFRyYW5zYWN0aW9uOjpl
eGVjdXRlU3FsQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYKICAgICBpZiAoYXJncy5MZW5n
dGgoKSA9PSAwKQogICAgICAgICByZXR1cm4gc2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIsIGFy
Z3MuR2V0SXNvbGF0ZSgpKTsKIAotICAgIEVYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBz
dGF0ZW1lbnQsIGFyZ3NbMF0pOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05f
QkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RhdGVtZW50LCBhcmdzWzBdKTsKIAogICAgIFZlY3RvcjxT
UUxWYWx1ZT4gc3FsVmFsdWVzOwogCkBAIC04MCw3ICs4MCw3IEBAIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBWOFNRTFRyYW5zYWN0aW9uOjpleGVjdXRlU3FsQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3Vt
ZW50cyYKICAgICAgICAgICAgICAgICBFWENFUFRJT05fQkxPQ0soZG91YmxlLCBzcWxWYWx1ZSwg
dmFsdWUtPk51bWJlclZhbHVlKCkpOwogICAgICAgICAgICAgICAgIHNxbFZhbHVlcy5hcHBlbmQo
U1FMVmFsdWUoc3FsVmFsdWUpKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHNxbFZhbHVlLCB2YWx1ZSk7CisgICAg
ICAgICAgICAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFt
ZXRlcjw+LCBzcWxWYWx1ZSwgdmFsdWUpOwogICAgICAgICAgICAgICAgIHNxbFZhbHVlcy5hcHBl
bmQoU1FMVmFsdWUoc3FsVmFsdWUpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1FMVHJhbnNhY3Rpb25T
eW5jQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFNRTFRy
YW5zYWN0aW9uU3luY0N1c3RvbS5jcHAKaW5kZXggMmM5MmJlMzNkNjJhYmFkMjJmMGQwZWQyNGIy
MDcwZTJlZTM2MzkyZC4uMWFiNjYyNjc4ZmVjYjQ1ZDNiOWI2MTIxNGQ1ODRhOWIwNzRjYWYzYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1FMVHJhbnNh
Y3Rpb25TeW5jQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhTUUxUcmFuc2FjdGlvblN5bmNDdXN0b20uY3BwCkBAIC01Myw3ICs1Myw3IEBAIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOFNRTFRyYW5zYWN0aW9uU3luYzo6ZXhlY3V0ZVNxbENhbGxiYWNr
KGNvbnN0IHY4OjpBcmd1bWVuCiAgICAgaWYgKCFhcmdzLkxlbmd0aCgpKQogICAgICAgICByZXR1
cm4gc2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAotICAg
IEVYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdGF0ZW1lbnQsIGFyZ3NbMF0pOworICAg
IFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3Rh
dGVtZW50LCBhcmdzWzBdKTsKIAogICAgIFZlY3RvcjxTUUxWYWx1ZT4gc3FsVmFsdWVzOwogCkBA
IC04MCw3ICs4MCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFNRTFRyYW5zYWN0aW9uU3lu
Yzo6ZXhlY3V0ZVNxbENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVuCiAgICAgICAgICAgICAgICAg
RVhDRVBUSU9OX0JMT0NLKGRvdWJsZSwgc3FsVmFsdWUsIHZhbHVlLT5OdW1iZXJWYWx1ZSgpKTsK
ICAgICAgICAgICAgICAgICBzcWxWYWx1ZXMuYXBwZW5kKFNRTFZhbHVlKHNxbFZhbHVlKSk7CiAg
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIEVYQ0VQVElPTl9CTE9DSyhWOFBh
cmFtZXRlcjw+LCBzcWxWYWx1ZSwgdmFsdWUpOworICAgICAgICAgICAgICAgIFNUUklOR19UT19W
OFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3FsVmFsdWUsIHZhbHVl
KTsKICAgICAgICAgICAgICAgICBzcWxWYWx1ZXMuYXBwZW5kKFNRTFZhbHVlKHNxbFZhbHVlKSk7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0
b20uY3BwCmluZGV4IDExNTcwMTJlMmQwYmVkZGE1NzUyNmQ5NTIyNTQ2NzNmYmEyNTk1MmIuLjQx
NTY4MzJkMmRjODRhNzI0NmJlNmQyNzU2NTU1NWUyMGQ0ZWZkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5k
ZXJpbmdDb250ZXh0Q3VzdG9tLmNwcApAQCAtMzA4LDcgKzMwOCw3IEBAIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uQ2FsbGJhY2soY29u
c3Qgdjg6OkFyCiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBpbXAgPSBWOFdlYkdMUmVuZGVy
aW5nQ29udGV4dDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgaWYgKGFyZ3MuTGVuZ3Ro
KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdz
LkdldElzb2xhdGUoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIG5hbWUs
IGFyZ3NbMF0pOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQ
YXJhbWV0ZXI8PiwgbmFtZSwgYXJnc1swXSk7CiAgICAgV2ViR0xFeHRlbnNpb24qIGV4dGVuc2lv
biA9IGltcC0+Z2V0RXh0ZW5zaW9uKG5hbWUpOwogICAgIHJldHVybiB0b1Y4T2JqZWN0KGV4dGVu
c2lvbiwgYXJncy5Ib2xkZXIoKSwgYXJncy5HZXRJc29sYXRlKCkpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>